ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
1,153 lines • 99.1 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: select.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { __decorate, __metadata, __read, __spread } from "tslib";
/**
* 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 { DOWN_ARROW, ENTER, ESCAPE, SPACE, TAB, UP_ARROW } from '@angular/cdk/keycodes';
import { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';
import { Platform } from '@angular/cdk/platform';
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, EventEmitter, forwardRef, Host, Input, Optional, Output, QueryList, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';
import { NG_VALUE_ACCESSOR } from '@angular/forms';
import { slideMotion } from 'ng-zorro-antd/core/animation';
import { NzConfigService, WithConfig } from 'ng-zorro-antd/core/config';
import { NzNoAnimationDirective } from 'ng-zorro-antd/core/no-animation';
import { InputBoolean } from 'ng-zorro-antd/core/util';
import { BehaviorSubject, combineLatest, merge, Subject } from 'rxjs';
import { startWith, switchMap, takeUntil } from 'rxjs/operators';
import { NzOptionGroupComponent } from './option-group.component';
import { NzOptionComponent } from './option.component';
import { NzSelectTopControlComponent } from './select-top-control.component';
/** @type {?} */
var defaultFilterOption = (/**
* @param {?} searchValue
* @param {?} item
* @return {?}
*/
function (searchValue, item) {
if (item && item.nzLabel) {
return item.nzLabel.toLowerCase().indexOf(searchValue.toLowerCase()) > -1;
}
else {
return false;
}
});
var ɵ0 = defaultFilterOption;
/** @type {?} */
var NZ_CONFIG_COMPONENT_NAME = 'select';
var NzSelectComponent = /** @class */ (function () {
function NzSelectComponent(nzConfigService, cdr, elementRef, platform, focusMonitor, noAnimation) {
this.nzConfigService = nzConfigService;
this.cdr = cdr;
this.elementRef = elementRef;
this.platform = platform;
this.focusMonitor = focusMonitor;
this.noAnimation = noAnimation;
this.nzSize = 'default';
this.nzOptionHeightPx = 32;
this.nzOptionOverflowSize = 8;
this.nzDropdownClassName = null;
this.nzDropdownMatchSelectWidth = true;
this.nzDropdownStyle = null;
this.nzNotFoundContent = undefined;
this.nzPlaceHolder = null;
this.nzMaxTagCount = Infinity;
this.nzDropdownRender = null;
this.nzCustomTemplate = null;
this.nzSuffixIcon = null;
this.nzClearIcon = null;
this.nzRemoveIcon = null;
this.nzMenuItemSelectedIcon = null;
this.nzShowArrow = true;
this.nzTokenSeparators = [];
this.nzMaxTagPlaceholder = null;
this.nzMaxMultipleCount = Infinity;
this.nzMode = 'default';
this.nzFilterOption = defaultFilterOption;
this.compareWith = (/**
* @param {?} o1
* @param {?} o2
* @return {?}
*/
function (o1, o2) { return o1 === o2; });
this.nzAllowClear = false;
this.nzBorderless = false;
this.nzShowSearch = false;
this.nzLoading = false;
this.nzAutoFocus = false;
this.nzAutoClearSearchValue = true;
this.nzServerSearch = false;
this.nzDisabled = false;
this.nzOpen = false;
this.nzOptions = [];
this.nzOnSearch = new EventEmitter();
this.nzScrollToBottom = new EventEmitter();
this.nzOpenChange = new EventEmitter();
this.nzBlur = new EventEmitter();
this.nzFocus = new EventEmitter();
this.listOfValue$ = new BehaviorSubject([]);
this.listOfTemplateItem$ = new BehaviorSubject([]);
this.listOfTagAndTemplateItem = [];
this.searchValue = '';
this.isReactiveDriven = false;
this.destroy$ = new Subject();
this.onChange = (/**
* @return {?}
*/
function () { });
this.onTouched = (/**
* @return {?}
*/
function () { });
this.dropDownPosition = 'bottom';
this.triggerWidth = null;
this.listOfContainerItem = [];
this.listOfTopItem = [];
this.activatedValue = null;
this.listOfValue = [];
this.focused = false;
}
/**
* @param {?} value
* @return {?}
*/
NzSelectComponent.prototype.generateTagItem = /**
* @param {?} value
* @return {?}
*/
function (value) {
return {
nzValue: value,
nzLabel: value,
type: 'item'
};
};
/**
* @param {?} value
* @return {?}
*/
NzSelectComponent.prototype.onItemClick = /**
* @param {?} value
* @return {?}
*/
function (value) {
var _this = this;
this.activatedValue = value;
if (this.nzMode === 'default') {
if (this.listOfValue.length === 0 || !this.compareWith(this.listOfValue[0], value)) {
this.updateListOfValue([value]);
}
this.setOpenState(false);
}
else {
/** @type {?} */
var targetIndex_1 = this.listOfValue.findIndex((/**
* @param {?} o
* @return {?}
*/
function (o) { return _this.compareWith(o, value); }));
if (targetIndex_1 !== -1) {
/** @type {?} */
var listOfValueAfterRemoved = this.listOfValue.filter((/**
* @param {?} _
* @param {?} i
* @return {?}
*/
function (_, i) { return i !== targetIndex_1; }));
this.updateListOfValue(listOfValueAfterRemoved);
}
else if (this.listOfValue.length < this.nzMaxMultipleCount) {
/** @type {?} */
var listOfValueAfterAdded = __spread(this.listOfValue, [value]);
this.updateListOfValue(listOfValueAfterAdded);
}
this.focus();
if (this.nzAutoClearSearchValue) {
this.clearInput();
}
}
};
/**
* @param {?} item
* @return {?}
*/
NzSelectComponent.prototype.onItemDelete = /**
* @param {?} item
* @return {?}
*/
function (item) {
var _this = this;
/** @type {?} */
var listOfSelectedValue = this.listOfValue.filter((/**
* @param {?} v
* @return {?}
*/
function (v) { return !_this.compareWith(v, item.nzValue); }));
this.updateListOfValue(listOfSelectedValue);
this.clearInput();
};
/**
* @return {?}
*/
NzSelectComponent.prototype.updateListOfContainerItem = /**
* @return {?}
*/
function () {
var _this = this;
/** @type {?} */
var listOfContainerItem = this.listOfTagAndTemplateItem
.filter((/**
* @param {?} item
* @return {?}
*/
function (item) { return !item.nzHide; }))
.filter((/**
* @param {?} item
* @return {?}
*/
function (item) {
if (!_this.nzServerSearch && _this.searchValue) {
return _this.nzFilterOption(_this.searchValue, item);
}
else {
return true;
}
}));
if (this.nzMode === 'tags' && this.searchValue) {
/** @type {?} */
var matchedItem = this.listOfTagAndTemplateItem.find((/**
* @param {?} item
* @return {?}
*/
function (item) { return item.nzLabel === _this.searchValue; }));
if (!matchedItem) {
/** @type {?} */
var tagItem = this.generateTagItem(this.searchValue);
listOfContainerItem = __spread([tagItem], listOfContainerItem);
this.activatedValue = tagItem.nzValue;
}
else {
this.activatedValue = matchedItem.nzValue;
}
}
if (this.listOfValue.length !== 0 &&
listOfContainerItem.findIndex((/**
* @param {?} item
* @return {?}
*/
function (item) { return _this.compareWith(item.nzValue, _this.activatedValue); })) === -1) {
/** @type {?} */
var activatedItem = listOfContainerItem.find((/**
* @param {?} item
* @return {?}
*/
function (item) { return _this.compareWith(item.nzValue, _this.listOfValue[0]); })) || listOfContainerItem[0];
this.activatedValue = (activatedItem && activatedItem.nzValue) || null;
}
/** @type {?} */
var listOfGroupLabel = [];
if (this.isReactiveDriven) {
listOfGroupLabel = __spread(new Set(this.nzOptions.filter((/**
* @param {?} o
* @return {?}
*/
function (o) { return o.groupLabel; })).map((/**
* @param {?} o
* @return {?}
*/
function (o) { return (/** @type {?} */ (o.groupLabel)); }))));
}
else {
if (this.listOfNzOptionGroupComponent) {
listOfGroupLabel = this.listOfNzOptionGroupComponent.map((/**
* @param {?} o
* @return {?}
*/
function (o) { return o.nzLabel; }));
}
}
/** insert group item **/
listOfGroupLabel.forEach((/**
* @param {?} label
* @return {?}
*/
function (label) {
/** @type {?} */
var index = listOfContainerItem.findIndex((/**
* @param {?} item
* @return {?}
*/
function (item) { return label === item.groupLabel; }));
if (index > -1) {
/** @type {?} */
var groupItem = (/** @type {?} */ ({ groupLabel: label, type: 'group', key: label }));
listOfContainerItem.splice(index, 0, groupItem);
}
}));
this.listOfContainerItem = __spread(listOfContainerItem);
this.updateCdkConnectedOverlayPositions();
};
/**
* @return {?}
*/
NzSelectComponent.prototype.clearInput = /**
* @return {?}
*/
function () {
this.nzSelectTopControlComponent.clearInputValue();
};
/**
* @param {?} listOfValue
* @return {?}
*/
NzSelectComponent.prototype.updateListOfValue = /**
* @param {?} listOfValue
* @return {?}
*/
function (listOfValue) {
/** @type {?} */
var covertListToModel = (/**
* @param {?} list
* @param {?} mode
* @return {?}
*/
function (list, mode) {
if (mode === 'default') {
if (list.length > 0) {
return list[0];
}
else {
return null;
}
}
else {
return list;
}
});
/** @type {?} */
var model = covertListToModel(listOfValue, this.nzMode);
if (this.value !== model) {
this.listOfValue = listOfValue;
this.listOfValue$.next(listOfValue);
this.value = model;
this.onChange(this.value);
}
};
/**
* @param {?} listOfLabel
* @return {?}
*/
NzSelectComponent.prototype.onTokenSeparate = /**
* @param {?} listOfLabel
* @return {?}
*/
function (listOfLabel) {
var _this = this;
/** @type {?} */
var listOfMatchedValue = this.listOfTagAndTemplateItem
.filter((/**
* @param {?} item
* @return {?}
*/
function (item) { return listOfLabel.findIndex((/**
* @param {?} label
* @return {?}
*/
function (label) { return label === item.nzLabel; })) !== -1; }))
.map((/**
* @param {?} item
* @return {?}
*/
function (item) { return item.nzValue; }))
.filter((/**
* @param {?} item
* @return {?}
*/
function (item) { return _this.listOfValue.findIndex((/**
* @param {?} v
* @return {?}
*/
function (v) { return _this.compareWith(v, item); })) === -1; }));
if (this.nzMode === 'multiple') {
this.updateListOfValue(__spread(this.listOfValue, listOfMatchedValue));
}
else if (this.nzMode === 'tags') {
/** @type {?} */
var listOfUnMatchedLabel = listOfLabel.filter((/**
* @param {?} label
* @return {?}
*/
function (label) { return _this.listOfTagAndTemplateItem.findIndex((/**
* @param {?} item
* @return {?}
*/
function (item) { return item.nzLabel === label; })) === -1; }));
this.updateListOfValue(__spread(this.listOfValue, listOfMatchedValue, listOfUnMatchedLabel));
}
this.clearInput();
};
/**
* @param {?} e
* @return {?}
*/
NzSelectComponent.prototype.onKeyDown = /**
* @param {?} e
* @return {?}
*/
function (e) {
var _this = this;
if (this.nzDisabled) {
return;
}
/** @type {?} */
var listOfFilteredOptionNotDisabled = this.listOfContainerItem.filter((/**
* @param {?} item
* @return {?}
*/
function (item) { return item.type === 'item'; })).filter((/**
* @param {?} item
* @return {?}
*/
function (item) { return !item.nzDisabled; }));
/** @type {?} */
var activatedIndex = listOfFilteredOptionNotDisabled.findIndex((/**
* @param {?} item
* @return {?}
*/
function (item) { return _this.compareWith(item.nzValue, _this.activatedValue); }));
switch (e.keyCode) {
case UP_ARROW:
e.preventDefault();
if (this.nzOpen) {
/** @type {?} */
var preIndex = activatedIndex > 0 ? activatedIndex - 1 : listOfFilteredOptionNotDisabled.length - 1;
this.activatedValue = listOfFilteredOptionNotDisabled[preIndex].nzValue;
}
break;
case DOWN_ARROW:
e.preventDefault();
if (this.nzOpen) {
/** @type {?} */
var nextIndex = activatedIndex < listOfFilteredOptionNotDisabled.length - 1 ? activatedIndex + 1 : 0;
this.activatedValue = listOfFilteredOptionNotDisabled[nextIndex].nzValue;
}
else {
this.setOpenState(true);
}
break;
case ENTER:
e.preventDefault();
if (this.nzOpen) {
if (this.activatedValue) {
this.onItemClick(this.activatedValue);
}
}
else {
this.setOpenState(true);
}
break;
case SPACE:
if (!this.nzOpen) {
this.setOpenState(true);
e.preventDefault();
}
break;
case TAB:
this.setOpenState(false);
break;
case ESCAPE:
this.setOpenState(false);
break;
default:
if (!this.nzOpen) {
this.setOpenState(true);
}
}
};
/**
* @param {?} value
* @return {?}
*/
NzSelectComponent.prototype.setOpenState = /**
* @param {?} value
* @return {?}
*/
function (value) {
if (this.nzOpen !== value) {
this.nzOpen = value;
this.nzOpenChange.emit(value);
this.onOpenChange();
this.cdr.markForCheck();
}
};
/**
* @return {?}
*/
NzSelectComponent.prototype.onOpenChange = /**
* @return {?}
*/
function () {
this.updateCdkConnectedOverlayStatus();
this.clearInput();
};
/**
* @param {?} value
* @return {?}
*/
NzSelectComponent.prototype.onInputValueChange = /**
* @param {?} value
* @return {?}
*/
function (value) {
this.searchValue = value;
this.updateListOfContainerItem();
this.nzOnSearch.emit(value);
this.updateCdkConnectedOverlayPositions();
};
/**
* @return {?}
*/
NzSelectComponent.prototype.onClearSelection = /**
* @return {?}
*/
function () {
this.updateListOfValue([]);
};
/**
* @return {?}
*/
NzSelectComponent.prototype.focus = /**
* @return {?}
*/
function () {
this.nzSelectTopControlComponent.focus();
};
/**
* @return {?}
*/
NzSelectComponent.prototype.blur = /**
* @return {?}
*/
function () {
this.nzSelectTopControlComponent.blur();
};
/**
* @param {?} position
* @return {?}
*/
NzSelectComponent.prototype.onPositionChange = /**
* @param {?} position
* @return {?}
*/
function (position) {
this.dropDownPosition = position.connectionPair.originY;
};
/**
* @return {?}
*/
NzSelectComponent.prototype.updateCdkConnectedOverlayStatus = /**
* @return {?}
*/
function () {
if (this.platform.isBrowser && this.originElement.nativeElement) {
this.triggerWidth = this.originElement.nativeElement.getBoundingClientRect().width;
}
};
/**
* @return {?}
*/
NzSelectComponent.prototype.updateCdkConnectedOverlayPositions = /**
* @return {?}
*/
function () {
if (this.cdkConnectedOverlay.overlayRef) {
this.cdkConnectedOverlay.overlayRef.updatePosition();
}
};
/**
* @param {?} modelValue
* @return {?}
*/
NzSelectComponent.prototype.writeValue = /**
* @param {?} modelValue
* @return {?}
*/
function (modelValue) {
/** https://github.com/angular/angular/issues/14988 **/
if (this.value !== modelValue) {
this.value = modelValue;
/** @type {?} */
var covertModelToList = (/**
* @param {?} model
* @param {?} mode
* @return {?}
*/
function (model, mode) {
if (model === null || model === undefined) {
return [];
}
else if (mode === 'default') {
return [model];
}
else {
return model;
}
});
/** @type {?} */
var listOfValue = covertModelToList(modelValue, this.nzMode);
this.listOfValue = listOfValue;
this.listOfValue$.next(listOfValue);
this.cdr.markForCheck();
}
};
/**
* @param {?} fn
* @return {?}
*/
NzSelectComponent.prototype.registerOnChange = /**
* @param {?} fn
* @return {?}
*/
function (fn) {
this.onChange = fn;
};
/**
* @param {?} fn
* @return {?}
*/
NzSelectComponent.prototype.registerOnTouched = /**
* @param {?} fn
* @return {?}
*/
function (fn) {
this.onTouched = fn;
};
/**
* @param {?} disabled
* @return {?}
*/
NzSelectComponent.prototype.setDisabledState = /**
* @param {?} disabled
* @return {?}
*/
function (disabled) {
this.nzDisabled = disabled;
if (disabled) {
this.setOpenState(false);
}
this.cdr.markForCheck();
};
/**
* @param {?} changes
* @return {?}
*/
NzSelectComponent.prototype.ngOnChanges = /**
* @param {?} changes
* @return {?}
*/
function (changes) {
var nzOpen = changes.nzOpen, nzDisabled = changes.nzDisabled, nzOptions = changes.nzOptions;
if (nzOpen) {
this.onOpenChange();
}
if (nzDisabled && this.nzDisabled) {
this.setOpenState(false);
}
if (nzOptions) {
this.isReactiveDriven = true;
/** @type {?} */
var listOfOptions = this.nzOptions || [];
/** @type {?} */
var listOfTransformedItem = listOfOptions.map((/**
* @param {?} item
* @return {?}
*/
function (item) {
return {
template: item.label instanceof TemplateRef ? item.label : null,
nzLabel: typeof item.label === 'string' ? item.label : null,
nzValue: item.value,
nzDisabled: item.disabled || false,
nzHide: item.hide || false,
nzCustomContent: item.label instanceof TemplateRef,
groupLabel: item.groupLabel || null,
type: 'item',
key: item.value
};
}));
this.listOfTemplateItem$.next(listOfTransformedItem);
}
};
/**
* @return {?}
*/
NzSelectComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
var _this = this;
this.focusMonitor
.monitor(this.elementRef, true)
.pipe(takeUntil(this.destroy$))
.subscribe((/**
* @param {?} focusOrigin
* @return {?}
*/
function (focusOrigin) {
if (!focusOrigin) {
_this.focused = false;
_this.cdr.markForCheck();
_this.nzBlur.emit();
Promise.resolve().then((/**
* @return {?}
*/
function () {
_this.onTouched();
}));
}
else {
_this.focused = true;
_this.cdr.markForCheck();
_this.nzFocus.emit();
}
}));
combineLatest([this.listOfValue$, this.listOfTemplateItem$])
.pipe(takeUntil(this.destroy$))
.subscribe((/**
* @param {?} __0
* @return {?}
*/
function (_a) {
var _b = __read(_a, 2), listOfSelectedValue = _b[0], listOfTemplateItem = _b[1];
/** @type {?} */
var listOfTagItem = listOfSelectedValue
.filter((/**
* @return {?}
*/
function () { return _this.nzMode === 'tags'; }))
.filter((/**
* @param {?} value
* @return {?}
*/
function (value) { return listOfTemplateItem.findIndex((/**
* @param {?} o
* @return {?}
*/
function (o) { return _this.compareWith(o.nzValue, value); })) === -1; }))
.map((/**
* @param {?} value
* @return {?}
*/
function (value) { return _this.listOfTopItem.find((/**
* @param {?} o
* @return {?}
*/
function (o) { return _this.compareWith(o.nzValue, value); })) || _this.generateTagItem(value); }));
_this.listOfTagAndTemplateItem = __spread(listOfTemplateItem, listOfTagItem);
_this.listOfTopItem = _this.listOfValue
.map((/**
* @param {?} v
* @return {?}
*/
function (v) { return (/** @type {?} */ (__spread(_this.listOfTagAndTemplateItem, _this.listOfTopItem).find((/**
* @param {?} item
* @return {?}
*/
function (item) { return _this.compareWith(v, item.nzValue); })))); }))
.filter((/**
* @param {?} item
* @return {?}
*/
function (item) { return !!item; }));
_this.updateListOfContainerItem();
}));
};
/**
* @return {?}
*/
NzSelectComponent.prototype.ngAfterViewInit = /**
* @return {?}
*/
function () {
this.updateCdkConnectedOverlayStatus();
};
/**
* @return {?}
*/
NzSelectComponent.prototype.ngAfterContentInit = /**
* @return {?}
*/
function () {
var _this = this;
if (!this.isReactiveDriven) {
merge(this.listOfNzOptionGroupComponent.changes, this.listOfNzOptionComponent.changes)
.pipe(startWith(true), switchMap((/**
* @return {?}
*/
function () {
return merge.apply(void 0, __spread([
_this.listOfNzOptionComponent.changes,
_this.listOfNzOptionGroupComponent.changes
], _this.listOfNzOptionComponent.map((/**
* @param {?} option
* @return {?}
*/
function (option) { return option.changes; })), _this.listOfNzOptionGroupComponent.map((/**
* @param {?} option
* @return {?}
*/
function (option) { return option.changes; })))).pipe(startWith(true));
})), takeUntil(this.destroy$))
.subscribe((/**
* @return {?}
*/
function () {
/** @type {?} */
var listOfOptionInterface = _this.listOfNzOptionComponent.toArray().map((/**
* @param {?} item
* @return {?}
*/
function (item) {
var template = item.template, nzLabel = item.nzLabel, nzValue = item.nzValue, nzDisabled = item.nzDisabled, nzHide = item.nzHide, nzCustomContent = item.nzCustomContent, groupLabel = item.groupLabel;
return { template: template, nzLabel: nzLabel, nzValue: nzValue, nzDisabled: nzDisabled, nzHide: nzHide, nzCustomContent: nzCustomContent, groupLabel: groupLabel, type: 'item', key: nzValue };
}));
_this.listOfTemplateItem$.next(listOfOptionInterface);
_this.cdr.markForCheck();
}));
}
};
/**
* @return {?}
*/
NzSelectComponent.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
this.destroy$.next();
this.destroy$.complete();
};
NzSelectComponent.decorators = [
{ type: Component, args: [{
selector: 'nz-select',
exportAs: 'nzSelect',
preserveWhitespaces: false,
providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef((/**
* @return {?}
*/
function () { return NzSelectComponent; })),
multi: true
}
],
changeDetection: ChangeDetectionStrategy.OnPush,
encapsulation: ViewEncapsulation.None,
animations: [slideMotion],
template: "\n <nz-select-top-control\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n [open]=\"nzOpen\"\n [disabled]=\"nzDisabled\"\n [mode]=\"nzMode\"\n [@.disabled]=\"noAnimation?.nzNoAnimation\"\n [nzNoAnimation]=\"noAnimation?.nzNoAnimation\"\n [maxTagPlaceholder]=\"nzMaxTagPlaceholder\"\n [removeIcon]=\"nzRemoveIcon\"\n [placeHolder]=\"nzPlaceHolder\"\n [maxTagCount]=\"nzMaxTagCount\"\n [customTemplate]=\"nzCustomTemplate\"\n [tokenSeparators]=\"nzTokenSeparators\"\n [showSearch]=\"nzShowSearch\"\n [autofocus]=\"nzAutoFocus\"\n [listOfTopItem]=\"listOfTopItem\"\n (inputValueChange)=\"onInputValueChange($event)\"\n (tokenize)=\"onTokenSeparate($event)\"\n (animationEnd)=\"updateCdkConnectedOverlayPositions()\"\n (deleteItem)=\"onItemDelete($event)\"\n (keydown)=\"onKeyDown($event)\"\n (openChange)=\"setOpenState($event)\"\n ></nz-select-top-control>\n <nz-select-clear\n *ngIf=\"nzAllowClear && !nzDisabled && listOfValue.length\"\n [clearIcon]=\"nzClearIcon\"\n (clear)=\"onClearSelection()\"\n ></nz-select-clear>\n <nz-select-arrow\n *ngIf=\"nzShowArrow && nzMode === 'default'\"\n [loading]=\"nzLoading\"\n [search]=\"nzOpen && nzShowSearch\"\n [suffixIcon]=\"nzSuffixIcon\"\n ></nz-select-arrow>\n <ng-template\n cdkConnectedOverlay\n nzConnectedOverlay\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayMinWidth]=\"$any(nzDropdownMatchSelectWidth ? null : triggerWidth)\"\n [cdkConnectedOverlayWidth]=\"$any(nzDropdownMatchSelectWidth ? triggerWidth : null)\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayTransformOriginOn]=\"'.ant-select-dropdown'\"\n [cdkConnectedOverlayPanelClass]=\"nzDropdownClassName!\"\n (backdropClick)=\"setOpenState(false)\"\n (detach)=\"setOpenState(false)\"\n (positionChange)=\"onPositionChange($event)\"\n [cdkConnectedOverlayOpen]=\"nzOpen\"\n >\n <nz-option-container\n [ngStyle]=\"nzDropdownStyle\"\n [itemSize]=\"nzOptionHeightPx\"\n [maxItemLength]=\"nzOptionOverflowSize\"\n [matchWidth]=\"nzDropdownMatchSelectWidth\"\n [class.ant-select-dropdown-placement-bottomLeft]=\"dropDownPosition === 'bottom'\"\n [class.ant-select-dropdown-placement-topLeft]=\"dropDownPosition === 'top'\"\n [@slideMotion]=\"'enter'\"\n [@.disabled]=\"noAnimation?.nzNoAnimation\"\n [nzNoAnimation]=\"noAnimation?.nzNoAnimation\"\n [listOfContainerItem]=\"listOfContainerItem\"\n [menuItemSelectedIcon]=\"nzMenuItemSelectedIcon\"\n [notFoundContent]=\"nzNotFoundContent\"\n [activatedValue]=\"activatedValue\"\n [listOfSelectedValue]=\"listOfValue\"\n [dropdownRender]=\"nzDropdownRender\"\n [compareWith]=\"compareWith\"\n [mode]=\"nzMode\"\n (keydown)=\"onKeyDown($event)\"\n (itemClick)=\"onItemClick($event)\"\n (scrollToBottom)=\"nzScrollToBottom.emit()\"\n ></nz-option-container>\n </ng-template>\n ",
host: {
'[class.ant-select]': 'true',
'[class.ant-select-lg]': 'nzSize === "large"',
'[class.ant-select-sm]': 'nzSize === "small"',
'[class.ant-select-show-arrow]': "nzShowArrow && nzMode === 'default'",
'[class.ant-select-disabled]': 'nzDisabled',
'[class.ant-select-show-search]': "nzShowSearch || nzMode !== 'default'",
'[class.ant-select-allow-clear]': 'nzAllowClear',
'[class.ant-select-borderless]': 'nzBorderless',
'[class.ant-select-open]': 'nzOpen',
'[class.ant-select-focused]': 'nzOpen || focused',
'[class.ant-select-single]': "nzMode === 'default'",
'[class.ant-select-multiple]': "nzMode !== 'default'"
}
}] }
];
/** @nocollapse */
NzSelectComponent.ctorParameters = function () { return [
{ type: NzConfigService },
{ type: ChangeDetectorRef },
{ type: ElementRef },
{ type: Platform },
{ type: FocusMonitor },
{ type: NzNoAnimationDirective, decorators: [{ type: Host }, { type: Optional }] }
]; };
NzSelectComponent.propDecorators = {
nzSize: [{ type: Input }],
nzOptionHeightPx: [{ type: Input }],
nzOptionOverflowSize: [{ type: Input }],
nzDropdownClassName: [{ type: Input }],
nzDropdownMatchSelectWidth: [{ type: Input }],
nzDropdownStyle: [{ type: Input }],
nzNotFoundContent: [{ type: Input }],
nzPlaceHolder: [{ type: Input }],
nzMaxTagCount: [{ type: Input }],
nzDropdownRender: [{ type: Input }],
nzCustomTemplate: [{ type: Input }],
nzSuffixIcon: [{ type: Input }],
nzClearIcon: [{ type: Input }],
nzRemoveIcon: [{ type: Input }],
nzMenuItemSelectedIcon: [{ type: Input }],
nzShowArrow: [{ type: Input }],
nzTokenSeparators: [{ type: Input }],
nzMaxTagPlaceholder: [{ type: Input }],
nzMaxMultipleCount: [{ type: Input }],
nzMode: [{ type: Input }],
nzFilterOption: [{ type: Input }],
compareWith: [{ type: Input }],
nzAllowClear: [{ type: Input }],
nzBorderless: [{ type: Input }],
nzShowSearch: [{ type: Input }],
nzLoading: [{ type: Input }],
nzAutoFocus: [{ type: Input }],
nzAutoClearSearchValue: [{ type: Input }],
nzServerSearch: [{ type: Input }],
nzDisabled: [{ type: Input }],
nzOpen: [{ type: Input }],
nzOptions: [{ type: Input }],
nzOnSearch: [{ type: Output }],
nzScrollToBottom: [{ type: Output }],
nzOpenChange: [{ type: Output }],
nzBlur: [{ type: Output }],
nzFocus: [{ type: Output }],
originElement: [{ type: ViewChild, args: [CdkOverlayOrigin, { static: true, read: ElementRef },] }],
cdkConnectedOverlay: [{ type: ViewChild, args: [CdkConnectedOverlay, { static: true },] }],
nzSelectTopControlComponent: [{ type: ViewChild, args: [NzSelectTopControlComponent, { static: true },] }],
listOfNzOptionComponent: [{ type: ContentChildren, args: [NzOptionComponent, { descendants: true },] }],
listOfNzOptionGroupComponent: [{ type: ContentChildren, args: [NzOptionGroupComponent, { descendants: true },] }],
nzOptionGroupComponentElement: [{ type: ViewChild, args: [NzOptionGroupComponent, { static: true, read: ElementRef },] }],
nzSelectTopControlComponentElement: [{ type: ViewChild, args: [NzSelectTopControlComponent, { static: true, read: ElementRef },] }]
};
__decorate([
WithConfig(NZ_CONFIG_COMPONENT_NAME),
__metadata("design:type", Object)
], NzSelectComponent.prototype, "nzSuffixIcon", void 0);
__decorate([
InputBoolean(),
__metadata("design:type", Object)
], NzSelectComponent.prototype, "nzAllowClear", void 0);
__decorate([
WithConfig(NZ_CONFIG_COMPONENT_NAME), InputBoolean(),
__metadata("design:type", Object)
], NzSelectComponent.prototype, "nzBorderless", void 0);
__decorate([
InputBoolean(),
__metadata("design:type", Object)
], NzSelectComponent.prototype, "nzShowSearch", void 0);
__decorate([
InputBoolean(),
__metadata("design:type", Object)
], NzSelectComponent.prototype, "nzLoading", void 0);
__decorate([
InputBoolean(),
__metadata("design:type", Object)
], NzSelectComponent.prototype, "nzAutoFocus", void 0);
__decorate([
InputBoolean(),
__metadata("design:type", Object)
], NzSelectComponent.prototype, "nzAutoClearSearchValue", void 0);
__decorate([
InputBoolean(),
__metadata("design:type", Object)
], NzSelectComponent.prototype, "nzServerSearch", void 0);
__decorate([
InputBoolean(),
__metadata("design:type", Object)
], NzSelectComponent.prototype, "nzDisabled", void 0);
__decorate([
InputBoolean(),
__metadata("design:type", Object)
], NzSelectComponent.prototype, "nzOpen", void 0);
return NzSelectComponent;
}());
export { NzSelectComponent };
if (false) {
/** @type {?} */
NzSelectComponent.ngAcceptInputType_nzAllowClear;
/** @type {?} */
NzSelectComponent.ngAcceptInputType_nzBorderless;
/** @type {?} */
NzSelectComponent.ngAcceptInputType_nzShowSearch;
/** @type {?} */
NzSelectComponent.ngAcceptInputType_nzLoading;
/** @type {?} */
NzSelectComponent.ngAcceptInputType_nzAutoFocus;
/** @type {?} */
NzSelectComponent.ngAcceptInputType_nzAutoClearSearchValue;
/** @type {?} */
NzSelectComponent.ngAcceptInputType_nzServerSearch;
/** @type {?} */
NzSelectComponent.ngAcceptInputType_nzDisabled;
/** @type {?} */
NzSelectComponent.ngAcceptInputType_nzOpen;
/** @type {?} */
NzSelectComponent.prototype.nzSize;
/** @type {?} */
NzSelectComponent.prototype.nzOptionHeightPx;
/** @type {?} */
NzSelectComponent.prototype.nzOptionOverflowSize;
/** @type {?} */
NzSelectComponent.prototype.nzDropdownClassName;
/** @type {?} */
NzSelectComponent.prototype.nzDropdownMatchSelectWidth;
/** @type {?} */
NzSelectComponent.prototype.nzDropdownStyle;
/** @type {?} */
NzSelectComponent.prototype.nzNotFoundContent;
/** @type {?} */
NzSelectComponent.prototype.nzPlaceHolder;
/** @type {?} */
NzSelectComponent.prototype.nzMaxTagCount;
/** @type {?} */
NzSelectComponent.prototype.nzDropdownRender;
/** @type {?} */
NzSelectComponent.prototype.nzCustomTemplate;
/** @type {?} */
NzSelectComponent.prototype.nzSuffixIcon;
/** @type {?} */
NzSelectComponent.prototype.nzClearIcon;
/** @type {?} */
NzSelectComponent.prototype.nzRemoveIcon;
/** @type {?} */
NzSelectComponent.prototype.nzMenuItemSelectedIcon;
/** @type {?} */
NzSelectComponent.prototype.nzShowArrow;
/** @type {?} */
NzSelectComponent.prototype.nzTokenSeparators;
/** @type {?} */
NzSelectComponent.prototype.nzMaxTagPlaceholder;
/** @type {?} */
NzSelectComponent.prototype.nzMaxMultipleCount;
/** @type {?} */
NzSelectComponent.prototype.nzMode;
/** @type {?} */
NzSelectComponent.prototype.nzFilterOption;
/** @type {?} */
NzSelectComponent.prototype.compareWith;
/** @type {?} */
NzSelectComponent.prototype.nzAllowClear;
/** @type {?} */
NzSelectComponent.prototype.nzBorderless;
/** @type {?} */
NzSelectComponent.prototype.nzShowSearch;
/** @type {?} */
NzSelectComponent.prototype.nzLoading;
/** @type {?} */
NzSelectComponent.prototype.nzAutoFocus;
/** @type {?} */
NzSelectComponent.prototype.nzAutoClearSearchValue;
/** @type {?} */
NzSelectComponent.prototype.nzServerSearch;
/** @type {?} */
NzSelectComponent.prototype.nzDisabled;
/** @type {?} */
NzSelectComponent.prototype.nzOpen;
/** @type {?} */
NzSelectComponent.prototype.nzOptions;
/** @type {?} */
NzSelectComponent.prototype.nzOnSearch;
/** @type {?} */
NzSelectComponent.prototype.nzScrollToBottom;
/** @type {?} */
NzSelectComponent.prototype.nzOpenChange;
/** @type {?} */
NzSelectComponent.prototype.nzBlur;
/** @type {?} */
NzSelectComponent.prototype.nzFocus;
/** @type {?} */
NzSelectComponent.prototype.originElement;
/** @type {?} */
NzSelectComponent.prototype.cdkConnectedOverlay;
/** @type {?} */
NzSelectComponent.prototype.nzSelectTopControlComponent;
/** @type {?} */
NzSelectComponent.prototype.listOfNzOptionComponent;
/** @type {?} */
NzSelectComponent.prototype.listOfNzOptionGroupComponent;
/** @type {?} */
NzSelectComponent.prototype.nzOptionGroupComponentElement;
/** @type {?} */
NzSelectComponent.prototype.nzSelectTopControlComponentElement;
/**
* @type {?}
* @private
*/
NzSelectComponent.prototype.listOfValue$;
/**
* @type {?}
* @private
*/
NzSelectComponent.prototype.listOfTemplateItem$;
/**
* @type {?}
* @private
*/
NzSelectComponent.prototype.listOfTagAndTemplateItem;
/**
* @type {?}
* @private
*/
NzSelectComponent.prototype.searchValue;
/**
* @type {?}
* @private
*/
NzSelectComponent.prototype.isReactiveDriven;
/**
* @type {?}
* @private
*/
NzSelectComponent.prototype.value;
/**
* @type {?}
* @private
*/
NzSelectComponent.prototype.destroy$;
/** @type {?} */
NzSelectComponent.prototype.onChange;
/** @type {?} */
NzSelectComponent.prototype.onTouched;
/** @type {?} */
NzSelectComponent.prototype.dropDownPosition;
/** @type {?} */
NzSelectComponent.prototype.triggerWidth;
/** @type {?} */
NzSelectComponent.prototype.listOfContainerItem;
/** @type {?} */
NzSelectComponent.prototype.listOfTopItem;
/** @type {?} */
NzSelectComponent.prototype.activatedValue;
/** @type {?} */
NzSelectComponent.prototype.listOfValue;
/** @type {?} */
NzSelectComponent.prototype.focused;
/** @type {?} */
NzSelectComponent.prototype.nzConfigService;
/**
* @type {?}
* @private
*/
NzSelectComponent.prototype.cdr;
/**
* @type {?}
* @private
*/
NzSelectComponent.prototype.elementRef;
/**
* @type {?}
* @private
*/
NzSelectComponent.prototype.platform;
/**
* @type {?}
* @private
*/
NzSelectComponent.prototype.focusMonitor;
/** @type {?} */
NzSelectComponent.prototype.noAnimation;
}
export { ɵ0 };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLXpvcnJvLWFudGQvc2VsZWN0LyIsInNvdXJjZXMiOlsic2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBS0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBa0MsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUdMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixJQUFJLEVBQ0osS0FBSyxFQUlMLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxFQUVULFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RSxPQUFPLEVBQUUsU0FBUyxF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