UNPKG

ng-zorro-antd

Version:

An enterprise-class UI components based on Ant Design and Angular

209 lines 15.8 kB
/** * @fileoverview added by tsickle * Generated from: select-search.component.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @license * Copyright Alibaba.com All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE */ import { FocusMonitor } from '@angular/cdk/a11y'; import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, Renderer2, ViewChild, ViewEncapsulation } from '@angular/core'; var NzSelectSearchComponent = /** @class */ (function () { function NzSelectSearchComponent(elementRef, renderer, focusMonitor) { this.elementRef = elementRef; this.renderer = renderer; this.focusMonitor = focusMonitor; this.disabled = false; this.mirrorSync = false; this.showInput = true; this.focusTrigger = false; this.value = ''; this.autofocus = false; this.valueChange = new EventEmitter(); this.isComposingChange = new EventEmitter(); } /** * @param {?} isComposing * @return {?} */ NzSelectSearchComponent.prototype.setCompositionState = /** * @param {?} isComposing * @return {?} */ function (isComposing) { this.isComposingChange.next(isComposing); }; /** * @param {?} value * @return {?} */ NzSelectSearchComponent.prototype.onValueChange = /** * @param {?} value * @return {?} */ function (value) { /** @type {?} */ var inputDOM = this.inputElement.nativeElement; inputDOM.value = value; this.value = value; this.valueChange.next(value); if (this.mirrorSync) { this.syncMirrorWidth(); } }; /** * @return {?} */ NzSelectSearchComponent.prototype.clearInputValue = /** * @return {?} */ function () { this.onValueChange(''); }; /** * @return {?} */ NzSelectSearchComponent.prototype.syncMirrorWidth = /** * @return {?} */ function () { /** @type {?} */ var mirrorDOM = (/** @type {?} */ (this.mirrorElement)).nativeElement; /** @type {?} */ var hostDOM = this.elementRef.nativeElement; /** @type {?} */ var inputDOM = this.inputElement.nativeElement; this.renderer.removeStyle(hostDOM, 'width'); mirrorDOM.innerHTML = inputDOM.value + "&nbsp;"; this.renderer.setStyle(hostDOM, 'width', mirrorDOM.scrollWidth + "px"); }; /** * @return {?} */ NzSelectSearchComponent.prototype.focus = /** * @return {?} */ function () { this.focusMonitor.focusVia(this.inputElement, 'keyboard'); }; /** * @return {?} */ NzSelectSearchComponent.prototype.blur = /** * @return {?} */ function () { this.inputElement.nativeElement.blur(); }; /** * @param {?} changes * @return {?} */ NzSelectSearchComponent.prototype.ngOnChanges = /** * @param {?} changes * @return {?} */ function (changes) { /** @type {?} */ var inputDOM = this.inputElement.nativeElement; var focusTrigger = changes.focusTrigger, showInput = changes.showInput; if (focusTrigger && focusTrigger.currentValue === true && focusTrigger.previousValue === false) { inputDOM.focus(); } if (showInput) { if (this.showInput) { this.renderer.removeAttribute(inputDOM, 'readonly'); } else { this.renderer.setAttribute(inputDOM, 'readonly', 'readonly'); } } }; /** * @return {?} */ NzSelectSearchComponent.prototype.ngAfterViewInit = /** * @return {?} */ function () { if (this.mirrorSync) { this.syncMirrorWidth(); } if (this.autofocus) { this.focus(); } }; NzSelectSearchComponent.decorators = [ { type: Component, args: [{ selector: 'nz-select-search', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "\n <input\n #inputElement\n autocomplete=\"off\"\n class=\"ant-select-selection-search-input\"\n [ngModel]=\"value\"\n [attr.autofocus]=\"autofocus ? 'autofocus' : null\"\n [disabled]=\"disabled\"\n [style.opacity]=\"showInput ? null : 0\"\n (ngModelChange)=\"onValueChange($event)\"\n (compositionstart)=\"setCompositionState(true)\"\n (compositionend)=\"setCompositionState(false)\"\n />\n <span #mirrorElement *ngIf=\"mirrorSync\" class=\"ant-select-selection-search-mirror\"></span>\n ", host: { '[class.ant-select-selection-search]': 'true' } }] } ]; /** @nocollapse */ NzSelectSearchComponent.ctorParameters = function () { return [ { type: ElementRef }, { type: Renderer2 }, { type: FocusMonitor } ]; }; NzSelectSearchComponent.propDecorators = { disabled: [{ type: Input }], mirrorSync: [{ type: Input }], showInput: [{ type: Input }], focusTrigger: [{ type: Input }], value: [{ type: Input }], autofocus: [{ type: Input }], valueChange: [{ type: Output }], isComposingChange: [{ type: Output }], inputElement: [{ type: ViewChild, args: ['inputElement', { static: true },] }], mirrorElement: [{ type: ViewChild, args: ['mirrorElement', { static: false },] }] }; return NzSelectSearchComponent; }()); export { NzSelectSearchComponent }; if (false) { /** @type {?} */ NzSelectSearchComponent.prototype.disabled; /** @type {?} */ NzSelectSearchComponent.prototype.mirrorSync; /** @type {?} */ NzSelectSearchComponent.prototype.showInput; /** @type {?} */ NzSelectSearchComponent.prototype.focusTrigger; /** @type {?} */ NzSelectSearchComponent.prototype.value; /** @type {?} */ NzSelectSearchComponent.prototype.autofocus; /** @type {?} */ NzSelectSearchComponent.prototype.valueChange; /** @type {?} */ NzSelectSearchComponent.prototype.isComposingChange; /** @type {?} */ NzSelectSearchComponent.prototype.inputElement; /** @type {?} */ NzSelectSearchComponent.prototype.mirrorElement; /** * @type {?} * @private */ NzSelectSearchComponent.prototype.elementRef; /** * @type {?} * @private */ NzSelectSearchComponent.prototype.renderer; /** * @type {?} * @private */ NzSelectSearchComponent.prototype.focusMonitor; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXNlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy16b3Jyby1hbnRkL3NlbGVjdC8iLCJzb3VyY2VzIjpbInNlbGVjdC1zZWFyY2guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQVFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUVULFNBQVMsRUFDVCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkI7SUFzRUUsaUNBQW9CLFVBQXNCLEVBQVUsUUFBbUIsRUFBVSxZQUEwQjtRQUF2RixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBOUNsRyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNSLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN6QyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBdUMyQyxDQUFDOzs7OztJQW5DL0cscURBQW1COzs7O0lBQW5CLFVBQW9CLFdBQW9CO1FBQ3RDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDM0MsQ0FBQzs7Ozs7SUFFRCwrQ0FBYTs7OztJQUFiLFVBQWMsS0FBYTs7WUFDbkIsUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYTtRQUNoRCxRQUFRLENBQUMsS0FB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QUUsTUFBTSxFQUFFLEtBQUssRUFBRTs7SUE4RC9DLDhCQUFDO0NBQUEsQUEvRkQsSUErRkM7U0F4RVksdUJBQXVCOzs7SUFDbEMsMkNBQTBCOztJQUMxQiw2Q0FBNEI7O0lBQzVCLDRDQUEwQjs7SUFDMUIsK0NBQThCOztJQUM5Qix3Q0FBb0I7O0lBQ3BCLDRDQUEyQjs7SUFDM0IsOENBQTREOztJQUM1RCxvREFBbUU7O0lBQ25FLCtDQUF1RTs7SUFDdkUsZ0RBQTBFOzs7OztJQXFDOUQsNkNBQThCOzs7OztJQUFFLDJDQUEyQjs7Ozs7SUFBRSwrQ0FBa0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHsgRm9jdXNNb25pdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnotc2VsZWN0LXNlYXJjaCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpbnB1dFxuICAgICAgI2lucHV0RWxlbWVudFxuICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgIGNsYXNzPVwiYW50LXNlbGVjdC1zZWxlY3Rpb24tc2VhcmNoLWlucHV0XCJcbiAgICAgIFtuZ01vZGVsXT1cInZhbHVlXCJcbiAgICAgIFthdHRyLmF1dG9mb2N1c109XCJhdXRvZm9jdXMgPyAnYXV0b2ZvY3VzJyA6IG51bGxcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtzdHlsZS5vcGFjaXR5XT1cInNob3dJbnB1dCA/IG51bGwgOiAwXCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAoY29tcG9zaXRpb25zdGFydCk9XCJzZXRDb21wb3NpdGlvblN0YXRlKHRydWUpXCJcbiAgICAgIChjb21wb3NpdGlvbmVuZCk9XCJzZXRDb21wb3NpdGlvblN0YXRlKGZhbHNlKVwiXG4gICAgLz5cbiAgICA8c3BhbiAjbWlycm9yRWxlbWVudCAqbmdJZj1cIm1pcnJvclN5bmNcIiBjbGFzcz1cImFudC1zZWxlY3Qtc2VsZWN0aW9uLXNlYXJjaC1taXJyb3JcIj48L3NwYW4+XG4gIGAsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLmFudC1zZWxlY3Qtc2VsZWN0aW9uLXNlYXJjaF0nOiAndHJ1ZSdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBOelNlbGVjdFNlYXJjaENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1pcnJvclN5bmMgPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd0lucHV0ID0gdHJ1ZTtcbiAgQElucHV0KCkgZm9jdXNUcmlnZ2VyID0gZmFsc2U7XG4gIEBJbnB1dCgpIHZhbHVlID0gJyc7XG4gIEBJbnB1dCgpIGF1dG9mb2N1cyA9IGZhbHNlO1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGlzQ29tcG9zaW5nQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAVmlld0NoaWxkKCdpbnB1dEVsZW1lbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbnB1dEVsZW1lbnQhOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdtaXJyb3JFbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIG1pcnJvckVsZW1lbnQ/OiBFbGVtZW50UmVmO1xuXG4gIHNldENvbXBvc2l0aW9uU3RhdGUoaXNDb21wb3Npbmc6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmlzQ29tcG9zaW5nQ2hhbmdlLm5leHQoaXNDb21wb3NpbmcpO1xuICB9XG5cbiAgb25WYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXRET00gPSB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgIGlucHV0RE9NLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMudmFsdWVDaGFuZ2UubmV4dCh2YWx1ZSk7XG4gICAgaWYgKHRoaXMubWlycm9yU3luYykge1xuICAgICAgdGhpcy5zeW5jTWlycm9yV2lkdGgoKTtcbiAgICB9XG4gIH1cblxuICBjbGVhcklucHV0VmFsdWUoKTogdm9pZCB7XG4gICAgdGhpcy5vblZhbHVlQ2hhbmdlKCcnKTtcbiAgfVxuXG4gIHN5bmNNaXJyb3JXaWR0aCgpOiB2b2lkIHtcbiAgICBjb25zdCBtaXJyb3JET00gPSB0aGlzLm1pcnJvckVsZW1lbnQhLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgaG9zdERPTSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IGlucHV0RE9NID0gdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKGhvc3RET00sICd3aWR0aCcpO1xuICAgIG1pcnJvckRPTS5pbm5lckhUTUwgPSBgJHtpbnB1dERPTS52YWx1ZX0mbmJzcDtgO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoaG9zdERPTSwgJ3dpZHRoJywgYCR7bWlycm9yRE9NLnNjcm9sbFdpZHRofXB4YCk7XG4gIH1cblxuICBmb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzTW9uaXRvci5mb2N1c1ZpYSh0aGlzLmlucHV0RWxlbWVudCwgJ2tleWJvYXJkJyk7XG4gIH1cblxuICBibHVyKCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IpIHt9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0RE9NID0gdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCB7IGZvY3VzVHJpZ2dlciwgc2hvd0lucHV0IH0gPSBjaGFuZ2VzO1xuICAgIGlmIChmb2N1c1RyaWdnZXIgJiYgZm9jdXNUcmlnZ2VyLmN1cnJlbnRWYWx1ZSA9PT0gdHJ1ZSAmJiBmb2N1c1RyaWdnZXIucHJldmlvdXNWYWx1ZSA9PT0gZmFsc2UpIHtcbiAgICAgIGlucHV0RE9NLmZvY3VzKCk7XG4gICAgfVxuICAgIGlmIChzaG93SW5wdXQpIHtcbiAgICAgIGlmICh0aGlzLnNob3dJbnB1dCkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZShpbnB1dERPTSwgJ3JlYWRvbmx5Jyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShpbnB1dERPTSwgJ3JlYWRvbmx5JywgJ3JlYWRvbmx5Jyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1pcnJvclN5bmMpIHtcbiAgICAgIHRoaXMuc3luY01pcnJvcldpZHRoKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmF1dG9mb2N1cykge1xuICAgICAgdGhpcy5mb2N1cygpO1xuICAgIH1cbiAgfVxufVxuIl19