UNPKG

8.59 kBSource Map (JSON)View Raw
1{"version":3,"file":"primeng-selectbutton.js","sources":["../../src/app/components/selectbutton/selectbutton.ts","../../src/app/components/selectbutton/primeng-selectbutton.ts"],"sourcesContent":["import {NgModule,Component,Input,Output,EventEmitter,forwardRef,ChangeDetectorRef,ContentChild,TemplateRef,SimpleChanges,OnChanges,ChangeDetectionStrategy, ViewEncapsulation} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {SelectItem} from 'primeng/api';\nimport {ObjectUtils} from 'primeng/utils';\nimport {RippleModule} from 'primeng/ripple';\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]=\"'p-selectbutton p-buttonset p-component'\" [ngStyle]=\"style\" [class]=\"styleClass\" role=\"group\">\n <div *ngFor=\"let option of options; let i = index\" #btn class=\"p-button p-component\" [class]=\"option.styleClass\" role=\"button\" [attr.aria-pressed]=\"isSelected(option)\"\n [ngClass]=\"{'p-highlight':isSelected(option), 'p-disabled': disabled || option.disabled, \n 'p-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\" (blur)=\"onBlur()\" [attr.tabindex]=\"disabled ? null : tabindex\" [attr.aria-labelledby]=\"ariaLabelledBy\" pRipple>\n <ng-container *ngIf=\"!itemTemplate else customcontent\">\n <span [ngClass]=\"'p-button-icon p-button-icon-left'\" [class]=\"option.icon\" *ngIf=\"option.icon\"></span>\n <span class=\"p-button-label\">{{option.label}}</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.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./selectbutton.css', '../button/button.css']\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 _options: any[];\n \n onModelChange: Function = () => {};\n \n onModelTouched: Function = () => {};\n \n constructor(public 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 this.cd.markForCheck();\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 onBlur() {\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,RippleModule],\n exports: [SelectButton],\n declarations: [SelectButton]\n})\nexport class SelectButtonModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
\No newline at end of file