UNPKG

@ohayojp/form

Version:
168 lines 15.6 kB
/** * @fileoverview added by tsickle * Generated from: src/widgets/select/select.widget.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, ViewEncapsulation } from '@angular/core'; import { getData, toBool } from '../../utils'; import { ControlUIWidget } from '../../widget'; export class SelectWidget extends ControlUIWidget { constructor() { super(...arguments); this.hasGroup = false; } /** * @private * @param {?} list * @return {?} */ checkGroup(list) { this.hasGroup = (list || []).filter((/** * @param {?} w * @return {?} */ w => w.group === true)).length > 0; } /** * @return {?} */ ngOnInit() { const { autoClearSearchValue, borderless, autoFocus, dropdownMatchSelectWidth, serverSearch, maxMultipleCount, mode, showSearch, tokenSeparators, maxTagCount, compareWith, optionHeightPx, optionOverflowSize, } = this.ui; this.i = { autoClearSearchValue: toBool(autoClearSearchValue, true), borderless: toBool(borderless, false), autoFocus: toBool(autoFocus, false), dropdownMatchSelectWidth: toBool(dropdownMatchSelectWidth, true), serverSearch: toBool(serverSearch, false), maxMultipleCount: maxMultipleCount || Infinity, mode: mode || 'default', showSearch: toBool(showSearch, true), tokenSeparators: tokenSeparators || [], maxTagCount: maxTagCount || undefined, optionHeightPx: optionHeightPx || 32, optionOverflowSize: optionOverflowSize || 8, compareWith: compareWith || ((/** * @param {?} o1 * @param {?} o2 * @return {?} */ (o1, o2) => o1 === o2)), }; } /** * @param {?} value * @return {?} */ reset(value) { getData(this.schema, this.ui, value).subscribe((/** * @param {?} list * @return {?} */ list => { this._value = value; this.data = list; this.checkGroup(list); this.detectChanges(); })); } /** * @param {?} values * @return {?} */ change(values) { if (this.ui.change) { this.ui.change(values, this.getOrgData(values)); } this.setValue(values == null ? undefined : values); } /** * @private * @param {?} values * @return {?} */ getOrgData(values) { if (!Array.isArray(values)) { return (/** @type {?} */ (this.data.find((/** * @param {?} w * @return {?} */ w => w.value === values)))); } return values.map((/** * @param {?} value * @return {?} */ value => { /** @type {?} */ let item = null; this.data.forEach((/** * @param {?} list * @return {?} */ list => { var _a; item = (/** @type {?} */ ((_a = list.children) === null || _a === void 0 ? void 0 : _a.find((/** * @param {?} w * @return {?} */ w => w.value === value)))); })); return item; })); } /** * @param {?} status * @return {?} */ openChange(status) { if (this.ui.openChange) { this.ui.openChange(status); } } /** * @param {?} text * @return {?} */ searchChange(text) { if (this.ui.onSearch) { this.ui.onSearch(text).then((/** * @param {?} list * @return {?} */ (list) => { this.data = list; this.checkGroup(list); this.detectChanges(); })); return; } this.detectChanges(); } /** * @return {?} */ scrollToBottom() { if (this.ui.scrollToBottom) { this.ui.scrollToBottom(); } } } SelectWidget.decorators = [ { type: Component, args: [{ selector: 'sf-select', template: "<sf-item-wrap [id]=\"id\" [schema]=\"schema\" [ui]=\"ui\" [showError]=\"showError\" [error]=\"error\" [showTitle]=\"schema.title\">\n <nz-select\n [nzDisabled]=\"disabled\"\n [(ngModel)]=\"_value\"\n (ngModelChange)=\"change($event)\"\n [nzSize]=\"ui.size\"\n [nzPlaceHolder]=\"ui.placeholder\"\n [nzNotFoundContent]=\"ui.notFoundContent\"\n [nzDropdownClassName]=\"ui.dropdownClassName\"\n [nzAllowClear]=\"ui.allowClear\"\n [nzDropdownStyle]=\"ui.dropdownStyle\"\n [nzCustomTemplate]=\"ui.customTemplate\"\n [nzSuffixIcon]=\"ui.suffixIcon\"\n [nzRemoveIcon]=\"ui.removeIcon\"\n [nzClearIcon]=\"ui.clearIcon\"\n [nzMenuItemSelectedIcon]=\"ui.menuItemSelectedIcon\"\n [nzMaxTagPlaceholder]=\"ui.maxTagPlaceholder\"\n [nzDropdownRender]=\"ui.dropdownRender\"\n [nzAutoClearSearchValue]=\"i.autoClearSearchValue\"\n [nzBorderless]=\"i.borderless\"\n [nzAutoFocus]=\"i.autoFocus\"\n [nzDropdownMatchSelectWidth]=\"i.dropdownMatchSelectWidth\"\n [nzServerSearch]=\"i.serverSearch\"\n [nzMaxMultipleCount]=\"i.maxMultipleCount\"\n [nzMode]=\"i.mode\"\n [nzShowSearch]=\"i.showSearch\"\n [nzTokenSeparators]=\"i.tokenSeparators\"\n [nzMaxTagCount]=\"i.maxTagCount\"\n [compareWith]=\"i.compareWith\"\n [nzOptionHeightPx]=\"i.optionHeightPx\"\n [nzOptionOverflowSize]=\"i.optionOverflowSize\"\n (nzOpenChange)=\"openChange($event)\"\n (nzOnSearch)=\"searchChange($event)\"\n (nzScrollToBottom)=\"scrollToBottom()\"\n >\n <ng-container *ngIf=\"!hasGroup\">\n <nz-option *ngFor=\"let o of data\" [nzLabel]=\"o.label\" [nzValue]=\"o.value\" [nzDisabled]=\"o.disabled\"></nz-option>\n </ng-container>\n <ng-container *ngIf=\"hasGroup\">\n <nz-option-group *ngFor=\"let i of data\" [nzLabel]=\"i.label\">\n <nz-option *ngFor=\"let o of i.children\" [nzLabel]=\"o.label\" [nzValue]=\"o.value\" [nzDisabled]=\"o.disabled\"></nz-option>\n </nz-option-group>\n </ng-container>\n </nz-select>\n</sf-item-wrap>\n", preserveWhitespaces: false, encapsulation: ViewEncapsulation.None }] } ]; if (false) { /** @type {?} */ SelectWidget.prototype.i; /** @type {?} */ SelectWidget.prototype.data; /** @type {?} */ SelectWidget.prototype._value; /** @type {?} */ SelectWidget.prototype.hasGroup; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LndpZGdldC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wYWNrYWdlcy9mb3JtLyIsInNvdXJjZXMiOlsic3JjL3dpZGdldHMvc2VsZWN0L3NlbGVjdC53aWRnZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXJFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFTL0MsTUFBTSxPQUFPLFlBQWEsU0FBUSxlQUFxQztJQU52RTs7UUFVRSxhQUFRLEdBQUcsS0FBSyxDQUFDO0lBMkZuQixDQUFDOzs7Ozs7SUF6RlMsVUFBVSxDQUFDLElBQW9CO1FBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTTs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxJQUFJLEVBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7Ozs7SUFFRCxRQUFRO2NBQ0EsRUFDSixvQkFBb0IsRUFDcEIsVUFBVSxFQUNWLFNBQVMsRUFDVCx3QkFBd0IsRUFDeEIsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixJQUFJLEVBQ0osVUFBVSxFQUNWLGVBQWUsRUFDZixXQUFXLEVBQ1gsV0FBVyxFQUNYLGNBQWMsRUFDZCxrQkFBa0IsR0FDbkIsR0FBRyxJQUFJLENBQUMsRUFBRTtRQUNYLElBQUksQ0FBQyxDQUFDLEdBQUc7WUFDUCxvQkFBb0IsRUFBRSxNQUFNLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDO1lBQ3hELFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQztZQUNyQyxTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVMsRUFB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Z0JBQ25ELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2dCQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN0QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkIsQ0FBQyxFQUFDLENBQUM7WUFDSCxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQzs7OztJQUVELGNBQWM7UUFDWixJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFO1lBQzFCLElBQUksQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDOzs7WUFwR0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxXQUFXO2dCQUNyQix1L0RBQW1DO2dCQUNuQyxtQkFBbUIsRUFBRSxLQUFLO2dCQUMxQixhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7OztJQUVDLHlCQUF3Qjs7SUFDeEIsNEJBQXFCOztJQUNyQiw4QkFBa0I7O0lBQ2xCLGdDQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnpTYWZlQW55IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3R5cGVzJztcbmltcG9ydCB7IFNGVmFsdWUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU0ZTY2hlbWFFbnVtIH0gZnJvbSAnLi4vLi4vc2NoZW1hJztcbmltcG9ydCB7IGdldERhdGEsIHRvQm9vbCB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IENvbnRyb2xVSVdpZGdldCB9IGZyb20gJy4uLy4uL3dpZGdldCc7XG5pbXBvcnQgeyBTRlNlbGVjdFdpZGdldFNjaGVtYSB9IGZyb20gJy4vc2NoZW1hJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2Ytc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC53aWRnZXQuaHRtbCcsXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RXaWRnZXQgZXh0ZW5kcyBDb250cm9sVUlXaWRnZXQ8U0ZTZWxlY3RXaWRnZXRTY2hlbWE+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgaTogU0ZTZWxlY3RXaWRnZXRTY2hlbWE7XG4gIGRhdGE6IFNGU2NoZW1hRW51bVtdO1xuICBfdmFsdWU6IE56U2FmZUFueTtcbiAgaGFzR3JvdXAgPSBmYWxzZTtcblxuICBwcml2YXRlIGNoZWNrR3JvdXAobGlzdDogU0ZTY2hlbWFFbnVtW10pOiB2b2lkIHtcbiAgICB0aGlzLmhhc0dyb3VwID0gKGxpc3QgfHwgW10pLmZpbHRlcih3ID0+IHcuZ3JvdXAgPT09IHRydWUpLmxlbmd0aCA+IDA7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCB7XG4gICAgICBhdXRvQ2xlYXJTZWFyY2hWYWx1ZSxcbiAgICAgIGJvcmRlcmxlc3MsXG4gICAgICBhdXRvRm9jdXMsXG4gICAgICBkcm9wZG93bk1hdGNoU2VsZWN0V2lkdGgsXG4gICAgICBzZXJ2ZXJTZWFyY2gsXG4gICAgICBtYXhNdWx0aXBsZUNvdW50LFxuICAgICAgbW9kZSxcbiAgICAgIHNob3dTZWFyY2gsXG4gICAgICB0b2tlblNlcGFyYXRvcnMsXG4gICAgICBtYXhUYWdDb3VudCxcbiAgICAgIGNvbXBhcmVXaXRoLFxuICAgICAgb3B0aW9uSGVpZ2h0UHgsXG4gICAgICBvcHRpb25PdmVyZmxvd1NpemUsXG4gICAgfSA9IHRoaXMudWk7XG4gICAgdGhpcy5pID0ge1xuICAgICAgYXV0b0NsZWFyU2VhcmNoVmFsdWU6IHRvQm9vbChhdXRvQ2xlYXJTZWFyY2hWYWx1ZSwgdHJ1ZSksXG4gICAgICBib3JkZXJsZXNzOiB0b0Jvb2woYm9yZGVybGVzcywgZmFsc2UpLFxuICAgICAgYXV0b0ZvY3VzOiB0b0Jvb2woYXV0b0ZvY3VzLCBmYWxzZSksXG4gICAgICBkcm9wZG93bk1hdGNoU2VsZWN0V2lkdGg6IHRvQm9vbChkcm9wZG93bk1hdGNoU2VsZWN0V2lkdGgsIHRydWUpLFxuICAgICAgc2VydmVyU2VhcmNoOiB0b0Jvb2woc2VydmVyU2VhcmNoLCBmYWxzZSksXG4gICAgICBtYXhNdWx0aXBsZUNvdW50OiBtYXhNdWx0aXBsZUNvdW50IHx8IEluZmluaXR5LFxuICAgICAgbW9kZTogbW9kZSB8fCAnZGVmYXVsdCcsXG4gICAgICBzaG93U2VhcmNoOiB0b0Jvb2woc2hvd1NlYXJjaCwgdHJ1ZSksXG4gICAgICB0b2tlblNlcGFyYXRvcnM6IHRva2VuU2VwYXJhdG9ycyB8fCBbXSxcbiAgICAgIG1heFRhZ0NvdW50OiBtYXhUYWdDb3VudCB8fCB1bmRlZmluZWQsXG4gICAgICBvcHRpb25IZWlnaHRQeDogb3B0aW9uSGVpZ2h0UHggfHwgMzIsXG4gICAgICBvcHRpb25PdmVyZmxvd1NpemU6IG9wdGlvbk92ZXJmbG93U2l6ZSB8fCA4LFxuICAgICAgY29tcGFyZVdpdGg6IGNvbXBhcmVXaXRoIHx8ICgobzE6IGFueSwgbzI6IGFueSkgPT4gbzEgPT09IG8yKSxcbiAgICB9O1xuICB9XG5cbiAgcmVzZXQodmFsdWU6IFNGVmFsdWUpOiB2b2lkIHtcbiAgICBnZXREYXRhKHRoaXMuc2NoZW1hLCB0aGlzLnVpLCB2YWx1ZSkuc3Vic2NyaWJlKGxpc3QgPT4ge1xuICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICAgIHRoaXMuZGF0YSA9IGxpc3Q7XG4gICAgICB0aGlzLmNoZWNrR3JvdXAobGlzdCk7XG4gICAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNoYW5nZSh2YWx1ZXM6IFNGVmFsdWUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy51aS5jaGFuZ2UpIHtcbiAgICAgIHRoaXMudWkuY2hhbmdlKHZhbHVlcywgdGhpcy5nZXRPcmdEYXRhKHZhbHVlcykpO1xuICAgIH1cbiAgICB0aGlzLnNldFZhbHVlKHZhbHVlcyA9PSBudWxsID8gdW5kZWZpbmVkIDogdmFsdWVzKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3JnRGF0YSh2YWx1ZXM6IFNGVmFsdWUpOiBTRlNjaGVtYUVudW0gfCBTRlNjaGVtYUVudW1bXSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlcykpIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGEuZmluZCh3ID0+IHcudmFsdWUgPT09IHZhbHVlcykhO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWVzLm1hcCh2YWx1ZSA9PiB7XG4gICAgICBsZXQgaXRlbTogU0ZTY2hlbWFFbnVtIHwgbnVsbCA9IG51bGw7XG4gICAgICB0aGlzLmRhdGEuZm9yRWFjaChsaXN0ID0+IHtcbiAgICAgICAgaXRlbSA9IGxpc3QuY2hpbGRyZW4/LmZpbmQodyA9PiB3LnZhbHVlID09PSB2YWx1ZSkhO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gaXRlbTtcbiAgICB9KTtcbiAgfVxuXG4gIG9wZW5DaGFuZ2Uoc3RhdHVzOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudWkub3BlbkNoYW5nZSkge1xuICAgICAgdGhpcy51aS5vcGVuQ2hhbmdlKHN0YXR1cyk7XG4gICAgfVxuICB9XG5cbiAgc2VhcmNoQ2hhbmdlKHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLnVpLm9uU2VhcmNoKSB7XG4gICAgICB0aGlzLnVpLm9uU2VhcmNoKHRleHQpLnRoZW4oKGxpc3Q6IFNGU2NoZW1hRW51bVtdKSA9PiB7XG4gICAgICAgIHRoaXMuZGF0YSA9IGxpc3Q7XG4gICAgICAgIHRoaXMuY2hlY2tHcm91cChsaXN0KTtcbiAgICAgICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBzY3JvbGxUb0JvdHRvbSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy51aS5zY3JvbGxUb0JvdHRvbSkge1xuICAgICAgdGhpcy51aS5zY3JvbGxUb0JvdHRvbSgpO1xuICAgIH1cbiAgfVxufVxuIl19