1 line
123 KiB
Plaintext
1 line
123 KiB
Plaintext
{"version":3,"file":"ng-zorro-antd-cascader.mjs","sources":["../../components/cascader/typings.ts","../../components/cascader/utils.ts","../../components/cascader/cascader-option.component.ts","../../components/cascader/cascader-tree.service.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 { NzTreeNode } from 'ng-zorro-antd/core/tree';\nimport { NzSafeAny, NzSizeLDSType } from 'ng-zorro-antd/core/types';\n\nimport { NzCascaderTreeService } from './cascader-tree.service';\n\nexport type NzCascaderExpandTrigger = 'click' | 'hover';\nexport type NzCascaderTriggerType = 'click' | 'hover';\nexport type NzCascaderSize = NzSizeLDSType;\n\nexport type NzCascaderFilter = (searchValue: string, path: NzCascaderOption[]) => boolean;\nexport type NzCascaderSorter = (a: NzCascaderOption[], b: NzCascaderOption[], inputValue: string) => number;\nexport type NzCascaderPlacement = 'bottomLeft' | 'bottomRight' | 'topLeft' | 'topRight';\n\nexport interface NzCascaderOption {\n value?: NzSafeAny;\n label?: string;\n title?: string;\n disabled?: boolean;\n loading?: boolean;\n isLeaf?: boolean;\n children?: NzCascaderOption[];\n disableCheckbox?: boolean;\n\n [key: string]: NzSafeAny;\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 selectedNodes: NzTreeNode[];\n\n get treeService(): NzCascaderTreeService;\n\n coerceTreeNodes(value: NzSafeAny[]): NzTreeNode[];\n\n updateSelectedNodes(): void;\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 { NzTreeNode } from 'ng-zorro-antd/core/tree';\n\nexport function isChildNode(node: NzTreeNode): boolean {\n return node.isLeaf || !node.children || !node.children.length;\n}\n\nexport function isParentNode(node: NzTreeNode): boolean {\n return !!node.children && !!node.children.length && !node.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 Component,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n numberAttribute,\n ChangeDetectorRef\n} from '@angular/core';\n\nimport { NzHighlightPipe } from 'ng-zorro-antd/core/highlight';\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { NzTreeNode } from 'ng-zorro-antd/core/tree';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\n\nimport { NzCascaderOption } from './typings';\n\n@Component({\n selector: '[nz-cascader-option]',\n exportAs: 'nzCascaderOption',\n imports: [NgTemplateOutlet, NzHighlightPipe, NzIconModule, NzOutletModule],\n template: `\n @if (checkable) {\n <span\n class=\"ant-cascader-checkbox\"\n [class.ant-cascader-checkbox-checked]=\"checked\"\n [class.ant-cascader-checkbox-indeterminate]=\"halfChecked\"\n [class.ant-cascader-checkbox-disabled]=\"disabled\"\n (click)=\"onCheckboxClick($event)\"\n >\n <span class=\"ant-cascader-checkbox-inner\"></span>\n </span>\n }\n\n @if (optionTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"optionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: node.origin, index: columnIndex }\"\n />\n } @else {\n <div\n class=\"ant-cascader-menu-item-content\"\n [innerHTML]=\"node.title | nzHighlight: highlightText : 'g' : 'ant-cascader-menu-item-keyword'\"\n ></div>\n }\n\n @if (!node.isLeaf || node.children?.length || node.isLoading) {\n <div class=\"ant-cascader-menu-item-expand-icon\">\n @if (node.isLoading) {\n <nz-icon nzType=\"loading\" />\n } @else {\n <ng-container *nzStringTemplateOutlet=\"expandIcon\">\n <nz-icon [nzType]=\"$any(expandIcon)\" />\n </ng-container>\n }\n </div>\n }\n `,\n host: {\n class: 'ant-cascader-menu-item ant-cascader-menu-item-expanded',\n '[attr.title]': 'node.title',\n '[class.ant-cascader-menu-item-active]': 'activated',\n '[class.ant-cascader-menu-item-expand]': '!node.isLeaf',\n '[class.ant-cascader-menu-item-disabled]': 'node.isDisabled'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class NzCascaderOptionComponent implements OnInit {\n private cdr = inject(ChangeDetectorRef);\n\n @Input() optionTemplate: TemplateRef<NzCascaderOption> | null = null;\n @Input() node!: NzTreeNode;\n @Input() activated = false;\n @Input() highlightText!: string;\n @Input() nzLabelProperty = 'label';\n @Input({ transform: numberAttribute }) columnIndex!: number;\n @Input() expandIcon: string | TemplateRef<void> = '';\n @Input() dir: Direction = 'ltr';\n @Input({ transform: booleanAttribute }) checkable?: boolean = false;\n\n @Output() readonly check = new EventEmitter<void>();\n\n public readonly nativeElement: HTMLElement = inject(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 checked(): boolean {\n return this.node.isChecked;\n }\n\n get halfChecked(): boolean {\n return this.node.isHalfChecked;\n }\n\n get disabled(): boolean {\n return this.node.isDisabled || this.node.isDisableCheckbox;\n }\n\n markForCheck(): void {\n this.cdr.markForCheck();\n }\n\n onCheckboxClick(event: MouseEvent): void {\n event.preventDefault();\n event.stopPropagation();\n if (!this.checkable) {\n return;\n }\n this.check.emit();\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 } from '@angular/core';\n\nimport { NzTreeBaseService, NzTreeNode, NzTreeNodeKey } from 'ng-zorro-antd/core/tree';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { arraysEqual, isNotNil } from 'ng-zorro-antd/core/util';\n\nimport { NzCascaderOption } from './typings';\n\ninterface InternalFieldNames {\n label: string;\n value: string;\n}\n\n@Injectable()\nexport class NzCascaderTreeService extends NzTreeBaseService {\n fieldNames: InternalFieldNames = {\n label: 'label',\n value: 'value'\n };\n\n override treeNodePostProcessor = (node: NzTreeNode): void => {\n node.key = this.getOptionValue(node);\n node.title = this.getOptionLabel(node);\n };\n\n getOptionValue(node: NzTreeNode): NzSafeAny {\n return node.origin[this.fieldNames.value || 'value'];\n }\n\n getOptionLabel(node: NzTreeNode): string {\n return node.origin[this.fieldNames.label || 'label'];\n }\n\n get children(): NzTreeNode[] {\n return this.rootNodes;\n }\n\n set children(value: Array<NzTreeNode | NzSafeAny>) {\n this.rootNodes = value.map(v => (v instanceof NzTreeNode ? v : new NzTreeNode(v, null)));\n }\n\n /**\n * Map list of nodes to list of option\n */\n toOptions(nodes: NzTreeNode[]): NzCascaderOption[] {\n return nodes.map(node => node.origin);\n }\n\n getAncestorNodeList(node: NzTreeNode | null): NzTreeNode[] {\n if (!node) {\n return [];\n }\n if (node.parentNode) {\n return [...this.getAncestorNodeList(node.parentNode), node];\n }\n return [node];\n }\n\n /**\n * Render by nzCheckedKeys\n * When keys equals null, just render with checkStrictly\n *\n * @param paths\n * @param checkStrictly\n */\n conductCheckPaths(paths: NzTreeNodeKey[][] | null, checkStrictly: boolean): void {\n this.checkedNodeList = [];\n this.halfCheckedNodeList = [];\n const existsPathList: NzTreeNodeKey[][] = [];\n const calc = (nodes: NzTreeNode[]): void => {\n nodes.forEach(node => {\n if (paths === null) {\n // render tree if no default checked keys found\n node.isChecked = !!node.origin.checked;\n } else {\n // if node is in checked path\n const nodePath = this.getAncestorNodeList(node).map(n => this.getOptionValue(n));\n if (paths.some(keys => arraysEqual(nodePath, keys))) {\n node.isChecked = true;\n node.isHalfChecked = false;\n existsPathList.push(nodePath);\n } else {\n node.isChecked = false;\n node.isHalfChecked = false;\n }\n }\n if (node.children.length > 0) {\n calc(node.children);\n }\n });\n };\n calc(this.rootNodes);\n this.refreshCheckState(checkStrictly);\n // handle missing node\n this.handleMissingNodeList(paths, existsPathList);\n }\n\n conductSelectedPaths(paths: NzTreeNodeKey[][]): void {\n this.selectedNodeList.forEach(node => (node.isSelected = false));\n this.selectedNodeList = [];\n const existsPathList: NzTreeNodeKey[][] = [];\n const calc = (nodes: NzTreeNode[]): boolean =>\n nodes.every(node => {\n // if node is in selected path\n const nodePath = this.getAncestorNodeList(node).map(n => this.getOptionValue(n));\n if (paths.some(keys => arraysEqual(nodePath, keys))) {\n node.isSelected = true;\n this.setSelectedNodeList(node);\n existsPathList.push(nodePath);\n return false;\n } else {\n node.isSelected = false;\n }\n if (node.children.length > 0) {\n return calc(node.children);\n }\n return true;\n });\n calc(this.rootNodes);\n this.handleMissingNodeList(paths, existsPathList);\n }\n\n private handleMissingNodeList(paths: NzTreeNodeKey[][] | null, existsPathList: NzTreeNodeKey[][]): void {\n const missingNodeList = this.getMissingNodeList(paths, existsPathList);\n missingNodeList.forEach(node => {\n this.setSelectedNodeList(node);\n });\n }\n\n private getMissingNodeList(paths: NzTreeNodeKey[][] | null, existsPathList: NzTreeNodeKey[][]): NzTreeNode[] {\n if (!paths) {\n return [];\n }\n return paths\n .filter(path => !existsPathList.some(keys => arraysEqual(path, keys)))\n .map(path => this.createMissingNode(path))\n .filter(isNotNil);\n }\n\n private createMissingNode(path: NzTreeNodeKey[]): NzTreeNode | null {\n if (!path?.length) {\n return null;\n }\n\n const createOption = (key: NzTreeNodeKey): NzSafeAny => {\n return {\n [this.fieldNames.value || 'value']: key,\n [this.fieldNames.label || 'label']: key\n };\n };\n\n let node = new NzTreeNode(createOption(path[0]), null, this);\n\n for (let i = 1; i < path.length; i++) {\n const childNode = new NzTreeNode(createOption(path[i]));\n node.addChildren([childNode]);\n node = childNode;\n }\n\n if (this.isMultiple) {\n node.isChecked = true;\n node.isHalfChecked = false;\n } else {\n node.isSelected = true;\n }\n return node;\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 { DestroyRef, inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { finalize } from 'rxjs/operators';\n\nimport { NzTreeNode, NzTreeNodeOptions } from 'ng-zorro-antd/core/tree';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { isNotNil, wrapIntoObservable } from 'ng-zorro-antd/core/util';\n\nimport { isShowSearchObject, NzCascaderComponentAsSource, NzCascaderFilter, NzCascaderOption } from './typings';\nimport { isChildNode, isParentNode } from './utils';\n\n/**\n * All data is stored and parsed in NzCascaderService.\n */\n@Injectable()\nexport class NzCascaderService {\n private destroyRef = inject(DestroyRef);\n /** Activated options in each column. */\n activatedNodes: NzTreeNode[] = [];\n\n /** An array to store cascader items arranged in different layers. */\n columns: NzTreeNode[][] = [];\n\n /** If user has entered searching mode. */\n inSearchingMode = false;\n\n values: NzSafeAny[] = [];\n\n /**\n * Emit an event when loading state changes.\n * Emit true if nzOptions is loading by `nzLoadData`.\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 $nodeSelected = new Subject<NzTreeNode | 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 columnSnapshot: NzTreeNode[][] = [[]];\n\n private cascaderComponent!: NzCascaderComponentAsSource;\n\n private searchOptionPathMap = new Map<NzTreeNode, NzCascaderOption[]>();\n\n constructor() {\n this.destroyRef.onDestroy(() => {\n this.$redraw.complete();\n this.$quitSearching.complete();\n this.$nodeSelected.complete();\n this.$loading.complete();\n this.searchOptionPathMap.clear();\n });\n }\n\n /** Return cascader options in the first layer. */\n get nzOptions(): NzCascaderOption[] {\n return this.cascaderComponent.treeService.toOptions(this.columns[0] || []);\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 * Try to set an option as activated.\n *\n * @param node Cascader option node\n * @param columnIndex Of which column this option is in\n * @param performSelect Select\n * @param multiple Multiple mode\n * @param loadingChildren Try to load children asynchronously.\n */\n setNodeActivated(\n node: NzTreeNode,\n columnIndex: number,\n performSelect: boolean = false,\n multiple: boolean = false,\n loadingChildren: boolean = true\n ): void {\n if (node.isDisabled) {\n return;\n }\n\n this.activatedNodes[columnIndex] = node;\n this.trackAncestorActivatedNodes(columnIndex);\n this.dropBehindActivatedNodes(columnIndex);\n\n if (isParentNode(node)) {\n // Parent option that has children.\n this.setColumnData(node.children!, columnIndex + 1);\n } else if (!node.isLeaf && loadingChildren) {\n // Parent option that should try to load children asynchronously.\n this.loadChildren(node, columnIndex);\n } else if (node.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 && node.isSelectable) {\n this.setNodeSelected(node, columnIndex, multiple);\n }\n\n this.$redraw.next();\n }\n\n /**\n * Set an option as selected.\n * @param node\n * @param index\n * @param multiple\n */\n setNodeSelected(node: NzTreeNode, index: number, multiple: boolean = false): 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 (\n multiple ||\n node.isLeaf ||\n this.cascaderComponent.nzChangeOnSelect ||\n shouldPerformSelection(node.origin, index)\n ) {\n node.isSelected = true;\n this.cascaderComponent.treeService.setSelectedNodeList(node, multiple);\n this.cascaderComponent.updateSelectedNodes();\n this.$redraw.next();\n this.$nodeSelected.next(node);\n }\n }\n\n setNodeDeactivatedSinceColumn(column: number): void {\n this.dropBehindActivatedNodes(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 node\n * @param multiple\n */\n setSearchOptionSelected(node: NzTreeNode, multiple = false): void {\n this.setNodeSelected(node, node.level, multiple);\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 }, 200);\n }\n\n /**\n * Reset node's `title` and `disabled` status and clear `searchOptionPathMap`.\n */\n private clearSearchOptions(): void {\n for (const node of this.searchOptionPathMap.keys()) {\n node.isDisabled = node.origin.disabled || false;\n node.title = this.getOptionLabel(node.origin);\n }\n this.searchOptionPathMap.clear();\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: NzTreeNode[] = []; // Search results only have one layer.\n const path: NzTreeNode[] = [];\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: NzTreeNode, forceDisabled = false): void => {\n path.push(node);\n const cPath = this.cascaderComponent.treeService.toOptions(path);\n if (filter(searchValue, cPath)) {\n this.searchOptionPathMap.set(node, cPath);\n node.isDisabled = forceDisabled || node.isDisabled;\n node.title = cPath.map(p => this.getOptionLabel(p)).join(' / ');\n results.push(node);\n }\n path.pop();\n };\n const loopParent = (node: NzTreeNode, forceDisabled = false): void => {\n const disabled = forceDisabled || node.isDisabled;\n path.push(node);\n node.children!.forEach(sNode => {\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.columnSnapshot.length) {\n this.columns = [[]];\n return;\n }\n\n this.columnSnapshot[0].forEach(o => (isChildNode(o) ? loopChild(o) : loopParent(o)));\n\n if (sorter) {\n results.sort((a, b) => sorter(this.searchOptionPathMap.get(a)!, this.searchOptionPathMap.get(b)!, searchValue));\n }\n\n this.columns = [results];\n this.$redraw.next(); // Search results may be empty, so should redraw.\n }\n\n /**\n * Set 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 setSearchingMode(toSearching: boolean): void {\n this.inSearchingMode = toSearching;\n\n if (toSearching) {\n this.clearSearchOptions(); // if reset nzOptions when searching, should clear searchOptionPathMap\n this.columnSnapshot = [...this.columns];\n this.activatedNodes = [];\n } else {\n // User quit searching mode without selecting an option.\n this.clearSearchOptions();\n this.activatedNodes = [];\n\n setTimeout(() => {\n this.columns = [...this.columnSnapshot];\n if (this.cascaderComponent.selectedNodes.length) {\n const activatedNode = this.cascaderComponent.selectedNodes[0];\n const columnIndex = activatedNode.level;\n this.activatedNodes[columnIndex] = activatedNode;\n this.trackAncestorActivatedNodes(columnIndex);\n this.trackAncestorColumnData(columnIndex);\n }\n this.$redraw.next();\n });\n }\n\n this.$redraw.next();\n }\n\n /**\n * Clear selected options.\n */\n clear(): void {\n this.values = [];\n this.activatedNodes = [];\n this.dropBehindColumns(0);\n this.$redraw.next();\n this.$nodeSelected.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 nodes Options to insert\n * @param columnIndex Position\n */\n setColumnData(nodes: NzTreeNode[], columnIndex: number): void {\n this.columns[columnIndex] = nodes;\n this.dropBehindColumns(columnIndex);\n }\n\n /**\n * Set all columns data according to activate option's path\n */\n private trackAncestorColumnData(startIndex: number): void {\n const node = this.activatedNodes[startIndex];\n if (!node) {\n return;\n }\n\n this.dropBehindColumns(startIndex);\n for (let i = 0; i < startIndex; i++) {\n this.columns[i + 1] = this.activatedNodes[i].children;\n }\n }\n\n /**\n * Set all ancestor options as activated.\n */\n private trackAncestorActivatedNodes(startIndex: number): void {\n for (let i = startIndex - 1; i >= 0; i--) {\n if (!this.activatedNodes[i]) {\n this.activatedNodes[i] = this.activatedNodes[i + 1].parentNode!;\n }\n }\n }\n\n private dropBehindActivatedNodes(lastReserveIndex: number): void {\n this.activatedNodes = this.activatedNodes.splice(0, lastReserveIndex + 1);\n }\n\n 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(node: NzTreeNode | null, columnIndex: number, onLoaded?: (options: NzCascaderOption[]) => void): void {\n const isRoot = columnIndex < 0 || !isNotNil(node);\n const option: NzCascaderOption = node?.origin || {};\n const loadFn = this.cascaderComponent.nzLoadData;\n\n if (loadFn) {\n // If there isn't any option in columns.\n this.$loading.next(isRoot);\n\n if (node) {\n node.isLoading = true;\n }\n\n wrapIntoObservable(loadFn(option, columnIndex))\n .pipe(\n finalize(() => {\n node && (node.isLoading = false);\n this.$loading.next(false);\n this.$redraw.next();\n })\n )\n .subscribe({\n next: () => {\n if (option.children) {\n if (!isRoot) {\n const nodes = option.children.map(o => new NzTreeNode(o as NzTreeNodeOptions, node));\n node.children = nodes;\n this.setColumnData(nodes, columnIndex + 1);\n } else {\n // If it's root node, we should initialize the tree.\n const nodes = this.cascaderComponent.coerceTreeNodes(option.children);\n this.cascaderComponent.treeService.initTree(nodes);\n this.setColumnData(nodes, 0);\n }\n onLoaded?.(option.children);\n }\n },\n error: () => {\n node && (node.isLeaf = true);\n }\n });\n }\n }\n\n isLoaded(index: number): boolean {\n return !!this.columns[index] && this.columns[index].length > 0;\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 {\n CdkConnectedOverlay,\n ConnectedOverlayPositionChange,\n ConnectionPositionPair,\n OverlayModule\n} from '@angular/cdk/overlay';\nimport { _getEventTarget } from '@angular/cdk/platform';\nimport { SlicePipe } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n DestroyRef,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n inject,\n Input,\n NgZone,\n numberAttribute,\n OnChanges,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n signal,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BehaviorSubject, merge, Observable, of } from 'rxjs';\nimport { distinctUntilChanged, map, startWith, switchMap, withLatestFrom } from 'rxjs/operators';\n\nimport { slideMotion } from 'ng-zorro-antd/core/animation';\nimport { NzConfigKey, onConfigChangeEventForComponent, WithConfig } from 'ng-zorro-antd/core/config';\nimport { NzFormItemFeedbackIconComponent, NzFormNoStatusService, NzFormStatusService } from 'ng-zorro-antd/core/form';\nimport { NzNoAnimationDirective } from 'ng-zorro-antd/core/no-animation';\nimport { NzStringTemplateOutletDirective } from 'ng-zorro-antd/core/outlet';\nimport {\n DEFAULT_CASCADER_POSITIONS,\n getPlacementName,\n NzOverlayModule,\n POSITION_MAP,\n POSITION_TYPE\n} from 'ng-zorro-antd/core/overlay';\nimport { NzTreeBase, NzTreeNode } from 'ng-zorro-antd/core/tree';\nimport {\n NgClassInterface,\n NgStyleInterface,\n NzSafeAny,\n NzSizeLDSType,\n NzStatus,\n NzValidateStatus,\n NzVariant\n} from 'ng-zorro-antd/core/types';\nimport { fromEventOutsideAngular, getStatusClassNames, isNotNil, 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';\nimport {\n NzSelectClearComponent,\n NzSelectItemComponent,\n NzSelectPlaceholderComponent,\n NzSelectPlacementType,\n NzSelectSearchComponent\n} from 'ng-zorro-antd/select';\nimport { NZ_SPACE_COMPACT_ITEM_TYPE, NZ_SPACE_COMPACT_SIZE, NzSpaceCompactItemDirective } from 'ng-zorro-antd/space';\n\nimport { NzCascaderOptionComponent } from './cascader-option.component';\nimport { NzCascaderTreeService } from './cascader-tree.service';\nimport { NzCascaderService } from './cascader.service';\nimport {\n NzCascaderComponentAsSource,\n NzCascaderExpandTrigger,\n NzCascaderOption,\n NzCascaderPlacement,\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 template: `\n @if (nzShowInput) {\n <div #selectContainer class=\"ant-select-selector\">\n @if (nzPrefix; as prefix) {\n <div class=\"ant-select-prefix\">\n <ng-container *nzStringTemplateOutlet=\"prefix\">{{ prefix }}</ng-container>\n </div>\n }\n <span class=\"ant-select-selection-wrap\">\n @if (nzMultiple) {\n <div class=\"ant-select-selection-overflow\">\n @for (node of selectedNodes | slice: 0 : nzMaxTagCount; track node) {\n <div class=\"ant-select-selection-overflow-item\">\n <nz-select-item\n deletable\n [disabled]=\"nzDisabled\"\n [label]=\"nzDisplayWith(getAncestorOptionList(node))\"\n (delete)=\"removeSelected(node)\"\n />\n </div>\n }\n @if (selectedNodes.length > nzMaxTagCount) {\n <div class=\"ant-select-selection-overflow-item\">\n <nz-select-item [label]=\"'+ ' + (selectedNodes.length - nzMaxTagCount) + ' ...'\" />\n </div>\n }\n\n <div class=\"ant-select-selection-overflow-item ant-select-selection-overflow-item-suffix\">\n <nz-select-search\n [showInput]=\"!!nzShowSearch\"\n (isComposingChange)=\"isComposingChange($event)\"\n [value]=\"inputValue\"\n (valueChange)=\"inputValue = $event\"\n [mirrorSync]=\"true\"\n [disabled]=\"nzDisabled\"\n [autofocus]=\"nzAutoFocus\"\n [focusTrigger]=\"menuVisible\"\n />\n </div>\n </div>\n } @else {\n <nz-select-search\n [showInput]=\"!!nzShowSearch\"\n (isComposingChange)=\"isComposingChange($event)\"\n [value]=\"inputValue\"\n (valueChange)=\"inputValue = $event\"\n [mirrorSync]=\"false\"\n [disabled]=\"nzDisabled\"\n [autofocus]=\"nzAutoFocus\"\n [focusTrigger]=\"menuVisible\"\n />\n\n @if (showLabelRender) {\n <nz-select-item\n [disabled]=\"nzDisabled\"\n [label]=\"labelRenderText\"\n [contentTemplateOutlet]=\"isLabelRenderTemplate ? nzLabelRender : null\"\n [contentTemplateOutletContext]=\"labelRenderContext\"\n />\n }\n }\n\n @if (showPlaceholder) {\n <nz-select-placeholder\n [placeholder]=\"nzPlaceHolder || locale?.placeholder!\"\n [style.display]=\"inputValue || isComposing ? 'none' : 'block'\"\n />\n }\n </span>\n </div>\n\n @if (nzShowArrow) {\n <span class=\"ant-select-arrow\" [class.ant-select-arrow-loading]=\"isLoading\">\n @if (!isLoading) {\n <nz-icon [nzType]=\"$any(nzSuffixIcon)\" [class.ant-cascader-picker-arrow-expand]=\"menuVisible\" />\n } @else {\n <nz-icon nzType=\"loading\" />\n }\n\n @if (hasFeedback && !!status) {\n <nz-form-item-feedback-icon [status]=\"status\" />\n }\n </span>\n }\n @if (clearIconVisible) {\n <nz-select-clear (clear)=\"clearSelection($event)\" />\n }\n }\n <ng-content></ng-content>\n\n <ng-template\n cdkConnectedOverlay\n nzConnectedOverlay\n [cdkConnectedOverlayHasBackdrop]=\"nzBackdrop\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayTransformOriginOn]=\"'.ant-cascader-dropdown'\"\n [cdkConnectedOverlayOpen]=\"menuVisible\"\n (overlayOutsideClick)=\"onClickOutside($event)\"\n (detach)=\"closeMenu()\"\n (positionChange)=\"onPositionChange($event)\"\n >\n <div\n class=\"ant-select-dropdown ant-cascader-dropdown\"\n [class.ant-select-dropdown-placement-bottomLeft]=\"dropdownPosition === 'bottomLeft'\"\n [class.ant-select-dropdown-placement-bottomRight]=\"dropdownPosition === 'bottomRight'\"\n [class.ant-select-dropdown-placement-topLeft]=\"dropdownPosition === 'topLeft'\"\n [class.ant-select-dropdown-placement-topRight]=\"dropdownPosition === 'topRight'\"\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 [class]=\"nzMenuClassName\"\n [style]=\"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 [class]=\"nzColumnClassName\"\n [style.height]=\"dropdownHeightStyle\"\n >\n @for (option of options; track option) {\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 [node]=\"option\"\n [dir]=\"dir\"\n [checkable]=\"nzMultiple\"\n (mouseenter)=\"onOptionMouseEnter(option, i, $event)\"\n (mouseleave)=\"onOptionMouseLeave(option, i, $event)\"\n (click)=\"onOptionClick(option, i, $event)\"\n (check)=\"onOptionCheck(option, i)\"\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 { provide: NZ_SPACE_COMPACT_ITEM_TYPE, useValue: 'select' },\n NzCascaderService,\n NzCascaderTreeService\n ],\n host: {\n '[attr.tabIndex]': '\"0\"',\n '[class.ant-select-in-form-item]': '!!nzFormStatusService',\n '[class.ant-select-lg]': 'finalSize() === \"large\"',\n '[class.ant-select-sm]': 'finalSize() === \"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-borderless]': `nzVariant === 'borderless'`,\n '[class.ant-select-filled]': `nzVariant === 'filled'`,\n '[class.ant-select-underlined]': `nzVariant === 'underlined'`,\n '[class.ant-select-open]': 'menuVisible',\n '[class.ant-select-focused]': 'isFocused',\n '[class.ant-select-multiple]': 'nzMultiple',\n '[class.ant-select-single]': '!nzMultiple',\n '[class.ant-select-rtl]': `dir === 'rtl'`\n },\n hostDirectives: [NzSpaceCompactItemDirective],\n imports: [\n SlicePipe,\n OverlayModule,\n FormsModule,\n NzIconModule,\n NzEmptyModule,\n NzFormItemFeedbackIconComponent,\n NzOverlayModule,\n NzNoAnimationDirective,\n NzSelectClearComponent,\n NzSelectItemComponent,\n NzSelectPlaceholderComponent,\n NzSelectSearchComponent,\n NzCascaderOptionComponent,\n NzStringTemplateOutletDirective\n ]\n})\nexport class NzCascaderComponent\n extends NzTreeBase\n implements NzCascaderComponentAsSource, OnInit, OnChanges, ControlValueAccessor\n{\n private ngZone = inject(NgZone);\n private cdr = inject(ChangeDetectorRef);\n private i18nService = inject(NzI18nService);\n private elementRef = inject(ElementRef<HTMLElement>);\n private renderer = inject(Renderer2);\n private directionality = inject(Directionality);\n private destroyRef = inject(DestroyRef);\n\n readonly _nzModuleName: NzConfigKey = NZ_CONFIG_MODULE_NAME;\n\n @ViewChild('selectContainer', { static: false }) selectContainer!: ElementRef;\n\n @ViewChild(NzSelectSearchComponent)\n set input(inputComponent: NzSelectSearchComponent | undefined) {\n this.input$.next(inputComponent?.inputElement);\n }\n\n get input(): ElementRef<HTMLInputElement> | undefined {\n return this.input$.getValue();\n }\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() nzOpen?: boolean;\n @Input() nzOptions: NzCascaderOption[] | null = [];\n @Input() nzOptionRender: TemplateRef<{ $implicit: NzCascaderOption; index: number }> | null = null;\n @Input({ transform: booleanAttribute }) nzShowInput = true;\n @Input({ transform: booleanAttribute }) nzShowArrow = true;\n @Input({ transform: booleanAttribute }) nzAllowClear = true;\n @Input({ transform: booleanAttribute }) nzAutoFocus = false;\n @Input({ transform: booleanAttribute }) nzChangeOnSelect = false;\n @Input({ transform: booleanAttribute }) nzDisabled = false;\n @Input() nzColumnClassName?: string;\n @Input() nzExpandTrigger: NzCascaderExpandTrigger = 'click';\n @Input() nzValueProperty: string = 'value';\n @Input() nzLabelProperty: string = 'label';\n @Input() nzLabelRender: TemplateRef<typeof this.labelRenderContext> | null = null;\n @Input() @WithConfig() nzVariant: NzVariant = 'outlined';\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 /**\n * Duration in milliseconds before opening the menu when the mouse enters the trigger.\n * @default 150\n */\n @Input({ transform: numberAttribute }) nzMouseLeaveDelay: number = 150;\n /**\n * Duration in milliseconds before closing the menu when the mouse leaves the trigger.\n * @default 150\n */\n @Input({ transform: numberAttribute }) nzMouseEnterDelay: number = 150;\n @Input() nzStatus: NzStatus = '';\n @Input({ transform: booleanAttribute }) nzMultiple: boolean = false;\n @Input() nzMaxTagCount: number = Infinity;\n @Input() nzPlacement: NzCascaderPlacement = 'bottomLeft';\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 @Input() nzDisplayWith: (nodes: NzCascaderOption[]) => string | undefined = (nodes: NzCascaderOption[]) => {\n return defaultDisplayRender(nodes.map(n => this.cascaderService.getOptionLabel(n!)));\n };\n // TODO: RTL\n @Input() nzPrefix: string | TemplateRef<void> | null = null;\n @Input() nzSuffixIcon: string | TemplateRef<void> = 'down';\n @Input() nzExpandIcon: string | TemplateRef<void> = '';\n\n get treeService(): NzCascaderTreeService {\n return this.nzTreeService as NzCascaderTreeService;\n }\n\n @Output() readonly nzVisibleChange = new EventEmitter<boolean>();\n @Output() readonly nzSelectionChange = new EventEmitter<NzCascaderOption[]>();\n @Output() readonly nzRemoved = new EventEmitter<NzCascaderOption>();\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 = this.elementRef.nativeElement;\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 width in pixel.\n */\n dropdownWidthStyle?: string;\n dropdownHeightStyle: 'auto' | '' = '';\n dropdownPosition: NzCascaderPlacement = 'bottomLeft';\n isFocused = false;\n\n locale!: NzCascaderI18nInterface;\n dir: Direction = 'ltr';\n\n isComposing = false;\n\n protected get overlayOrigin(): ElementRef {\n return this.elementRef;\n }\n\n protected finalSize = computed(() => {\n if (this.compactSize) {\n return this.compactSize();\n }\n return this.size();\n });\n\n private size = signal<NzSizeLDSType>(this.nzSize);\n private compactSize = inject(NZ_SPACE_COMPACT_SIZE, { optional: true });\n private inputString = '';\n private isOpening = false;\n private delayMenuTimer?: ReturnType<typeof setTimeout>;\n private delaySelectTimer?: ReturnType<typeof setTimeout>;\n private isNzDisableFirstChange: boolean = true;\n selectedNodes: NzTreeNode[] = [];\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 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.hasInput && !!this.selectedNodes.length;\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 private get openControlled(): boolean {\n return this.nzOpen !== undefined;\n }\n\n noAnimation = inject(NzNoAnimationDirective, { host: true, optional: true });\n nzFormStatusService = inject(NzFormStatusService, { optional: true });\n private nzFormNoStatusService = inject(NzFormNoStatusService, { optional: true });\n public cascaderService = inject(NzCascaderService);\n\n constructor() {\n super(inject(NzCascaderTreeService));\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 this.destroyRef.onDestroy(() => {\n this.clearDelayMenuTimer();\n this.clearDelaySelectTimer();\n });\n\n onConfigChangeEventForComponent(NZ_CONFIG_MODULE_NAME, () => {\n this.size.set(this.nzSize);\n this.cdr.markForCheck();\n });\n }\n\n ngOnInit(): void {\n this.nzFormStatusService?.formStatusChanges\n .pipe(\n distinctUntilChanged((pre, cur) => pre.status === cur.status && pre.hasFeedback === cur.hasFeedback),\n withLatestFrom(this.nzFormNoStatusService ? this.nzFormNoStatusService.noFormStatus : of(false)),\n map(([{ status, hasFeedback }, noStatus]) => ({ status: noStatus ? '' : status, hasFeedback })),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe(({ status, hasFeedback }) => {\n this.setStatusStyles(status, hasFeedback);\n });\n\n const srv = this.cascaderService;\n\n srv.$redraw.pipe(takeUntilDestroyed(this.destroyRef)).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(takeUntilDestroyed(this.destroyRef)).subscribe(loading => {\n this.isLoading = loading;\n });\n\n srv.$nodeSelected.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(node => {\n if (!node) {\n this.emitValue([]);\n this.nzSelectionChange.emit([]);\n } else {\n const shouldClose =\n // keep menu opened if multiple mode\n !this.nzMultiple &&\n (node.isLeaf || (this.nzChangeOnSelect && this.nzExpandTrigger === 'hover')) &&\n !this.openControlled;\n if (shouldClose) {\n this.delaySetMenuVisible(false);\n }\n this.nzSelectionChange.emit(this.getAncestorOptionList(node));\n this.cdr.markForCheck();\n }\n });\n\n srv.$quitSearching.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.inputValue = '';\n this.dropdownWidthStyle = '';\n });\n\n this.i18nService.localeChange.pipe(startWith(), takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.setLocale();\n });\n\n this.size.set(this.nzSize);\n\n this.dir = this.directionality.value;\n this.directionality.change.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.dir = this.directionality.value;\n srv.$redraw.next();\n });\n\n this.setupSelectionChangeListener();\n this.setupChangeListener();\n this.setupKeydownListener();\n this.setupFocusListener();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { nzOpen, nzStatus, nzSize, nzPlacement, nzOptions } = changes;\n if (nzOpen && this.openControlled) {\n this.setMenuVisible(nzOpen.currentValue);\n }\n if (nzOptions) {\n this.updateOptions();\n }\n if (nzStatus) {\n this.setStatusStyles(this.nzStatus, this.hasFeedback);\n }\n if (nzSize) {\n this.size.set(nzSize.currentValue);\n }\n if (nzPlacement) {\n const { currentValue } = nzPlacement;\n this.dropdownPosition = currentValue as NzCascaderPlacement;\n const listOfPlacement = ['bottomLeft', 'topLeft', 'bottomRight', 'topRight'];\n if (currentValue && listOfPlacement.includes(currentValue)) {\n this.positions = [POSITION_MAP[currentValue as POSITION_TYPE]];\n } else {\n this.positions = listOfPlacement.map(e => POSITION_MAP[e as POSITION_TYPE]);\n }\n }\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 if (isNotNil(value)) {\n if (this.nzMultiple) {\n this.cascaderService.values = toArray(value);\n } else {\n this.cascaderService.values = [toArray(value)];\n }\n // need clear selected nodes when user set value before updating\n this.clearSelectedNodes();\n this.updateSelectedNodes(true, false);\n } else {\n this.cascaderService.values = [];\n this.clearSelectedNodes();\n this.selectedNodes = [];\n this.cascaderService.$redraw.next();\n }\n }\n\n private setupSelectionChangeListener(): void {\n merge(this.nzSelectionChange, this.nzRemoved, this.nzClear)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.updateSelectedNodes();\n this.emitValue(this.cascaderService.values);\n this.cascaderService.$redraw.next();\n });\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.$redraw.next();\n this.updateSelectedNodes(true);\n this.scrollToActivatedOptions();\n } else {\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 = undefined;\n }\n }\n\n clearSelection(event?: Event): void {\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n this.clearSelectedNodes();\n this.labelRenderText = '';\n this.labelRenderContext = {};\n this.inputValue = '';\n if (!this.openControlled) {\n this.setMenuVisible(false);\n }\n this.cascaderService.clear();\n this.nzClear.emit();\n }\n\n clearSelectedNodes(): void {\n this.selectedNodes.forEach(node => {\n this.removeSelected(node, false);\n });\n }\n\n emitValue(values: NzSafeAny[] | null): void {\n if (this.nzMultiple) {\n this.onChange(values);\n } else {\n this.onChange(values?.length ? values[0] : []);\n }\n }\n\n /**\n * @internal\n */\n getSubmitValue(): NzSafeAny[] {\n if (this.nzMultiple) {\n return this.cascaderService.values;\n } else {\n return this.cascaderService.values?.length ? this.cascaderService.values[0] : [];\n }\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 isComposingChange(isComposing: boolean): void {\n this.isComposing = isComposing;\n }\n\n @HostListener('click')\n onTriggerClick(): void {\n if (this.nzDisabled || this.openControlled) {\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') || this.openControlled) {\n return;\n }\n\n this.delaySetMenuVisible(true, this.nzMouseEnterDelay, true);\n }\n\n @HostListener('mouseleave', ['$event'])\n onTriggerMouseLeave(event: MouseEvent): void {\n if (\n this.nzDisabled ||\n !this.menuVisible ||\n this.isOpening ||\n !this.isActionTrigger('hover') ||\n this.openControlled\n ) {\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(node: NzTreeNode, columnIndex: number, event: Event): void {\n event.preventDefault();\n if (this.nzExpandTrigger === 'hover') {\n if (!node.isLeaf) {\n this.delaySetOptionActivated(node, columnIndex, false);\n } else {\n this.cascaderService.setNodeDeactivatedSinceColumn(columnIndex);\n }\n }\n }\n\n onOptionMouseLeave(node: NzTreeNode, _columnIndex: number, event: Event): void {\n event.preventDefault();\n if (this.nzExpandTrigger === 'hover' && !node.isLeaf) {\n this.clearDelaySelectTimer();\n }\n }\n\n /**\n * Get ancestor options of a node\n */\n protected getAncestorOptionList(node: NzTreeNode | null): NzCascaderOption[] {\n const ancestors = this.treeService.getAncestorNodeList(node);\n return this.treeService.toOptions(ancestors);\n }\n\n updateSelectedNodes(init: boolean = false, updateValue = true): void {\n const value = this.cascaderService.values;\n const multiple = this.nzMultiple;\n\n /**\n * Update selected nodes and emit value\n * @param shouldUpdateValue if false, only update selected nodes\n */\n const updateNodesAndValue = (shouldUpdateValue: boolean): void => {\n this.selectedNodes = [...(this.nzMultiple ? this.getCheckedNodeList() : this.getSelectedNodeList())].sort(\n (a, b) => {\n const indexA = value.indexOf(a.key);\n const indexB = value.indexOf(b.key);\n if (indexA !== -1 && indexB !== -1) {\n return indexA - indexB;\n }\n if (indexA !== -1) {\n return -1;\n }\n if (indexB !== -1) {\n return 1;\n }\n return 0;\n }\n );\n if (shouldUpdateValue) {\n this.cascaderService.values = this.selectedNodes.map(node =>\n this.getAncestorOptionList(node).map(o => this.cascaderService.getOptionValue(o))\n );\n }\n this.cascaderService.$redraw.next();\n };\n\n if (init) {\n const defaultValue = value[0];\n const lastColumnIndex = defaultValue?.length ? defaultValue.length - 1 : 0;\n this.treeService.fieldNames = {\n value: this.nzValueProperty,\n label: this.nzLabelProperty\n };\n this.treeService.isMultiple = multiple;\n this.treeService.isCheckStrictly = false;\n\n /**\n * check whether the node is checked or selected according to the value\n */\n const checkNodeStates = (): void => {\n if (multiple) {\n this.treeService.conductCheckPaths(value, this.treeService.isCheckStrictly);\n } else {\n this.treeService.conductSelectedPaths(value);\n }\n };\n\n const initColumnWithIndex = (columnIndex = 0): void => {\n const activatedOptionSetter = (): void => {\n const currentValue = defaultValue?.[columnIndex];\n\n if (!isNotNil(currentValue)) {\n this.cascaderService.$redraw.next();\n return;\n }\n\n const node =\n this.cascaderService.columns[columnIndex].find(\n n => this.cascaderService.getOptionValue(n.origin) === currentValue\n ) || null;\n\n if (isNotNil(node)) {\n this.cascaderService.setNodeActivated(node, columnIndex, false, multiple, false);\n\n // Load next level options till leaf node\n if (columnIndex < lastColumnIndex) {\n initColumnWithIndex(columnIndex + 1);\n }\n }\n\n checkNodeStates();\n updateNodesAndValue(false);\n };\n\n if (this.cascaderService.isLoaded(columnIndex) || !this.nzLoadData) {\n activatedOptionSetter();\n } else {\n const node = this.cascaderService.activatedNodes[columnIndex - 1];\n this.cascaderService.loadChildren(node, columnIndex - 1, activatedOptionSetter);\n }\n };\n\n // if nzLoadData set, load first level data asynchronously\n if (this.nzLoadData) {\n initColumnWithIndex();\n } else {\n const nodes = this.coerceTreeNodes(this.nzOptions || []);\n this.treeService.initTree(nodes);\n this.cascaderService.setColumnData(nodes, 0);\n initColumnWithIndex();\n }\n }\n\n updateNodesAndValue(updateValue);\n }\n\n onOptionClick(node: NzTreeNode, columnIndex: number, event: Event): void {\n if (event) {\n event.preventDefault();\n }\n if (node && node.isDisabled) {\n return;\n }\n\n this.el.focus();\n\n // for multiple mode, click the leaf node can be seen as check action\n if (this.nzMultiple && node.isLeaf) {\n this.onOptionCheck(node, columnIndex, true);\n } else {\n this.inSearchingMode\n ? this.cascaderService.setSearchOptionSelected(node, this.nzMultiple)\n : this.cascaderService.setNodeActivated(node, columnIndex, !this.nzMultiple);\n }\n }\n\n onOptionCheck(node: NzTreeNode, columnIndex: number, performActivate = false): void {\n if (!this.nzMultiple || node.isDisabled || node.isDisableCheckbox) {\n return;\n }\n\n node.isChecked = !node.isChecked;\n node.isHalfChecked = false;\n this.treeService.setCheckedNodeList(node);\n this.treeService.conduct(node, this.treeService.isCheckStrictly);\n\n if (this.inSearchingMode) {\n this.cascaderService.setSearchOptionSelected(node, true);\n } else if (performActivate) {\n this.cascaderService.setNodeActivated(node, columnIndex, true, true);\n } else {\n // only update selected nodes and not set node activated by default\n this.cascaderService.setNodeSelected(node, columnIndex, true);\n }\n }\n\n removeSelected(node: NzTreeNode, emitEvent = true): void {\n node.isSelected = false;\n node.isChecked = false;\n if (this.nzMultiple) {\n this.treeService.conduct(node, this.treeService.isCheckStrictly);\n }\n this.treeService.setSelectedNodeList(node, this.nzMultiple);\n if (emitEvent) {\n this.nzRemoved.emit(node.origin);\n }\n }\n\n onClickOutside(event: MouseEvent): void {\n const target = _getEventTarget(event);\n if (!this.el.contains(target as Node) && !this.openControlled) {\n this.closeMenu();\n }\n }\n\n onPositionChange(position: ConnectedOverlayPositionChange): void {\n const placement = getPlacementName(position);\n this.dropdownPosition = placement as NzSelectPlacementType;\n }\n\n private updateOptions(): void {\n const nodes = this.coerceTreeNodes(this.nzOptions || []);\n this.treeService.initTree(nodes);\n this.cascaderService.setColumnData(nodes, 0);\n this.updateSelectedNodes(true);\n\n if (this.inSearchingMode) {\n this.cascaderService.setSearchingMode(this.inSearchingMode);\n this.cascaderService.prepareSearchOptions(this.inputValue);\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.activatedNodes.length - 1, 0);\n const node = this.cascaderService.activatedNodes[columnIndex];\n if (node && !node.isDisabled) {\n this.nzMultiple\n ? this.onOptionCheck(node, columnIndex, true)\n : this.inSearchingMode\n ? this.cascaderService.setSearchOptionSelected(node)\n : this.cascaderService.setNodeActivated(node, columnIndex, true);\n }\n }\n\n private moveUpOrDown(isUp: boolean): void {\n const columnIndex = Math.max(this.cascaderService.activatedNodes.length - 1, 0);\n const activatedNode = this.cascaderService.activatedNodes[columnIndex];\n const options = this.cascaderService.columns[columnIndex] || [];\n const length = options.length;\n let nextIndex = -1;\n if (!activatedNode) {\n // Not selected options in this column\n nextIndex = isUp ? length : -1;\n } else {\n nextIndex = options.indexOf(activatedNode);\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.isDisabled || nextOption.isDisableCheckbox) {\n continue;\n }\n this.cascaderService.setNodeActivated(nextOption, columnIndex);\n break;\n }\n }\n\n private prevColumn(): void {\n if (this.cascaderService.activatedNodes.length) {\n this.cascaderService.activatedNodes.pop(); // Remove the last one\n this.cascaderService.setNodeDeactivatedSinceColumn(this.cascaderService.activatedNodes.length); // collapse menu\n if (!this.cascaderService.activatedNodes.length) {\n this.setMenuVisible(false);\n }\n }\n }\n\n private nextColumn(): void {\n const length = this.cascaderService.activatedNodes.length;\n const options = this.cascaderService.columns[length];\n if (options && options.length) {\n const nextOpt = options.find(o => !o.isDisabled && !o.isDisableCheckbox);\n if (nextOpt) {\n this.cascaderService.setNodeActivated(nextOpt, length);\n }\n }\n }\n\n private clearDelaySelectTimer(): void {\n if (this.delaySelectTimer) {\n clearTimeout(this.delaySelectTimer);\n this.delaySelectTimer = undefined;\n }\n }\n\n private delaySetOptionActivated(node: NzTreeNode, columnIndex: number, performSelect: boolean): void {\n this.clearDelaySelectTimer();\n this.delaySelectTimer = setTimeout(() => {\n this.cascaderService.setNodeActivated(node, columnIndex, performSelect, this.nzMultiple);\n this.delaySelectTimer = undefined;\n }, 150);\n }\n\n private toggleSearchingMode(toSearching: boolean): void {\n if (this.inSearchingMode !== toSearching) {\n this.cascaderService.setSearchingMode(toSearching);\n }\n\n if (this.inSearchingMode) {\n this.cascaderService.prepareSearchOptions(this.inputValue);\n }\n }\n\n isOptionActivated(node: NzTreeNode, index: number): boolean {\n return this.cascaderService.activatedNodes[index] === node;\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 // if select none, clear previous state\n if (!this.hasValue && this.cascaderService.columns.length) {\n this.cascaderService.dropBehindColumns(0);\n }\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 if (this.nzMultiple) {\n return;\n }\n\n const node = this.selectedNodes.length ? this.selectedNodes[0] : null;\n const selectedOptions = this.getAncestorOptionList(node);\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 => fromEventOutsideAngular(input?.nativeElement, 'change')),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe(event => event.stopPropagation());\n }\n\n private setupFocusListener(): void {\n this.input$\n .pipe(\n switchMap(input => fromEventOutsideAngular(input?.nativeElement, 'focus')),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe(() => this.handleInputFocus());\n\n this.input$\n .pipe(\n switchMap(input => fromEventOutsideAngular(input?.nativeElement, 'blur')),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe(() => this.handleInputBlur());\n }\n\n private setupKeydownListener(): void {\n fromEventOutsideAngular<KeyboardEvent>(this.el, 'keydown')\n .pipe(takeUntilDestroyed(this.destroyRef))\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 && !this.openControlled) {\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 switch (keyCode) {\n case DOWN_ARROW:\n this.moveUpOrDown(false);\n break;\n case UP_ARROW:\n this.moveUpOrDown(true);\n break;\n case LEFT_ARROW:\n if (this.dir === 'rtl') {\n this.nextColumn();\n } else {\n this.prevColumn();\n }\n break;\n case RIGHT_ARROW:\n if (this.dir === 'rtl') {\n this.prevColumn();\n } else {\n this.nextColumn();\n }\n break;\n case ENTER:\n this.onEnter();\n break;\n case BACKSPACE:\n this.prevColumn();\n break;\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 * 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 { NzCascaderComponent } from './cascader.component';\n\n@NgModule({\n imports: [NzCascaderComponent],\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-option.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3"],"mappings":"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"} |