2018-11-05 05:06:39 -05:00
|
|
|
/* eslint-disable
|
|
|
|
max-len,
|
|
|
|
no-return-assign,
|
|
|
|
*/
|
|
|
|
// TODO: This file was created by bulk-decaffeinate.
|
|
|
|
// Fix any style issues and re-enable lint.
|
|
|
|
/*
|
|
|
|
* decaffeinate suggestions:
|
|
|
|
* DS102: Remove unnecessary code created because of implicit returns
|
|
|
|
* DS207: Consider shorter variations of null checks
|
|
|
|
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
|
|
|
|
*/
|
2020-05-19 05:02:56 -04:00
|
|
|
import App from '../../../base'
|
|
|
|
|
|
|
|
export default App.directive('reviewPanelToggle', () => ({
|
|
|
|
restrict: 'E',
|
|
|
|
scope: {
|
|
|
|
onToggle: '&',
|
|
|
|
ngModel: '=',
|
|
|
|
valWhenUndefined: '=?',
|
|
|
|
isDisabled: '=?',
|
|
|
|
onDisabledClick: '&?',
|
2021-04-27 03:52:58 -04:00
|
|
|
description: '@',
|
2020-05-19 05:02:56 -04:00
|
|
|
},
|
|
|
|
link(scope) {
|
|
|
|
if (scope.disabled == null) {
|
|
|
|
scope.disabled = false
|
|
|
|
}
|
|
|
|
scope.onChange = (...args) => scope.onToggle({ isOn: scope.localModel })
|
2021-04-14 09:17:21 -04:00
|
|
|
scope.handleClick = function () {
|
2020-05-19 05:02:56 -04:00
|
|
|
if (scope.disabled && scope.onDisabledClick != null) {
|
|
|
|
return scope.onDisabledClick()
|
2018-11-05 05:06:39 -05:00
|
|
|
}
|
2020-05-19 05:02:56 -04:00
|
|
|
}
|
|
|
|
scope.localModel = scope.ngModel
|
2021-04-14 09:17:21 -04:00
|
|
|
return scope.$watch('ngModel', function (value) {
|
2020-05-19 05:02:56 -04:00
|
|
|
if (scope.valWhenUndefined != null && value == null) {
|
|
|
|
value = scope.valWhenUndefined
|
2018-11-05 05:06:39 -05:00
|
|
|
}
|
2020-05-19 05:02:56 -04:00
|
|
|
return (scope.localModel = value)
|
|
|
|
})
|
|
|
|
},
|
2018-11-05 05:06:39 -05:00
|
|
|
|
2020-05-19 05:02:56 -04:00
|
|
|
template: `\
|
2019-04-17 10:00:36 -04:00
|
|
|
<fieldset class="rp-toggle" ng-click="handleClick();">
|
2020-05-19 05:02:56 -04:00
|
|
|
<legend class="sr-only">{{description}}</legend>
|
|
|
|
<input id="rp-toggle-{{$id}}" ng-disabled="isDisabled" type="checkbox" class="rp-toggle-hidden-input" ng-model="localModel" ng-change="onChange()" />
|
|
|
|
<label for="rp-toggle-{{$id}}" class="rp-toggle-btn"></label>
|
2019-04-17 10:00:36 -04:00
|
|
|
</fieldset>\
|
2021-04-27 03:52:58 -04:00
|
|
|
`,
|
2020-05-19 05:02:56 -04:00
|
|
|
}))
|