ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
1 lines • 97.1 kB
Source Map (JSON)
{"version":3,"file":"ng-zorro-antd-cascader.mjs","sources":["../../components/cascader/typings.ts","../../components/cascader/utils.ts","../../components/cascader/cascader-li.component.ts","../../components/cascader/cascader.service.ts","../../components/cascader/cascader.component.ts","../../components/cascader/cascader.module.ts","../../components/cascader/public-api.ts","../../components/cascader/ng-zorro-antd-cascader.ts"],"sourcesContent":["/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Observable } from 'rxjs';\n\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nexport type NzCascaderExpandTrigger = 'click' | 'hover';\nexport type NzCascaderTriggerType = 'click' | 'hover';\nexport type NzCascaderSize = 'small' | 'large' | 'default';\n\nexport type NzCascaderFilter = (searchValue: string, path: NzCascaderOption[]) => boolean;\nexport type NzCascaderSorter = (a: NzCascaderOption[], b: NzCascaderOption[], inputValue: string) => number;\n\nexport interface NzCascaderOption {\n value?: NzSafeAny;\n label?: string;\n title?: string;\n disabled?: boolean;\n loading?: boolean;\n isLeaf?: boolean;\n parent?: NzCascaderOption;\n children?: NzCascaderOption[];\n\n [key: string]: NzSafeAny;\n}\n\nexport interface NzCascaderSearchOption extends NzCascaderOption {\n path: NzCascaderOption[];\n}\n\nexport interface NzShowSearchOptions {\n filter?: NzCascaderFilter;\n sorter?: NzCascaderSorter;\n}\n\nexport function isShowSearchObject(options: NzShowSearchOptions | boolean): options is NzShowSearchOptions {\n return typeof options !== 'boolean';\n}\n\n/**\n * To avoid circular dependency, provide an interface of `NzCascaderComponent`\n * for `NzCascaderService`.\n */\nexport interface NzCascaderComponentAsSource {\n inputValue: string;\n nzShowSearch: NzShowSearchOptions | boolean;\n nzLabelProperty: string;\n nzValueProperty: string;\n nzChangeOnSelect: boolean;\n\n nzChangeOn?(option: NzCascaderOption, level: number): boolean;\n\n nzLoadData?(node: NzCascaderOption, index: number): PromiseLike<NzSafeAny> | Observable<NzSafeAny>;\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { NzCascaderOption } from './typings';\n\nexport function isChildOption(o: NzCascaderOption): boolean {\n return o.isLeaf || !o.children || !o.children.length;\n}\n\nexport function isParentOption(o: NzCascaderOption): boolean {\n return !!o.children && !!o.children.length && !o.isLeaf;\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Direction } from '@angular/cdk/bidi';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnInit,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { NzHighlightModule } from 'ng-zorro-antd/core/highlight';\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\n\nimport { NzCascaderOption } from './typings';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n selector: '[nz-cascader-option]',\n exportAs: 'nzCascaderOption',\n template: `\n @if (optionTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"optionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: option, index: columnIndex }\"\n />\n } @else {\n <div\n class=\"ant-cascader-menu-item-content\"\n [innerHTML]=\"optionLabel | nzHighlight: highlightText : 'g' : 'ant-cascader-menu-item-keyword'\"\n ></div>\n }\n\n @if (!option.isLeaf || option.children?.length || option.loading) {\n <div class=\"ant-cascader-menu-item-expand-icon\">\n @if (option.loading) {\n <span nz-icon nzType=\"loading\"></span>\n } @else {\n <ng-container *nzStringTemplateOutlet=\"expandIcon\">\n <span nz-icon [nzType]=\"$any(expandIcon)\"></span>\n </ng-container>\n }\n </div>\n }\n `,\n host: {\n class: 'ant-cascader-menu-item ant-cascader-menu-item-expanded',\n '[attr.title]': 'option.title || optionLabel',\n '[class.ant-cascader-menu-item-active]': 'activated',\n '[class.ant-cascader-menu-item-expand]': '!option.isLeaf',\n '[class.ant-cascader-menu-item-disabled]': 'option.disabled'\n },\n imports: [NgTemplateOutlet, NzHighlightModule, NzIconModule, NzOutletModule],\n standalone: true\n})\nexport class NzCascaderOptionComponent implements OnInit {\n @Input() optionTemplate: TemplateRef<NzCascaderOption> | null = null;\n @Input() option!: NzCascaderOption;\n @Input() activated = false;\n @Input() highlightText!: string;\n @Input() nzLabelProperty = 'label';\n @Input() columnIndex!: number;\n @Input() expandIcon: string | TemplateRef<void> = '';\n @Input() dir: Direction = 'ltr';\n\n readonly nativeElement: HTMLElement;\n\n constructor(\n private cdr: ChangeDetectorRef,\n elementRef: ElementRef\n ) {\n this.nativeElement = elementRef.nativeElement;\n }\n ngOnInit(): void {\n if (this.expandIcon === '' && this.dir === 'rtl') {\n this.expandIcon = 'left';\n } else if (this.expandIcon === '') {\n this.expandIcon = 'right';\n }\n }\n\n get optionLabel(): string {\n return this.option[this.nzLabelProperty];\n }\n\n markForCheck(): void {\n this.cdr.markForCheck();\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, from, Subject } from 'rxjs';\nimport { finalize } from 'rxjs/operators';\n\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { arraysEqual, isNotNil } from 'ng-zorro-antd/core/util';\n\nimport {\n isShowSearchObject,\n NzCascaderComponentAsSource,\n NzCascaderFilter,\n NzCascaderOption,\n NzCascaderSearchOption\n} from './typings';\nimport { isChildOption, isParentOption } from './utils';\n\n/**\n * All data is stored and parsed in NzCascaderService.\n */\n@Injectable()\nexport class NzCascaderService implements OnDestroy {\n /** Activated options in each column. */\n activatedOptions: NzCascaderOption[] = [];\n\n /** An array to store cascader items arranged in different layers. */\n columns: NzCascaderOption[][] = [];\n\n /** If user has entered searching mode. */\n inSearchingMode = false;\n\n /** Selected options would be output to user. */\n selectedOptions: NzCascaderOption[] = [];\n\n values: NzSafeAny[] = [];\n\n readonly $loading = new BehaviorSubject<boolean>(false);\n\n /**\n * Emit an event to notify cascader it needs to redraw because activated or\n * selected options are changed.\n */\n readonly $redraw = new Subject<void>();\n\n /**\n * Emit an event when an option gets selected.\n * Emit true if a leaf options is selected.\n */\n readonly $optionSelected = new Subject<{\n option: NzCascaderOption;\n index: number;\n } | null>();\n\n /**\n * Emit an event to notify cascader it needs to quit searching mode.\n * Only emit when user do select a searching option.\n */\n readonly $quitSearching = new Subject<void>();\n\n /** To hold columns before entering searching mode. */\n private columnsSnapshot: NzCascaderOption[][] = [[]];\n\n /** To hold activated options before entering searching mode. */\n private activatedOptionsSnapshot: NzCascaderOption[] = [];\n\n private cascaderComponent!: NzCascaderComponentAsSource;\n\n /** Return cascader options in the first layer. */\n get nzOptions(): NzCascaderOption[] {\n return this.columns[0];\n }\n\n ngOnDestroy(): void {\n this.$redraw.complete();\n this.$quitSearching.complete();\n this.$optionSelected.complete();\n this.$loading.complete();\n }\n\n /**\n * Make sure that value matches what is displayed in the dropdown.\n */\n syncOptions(first: boolean = false): void {\n const values = this.values;\n const hasValue = values && values.length;\n const lastColumnIndex = values.length - 1;\n const initColumnWithIndex = (columnIndex: number): void => {\n const activatedOptionSetter = (): void => {\n const currentValue = values[columnIndex];\n\n if (!isNotNil(currentValue)) {\n this.$redraw.next();\n return;\n }\n\n const option =\n this.findOptionWithValue(columnIndex, values[columnIndex]) ||\n (typeof currentValue === 'object'\n ? currentValue\n : {\n [`${this.cascaderComponent.nzValueProperty}`]: currentValue,\n [`${this.cascaderComponent.nzLabelProperty}`]: currentValue\n });\n\n this.setOptionActivated(option, columnIndex, false, false);\n\n if (columnIndex < lastColumnIndex) {\n initColumnWithIndex(columnIndex + 1);\n } else {\n this.dropBehindColumns(columnIndex);\n this.selectedOptions = [...this.activatedOptions];\n this.$redraw.next();\n }\n };\n\n if (this.isLoaded(columnIndex) || !this.cascaderComponent.nzLoadData) {\n activatedOptionSetter();\n } else {\n const option = this.activatedOptions[columnIndex - 1] || {};\n this.loadChildren(option, columnIndex - 1, activatedOptionSetter);\n }\n };\n\n this.activatedOptions = [];\n this.selectedOptions = [];\n\n if (first && this.cascaderComponent.nzLoadData && !hasValue) {\n // Should also notify the component that value changes. Fix #3480.\n this.$redraw.next();\n return;\n } else {\n initColumnWithIndex(0);\n }\n }\n\n /**\n * Bind cascader component so this service could use inputs.\n */\n withComponent(cascaderComponent: NzCascaderComponentAsSource): void {\n this.cascaderComponent = cascaderComponent;\n }\n\n /**\n * Reset all options. Rebuild searching options if in searching mode.\n */\n withOptions(options: NzCascaderOption[] | null): void {\n this.columnsSnapshot = this.columns = options && options.length ? [options] : [];\n\n if (this.inSearchingMode) {\n this.prepareSearchOptions(this.cascaderComponent.inputValue);\n } else if (this.columns.length) {\n this.syncOptions();\n }\n }\n\n /**\n * Try to set a option as activated.\n *\n * @param option Cascader option\n * @param columnIndex Of which column this option is in\n * @param performSelect Select\n * @param loadingChildren Try to load children asynchronously.\n */\n setOptionActivated(\n option: NzCascaderOption,\n columnIndex: number,\n performSelect: boolean = false,\n loadingChildren: boolean = true\n ): void {\n if (option.disabled) {\n return;\n }\n this.activatedOptions[columnIndex] = option;\n this.trackAncestorActivatedOptions(columnIndex);\n this.dropBehindActivatedOptions(columnIndex);\n\n const isParent = isParentOption(option);\n\n if (isParent) {\n // Parent option that has children.\n this.setColumnData(option.children!, columnIndex + 1, option);\n } else if (!option.isLeaf && loadingChildren) {\n // Parent option that should try to load children asynchronously.\n this.loadChildren(option, columnIndex);\n } else if (option.isLeaf) {\n // Leaf option.\n this.dropBehindColumns(columnIndex);\n }\n\n // Actually perform selection to make an options not only activated but also selected.\n if (performSelect) {\n this.setOptionSelected(option, columnIndex);\n }\n\n this.$redraw.next();\n }\n\n setOptionSelected(option: NzCascaderOption, index: number): void {\n const changeOn = this.cascaderComponent.nzChangeOn;\n const shouldPerformSelection = (o: NzCascaderOption, i: number): boolean =>\n typeof changeOn === 'function' ? changeOn(o, i) : false;\n\n if (option.isLeaf || this.cascaderComponent.nzChangeOnSelect || shouldPerformSelection(option, index)) {\n this.selectedOptions = [...this.activatedOptions];\n this.prepareEmitValue();\n this.$redraw.next();\n this.$optionSelected.next({ option, index });\n }\n }\n\n setOptionDeactivatedSinceColumn(column: number): void {\n this.dropBehindActivatedOptions(column - 1);\n this.dropBehindColumns(column);\n this.$redraw.next();\n }\n\n /**\n * Set a searching option as selected, finishing up things.\n *\n * @param option\n */\n setSearchOptionSelected(option: NzCascaderSearchOption): void {\n this.activatedOptions = [option];\n this.selectedOptions = [...option.path];\n this.prepareEmitValue();\n this.$redraw.next();\n this.$optionSelected.next({ option, index: 0 });\n\n setTimeout(() => {\n // Reset data and tell UI only to remove input and reset dropdown width style.\n this.$quitSearching.next();\n this.$redraw.next();\n this.inSearchingMode = false;\n this.columns = [...this.columnsSnapshot];\n this.activatedOptions = [...this.selectedOptions];\n }, 200);\n }\n\n /**\n * Filter cascader options to reset `columns`.\n *\n * @param searchValue The string user wants to search.\n */\n prepareSearchOptions(searchValue: string): void {\n const results: NzCascaderOption[] = []; // Search results only have one layer.\n const path: NzCascaderOption[] = [];\n const defaultFilter: NzCascaderFilter = (i, p) =>\n p.some(o => {\n const label = this.getOptionLabel(o);\n return !!label && label.indexOf(i) !== -1;\n });\n const showSearch = this.cascaderComponent.nzShowSearch;\n const filter = isShowSearchObject(showSearch) && showSearch.filter ? showSearch.filter : defaultFilter;\n const sorter = isShowSearchObject(showSearch) && showSearch.sorter ? showSearch.sorter : null;\n const loopChild = (node: NzCascaderOption, forceDisabled = false): void => {\n path.push(node);\n const cPath = Array.from(path);\n if (filter(searchValue, cPath)) {\n const disabled = forceDisabled || node.disabled;\n const option: NzCascaderSearchOption = {\n disabled,\n isLeaf: true,\n path: cPath,\n [this.cascaderComponent.nzLabelProperty]: cPath.map(p => this.getOptionLabel(p)).join(' / ')\n };\n results.push(option);\n }\n path.pop();\n };\n const loopParent = (node: NzCascaderOption, forceDisabled = false): void => {\n const disabled = forceDisabled || node.disabled;\n path.push(node);\n node.children!.forEach(sNode => {\n if (!sNode.parent) {\n sNode.parent = node;\n }\n if (!sNode.isLeaf) {\n loopParent(sNode, disabled);\n }\n if (sNode.isLeaf || !sNode.children || !sNode.children.length) {\n loopChild(sNode, disabled);\n }\n });\n path.pop();\n };\n\n if (!this.columnsSnapshot.length) {\n this.columns = [[]];\n return;\n }\n\n this.columnsSnapshot[0].forEach(o => (isChildOption(o) ? loopChild(o) : loopParent(o)));\n\n if (sorter) {\n results.sort((a, b) => sorter(a.path, b.path, searchValue));\n }\n\n this.columns = [results];\n\n this.$redraw.next(); // Search results may be empty, so should redraw.\n }\n\n /**\n * Toggle searching mode by UI. It deals with things not directly related to UI.\n *\n * @param toSearching If this cascader is entering searching mode\n */\n toggleSearchingMode(toSearching: boolean): void {\n this.inSearchingMode = toSearching;\n\n if (toSearching) {\n this.activatedOptionsSnapshot = [...this.activatedOptions];\n this.activatedOptions = [];\n this.selectedOptions = [];\n this.$redraw.next();\n } else {\n // User quit searching mode without selecting an option.\n this.activatedOptions = [...this.activatedOptionsSnapshot];\n this.selectedOptions = [...this.activatedOptions];\n this.columns = [...this.columnsSnapshot];\n this.syncOptions();\n this.$redraw.next();\n }\n }\n\n /**\n * Clear selected options.\n */\n clear(): void {\n this.values = [];\n this.selectedOptions = [];\n this.activatedOptions = [];\n this.dropBehindColumns(0);\n this.$redraw.next();\n this.$optionSelected.next(null);\n }\n\n getOptionLabel(o: NzCascaderOption): string {\n return o[this.cascaderComponent.nzLabelProperty || 'label'] as string;\n }\n\n getOptionValue(o: NzCascaderOption): NzSafeAny {\n return o[this.cascaderComponent.nzValueProperty || 'value'];\n }\n\n /**\n * Try to insert options into a column.\n *\n * @param options Options to insert\n * @param columnIndex Position\n */\n private setColumnData(options: NzCascaderOption[], columnIndex: number, parent: NzCascaderOption): void {\n const existingOptions = this.columns[columnIndex];\n if (!arraysEqual(existingOptions, options)) {\n options.forEach(o => (o.parent = parent));\n this.columns[columnIndex] = options;\n this.dropBehindColumns(columnIndex);\n }\n }\n\n /**\n * Set all ancestor options as activated.\n */\n private trackAncestorActivatedOptions(startIndex: number): void {\n for (let i = startIndex - 1; i >= 0; i--) {\n if (!this.activatedOptions[i]) {\n this.activatedOptions[i] = this.activatedOptions[i + 1].parent!;\n }\n }\n }\n\n private dropBehindActivatedOptions(lastReserveIndex: number): void {\n this.activatedOptions = this.activatedOptions.splice(0, lastReserveIndex + 1);\n }\n\n private dropBehindColumns(lastReserveIndex: number): void {\n if (lastReserveIndex < this.columns.length - 1) {\n this.columns = this.columns.slice(0, lastReserveIndex + 1);\n }\n }\n\n /**\n * Load children of an option asynchronously.\n */\n loadChildren(\n option: NzCascaderOption | NzSafeAny,\n columnIndex: number,\n success?: VoidFunction,\n failure?: VoidFunction\n ): void {\n const loadFn = this.cascaderComponent.nzLoadData;\n\n if (loadFn) {\n // If there isn't any option in columns.\n this.$loading.next(columnIndex < 0);\n\n if (typeof option === 'object') {\n option.loading = true;\n }\n\n from(loadFn(option, columnIndex))\n .pipe(\n finalize(() => {\n option.loading = false;\n this.$loading.next(false);\n this.$redraw.next();\n })\n )\n .subscribe({\n next: () => {\n if (option.children) {\n this.setColumnData(option.children, columnIndex + 1, option);\n }\n success?.();\n },\n error: () => {\n option.isLeaf = true;\n failure?.();\n }\n });\n }\n }\n\n private isLoaded(index: number): boolean {\n return this.columns[index] && this.columns[index].length > 0;\n }\n\n /**\n * Find a option that has a given value in a given column.\n */\n private findOptionWithValue(columnIndex: number, value: NzCascaderOption | NzSafeAny): NzCascaderOption | null {\n const targetColumn = this.columns[columnIndex];\n if (targetColumn) {\n const v = typeof value === 'object' ? this.getOptionValue(value) : value;\n return targetColumn.find(o => v === this.getOptionValue(o))!;\n }\n return null;\n }\n\n private prepareEmitValue(): void {\n this.values = this.selectedOptions.map(o => this.getOptionValue(o));\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport { BACKSPACE, DOWN_ARROW, ENTER, ESCAPE, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport { CdkConnectedOverlay, ConnectionPositionPair, OverlayModule } from '@angular/cdk/overlay';\nimport { NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Host,\n HostListener,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BehaviorSubject, EMPTY, fromEvent, Observable, of as observableOf } from 'rxjs';\nimport { distinctUntilChanged, map, startWith, switchMap, takeUntil, withLatestFrom } from 'rxjs/operators';\n\nimport { slideMotion } from 'ng-zorro-antd/core/animation';\nimport { NzConfigKey, NzConfigService, WithConfig } from 'ng-zorro-antd/core/config';\nimport { NzFormNoStatusService, NzFormPatchModule, NzFormStatusService } from 'ng-zorro-antd/core/form';\nimport { NzNoAnimationDirective } from 'ng-zorro-antd/core/no-animation';\nimport { DEFAULT_CASCADER_POSITIONS, NzOverlayModule } from 'ng-zorro-antd/core/overlay';\nimport { NzDestroyService } from 'ng-zorro-antd/core/services';\nimport {\n BooleanInput,\n NgClassInterface,\n NgClassType,\n NgStyleInterface,\n NzSafeAny,\n NzStatus,\n NzValidateStatus\n} from 'ng-zorro-antd/core/types';\nimport { getStatusClassNames, InputBoolean, toArray } from 'ng-zorro-antd/core/util';\nimport { NzEmptyModule } from 'ng-zorro-antd/empty';\nimport { NzCascaderI18nInterface, NzI18nService } from 'ng-zorro-antd/i18n';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\n\nimport { NzCascaderOptionComponent } from './cascader-li.component';\nimport { NzCascaderService } from './cascader.service';\nimport {\n NzCascaderComponentAsSource,\n NzCascaderExpandTrigger,\n NzCascaderOption,\n NzCascaderSearchOption,\n NzCascaderSize,\n NzCascaderTriggerType,\n NzShowSearchOptions\n} from './typings';\n\nconst NZ_CONFIG_MODULE_NAME: NzConfigKey = 'cascader';\nconst defaultDisplayRender = (labels: string[]): string => labels.join(' / ');\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n selector: 'nz-cascader, [nz-cascader]',\n exportAs: 'nzCascader',\n preserveWhitespaces: false,\n template: `\n <div cdkOverlayOrigin #origin=\"cdkOverlayOrigin\" #trigger>\n @if (nzShowInput) {\n <div #selectContainer class=\"ant-select-selector\">\n <span class=\"ant-select-selection-search\">\n <input\n #input\n type=\"search\"\n class=\"ant-select-selection-search-input\"\n [style.opacity]=\"nzShowSearch ? '' : '0'\"\n [attr.autoComplete]=\"'off'\"\n [attr.expanded]=\"menuVisible\"\n [attr.autofocus]=\"nzAutoFocus ? 'autofocus' : null\"\n [readonly]=\"!nzShowSearch\"\n [disabled]=\"nzDisabled\"\n [(ngModel)]=\"inputValue\"\n (blur)=\"handleInputBlur()\"\n (focus)=\"handleInputFocus()\"\n />\n </span>\n @if (showLabelRender) {\n <span class=\"ant-select-selection-item\" [title]=\"labelRenderText\">\n @if (!isLabelRenderTemplate) {\n <ng-container>{{ labelRenderText }}</ng-container>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"nzLabelRender\"\n [ngTemplateOutletContext]=\"labelRenderContext\"\n ></ng-template>\n }\n </span>\n } @else {\n <span class=\"ant-select-selection-placeholder\" [style.visibility]=\"!inputValue ? 'visible' : 'hidden'\">{{\n showPlaceholder ? nzPlaceHolder || locale?.placeholder : null\n }}</span>\n }\n </div>\n @if (nzShowArrow) {\n <span class=\"ant-select-arrow\" [class.ant-select-arrow-loading]=\"isLoading\">\n @if (!isLoading) {\n <span nz-icon [nzType]=\"$any(nzSuffixIcon)\" [class.ant-cascader-picker-arrow-expand]=\"menuVisible\"></span>\n } @else {\n <span nz-icon nzType=\"loading\"></span>\n }\n\n @if (hasFeedback && !!status) {\n <nz-form-item-feedback-icon [status]=\"status\" />\n }\n </span>\n }\n @if (clearIconVisible) {\n <span class=\"ant-select-clear\">\n <span nz-icon nzType=\"close-circle\" nzTheme=\"fill\" (click)=\"clearSelection($event)\"></span>\n </span>\n }\n }\n <ng-content></ng-content>\n </div>\n <ng-template\n cdkConnectedOverlay\n nzConnectedOverlay\n [cdkConnectedOverlayHasBackdrop]=\"nzBackdrop\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayTransformOriginOn]=\"'.ant-cascader-dropdown'\"\n [cdkConnectedOverlayOpen]=\"menuVisible\"\n (overlayOutsideClick)=\"onClickOutside($event)\"\n (detach)=\"closeMenu()\"\n >\n <div\n class=\"ant-select-dropdown ant-cascader-dropdown ant-select-dropdown-placement-bottomLeft\"\n [class.ant-cascader-dropdown-rtl]=\"dir === 'rtl'\"\n [@slideMotion]=\"'enter'\"\n [@.disabled]=\"!!noAnimation?.nzNoAnimation\"\n [nzNoAnimation]=\"noAnimation?.nzNoAnimation\"\n (mouseenter)=\"onTriggerMouseEnter()\"\n (mouseleave)=\"onTriggerMouseLeave($event)\"\n >\n <div\n #menu\n class=\"ant-cascader-menus\"\n [class.ant-cascader-rtl]=\"dir === 'rtl'\"\n [class.ant-cascader-menus-hidden]=\"!menuVisible\"\n [class.ant-cascader-menu-empty]=\"shouldShowEmpty\"\n [ngClass]=\"menuCls\"\n [ngStyle]=\"nzMenuStyle\"\n >\n @if (shouldShowEmpty) {\n <ul class=\"ant-cascader-menu\" [style.width]=\"dropdownWidthStyle\" [style.height]=\"dropdownHeightStyle\">\n <li class=\"ant-cascader-menu-item ant-cascader-menu-item-disabled\">\n <nz-embed-empty\n class=\"ant-cascader-menu-item-content\"\n [nzComponentName]=\"'cascader'\"\n [specificContent]=\"nzNotFoundContent\"\n />\n </li>\n </ul>\n } @else {\n @for (options of cascaderService.columns; track options; let i = $index) {\n <ul\n class=\"ant-cascader-menu\"\n role=\"menuitemcheckbox\"\n [ngClass]=\"menuColumnCls\"\n [style.height]=\"dropdownHeightStyle\"\n [style.width]=\"dropdownWidthStyle\"\n >\n @for (option of options; track option.value) {\n <li\n nz-cascader-option\n [expandIcon]=\"nzExpandIcon\"\n [columnIndex]=\"i\"\n [nzLabelProperty]=\"nzLabelProperty\"\n [optionTemplate]=\"nzOptionRender\"\n [activated]=\"isOptionActivated(option, i)\"\n [highlightText]=\"inSearchingMode ? inputValue : ''\"\n [option]=\"option\"\n [dir]=\"dir\"\n (mouseenter)=\"onOptionMouseEnter(option, i, $event)\"\n (mouseleave)=\"onOptionMouseLeave(option, i, $event)\"\n (click)=\"onOptionClick(option, i, $event)\"\n ></li>\n }\n </ul>\n }\n }\n </div>\n </div>\n </ng-template>\n `,\n animations: [slideMotion],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NzCascaderComponent),\n multi: true\n },\n NzCascaderService,\n NzDestroyService\n ],\n host: {\n '[attr.tabIndex]': '\"0\"',\n '[class.ant-select-in-form-item]': '!!nzFormStatusService',\n '[class.ant-select-lg]': 'nzSize === \"large\"',\n '[class.ant-select-sm]': 'nzSize === \"small\"',\n '[class.ant-select-allow-clear]': 'nzAllowClear',\n '[class.ant-select-show-arrow]': 'nzShowArrow',\n '[class.ant-select-show-search]': '!!nzShowSearch',\n '[class.ant-select-disabled]': 'nzDisabled',\n '[class.ant-select-open]': 'menuVisible',\n '[class.ant-select-focused]': 'isFocused',\n '[class.ant-select-single]': 'true',\n '[class.ant-select-rtl]': `dir === 'rtl'`\n },\n imports: [\n OverlayModule,\n FormsModule,\n NgTemplateOutlet,\n NzIconModule,\n NzFormPatchModule,\n NzOverlayModule,\n NzNoAnimationDirective,\n NgClass,\n NgStyle,\n NzEmptyModule,\n NzCascaderOptionComponent\n ],\n standalone: true\n})\nexport class NzCascaderComponent\n implements NzCascaderComponentAsSource, OnInit, OnDestroy, OnChanges, ControlValueAccessor\n{\n readonly _nzModuleName: NzConfigKey = NZ_CONFIG_MODULE_NAME;\n static ngAcceptInputType_nzShowInput: BooleanInput;\n static ngAcceptInputType_nzShowArrow: BooleanInput;\n static ngAcceptInputType_nzAllowClear: BooleanInput;\n static ngAcceptInputType_nzAutoFocus: BooleanInput;\n static ngAcceptInputType_nzChangeOnSelect: BooleanInput;\n static ngAcceptInputType_nzDisabled: BooleanInput;\n\n @ViewChild('selectContainer', { static: false }) selectContainer!: ElementRef;\n\n @ViewChild('input', { static: false })\n set input(input: ElementRef<HTMLInputElement> | undefined) {\n this.input$.next(input);\n }\n get input(): ElementRef<HTMLInputElement> | undefined {\n return this.input$.getValue();\n }\n /** Used to store the native `<input type=\"search\" />` element since it might be set asynchronously. */\n private input$ = new BehaviorSubject<ElementRef<HTMLInputElement> | undefined>(undefined);\n\n @ViewChild('menu', { static: false }) menu!: ElementRef;\n @ViewChild(CdkConnectedOverlay, { static: false }) overlay!: CdkConnectedOverlay;\n @ViewChildren(NzCascaderOptionComponent) cascaderItems!: QueryList<NzCascaderOptionComponent>;\n\n @Input() nzOptionRender: TemplateRef<{ $implicit: NzCascaderOption; index: number }> | null = null;\n @Input() @InputBoolean() nzShowInput = true;\n @Input() @InputBoolean() nzShowArrow = true;\n @Input() @InputBoolean() nzAllowClear = true;\n @Input() @InputBoolean() nzAutoFocus = false;\n @Input() @InputBoolean() nzChangeOnSelect = false;\n @Input() @InputBoolean() nzDisabled = false;\n @Input() nzColumnClassName?: string;\n @Input() nzExpandTrigger: NzCascaderExpandTrigger = 'click';\n @Input() nzValueProperty = 'value';\n @Input() nzLabelRender: TemplateRef<typeof this.labelRenderContext> | null = null;\n @Input() nzLabelProperty = 'label';\n @Input() nzNotFoundContent?: string | TemplateRef<void>;\n @Input() @WithConfig() nzSize: NzCascaderSize = 'default';\n @Input() @WithConfig() nzBackdrop = false;\n @Input() nzShowSearch: boolean | NzShowSearchOptions = false;\n @Input() nzPlaceHolder: string = '';\n @Input() nzMenuClassName?: string;\n @Input() nzMenuStyle: NgStyleInterface | null = null;\n @Input() nzMouseEnterDelay: number = 150; // ms\n @Input() nzMouseLeaveDelay: number = 150; // ms\n @Input() nzStatus: NzStatus = '';\n\n @Input() nzTriggerAction: NzCascaderTriggerType | NzCascaderTriggerType[] = ['click'] as NzCascaderTriggerType[];\n @Input() nzChangeOn?: (option: NzCascaderOption, level: number) => boolean;\n @Input() nzLoadData?: (node: NzCascaderOption, index: number) => PromiseLike<NzSafeAny> | Observable<NzSafeAny>;\n // TODO: RTL\n @Input() nzSuffixIcon: string | TemplateRef<void> = 'down';\n @Input() nzExpandIcon: string | TemplateRef<void> = '';\n\n @Input()\n get nzOptions(): NzCascaderOption[] | null {\n return this.cascaderService.nzOptions;\n }\n\n set nzOptions(options: NzCascaderOption[] | null) {\n this.cascaderService.withOptions(options);\n }\n\n @Output() readonly nzVisibleChange = new EventEmitter<boolean>();\n @Output() readonly nzSelectionChange = new EventEmitter<NzCascaderOption[]>();\n @Output() readonly nzSelect = new EventEmitter<{ option: NzCascaderOption; index: number } | null>();\n @Output() readonly nzClear = new EventEmitter<void>();\n\n prefixCls: string = 'ant-select';\n statusCls: NgClassInterface = {};\n status: NzValidateStatus = '';\n hasFeedback: boolean = false;\n\n /**\n * If the dropdown should show the empty content.\n * `true` if there's no options.\n */\n shouldShowEmpty: boolean = false;\n\n el: HTMLElement;\n menuVisible = false;\n isLoading = false;\n labelRenderText?: string;\n labelRenderContext = {};\n onChange = Function.prototype;\n onTouched = Function.prototype;\n positions: ConnectionPositionPair[] = [...DEFAULT_CASCADER_POSITIONS];\n\n /**\n * Dropdown's with in pixel.\n */\n dropdownWidthStyle?: string;\n dropdownHeightStyle: 'auto' | '' = '';\n isFocused = false;\n\n locale!: NzCascaderI18nInterface;\n dir: Direction = 'ltr';\n\n private inputString = '';\n private isOpening = false;\n private delayMenuTimer: number | null = null;\n private delaySelectTimer: number | null = null;\n private isNzDisableFirstChange: boolean = true;\n\n get inSearchingMode(): boolean {\n return this.cascaderService.inSearchingMode;\n }\n\n set inputValue(inputValue: string) {\n this.inputString = inputValue;\n this.toggleSearchingMode(!!inputValue);\n }\n\n get inputValue(): string {\n return this.inputString;\n }\n\n get menuCls(): NgClassType {\n return { [`${this.nzMenuClassName}`]: !!this.nzMenuClassName };\n }\n\n get menuColumnCls(): NgClassType {\n return { [`${this.nzColumnClassName}`]: !!this.nzColumnClassName };\n }\n\n private get hasInput(): boolean {\n return !!this.inputValue;\n }\n\n private get hasValue(): boolean {\n return this.cascaderService.values && this.cascaderService.values.length > 0;\n }\n\n get showLabelRender(): boolean {\n return this.hasValue;\n }\n\n get showPlaceholder(): boolean {\n return !(this.hasInput || this.hasValue);\n }\n\n get clearIconVisible(): boolean {\n return this.nzAllowClear && !this.nzDisabled && (this.hasValue || this.hasInput);\n }\n\n get isLabelRenderTemplate(): boolean {\n return !!this.nzLabelRender;\n }\n\n constructor(\n public cascaderService: NzCascaderService,\n public nzConfigService: NzConfigService,\n private ngZone: NgZone,\n private cdr: ChangeDetectorRef,\n private i18nService: NzI18nService,\n private destroy$: NzDestroyService,\n private elementRef: ElementRef,\n private renderer: Renderer2,\n @Optional() private directionality: Directionality,\n @Host() @Optional() public noAnimation?: NzNoAnimationDirective,\n @Optional() public nzFormStatusService?: NzFormStatusService,\n @Optional() private nzFormNoStatusService?: NzFormNoStatusService\n ) {\n this.el = elementRef.nativeElement;\n this.cascaderService.withComponent(this);\n this.renderer.addClass(this.elementRef.nativeElement, 'ant-select');\n this.renderer.addClass(this.elementRef.nativeElement, 'ant-cascader');\n }\n\n ngOnInit(): void {\n this.nzFormStatusService?.formStatusChanges\n .pipe(\n distinctUntilChanged((pre, cur) => {\n return pre.status === cur.status && pre.hasFeedback === cur.hasFeedback;\n }),\n withLatestFrom(this.nzFormNoStatusService ? this.nzFormNoStatusService.noFormStatus : observableOf(false)),\n map(([{ status, hasFeedback }, noStatus]) => ({ status: noStatus ? '' : status, hasFeedback })),\n takeUntil(this.destroy$)\n )\n .subscribe(({ status, hasFeedback }) => {\n this.setStatusStyles(status, hasFeedback);\n });\n\n const srv = this.cascaderService;\n\n srv.$redraw.pipe(takeUntil(this.destroy$)).subscribe(() => {\n // These operations would not mutate data.\n this.checkChildren();\n this.setDisplayLabel();\n this.cdr.detectChanges();\n this.reposition();\n this.setDropdownStyles();\n });\n\n srv.$loading.pipe(takeUntil(this.destroy$)).subscribe(loading => {\n this.isLoading = loading;\n });\n\n srv.$optionSelected.pipe(takeUntil(this.destroy$)).subscribe(data => {\n if (!data) {\n this.onChange([]);\n this.nzSelect.emit(null);\n this.nzSelectionChange.emit([]);\n } else {\n const { option, index } = data;\n const shouldClose = option.isLeaf || (this.nzChangeOnSelect && this.nzExpandTrigger === 'hover');\n if (shouldClose) {\n this.delaySetMenuVisible(false);\n }\n this.onChange(this.cascaderService.values);\n this.nzSelectionChange.emit(this.cascaderService.selectedOptions);\n this.nzSelect.emit({ option, index });\n this.cdr.markForCheck();\n }\n });\n\n srv.$quitSearching.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.inputString = '';\n this.dropdownWidthStyle = '';\n });\n\n this.i18nService.localeChange.pipe(startWith(), takeUntil(this.destroy$)).subscribe(() => {\n this.setLocale();\n });\n\n this.nzConfigService\n .getConfigChangeEventForComponent(NZ_CONFIG_MODULE_NAME)\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.cdr.markForCheck();\n });\n\n this.dir = this.directionality.value;\n this.directionality.change.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.dir = this.directionality.value;\n srv.$redraw.next();\n });\n\n this.setupChangeListener();\n this.setupKeydownListener();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { nzStatus } = changes;\n if (nzStatus) {\n this.setStatusStyles(this.nzStatus, this.hasFeedback);\n }\n }\n\n ngOnDestroy(): void {\n this.clearDelayMenuTimer();\n this.clearDelaySelectTimer();\n }\n\n registerOnChange(fn: () => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n writeValue(value: NzSafeAny): void {\n this.cascaderService.values = toArray(value);\n this.cascaderService.syncOptions(true);\n }\n\n delaySetMenuVisible(visible: boolean, delay: number = 100, setOpening: boolean = false): void {\n this.clearDelayMenuTimer();\n if (delay) {\n if (visible && setOpening) {\n this.isOpening = true;\n }\n this.delayMenuTimer = setTimeout(() => {\n this.setMenuVisible(visible);\n this.cdr.detectChanges();\n this.clearDelayMenuTimer();\n if (visible) {\n setTimeout(() => {\n this.isOpening = false;\n }, 100);\n }\n }, delay);\n } else {\n this.setMenuVisible(visible);\n }\n }\n\n setMenuVisible(visible: boolean): void {\n if (this.nzDisabled || this.menuVisible === visible) {\n return;\n }\n if (visible) {\n this.cascaderService.syncOptions();\n this.scrollToActivatedOptions();\n }\n\n if (!visible) {\n this.inputValue = '';\n }\n\n this.menuVisible = visible;\n this.nzVisibleChange.emit(visible);\n this.cdr.detectChanges();\n }\n\n private clearDelayMenuTimer(): void {\n if (this.delayMenuTimer) {\n clearTimeout(this.delayMenuTimer);\n this.delayMenuTimer = null;\n }\n }\n\n clearSelection(event?: Event): void {\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n this.labelRenderText = '';\n this.labelRenderContext = {};\n this.inputValue = '';\n this.setMenuVisible(false);\n this.cascaderService.clear();\n this.nzClear.emit();\n }\n\n getSubmitValue(): NzSafeAny[] {\n return this.cascaderService.selectedOptions.map(o => this.cascaderService.getOptionValue(o));\n }\n\n focus(): void {\n if (!this.isFocused) {\n (this.input?.nativeElement || this.el).focus();\n this.isFocused = true;\n }\n }\n\n blur(): void {\n if (this.isFocused) {\n (this.input?.nativeElement || this.el).blur();\n this.isFocused = false;\n }\n }\n\n handleInputBlur(): void {\n this.menuVisible ? this.focus() : this.blur();\n }\n\n handleInputFocus(): void {\n this.focus();\n }\n\n @HostListener('click')\n onTriggerClick(): void {\n if (this.nzDisabled) {\n return;\n }\n if (this.nzShowSearch) {\n this.focus();\n }\n if (this.isActionTrigger('click')) {\n this.delaySetMenuVisible(!this.menuVisible, 100);\n }\n this.onTouched();\n }\n\n @HostListener('mouseenter')\n onTriggerMouseEnter(): void {\n if (this.nzDisabled || !this.isActionTrigger('hover')) {\n return;\n }\n\n this.delaySetMenuVisible(true, this.nzMouseEnterDelay, true);\n }\n\n @HostListener('mouseleave', ['$event'])\n onTriggerMouseLeave(event: MouseEvent): void {\n if (this.nzDisabled || !this.menuVisible || this.isOpening || !this.isActionTrigger('hover')) {\n event.preventDefault();\n return;\n }\n const mouseTarget = event.relatedTarget as HTMLElement;\n const hostEl = this.el;\n const menuEl = this.menu && (this.menu.nativeElement as HTMLElement);\n if (hostEl.contains(mouseTarget) || (menuEl && menuEl.contains(mouseTarget))) {\n return;\n }\n this.delaySetMenuVisible(false, this.nzMouseLeaveDelay);\n }\n\n onOptionMouseEnter(option: NzCascaderOption, columnIndex: number, event: Event): void {\n event.preventDefault();\n if (this.nzExpandTrigger === 'hover') {\n if (!option.isLeaf) {\n this.delaySetOptionActivated(option, columnIndex, false);\n } else {\n this.cascaderService.setOptionDeactivatedSinceColumn(columnIndex);\n }\n }\n }\n\n onOptionMouseLeave(option: NzCascaderOption, _columnIndex: number, event: Event): void {\n event.preventDefault();\n if (this.nzExpandTrigger === 'hover' && !option.isLeaf) {\n this.clearDelaySelectTimer();\n }\n }\n\n onOptionClick(option: NzCascaderOption, columnIndex: number, event: Event): void {\n if (event) {\n event.preventDefault();\n }\n if (option && option.disabled) {\n return;\n }\n\n this.el.focus();\n this.inSearchingMode\n ? this.cascaderService.setSearchOptionSelected(option as NzCascaderSearchOption)\n : this.cascaderService.setOptionActivated(option, columnIndex, true);\n }\n\n onClickOutside(event: MouseEvent): void {\n if (!this.el.contains(event.target as Node)) {\n this.closeMenu();\n }\n }\n\n private isActionTrigger(action: 'click' | 'hover'): boolean {\n return typeof this.nzTriggerAction === 'string'\n ? this.nzTriggerAction === action\n : this.nzTriggerAction.indexOf(action) !== -1;\n }\n\n private onEnter(): void {\n const columnIndex = Math.max(this.cascaderService.activatedOptions.length - 1, 0);\n const option = this.cascaderService.activatedOptions[columnIndex];\n if (option && !option.disabled) {\n this.inSearchingMode\n ? this.cascaderService.setSearchOptionSelected(option as NzCascaderSearchOption)\n : this.cascaderService.setOptionActivated(option, columnIndex, true);\n }\n }\n\n private moveUpOrDown(isUp: boolean): void {\n const columnIndex = Math.max(this.cascaderService.activatedOptions.length - 1, 0);\n const activeOption = this.cascaderService.activatedOptions[columnIndex];\n const options = this.cascaderService.columns[columnIndex] || [];\n const length = options.length;\n let nextIndex = -1;\n if (!activeOption) {\n // Not selected options in this column\n nextIndex = isUp ? length : -1;\n } else {\n nextIndex = options.indexOf(activeOption);\n }\n\n while (true) {\n nextIndex = isUp ? nextIndex - 1 : nextIndex + 1;\n if (nextIndex < 0 || nextIndex >= length) {\n break;\n }\n const nextOption = options[nextIndex];\n if (!nextOption || nextOption.disabled) {\n continue;\n }\n this.cascaderService.setOptionActivated(nextOption, columnIndex);\n break;\n }\n }\n\n private moveLeft(): void {\n const options = this.cascaderService.activatedOptions;\n if (options.length) {\n options.pop(); // Remove the last one\n }\n }\n\n private moveRight(): void {\n const length = this.cascaderService.activatedOptions.length;\n const options = this.cascaderService.columns[length];\n if (options && options.length) {\n const nextOpt = options.find(o => !o.disabled);\n if (nextOpt) {\n this.cascaderService.setOptionActivated(nextOpt, length);\n }\n }\n }\n\n private clearDelaySelectTimer(): void {\n if (this.delaySelectTimer) {\n clearTimeout(this.delaySelectTimer);\n this.delaySelectTimer = null;\n }\n }\n\n private delaySetOptionActivated(option: NzCascaderOption, columnIndex: number, performSelect: boolean): void {\n this.clearDelaySelectTimer();\n this.delaySelectTimer = setTimeout(() => {\n this.cascaderService.setOptionActivated(option, columnIndex, performSelect);\n this.delaySelectTimer = null;\n }, 150);\n }\n\n private toggleSearchingMode(toSearching: boolean): void {\n if (this.inSearchingMode !== toSearching) {\n this.cascaderService.toggleSearchingMode(toSearching);\n }\n\n if (this.inSearchingMode) {\n this.cascaderService.prepareSearchOptions(this.inputValue);\n }\n }\n\n isOptionActivated(option: NzCascaderOption, index: number): boolean {\n const activeOpt = this.cascaderService.activatedOptions[index];\n return activeOpt === option;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.nzDisabled = (this.isNzDisableFirstChange && this.nzDisabled) || isDisabled;\n this.isNzDisableFirstChange = false;\n if (this.nzDisabled) {\n this.closeMenu();\n }\n }\n\n closeMenu(): void {\n this.blur();\n this.clearDelayMenuTimer();\n this.setMenuVisible(false);\n }\n\n /**\n * Reposition the cascader panel. When a menu opens, the cascader expands\n * and may exceed the boundary of browser's window.\n */\n private reposition(): void {\n if (this.overlay && this.overlay.overlayRef && this.menuVisible) {\n Promise.resolve().then(() => {\n this.overlay.overlayRef.updatePosition();\n this.cdr.markForCheck();\n });\n }\n }\n\n /**\n * When a cascader options is changed, a child needs to know that it should re-render.\n */\n private checkChildren(): void {\n if (this.cascaderItems) {\n this.cascaderItems.forEach(item => item.markForCheck());\n }\n }\n\n private setDisplayLabel(): void {\n const selectedOptions = this.cascaderService.selectedOptions;\n const labels: string[] = selectedOptions.map(o => this.cascaderService.getOptionLabel(o));\n\n if (this.isLabelRenderTemplate) {\n this.labelRenderContext = { labels, selectedOptions };\n }\n this.labelRenderText = defaultDisplayRender.call(this, labels);\n }\n\n private setDropdownStyles(): void {\n const firstColumn = this.cascaderService.columns[0];\n\n this.shouldShowEmpty =\n (this.inSearchingMode && (!firstColumn || !firstColumn.length)) || // Should show empty when there's no searching result\n (!(this.nzOptions && this.nzOptions.length) && !this.nzLoadData); // Should show when there's no options and developer does not use nzLoadData\n this.dropdownHeightStyle = this.shouldShowEmpty ? 'auto' : '';\n\n if (this.input) {\n this.dropdownWidthStyle =\n this.inSearchingMode || this.shouldShowEmpty ? `${this.selectContainer.nativeElement.offsetWidth}px` : '';\n }\n }\n\n private setStatusStyles(status: NzValidateStatus, hasFeedback: boolean): void {\n // set inner status\n this.status = status;\n this.hasFeedback = hasFeedback;\n this.cdr.markForCheck();\n // render status if nzStatus is set\n this.statusCls = getStatusClassNames(this.prefixCls, status, hasFeedback);\n Object.keys(this.statusCls).forEach(status => {\n if (this.statusCls[status]) {\n this.renderer.addClass(this.elementRef.nativeElement, status);\n } else {\n this.renderer.removeClass(this.elementRef.nativeElement, status);\n }\n });\n }\n\n private setLocale(): void {\n this.locale = this.i18nService.getLocaleData('global');\n this.cdr.markForCheck();\n }\n\n private scrollToActivatedOptions(): void {\n // The `scrollIntoView` is a native DOM API, which doesn't require Angular to run\n // a change detection when a promise microtask is resolved.\n this.ngZone.runOutsideAngular(() => {\n Promise.resolve().then(() => {\n // scroll only until option menu view is ready\n this.cascaderItems\n .toArray()\n .filter(e => e.activated)\n .forEach(e => {\n e.nativeElement.scrollIntoView({ block: 'start', inline: 'nearest' });\n });\n });\n });\n }\n\n private setupChangeListener(): void {\n this.input$\n .pipe(\n switchMap(input =>\n input\n ? new Observable<Event>(subscriber =>\n this.ngZone.runOutsideAngular(() => fromEvent(input.nativeElement, 'change').subscribe(subscriber))\n )\n : EMPTY\n ),\n takeUntil(this.destroy$)\n )\n .subscribe(event => event.stopPropagation());\n }\n\n private setupKeydownListener(): void {\n this.ngZone.runOutsideAngular(() => {\n fromEvent<KeyboardEvent>(this.el, 'keydown')\n .pipe(takeUntil(this.destroy$))\n .subscribe(event => {\n const keyCode = event.keyCode;\n\n if (\n keyCode !== DOWN_ARROW &&\n keyCode !== UP_ARROW &&\n keyCode !== LEFT_ARROW &&\n keyCode !== RIGHT_ARROW &&\n keyCode !== ENTER &&\n keyCode !== BACKSPACE &&\n keyCode !== ESCAPE\n ) {\n return;\n }\n\n // Press any keys above to reopen menu.\n if (!this.menuVisible && keyCode !== BACKSPACE && keyCode !== ESCAPE) {\n // The `setMenuVisible` runs `detectChanges()`, so we don't need to run `markForCheck()` additionally.\n return this.ngZone.run(() => this.setMenuVisible(true));\n }\n\n // Make these keys work as default in searching mode.\n if (this.inSearchingMode && (keyCode === BACKSPACE || keyCode === LEFT_ARROW || keyCode === RIGHT_ARROW)) {\n return;\n }\n\n if (!this.menuVisible) {\n return;\n }\n\n event.preventDefault();\n\n this.ngZone.run(() => {\n // Interact with the component.\n if (keyCode === DOWN_ARROW) {\n this.moveUpOrDown(false);\n } else if (keyCode === UP_ARROW) {\n this.moveUpOrDown(true);\n } else if (keyCode === LEFT_ARROW) {\n this.moveLeft();\n } else if (keyCode === RIGHT_ARROW) {\n this.moveRight();\n } else if (keyCode === ENTER) {\n this.onEnter();\n }\n // `@HostListener`s run `markForCheck()` internally before calling the actual handler so\n // we call `markForCheck()` to be backwards-compatible.\n this.cdr.markForCheck();\n });\n });\n });\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { NgModule } from '@angular/core';\n\nimport { NzCascaderOptionComponent } from './cascader-li.component';\nimport { NzCascaderComponent } from './cascader.component';\n\n@NgModule({\n imports: [NzCascaderComponent, NzCascaderOptionComponent],\n exports: [NzCascaderComponent]\n})\nexport class NzCascaderModule {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport * from './typings';\nexport * from './utils';\nexport * from './cascader.component';\nexport * from './cascader.module';\nexport * from './cascader.service';\nexport * from './cascader-li.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["observableOf","i1.NzCascaderService","i2","i3","i10"],"mappings":"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"}