UNPKG

4.76 kBSource Map (JSON)View Raw
1{"version":3,"file":"button-radio.directive.js","sourceRoot":"","sources":["../../src/buttons/button-radio.directive.ts"],"names":[],"mappings":"OAAO,EACH,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,EACtE,MAAM,eAAe;OACf,EAAwB,iBAAiB,EAAE,MAAM,gBAAgB;AAExE,OAAO,IAAM,4BAA4B,GAAQ;IAC7C,OAAO,EAAE,iBAAiB;IAC1B,WAAW,EAAE,UAAU,CAAC,cAAM,OAAA,oBAAoB,EAApB,CAAoB,CAAC;IACnD,KAAK,EAAE,IAAI;CACd,CAAC;AAEF;;;GAGG;AAEH;IAmCI,8BAAmB,EAAc;QAjC1B,aAAQ,GAAO,QAAQ,CAAC,SAAS,CAAC;QAClC,cAAS,GAAO,QAAQ,CAAC,SAAS,CAAC;QAiCxC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAtBD,sBAAW,0CAAQ;aAAnB;YACI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,KAAK,CAAC;QACxC,CAAC;;;OAAA;IAGM,sCAAO,GAAd;QACI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC;QACX,CAAC;QAED,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QAC3B,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAMM,uCAAQ,GAAf;QACI,IAAI,CAAC,WAAW,GAAG,OAAO,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC;IAC/D,CAAC;IAEM,qCAAM,GAAb;QACI,IAAI,CAAC,SAAS,EAAE,CAAC;IACrB,CAAC;IAED,uBAAuB;IACvB,gBAAgB;IACT,yCAAU,GAAjB,UAAkB,KAAU;QACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAEM,+CAAgB,GAAvB,UAAwB,EAAO;QAC3B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACvB,CAAC;IAEM,gDAAiB,GAAxB,UAAyB,EAAO;QAC5B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACxB,CAAC;IACE,+BAAU,GAA0B;QAC3C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,4BAA4B,CAAC,EAAE,EAAG,EAAE;KACnG,CAAC;IACF,kBAAkB;IACX,mCAAc,GAAmE,cAAM,OAAA;QAC9F,EAAC,IAAI,EAAE,UAAU,GAAG;KACnB,EAF6F,CAE7F,CAAC;IACK,mCAAc,GAA2C;QAChE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QAC9B,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QACjC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QAC3B,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,cAAc,EAAG,EAAE,EAAE;QAC9D,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,OAAO,EAAG,EAAE,EAAE;KACtD,CAAC;IACF,2BAAC;AAAD,CAAC,AA1ED,IA0EC","sourcesContent":["import {\n Directive, ElementRef, HostBinding, forwardRef, HostListener, Input, OnInit\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport const RADIO_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ButtonRadioDirective),\n multi: true\n};\n\n/**\n * Create radio buttons or groups of buttons.\n * A value of a selected button is bound to a variable specified via ngModel.\n */\n\nexport class ButtonRadioDirective implements ControlValueAccessor, OnInit {\n\n public onChange:any = Function.prototype;\n public onTouched:any = Function.prototype;\n\n /** Radio button value, will be set to `ngModel` */\n public btnRadio:any;\n /** If `true` — radio button can be unchecked */\n public uncheckable:boolean;\n /** Current value of radio component or group */\n public value:any;\n\n protected el: ElementRef;\n\n \n public get isActive(): boolean {\n return this.btnRadio === this.value;\n }\n\n \n public onClick(): void {\n if (this.el.nativeElement.attributes.disabled) {\n return;\n }\n\n if (this.uncheckable && this.btnRadio === this.value) {\n this.value = undefined;\n } else {\n this.value = this.btnRadio;\n }\n\n this.onTouched();\n this.onChange(this.value);\n }\n\n public constructor(el: ElementRef) {\n this.el = el;\n }\n\n public ngOnInit(): void {\n this.uncheckable = typeof this.uncheckable !== 'undefined';\n }\n\n public onBlur(): void {\n this.onTouched();\n }\n\n // ControlValueAccessor\n // model -> view\n public writeValue(value: any): void {\n this.value = value;\n }\n\n public registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Directive, args: [{ selector: '[btnRadio]', providers: [RADIO_CONTROL_VALUE_ACCESSOR] }, ] },\n];\n/** @nocollapse */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: ElementRef, },\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'btnRadio': [{ type: Input },],\n'uncheckable': [{ type: Input },],\n'value': [{ type: Input },],\n'isActive': [{ type: HostBinding, args: ['class.active', ] },],\n'onClick': [{ type: HostListener, args: ['click', ] },],\n};\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
\No newline at end of file