ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
1,392 lines (1,386 loc) • 93.1 kB
JavaScript
import { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, EventEmitter, Output, ViewChild, Optional, TemplateRef, ElementRef, Renderer2, Host, forwardRef, ChangeDetectorRef, ContentChildren, NgModule } from '@angular/core';
import { Subject, BehaviorSubject, combineLatest, merge } from 'rxjs';
import { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';
import { __decorate, __metadata, __spread, __read } from 'tslib';
import { InputBoolean } from 'ng-zorro-antd/core/util';
import { startWith, takeUntil, switchMap } from 'rxjs/operators';
import { FocusMonitor, A11yModule } from '@angular/cdk/a11y';
import { BACKSPACE, TAB, SPACE, ENTER, DOWN_ARROW, UP_ARROW } from '@angular/cdk/keycodes';
import { CdkOverlayOrigin, CdkConnectedOverlay, OverlayModule } from '@angular/cdk/overlay';
import { Platform, PlatformModule } from '@angular/cdk/platform';
import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
import { zoomMotion, slideMotion } from 'ng-zorro-antd/core/animation';
import { NzConfigService, WithConfig } from 'ng-zorro-antd/core/config';
import { NzNoAnimationDirective, NzNoAnimationModule } from 'ng-zorro-antd/core/no-animation';
import { CommonModule } from '@angular/common';
import { NzOutletModule } from 'ng-zorro-antd/core/outlet';
import { NzOverlayModule } from 'ng-zorro-antd/core/overlay';
import { ɵNzTransitionPatchModule } from 'ng-zorro-antd/core/transition-patch';
import { NzEmptyModule } from 'ng-zorro-antd/empty';
import { NzI18nModule } from 'ng-zorro-antd/i18n';
import { NzIconModule } from 'ng-zorro-antd/icon';
/**
* @fileoverview added by tsickle
* Generated from: option-group.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var NzOptionGroupComponent = /** @class */ (function () {
function NzOptionGroupComponent() {
this.nzLabel = null;
this.changes = new Subject();
}
/**
* @return {?}
*/
NzOptionGroupComponent.prototype.ngOnChanges = /**
* @return {?}
*/
function () {
this.changes.next();
};
NzOptionGroupComponent.decorators = [
{ type: Component, args: [{
selector: 'nz-option-group',
exportAs: 'nzOptionGroup',
encapsulation: ViewEncapsulation.None,
changeDetection: ChangeDetectionStrategy.OnPush,
template: "\n <ng-content></ng-content>\n "
}] }
];
NzOptionGroupComponent.propDecorators = {
nzLabel: [{ type: Input }]
};
return NzOptionGroupComponent;
}());
if (false) {
/** @type {?} */
NzOptionGroupComponent.prototype.nzLabel;
/** @type {?} */
NzOptionGroupComponent.prototype.changes;
}
/**
* @fileoverview added by tsickle
* Generated from: option-container.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var NzOptionContainerComponent = /** @class */ (function () {
function NzOptionContainerComponent() {
this.notFoundContent = undefined;
this.menuItemSelectedIcon = null;
this.dropdownRender = null;
this.activatedValue = null;
this.listOfSelectedValue = [];
this.mode = 'default';
this.matchWidth = true;
this.itemSize = 32;
this.maxItemLength = 8;
this.listOfContainerItem = [];
this.itemClick = new EventEmitter();
this.scrollToBottom = new EventEmitter();
this.scrolledIndex = 0;
}
/**
* @param {?} value
* @return {?}
*/
NzOptionContainerComponent.prototype.onItemClick = /**
* @param {?} value
* @return {?}
*/
function (value) {
this.itemClick.emit(value);
};
/**
* @param {?} value
* @return {?}
*/
NzOptionContainerComponent.prototype.onItemHover = /**
* @param {?} value
* @return {?}
*/
function (value) {
// TODO: keydown.enter won't activate this value
this.activatedValue = value;
};
/**
* @param {?} _index
* @param {?} option
* @return {?}
*/
NzOptionContainerComponent.prototype.trackValue = /**
* @param {?} _index
* @param {?} option
* @return {?}
*/
function (_index, option) {
return option.key;
};
/**
* @param {?} index
* @return {?}
*/
NzOptionContainerComponent.prototype.onScrolledIndexChange = /**
* @param {?} index
* @return {?}
*/
function (index) {
this.scrolledIndex = index;
if (index === this.listOfContainerItem.length - this.maxItemLength) {
this.scrollToBottom.emit();
}
};
/**
* @return {?}
*/
NzOptionContainerComponent.prototype.scrollToActivatedValue = /**
* @return {?}
*/
function () {
var _this = this;
/** @type {?} */
var index = this.listOfContainerItem.findIndex((/**
* @param {?} item
* @return {?}
*/
function (item) { return _this.compareWith(item.key, _this.activatedValue); }));
if (index < this.scrolledIndex || index >= this.scrolledIndex + this.maxItemLength) {
this.cdkVirtualScrollViewport.scrollToIndex(index || 0);
}
};
/**
* @param {?} changes
* @return {?}
*/
NzOptionContainerComponent.prototype.ngOnChanges = /**
* @param {?} changes
* @return {?}
*/
function (changes) {
var listOfContainerItem = changes.listOfContainerItem, activatedValue = changes.activatedValue;
if (listOfContainerItem || activatedValue) {
this.scrollToActivatedValue();
}
};
/**
* @return {?}
*/
NzOptionContainerComponent.prototype.ngAfterViewInit = /**
* @return {?}
*/
function () {
var _this = this;
setTimeout((/**
* @return {?}
*/
function () { return _this.scrollToActivatedValue(); }));
};
NzOptionContainerComponent.decorators = [
{ type: Component, args: [{
selector: 'nz-option-container',
exportAs: 'nzOptionContainer',
changeDetection: ChangeDetectionStrategy.OnPush,
encapsulation: ViewEncapsulation.None,
preserveWhitespaces: false,
template: "\n <div>\n <div *ngIf=\"listOfContainerItem.length === 0\" class=\"ant-select-item-empty\">\n <nz-embed-empty nzComponentName=\"select\" [specificContent]=\"notFoundContent\"></nz-embed-empty>\n </div>\n <cdk-virtual-scroll-viewport\n [class.full-width]=\"!matchWidth\"\n [itemSize]=\"itemSize\"\n [maxBufferPx]=\"itemSize * maxItemLength\"\n [minBufferPx]=\"itemSize * maxItemLength\"\n (scrolledIndexChange)=\"onScrolledIndexChange($event)\"\n [style.height.px]=\"listOfContainerItem.length * itemSize\"\n [style.max-height.px]=\"itemSize * maxItemLength\"\n >\n <ng-container *cdkVirtualFor=\"let item of listOfContainerItem; trackBy: trackValue\">\n <ng-container [ngSwitch]=\"item.type\">\n <nz-option-item-group *ngSwitchCase=\"'group'\" [nzLabel]=\"item.groupLabel\"></nz-option-item-group>\n <nz-option-item\n *ngSwitchCase=\"'item'\"\n [icon]=\"menuItemSelectedIcon\"\n [customContent]=\"item.nzCustomContent\"\n [template]=\"item.template\"\n [grouped]=\"!!item.groupLabel\"\n [disabled]=\"item.nzDisabled\"\n [showState]=\"mode === 'tags' || mode === 'multiple'\"\n [label]=\"item.nzLabel\"\n [compareWith]=\"compareWith\"\n [activatedValue]=\"activatedValue\"\n [listOfSelectedValue]=\"listOfSelectedValue\"\n [value]=\"item.nzValue\"\n (itemHover)=\"onItemHover($event)\"\n (itemClick)=\"onItemClick($event)\"\n ></nz-option-item>\n </ng-container>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n <ng-template [ngTemplateOutlet]=\"dropdownRender\"></ng-template>\n </div>\n ",
host: {
'[class.ant-select-dropdown]': 'true'
}
}] }
];
NzOptionContainerComponent.propDecorators = {
notFoundContent: [{ type: Input }],
menuItemSelectedIcon: [{ type: Input }],
dropdownRender: [{ type: Input }],
activatedValue: [{ type: Input }],
listOfSelectedValue: [{ type: Input }],
compareWith: [{ type: Input }],
mode: [{ type: Input }],
matchWidth: [{ type: Input }],
itemSize: [{ type: Input }],
maxItemLength: [{ type: Input }],
listOfContainerItem: [{ type: Input }],
itemClick: [{ type: Output }],
scrollToBottom: [{ type: Output }],
cdkVirtualScrollViewport: [{ type: ViewChild, args: [CdkVirtualScrollViewport, { static: true },] }]
};
return NzOptionContainerComponent;
}());
if (false) {
/** @type {?} */
NzOptionContainerComponent.prototype.notFoundContent;
/** @type {?} */
NzOptionContainerComponent.prototype.menuItemSelectedIcon;
/** @type {?} */
NzOptionContainerComponent.prototype.dropdownRender;
/** @type {?} */
NzOptionContainerComponent.prototype.activatedValue;
/** @type {?} */
NzOptionContainerComponent.prototype.listOfSelectedValue;
/** @type {?} */
NzOptionContainerComponent.prototype.compareWith;
/** @type {?} */
NzOptionContainerComponent.prototype.mode;
/** @type {?} */
NzOptionContainerComponent.prototype.matchWidth;
/** @type {?} */
NzOptionContainerComponent.prototype.itemSize;
/** @type {?} */
NzOptionContainerComponent.prototype.maxItemLength;
/** @type {?} */
NzOptionContainerComponent.prototype.listOfContainerItem;
/** @type {?} */
NzOptionContainerComponent.prototype.itemClick;
/** @type {?} */
NzOptionContainerComponent.prototype.scrollToBottom;
/** @type {?} */
NzOptionContainerComponent.prototype.cdkVirtualScrollViewport;
/**
* @type {?}
* @private
*/
NzOptionContainerComponent.prototype.scrolledIndex;
}
/**
* @fileoverview added by tsickle
* Generated from: option.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var NzOptionComponent = /** @class */ (function () {
function NzOptionComponent(nzOptionGroupComponent) {
this.nzOptionGroupComponent = nzOptionGroupComponent;
this.destroy$ = new Subject();
this.changes = new Subject();
this.groupLabel = null;
this.nzLabel = null;
this.nzValue = null;
this.nzDisabled = false;
this.nzHide = false;
this.nzCustomContent = false;
}
/**
* @return {?}
*/
NzOptionComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
var _this = this;
if (this.nzOptionGroupComponent) {
this.nzOptionGroupComponent.changes.pipe(startWith(true), takeUntil(this.destroy$)).subscribe((/**
* @return {?}
*/
function () {
_this.groupLabel = _this.nzOptionGroupComponent.nzLabel;
}));
}
};
/**
* @return {?}
*/
NzOptionComponent.prototype.ngOnChanges = /**
* @return {?}
*/
function () {
this.changes.next();
};
/**
* @return {?}
*/
NzOptionComponent.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
this.destroy$.next();
this.destroy$.complete();
};
NzOptionComponent.decorators = [
{ type: Component, args: [{
selector: 'nz-option',
exportAs: 'nzOption',
encapsulation: ViewEncapsulation.None,
changeDetection: ChangeDetectionStrategy.OnPush,
template: "\n <ng-template>\n <ng-content></ng-content>\n </ng-template>\n "
}] }
];
/** @nocollapse */
NzOptionComponent.ctorParameters = function () { return [
{ type: NzOptionGroupComponent, decorators: [{ type: Optional }] }
]; };
NzOptionComponent.propDecorators = {
template: [{ type: ViewChild, args: [TemplateRef, { static: true },] }],
nzLabel: [{ type: Input }],
nzValue: [{ type: Input }],
nzDisabled: [{ type: Input }],
nzHide: [{ type: Input }],
nzCustomContent: [{ type: Input }]
};
__decorate([
InputBoolean(),
__metadata("design:type", Object)
], NzOptionComponent.prototype, "nzDisabled", void 0);
__decorate([
InputBoolean(),
__metadata("design:type", Object)
], NzOptionComponent.prototype, "nzHide", void 0);
__decorate([
InputBoolean(),
__metadata("design:type", Object)
], NzOptionComponent.prototype, "nzCustomContent", void 0);
return NzOptionComponent;
}());
if (false) {
/** @type {?} */
NzOptionComponent.ngAcceptInputType_nzDisabled;
/** @type {?} */
NzOptionComponent.ngAcceptInputType_nzHide;
/** @type {?} */
NzOptionComponent.ngAcceptInputType_nzCustomContent;
/**
* @type {?}
* @private
*/
NzOptionComponent.prototype.destroy$;
/** @type {?} */
NzOptionComponent.prototype.changes;
/** @type {?} */
NzOptionComponent.prototype.groupLabel;
/** @type {?} */
NzOptionComponent.prototype.template;
/** @type {?} */
NzOptionComponent.prototype.nzLabel;
/** @type {?} */
NzOptionComponent.prototype.nzValue;
/** @type {?} */
NzOptionComponent.prototype.nzDisabled;
/** @type {?} */
NzOptionComponent.prototype.nzHide;
/** @type {?} */
NzOptionComponent.prototype.nzCustomContent;
/**
* @type {?}
* @private
*/
NzOptionComponent.prototype.nzOptionGroupComponent;
}
/**
* @fileoverview added by tsickle
* Generated from: select-search.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
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 = this.mirrorElement.nativeElement;
/** @type {?} */
var hostDOM = this.elementRef.nativeElement;
/** @type {?} */
var inputDOM = this.inputElement.nativeElement;
this.renderer.removeStyle(hostDOM, 'width');
mirrorDOM.innerHTML = inputDOM.value + " ";
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;
}());
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;
}
/**
* @fileoverview added by tsickle
* Generated from: select-top-control.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var NzSelectTopControlComponent = /** @class */ (function () {
function NzSelectTopControlComponent(noAnimation) {
this.noAnimation = noAnimation;
this.showSearch = false;
this.placeHolder = null;
this.open = false;
this.maxTagCount = Infinity;
this.autofocus = false;
this.disabled = false;
this.mode = 'default';
this.customTemplate = null;
this.maxTagPlaceholder = null;
this.removeIcon = null;
this.listOfTopItem = [];
this.tokenSeparators = [];
this.tokenize = new EventEmitter();
this.inputValueChange = new EventEmitter();
this.animationEnd = new EventEmitter();
this.deleteItem = new EventEmitter();
this.openChange = new EventEmitter();
this.listOfSlicedItem = [];
this.isShowPlaceholder = true;
this.isShowSingleLabel = false;
this.isComposing = false;
this.inputValue = null;
}
/**
* @return {?}
*/
NzSelectTopControlComponent.prototype.onHostClick = /**
* @return {?}
*/
function () {
if (!this.disabled) {
this.openChange.next(!this.open);
}
};
/**
* @param {?} e
* @return {?}
*/
NzSelectTopControlComponent.prototype.onHostKeydown = /**
* @param {?} e
* @return {?}
*/
function (e) {
/** @type {?} */
var inputValue = ((/** @type {?} */ (e.target))).value;
if (e.keyCode === BACKSPACE && this.mode !== 'default' && !inputValue && this.listOfTopItem.length > 0) {
e.preventDefault();
this.onDeleteItem(this.listOfTopItem[this.listOfTopItem.length - 1]);
}
};
/**
* @return {?}
*/
NzSelectTopControlComponent.prototype.updateTemplateVariable = /**
* @return {?}
*/
function () {
/** @type {?} */
var isSelectedValueEmpty = this.listOfTopItem.length === 0;
this.isShowPlaceholder = isSelectedValueEmpty && !this.isComposing && !this.inputValue;
this.isShowSingleLabel = !isSelectedValueEmpty && !this.isComposing && !this.inputValue;
};
/**
* @param {?} isComposing
* @return {?}
*/
NzSelectTopControlComponent.prototype.isComposingChange = /**
* @param {?} isComposing
* @return {?}
*/
function (isComposing) {
this.isComposing = isComposing;
this.updateTemplateVariable();
};
/**
* @param {?} value
* @return {?}
*/
NzSelectTopControlComponent.prototype.onInputValueChange = /**
* @param {?} value
* @return {?}
*/
function (value) {
if (value !== this.inputValue) {
this.inputValue = value;
this.updateTemplateVariable();
this.inputValueChange.emit(value);
this.tokenSeparate(value, this.tokenSeparators);
}
};
/**
* @param {?} inputValue
* @param {?} tokenSeparators
* @return {?}
*/
NzSelectTopControlComponent.prototype.tokenSeparate = /**
* @param {?} inputValue
* @param {?} tokenSeparators
* @return {?}
*/
function (inputValue, tokenSeparators) {
/** @type {?} */
var includesSeparators = (/**
* @param {?} str
* @param {?} separators
* @return {?}
*/
function (str, separators) {
// tslint:disable-next-line:prefer-for-of
for (var i = 0; i < separators.length; ++i) {
if (str.lastIndexOf(separators[i]) > 0) {
return true;
}
}
return false;
});
/** @type {?} */
var splitBySeparators = (/**
* @param {?} str
* @param {?} separators
* @return {?}
*/
function (str, separators) {
/** @type {?} */
var reg = new RegExp("[" + separators.join() + "]");
/** @type {?} */
var array = ((/** @type {?} */ (str))).split(reg).filter((/**
* @param {?} token
* @return {?}
*/
function (token) { return token; }));
return __spread(new Set(array));
});
if (inputValue &&
inputValue.length &&
tokenSeparators.length &&
this.mode !== 'default' &&
includesSeparators(inputValue, tokenSeparators)) {
/** @type {?} */
var listOfLabel = splitBySeparators(inputValue, tokenSeparators);
this.tokenize.next(listOfLabel);
}
};
/**
* @return {?}
*/
NzSelectTopControlComponent.prototype.clearInputValue = /**
* @return {?}
*/
function () {
if (this.nzSelectSearchComponent) {
this.nzSelectSearchComponent.clearInputValue();
}
};
/**
* @return {?}
*/
NzSelectTopControlComponent.prototype.focus = /**
* @return {?}
*/
function () {
if (this.nzSelectSearchComponent) {
this.nzSelectSearchComponent.focus();
}
};
/**
* @return {?}
*/
NzSelectTopControlComponent.prototype.blur = /**
* @return {?}
*/
function () {
if (this.nzSelectSearchComponent) {
this.nzSelectSearchComponent.blur();
}
};
/**
* @param {?} _index
* @param {?} option
* @return {?}
*/
NzSelectTopControlComponent.prototype.trackValue = /**
* @param {?} _index
* @param {?} option
* @return {?}
*/
function (_index, option) {
return option.nzValue;
};
/**
* @param {?} item
* @return {?}
*/
NzSelectTopControlComponent.prototype.onDeleteItem = /**
* @param {?} item
* @return {?}
*/
function (item) {
if (!this.disabled && !item.nzDisabled) {
this.deleteItem.next(item);
}
};
/**
* @return {?}
*/
NzSelectTopControlComponent.prototype.onAnimationEnd = /**
* @return {?}
*/
function () {
this.animationEnd.next();
};
/**
* @param {?} changes
* @return {?}
*/
NzSelectTopControlComponent.prototype.ngOnChanges = /**
* @param {?} changes
* @return {?}
*/
function (changes) {
var _this = this;
var listOfTopItem = changes.listOfTopItem, maxTagCount = changes.maxTagCount, customTemplate = changes.customTemplate, maxTagPlaceholder = changes.maxTagPlaceholder;
if (listOfTopItem) {
this.updateTemplateVariable();
}
if (listOfTopItem || maxTagCount || customTemplate || maxTagPlaceholder) {
/** @type {?} */
var listOfSlicedItem = this.listOfTopItem.slice(0, this.maxTagCount).map((/**
* @param {?} o
* @return {?}
*/
function (o) {
return {
nzLabel: o.nzLabel,
nzValue: o.nzValue,
nzDisabled: o.nzDisabled,
contentTemplateOutlet: _this.customTemplate,
contentTemplateOutletContext: o
};
}));
if (this.listOfTopItem.length > this.maxTagCount) {
/** @type {?} */
var exceededLabel = "+ " + (this.listOfTopItem.length - this.maxTagCount) + " ...";
/** @type {?} */
var listOfSelectedValue = this.listOfTopItem.map((/**
* @param {?} item
* @return {?}
*/
function (item) { return item.nzValue; }));
/** @type {?} */
var exceededItem = {
nzLabel: exceededLabel,
nzValue: '$$__nz_exceeded_item',
nzDisabled: true,
contentTemplateOutlet: this.maxTagPlaceholder,
contentTemplateOutletContext: listOfSelectedValue.slice(this.maxTagCount)
};
listOfSlicedItem.push(exceededItem);
}
this.listOfSlicedItem = listOfSlicedItem;
}
};
NzSelectTopControlComponent.decorators = [
{ type: Component, args: [{
selector: 'nz-select-top-control',
exportAs: 'nzSelectTopControl',
preserveWhitespaces: false,
animations: [zoomMotion],
changeDetection: ChangeDetectionStrategy.OnPush,
encapsulation: ViewEncapsulation.None,
template: "\n <!--single mode-->\n <ng-container [ngSwitch]=\"mode\">\n <ng-container *ngSwitchCase=\"'default'\">\n <nz-select-item\n *ngIf=\"isShowSingleLabel\"\n [deletable]=\"false\"\n [disabled]=\"false\"\n [removeIcon]=\"removeIcon\"\n [label]=\"listOfTopItem[0].nzLabel\"\n [contentTemplateOutlet]=\"customTemplate\"\n [contentTemplateOutletContext]=\"listOfTopItem[0]\"\n ></nz-select-item>\n <nz-select-search\n [disabled]=\"disabled\"\n [value]=\"inputValue\"\n [showInput]=\"open && showSearch\"\n [mirrorSync]=\"false\"\n [autofocus]=\"autofocus\"\n [focusTrigger]=\"open\"\n (isComposingChange)=\"isComposingChange($event)\"\n (valueChange)=\"onInputValueChange($event)\"\n ></nz-select-search>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <!--multiple or tags mode-->\n <nz-select-item\n *ngFor=\"let item of listOfSlicedItem; trackBy: trackValue\"\n [@zoomMotion]\n [@.disabled]=\"noAnimation?.nzNoAnimation\"\n [nzNoAnimation]=\"noAnimation?.nzNoAnimation\"\n [removeIcon]=\"removeIcon\"\n [label]=\"item.nzLabel\"\n [disabled]=\"item.nzDisabled || disabled\"\n [contentTemplateOutlet]=\"item.contentTemplateOutlet\"\n [deletable]=\"true\"\n [contentTemplateOutletContext]=\"item.contentTemplateOutletContext\"\n (@zoomMotion.done)=\"onAnimationEnd()\"\n (delete)=\"onDeleteItem(item.contentTemplateOutletContext)\"\n >\n </nz-select-item>\n <nz-select-search\n [disabled]=\"disabled\"\n [value]=\"inputValue\"\n [autofocus]=\"autofocus\"\n [showInput]=\"true\"\n [mirrorSync]=\"true\"\n [focusTrigger]=\"open\"\n (isComposingChange)=\"isComposingChange($event)\"\n (valueChange)=\"onInputValueChange($event)\"\n ></nz-select-search>\n </ng-container>\n </ng-container>\n <nz-select-placeholder *ngIf=\"isShowPlaceholder\" [placeholder]=\"placeHolder\"></nz-select-placeholder>\n ",
host: {
'[class.ant-select-selector]': 'true',
'(click)': 'onHostClick()',
'(keydown)': 'onHostKeydown($event)'
}
}] }
];
/** @nocollapse */
NzSelectTopControlComponent.ctorParameters = function () { return [
{ type: NzNoAnimationDirective, decorators: [{ type: Host }, { type: Optional }] }
]; };
NzSelectTopControlComponent.propDecorators = {
showSearch: [{ type: Input }],
placeHolder: [{ type: Input }],
open: [{ type: Input }],
maxTagCount: [{ type: Input }],
autofocus: [{ type: Input }],
disabled: [{ type: Input }],
mode: [{ type: Input }],
customTemplate: [{ type: Input }],
maxTagPlaceholder: [{ type: Input }],
removeIcon: [{ type: Input }],
listOfTopItem: [{ type: Input }],
tokenSeparators: [{ type: Input }],
tokenize: [{ type: Output }],
inputValueChange: [{ type: Output }],
animationEnd: [{ type: Output }],
deleteItem: [{ type: Output }],
openChange: [{ type: Output }],
nzSelectSearchComponent: [{ type: ViewChild, args: [NzSelectSearchComponent,] }]
};
return NzSelectTopControlComponent;
}());
if (false) {
/** @type {?} */
NzSelectTopControlComponent.prototype.showSearch;
/** @type {?} */
NzSelectTopControlComponent.prototype.placeHolder;
/** @type {?} */
NzSelectTopControlComponent.prototype.open;
/** @type {?} */
NzSelectTopControlComponent.prototype.maxTagCount;
/** @type {?} */
NzSelectTopControlComponent.prototype.autofocus;
/** @type {?} */
NzSelectTopControlComponent.prototype.disabled;
/** @type {?} */
NzSelectTopControlComponent.prototype.mode;
/** @type {?} */
NzSelectTopControlComponent.prototype.customTemplate;
/** @type {?} */
NzSelectTopControlComponent.prototype.maxTagPlaceholder;
/** @type {?} */
NzSelectTopControlComponent.prototype.removeIcon;
/** @type {?} */
NzSelectTopControlComponent.prototype.listOfTopItem;
/** @type {?} */
NzSelectTopControlComponent.prototype.tokenSeparators;
/** @type {?} */
NzSelectTopControlComponent.prototype.tokenize;
/** @type {?} */
NzSelectTopControlComponent.prototype.inputValueChange;
/** @type {?} */
NzSelectTopControlComponent.prototype.animationEnd;
/** @type {?} */
NzSelectTopControlComponent.prototype.deleteItem;
/** @type {?} */
NzSelectTopControlComponent.prototype.openChange;
/** @type {?} */
NzSelectTopControlComponent.prototype.nzSelectSearchComponent;
/** @type {?} */
NzSelectTopControlComponent.prototype.listOfSlicedItem;
/** @type {?} */
NzSelectTopControlComponent.prototype.isShowPlaceholder;
/** @type {?} */
NzSelectTopControlComponent.prototype.isShowSingleLabel;
/** @type {?} */
NzSelectTopControlComponent.prototype.isComposing;
/** @type {?} */
NzSelectTopControlComponent.prototype.inputValue;
/** @type {?} */
NzSelectTopControlComponent.prototype.noAnimation;
}
/**
* @fileoverview added by tsickle
* Generated from: select.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/** @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.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 = [];
}
/**
* @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 &&
this.listOfTagAndTemplateItem.findIndex((/**
* @param {?} item
* @return {?}
*/
function (item) { return item.nzLabel === _this.searchValue; })) === -1) {
/** @type {?} */
var tagItem = this.generateTagItem(this.searchValue);
listOfContainerItem = __spread([tagItem], listOfContainerItem);
this.activatedValue = tagItem.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; }));
/** @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;
}
};
/**
* @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();
};
/*