UNPKG

9.28 kBSource Map (JSON)View Raw
1{"version":3,"file":"primeng-selectbutton.umd.js","sources":["ng://primeng/selectbutton/selectbutton.ts"],"sourcesContent":["import {NgModule,Component,Input,Output,EventEmitter,forwardRef,ChangeDetectorRef,ContentChild,TemplateRef,SimpleChanges,OnChanges,ChangeDetectionStrategy} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {SelectItem} from 'primeng/api';\nimport {ObjectUtils} from 'primeng/utils';\nimport {NG_VALUE_ACCESSOR, ControlValueAccessor} from '@angular/forms';\n\nexport const SELECTBUTTON_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectButton),\n multi: true\n};\n\n@Component({\n selector: 'p-selectButton',\n template: `\n <div [ngClass]=\"'ui-selectbutton ui-buttonset ui-widget ui-corner-all ui-buttonset-' + (options ? options.length : 0)\" [ngStyle]=\"style\" [class]=\"styleClass\" role=\"group\">\n <div *ngFor=\"let option of options; let i = index\" #btn class=\"ui-button ui-widget ui-state-default ui-button-text-only {{option.styleClass}}\" role=\"button\" [attr.aria-pressed]=\"isSelected(option)\"\n [ngClass]=\"{'ui-state-active':isSelected(option), 'ui-state-disabled': disabled || option.disabled, 'ui-state-focus': btn == focusedItem, \n 'ui-button-text-icon-left': (option.icon != null), 'ui-button-icon-only': (option.icon && !option.label)}\" (click)=\"onItemClick($event,option,i)\" (keydown.enter)=\"onItemClick($event,option,i)\"\n [attr.title]=\"option.title\" [attr.aria-label]=\"option.label\" (focus)=\"onFocus($event)\" (blur)=\"onBlur($event)\" [attr.tabindex]=\"tabindex\" [attr.aria-labelledby]=\"ariaLabelledBy\">\n <ng-container *ngIf=\"!itemTemplate else customcontent\">\n <span [ngClass]=\"['ui-clickable', 'ui-button-icon-left']\" [class]=\"option.icon\" *ngIf=\"option.icon\"></span>\n <span class=\"ui-button-text ui-clickable\">{{option.label||'ui-btn'}}</span>\n </ng-container>\n <ng-template #customcontent>\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: option, index: i}\"></ng-container>\n </ng-template>\n </div>\n </div>\n `,\n providers: [SELECTBUTTON_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.Default\n})\nexport class SelectButton implements ControlValueAccessor, OnChanges {\n\n @Input() tabindex: number = 0;\n\n @Input() multiple: boolean;\n \n @Input() style: any;\n \n @Input() styleClass: string;\n\n @Input() ariaLabelledBy: string;\n\n @Input() disabled: boolean;\n\n @Input() dataKey: string\n \n @Input() optionLabel: string;\n \n @Output() onOptionClick: EventEmitter<any> = new EventEmitter();\n\n @Output() onChange: EventEmitter<any> = new EventEmitter();\n\n @ContentChild(TemplateRef) itemTemplate;\n \n value: any;\n \n focusedItem: HTMLDivElement;\n \n _options: any[];\n \n onModelChange: Function = () => {};\n \n onModelTouched: Function = () => {};\n \n constructor(private cd: ChangeDetectorRef) {}\n \n @Input() get options(): any[] {\n return this._options;\n }\n\n set options(val: any[]) {\n //NoOp\n }\n\n ngOnChanges(simpleChange: SimpleChanges) {\n if (simpleChange.options) {\n this._options = this.optionLabel ? ObjectUtils.generateSelectItems(simpleChange.options.currentValue, this.optionLabel) : simpleChange.options.currentValue;\n }\n }\n \n writeValue(value: any) : void {\n this.value = value;\n this.cd.markForCheck();\n }\n \n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n \n setDisabledState(val: boolean): void {\n this.disabled = val;\n }\n \n onItemClick(event, option: SelectItem, index: number) {\n if (this.disabled || option.disabled) {\n return;\n }\n \n if (this.multiple) {\n let itemIndex = this.findItemIndex(option);\n if (itemIndex != -1)\n this.value = this.value.filter((val,i) => i!=itemIndex);\n else\n this.value = [...this.value||[], option.value];\n }\n else {\n this.value = option.value;\n }\n \n this.onOptionClick.emit({\n originalEvent: event,\n option: option,\n index: index\n });\n \n this.onModelChange(this.value);\n \n this.onChange.emit({\n originalEvent: event,\n value: this.value\n });\n }\n \n onFocus(event: Event) {\n this.focusedItem = <HTMLDivElement> event.target;\n }\n \n onBlur(event) {\n this.focusedItem = null;\n this.onModelTouched();\n }\n \n isSelected(option: SelectItem) {\n if (this.multiple)\n return this.findItemIndex(option) != -1;\n else\n return ObjectUtils.equals(option.value, this.value, this.dataKey);\n }\n \n findItemIndex(option: SelectItem) {\n let index = -1;\n if (this.value) {\n for(let i = 0; i < this.value.length; i++) {\n if (this.value[i] == option.value) {\n index = i;\n break;\n }\n }\n }\n return index;\n }\n}\n\n@NgModule({\n imports: [CommonModule],\n exports: [SelectButton],\n declarations: [SelectButton]\n})\nexport class SelectButtonModule { }\n"],"names":["NG_VALUE_ACCESSOR","forwardRef","EventEmitter","ObjectUtils","ChangeDetectorRef","Input","Output","ContentChild","TemplateRef","Component","ChangeDetectionStrategy","NgModule","CommonModule"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,QAMa,2BAA2B,GAAQ;QAC9C,OAAO,EAAEA,uBAAiB;QAC1B,WAAW,EAAEC,eAAU,CAAC,cAAM,OAAA,YAAY,GAAA,CAAC;QAC3C,KAAK,EAAE,IAAI;KACZ,CAAC;AAuBF;QAkCI,sBAAoB,EAAqB;YAArB,OAAE,GAAF,EAAE,CAAmB;YAhChC,aAAQ,GAAW,CAAC,CAAC;YAgBpB,kBAAa,GAAsB,IAAIC,iBAAY,EAAE,CAAC;YAEtD,aAAQ,GAAsB,IAAIA,iBAAY,EAAE,CAAC;YAU3D,kBAAa,GAAa,eAAQ,CAAC;YAEnC,mBAAc,GAAa,eAAQ,CAAC;SAES;QAEpC,sBAAI,iCAAO;iBAAX;gBACL,OAAO,IAAI,CAAC,QAAQ,CAAC;aACxB;iBAED,UAAY,GAAU;;aAErB;;;WAJA;QAMD,kCAAW,GAAX,UAAY,YAA2B;YACnC,IAAI,YAAY,CAAC,OAAO,EAAE;gBACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,GAAGC,iBAAW,CAAC,mBAAmB,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC;aAC/J;SACJ;QAED,iCAAU,GAAV,UAAW,KAAU;YACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;SAC1B;QAED,uCAAgB,GAAhB,UAAiB,EAAY;YACzB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;SAC3B;QAED,wCAAiB,GAAjB,UAAkB,EAAY;YAC1B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;SAC5B;QAED,uCAAgB,GAAhB,UAAiB,GAAY;YACzB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;SACvB;QAED,kCAAW,GAAX,UAAY,KAAK,EAAE,MAAkB,EAAE,KAAa;YAChD,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE;gBAClC,OAAO;aACV;YAED,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,WAAS,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBAC3C,IAAI,WAAS,IAAI,CAAC,CAAC;oBACf,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAC,GAAG,EAAC,CAAC,IAAK,OAAA,CAAC,IAAE,WAAS,GAAA,CAAC,CAAC;;oBAExD,IAAI,CAAC,KAAK,YAAO,IAAI,CAAC,KAAK,IAAE,EAAE,GAAE,MAAM,CAAC,KAAK,EAAC,CAAC;aACtD;iBACI;gBACD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;aAC7B;YAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;gBACpB,aAAa,EAAE,KAAK;gBACpB,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAE/B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACf,aAAa,EAAE,KAAK;gBACpB,KAAK,EAAE,IAAI,CAAC,KAAK;aACpB,CAAC,CAAC;SACN;QAED,8BAAO,GAAP,UAAQ,KAAY;YAChB,IAAI,CAAC,WAAW,GAAoB,KAAK,CAAC,MAAM,CAAC;SACpD;QAED,6BAAM,GAAN,UAAO,KAAK;YACR,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,cAAc,EAAE,CAAC;SACzB;QAED,iCAAU,GAAV,UAAW,MAAkB;YACzB,IAAI,IAAI,CAAC,QAAQ;gBACb,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;;gBAExC,OAAOA,iBAAW,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SACzE;QAED,oCAAa,GAAb,UAAc,MAAkB;YAC5B,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;YACf,IAAI,IAAI,CAAC,KAAK,EAAE;gBACZ,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACvC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE;wBAC/B,KAAK,GAAG,CAAC,CAAC;wBACV,MAAM;qBACT;iBACJ;aACJ;YACD,OAAO,KAAK,CAAC;SAChB;;oBA1FuBC,sBAAiB;;QAhChC;YAARC,UAAK,EAAE;sDAAsB;QAErB;YAARA,UAAK,EAAE;sDAAmB;QAElB;YAARA,UAAK,EAAE;mDAAY;QAEX;YAARA,UAAK,EAAE;wDAAoB;QAEnB;YAARA,UAAK,EAAE;4DAAwB;QAEvB;YAARA,UAAK,EAAE;sDAAmB;QAElB;YAARA,UAAK,EAAE;qDAAgB;QAEf;YAARA,UAAK,EAAE;yDAAqB;QAEnB;YAATC,WAAM,EAAE;2DAAuD;QAEtD;YAATA,WAAM,EAAE;sDAAkD;QAEhC;YAA1BC,iBAAY,CAACC,gBAAW,CAAC;0DAAc;QAc/B;YAARH,UAAK,EAAE;mDAEP;QAtCQ,YAAY;YArBxBI,cAAS,CAAC;gBACP,QAAQ,EAAE,gBAAgB;gBAC1B,QAAQ,EAAE,4iDAeT;gBACD,SAAS,EAAE,CAAC,2BAA2B,CAAC;gBACxC,eAAe,EAAEC,4BAAuB,CAAC,OAAO;aACnD,CAAC;WACW,YAAY,CA6HxB;QAAD,mBAAC;KA7HD,IA6HC;;QAOD;SAAmC;QAAtB,kBAAkB;YAL9BC,aAAQ,CAAC;gBACN,OAAO,EAAE,CAACC,mBAAY,CAAC;gBACvB,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,YAAY,EAAE,CAAC,YAAY,CAAC;aAC/B,CAAC;WACW,kBAAkB,CAAI;QAAD,yBAAC;KAAnC;;;;;;;;;;;;;;"}
\No newline at end of file