UNPKG

@ngx-performance-ui/ui

Version:
122 lines 9.15 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { ChangeDetectionStrategy, Component, ViewEncapsulation, Input, Output, EventEmitter, forwardRef, } from '@angular/core'; import { NG_VALUE_ACCESSOR } from '@angular/forms'; import compare from 'just-compare'; import { AbstractNgModelComponent } from '@ngx-performance-ui/core'; /** * @record */ export function SelectOption() { } if (false) { /** @type {?|undefined} */ SelectOption.prototype.label; /** @type {?} */ SelectOption.prototype.value; } export class SelectComponent extends AbstractNgModelComponent { constructor() { super(...arguments); this.options = []; this.selectClass = ''; this.compareFn = compare; this.select = new EventEmitter(); } /** * @param {?} value * @return {?} */ onSelect(value) { this.select.emit(value); } /** * @param {?} option * @return {?} */ getOptionLabel(option) { const { label, value } = (/** @type {?} */ (option)); return label || (typeof value === 'string' || typeof value === 'number' ? String(value) : String(option)); } /** * @param {?} _ * @param {?} option * @return {?} */ trackByFn(_, option) { const { label, value } = (/** @type {?} */ (option)); if (value === undefined || value instanceof Object) { return label || option; } return value; } /** * @param {?} option * @return {?} */ getOptionValue(option) { const { value } = (/** @type {?} */ (option)); if (value === undefined) return option; return value; } } SelectComponent.decorators = [ { type: Component, args: [{ selector: 'p-select', template: ` <label [attr.for]="selectId">{{ label }}</label> <select class="custom-select {{ selectClass }}" [(ngModel)]="value" [attr.id]="selectId" [compareWith]="compareFn" (ngModelChange)="onSelect($event)" > <option [ngValue]="undefined" *ngIf="placeholder">{{ placeholder }}</option> <option *ngFor="let option of options; trackBy: trackByFn" [ngValue]="getOptionValue(option)" >{{ getOptionLabel(option) }} </option> </select> `, providers: [ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((/** * @return {?} */ () => SelectComponent)), multi: true, }, ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None }] } ]; SelectComponent.propDecorators = { options: [{ type: Input }], selectId: [{ type: Input }], selectClass: [{ type: Input }], compareFn: [{ type: Input }], label: [{ type: Input }], placeholder: [{ type: Input }], select: [{ type: Output }] }; if (false) { /** @type {?} */ SelectComponent.prototype.options; /** @type {?} */ SelectComponent.prototype.selectId; /** @type {?} */ SelectComponent.prototype.selectClass; /** @type {?} */ SelectComponent.prototype.compareFn; /** @type {?} */ SelectComponent.prototype.label; /** @type {?} */ SelectComponent.prototype.placeholder; /** @type {?} */ SelectComponent.prototype.select; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3gtcGVyZm9ybWFuY2UtdWkvdWkvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDbkMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFFcEUsa0NBR0M7OztJQUZDLDZCQUFlOztJQUNmLDZCQUFXOztBQWdDYixNQUFNLE9BQU8sZUFBZ0IsU0FBUSx3QkFBd0I7SUEzQjdEOztRQTZCRSxZQUFPLEdBQXVCLEVBQUUsQ0FBQztRQU1qQyxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUd6QixjQUFTLEdBQUcsT0FBTyxDQUFDO1FBU3BCLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBNEJuQyxDQUFDOzs7OztJQTFCQyxRQUFRLENBQUMsS0FBSztRQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7Ozs7O0lBRUQsY0FBYyxDQUFDLE1BQXdCO2NBQy9CLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLG1CQUFBLE1BQU0sRUFBZ0I7UUFFL0MsT0FBTyxLQUFLLElBQUksQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzVHLENBQUM7Ozs7OztJQUVELFNBQVMsQ0FBQyxDQUFDLEVBQUUsTUFBd0I7Y0FDN0IsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsbUJBQUEsTUFBTSxFQUFnQjtRQUMvQyxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxZQUFZLE1BQU0sRUFBRTtZQUNsRCxPQUFPLEtBQUssSUFBSSxNQUFNLENBQUM7U0FDeEI7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Ozs7O0lBRUQsY0FBYyxDQUFDLE1BQXdCO2NBQy9CLEVBQUUsS0FBSyxFQUFFLEdBQUcsbUJBQUEsTUFBTSxFQUFnQjtRQUV4QyxJQUFJLEtBQUssS0FBSyxTQUFTO1lBQUUsT0FBTyxNQUFNLENBQUM7UUFFdkMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzs7WUExRUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxVQUFVO2dCQUNwQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7O0dBY1Q7Z0JBQ0QsU0FBUyxFQUFFO29CQUNUO3dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7d0JBQzFCLFdBQVcsRUFBRSxVQUFVOzs7d0JBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxFQUFDO3dCQUM5QyxLQUFLLEVBQUUsSUFBSTtxQkFDWjtpQkFDRjtnQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtnQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztzQkFFRSxLQUFLO3VCQUdMLEtBQUs7MEJBR0wsS0FBSzt3QkFHTCxLQUFLO29CQUdMLEtBQUs7MEJBR0wsS0FBSztxQkFHTCxNQUFNOzs7O0lBbEJQLGtDQUNpQzs7SUFFakMsbUNBQ2lCOztJQUVqQixzQ0FDeUI7O0lBRXpCLG9DQUNvQjs7SUFFcEIsZ0NBQ2M7O0lBRWQsc0NBQ29COztJQUVwQixpQ0FDaUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IGNvbXBhcmUgZnJvbSAnanVzdC1jb21wYXJlJztcbmltcG9ydCB7IEFic3RyYWN0TmdNb2RlbENvbXBvbmVudCB9IGZyb20gJ0BuZ3gtcGVyZm9ybWFuY2UtdWkvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0T3B0aW9uIHtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIHZhbHVlOiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIFNlbGVjdExpc3RPcHRpb24gPSBTZWxlY3RPcHRpb24gfCBzdHJpbmcgfCBudW1iZXI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Atc2VsZWN0JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bGFiZWwgW2F0dHIuZm9yXT1cInNlbGVjdElkXCI+e3sgbGFiZWwgfX08L2xhYmVsPlxuICAgIDxzZWxlY3RcbiAgICAgIGNsYXNzPVwiY3VzdG9tLXNlbGVjdCB7eyBzZWxlY3RDbGFzcyB9fVwiXG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgIFthdHRyLmlkXT1cInNlbGVjdElkXCJcbiAgICAgIFtjb21wYXJlV2l0aF09XCJjb21wYXJlRm5cIlxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25TZWxlY3QoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJ1bmRlZmluZWRcIiAqbmdJZj1cInBsYWNlaG9sZGVyXCI+e3sgcGxhY2Vob2xkZXIgfX08L29wdGlvbj5cbiAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zOyB0cmFja0J5OiB0cmFja0J5Rm5cIiBbbmdWYWx1ZV09XCJnZXRPcHRpb25WYWx1ZShvcHRpb24pXCJcbiAgICAgICAgPnt7IGdldE9wdGlvbkxhYmVsKG9wdGlvbikgfX1cbiAgICAgIDwvb3B0aW9uPlxuICAgIDwvc2VsZWN0PlxuICBgLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNlbGVjdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3ROZ01vZGVsQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgb3B0aW9uczogU2VsZWN0TGlzdE9wdGlvbltdID0gW107XG5cbiAgQElucHV0KClcbiAgc2VsZWN0SWQ6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBzZWxlY3RDbGFzczogc3RyaW5nID0gJyc7XG5cbiAgQElucHV0KClcbiAgY29tcGFyZUZuID0gY29tcGFyZTtcblxuICBASW5wdXQoKVxuICBsYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpXG4gIHNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIG9uU2VsZWN0KHZhbHVlKSB7XG4gICAgdGhpcy5zZWxlY3QuZW1pdCh2YWx1ZSk7XG4gIH1cblxuICBnZXRPcHRpb25MYWJlbChvcHRpb246IFNlbGVjdExpc3RPcHRpb24pOiBzdHJpbmcge1xuICAgIGNvbnN0IHsgbGFiZWwsIHZhbHVlIH0gPSBvcHRpb24gYXMgU2VsZWN0T3B0aW9uO1xuXG4gICAgcmV0dXJuIGxhYmVsIHx8ICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgPyBTdHJpbmcodmFsdWUpIDogU3RyaW5nKG9wdGlvbikpO1xuICB9XG5cbiAgdHJhY2tCeUZuKF8sIG9wdGlvbjogU2VsZWN0TGlzdE9wdGlvbikge1xuICAgIGNvbnN0IHsgbGFiZWwsIHZhbHVlIH0gPSBvcHRpb24gYXMgU2VsZWN0T3B0aW9uO1xuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICByZXR1cm4gbGFiZWwgfHwgb3B0aW9uO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGdldE9wdGlvblZhbHVlKG9wdGlvbjogU2VsZWN0TGlzdE9wdGlvbik6IGFueSB7XG4gICAgY29uc3QgeyB2YWx1ZSB9ID0gb3B0aW9uIGFzIFNlbGVjdE9wdGlvbjtcblxuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gb3B0aW9uO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59XG4iXX0=