UNPKG

ng-custom-checkbox-values

Version:

Custom checkbox values like strings or numbers other than default boolean

120 lines 8.85 kB
/** * @fileoverview added by tsickle * Generated from: lib/custom-checkbox-values.directive.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Directive, forwardRef, Input, HostListener, ElementRef, Renderer2 } from '@angular/core'; import { NG_VALUE_ACCESSOR } from '@angular/forms'; export class CustomCheckboxValuesDirective { /** * @param {?} elementRef * @param {?} renderer */ constructor(elementRef, renderer) { this.elementRef = elementRef; this.renderer = renderer; this.propagateChange = (/** * @param {?} _ * @return {?} */ (_) => { }); this.checkedValue = true; this.uncheckedValue = false; this.indeterminateValue = false; } /** * @param {?} ev * @return {?} */ onHostChange(ev) { this.propagateChange(ev.target.checked ? this.checkedValue : this.uncheckedValue); } /** * @param {?} obj * @return {?} */ writeValue(obj) { if (obj === this.checkedValue) { this.renderer.setProperty(this.elementRef.nativeElement, 'checked', true); this.renderer.setProperty(this.elementRef.nativeElement, 'indeterminate', false); } else if (obj === this.indeterminateValue) { this.renderer.setProperty(this.elementRef.nativeElement, 'checked', false); this.renderer.setProperty(this.elementRef.nativeElement, 'indeterminate', true); } else { this.renderer.setProperty(this.elementRef.nativeElement, 'checked', false); this.renderer.setProperty(this.elementRef.nativeElement, 'indeterminate', false); } } /** * @param {?} fn * @return {?} */ registerOnChange(fn) { this.propagateChange = fn; } /** * @param {?} fn * @return {?} */ registerOnTouched(fn) { } /** * @param {?} isDisabled * @return {?} */ setDisabledState(isDisabled) { } } CustomCheckboxValuesDirective.decorators = [ { type: Directive, args: [{ selector: '[customCheckboxValues]', providers: [ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((/** * @return {?} */ () => CustomCheckboxValuesDirective)), multi: true } ] },] } ]; /** @nocollapse */ CustomCheckboxValuesDirective.ctorParameters = () => [ { type: ElementRef }, { type: Renderer2 } ]; CustomCheckboxValuesDirective.propDecorators = { customCheckboxValues: [{ type: Input }], checkedValue: [{ type: Input }], uncheckedValue: [{ type: Input }], indeterminateValue: [{ type: Input }], onHostChange: [{ type: HostListener, args: ['change', ['$event'],] }] }; if (false) { /** * @type {?} * @private */ CustomCheckboxValuesDirective.prototype.propagateChange; /** @type {?} */ CustomCheckboxValuesDirective.prototype.customCheckboxValues; /** @type {?} */ CustomCheckboxValuesDirective.prototype.checkedValue; /** @type {?} */ CustomCheckboxValuesDirective.prototype.uncheckedValue; /** @type {?} */ CustomCheckboxValuesDirective.prototype.indeterminateValue; /** * @type {?} * @private */ CustomCheckboxValuesDirective.prototype.elementRef; /** * @type {?} * @private */ CustomCheckboxValuesDirective.prototype.renderer; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWNoZWNrYm94LXZhbHVlcy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1jdXN0b20tY2hlY2tib3gtdmFsdWVzLyIsInNvdXJjZXMiOlsibGliL2N1c3RvbS1jaGVja2JveC12YWx1ZXMuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxpQkFBaUIsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQztBQVl6RSxNQUFNLE9BQU8sNkJBQTZCOzs7OztJQU96QyxZQUFvQixVQUFzQixFQUFVLFFBQW1CO1FBQW5ELGVBQVUsR0FBVixVQUFVLENBQVk7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBTi9ELG9CQUFlOzs7O1FBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBQztRQUVqQyxpQkFBWSxHQUFHLElBQUksQ0FBQztRQUNwQixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2Qix1QkFBa0IsR0FBRyxLQUFLLENBQUM7SUFFdUMsQ0FBQzs7Ozs7SUFHNUUsWUFBWSxDQUFDLEVBQUU7UUFDZCxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDbkYsQ0FBQzs7Ozs7SUFFRCxVQUFVLENBQUMsR0FBUTtRQUNsQixJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQzlCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUMxRSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDakY7YUFBTSxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDM0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzNFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNoRjthQUFNO1lBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzNFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLGVBQWUsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUNqRjtJQUNGLENBQUM7Ozs7O0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztJQUMzQixDQUFDOzs7OztJQUVELGlCQUFpQixDQUFDLEVBQU8sSUFBVSxDQUFDOzs7OztJQUVwQyxnQkFBZ0IsQ0FBRSxVQUFtQixJQUFVLENBQUM7OztZQTNDaEQsU0FBUyxTQUFDO2dCQUNWLFFBQVEsRUFBRSx3QkFBd0I7Z0JBQ2xDLFNBQVMsRUFBRTtvQkFDVjt3QkFDQyxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixXQUFXLEVBQUUsVUFBVTs7O3dCQUFDLEdBQUcsRUFBRSxDQUFDLDZCQUE2QixFQUFDO3dCQUM1RCxLQUFLLEVBQUUsSUFBSTtxQkFDWDtpQkFDRDthQUNEOzs7O1lBWm9ELFVBQVU7WUFBRSxTQUFTOzs7bUNBZXhFLEtBQUs7MkJBQ0wsS0FBSzs2QkFDTCxLQUFLO2lDQUNMLEtBQUs7MkJBSUwsWUFBWSxTQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7Ozs7OztJQVJsQyx3REFBMEM7O0lBQzFDLDZEQUFtQzs7SUFDbkMscURBQTZCOztJQUM3Qix1REFBZ0M7O0lBQ2hDLDJEQUFvQzs7Ozs7SUFFeEIsbURBQThCOzs7OztJQUFFLGlEQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgZm9yd2FyZFJlZiwgSW5wdXQsIEhvc3RMaXN0ZW5lciwgRWxlbWVudFJlZiwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ1tjdXN0b21DaGVja2JveFZhbHVlc10nLFxuXHRwcm92aWRlcnM6IFtcblx0XHR7XG5cdFx0XHRwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcblx0XHRcdHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEN1c3RvbUNoZWNrYm94VmFsdWVzRGlyZWN0aXZlKSxcblx0XHRcdG11bHRpOiB0cnVlXG5cdFx0fVxuXHRdXG59KVxuZXhwb3J0IGNsYXNzIEN1c3RvbUNoZWNrYm94VmFsdWVzRGlyZWN0aXZlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXHRwcml2YXRlIHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHsgfTtcblx0QElucHV0KCkgY3VzdG9tQ2hlY2tib3hWYWx1ZXM6IGFueTtcblx0QElucHV0KCkgY2hlY2tlZFZhbHVlID0gdHJ1ZTtcblx0QElucHV0KCkgdW5jaGVja2VkVmFsdWUgPSBmYWxzZTtcblx0QElucHV0KCkgaW5kZXRlcm1pbmF0ZVZhbHVlID0gZmFsc2U7XG5cblx0Y29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHsgfVxuXG5cdEBIb3N0TGlzdGVuZXIoJ2NoYW5nZScsIFsnJGV2ZW50J10pXG5cdG9uSG9zdENoYW5nZShldikge1xuXHRcdHRoaXMucHJvcGFnYXRlQ2hhbmdlKGV2LnRhcmdldC5jaGVja2VkID8gdGhpcy5jaGVja2VkVmFsdWUgOiB0aGlzLnVuY2hlY2tlZFZhbHVlKTtcblx0fVxuXG5cdHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcblx0XHRpZiAob2JqID09PSB0aGlzLmNoZWNrZWRWYWx1ZSkge1xuXHRcdFx0dGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2NoZWNrZWQnLCB0cnVlKTtcblx0XHRcdHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdpbmRldGVybWluYXRlJywgZmFsc2UpO1xuXHRcdH0gZWxzZSBpZiAob2JqID09PSB0aGlzLmluZGV0ZXJtaW5hdGVWYWx1ZSkge1xuXHRcdFx0dGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2NoZWNrZWQnLCBmYWxzZSk7XG5cdFx0XHR0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnaW5kZXRlcm1pbmF0ZScsIHRydWUpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnY2hlY2tlZCcsIGZhbHNlKTtcblx0XHRcdHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdpbmRldGVybWluYXRlJywgZmFsc2UpO1xuXHRcdH1cblx0fVxuXG5cdHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuXHRcdHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XG5cdH1cblxuXHRyZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7IH1cblxuXHRzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7IH1cblxufVxuIl19