ngx-axis-appforge 0.0.45 → 0.0.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/axis-components/design/index.d.ts +1 -1
- package/axis-components/edit-table/index.d.ts +2 -1
- package/axis-components/tree-selector/index.d.ts +3 -0
- package/core/index.d.ts +3 -0
- package/fesm2022/ngx-axis-appforge-axis-components-design.mjs +27 -16
- package/fesm2022/ngx-axis-appforge-axis-components-design.mjs.map +1 -1
- package/fesm2022/ngx-axis-appforge-axis-components-edit-table.mjs +16 -3
- package/fesm2022/ngx-axis-appforge-axis-components-edit-table.mjs.map +1 -1
- package/fesm2022/ngx-axis-appforge-axis-components-form.mjs +1 -3
- package/fesm2022/ngx-axis-appforge-axis-components-form.mjs.map +1 -1
- package/fesm2022/ngx-axis-appforge-axis-components-select.mjs +2 -1
- package/fesm2022/ngx-axis-appforge-axis-components-select.mjs.map +1 -1
- package/fesm2022/ngx-axis-appforge-axis-components-table-helper.mjs +3 -0
- package/fesm2022/ngx-axis-appforge-axis-components-table-helper.mjs.map +1 -1
- package/fesm2022/ngx-axis-appforge-axis-components-tree-selector.mjs +20 -7
- package/fesm2022/ngx-axis-appforge-axis-components-tree-selector.mjs.map +1 -1
- package/fesm2022/ngx-axis-appforge-axis-components.mjs +102 -4
- package/fesm2022/ngx-axis-appforge-axis-components.mjs.map +1 -1
- package/fesm2022/ngx-axis-appforge-core.mjs +15 -2
- package/fesm2022/ngx-axis-appforge-core.mjs.map +1 -1
- package/package.json +100 -100
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-axis-appforge-axis-components-table-helper.mjs","sources":["../../../axis-components/table-helper/table-field-display.service.ts","../../../axis-components/table-helper/table.service.ts","../../../axis-components/table-helper/select.service.ts","../../../axis-components/table-helper/expand.service.ts","../../../axis-components/table-helper/statistic.service.ts","../../../axis-components/table-helper/ngx-axis-appforge-axis-components-table-helper.ts"],"sourcesContent":["import { DatePipe, DecimalPipe, PercentPipe } from \"@angular/common\";\nimport { Injectable, Optional } from \"@angular/core\";\nimport { BaseTableFieldOptions } from \"./base-table.options\";\nimport { ScopeDirective } from \"ngx-axis-appforge/core\";\n\n@Injectable()\nexport class TableFieldDisplayService {\n constructor(private datePipe: DatePipe, private decimalPipe: DecimalPipe, private percentPipe: PercentPipe, @Optional() private scope?: ScopeDirective) { }\n\n private readonly fieldDisplayCache = new Map<string, Map<string, string>>();\n\n clearCache(field?: string) {\n if (!field) {\n this.fieldDisplayCache.clear();\n } else {\n this.fieldDisplayCache.delete(field);\n }\n }\n\n getFieldDisplayText(field: BaseTableFieldOptions, row: any): any {\n if ([\"axis-components/text\", \"axis-components/badge\"].includes(field.child()?.component)) {\n if (!this.fieldDisplayCache.has(field.field())) {\n this.fieldDisplayCache.set(field.field(), new Map<string, string>());\n }\n if (!this.fieldDisplayCache.get(field.field())!.has(row[field.field()])) {\n const child = this.scope?.snapshotOptions(field.child(), { row });\n let text: any;\n switch (child.component) {\n case \"axis-components/text\":\n switch (child.transfer) {\n case \"date\":\n if (child.data) {\n text = this.datePipe.transform(new Date(child.data), child.dateFormat);\n } else {\n text = '';\n }\n break;\n case \"number\":\n text = this.decimalPipe.transform(child.data, this.getDigitsInfo(child));\n break;\n case \"percent\":\n text = this.percentPipe.transform(child.data, this.getDigitsInfo(child));\n break;\n case \"deepObj\":\n text = this.getDeepObjectValue(child);\n break;\n default:\n text = child.data;\n break;\n }\n break;\n case \"axis-components/badge\":\n text = child.text;\n break;\n }\n this.fieldDisplayCache.get(field.field())!.set(row[field.field()], text);\n }\n return this.fieldDisplayCache.get(field.field())!.get(row[field.field()])!;\n }\n return row[field.field()];\n }\n\n private getDigitsInfo(options: any): string | undefined {\n return `${options.integerMinLength}.${options.decimalRange[0]}-${options.decimalRange[1]}`;\n }\n\n private getDeepObjectValue(options: any): any {\n if (options.objPath) {\n const patharr = (options.objPath as string).split(\".\").map(p => p.trim());\n let outValue = options.data;\n for (let p of patharr) {\n if (Array.isArray(outValue)) {\n outValue = outValue?.[+p];\n } else {\n outValue = outValue?.[p];\n }\n }\n return outValue;\n }\n return options.data;\n }\n}","import { computed, effect, Injectable, signal, Signal } from \"@angular/core\";\nimport { BaseTableFieldOptions, BaseTableOptions } from \"./base-table.options\";\nimport { NzTableFilterList } from \"ng-zorro-antd/table\";\nimport { TableFieldDisplayService } from \"./table-field-display.service\";\n\n@Injectable()\nexport class TableService<T extends BaseTableOptions, F extends BaseTableFieldOptions> {\n constructor(private fieldDisplayService: TableFieldDisplayService) {\n effect(() => {\n if (this.ready()) {\n this.refreshFieldControls();\n }\n });\n }\n\n private ready = signal(false);\n private data!: Signal<any[] | undefined>;\n private options!: T;\n private fields!: Signal<F[]>;\n private getRow?: (row: any) => any;\n private cacheFilterItem!: boolean;\n readonly displayFields = computed<F[]>(() => {\n if (!this.ready()) {\n return [];\n }\n return this.fields().filter(f => f.inuse());\n });\n readonly fieldsControlsMap = signal<{\n [field: string]: {\n sortFn?: any;\n filterItems?: NzTableFilterList;\n filterFn?: any;\n } | undefined;\n }>({});\n readonly filedsFilterItemsCache = new Map<string, Map<any, any>>();\n readonly leaderFieldWidth = computed(() => this.buildLeaderFieldWidth());\n readonly pageSizeOptions = computed(() => this.options.pageSizeOptions().split(\",\").map(size => +size));\n\n init(opts: { data: Signal<any[] | undefined>, options: T, fields: Signal<F[]>, getRow?: (row: any) => any, cacheFilterItem?: boolean }) {\n this.data = opts.data;\n this.options = opts.options;\n this.fields = opts.fields;\n this.getRow = opts.getRow;\n this.cacheFilterItem = opts.cacheFilterItem ?? true;\n this.ready.set(true);\n }\n\n refreshFieldControls(f?: string) {\n if (!this.cacheFilterItem) {\n if (!f) {\n this.filedsFilterItemsCache.clear();\n } else {\n this.filedsFilterItemsCache.delete(f);\n }\n this.fieldDisplayService.clearCache(f);\n }\n const res: { [field: string]: { sortFn?: any, filterItems?: NzTableFilterList, filterFn?: any } } = {};\n for (const field of this.displayFields()) {\n if (f && field.field() != f) {\n continue;\n }\n res[field.field()] = {};\n if (field.filterAble()) {\n if (!this.filedsFilterItemsCache.has(field.field())) {\n this.filedsFilterItemsCache.set(field.field(), new Map<any, any>());\n }\n const filterItemsCache = this.filedsFilterItemsCache.get(field.field())!;\n for (let row of this.data() ?? []) {\n if (this.getRow) {\n row = this.getRow(row);\n }\n const value = row[field.field()];\n if (!filterItemsCache.has(value)) {\n filterItemsCache.set(value, { value, text: this.fieldDisplayService.getFieldDisplayText(field, row) })\n }\n }\n res[field.field()].filterItems = Array.from(filterItemsCache.values());\n res[field.field()].filterFn = (fd: any[] | any, row: any) => {\n if (this.getRow) {\n row = this.getRow(row);\n }\n if (fd instanceof Array) {\n return fd.includes(row[field.field()]);\n } else {\n return fd == row[field.field()];\n }\n };\n }\n if (field.sortAble()) {\n if (this.data()?.map(row => this.getRow ? this.getRow(row) : row).some((row: any) => row[field.field()] != undefined && typeof (row[field.field()]) == \"number\")) {\n res[field.field()].sortFn = (a: any, b: any) => {\n if (this.getRow) {\n a = this.getRow(a)\n b = this.getRow(b)\n }\n return a[field.field()] - b[field.field()];\n };\n } else {\n res[field.field()].sortFn = (a: any, b: any) => {\n if (this.getRow) {\n a = this.getRow(a)\n b = this.getRow(b)\n }\n return ((a[field.field()] || \"\") + \"\").localeCompare(b[field.field()])\n };\n }\n }\n }\n if (f) {\n this.fieldsControlsMap.set({\n ...this.fieldsControlsMap(),\n ...res\n });\n } else {\n this.fieldsControlsMap.set(res)\n }\n }\n\n filterChange(field: string, value: any) {\n for (const item of this.filedsFilterItemsCache.get(field)!.values()) {\n item.byDefault = value != null && (Array.isArray(value) ? value.includes(item.value) : item.value == value);\n }\n }\n\n private buildLeaderFieldWidth(): number {\n if (!this.ready()) {\n return 0;\n }\n switch (this.options.size()) {\n case \"small\":\n return 45;\n case \"middle\":\n return 50;\n default:\n return 65;\n }\n }\n\n}","import { computed, Injectable, Optional, Signal, signal } from \"@angular/core\";\nimport { SelectableTableOptions } from \"./base-table.options\";\nimport { ScopeDirective } from \"ngx-axis-appforge/core\";\n\n@Injectable()\nexport class SelectService {\n\n constructor(@Optional() private scope?: ScopeDirective) { }\n\n private options!: SelectableTableOptions;\n private keyField!: string;\n private data !: Signal<any[] | null>;\n private onSelectedChange!: (checkedIds: Set<any>) => void\n readonly headerChecked = signal<\"checked\" | \"indeterminate\" | \"none\">(\"none\");\n setOfCheckedId = new Set();\n setOfIndeterminateId = new Set();\n setOfDisabledId = computed(() => this.buildDisabledId());\n\n init(opts: { options: SelectableTableOptions, keyField: string, data: Signal<any[] | null>, onSelectedChange: (checkedIds: Set<any>) => void }) {\n this.options = opts.options;\n this.keyField = opts.keyField;\n this.data = opts.data;\n this.onSelectedChange = opts.onSelectedChange;\n }\n\n private buildDisabledId(): Set<any> {\n if (this.options.disableCheckboxFn()) {\n const args = this.scope?.snapshotAll() ?? {};\n return new Set(this.data()?.filter(row => this.scope?.runFnWithSnapshot(this.options.disableCheckboxFn()!, Object.assign({}, args, { row })))\n .map(row => row[this.keyField]));\n }\n return new Set<any>();\n }\n\n onAllChecked(checked: boolean) {\n this.data()?.filter(row => !this.setOfDisabledId().has(row[this.keyField]))?.forEach(row => this.updateCheckedSet(row, checked));\n this.refreshCheckedStatus();\n }\n\n toggleChecked(row: any) {\n if (this.options.showCheckbox() && !this.setOfDisabledId().has(row[this.keyField])) {\n this.onItemChecked(row, !this.setOfCheckedId.has(row[this.keyField]));\n }\n }\n\n onItemChecked(row: any, checked: boolean): void {\n this.updateCheckedSet(row, checked);\n this.refreshCheckedStatus();\n }\n\n updateCheckedSet(row: any, checked: boolean): void {\n const key = row[this.keyField];\n if (checked && !this.setOfCheckedId.has(key)) {\n if (this.options.singleCheck()) {\n this.setOfCheckedId.clear();\n }\n this.setOfCheckedId.add(key);\n } else if (!checked && this.setOfCheckedId.has(key)) {\n this.setOfCheckedId.delete(key);\n }\n }\n\n refreshCheckedStatus(): void {\n const listOfEnabledData = this.data()?.filter(row => !this.setOfDisabledId().has(row[this.keyField])) ?? [];\n const checked = listOfEnabledData.length > 0 && listOfEnabledData.every(row => this.setOfCheckedId.has(row[this.keyField]) && !this.setOfIndeterminateId.has(row[this.keyField]));\n if (checked) {\n this.headerChecked.set(\"checked\");\n } else {\n const indeterminate = listOfEnabledData.some(row => this.setOfCheckedId.has(row[this.keyField]) || this.setOfIndeterminateId.has(row[this.keyField])) && !checked;\n this.headerChecked.set(indeterminate ? \"indeterminate\" : \"none\");\n }\n this.onSelectedChange?.(this.setOfCheckedId);\n }\n\n getSelectedData(): any[] | undefined {\n return this.data()?.filter(row => this.setOfCheckedId.has(row[this.keyField]));\n }\n}","import { computed, Injectable, Optional, Signal } from \"@angular/core\";\nimport { ExpandableTableOptions } from \"./base-table.options\";\nimport { ScopeDirective } from \"ngx-axis-appforge/core\";\n\n@Injectable()\nexport class ExpandService {\n\n constructor(@Optional() private scope?: ScopeDirective) { }\n\n private options!: ExpandableTableOptions;\n private keyField!: string;\n private data !: Signal<any[] | null>;\n readonly expandedSet = new Set();\n readonly nodeMap = computed(() => this.buildNodeMap());\n\n init(opts: { options: ExpandableTableOptions, keyField: string, data: Signal<any[] | null> }) {\n this.options = opts.options;\n this.keyField = opts.keyField;\n this.data = opts.data;\n }\n\n buildNodeMap(): Map<string, { level: number, node: any, children?: any[] }> {\n const nodeMap = new Map<string, any>();\n if (this.options.showExpand() && this.options.expandMode() == \"tree\") {\n this.data()?.forEach((row: any) => {\n this.buildNodeMapForRow(row, nodeMap);\n });\n }\n return nodeMap;\n }\n\n onExpandChange(key: any, checked: boolean): void {\n if (checked) {\n this.expandedSet.add(key);\n } else {\n this.expandedSet.delete(key);\n }\n }\n\n buildNodeMapForRow(row: any, nodeMap: Map<string, any>, parentLevel = 0) {\n const node: any = {\n level: parentLevel + 1,\n node: row,\n children: []\n };\n nodeMap.set(row[this.keyField], node)\n if (this.options.showExpand() && this.options.expandMode() == \"tree\") {\n let children: any[];\n if (this.options.treeChildrenFun()) {\n children = this.scope?.runFnWithSnapshot(this.options.treeChildrenFun(), { row })\n } else {\n children = row.children;\n }\n if (children?.length) {\n node.children = children;\n children.forEach(child => {\n this.buildNodeMapForRow(child, nodeMap, node.level);\n });\n }\n }\n }\n\n getListForExpanded(row: any): any[] {\n const key = row[this.keyField];\n let res = [row];\n if (this.options.showExpand() && this.options.expandMode() == \"tree\" && this.nodeMap().get(key)?.children?.length && this.expandedSet.has(key)) {\n res = res.concat(this.nodeMap().get(key)!.children)\n }\n return res;\n }\n}","import { computed, Injectable, Optional, signal, Signal } from \"@angular/core\";\nimport { StatisticTableFieldOptions, StatisticTableOptions } from \"./base-table.options\";\nimport { ScopeDirective } from \"ngx-axis-appforge/core\";\n\n@Injectable()\nexport class StatisticService {\n\n constructor(@Optional() private scope?: ScopeDirective) { }\n\n private ready = signal(false);\n private options!: StatisticTableOptions;\n private data !: Signal<any[] | null>;\n private fields!: Signal<StatisticTableFieldOptions[]>;\n private getRow?: (row: any) => any;\n\n readonly statisticMap = computed(() => this.buildStatisticMap());\n\n init(opts: { options: StatisticTableOptions, data: Signal<any[] | null>, fields: Signal<StatisticTableFieldOptions[]>, getRow?: (row: any) => any }) {\n this.options = opts.options;\n this.data = opts.data;\n this.fields = opts.fields;\n this.getRow = opts.getRow;\n this.ready.set(true);\n }\n\n private buildStatisticMap(): { [field: string]: number | undefined } {\n if (!this.ready()) {\n return {};\n }\n const res: { [field: string]: number | undefined } = {};\n if (this.options.showStatistic() && this.data()) {\n for (const f of this.fields().filter(r => r.statisticAble())) {\n let num: number | undefined;\n for (let i = 0; i < (this.data() ?? []).length; i++) {\n let row = this.data()![i];\n if (this.getRow) {\n row = this.getRow(row);\n }\n if (f.statisticType() == \"sum\" || f.statisticType() == \"average\") {\n num = (num ?? 0) + row[f.field()];\n } else if (f.statisticType() == \"max\") {\n num = Math.max(num ?? Number.MIN_SAFE_INTEGER, row[f.field()]);\n } else if (f.statisticType() == \"min\") {\n num = Math.min(num ?? Number.MAX_SAFE_INTEGER, row[f.field()]);\n } else if (f.statisticType() == \"custom\" && f.statisticFn()) {\n num = this.scope?.runFnWithSnapshot(f.statisticFn(), { result: num, index: i, row: row, value: row[f.field()] });\n }\n }\n if (f.statisticType() == \"average\" && this.data()!.length > 0) {\n num = (num ?? 0) / this.data()!.length;\n }\n res[f.field()] = num;\n }\n }\n return res;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1.TableFieldDisplayService","i1"],"mappings":";;;;;MAMa,wBAAwB,CAAA;AACb,IAAA,QAAA;AAA4B,IAAA,WAAA;AAAkC,IAAA,WAAA;AAA8C,IAAA,KAAA;AAAhI,IAAA,WAAA,CAAoB,QAAkB,EAAU,WAAwB,EAAU,WAAwB,EAAsB,KAAsB,EAAA;QAAlI,IAAA,CAAA,QAAQ,GAAR,QAAQ;QAAoB,IAAA,CAAA,WAAW,GAAX,WAAW;QAAuB,IAAA,CAAA,WAAW,GAAX,WAAW;QAAmC,IAAA,CAAA,KAAK,GAAL,KAAK;;AAEpH,IAAA,iBAAiB,GAAG,IAAI,GAAG,EAA+B;AAE3E,IAAA,UAAU,CAAC,KAAc,EAAA;QACrB,IAAI,CAAC,KAAK,EAAE;AACR,YAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;;aAC3B;AACH,YAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC;;;IAI5C,mBAAmB,CAAC,KAA4B,EAAE,GAAQ,EAAA;AACtD,QAAA,IAAI,CAAC,sBAAsB,EAAE,uBAAuB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,EAAE;AACtF,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE;AAC5C,gBAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,GAAG,EAAkB,CAAC;;YAExE,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;AACrE,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;AACjE,gBAAA,IAAI,IAAS;AACb,gBAAA,QAAQ,KAAK,CAAC,SAAS;AACnB,oBAAA,KAAK,sBAAsB;AACvB,wBAAA,QAAQ,KAAK,CAAC,QAAQ;AAClB,4BAAA,KAAK,MAAM;AACP,gCAAA,IAAI,KAAK,CAAC,IAAI,EAAE;AACZ,oCAAA,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC;;qCACnE;oCACH,IAAI,GAAG,EAAE;;gCAEb;AACJ,4BAAA,KAAK,QAAQ;AACT,gCAAA,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gCACxE;AACJ,4BAAA,KAAK,SAAS;AACV,gCAAA,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gCACxE;AACJ,4BAAA,KAAK,SAAS;AACV,gCAAA,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;gCACrC;AACJ,4BAAA;AACI,gCAAA,IAAI,GAAG,KAAK,CAAC,IAAI;gCACjB;;wBAER;AACJ,oBAAA,KAAK,uBAAuB;AACxB,wBAAA,IAAI,GAAG,KAAK,CAAC,IAAI;wBACjB;;gBAER,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC;;YAE5E,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAE;;AAE9E,QAAA,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;;AAGrB,IAAA,aAAa,CAAC,OAAY,EAAA;AAC9B,QAAA,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAA,CAAA,EAAI,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;;AAGtF,IAAA,kBAAkB,CAAC,OAAY,EAAA;AACnC,QAAA,IAAI,OAAO,CAAC,OAAO,EAAE;YACjB,MAAM,OAAO,GAAI,OAAO,CAAC,OAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACzE,YAAA,IAAI,QAAQ,GAAG,OAAO,CAAC,IAAI;AAC3B,YAAA,KAAK,IAAI,CAAC,IAAI,OAAO,EAAE;AACnB,gBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AACzB,oBAAA,QAAQ,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC;;qBACtB;AACH,oBAAA,QAAQ,GAAG,QAAQ,GAAG,CAAC,CAAC;;;AAGhC,YAAA,OAAO,QAAQ;;QAEnB,OAAO,OAAO,CAAC,IAAI;;uGAzEd,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAxB,wBAAwB,EAAA,CAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC;;0BAEgH;;;MCDpG,YAAY,CAAA;AACD,IAAA,mBAAA;AAApB,IAAA,WAAA,CAAoB,mBAA6C,EAAA;QAA7C,IAAA,CAAA,mBAAmB,GAAnB,mBAAmB;QACnC,MAAM,CAAC,MAAK;AACR,YAAA,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;gBACd,IAAI,CAAC,oBAAoB,EAAE;;AAEnC,SAAC,CAAC;;AAGE,IAAA,KAAK,GAAG,MAAM,CAAC,KAAK,iDAAC;AACrB,IAAA,IAAI;AACJ,IAAA,OAAO;AACP,IAAA,MAAM;AACN,IAAA,MAAM;AACN,IAAA,eAAe;AACd,IAAA,aAAa,GAAG,QAAQ,CAAM,MAAK;AACxC,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE;AACf,YAAA,OAAO,EAAE;;AAEb,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;AAC/C,KAAC,yDAAC;AACO,IAAA,iBAAiB,GAAG,MAAM,CAMhC,EAAE,6DAAC;AACG,IAAA,sBAAsB,GAAG,IAAI,GAAG,EAAyB;IACzD,gBAAgB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAC/D,IAAA,eAAe,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAEvG,IAAA,IAAI,CAAC,IAAiI,EAAA;AAClI,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;AACrB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;AAC3B,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AACzB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;QACzB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI;AACnD,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;;AAGxB,IAAA,oBAAoB,CAAC,CAAU,EAAA;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACvB,IAAI,CAAC,CAAC,EAAE;AACJ,gBAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE;;iBAChC;AACH,gBAAA,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC;;AAEzC,YAAA,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC;;QAE1C,MAAM,GAAG,GAA2F,EAAE;QACtG,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;YACtC,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;gBACzB;;YAEJ,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE;AACvB,YAAA,IAAI,KAAK,CAAC,UAAU,EAAE,EAAE;AACpB,gBAAA,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE;AACjD,oBAAA,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,GAAG,EAAY,CAAC;;AAEvE,gBAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAE;gBACxE,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;AAC/B,oBAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,wBAAA,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;;oBAE1B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;oBAChC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;wBAC9B,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;;;AAG9G,gBAAA,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;AACtE,gBAAA,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAe,EAAE,GAAQ,KAAI;AACxD,oBAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,wBAAA,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;;AAE1B,oBAAA,IAAI,EAAE,YAAY,KAAK,EAAE;AACrB,wBAAA,OAAO,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;;yBACnC;wBACH,OAAO,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;;AAEvC,iBAAC;;AAEL,YAAA,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE;AAClB,gBAAA,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,SAAS,IAAI,QAAQ,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,EAAE;AAC9J,oBAAA,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAM,EAAE,CAAM,KAAI;AAC3C,wBAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,4BAAA,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAClB,4BAAA,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;;AAEtB,wBAAA,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;AAC9C,qBAAC;;qBACE;AACH,oBAAA,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAM,EAAE,CAAM,KAAI;AAC3C,wBAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,4BAAA,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAClB,4BAAA,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;;wBAEtB,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;AAC1E,qBAAC;;;;QAIb,IAAI,CAAC,EAAE;AACH,YAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;gBACvB,GAAG,IAAI,CAAC,iBAAiB,EAAE;AAC3B,gBAAA,GAAG;AACN,aAAA,CAAC;;aACC;AACH,YAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC;;;IAIvC,YAAY,CAAC,KAAa,EAAE,KAAU,EAAA;AAClC,QAAA,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,MAAM,EAAE,EAAE;AACjE,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,IAAI,IAAI,KAAK,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC;;;IAI3G,qBAAqB,GAAA;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE;AACf,YAAA,OAAO,CAAC;;AAEZ,QAAA,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AACvB,YAAA,KAAK,OAAO;AACR,gBAAA,OAAO,EAAE;AACb,YAAA,KAAK,QAAQ;AACT,gBAAA,OAAO,EAAE;AACb,YAAA;AACI,gBAAA,OAAO,EAAE;;;uGAhIZ,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,wBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAZ,YAAY,EAAA,CAAA;;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB;;;MCAY,aAAa,CAAA;AAEU,IAAA,KAAA;AAAhC,IAAA,WAAA,CAAgC,KAAsB,EAAA;QAAtB,IAAA,CAAA,KAAK,GAAL,KAAK;;AAE7B,IAAA,OAAO;AACP,IAAA,QAAQ;AACR,IAAA,IAAI;AACJ,IAAA,gBAAgB;AACf,IAAA,aAAa,GAAG,MAAM,CAAuC,MAAM,yDAAC;AAC7E,IAAA,cAAc,GAAG,IAAI,GAAG,EAAE;AAC1B,IAAA,oBAAoB,GAAG,IAAI,GAAG,EAAE;IAChC,eAAe,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAExD,IAAA,IAAI,CAAC,IAAyI,EAAA;AAC1I,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;AAC7B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;AACrB,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB;;IAGzC,eAAe,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE;YAClC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE;AAC5C,YAAA,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAG,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;AACvI,iBAAA,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;;QAExC,OAAO,IAAI,GAAG,EAAO;;AAGzB,IAAA,YAAY,CAAC,OAAgB,EAAA;AACzB,QAAA,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAChI,IAAI,CAAC,oBAAoB,EAAE;;AAG/B,IAAA,aAAa,CAAC,GAAQ,EAAA;QAClB,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE;YAChF,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;;;IAI7E,aAAa,CAAC,GAAQ,EAAE,OAAgB,EAAA;AACpC,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC;QACnC,IAAI,CAAC,oBAAoB,EAAE;;IAG/B,gBAAgB,CAAC,GAAQ,EAAE,OAAgB,EAAA;QACvC,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC9B,QAAA,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAC1C,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE;AAC5B,gBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;;AAE/B,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC;;AACzB,aAAA,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACjD,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC;;;IAIvC,oBAAoB,GAAA;AAChB,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE;QAC3G,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,GAAG,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjL,IAAI,OAAO,EAAE;AACT,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC;;aAC9B;AACH,YAAA,MAAM,aAAa,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO;AACjK,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,GAAG,eAAe,GAAG,MAAM,CAAC;;QAEpE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC;;IAGhD,eAAe,GAAA;QACX,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;;uGAtEzE,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAb,aAAa,EAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB;;0BAGgB;;;MCFJ,aAAa,CAAA;AAEU,IAAA,KAAA;AAAhC,IAAA,WAAA,CAAgC,KAAsB,EAAA;QAAtB,IAAA,CAAA,KAAK,GAAL,KAAK;;AAE7B,IAAA,OAAO;AACP,IAAA,QAAQ;AACR,IAAA,IAAI;AACH,IAAA,WAAW,GAAG,IAAI,GAAG,EAAE;IACvB,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAEtD,IAAA,IAAI,CAAC,IAAuF,EAAA;AACxF,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;AAC7B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;;IAGzB,YAAY,GAAA;AACR,QAAA,MAAM,OAAO,GAAG,IAAI,GAAG,EAAe;AACtC,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,MAAM,EAAE;YAClE,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,GAAQ,KAAI;AAC9B,gBAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC;AACzC,aAAC,CAAC;;AAEN,QAAA,OAAO,OAAO;;IAGlB,cAAc,CAAC,GAAQ,EAAE,OAAgB,EAAA;QACrC,IAAI,OAAO,EAAE;AACT,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;;aACtB;AACH,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC;;;AAIpC,IAAA,kBAAkB,CAAC,GAAQ,EAAE,OAAyB,EAAE,WAAW,GAAG,CAAC,EAAA;AACnE,QAAA,MAAM,IAAI,GAAQ;YACd,KAAK,EAAE,WAAW,GAAG,CAAC;AACtB,YAAA,IAAI,EAAE,GAAG;AACT,YAAA,QAAQ,EAAE;SACb;AACD,QAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;AACrC,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,MAAM,EAAE;AAClE,YAAA,IAAI,QAAe;AACnB,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE;AAChC,gBAAA,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;;iBAC9E;AACH,gBAAA,QAAQ,GAAG,GAAG,CAAC,QAAQ;;AAE3B,YAAA,IAAI,QAAQ,EAAE,MAAM,EAAE;AAClB,gBAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,gBAAA,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAG;oBACrB,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;AACvD,iBAAC,CAAC;;;;AAKd,IAAA,kBAAkB,CAAC,GAAQ,EAAA;QACvB,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC9B,QAAA,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC;AACf,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAC5I,YAAA,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,QAAQ,CAAC;;AAEvD,QAAA,OAAO,GAAG;;uGA/DL,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAb,aAAa,EAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB;;0BAGgB;;;MCFJ,gBAAgB,CAAA;AAEO,IAAA,KAAA;AAAhC,IAAA,WAAA,CAAgC,KAAsB,EAAA;QAAtB,IAAA,CAAA,KAAK,GAAL,KAAK;;AAE7B,IAAA,KAAK,GAAG,MAAM,CAAC,KAAK,iDAAC;AACrB,IAAA,OAAO;AACP,IAAA,IAAI;AACJ,IAAA,MAAM;AACN,IAAA,MAAM;IAEL,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAEhE,IAAA,IAAI,CAAC,IAA8I,EAAA;AAC/I,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;AAC3B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;AACrB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AACzB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AACzB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;;IAGhB,iBAAiB,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE;AACf,YAAA,OAAO,EAAE;;QAEb,MAAM,GAAG,GAA4C,EAAE;AACvD,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;YAC7C,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC,EAAE;AAC1D,gBAAA,IAAI,GAAuB;gBAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;oBACjD,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,EAAG,CAAC,CAAC,CAAC;AACzB,oBAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,wBAAA,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;;AAE1B,oBAAA,IAAI,CAAC,CAAC,aAAa,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC,aAAa,EAAE,IAAI,SAAS,EAAE;AAC9D,wBAAA,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;;AAC9B,yBAAA,IAAI,CAAC,CAAC,aAAa,EAAE,IAAI,KAAK,EAAE;AACnC,wBAAA,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;;AAC3D,yBAAA,IAAI,CAAC,CAAC,aAAa,EAAE,IAAI,KAAK,EAAE;AACnC,wBAAA,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;;AAC3D,yBAAA,IAAI,CAAC,CAAC,aAAa,EAAE,IAAI,QAAQ,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE;AACzD,wBAAA,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;;;AAGxH,gBAAA,IAAI,CAAC,CAAC,aAAa,EAAE,IAAI,SAAS,IAAI,IAAI,CAAC,IAAI,EAAG,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3D,oBAAA,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAG,CAAC,MAAM;;gBAE1C,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,GAAG;;;AAG5B,QAAA,OAAO,GAAG;;uGAjDL,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAhB,gBAAgB,EAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B;;0BAGgB;;;ACPjB;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"ngx-axis-appforge-axis-components-table-helper.mjs","sources":["../../../axis-components/table-helper/table-field-display.service.ts","../../../axis-components/table-helper/table.service.ts","../../../axis-components/table-helper/select.service.ts","../../../axis-components/table-helper/expand.service.ts","../../../axis-components/table-helper/statistic.service.ts","../../../axis-components/table-helper/ngx-axis-appforge-axis-components-table-helper.ts"],"sourcesContent":["import { DatePipe, DecimalPipe, PercentPipe } from \"@angular/common\";\nimport { Injectable, Optional } from \"@angular/core\";\nimport { BaseTableFieldOptions } from \"./base-table.options\";\nimport { ScopeDirective } from \"ngx-axis-appforge/core\";\n\n@Injectable()\nexport class TableFieldDisplayService {\n constructor(private datePipe: DatePipe, private decimalPipe: DecimalPipe, private percentPipe: PercentPipe, @Optional() private scope?: ScopeDirective) { }\n\n private readonly fieldDisplayCache = new Map<string, Map<string, string>>();\n\n clearCache(field?: string) {\n if (!field) {\n this.fieldDisplayCache.clear();\n } else {\n this.fieldDisplayCache.delete(field);\n }\n }\n\n getFieldDisplayText(field: BaseTableFieldOptions, row: any): any {\n if ([\"axis-components/text\", \"axis-components/badge\"].includes(field.child()?.component)) {\n if (!this.fieldDisplayCache.has(field.field())) {\n this.fieldDisplayCache.set(field.field(), new Map<string, string>());\n }\n if (!this.fieldDisplayCache.get(field.field())!.has(row[field.field()])) {\n const child = this.scope?.snapshotOptions(field.child(), { row });\n let text: any;\n switch (child.component) {\n case \"axis-components/text\":\n switch (child.transfer) {\n case \"date\":\n if (child.data) {\n text = this.datePipe.transform(new Date(child.data), child.dateFormat);\n } else {\n text = '';\n }\n break;\n case \"number\":\n text = this.decimalPipe.transform(child.data, this.getDigitsInfo(child));\n break;\n case \"percent\":\n text = this.percentPipe.transform(child.data, this.getDigitsInfo(child));\n break;\n case \"deepObj\":\n text = this.getDeepObjectValue(child);\n break;\n default:\n text = child.data;\n break;\n }\n break;\n case \"axis-components/badge\":\n text = child.text;\n break;\n }\n this.fieldDisplayCache.get(field.field())!.set(row[field.field()], text);\n }\n return this.fieldDisplayCache.get(field.field())!.get(row[field.field()])!;\n }\n return row[field.field()];\n }\n\n private getDigitsInfo(options: any): string | undefined {\n return `${options.integerMinLength}.${options.decimalRange[0]}-${options.decimalRange[1]}`;\n }\n\n private getDeepObjectValue(options: any): any {\n if (options.objPath) {\n const patharr = (options.objPath as string).split(\".\").map(p => p.trim());\n let outValue = options.data;\n for (let p of patharr) {\n if (Array.isArray(outValue)) {\n outValue = outValue?.[+p];\n } else {\n outValue = outValue?.[p];\n }\n }\n return outValue;\n }\n return options.data;\n }\n}","import { computed, effect, Injectable, signal, Signal } from \"@angular/core\";\nimport { BaseTableFieldOptions, BaseTableOptions } from \"./base-table.options\";\nimport { NzTableFilterList } from \"ng-zorro-antd/table\";\nimport { TableFieldDisplayService } from \"./table-field-display.service\";\n\n@Injectable()\nexport class TableService<T extends BaseTableOptions, F extends BaseTableFieldOptions> {\n constructor(private fieldDisplayService: TableFieldDisplayService) {\n effect(() => {\n if (this.ready()) {\n this.refreshFieldControls();\n }\n });\n }\n\n private ready = signal(false);\n private data!: Signal<any[] | undefined>;\n private options!: T;\n private fields!: Signal<F[]>;\n private getRow?: (row: any) => any;\n private cacheFilterItem!: boolean;\n readonly displayFields = computed<F[]>(() => {\n if (!this.ready()) {\n return [];\n }\n return this.fields().filter(f => f.inuse());\n });\n readonly fieldsControlsMap = signal<{\n [field: string]: {\n sortFn?: any;\n filterItems?: NzTableFilterList;\n filterFn?: any;\n } | undefined;\n }>({});\n readonly filedsFilterItemsCache = new Map<string, Map<any, any>>();\n readonly leaderFieldWidth = computed(() => this.buildLeaderFieldWidth());\n readonly pageSizeOptions = computed(() => this.options.pageSizeOptions().split(\",\").map(size => +size));\n\n init(opts: { data: Signal<any[] | undefined>, options: T, fields: Signal<F[]>, getRow?: (row: any) => any, cacheFilterItem?: boolean }) {\n this.data = opts.data;\n this.options = opts.options;\n this.fields = opts.fields;\n this.getRow = opts.getRow;\n this.cacheFilterItem = opts.cacheFilterItem ?? true;\n this.ready.set(true);\n }\n\n refreshFieldControls(f?: string) {\n if (!this.cacheFilterItem) {\n if (!f) {\n this.filedsFilterItemsCache.clear();\n } else {\n this.filedsFilterItemsCache.delete(f);\n }\n this.fieldDisplayService.clearCache(f);\n }\n const res: { [field: string]: { sortFn?: any, filterItems?: NzTableFilterList, filterFn?: any } } = {};\n for (const field of this.displayFields()) {\n if (f && field.field() != f) {\n continue;\n }\n res[field.field()] = {};\n if (field.filterAble()) {\n if (!this.filedsFilterItemsCache.has(field.field())) {\n this.filedsFilterItemsCache.set(field.field(), new Map<any, any>());\n }\n const filterItemsCache = this.filedsFilterItemsCache.get(field.field())!;\n for (let row of this.data() ?? []) {\n if (this.getRow) {\n row = this.getRow(row);\n }\n const value = row[field.field()];\n if (!filterItemsCache.has(value)) {\n filterItemsCache.set(value, { value, text: this.fieldDisplayService.getFieldDisplayText(field, row) })\n }\n }\n res[field.field()].filterItems = Array.from(filterItemsCache.values());\n res[field.field()].filterFn = (fd: any[] | any, row: any) => {\n if (this.getRow) {\n row = this.getRow(row);\n }\n if (fd instanceof Array) {\n return fd.includes(row[field.field()]);\n } else {\n return fd == row[field.field()];\n }\n };\n }\n if (field.sortAble()) {\n if (this.data()?.map(row => this.getRow ? this.getRow(row) : row).some((row: any) => row[field.field()] != undefined && typeof (row[field.field()]) == \"number\")) {\n res[field.field()].sortFn = (a: any, b: any) => {\n if (this.getRow) {\n a = this.getRow(a)\n b = this.getRow(b)\n }\n return a[field.field()] - b[field.field()];\n };\n } else {\n res[field.field()].sortFn = (a: any, b: any) => {\n if (this.getRow) {\n a = this.getRow(a)\n b = this.getRow(b)\n }\n return ((a[field.field()] || \"\") + \"\").localeCompare(b[field.field()])\n };\n }\n }\n }\n if (f) {\n this.fieldsControlsMap.set({\n ...this.fieldsControlsMap(),\n ...res\n });\n } else {\n this.fieldsControlsMap.set(res)\n }\n }\n\n filterChange(field: string, value: any) {\n for (const item of this.filedsFilterItemsCache.get(field)!.values()) {\n item.byDefault = value != null && (Array.isArray(value) ? value.includes(item.value) : item.value == value);\n }\n }\n\n private buildLeaderFieldWidth(): number {\n if (!this.ready()) {\n return 0;\n }\n switch (this.options.size()) {\n case \"small\":\n return 45;\n case \"middle\":\n return 50;\n default:\n return 65;\n }\n }\n\n}","import { computed, Injectable, Optional, Signal, signal } from \"@angular/core\";\nimport { SelectableTableOptions } from \"./base-table.options\";\nimport { ScopeDirective } from \"ngx-axis-appforge/core\";\n\n@Injectable()\nexport class SelectService {\n\n constructor(@Optional() private scope?: ScopeDirective) { }\n\n private options!: SelectableTableOptions;\n private keyField!: string;\n private data !: Signal<any[] | null>;\n private onSelectedChange!: (checkedIds: Set<any>) => void\n readonly headerChecked = signal<\"checked\" | \"indeterminate\" | \"none\">(\"none\");\n setOfCheckedId = new Set();\n setOfIndeterminateId = new Set();\n setOfDisabledId = computed(() => this.buildDisabledId());\n\n init(opts: { options: SelectableTableOptions, keyField: string, data: Signal<any[] | null>, onSelectedChange: (checkedIds: Set<any>) => void }) {\n this.options = opts.options;\n this.keyField = opts.keyField;\n this.data = opts.data;\n this.onSelectedChange = opts.onSelectedChange;\n }\n\n private buildDisabledId(): Set<any> {\n if (this.options.disableCheckboxFn()) {\n const args = this.scope?.snapshotAll() ?? {};\n return new Set(this.data()?.filter(row => this.scope?.runFnWithSnapshot(this.options.disableCheckboxFn()!, Object.assign({}, args, { row })))\n .map(row => row[this.keyField]));\n }\n return new Set<any>();\n }\n\n onAllChecked(checked: boolean) {\n this.data()?.filter(row => !this.setOfDisabledId().has(row[this.keyField]))?.forEach(row => this.updateCheckedSet(row, checked));\n this.refreshCheckedStatus();\n }\n\n toggleChecked(row: any) {\n if (this.options.showCheckbox() && !this.setOfDisabledId().has(row[this.keyField])) {\n this.onItemChecked(row, !this.setOfCheckedId.has(row[this.keyField]));\n }\n }\n\n onItemChecked(row: any, checked: boolean): void {\n this.updateCheckedSet(row, checked);\n this.refreshCheckedStatus();\n }\n\n updateCheckedSet(row: any, checked: boolean): void {\n const key = row[this.keyField];\n if (checked && !this.setOfCheckedId.has(key)) {\n if (this.options.singleCheck()) {\n this.setOfCheckedId.clear();\n }\n this.setOfCheckedId.add(key);\n } else if (!checked && this.setOfCheckedId.has(key)) {\n this.setOfCheckedId.delete(key);\n }\n }\n\n refreshCheckedStatus(): void {\n const listOfEnabledData = this.data()?.filter(row => !this.setOfDisabledId().has(row[this.keyField])) ?? [];\n const checked = listOfEnabledData.length > 0 && listOfEnabledData.every(row => this.setOfCheckedId.has(row[this.keyField]) && !this.setOfIndeterminateId.has(row[this.keyField]));\n if (checked) {\n this.headerChecked.set(\"checked\");\n } else {\n const indeterminate = listOfEnabledData.some(row => this.setOfCheckedId.has(row[this.keyField]) || this.setOfIndeterminateId.has(row[this.keyField])) && !checked;\n this.headerChecked.set(indeterminate ? \"indeterminate\" : \"none\");\n }\n this.onSelectedChange?.(this.setOfCheckedId);\n }\n\n getSelectedData(): any[] | undefined {\n return this.data()?.filter(row => this.setOfCheckedId.has(row[this.keyField]));\n }\n}","import { computed, Injectable, Optional, Signal } from \"@angular/core\";\nimport { ExpandableTableOptions } from \"./base-table.options\";\nimport { ScopeDirective } from \"ngx-axis-appforge/core\";\n\n@Injectable()\nexport class ExpandService {\n\n constructor(@Optional() private scope?: ScopeDirective) { }\n\n private options!: ExpandableTableOptions;\n private keyField!: string;\n private data !: Signal<any[] | null>;\n readonly expandedSet = new Set();\n readonly nodeMap = computed(() => this.buildNodeMap());\n\n init(opts: { options: ExpandableTableOptions, keyField: string, data: Signal<any[] | null> }) {\n this.options = opts.options;\n this.keyField = opts.keyField;\n this.data = opts.data;\n }\n\n buildNodeMap(): Map<string, { level: number, node: any, children?: any[] }> {\n const nodeMap = new Map<string, any>();\n if (this.options.showExpand() && this.options.expandMode() == \"tree\") {\n this.data()?.forEach((row: any) => {\n this.buildNodeMapForRow(row, nodeMap);\n });\n }\n return nodeMap;\n }\n\n onExpandChange(key: any, checked: boolean): void {\n if (checked) {\n this.expandedSet.add(key);\n } else {\n this.expandedSet.delete(key);\n }\n }\n\n buildNodeMapForRow(row: any, nodeMap: Map<string, any>, parentLevel = 0) {\n const node: any = {\n level: parentLevel + 1,\n node: row,\n children: []\n };\n nodeMap.set(row[this.keyField], node)\n if (this.options.showExpand() && this.options.expandMode() == \"tree\") {\n let children: any[];\n if (this.options.treeChildrenFun()) {\n children = this.scope?.runFnWithSnapshot(this.options.treeChildrenFun(), { row })\n } else {\n children = row.children;\n }\n if (children?.length) {\n node.children = children;\n children.forEach(child => {\n this.buildNodeMapForRow(child, nodeMap, node.level);\n });\n }\n }\n }\n\n getListForExpanded(row: any): any[] {\n const key = row[this.keyField];\n let res = [row];\n if (this.options.showExpand() && this.options.expandMode() == \"tree\" && this.nodeMap().get(key)?.children?.length && this.expandedSet.has(key)) {\n res = res.concat(this.nodeMap().get(key)!.children)\n }\n return res;\n }\n}","import { computed, Injectable, Optional, signal, Signal } from \"@angular/core\";\nimport { StatisticTableFieldOptions, StatisticTableOptions } from \"./base-table.options\";\nimport { ScopeDirective } from \"ngx-axis-appforge/core\";\n\n@Injectable()\nexport class StatisticService {\n\n constructor(@Optional() private scope?: ScopeDirective) { }\n\n private ready = signal(false);\n private options!: StatisticTableOptions;\n private data !: Signal<any[] | null>;\n private fields!: Signal<StatisticTableFieldOptions[]>;\n private getRow?: (row: any) => any;\n\n readonly statisticMap = computed(() => this.buildStatisticMap());\n\n init(opts: { options: StatisticTableOptions, data: Signal<any[] | null>, fields: Signal<StatisticTableFieldOptions[]>, getRow?: (row: any) => any }) {\n this.options = opts.options;\n this.data = opts.data;\n this.fields = opts.fields;\n this.getRow = opts.getRow;\n this.ready.set(true);\n }\n\n private buildStatisticMap(): { [field: string]: number | undefined } {\n if (!this.ready()) {\n return {};\n }\n const res: { [field: string]: number | undefined } = {};\n if (this.options.showStatistic() && this.data()) {\n for (const f of this.fields().filter(r => r.statisticAble())) {\n let num: number | undefined;\n for (let i = 0; i < (this.data() ?? []).length; i++) {\n let row = this.data()![i];\n if (this.getRow) {\n row = this.getRow(row);\n }\n if (f.statisticType() == \"sum\" || f.statisticType() == \"average\") {\n num = (num ?? 0) + row[f.field()];\n } else if (f.statisticType() == \"max\") {\n num = Math.max(num ?? Number.MIN_SAFE_INTEGER, row[f.field()]);\n } else if (f.statisticType() == \"min\") {\n num = Math.min(num ?? Number.MAX_SAFE_INTEGER, row[f.field()]);\n } else if (f.statisticType() == \"custom\" && f.statisticFn()) {\n num = this.scope?.runFnWithSnapshot(f.statisticFn(), { result: num, index: i, row: row, value: row[f.field()] });\n }\n }\n if (f.statisticType() == \"average\" && this.data()!.length > 0) {\n num = (num ?? 0) / this.data()!.length;\n }\n if (f.statisticType() == \"sum\" && this.data()!.length == 0) {\n num = 0;\n }\n res[f.field()] = num;\n }\n }\n return res;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1.TableFieldDisplayService","i1"],"mappings":"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"}
|
|
@@ -112,6 +112,7 @@ class TreeSelector extends ValueAccess {
|
|
|
112
112
|
});
|
|
113
113
|
return map;
|
|
114
114
|
}, ...(ngDevMode ? [{ debugName: "treeNodeMap" }] : []));
|
|
115
|
+
inputTree;
|
|
115
116
|
changeOn = (option, level) => {
|
|
116
117
|
return option['selectable'];
|
|
117
118
|
};
|
|
@@ -228,20 +229,29 @@ class TreeSelector extends ValueAccess {
|
|
|
228
229
|
}
|
|
229
230
|
return;
|
|
230
231
|
}
|
|
231
|
-
else if (!e.node.isSelected && e.keys?.length == 0 && !this.options.allowClear()) {
|
|
232
|
-
e.node.isSelected = true;
|
|
233
|
-
return;
|
|
234
|
-
}
|
|
235
232
|
if (this.options.readonly() || this.options.disabled()) {
|
|
236
233
|
e.node.isSelected = false;
|
|
237
234
|
return;
|
|
238
235
|
}
|
|
239
|
-
const selectNodes = e.selectedKeys?.filter(
|
|
236
|
+
const selectNodes = e.selectedKeys?.filter(r => {
|
|
237
|
+
if (!this.options.multiple()) {
|
|
238
|
+
r.isSelected = r.key == e.node?.key;
|
|
239
|
+
}
|
|
240
|
+
return r.isSelected;
|
|
241
|
+
}) ?? [];
|
|
240
242
|
this.selectedKeys.set(selectNodes.map(r => r.key));
|
|
241
243
|
const value = this.treeNodeToValue(selectNodes);
|
|
242
244
|
this.value.set(value);
|
|
243
245
|
this.onChange?.(this.value());
|
|
244
246
|
}
|
|
247
|
+
internalTreeNode(node, e) {
|
|
248
|
+
if (!this.options.multiple() && node.isSelected && !this.options.allowClear()) {
|
|
249
|
+
e.stopPropagation();
|
|
250
|
+
if (this.options.type() == 'input-tree') {
|
|
251
|
+
this.inputTree?.closeDropDown();
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
}
|
|
245
255
|
treeNodeToValue(nodes) {
|
|
246
256
|
return this.fullArrayToValue(nodes.map(n => n.origin['data']));
|
|
247
257
|
}
|
|
@@ -303,17 +313,20 @@ class TreeSelector extends ValueAccess {
|
|
|
303
313
|
this.onChange?.(this.value());
|
|
304
314
|
}
|
|
305
315
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: TreeSelector, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
306
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: TreeSelector, isStandalone: true, selector: "axis-tree-selector", inputs: { searchValue: { classPropertyName: "searchValue", publicName: "searchValue", isSignal: true, isRequired: false, transformFunction: null }, selectValue: { classPropertyName: "selectValue", publicName: "selectValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { searchValue: "searchValueChange", selectValue: "selectValueChange" }, viewQueries: [{ propertyName: "treeSelect", first: true, predicate: NzTreeSelectComponent, descendants: true }, { propertyName: "menu", first: true, predicate: NzDropdownMenuComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "@switch (options.type() ) {\n@case (\"tree\") {\n<div class=\"tree-box\">\n @if (options.title()) {\n <div class=\"title-container\">{{options.title()}}</div>\n }\n @if (options.showSearch()) {\n <div class=\"search-inp\">\n <input type=\"text\" nz-input placeholder=\"\u641C\u7D22\" [(ngModel)]=\"searchValue\" nzVariant=\"borderless\" nzSize=\"small\" />\n </div>\n }\n <div class=\"tree-body\">\n <nz-tree [nzSearchValue]=\"searchValue()??''\" [nzTreeTemplate]=\"optionItem\"\n [nzHideUnMatched]=\"options.hideUnMatched()\" [nzData]=\"treeData()\" nzBlockNode\n [nzSelectedKeys]=\"selectedKeys()\" [nzMultiple]=\"options.multiple()\" [nzShowLine]=\"options.showLine()\"\n (nzClick)=\"nodeClick($event)\" (nzContextMenu)=\"onContextMenu($event)\">\n </nz-tree>\n </div>\n</div>\n<nz-dropdown-menu>\n <ul nz-menu>\n @for (m of menus(); track $index) {\n @if (m.inuse()) {\n <li nz-menu-item [nzDisabled]=\"m.disabled()\" [nzDanger]=\"m.danger()\" (click)=\"menuClick(m)\">\n @if (m.icon()) {\n <ng-container [axisDynamic]=\"m.icon()\"></ng-container>\n }\n {{m.title()}}\n </li>\n }\n }\n </ul>\n</nz-dropdown-menu>\n}\n@case (\"input-tree\") {\n<nz-tree-select style=\"width: 100%;\" [nzNodes]=\"treeData()\" [nzAllowClear]=\"options.allowClear()\"\n [nzSize]=\"options.size()\" [nzVariant]=\"options.variant()\" [nzShowSearch]=\"options.showSearch()\"\n [nzShowLine]=\"options.showLine()\" [nzPlaceHolder]=\"options.placeHolder()\" [nzTreeTemplate]=\"optionItem\"\n [nzCheckable]=\"options.multiple()\" [nzMultiple]=\"options.multiple()\"\n [nzMaxTagCount]=\"options.maxSelectCount()??9999999\" [nzHideUnMatched]=\"options.hideUnMatched()\"\n [nzDisabled]=\"options.disabled() || options.readonly()\" [(ngModel)]=\"selectValue\" (ngModelChange)=\"onInputTreeChange()\"></nz-tree-select>\n}\n@case (\"cascader\"){\n<nz-cascader style=\"width: 100%;\" [nzOptions]=\"treeData()\" [(ngModel)]=\"selectValue\"\n (ngModelChange)=\"onCascaderChange($event)\" [nzMultiple]=\"options.multiple()\"\n [nzMaxTagCount]=\"options.maxSelectCount()??9999999\" [nzAllowClear]=\"options.allowClear()\" [nzChangeOn]=\"changeOn\"\n [nzDisabled]=\"options.disabled() || options.readonly()\" nzLabelProperty=\"title\" [nzPlaceHolder]=\"options.placeHolder()\"\n [nzShowSearch]=\"options.showSearch()\" [nzSize]=\"options.size()\" nzValueProperty=\"key\"\n [nzVariant]=\"options.variant()\" [nzExpandTrigger]=\"options.expandTrigger()\"\n [nzOptionRender]=\"optionItem\"></nz-cascader>\n}\n}\n<ng-template #optionItem let-option>\n <div class=\"node-item\" nz-flex nzGap=\"4px\">\n @if (option.icon) {\n <ng-container [axisDynamic]=\"option.icon\"></ng-container>\n }\n <span [innerHTML]=\"option.title | nzHighlight: searchValue()??'' : 'i' : 'highlight'\"></span>\n @if (options.type() != 'cascader' && option.children.length) {\n <a class=\"expand-button\" nz-button nzType=\"text\" nzSize=\"small\" nzShape=\"circle\"\n (click)=\"$event.stopPropagation(); expand(option,!hasExpanded(option))\">\n <nz-icon [nzType]=\"hasExpanded(option)?'shrink':'arrows-alt'\"></nz-icon>\n </a>\n }\n </div>\n</ng-template>", styles: [":host{display:block;width:100%}.title-container{padding:20px;border-bottom:.5px solid rgba(128,128,128,.3);font-weight:500;font-size:16px}::ng-deep .highlight{color:#f50}.tree-box{height:100%;display:flex;flex-direction:column}.tree-body{flex:1;overflow:auto}.expand-button{opacity:0}.node-item{width:100%}.node-item:hover .expand-button{opacity:1}.node-item span{flex:1;white-space:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: NzInputModule }, { kind: "directive", type: i1.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzVariant", "nzSize", "nzStepperless", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "directive", type: DynamicDirective, selector: "[axisDynamic]", inputs: ["axisDynamic", "standalone", "isDesign"], outputs: ["onRegisteValueAccess"], exportAs: ["axisDynamic"] }, { kind: "ngmodule", type: NzTreeModule }, { kind: "component", type: i2.NzTreeComponent, selector: "nz-tree", inputs: ["nzShowIcon", "nzHideUnMatched", "nzBlockNode", "nzExpandAll", "nzSelectMode", "nzCheckStrictly", "nzShowExpand", "nzShowLine", "nzCheckable", "nzAsyncData", "nzDraggable", "nzMultiple", "nzExpandedIcon", "nzVirtualItemSize", "nzVirtualMaxBufferPx", "nzVirtualMinBufferPx", "nzVirtualHeight", "nzTreeTemplate", "nzBeforeDrop", "nzData", "nzExpandedKeys", "nzSelectedKeys", "nzCheckedKeys", "nzSearchValue", "nzSearchFunc"], outputs: ["nzExpandedKeysChange", "nzSelectedKeysChange", "nzCheckedKeysChange", "nzSearchValueChange", "nzClick", "nzDblClick", "nzContextMenu", "nzCheckboxChange", "nzExpandChange", "nzOnDragStart", "nzOnDragEnter", "nzOnDragOver", "nzOnDragLeave", "nzOnDrop", "nzOnDragEnd"], exportAs: ["nzTree"] }, { kind: "ngmodule", type: NzDropDownModule }, { kind: "directive", type: i3.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i3.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "component", type: i4.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i6.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzButtonModule }, { kind: "component", type: i7.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i8.ɵNzTransitionPatchDirective, selector: "[nz-button], [nz-icon], nz-icon, [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "ngmodule", type: NzFlexModule }, { kind: "directive", type: i9.NzFlexDirective, selector: "[nz-flex],nz-flex", inputs: ["nzVertical", "nzJustify", "nzAlign", "nzGap", "nzWrap", "nzFlex"], exportAs: ["nzFlex"] }, { kind: "ngmodule", type: NzTreeSelectModule }, { kind: "component", type: i10.NzTreeSelectComponent, selector: "nz-tree-select", inputs: ["nzId", "nzAllowClear", "nzShowExpand", "nzShowLine", "nzDropdownMatchSelectWidth", "nzCheckable", "nzHideUnMatched", "nzShowIcon", "nzShowSearch", "nzDisabled", "nzAsyncData", "nzMultiple", "nzDefaultExpandAll", "nzCheckStrictly", "nzVirtualItemSize", "nzVirtualMaxBufferPx", "nzVirtualMinBufferPx", "nzVirtualHeight", "nzExpandedIcon", "nzNotFoundContent", "nzNodes", "nzOpen", "nzSize", "nzVariant", "nzPlaceHolder", "nzDropdownStyle", "nzDropdownClassName", "nzBackdrop", "nzStatus", "nzPlacement", "nzExpandedKeys", "nzPrefix", "nzSuffixIcon", "nzDisplayWith", "nzMaxTagCount", "nzMaxTagPlaceholder", "nzTreeTemplate"], outputs: ["nzOpenChange", "nzCleared", "nzRemoved", "nzExpandChange", "nzTreeClick", "nzTreeCheckboxChange"], exportAs: ["nzTreeSelect"] }, { kind: "ngmodule", type: NzCascaderModule }, { kind: "component", type: i11.NzCascaderComponent, selector: "nz-cascader, [nz-cascader]", inputs: ["nzOpen", "nzOptions", "nzOptionRender", "nzShowInput", "nzShowArrow", "nzAllowClear", "nzAutoFocus", "nzChangeOnSelect", "nzDisabled", "nzColumnClassName", "nzExpandTrigger", "nzValueProperty", "nzLabelProperty", "nzLabelRender", "nzVariant", "nzNotFoundContent", "nzSize", "nzBackdrop", "nzShowSearch", "nzPlaceHolder", "nzMenuClassName", "nzMenuStyle", "nzMouseLeaveDelay", "nzMouseEnterDelay", "nzStatus", "nzMultiple", "nzMaxTagCount", "nzPlacement", "nzTriggerAction", "nzChangeOn", "nzLoadData", "nzDisplayWith", "nzPrefix", "nzSuffixIcon", "nzExpandIcon"], outputs: ["nzVisibleChange", "nzSelectionChange", "nzRemoved", "nzClear"], exportAs: ["nzCascader"] }, { kind: "ngmodule", type: NzModalModule }, { kind: "pipe", type: NzHighlightPipe, name: "nzHighlight" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
316
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: TreeSelector, isStandalone: true, selector: "axis-tree-selector", inputs: { searchValue: { classPropertyName: "searchValue", publicName: "searchValue", isSignal: true, isRequired: false, transformFunction: null }, selectValue: { classPropertyName: "selectValue", publicName: "selectValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { searchValue: "searchValueChange", selectValue: "selectValueChange" }, viewQueries: [{ propertyName: "treeSelect", first: true, predicate: NzTreeSelectComponent, descendants: true }, { propertyName: "menu", first: true, predicate: NzDropdownMenuComponent, descendants: true }, { propertyName: "inputTree", first: true, predicate: ["inputTree"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@switch (options.type() ) {\n@case (\"tree\") {\n<div class=\"tree-box\">\n @if (options.title()) {\n <div class=\"title-container\">{{options.title()}}</div>\n }\n @if (options.showSearch()) {\n <div class=\"search-inp\">\n <input type=\"text\" nz-input placeholder=\"\u641C\u7D22\" [(ngModel)]=\"searchValue\" nzVariant=\"borderless\" nzSize=\"small\" />\n </div>\n }\n <div class=\"tree-body\">\n <nz-tree [nzSearchValue]=\"searchValue()??''\" [nzTreeTemplate]=\"optionItem\"\n [nzHideUnMatched]=\"options.hideUnMatched()\" [nzData]=\"treeData()\" nzBlockNode\n [nzSelectedKeys]=\"selectedKeys()\" [nzMultiple]=\"options.multiple()\" [nzShowLine]=\"options.showLine()\"\n (nzClick)=\"nodeClick($event)\" (nzContextMenu)=\"onContextMenu($event)\">\n </nz-tree>\n </div>\n</div>\n<nz-dropdown-menu>\n <ul nz-menu>\n @for (m of menus(); track $index) {\n @if (m.inuse()) {\n <li nz-menu-item [nzDisabled]=\"m.disabled()\" [nzDanger]=\"m.danger()\" (click)=\"menuClick(m)\">\n @if (m.icon()) {\n <ng-container [axisDynamic]=\"m.icon()\"></ng-container>\n }\n {{m.title()}}\n </li>\n }\n }\n </ul>\n</nz-dropdown-menu>\n}\n@case (\"input-tree\") {\n<nz-tree-select #inputTree style=\"width: 100%;\" [nzNodes]=\"treeData()\" [nzAllowClear]=\"options.allowClear()\"\n [nzSize]=\"options.size()\" [nzVariant]=\"options.variant()\" [nzShowSearch]=\"options.showSearch()\"\n [nzShowLine]=\"options.showLine()\" [nzPlaceHolder]=\"options.placeHolder()\" [nzTreeTemplate]=\"optionItem\"\n [nzCheckable]=\"options.multiple()\" [nzMultiple]=\"options.multiple()\"\n [nzMaxTagCount]=\"options.maxSelectCount()??9999999\" [nzHideUnMatched]=\"options.hideUnMatched()\"\n [nzDisabled]=\"options.disabled() || options.readonly()\" [(ngModel)]=\"selectValue\"\n (ngModelChange)=\"onInputTreeChange()\"></nz-tree-select>\n}\n@case (\"cascader\"){\n<nz-cascader style=\"width: 100%;\" [nzOptions]=\"treeData()\" [(ngModel)]=\"selectValue\"\n (ngModelChange)=\"onCascaderChange($event)\" [nzMultiple]=\"options.multiple()\"\n [nzMaxTagCount]=\"options.maxSelectCount()??9999999\" [nzAllowClear]=\"options.allowClear()\" [nzChangeOn]=\"changeOn\"\n [nzDisabled]=\"options.disabled() || options.readonly()\" nzLabelProperty=\"title\"\n [nzPlaceHolder]=\"options.placeHolder()\" [nzShowSearch]=\"options.showSearch()\" [nzSize]=\"options.size()\"\n nzValueProperty=\"key\" [nzVariant]=\"options.variant()\" [nzExpandTrigger]=\"options.expandTrigger()\"\n [nzOptionRender]=\"optionItem\"></nz-cascader>\n}\n}\n<ng-template #optionItem let-option>\n <div class=\"node-item\" nz-flex nzGap=\"4px\" (click)=\"internalTreeNode(option, $event)\">\n @if (option.icon) {\n <ng-container [axisDynamic]=\"option.icon\"></ng-container>\n }\n <span [innerHTML]=\"option.title | nzHighlight: searchValue()??'' : 'i' : 'highlight'\"></span>\n @if (options.type() != 'cascader' && option.children.length) {\n <button class=\"expand-button\" nz-button nzType=\"text\" nzSize=\"small\" nzShape=\"circle\"\n (click)=\"$event.stopPropagation(); expand(option,!hasExpanded(option))\">\n <nz-icon [nzType]=\"hasExpanded(option)?'shrink':'arrows-alt'\"></nz-icon>\n </button>\n }\n </div>\n</ng-template>", styles: [":host{display:block;width:100%}.title-container{padding:20px;border-bottom:.5px solid rgba(128,128,128,.3);font-weight:500;font-size:16px}::ng-deep .highlight{color:#f50}.tree-box{height:100%;display:flex;flex-direction:column}.tree-body{flex:1;overflow:auto}.expand-button{opacity:0}.node-item{width:100%}.node-item:hover .expand-button{opacity:1}.node-item span{flex:1;white-space:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: NzInputModule }, { kind: "directive", type: i1.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzVariant", "nzSize", "nzStepperless", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "directive", type: DynamicDirective, selector: "[axisDynamic]", inputs: ["axisDynamic", "standalone", "isDesign"], outputs: ["onRegisteValueAccess"], exportAs: ["axisDynamic"] }, { kind: "ngmodule", type: NzTreeModule }, { kind: "component", type: i2.NzTreeComponent, selector: "nz-tree", inputs: ["nzShowIcon", "nzHideUnMatched", "nzBlockNode", "nzExpandAll", "nzSelectMode", "nzCheckStrictly", "nzShowExpand", "nzShowLine", "nzCheckable", "nzAsyncData", "nzDraggable", "nzMultiple", "nzExpandedIcon", "nzVirtualItemSize", "nzVirtualMaxBufferPx", "nzVirtualMinBufferPx", "nzVirtualHeight", "nzTreeTemplate", "nzBeforeDrop", "nzData", "nzExpandedKeys", "nzSelectedKeys", "nzCheckedKeys", "nzSearchValue", "nzSearchFunc"], outputs: ["nzExpandedKeysChange", "nzSelectedKeysChange", "nzCheckedKeysChange", "nzSearchValueChange", "nzClick", "nzDblClick", "nzContextMenu", "nzCheckboxChange", "nzExpandChange", "nzOnDragStart", "nzOnDragEnter", "nzOnDragOver", "nzOnDragLeave", "nzOnDrop", "nzOnDragEnd"], exportAs: ["nzTree"] }, { kind: "ngmodule", type: NzDropDownModule }, { kind: "directive", type: i3.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i3.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "component", type: i4.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i6.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzButtonModule }, { kind: "component", type: i7.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i8.ɵNzTransitionPatchDirective, selector: "[nz-button], [nz-icon], nz-icon, [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "ngmodule", type: NzFlexModule }, { kind: "directive", type: i9.NzFlexDirective, selector: "[nz-flex],nz-flex", inputs: ["nzVertical", "nzJustify", "nzAlign", "nzGap", "nzWrap", "nzFlex"], exportAs: ["nzFlex"] }, { kind: "ngmodule", type: NzTreeSelectModule }, { kind: "component", type: i10.NzTreeSelectComponent, selector: "nz-tree-select", inputs: ["nzId", "nzAllowClear", "nzShowExpand", "nzShowLine", "nzDropdownMatchSelectWidth", "nzCheckable", "nzHideUnMatched", "nzShowIcon", "nzShowSearch", "nzDisabled", "nzAsyncData", "nzMultiple", "nzDefaultExpandAll", "nzCheckStrictly", "nzVirtualItemSize", "nzVirtualMaxBufferPx", "nzVirtualMinBufferPx", "nzVirtualHeight", "nzExpandedIcon", "nzNotFoundContent", "nzNodes", "nzOpen", "nzSize", "nzVariant", "nzPlaceHolder", "nzDropdownStyle", "nzDropdownClassName", "nzBackdrop", "nzStatus", "nzPlacement", "nzExpandedKeys", "nzPrefix", "nzSuffixIcon", "nzDisplayWith", "nzMaxTagCount", "nzMaxTagPlaceholder", "nzTreeTemplate"], outputs: ["nzOpenChange", "nzCleared", "nzRemoved", "nzExpandChange", "nzTreeClick", "nzTreeCheckboxChange"], exportAs: ["nzTreeSelect"] }, { kind: "ngmodule", type: NzCascaderModule }, { kind: "component", type: i11.NzCascaderComponent, selector: "nz-cascader, [nz-cascader]", inputs: ["nzOpen", "nzOptions", "nzOptionRender", "nzShowInput", "nzShowArrow", "nzAllowClear", "nzAutoFocus", "nzChangeOnSelect", "nzDisabled", "nzColumnClassName", "nzExpandTrigger", "nzValueProperty", "nzLabelProperty", "nzLabelRender", "nzVariant", "nzNotFoundContent", "nzSize", "nzBackdrop", "nzShowSearch", "nzPlaceHolder", "nzMenuClassName", "nzMenuStyle", "nzMouseLeaveDelay", "nzMouseEnterDelay", "nzStatus", "nzMultiple", "nzMaxTagCount", "nzPlacement", "nzTriggerAction", "nzChangeOn", "nzLoadData", "nzDisplayWith", "nzPrefix", "nzSuffixIcon", "nzExpandIcon"], outputs: ["nzVisibleChange", "nzSelectionChange", "nzRemoved", "nzClear"], exportAs: ["nzCascader"] }, { kind: "ngmodule", type: NzModalModule }, { kind: "pipe", type: NzHighlightPipe, name: "nzHighlight" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
307
317
|
}
|
|
308
318
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: TreeSelector, decorators: [{
|
|
309
319
|
type: Component,
|
|
310
|
-
args: [{ selector: 'axis-tree-selector', imports: [NzInputModule, DynamicDirective, NzTreeModule, NzDropDownModule, FormsModule, NzHighlightPipe, NzIconModule, NzButtonModule, NzFlexModule, NzTreeSelectModule, NzCascaderModule, NzModalModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "@switch (options.type() ) {\n@case (\"tree\") {\n<div class=\"tree-box\">\n @if (options.title()) {\n <div class=\"title-container\">{{options.title()}}</div>\n }\n @if (options.showSearch()) {\n <div class=\"search-inp\">\n <input type=\"text\" nz-input placeholder=\"\u641C\u7D22\" [(ngModel)]=\"searchValue\" nzVariant=\"borderless\" nzSize=\"small\" />\n </div>\n }\n <div class=\"tree-body\">\n <nz-tree [nzSearchValue]=\"searchValue()??''\" [nzTreeTemplate]=\"optionItem\"\n [nzHideUnMatched]=\"options.hideUnMatched()\" [nzData]=\"treeData()\" nzBlockNode\n [nzSelectedKeys]=\"selectedKeys()\" [nzMultiple]=\"options.multiple()\" [nzShowLine]=\"options.showLine()\"\n (nzClick)=\"nodeClick($event)\" (nzContextMenu)=\"onContextMenu($event)\">\n </nz-tree>\n </div>\n</div>\n<nz-dropdown-menu>\n <ul nz-menu>\n @for (m of menus(); track $index) {\n @if (m.inuse()) {\n <li nz-menu-item [nzDisabled]=\"m.disabled()\" [nzDanger]=\"m.danger()\" (click)=\"menuClick(m)\">\n @if (m.icon()) {\n <ng-container [axisDynamic]=\"m.icon()\"></ng-container>\n }\n {{m.title()}}\n </li>\n }\n }\n </ul>\n</nz-dropdown-menu>\n}\n@case (\"input-tree\") {\n<nz-tree-select style=\"width: 100%;\" [nzNodes]=\"treeData()\" [nzAllowClear]=\"options.allowClear()\"\n [nzSize]=\"options.size()\" [nzVariant]=\"options.variant()\" [nzShowSearch]=\"options.showSearch()\"\n [nzShowLine]=\"options.showLine()\" [nzPlaceHolder]=\"options.placeHolder()\" [nzTreeTemplate]=\"optionItem\"\n [nzCheckable]=\"options.multiple()\" [nzMultiple]=\"options.multiple()\"\n [nzMaxTagCount]=\"options.maxSelectCount()??9999999\" [nzHideUnMatched]=\"options.hideUnMatched()\"\n [nzDisabled]=\"options.disabled() || options.readonly()\" [(ngModel)]=\"selectValue\"
|
|
320
|
+
args: [{ selector: 'axis-tree-selector', imports: [NzInputModule, DynamicDirective, NzTreeModule, NzDropDownModule, FormsModule, NzHighlightPipe, NzIconModule, NzButtonModule, NzFlexModule, NzTreeSelectModule, NzCascaderModule, NzModalModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "@switch (options.type() ) {\n@case (\"tree\") {\n<div class=\"tree-box\">\n @if (options.title()) {\n <div class=\"title-container\">{{options.title()}}</div>\n }\n @if (options.showSearch()) {\n <div class=\"search-inp\">\n <input type=\"text\" nz-input placeholder=\"\u641C\u7D22\" [(ngModel)]=\"searchValue\" nzVariant=\"borderless\" nzSize=\"small\" />\n </div>\n }\n <div class=\"tree-body\">\n <nz-tree [nzSearchValue]=\"searchValue()??''\" [nzTreeTemplate]=\"optionItem\"\n [nzHideUnMatched]=\"options.hideUnMatched()\" [nzData]=\"treeData()\" nzBlockNode\n [nzSelectedKeys]=\"selectedKeys()\" [nzMultiple]=\"options.multiple()\" [nzShowLine]=\"options.showLine()\"\n (nzClick)=\"nodeClick($event)\" (nzContextMenu)=\"onContextMenu($event)\">\n </nz-tree>\n </div>\n</div>\n<nz-dropdown-menu>\n <ul nz-menu>\n @for (m of menus(); track $index) {\n @if (m.inuse()) {\n <li nz-menu-item [nzDisabled]=\"m.disabled()\" [nzDanger]=\"m.danger()\" (click)=\"menuClick(m)\">\n @if (m.icon()) {\n <ng-container [axisDynamic]=\"m.icon()\"></ng-container>\n }\n {{m.title()}}\n </li>\n }\n }\n </ul>\n</nz-dropdown-menu>\n}\n@case (\"input-tree\") {\n<nz-tree-select #inputTree style=\"width: 100%;\" [nzNodes]=\"treeData()\" [nzAllowClear]=\"options.allowClear()\"\n [nzSize]=\"options.size()\" [nzVariant]=\"options.variant()\" [nzShowSearch]=\"options.showSearch()\"\n [nzShowLine]=\"options.showLine()\" [nzPlaceHolder]=\"options.placeHolder()\" [nzTreeTemplate]=\"optionItem\"\n [nzCheckable]=\"options.multiple()\" [nzMultiple]=\"options.multiple()\"\n [nzMaxTagCount]=\"options.maxSelectCount()??9999999\" [nzHideUnMatched]=\"options.hideUnMatched()\"\n [nzDisabled]=\"options.disabled() || options.readonly()\" [(ngModel)]=\"selectValue\"\n (ngModelChange)=\"onInputTreeChange()\"></nz-tree-select>\n}\n@case (\"cascader\"){\n<nz-cascader style=\"width: 100%;\" [nzOptions]=\"treeData()\" [(ngModel)]=\"selectValue\"\n (ngModelChange)=\"onCascaderChange($event)\" [nzMultiple]=\"options.multiple()\"\n [nzMaxTagCount]=\"options.maxSelectCount()??9999999\" [nzAllowClear]=\"options.allowClear()\" [nzChangeOn]=\"changeOn\"\n [nzDisabled]=\"options.disabled() || options.readonly()\" nzLabelProperty=\"title\"\n [nzPlaceHolder]=\"options.placeHolder()\" [nzShowSearch]=\"options.showSearch()\" [nzSize]=\"options.size()\"\n nzValueProperty=\"key\" [nzVariant]=\"options.variant()\" [nzExpandTrigger]=\"options.expandTrigger()\"\n [nzOptionRender]=\"optionItem\"></nz-cascader>\n}\n}\n<ng-template #optionItem let-option>\n <div class=\"node-item\" nz-flex nzGap=\"4px\" (click)=\"internalTreeNode(option, $event)\">\n @if (option.icon) {\n <ng-container [axisDynamic]=\"option.icon\"></ng-container>\n }\n <span [innerHTML]=\"option.title | nzHighlight: searchValue()??'' : 'i' : 'highlight'\"></span>\n @if (options.type() != 'cascader' && option.children.length) {\n <button class=\"expand-button\" nz-button nzType=\"text\" nzSize=\"small\" nzShape=\"circle\"\n (click)=\"$event.stopPropagation(); expand(option,!hasExpanded(option))\">\n <nz-icon [nzType]=\"hasExpanded(option)?'shrink':'arrows-alt'\"></nz-icon>\n </button>\n }\n </div>\n</ng-template>", styles: [":host{display:block;width:100%}.title-container{padding:20px;border-bottom:.5px solid rgba(128,128,128,.3);font-weight:500;font-size:16px}::ng-deep .highlight{color:#f50}.tree-box{height:100%;display:flex;flex-direction:column}.tree-body{flex:1;overflow:auto}.expand-button{opacity:0}.node-item{width:100%}.node-item:hover .expand-button{opacity:1}.node-item span{flex:1;white-space:nowrap}\n"] }]
|
|
311
321
|
}], ctorParameters: () => [], propDecorators: { treeSelect: [{
|
|
312
322
|
type: ViewChild,
|
|
313
323
|
args: [NzTreeSelectComponent]
|
|
314
324
|
}], menu: [{
|
|
315
325
|
type: ViewChild,
|
|
316
326
|
args: [NzDropdownMenuComponent]
|
|
327
|
+
}], inputTree: [{
|
|
328
|
+
type: ViewChild,
|
|
329
|
+
args: ["inputTree"]
|
|
317
330
|
}] } });
|
|
318
331
|
|
|
319
332
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-axis-appforge-axis-components-tree-selector.mjs","sources":["../../../axis-components/tree-selector/tree-selector.options.ts","../../../axis-components/tree-selector/tree-selector.ts","../../../axis-components/tree-selector/tree-selector.html","../../../axis-components/tree-selector/ngx-axis-appforge-axis-components-tree-selector.ts"],"sourcesContent":["import { signal } from \"@angular/core\";\nimport { ValueAccessOptions, TriggeEventsOptions } from \"ngx-axis-appforge/core\";\n\nexport class TreeSelectorOptions extends ValueAccessOptions {\n\n\n readonly labelField = signal(\"title\");\n readonly valueField = signal(\"key\");\n readonly selectableField = signal(\"selectable\");\n readonly iconField = signal(\"icon\");\n readonly fullValue = signal(false);\n readonly levelStart = signal(0);\n readonly levelEnd = signal<number | null>(null);\n readonly data = signal<any>(undefined);\n readonly nodeFn = signal<string | undefined>(undefined);\n\n readonly selectAbleLevel = signal<string>(\"\");\n readonly multiple = signal(false);\n readonly maxSelectCount = signal<number | null>(null);\n readonly defaultFirst = signal(false);\n readonly allowClear = signal(true);\n\n readonly type = signal<\"tree\" | \"input-tree\" | \"cascader\">(\"tree\");\n readonly showSearch = signal(true);\n readonly hideUnMatched = signal(true);\n readonly showLine = signal(false);\n\n readonly title = signal(\"\");\n readonly expandedLevel = signal<number | null>(null);\n\n readonly placeHolder = signal(\"\");\n readonly size = signal<'large' | 'small' | 'default'>(\"default\");\n readonly variant = signal<'outlined' | 'borderless' | 'filled' | 'underlined'>(\"outlined\");\n\n readonly expandTrigger = signal<'click' | 'hover'>(\"click\");\n\n readonly menus = signal<TreeNodeMenuOptions[]>([]);\n\n}\n\nexport class TreeNodeMenuOptions {\n readonly inuse = signal(true);\n readonly title = signal(\"未命名\");\n readonly icon = signal<any>(undefined);\n readonly danger = signal(false);\n readonly confirm = signal(false);\n readonly confirmText = signal(\"是否确认?\");\n readonly disabled = signal(false);\n readonly triggeEvents = signal<TriggeEventsOptions | undefined>(undefined);\n}","import { ChangeDetectionStrategy, Component, computed, effect, inject, model, signal, untracked, ViewChild } from '@angular/core';\nimport { TreeNodeMenuOptions, TreeSelectorOptions } from './tree-selector.options';\nimport { copy, DynamicDirective, recursionArray, ValueAccess } from 'ngx-axis-appforge/core';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzTreeModule, NzTreeNodeOptions } from 'ng-zorro-antd/tree';\nimport { NzContextMenuService, NzDropdownMenuComponent, NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { FormsModule } from '@angular/forms';\nimport { NzFormatEmitEvent, NzTreeNode, NzTreeNodeKey } from 'ng-zorro-antd/core/tree';\nimport { NzHighlightPipe } from 'ng-zorro-antd/core/highlight';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzFlexModule } from 'ng-zorro-antd/flex';\nimport { NzTreeSelectComponent, NzTreeSelectModule } from 'ng-zorro-antd/tree-select';\nimport { NzCascaderModule, NzCascaderOption } from 'ng-zorro-antd/cascader';\nimport { NzModalModule, NzModalService } from 'ng-zorro-antd/modal';\n\n@Component({\n selector: 'axis-tree-selector',\n imports: [NzInputModule, DynamicDirective, NzTreeModule, NzDropDownModule, FormsModule, NzHighlightPipe, NzIconModule, NzButtonModule, NzFlexModule, NzTreeSelectModule, NzCascaderModule, NzModalModule],\n templateUrl: './tree-selector.html',\n styleUrl: './tree-selector.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TreeSelector extends ValueAccess<TreeSelectorOptions> {\n\n constructor() {\n super();\n effect(() => {\n let treeData = this.treeData();\n untracked(() => {\n if (this.options.defaultFirst() && (this.options.multiple() && !this.value()?.length || !this.options.multiple() && !this.value())) {\n let fullArray: any[] = [];\n recursionArray(treeData, {\n before: n => {\n if (n.selectable) {\n fullArray.push(n.data);\n return false;\n }\n return undefined;\n }\n });\n const value = this.fullArrayToValue(fullArray);\n if (value !== undefined) {\n this.setInitValue(value);\n }\n }\n });\n });\n effect(() => {\n if (this.treeNodeMap()) {\n untracked(() => this.valueToComponentValue());\n }\n });\n }\n\n @ViewChild(NzTreeSelectComponent)\n private treeSelect?: NzTreeSelectComponent;\n\n @ViewChild(NzDropdownMenuComponent)\n private menu?: NzDropdownMenuComponent;\n private readonly menuService = inject(NzContextMenuService);\n private readonly modal = inject(NzModalService);\n private menuNodeDs?: any;\n\n override options: TreeSelectorOptions = new TreeSelectorOptions();\n readonly menus = computed(() => this.options.menus().map(_ => new TreeNodeMenuOptions()));\n readonly searchValue = model<string>();\n readonly treeData = computed(() => this.buildTreeData());\n readonly selectedKeys = signal<NzTreeNodeKey[]>([]);\n readonly selectValue = model<any>();\n readonly treeNodeMap = computed(() => {\n const map = new Map<NzTreeNodeKey, NzTreeNodeOptions>();\n recursionArray(this.treeData(), {\n before: n => {\n map.set(n.key, n);\n }\n });\n return map;\n });\n\n readonly changeOn = (option: NzCascaderOption, level: number): boolean => {\n return option['selectable'];\n }\n\n override setInitValue(value: any): void {\n super.setInitValue(value);\n this.valueToComponentValue();\n }\n\n override writeValue(value: any): void {\n super.writeValue(value);\n this.valueToComponentValue();\n }\n\n private buildTreeData(): NzTreeNodeOptions[] {\n if (!this.options.data()) {\n return [];\n }\n let data = copy(this.options.data(), true);\n if (this.options.levelStart() < 0) {\n data = [{\n [this.options.labelField()]: \"全部\",\n [this.options.valueField()]: \"\",\n children: data,\n }];\n }\n const selectableLevels = this.options.selectAbleLevel()?.split(\",\").filter(l => l).map(l => +l.trim());\n const treeData: NzTreeNodeOptions[] = [];\n recursionArray(data, {\n before: (n, l, parent) => {\n const nodeData: any = {};\n if (this.options.nodeFn()) {\n this.runFn(this.options.nodeFn()!, { node: n, level: l });\n }\n for (const key in n) {\n if (key !== \"children\") {\n nodeData[key] = n[key];\n delete n[key];\n }\n }\n if (l >= this.options.levelStart() || l <= (this.options.levelEnd() ?? Infinity)) {\n if (l == this.options.levelStart()) {\n treeData.push(n);\n }\n if (l == (this.options.levelEnd() ?? Infinity) || (this.options.type() == 'cascader' && selectableLevels?.length && selectableLevels[selectableLevels.length - 1] == l)) {\n n.isLeaf = true;\n n.expanded = false;\n delete n.children;\n } else {\n n.isLeaf = !n.children?.length;\n n.expanded = l < (this.options.expandedLevel() ?? Infinity);\n }\n n.selectable = nodeData[this.options.selectableField()] ?? true;\n if (n.selectable && this.options.selectAbleLevel()) {\n if (!selectableLevels.includes(l)) {\n n.selectable = false;\n }\n }\n n.key = nodeData[this.options.valueField()];\n n.title = nodeData[this.options.labelField()];\n n.icon = nodeData[this.options.iconField()];\n n.keys = (parent?.keys ?? []).concat([n.key]);\n n.data = nodeData;\n n.disableCheckbox = !n.selectable;\n }\n }\n }, this.options.levelStart() < 0 ? -1 : 0);\n return treeData;\n }\n\n private valueToComponentValue() {\n let value = this.value();\n if (value != null) {\n if (!this.options.multiple()) {\n value = [value];\n }\n if (this.options.fullValue()) {\n value = value.map((e: any) => e[this.options.valueField()]);\n }\n switch (this.options.type()) {\n case \"tree\":\n this.selectedKeys.set([...value]);\n break;\n case \"input-tree\":\n if (!this.options.multiple()) {\n value = value[0];\n }\n this.selectValue.set(value);\n break;\n case \"cascader\":\n value = value.map((e: any) => this.treeNodeMap().get(e)?.['keys']);\n if (!untracked(this.options.multiple)) {\n value = value[0];\n }\n this.selectValue.set(value);\n break;\n }\n } else {\n switch (this.options.type()) {\n case \"tree\":\n this.selectedKeys.set([]);\n break;\n case \"input-tree\":\n this.selectValue.set(null);\n break;\n case \"cascader\":\n this.selectValue.set(null);\n break;\n }\n }\n }\n\n nodeClick(e: NzFormatEmitEvent) {\n if (!e.node!.isSelectable) {\n if (e.node && !e.node.isLeaf) {\n e.node!.isExpanded = !e.node!.isExpanded;\n }\n return;\n } else if (!e.node!.isSelected && e.keys?.length == 0 && !this.options.allowClear()) {\n e.node!.isSelected = true;\n return;\n }\n if (this.options.readonly() || this.options.disabled()) {\n e.node!.isSelected = false;\n return;\n }\n const selectNodes = e.selectedKeys?.filter(e => e.isSelected) ?? [];\n this.selectedKeys.set(selectNodes.map(r => r.key));\n const value = this.treeNodeToValue(selectNodes);\n this.value.set(value);\n this.onChange?.(this.value());\n }\n\n private treeNodeToValue(nodes: NzTreeNode[]): any {\n return this.fullArrayToValue(nodes.map(n => n.origin['data']));\n }\n\n private fullArrayToValue(fullArray: any[]): any {\n let value: any = fullArray.map(n => {\n const res: any = {};\n for (const key in n) {\n if (key !== \"children\") {\n res[key] = n[key];\n }\n }\n return res;\n });\n if (!untracked(this.options.fullValue)) {\n value = fullArray.map(r => r[untracked(this.options.valueField)]);\n }\n if (!this.options.multiple()) {\n value = value?.[0];\n }\n return value ?? null;\n }\n\n hasExpanded(node: NzTreeNode): boolean {\n return node.isExpanded || node.children.some(c => this.hasExpanded(c));\n }\n\n expand(node: NzTreeNode, expanded: boolean) {\n node.isExpanded = expanded;\n node.children.forEach(c => this.expand(c, expanded));\n }\n\n onContextMenu(e: NzFormatEmitEvent) {\n if (this.menu) {\n this.menuNodeDs = { node: e.node?.origin[\"data\"], level: e.node?.level };\n this.menus().forEach((m, i) => {\n this.bindWithConfig(this.options.menus()[i], { options: m, snapshot: true, tempDataSource: this.menuNodeDs });\n });\n this.menuService.create(e.event as MouseEvent, this.menu);\n }\n }\n\n menuClick(options: TreeNodeMenuOptions) {\n if (options.confirm()) {\n this.modal.confirm({\n nzContent: options.confirmText(),\n nzOnOk: () => {\n this.triggeEvents(\"treeNodeMenuClick\", this.menuNodeDs, options.triggeEvents()).subscribe();\n }\n })\n } else {\n this.triggeEvents(\"treeNodeMenuClick\", this.menuNodeDs, options.triggeEvents()).subscribe();\n }\n }\n\n onInputTreeChange() {\n const value = this.treeNodeToValue((this.options.multiple() ? this.treeSelect?.getCheckedNodeList() : this.treeSelect?.getSelectedNodeList()) ?? []);\n this.value.set(value);\n this.onChange?.(this.value());\n }\n\n onCascaderChange(v: any[]) {\n const value = this.fullArrayToValue(this.options.multiple() ? v.map((e: any[]) => this.treeNodeMap().get(e[e.length - 1])!['data']) : v.length ? [this.treeNodeMap().get(v[v.length - 1])!['data']] : []);\n this.value.set(value);\n this.onChange?.(this.value());\n }\n\n}\n","@switch (options.type() ) {\n@case (\"tree\") {\n<div class=\"tree-box\">\n @if (options.title()) {\n <div class=\"title-container\">{{options.title()}}</div>\n }\n @if (options.showSearch()) {\n <div class=\"search-inp\">\n <input type=\"text\" nz-input placeholder=\"搜索\" [(ngModel)]=\"searchValue\" nzVariant=\"borderless\" nzSize=\"small\" />\n </div>\n }\n <div class=\"tree-body\">\n <nz-tree [nzSearchValue]=\"searchValue()??''\" [nzTreeTemplate]=\"optionItem\"\n [nzHideUnMatched]=\"options.hideUnMatched()\" [nzData]=\"treeData()\" nzBlockNode\n [nzSelectedKeys]=\"selectedKeys()\" [nzMultiple]=\"options.multiple()\" [nzShowLine]=\"options.showLine()\"\n (nzClick)=\"nodeClick($event)\" (nzContextMenu)=\"onContextMenu($event)\">\n </nz-tree>\n </div>\n</div>\n<nz-dropdown-menu>\n <ul nz-menu>\n @for (m of menus(); track $index) {\n @if (m.inuse()) {\n <li nz-menu-item [nzDisabled]=\"m.disabled()\" [nzDanger]=\"m.danger()\" (click)=\"menuClick(m)\">\n @if (m.icon()) {\n <ng-container [axisDynamic]=\"m.icon()\"></ng-container>\n }\n {{m.title()}}\n </li>\n }\n }\n </ul>\n</nz-dropdown-menu>\n}\n@case (\"input-tree\") {\n<nz-tree-select style=\"width: 100%;\" [nzNodes]=\"treeData()\" [nzAllowClear]=\"options.allowClear()\"\n [nzSize]=\"options.size()\" [nzVariant]=\"options.variant()\" [nzShowSearch]=\"options.showSearch()\"\n [nzShowLine]=\"options.showLine()\" [nzPlaceHolder]=\"options.placeHolder()\" [nzTreeTemplate]=\"optionItem\"\n [nzCheckable]=\"options.multiple()\" [nzMultiple]=\"options.multiple()\"\n [nzMaxTagCount]=\"options.maxSelectCount()??9999999\" [nzHideUnMatched]=\"options.hideUnMatched()\"\n [nzDisabled]=\"options.disabled() || options.readonly()\" [(ngModel)]=\"selectValue\" (ngModelChange)=\"onInputTreeChange()\"></nz-tree-select>\n}\n@case (\"cascader\"){\n<nz-cascader style=\"width: 100%;\" [nzOptions]=\"treeData()\" [(ngModel)]=\"selectValue\"\n (ngModelChange)=\"onCascaderChange($event)\" [nzMultiple]=\"options.multiple()\"\n [nzMaxTagCount]=\"options.maxSelectCount()??9999999\" [nzAllowClear]=\"options.allowClear()\" [nzChangeOn]=\"changeOn\"\n [nzDisabled]=\"options.disabled() || options.readonly()\" nzLabelProperty=\"title\" [nzPlaceHolder]=\"options.placeHolder()\"\n [nzShowSearch]=\"options.showSearch()\" [nzSize]=\"options.size()\" nzValueProperty=\"key\"\n [nzVariant]=\"options.variant()\" [nzExpandTrigger]=\"options.expandTrigger()\"\n [nzOptionRender]=\"optionItem\"></nz-cascader>\n}\n}\n<ng-template #optionItem let-option>\n <div class=\"node-item\" nz-flex nzGap=\"4px\">\n @if (option.icon) {\n <ng-container [axisDynamic]=\"option.icon\"></ng-container>\n }\n <span [innerHTML]=\"option.title | nzHighlight: searchValue()??'' : 'i' : 'highlight'\"></span>\n @if (options.type() != 'cascader' && option.children.length) {\n <a class=\"expand-button\" nz-button nzType=\"text\" nzSize=\"small\" nzShape=\"circle\"\n (click)=\"$event.stopPropagation(); expand(option,!hasExpanded(option))\">\n <nz-icon [nzType]=\"hasExpanded(option)?'shrink':'arrows-alt'\"></nz-icon>\n </a>\n }\n </div>\n</ng-template>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './tree-selector';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-axis-appforge-axis-components-tree-selector.mjs","sources":["../../../axis-components/tree-selector/tree-selector.options.ts","../../../axis-components/tree-selector/tree-selector.ts","../../../axis-components/tree-selector/tree-selector.html","../../../axis-components/tree-selector/ngx-axis-appforge-axis-components-tree-selector.ts"],"sourcesContent":["import { signal } from \"@angular/core\";\nimport { ValueAccessOptions, TriggeEventsOptions } from \"ngx-axis-appforge/core\";\n\nexport class TreeSelectorOptions extends ValueAccessOptions {\n\n\n readonly labelField = signal(\"title\");\n readonly valueField = signal(\"key\");\n readonly selectableField = signal(\"selectable\");\n readonly iconField = signal(\"icon\");\n readonly fullValue = signal(false);\n readonly levelStart = signal(0);\n readonly levelEnd = signal<number | null>(null);\n readonly data = signal<any>(undefined);\n readonly nodeFn = signal<string | undefined>(undefined);\n\n readonly selectAbleLevel = signal<string>(\"\");\n readonly multiple = signal(false);\n readonly maxSelectCount = signal<number | null>(null);\n readonly defaultFirst = signal(false);\n readonly allowClear = signal(true);\n\n readonly type = signal<\"tree\" | \"input-tree\" | \"cascader\">(\"tree\");\n readonly showSearch = signal(true);\n readonly hideUnMatched = signal(true);\n readonly showLine = signal(false);\n\n readonly title = signal(\"\");\n readonly expandedLevel = signal<number | null>(null);\n\n readonly placeHolder = signal(\"\");\n readonly size = signal<'large' | 'small' | 'default'>(\"default\");\n readonly variant = signal<'outlined' | 'borderless' | 'filled' | 'underlined'>(\"outlined\");\n\n readonly expandTrigger = signal<'click' | 'hover'>(\"click\");\n\n readonly menus = signal<TreeNodeMenuOptions[]>([]);\n\n}\n\nexport class TreeNodeMenuOptions {\n readonly inuse = signal(true);\n readonly title = signal(\"未命名\");\n readonly icon = signal<any>(undefined);\n readonly danger = signal(false);\n readonly confirm = signal(false);\n readonly confirmText = signal(\"是否确认?\");\n readonly disabled = signal(false);\n readonly triggeEvents = signal<TriggeEventsOptions | undefined>(undefined);\n}","import { ChangeDetectionStrategy, Component, computed, effect, inject, model, signal, untracked, ViewChild } from '@angular/core';\nimport { TreeNodeMenuOptions, TreeSelectorOptions } from './tree-selector.options';\nimport { copy, DynamicDirective, recursionArray, ValueAccess } from 'ngx-axis-appforge/core';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzTreeModule, NzTreeNodeOptions } from 'ng-zorro-antd/tree';\nimport { NzContextMenuService, NzDropdownMenuComponent, NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { FormsModule } from '@angular/forms';\nimport { NzFormatEmitEvent, NzTreeNode, NzTreeNodeKey } from 'ng-zorro-antd/core/tree';\nimport { NzHighlightPipe } from 'ng-zorro-antd/core/highlight';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzFlexModule } from 'ng-zorro-antd/flex';\nimport { NzTreeSelectComponent, NzTreeSelectModule } from 'ng-zorro-antd/tree-select';\nimport { NzCascaderModule, NzCascaderOption } from 'ng-zorro-antd/cascader';\nimport { NzModalModule, NzModalService } from 'ng-zorro-antd/modal';\n\n@Component({\n selector: 'axis-tree-selector',\n imports: [NzInputModule, DynamicDirective, NzTreeModule, NzDropDownModule, FormsModule, NzHighlightPipe, NzIconModule, NzButtonModule, NzFlexModule, NzTreeSelectModule, NzCascaderModule, NzModalModule],\n templateUrl: './tree-selector.html',\n styleUrl: './tree-selector.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TreeSelector extends ValueAccess<TreeSelectorOptions> {\n\n constructor() {\n super();\n effect(() => {\n let treeData = this.treeData();\n untracked(() => {\n if (this.options.defaultFirst() && (this.options.multiple() && !this.value()?.length || !this.options.multiple() && !this.value())) {\n let fullArray: any[] = [];\n recursionArray(treeData, {\n before: n => {\n if (n.selectable) {\n fullArray.push(n.data);\n return false;\n }\n return undefined;\n }\n });\n const value = this.fullArrayToValue(fullArray);\n if (value !== undefined) {\n this.setInitValue(value);\n }\n }\n });\n });\n effect(() => {\n if (this.treeNodeMap()) {\n untracked(() => this.valueToComponentValue());\n }\n });\n }\n\n @ViewChild(NzTreeSelectComponent)\n private treeSelect?: NzTreeSelectComponent;\n\n @ViewChild(NzDropdownMenuComponent)\n private menu?: NzDropdownMenuComponent;\n private readonly menuService = inject(NzContextMenuService);\n private readonly modal = inject(NzModalService);\n private menuNodeDs?: any;\n\n override options: TreeSelectorOptions = new TreeSelectorOptions();\n readonly menus = computed(() => this.options.menus().map(_ => new TreeNodeMenuOptions()));\n readonly searchValue = model<string>();\n readonly treeData = computed(() => this.buildTreeData());\n readonly selectedKeys = signal<NzTreeNodeKey[]>([]);\n readonly selectValue = model<any>();\n readonly treeNodeMap = computed(() => {\n const map = new Map<NzTreeNodeKey, NzTreeNodeOptions>();\n recursionArray(this.treeData(), {\n before: n => {\n map.set(n.key, n);\n }\n });\n return map;\n });\n @ViewChild(\"inputTree\")\n readonly inputTree?: NzTreeSelectComponent;\n\n readonly changeOn = (option: NzCascaderOption, level: number): boolean => {\n return option['selectable'];\n }\n\n override setInitValue(value: any): void {\n super.setInitValue(value);\n this.valueToComponentValue();\n }\n\n override writeValue(value: any): void {\n super.writeValue(value);\n this.valueToComponentValue();\n }\n\n private buildTreeData(): NzTreeNodeOptions[] {\n if (!this.options.data()) {\n return [];\n }\n let data = copy(this.options.data(), true);\n if (this.options.levelStart() < 0) {\n data = [{\n [this.options.labelField()]: \"全部\",\n [this.options.valueField()]: \"\",\n children: data,\n }];\n }\n const selectableLevels = this.options.selectAbleLevel()?.split(\",\").filter(l => l).map(l => +l.trim());\n const treeData: NzTreeNodeOptions[] = [];\n recursionArray(data, {\n before: (n, l, parent) => {\n const nodeData: any = {};\n if (this.options.nodeFn()) {\n this.runFn(this.options.nodeFn()!, { node: n, level: l });\n }\n for (const key in n) {\n if (key !== \"children\") {\n nodeData[key] = n[key];\n delete n[key];\n }\n }\n if (l >= this.options.levelStart() || l <= (this.options.levelEnd() ?? Infinity)) {\n if (l == this.options.levelStart()) {\n treeData.push(n);\n }\n if (l == (this.options.levelEnd() ?? Infinity) || (this.options.type() == 'cascader' && selectableLevels?.length && selectableLevels[selectableLevels.length - 1] == l)) {\n n.isLeaf = true;\n n.expanded = false;\n delete n.children;\n } else {\n n.isLeaf = !n.children?.length;\n n.expanded = l < (this.options.expandedLevel() ?? Infinity);\n }\n n.selectable = nodeData[this.options.selectableField()] ?? true;\n if (n.selectable && this.options.selectAbleLevel()) {\n if (!selectableLevels.includes(l)) {\n n.selectable = false;\n }\n }\n n.key = nodeData[this.options.valueField()];\n n.title = nodeData[this.options.labelField()];\n n.icon = nodeData[this.options.iconField()];\n n.keys = (parent?.keys ?? []).concat([n.key]);\n n.data = nodeData;\n n.disableCheckbox = !n.selectable;\n }\n }\n }, this.options.levelStart() < 0 ? -1 : 0);\n return treeData;\n }\n\n private valueToComponentValue() {\n let value = this.value();\n if (value != null) {\n if (!this.options.multiple()) {\n value = [value];\n }\n if (this.options.fullValue()) {\n value = value.map((e: any) => e[this.options.valueField()]);\n }\n switch (this.options.type()) {\n case \"tree\":\n this.selectedKeys.set([...value]);\n break;\n case \"input-tree\":\n if (!this.options.multiple()) {\n value = value[0];\n }\n this.selectValue.set(value);\n break;\n case \"cascader\":\n value = value.map((e: any) => this.treeNodeMap().get(e)?.['keys']);\n if (!untracked(this.options.multiple)) {\n value = value[0];\n }\n this.selectValue.set(value);\n break;\n }\n } else {\n switch (this.options.type()) {\n case \"tree\":\n this.selectedKeys.set([]);\n break;\n case \"input-tree\":\n this.selectValue.set(null);\n break;\n case \"cascader\":\n this.selectValue.set(null);\n break;\n }\n }\n }\n\n nodeClick(e: NzFormatEmitEvent) {\n if (!e.node!.isSelectable) {\n if (e.node && !e.node.isLeaf) {\n e.node!.isExpanded = !e.node!.isExpanded;\n }\n return;\n }\n if (this.options.readonly() || this.options.disabled()) {\n e.node!.isSelected = false;\n return;\n }\n const selectNodes = e.selectedKeys?.filter(r => {\n if (!this.options.multiple()) {\n r.isSelected = r.key == e.node?.key;\n }\n return r.isSelected;\n }) ?? [];\n this.selectedKeys.set(selectNodes.map(r => r.key));\n const value = this.treeNodeToValue(selectNodes);\n this.value.set(value);\n this.onChange?.(this.value());\n }\n\n internalTreeNode(node: NzTreeNode, e: Event) {\n if (!this.options.multiple() && node.isSelected && !this.options.allowClear()) {\n e.stopPropagation();\n if (this.options.type() == 'input-tree') {\n this.inputTree?.closeDropDown();\n }\n }\n }\n\n private treeNodeToValue(nodes: NzTreeNode[]): any {\n return this.fullArrayToValue(nodes.map(n => n.origin['data']));\n }\n\n private fullArrayToValue(fullArray: any[]): any {\n let value: any = fullArray.map(n => {\n const res: any = {};\n for (const key in n) {\n if (key !== \"children\") {\n res[key] = n[key];\n }\n }\n return res;\n });\n if (!untracked(this.options.fullValue)) {\n value = fullArray.map(r => r[untracked(this.options.valueField)]);\n }\n if (!this.options.multiple()) {\n value = value?.[0];\n }\n return value ?? null;\n }\n\n hasExpanded(node: NzTreeNode): boolean {\n return node.isExpanded || node.children.some(c => this.hasExpanded(c));\n }\n\n expand(node: NzTreeNode, expanded: boolean) {\n node.isExpanded = expanded;\n node.children.forEach(c => this.expand(c, expanded));\n }\n\n onContextMenu(e: NzFormatEmitEvent) {\n if (this.menu) {\n this.menuNodeDs = { node: e.node?.origin[\"data\"], level: e.node?.level };\n this.menus().forEach((m, i) => {\n this.bindWithConfig(this.options.menus()[i], { options: m, snapshot: true, tempDataSource: this.menuNodeDs });\n });\n this.menuService.create(e.event as MouseEvent, this.menu);\n }\n }\n\n menuClick(options: TreeNodeMenuOptions) {\n if (options.confirm()) {\n this.modal.confirm({\n nzContent: options.confirmText(),\n nzOnOk: () => {\n this.triggeEvents(\"treeNodeMenuClick\", this.menuNodeDs, options.triggeEvents()).subscribe();\n }\n })\n } else {\n this.triggeEvents(\"treeNodeMenuClick\", this.menuNodeDs, options.triggeEvents()).subscribe();\n }\n }\n\n onInputTreeChange() {\n const value = this.treeNodeToValue((this.options.multiple() ? this.treeSelect?.getCheckedNodeList() : this.treeSelect?.getSelectedNodeList()) ?? []);\n this.value.set(value);\n this.onChange?.(this.value());\n }\n\n onCascaderChange(v: any[]) {\n const value = this.fullArrayToValue(this.options.multiple() ? v.map((e: any[]) => this.treeNodeMap().get(e[e.length - 1])!['data']) : v.length ? [this.treeNodeMap().get(v[v.length - 1])!['data']] : []);\n this.value.set(value);\n this.onChange?.(this.value());\n }\n\n}\n","@switch (options.type() ) {\n@case (\"tree\") {\n<div class=\"tree-box\">\n @if (options.title()) {\n <div class=\"title-container\">{{options.title()}}</div>\n }\n @if (options.showSearch()) {\n <div class=\"search-inp\">\n <input type=\"text\" nz-input placeholder=\"搜索\" [(ngModel)]=\"searchValue\" nzVariant=\"borderless\" nzSize=\"small\" />\n </div>\n }\n <div class=\"tree-body\">\n <nz-tree [nzSearchValue]=\"searchValue()??''\" [nzTreeTemplate]=\"optionItem\"\n [nzHideUnMatched]=\"options.hideUnMatched()\" [nzData]=\"treeData()\" nzBlockNode\n [nzSelectedKeys]=\"selectedKeys()\" [nzMultiple]=\"options.multiple()\" [nzShowLine]=\"options.showLine()\"\n (nzClick)=\"nodeClick($event)\" (nzContextMenu)=\"onContextMenu($event)\">\n </nz-tree>\n </div>\n</div>\n<nz-dropdown-menu>\n <ul nz-menu>\n @for (m of menus(); track $index) {\n @if (m.inuse()) {\n <li nz-menu-item [nzDisabled]=\"m.disabled()\" [nzDanger]=\"m.danger()\" (click)=\"menuClick(m)\">\n @if (m.icon()) {\n <ng-container [axisDynamic]=\"m.icon()\"></ng-container>\n }\n {{m.title()}}\n </li>\n }\n }\n </ul>\n</nz-dropdown-menu>\n}\n@case (\"input-tree\") {\n<nz-tree-select #inputTree style=\"width: 100%;\" [nzNodes]=\"treeData()\" [nzAllowClear]=\"options.allowClear()\"\n [nzSize]=\"options.size()\" [nzVariant]=\"options.variant()\" [nzShowSearch]=\"options.showSearch()\"\n [nzShowLine]=\"options.showLine()\" [nzPlaceHolder]=\"options.placeHolder()\" [nzTreeTemplate]=\"optionItem\"\n [nzCheckable]=\"options.multiple()\" [nzMultiple]=\"options.multiple()\"\n [nzMaxTagCount]=\"options.maxSelectCount()??9999999\" [nzHideUnMatched]=\"options.hideUnMatched()\"\n [nzDisabled]=\"options.disabled() || options.readonly()\" [(ngModel)]=\"selectValue\"\n (ngModelChange)=\"onInputTreeChange()\"></nz-tree-select>\n}\n@case (\"cascader\"){\n<nz-cascader style=\"width: 100%;\" [nzOptions]=\"treeData()\" [(ngModel)]=\"selectValue\"\n (ngModelChange)=\"onCascaderChange($event)\" [nzMultiple]=\"options.multiple()\"\n [nzMaxTagCount]=\"options.maxSelectCount()??9999999\" [nzAllowClear]=\"options.allowClear()\" [nzChangeOn]=\"changeOn\"\n [nzDisabled]=\"options.disabled() || options.readonly()\" nzLabelProperty=\"title\"\n [nzPlaceHolder]=\"options.placeHolder()\" [nzShowSearch]=\"options.showSearch()\" [nzSize]=\"options.size()\"\n nzValueProperty=\"key\" [nzVariant]=\"options.variant()\" [nzExpandTrigger]=\"options.expandTrigger()\"\n [nzOptionRender]=\"optionItem\"></nz-cascader>\n}\n}\n<ng-template #optionItem let-option>\n <div class=\"node-item\" nz-flex nzGap=\"4px\" (click)=\"internalTreeNode(option, $event)\">\n @if (option.icon) {\n <ng-container [axisDynamic]=\"option.icon\"></ng-container>\n }\n <span [innerHTML]=\"option.title | nzHighlight: searchValue()??'' : 'i' : 'highlight'\"></span>\n @if (options.type() != 'cascader' && option.children.length) {\n <button class=\"expand-button\" nz-button nzType=\"text\" nzSize=\"small\" nzShape=\"circle\"\n (click)=\"$event.stopPropagation(); expand(option,!hasExpanded(option))\">\n <nz-icon [nzType]=\"hasExpanded(option)?'shrink':'arrows-alt'\"></nz-icon>\n </button>\n }\n </div>\n</ng-template>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './tree-selector';\n"],"names":[],"mappings":"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"}
|
|
@@ -1344,10 +1344,108 @@ const dropdownExampleDesc = {
|
|
|
1344
1344
|
id: "axis-components/dropdown#1",
|
|
1345
1345
|
inuse: true,
|
|
1346
1346
|
child: {
|
|
1347
|
-
component: "axis-components/button",
|
|
1348
|
-
id: "axis-components/button#1",
|
|
1349
|
-
inuse: true,
|
|
1350
|
-
|
|
1347
|
+
"component": "axis-components/button",
|
|
1348
|
+
"id": "axis-components/button#1",
|
|
1349
|
+
"inuse": true,
|
|
1350
|
+
"requiredPermissions": null,
|
|
1351
|
+
"triggeEvents": null,
|
|
1352
|
+
"title": "更多",
|
|
1353
|
+
"icon": {
|
|
1354
|
+
"component": "axis-components/icon",
|
|
1355
|
+
"inuse": true,
|
|
1356
|
+
"lib": "antdesign",
|
|
1357
|
+
"theme": "outline",
|
|
1358
|
+
"icon": "down"
|
|
1359
|
+
},
|
|
1360
|
+
"iconPosition": "right",
|
|
1361
|
+
"confirm": false,
|
|
1362
|
+
"confirmText": "是否确认?",
|
|
1363
|
+
"confirmType": "modal",
|
|
1364
|
+
"disabledBtn": false,
|
|
1365
|
+
"styleType": "link",
|
|
1366
|
+
"block": false,
|
|
1367
|
+
"danger": false,
|
|
1368
|
+
"ghost": false,
|
|
1369
|
+
"size": "default",
|
|
1370
|
+
"shape": ""
|
|
1371
|
+
},
|
|
1372
|
+
menu: {
|
|
1373
|
+
"component": "axis-components/menu",
|
|
1374
|
+
"id": "axis-components/menu#1",
|
|
1375
|
+
"items": [
|
|
1376
|
+
{
|
|
1377
|
+
"type": "item",
|
|
1378
|
+
"triggeEvents": {
|
|
1379
|
+
"menuClick": []
|
|
1380
|
+
},
|
|
1381
|
+
"inuse": true,
|
|
1382
|
+
"disabled": false,
|
|
1383
|
+
"title": "菜单项1",
|
|
1384
|
+
"code": null,
|
|
1385
|
+
"danger": false,
|
|
1386
|
+
"placement": "bottomLeft",
|
|
1387
|
+
"triggerSubMenuAction": "hover"
|
|
1388
|
+
},
|
|
1389
|
+
{
|
|
1390
|
+
"type": "item",
|
|
1391
|
+
"inuse": true,
|
|
1392
|
+
"title": "菜单项2"
|
|
1393
|
+
},
|
|
1394
|
+
{
|
|
1395
|
+
"type": "submenu",
|
|
1396
|
+
"inuse": true,
|
|
1397
|
+
"title": "子菜单",
|
|
1398
|
+
"children": [
|
|
1399
|
+
{
|
|
1400
|
+
"type": "item",
|
|
1401
|
+
"triggeEvents": {
|
|
1402
|
+
"menuClick": []
|
|
1403
|
+
},
|
|
1404
|
+
"inuse": true,
|
|
1405
|
+
"disabled": false,
|
|
1406
|
+
"title": "子菜单项1",
|
|
1407
|
+
"code": null,
|
|
1408
|
+
"danger": false,
|
|
1409
|
+
"placement": "bottomLeft",
|
|
1410
|
+
"triggerSubMenuAction": "hover"
|
|
1411
|
+
},
|
|
1412
|
+
{
|
|
1413
|
+
"type": "item",
|
|
1414
|
+
"code": null,
|
|
1415
|
+
"triggeEvents": null,
|
|
1416
|
+
"inuse": true,
|
|
1417
|
+
"disabled": false,
|
|
1418
|
+
"title": "子菜单项2",
|
|
1419
|
+
"danger": true,
|
|
1420
|
+
"confirm": true,
|
|
1421
|
+
"confirmText": "是否确认?",
|
|
1422
|
+
"placement": "bottomLeft",
|
|
1423
|
+
"triggerSubMenuAction": "hover"
|
|
1424
|
+
}
|
|
1425
|
+
]
|
|
1426
|
+
}
|
|
1427
|
+
],
|
|
1428
|
+
"requiredPermissions": null,
|
|
1429
|
+
"triggeEvents": {
|
|
1430
|
+
"menuClick": [
|
|
1431
|
+
{
|
|
1432
|
+
"name": "closeDropdown",
|
|
1433
|
+
"disabled": false,
|
|
1434
|
+
"data": null,
|
|
1435
|
+
"id": "axis-components/dropdown#1",
|
|
1436
|
+
"target": "component"
|
|
1437
|
+
}
|
|
1438
|
+
]
|
|
1439
|
+
},
|
|
1440
|
+
"inuse": true,
|
|
1441
|
+
"style": {
|
|
1442
|
+
"width": "fit-content"
|
|
1443
|
+
},
|
|
1444
|
+
"mode": "vertical",
|
|
1445
|
+
"theme": "light",
|
|
1446
|
+
"selectable": false,
|
|
1447
|
+
"inlineCollapsed": false,
|
|
1448
|
+
"inlineIndent": 24
|
|
1351
1449
|
}
|
|
1352
1450
|
},
|
|
1353
1451
|
}
|