UNPKG

ng-zorro-antd

Version:

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

1,132 lines 94.4 kB
/** * @fileoverview added by tsickle * Generated from: select.component.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { __decorate, __metadata } 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 {?} */ const defaultFilterOption = (/** * @param {?} searchValue * @param {?} item * @return {?} */ (searchValue, item) => { if (item && item.nzLabel) { return item.nzLabel.toLowerCase().indexOf(searchValue.toLowerCase()) > -1; } else { return false; } }); const ɵ0 = defaultFilterOption; /** @type {?} */ const NZ_CONFIG_COMPONENT_NAME = 'select'; export class NzSelectComponent { /** * @param {?} nzConfigService * @param {?} cdr * @param {?} elementRef * @param {?} platform * @param {?} focusMonitor * @param {?=} noAnimation */ constructor(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 {?} */ (o1, o2) => 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 {?} */ () => { }); this.onTouched = (/** * @return {?} */ () => { }); this.dropDownPosition = 'bottom'; this.triggerWidth = null; this.listOfContainerItem = []; this.listOfTopItem = []; this.activatedValue = null; this.listOfValue = []; this.focused = false; } /** * @param {?} value * @return {?} */ generateTagItem(value) { return { nzValue: value, nzLabel: value, type: 'item' }; } /** * @param {?} value * @return {?} */ onItemClick(value) { 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 {?} */ const targetIndex = this.listOfValue.findIndex((/** * @param {?} o * @return {?} */ o => this.compareWith(o, value))); if (targetIndex !== -1) { /** @type {?} */ const listOfValueAfterRemoved = this.listOfValue.filter((/** * @param {?} _ * @param {?} i * @return {?} */ (_, i) => i !== targetIndex)); this.updateListOfValue(listOfValueAfterRemoved); } else if (this.listOfValue.length < this.nzMaxMultipleCount) { /** @type {?} */ const listOfValueAfterAdded = [...this.listOfValue, value]; this.updateListOfValue(listOfValueAfterAdded); } this.focus(); if (this.nzAutoClearSearchValue) { this.clearInput(); } } } /** * @param {?} item * @return {?} */ onItemDelete(item) { /** @type {?} */ const listOfSelectedValue = this.listOfValue.filter((/** * @param {?} v * @return {?} */ v => !this.compareWith(v, item.nzValue))); this.updateListOfValue(listOfSelectedValue); this.clearInput(); } /** * @return {?} */ updateListOfContainerItem() { /** @type {?} */ let listOfContainerItem = this.listOfTagAndTemplateItem .filter((/** * @param {?} item * @return {?} */ item => !item.nzHide)) .filter((/** * @param {?} item * @return {?} */ item => { if (!this.nzServerSearch && this.searchValue) { return this.nzFilterOption(this.searchValue, item); } else { return true; } })); if (this.nzMode === 'tags' && this.searchValue) { /** @type {?} */ const matchedItem = this.listOfTagAndTemplateItem.find((/** * @param {?} item * @return {?} */ item => item.nzLabel === this.searchValue)); if (!matchedItem) { /** @type {?} */ const tagItem = this.generateTagItem(this.searchValue); listOfContainerItem = [tagItem, ...listOfContainerItem]; this.activatedValue = tagItem.nzValue; } else { this.activatedValue = matchedItem.nzValue; } } if (this.listOfValue.length !== 0 && listOfContainerItem.findIndex((/** * @param {?} item * @return {?} */ item => this.compareWith(item.nzValue, this.activatedValue))) === -1) { /** @type {?} */ const activatedItem = listOfContainerItem.find((/** * @param {?} item * @return {?} */ item => this.compareWith(item.nzValue, this.listOfValue[0]))) || listOfContainerItem[0]; this.activatedValue = (activatedItem && activatedItem.nzValue) || null; } /** @type {?} */ let listOfGroupLabel = []; if (this.isReactiveDriven) { listOfGroupLabel = [...new Set(this.nzOptions.filter((/** * @param {?} o * @return {?} */ o => o.groupLabel)).map((/** * @param {?} o * @return {?} */ o => (/** @type {?} */ (o.groupLabel)))))]; } else { if (this.listOfNzOptionGroupComponent) { listOfGroupLabel = this.listOfNzOptionGroupComponent.map((/** * @param {?} o * @return {?} */ o => o.nzLabel)); } } /** insert group item **/ listOfGroupLabel.forEach((/** * @param {?} label * @return {?} */ label => { /** @type {?} */ const index = listOfContainerItem.findIndex((/** * @param {?} item * @return {?} */ item => label === item.groupLabel)); if (index > -1) { /** @type {?} */ const groupItem = (/** @type {?} */ ({ groupLabel: label, type: 'group', key: label })); listOfContainerItem.splice(index, 0, groupItem); } })); this.listOfContainerItem = [...listOfContainerItem]; this.updateCdkConnectedOverlayPositions(); } /** * @return {?} */ clearInput() { this.nzSelectTopControlComponent.clearInputValue(); } /** * @param {?} listOfValue * @return {?} */ updateListOfValue(listOfValue) { /** @type {?} */ const covertListToModel = (/** * @param {?} list * @param {?} mode * @return {?} */ (list, mode) => { if (mode === 'default') { if (list.length > 0) { return list[0]; } else { return null; } } else { return list; } }); /** @type {?} */ const 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 {?} */ onTokenSeparate(listOfLabel) { /** @type {?} */ const listOfMatchedValue = this.listOfTagAndTemplateItem .filter((/** * @param {?} item * @return {?} */ item => listOfLabel.findIndex((/** * @param {?} label * @return {?} */ label => label === item.nzLabel)) !== -1)) .map((/** * @param {?} item * @return {?} */ item => item.nzValue)) .filter((/** * @param {?} item * @return {?} */ item => this.listOfValue.findIndex((/** * @param {?} v * @return {?} */ v => this.compareWith(v, item))) === -1)); if (this.nzMode === 'multiple') { this.updateListOfValue([...this.listOfValue, ...listOfMatchedValue]); } else if (this.nzMode === 'tags') { /** @type {?} */ const listOfUnMatchedLabel = listOfLabel.filter((/** * @param {?} label * @return {?} */ label => this.listOfTagAndTemplateItem.findIndex((/** * @param {?} item * @return {?} */ item => item.nzLabel === label)) === -1)); this.updateListOfValue([...this.listOfValue, ...listOfMatchedValue, ...listOfUnMatchedLabel]); } this.clearInput(); } /** * @param {?} e * @return {?} */ onKeyDown(e) { if (this.nzDisabled) { return; } /** @type {?} */ const listOfFilteredOptionNotDisabled = this.listOfContainerItem.filter((/** * @param {?} item * @return {?} */ item => item.type === 'item')).filter((/** * @param {?} item * @return {?} */ item => !item.nzDisabled)); /** @type {?} */ const activatedIndex = listOfFilteredOptionNotDisabled.findIndex((/** * @param {?} item * @return {?} */ item => this.compareWith(item.nzValue, this.activatedValue))); switch (e.keyCode) { case UP_ARROW: e.preventDefault(); if (this.nzOpen) { /** @type {?} */ const preIndex = activatedIndex > 0 ? activatedIndex - 1 : listOfFilteredOptionNotDisabled.length - 1; this.activatedValue = listOfFilteredOptionNotDisabled[preIndex].nzValue; } break; case DOWN_ARROW: e.preventDefault(); if (this.nzOpen) { /** @type {?} */ const 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 {?} */ setOpenState(value) { if (this.nzOpen !== value) { this.nzOpen = value; this.nzOpenChange.emit(value); this.onOpenChange(); this.cdr.markForCheck(); } } /** * @return {?} */ onOpenChange() { this.updateCdkConnectedOverlayStatus(); this.clearInput(); } /** * @param {?} value * @return {?} */ onInputValueChange(value) { this.searchValue = value; this.updateListOfContainerItem(); this.nzOnSearch.emit(value); this.updateCdkConnectedOverlayPositions(); } /** * @return {?} */ onClearSelection() { this.updateListOfValue([]); } /** * @return {?} */ focus() { this.nzSelectTopControlComponent.focus(); } /** * @return {?} */ blur() { this.nzSelectTopControlComponent.blur(); } /** * @param {?} position * @return {?} */ onPositionChange(position) { this.dropDownPosition = position.connectionPair.originY; } /** * @return {?} */ updateCdkConnectedOverlayStatus() { if (this.platform.isBrowser && this.originElement.nativeElement) { this.triggerWidth = this.originElement.nativeElement.getBoundingClientRect().width; } } /** * @return {?} */ updateCdkConnectedOverlayPositions() { if (this.cdkConnectedOverlay.overlayRef) { this.cdkConnectedOverlay.overlayRef.updatePosition(); } } /** * @param {?} modelValue * @return {?} */ writeValue(modelValue) { /** https://github.com/angular/angular/issues/14988 **/ if (this.value !== modelValue) { this.value = modelValue; /** @type {?} */ const covertModelToList = (/** * @param {?} model * @param {?} mode * @return {?} */ (model, mode) => { if (model === null || model === undefined) { return []; } else if (mode === 'default') { return [model]; } else { return model; } }); /** @type {?} */ const listOfValue = covertModelToList(modelValue, this.nzMode); this.listOfValue = listOfValue; this.listOfValue$.next(listOfValue); this.cdr.markForCheck(); } } /** * @param {?} fn * @return {?} */ registerOnChange(fn) { this.onChange = fn; } /** * @param {?} fn * @return {?} */ registerOnTouched(fn) { this.onTouched = fn; } /** * @param {?} disabled * @return {?} */ setDisabledState(disabled) { this.nzDisabled = disabled; if (disabled) { this.setOpenState(false); } this.cdr.markForCheck(); } /** * @param {?} changes * @return {?} */ ngOnChanges(changes) { const { nzOpen, nzDisabled, nzOptions } = changes; if (nzOpen) { this.onOpenChange(); } if (nzDisabled && this.nzDisabled) { this.setOpenState(false); } if (nzOptions) { this.isReactiveDriven = true; /** @type {?} */ const listOfOptions = this.nzOptions || []; /** @type {?} */ const listOfTransformedItem = listOfOptions.map((/** * @param {?} item * @return {?} */ 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 {?} */ ngOnInit() { this.focusMonitor .monitor(this.elementRef, true) .pipe(takeUntil(this.destroy$)) .subscribe((/** * @param {?} focusOrigin * @return {?} */ focusOrigin => { if (!focusOrigin) { this.focused = false; this.cdr.markForCheck(); this.nzBlur.emit(); Promise.resolve().then((/** * @return {?} */ () => { 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 {?} */ ([listOfSelectedValue, listOfTemplateItem]) => { /** @type {?} */ const listOfTagItem = listOfSelectedValue .filter((/** * @return {?} */ () => this.nzMode === 'tags')) .filter((/** * @param {?} value * @return {?} */ value => listOfTemplateItem.findIndex((/** * @param {?} o * @return {?} */ o => this.compareWith(o.nzValue, value))) === -1)) .map((/** * @param {?} value * @return {?} */ value => this.listOfTopItem.find((/** * @param {?} o * @return {?} */ o => this.compareWith(o.nzValue, value))) || this.generateTagItem(value))); this.listOfTagAndTemplateItem = [...listOfTemplateItem, ...listOfTagItem]; this.listOfTopItem = this.listOfValue .map((/** * @param {?} v * @return {?} */ v => (/** @type {?} */ ([...this.listOfTagAndTemplateItem, ...this.listOfTopItem].find((/** * @param {?} item * @return {?} */ item => this.compareWith(v, item.nzValue))))))) .filter((/** * @param {?} item * @return {?} */ item => !!item)); this.updateListOfContainerItem(); })); } /** * @return {?} */ ngAfterViewInit() { this.updateCdkConnectedOverlayStatus(); } /** * @return {?} */ ngAfterContentInit() { if (!this.isReactiveDriven) { merge(this.listOfNzOptionGroupComponent.changes, this.listOfNzOptionComponent.changes) .pipe(startWith(true), switchMap((/** * @return {?} */ () => merge(...[ this.listOfNzOptionComponent.changes, this.listOfNzOptionGroupComponent.changes, ...this.listOfNzOptionComponent.map((/** * @param {?} option * @return {?} */ option => option.changes)), ...this.listOfNzOptionGroupComponent.map((/** * @param {?} option * @return {?} */ option => option.changes)) ]).pipe(startWith(true)))), takeUntil(this.destroy$)) .subscribe((/** * @return {?} */ () => { /** @type {?} */ const listOfOptionInterface = this.listOfNzOptionComponent.toArray().map((/** * @param {?} item * @return {?} */ item => { const { template, nzLabel, nzValue, nzDisabled, nzHide, nzCustomContent, groupLabel } = item; return { template, nzLabel, nzValue, nzDisabled, nzHide, nzCustomContent, groupLabel, type: 'item', key: nzValue }; })); this.listOfTemplateItem$.next(listOfOptionInterface); this.cdr.markForCheck(); })); } } /** * @return {?} */ ngOnDestroy() { 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 {?} */ () => NzSelectComponent)), multi: true } ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, animations: [slideMotion], template: ` <nz-select-top-control cdkOverlayOrigin #origin="cdkOverlayOrigin" [open]="nzOpen" [disabled]="nzDisabled" [mode]="nzMode" [@.disabled]="noAnimation?.nzNoAnimation" [nzNoAnimation]="noAnimation?.nzNoAnimation" [maxTagPlaceholder]="nzMaxTagPlaceholder" [removeIcon]="nzRemoveIcon" [placeHolder]="nzPlaceHolder" [maxTagCount]="nzMaxTagCount" [customTemplate]="nzCustomTemplate" [tokenSeparators]="nzTokenSeparators" [showSearch]="nzShowSearch" [autofocus]="nzAutoFocus" [listOfTopItem]="listOfTopItem" (inputValueChange)="onInputValueChange($event)" (tokenize)="onTokenSeparate($event)" (animationEnd)="updateCdkConnectedOverlayPositions()" (deleteItem)="onItemDelete($event)" (keydown)="onKeyDown($event)" (openChange)="setOpenState($event)" ></nz-select-top-control> <nz-select-clear *ngIf="nzAllowClear && !nzDisabled && listOfValue.length" [clearIcon]="nzClearIcon" (clear)="onClearSelection()" ></nz-select-clear> <nz-select-arrow *ngIf="nzShowArrow && nzMode === 'default'" [loading]="nzLoading" [search]="nzOpen && nzShowSearch" [suffixIcon]="nzSuffixIcon" ></nz-select-arrow> <ng-template cdkConnectedOverlay nzConnectedOverlay [cdkConnectedOverlayHasBackdrop]="true" [cdkConnectedOverlayMinWidth]="$any(nzDropdownMatchSelectWidth ? null : triggerWidth)" [cdkConnectedOverlayWidth]="$any(nzDropdownMatchSelectWidth ? triggerWidth : null)" [cdkConnectedOverlayOrigin]="origin" [cdkConnectedOverlayTransformOriginOn]="'.ant-select-dropdown'" [cdkConnectedOverlayPanelClass]="nzDropdownClassName!" (backdropClick)="setOpenState(false)" (detach)="setOpenState(false)" (positionChange)="onPositionChange($event)" [cdkConnectedOverlayOpen]="nzOpen" > <nz-option-container [ngStyle]="nzDropdownStyle" [itemSize]="nzOptionHeightPx" [maxItemLength]="nzOptionOverflowSize" [matchWidth]="nzDropdownMatchSelectWidth" [class.ant-select-dropdown-placement-bottomLeft]="dropDownPosition === 'bottom'" [class.ant-select-dropdown-placement-topLeft]="dropDownPosition === 'top'" [@slideMotion]="'enter'" [@.disabled]="noAnimation?.nzNoAnimation" [nzNoAnimation]="noAnimation?.nzNoAnimation" [listOfContainerItem]="listOfContainerItem" [menuItemSelectedIcon]="nzMenuItemSelectedIcon" [notFoundContent]="nzNotFoundContent" [activatedValue]="activatedValue" [listOfSelectedValue]="listOfValue" [dropdownRender]="nzDropdownRender" [compareWith]="compareWith" [mode]="nzMode" (keydown)="onKeyDown($event)" (itemClick)="onItemClick($event)" (scrollToBottom)="nzScrollToBottom.emit()" ></nz-option-container> </ng-template> `, 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 = () => [ { 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); 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLXpvcnJvLWFudGQvc2VsZWN0LyIsInNvdXJjZXMiOlsic2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBS0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBa0MsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUdMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixJQUFJLEVBQ0osS0FBSyxFQUlMLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxFQUVULFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7TUFHdkUsbUJBQW1COzs7OztBQUF1QixDQUFDLFdBQW1CLEVBQUUsSUFBMkIsRUFBVyxFQUFFO0lBQzVHLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7UUFDeEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztLQUMzRTtTQUFNO1FBQ0wsT0FBTyxLQUFLLENBQUM7S0FDZDtBQUNILENBQUMsQ0FBQTs7O01BRUssd0JBQXdCLEdBQUcsUUFBUTtBQTJHekMsTUFBTSxPQUFPLGlCQUFpQjs7Ozs7Ozs7O0lBNFM1QixZQUNTLGVBQWdDLEVBQy9CLEdBQXNCLEVBQ3RCLFVBQXNCLEVBQ3RCLFFBQWtCLEVBQ2xCLFlBQTBCLEVBQ1AsV0FBb0M7UUFMeEQsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQy9CLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUNQLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQXZTeEQsV0FBTSxHQUFxQixTQUFTLENBQUM7UUFDckMscUJBQWdCLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLHlCQUFvQixHQUFHLENBQUMsQ0FBQztRQUN6Qix3QkFBbUIsR0FBa0IsSUFBSSxDQUFDO1FBQzFDLCtCQUEwQixHQUFHLElBQUksQ0FBQztRQUNsQyxvQkFBZSxHQUFxQyxJQUFJLENBQUM7UUFDekQsc0JBQWlCLEdBQWdELFNBQVMsQ0FBQztRQUMzRSxrQkFBYSxHQUEyQyxJQUFJLENBQUM7UUFDN0Qsa0JBQWEsR0FBRyxRQUFRLENBQUM7UUFDekIscUJBQWdCLEdBQWtDLElBQUksQ0FBQztRQUN2RCxxQkFBZ0IsR0FBNkQsSUFBSSxDQUFDO1FBRzNGLGlCQUFZLEdBQTJDLElBQUksQ0FBQztRQUNuRCxnQkFBVyxHQUFrQyxJQUFJLENBQUM7UUFDbEQsaUJBQVksR0FBa0MsSUFBSSxDQUFDO1FBQ25ELDJCQUFzQixHQUFrQyxJQUFJLENBQUM7UUFDN0QsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFDbkIsc0JBQWlCLEdBQWEsRUFBRSxDQUFDO1FBQ2pDLHdCQUFtQixHQUFtRCxJQUFJLENBQUM7UUFDM0UsdUJBQWtCLEdBQUcsUUFBUSxDQUFDO1FBQzlCLFdBQU0sR0FBcUIsU0FBUyxDQUFDO1FBQ3JDLG1CQUFjLEdBQXVCLG1CQUFtQixDQUFDO1FBQ3pELGdCQUFXOzs7OztRQUE4QyxDQUFDLEVBQWEsRUFBRSxFQUFhLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUM7UUFDckYsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDMEIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDcEUsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQiwyQkFBc0IsR0FBRyxJQUFJLENBQUM7UUFDOUIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQy9CLGNBQVMsR0FBOEIsRUFBRSxDQUFDO1FBQ2hDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3hDLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDNUMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQzNDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ2xDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBUTlDLGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQWMsRUFBRSxDQUFDLENBQUM7UUFDcEQsd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQTBCLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLDZCQUF3QixHQUE0QixFQUFFLENBQUM7UUFDdkQsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDekIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBRXpCLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLGFBQVE7OztRQUFpQixHQUFHLEVBQUUsR0FBRSxDQUFDLEVBQUM7UUFDbEMsY0FBUzs7O1FBQWtCLEdBQUcsRUFBRSxHQUFFLENBQUMsRUFBQztRQUNwQyxxQkFBZ0IsR0FBZ0MsUUFBUSxDQUFDO1FBQ3pELGlCQUFZLEdBQWtCLElBQUksQ0FBQztRQUNuQyx3QkFBbUIsR0FBNEIsRUFBRSxDQUFDO1FBQ2xELGtCQUFhLEdBQTRCLEVBQUUsQ0FBQztRQUM1QyxtQkFBYyxHQUFxQixJQUFJLENBQUM7UUFDeEMsZ0JBQVcsR0FBZ0IsRUFBRSxDQUFDO1FBQzlCLFlBQU8sR0FBRyxLQUFLLENBQUM7SUEyT2IsQ0FBQzs7Ozs7SUF6T0osZUFBZSxDQUFDLEtBQWE7UUFDM0IsT0FBTztZQUNMLE9BQU8sRUFBRSxLQUFLO1lBQ2QsT0FBTyxFQUFFLEtBQUs7WUFDZCxJQUFJLEVBQUUsTUFBTTtTQUNiLENBQUM7SUFDSixDQUFDOzs7OztJQUVELFdBQVcsQ0FBQyxLQUFnQjtRQUMxQixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQzdCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFO2dCQUNsRixJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQ2pDO1lBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMxQjthQUFNOztrQkFDQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTOzs7O1lBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBQztZQUMvRSxJQUFJLFdBQVcsS0FBSyxDQUFDLENBQUMsRUFBRTs7c0JBQ2hCLHVCQUF1QixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTTs7Ozs7Z0JBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssV0FBVyxFQUFDO2dCQUNwRixJQUFJLENBQUMsaUJBQWlCLENBQUMsdUJBQXVCLENBQUMsQ0FBQzthQUNqRDtpQkFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRTs7c0JBQ3RELHFCQUFxQixHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQztnQkFDMUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHFCQUFxQixDQUFDLENBQUM7YUFDL0M7WUFDRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDYixJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2FBQ25CO1NBQ0Y7SUFDSCxDQUFDOzs7OztJQUVELFlBQVksQ0FBQyxJQUEyQjs7Y0FDaEMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNOzs7O1FBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBQztRQUM1RixJQUFJLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7OztJQUVELHlCQUF5Qjs7WUFDbkIsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLHdCQUF3QjthQUNwRCxNQUFNOzs7O1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUM7YUFDNUIsTUFBTTs7OztRQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDNUMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDcEQ7aUJBQU07Z0JBQ0wsT0FBTyxJQUFJLENBQUM7YUFDYjtRQUNILENBQUMsRUFBQztRQUNKLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxNQUFNLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTs7a0JBQ3hDLFdBQVcsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSTs7OztZQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsV0FBVyxFQUFDO1lBQ2pHLElBQUksQ0FBQyxXQUFXLEVBQUU7O3NCQUNWLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7Z0JBQ3RELG1CQUFtQixHQUFHLENBQUMsT0FBTyxFQUFFLEdBQUcsbUJBQW1CLENBQUMsQ0FBQztnQkFDeEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO2FBQ3ZDO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQzthQUMzQztTQUNGO1FBQ0QsSUFDRSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQzdCLG1CQUFtQixDQUFDLFNBQVM7Ozs7WUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFDakc7O2tCQUNNLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJOzs7O1lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksbUJBQW1CLENBQUMsQ0FBQyxDQUFDO1lBQ3JJLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxhQUFhLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQztTQUN4RTs7WUFDRyxnQkFBZ0IsR0FBa0QsRUFBRTtRQUN4RSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN6QixnQkFBZ0IsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNOzs7O2dCQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxDQUFDLEdBQUc7Ozs7Z0JBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxtQkFBQSxDQUFDLENBQUMsVUFBVSxFQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7U0FDbkc7YUFBTTtZQUNMLElBQUksSUFBSSxDQUFDLDRCQUE0QixFQUFFO2dCQUNyQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsNEJBQTRCLENBQUMsR0FBRzs7OztnQkFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUMsQ0FBQzthQUMxRTtTQUNGO1FBQ0QseUJBQXlCO1FBQ3pCLGdCQUFnQixDQUFDLE9BQU87Ozs7UUFBQyxLQUFLLENBQUMsRUFBRTs7a0JBQ3pCLEtBQUssR0FBRyxtQkFBbUIsQ0FBQyxTQUFTOzs7O1lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBQztZQUM5RSxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRTs7c0JBQ1IsU0FBUyxHQUFHLG1CQUFBLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBeUI7Z0JBQzNGLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2FBQ2pEO1FBQ0gsQ0FBQyxFQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxHQUFHLG1CQUFtQixDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLGtDQUFrQyxFQUFFLENBQUM7SUFDNUMsQ0FBQzs7OztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsMkJBQTJCLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDckQsQ0FBQzs7Ozs7SUFFRCxpQkFBaUIsQ0FBQyxXQUF3Qjs7Y0FDbEMsaUJBQWlCOzs7OztRQUFHLENBQUMsSUFBaUIsRUFBRSxJQUFzQixFQUEyQixFQUFFO1lBQy9GLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtnQkFDdEIsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDbkIsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ2hCO3FCQUFNO29CQUNMLE9BQU8sSUFBSSxDQUFDO2lCQUNiO2FBQ0Y7aUJBQU07Z0JBQ0wsT0FBTyxJQUFJLENBQUM7YUFDYjtRQUNILENBQUMsQ0FBQTs7Y0FDSyxLQUFLLEdBQUcsaUJBQWlCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDekQsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLEtBQUssRUFBRTtZQUN4QixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztZQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMzQjtJQUNILENBQUM7Ozs7O0lBRUQsZUFBZSxDQUFDLFdBQXFCOztjQUM3QixrQkFBa0IsR0FBRyxJQUFJLENBQUMsd0JBQXdCO2FBQ3JELE1BQU07Ozs7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTOzs7O1FBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLE9BQU8sRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDO2FBQzdFLEdBQUc7Ozs7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUM7YUFDekIsTUFBTTs7OztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTOzs7O1FBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDO1FBQ3BGLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxVQUFVLEVBQUU7WUFDOUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1NBQ3RFO2FBQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLE1BQU0sRUFBRTs7a0JBQzNCLG9CQUFvQixHQUFHLFdBQVcsQ0FBQyxNQUFNOzs7O1lBQzdDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFNBQVM7Ozs7WUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssS0FBSyxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQ3hGO1lBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsa0JBQWtCLEVBQUUsR0FBRyxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7U0FDL0Y7UUFDRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7Ozs7SUFFRCxTQUFTLENBQUMsQ0FBZ0I7UUFDeEIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLE9BQU87U0FDUjs7Y0FDSywrQkFBK0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTTs7OztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUMsQ0FBQyxNQUFNOzs7O1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUM7O2NBQ2hJLGNBQWMsR0FBRywrQkFBK0IsQ0FBQyxTQUFTOzs7O1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFDO1FBQzdILFFBQVEsQ0FBQyxDQUFDLE9BQU8sRUFBRTtZQUNqQixLQUFLLFFBQVE7Z0JBQ1gsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUNuQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7OzBCQUNULFFBQVEsR0FBRyxjQUFjLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQywrQkFBK0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQztvQkFDckcsSUFBSSxDQUFDLGNBQWMsR0FBRywrQkFBK0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUM7aUJBQ3pFO2dCQUNELE1BQU07WUFDUixLQUFLLFVBQVU7Z0JBQ2IsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUNuQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7OzBCQUNULFNBQVMsR0FBRyxjQUFjLEdBQUcsK0JBQStCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDdEcsSUFBSSxDQUFDLGNBQWMsR0FBRywrQkFBK0IsQ0FBQyxTQUFTLENBQUMsQ0FB