UNPKG

@duoduo-oba/ng-devui

Version:

DevUI components based on Angular

247 lines 18.4 kB
/** * @fileoverview added by tsickle * Generated from: editable-select.component.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, Input, TemplateRef, ViewChild, ChangeDetectorRef, forwardRef, Output, EventEmitter } from '@angular/core'; import { NG_VALUE_ACCESSOR } from '@angular/forms'; import { AutoCompleteDirective } from '@duoduo-oba/ng-devui/auto-complete'; import { I18nService } from '@duoduo-oba/ng-devui/i18n'; var EditableSelectComponent = /** @class */ (function () { function EditableSelectComponent(changeDetectorRef, i18n) { this.changeDetectorRef = changeDetectorRef; this.i18n = i18n; this.disabled = false; this.placeholder = ''; this.enableLazyLoad = false; this.loadMore = new EventEmitter(); this.multiItems = []; this.onChange = (/** * @param {?} _ * @return {?} */ function (_) { return null; }); this.onTouched = (/** * @return {?} */ function () { return null; }); this.i18nCommonText = this.i18n.getI18nText().common; } /** * @param {?} obj * @return {?} */ EditableSelectComponent.prototype.writeValue = /** * @param {?} obj * @return {?} */ function (obj) { /** @type {?} */ var value = obj || ''; this.inputValue = value; this.changeDetectorRef.markForCheck(); }; /** * @return {?} */ EditableSelectComponent.prototype.ngOnInit = /** * @return {?} */ function () { var _this = this; this.i18nSubscription = this.i18n.langChange().subscribe((/** * @param {?} data * @return {?} */ function (data) { _this.i18nCommonText = data.common; })); }; /** * @param {?} changes * @return {?} */ EditableSelectComponent.prototype.ngOnChanges = /** * @param {?} changes * @return {?} */ function (changes) { var _this = this; if (changes && changes['searchFn'] && typeof this.searchFn === 'function') { if (this.subscription) { this.subscription.unsubscribe(); } this.subscription = this.searchFn('').subscribe((/** * @param {?} source * @return {?} */ function (source) { _this.source = source; })); } }; /** * @param {?} fn * @return {?} */ EditableSelectComponent.prototype.registerOnChange = /** * @param {?} fn * @return {?} */ function (fn) { this.onChange = fn; }; /** * @param {?} fn * @return {?} */ EditableSelectComponent.prototype.registerOnTouched = /** * @param {?} fn * @return {?} */ function (fn) { this.onTouched = fn; }; /** * @param {?} value * @return {?} */ EditableSelectComponent.prototype.onTermChange = /** * @param {?} value * @return {?} */ function (value) { this.inputValue = value; this.onChange(this.inputValue); }; /** * @param {?} $event * @return {?} */ EditableSelectComponent.prototype.toggle = /** * @param {?} $event * @return {?} */ function ($event) { this.autoCompleteDirective.popupRef.instance.isOpen = !this.autoCompleteDirective.popupRef.instance.isOpen; }; /** * @param {?} $event * @return {?} */ EditableSelectComponent.prototype.loadMoreEvent = /** * @param {?} $event * @return {?} */ function ($event) { this.loadMore.emit($event); }; /** * @return {?} */ EditableSelectComponent.prototype.ngOnDestroy = /** * @return {?} */ function () { if (this.i18nSubscription) { this.i18nSubscription.unsubscribe(); } }; EditableSelectComponent.decorators = [ { type: Component, args: [{ selector: 'd-editable-select', template: "<div\r\n class=\"devui-form-group devui-has-feedback\"\r\n [style.padding-bottom.px]=\"2\"\r\n [style.padding-bottom.px]=\"2\"\r\n [ngClass]=\"{\r\n 'devui-select-open': autoCompleteDirective.popupRef ? !!autoCompleteDirective.popupRef.instance.isOpen : false\r\n }\"\r\n>\r\n <input\r\n (click)=\"toggle($event)\"\r\n style=\"cursor: pointer\"\r\n class=\"devui-form-control\"\r\n type=\"text\"\r\n name=\"autoCompleteControl\"\r\n [source]=\"source\"\r\n (ngModelChange)=\"onTermChange($event)\"\r\n [ngModel]=\"inputValue\"\r\n [searchFn]=\"searchFn\"\r\n [disabled]=\"disabled\"\r\n [disabledKey]=\"disabledKey\"\r\n [placeholder]=\"placeholder\"\r\n [itemTemplate]=\"itemTemplate\"\r\n [noResultItemTemplate]=\"noResultItemTemplate ? noResultItemTemplate : noDataTemplate\"\r\n [maxHeight]=\"maxHeight\"\r\n [sceneType]=\"'select'\"\r\n dAutoComplete\r\n [enableLazyLoad]=\"enableLazyLoad\"\r\n (loadMore)=\"loadMoreEvent($event)\"\r\n />\r\n <span class=\"devui-form-control-feedback\">\r\n <span class=\"devui-select-chevron-icon\">\r\n <svg\r\n width=\"16px\"\r\n height=\"16px\"\r\n viewBox=\"0 0 16 16\"\r\n version=\"1.1\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n >\r\n <g id=\"chevron_down\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n <polygon id=\"chevron_down\" points=\"4.5 5 8 8.76923077 11.5 5 13 6.61538462 8 12 3 6.61538462\"></polygon>\r\n </g>\r\n </svg>\r\n </span>\r\n </span>\r\n</div>\r\n<ng-template #noDataTemplate>\r\n <div class=\"devui-no-data-tip\">\r\n <ng-container *ngIf=\"!inputValue\">{{ i18nCommonText?.noData }}</ng-container>\r\n <ng-container *ngIf=\"inputValue\">{{ i18nCommonText?.noRecordsFound }}</ng-container>\r\n </div>\r\n</ng-template>\r\n", exportAs: 'editable-select', providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((/** * @return {?} */ function () { return EditableSelectComponent; })), multi: true }], styles: [".devui-select-chevron-icon{display:-webkit-inline-box;display:inline-flex;vertical-align:middle;-webkit-transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.devui-select-open .devui-select-chevron-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.devui-select-chevron-icon svg>g>polygon{fill:#252b3a}input::-ms-clear{display:none}.devui-no-data-tip{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:not-allowed;padding:5px 12px;opacity:.3}.devui-form-control{outline:0}"] }] } ]; /** @nocollapse */ EditableSelectComponent.ctorParameters = function () { return [ { type: ChangeDetectorRef }, { type: I18nService } ]; }; EditableSelectComponent.propDecorators = { cssClass: [{ type: Input }], disabled: [{ type: Input }], placeholder: [{ type: Input }], source: [{ type: Input }], isOpen: [{ type: Input }], itemTemplate: [{ type: Input }], noResultItemTemplate: [{ type: Input }], maxHeight: [{ type: Input }], disabledKey: [{ type: Input }], searchFn: [{ type: Input }], enableLazyLoad: [{ type: Input }], loadMore: [{ type: Output }], autoCompleteDirective: [{ type: ViewChild, args: [AutoCompleteDirective, { static: true },] }] }; return EditableSelectComponent; }()); export { EditableSelectComponent }; if (false) { /** @type {?} */ EditableSelectComponent.prototype.cssClass; /** @type {?} */ EditableSelectComponent.prototype.disabled; /** @type {?} */ EditableSelectComponent.prototype.placeholder; /** @type {?} */ EditableSelectComponent.prototype.source; /** @type {?} */ EditableSelectComponent.prototype.isOpen; /** @type {?} */ EditableSelectComponent.prototype.itemTemplate; /** @type {?} */ EditableSelectComponent.prototype.noResultItemTemplate; /** @type {?} */ EditableSelectComponent.prototype.maxHeight; /** @type {?} */ EditableSelectComponent.prototype.disabledKey; /** @type {?} */ EditableSelectComponent.prototype.searchFn; /** @type {?} */ EditableSelectComponent.prototype.enableLazyLoad; /** @type {?} */ EditableSelectComponent.prototype.loadMore; /** @type {?} */ EditableSelectComponent.prototype.autoCompleteDirective; /** @type {?} */ EditableSelectComponent.prototype.multiItems; /** @type {?} */ EditableSelectComponent.prototype.inputValue; /** @type {?} */ EditableSelectComponent.prototype.subscription; /** @type {?} */ EditableSelectComponent.prototype.i18nCommonText; /** @type {?} */ EditableSelectComponent.prototype.i18nSubscription; /** * @type {?} * @private */ EditableSelectComponent.prototype.onChange; /** * @type {?} * @private */ EditableSelectComponent.prototype.onTouched; /** * @type {?} * @private */ EditableSelectComponent.prototype.changeDetectorRef; /** * @type {?} * @private */ EditableSelectComponent.prototype.i18n; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdGFibGUtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWRldnVpL2VkaXRhYmxlLXNlbGVjdC8iLCJzb3VyY2VzIjpbImVkaXRhYmxlLXNlbGVjdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxXQUFXLEVBR1gsU0FBUyxFQUNULGlCQUFpQixFQUVqQixVQUFVLEVBQ1YsTUFBTSxFQUNOLFlBQVksRUFFYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHekUsT0FBTyxFQUFHLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFHM0Q7SUFZRSxpQ0FBb0IsaUJBQW9DLEVBQVUsSUFBaUI7UUFBL0Qsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUFVLFNBQUksR0FBSixJQUFJLENBQWE7UUFJMUUsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQVFqQixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN0QixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV4QyxlQUFVLEdBQVUsRUFBRSxDQUFDO1FBS2YsYUFBUTs7OztRQUFHLFVBQUMsQ0FBTSxJQUFLLE9BQUEsSUFBSSxFQUFKLENBQUksRUFBQztRQUM1QixjQUFTOzs7UUFBRyxjQUFNLE9BQUEsSUFBSSxFQUFKLENBQUksRUFBQztRQXJCN0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQztJQUN2RCxDQUFDOzs7OztJQXNCRCw0Q0FBVTs7OztJQUFWLFVBQVcsR0FBUTs7WUFDWCxLQUFLLEdBQUcsR0FBRyxJQUFJLEVB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Ozs7SUFJbEMsMkNBQTBCOztJQUMxQiwyQ0FBMEI7O0lBQzFCLDhDQUEwQjs7SUFDMUIseUNBQXVCOztJQUN2Qix5Q0FBeUI7O0lBQ3pCLCtDQUF3Qzs7SUFDeEMsdURBQWdEOztJQUNoRCw0Q0FBMkI7O0lBQzNCLDhDQUE2Qjs7SUFDN0IsMkNBQXVEOztJQUN2RCxpREFBZ0M7O0lBQ2hDLDJDQUF3Qzs7SUFDeEMsd0RBQWlHOztJQUNqRyw2Q0FBdUI7O0lBQ3ZCLDZDQUFnQjs7SUFDaEIsK0NBQWE7O0lBQ2IsaURBQXdDOztJQUN4QyxtREFBK0I7Ozs7O0lBQy9CLDJDQUFvQzs7Ozs7SUFDcEMsNENBQStCOzs7OztJQXRCbkIsb0RBQTRDOzs7OztJQUFFLHVDQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIE9uSW5pdCxcclxuICBPbkNoYW5nZXMsXHJcbiAgVmlld0NoaWxkLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgZm9yd2FyZFJlZixcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIE9uRGVzdHJveVxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgIEF1dG9Db21wbGV0ZURpcmVjdGl2ZSB9IGZyb20gJ25nLWRldnVpL2F1dG8tY29tcGxldGUnO1xyXG5pbXBvcnQgeyBJMThuU2VydmljZSwgSTE4bkludGVyZmFjZSB9IGZyb20gJ25nLWRldnVpL2kxOG4nO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZC1lZGl0YWJsZS1zZWxlY3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0YWJsZS1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2VkaXRhYmxlLXNlbGVjdC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGV4cG9ydEFzOiAnZWRpdGFibGUtc2VsZWN0JyxcclxuICBwcm92aWRlcnM6IFt7XHJcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEVkaXRhYmxlU2VsZWN0Q29tcG9uZW50KSxcclxuICAgIG11bHRpOiB0cnVlXHJcbiAgfV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEVkaXRhYmxlU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIGkxOG46IEkxOG5TZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmkxOG5Db21tb25UZXh0ID0gdGhpcy5pMThuLmdldEkxOG5UZXh0KCkuY29tbW9uO1xyXG4gIH1cclxuICBASW5wdXQoKSBjc3NDbGFzczogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcclxuICBASW5wdXQoKSBzb3VyY2U6IGFueVtdO1xyXG4gIEBJbnB1dCgpIGlzT3BlbjogYm9vbGVhbjtcclxuICBASW5wdXQoKSBpdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQElucHV0KCkgbm9SZXN1bHRJdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQElucHV0KCkgbWF4SGVpZ2h0OiBudW1iZXI7XHJcbiAgQElucHV0KCkgZGlzYWJsZWRLZXk6IHN0cmluZztcclxuICBASW5wdXQoKSBzZWFyY2hGbjogKHRlcm06IHN0cmluZykgPT4gT2JzZXJ2YWJsZTxhbnlbXT47XHJcbiAgQElucHV0KCkgZW5hYmxlTGF6eUxvYWQgPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgbG9hZE1vcmUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQFZpZXdDaGlsZChBdXRvQ29tcGxldGVEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pIGF1dG9Db21wbGV0ZURpcmVjdGl2ZTogQXV0b0NvbXBsZXRlRGlyZWN0aXZlO1xyXG4gIG11bHRpSXRlbXM6IGFueVtdID0gW107XHJcbiAgaW5wdXRWYWx1ZTogYW55O1xyXG4gIHN1YnNjcmlwdGlvbjtcclxuICBpMThuQ29tbW9uVGV4dDogSTE4bkludGVyZmFjZVsnY29tbW9uJ107XHJcbiAgaTE4blN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgb25DaGFuZ2UgPSAoXzogYW55KSA9PiBudWxsO1xyXG4gIHByaXZhdGUgb25Ub3VjaGVkID0gKCkgPT4gbnVsbDtcclxuXHJcbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc3QgdmFsdWUgPSBvYmogfHwgJyc7XHJcbiAgICB0aGlzLmlucHV0VmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaTE4blN1YnNjcmlwdGlvbiA9IHRoaXMuaTE4bi5sYW5nQ2hhbmdlKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgIHRoaXMuaTE4bkNvbW1vblRleHQgPSBkYXRhLmNvbW1vbjtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKGNoYW5nZXMgJiYgY2hhbmdlc1snc2VhcmNoRm4nXSAmJiB0eXBlb2YgdGhpcy5zZWFyY2hGbiA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5zZWFyY2hGbignJykuc3Vic2NyaWJlKHNvdXJjZSA9PiB7XHJcbiAgICAgICAgdGhpcy5zb3VyY2UgPSBzb3VyY2U7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgb25UZXJtQ2hhbmdlKHZhbHVlKSB7XHJcbiAgICB0aGlzLmlucHV0VmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMub25DaGFuZ2UodGhpcy5pbnB1dFZhbHVlKTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZSgkZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICB0aGlzLmF1dG9Db21wbGV0ZURpcmVjdGl2ZS5wb3B1cFJlZi5pbnN0YW5jZS5pc09wZW4gPSAhdGhpcy5hdXRvQ29tcGxldGVEaXJlY3RpdmUucG9wdXBSZWYuaW5zdGFuY2UuaXNPcGVuO1xyXG4gIH1cclxuICBsb2FkTW9yZUV2ZW50KCRldmVudCkge1xyXG4gICAgdGhpcy5sb2FkTW9yZS5lbWl0KCRldmVudCk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMuaTE4blN1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLmkxOG5TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==