ngx-axis-appforge 1.0.8 → 1.0.9
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/fesm2022/ngx-axis-appforge-axis-components-table-helper.mjs +5 -0
- package/fesm2022/ngx-axis-appforge-axis-components-table-helper.mjs.map +1 -1
- package/fesm2022/ngx-axis-appforge-axis-components-table.mjs +11 -2
- package/fesm2022/ngx-axis-appforge-axis-components-table.mjs.map +1 -1
- package/fesm2022/ngx-axis-appforge-core.mjs +43 -25
- package/fesm2022/ngx-axis-appforge-core.mjs.map +1 -1
- package/package.json +1 -1
- package/types/ngx-axis-appforge-axis-components-table-helper.d.ts +1 -0
- package/types/ngx-axis-appforge-axis-components-table.d.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-axis-appforge-axis-components-table.mjs","sources":["../../../axis-components/table/table.options.ts","../../../axis-components/table/table-setter/table-setter.ts","../../../axis-components/table/table-setter/table-setter.html","../../../axis-components/table/table.ts","../../../axis-components/table/table.html","../../../axis-components/table/ngx-axis-appforge-axis-components-table.ts"],"sourcesContent":["import { signal } from \"@angular/core\";\nimport { DataOptions, } from \"ngx-axis-appforge/core\";\nimport { BaseTableFieldOptions, BaseTableOptions, ExpandableTableOptions, SelectableTableOptions, StatisticTableFieldOptions, StatisticTableOptions } from 'ngx-axis-appforge/axis-components/table-helper'\n\nexport class TableOptions extends DataOptions implements BaseTableOptions, SelectableTableOptions, ExpandableTableOptions, StatisticTableOptions {\n readonly keyField = signal(\"\");\n readonly showExpand = signal(false);\n readonly expandMode = signal<\"custom\" | \"tree\">(\"custom\");\n readonly treeChildrenFun = signal(\"\");\n readonly showTableTitleSet = signal(false);\n readonly tableSetCacheKey = signal(\"\");\n readonly size = signal<'middle' | 'small' | 'default'>(\"middle\");\n readonly showOrder = signal(true);\n readonly heightExpanded = signal(false);\n readonly showDataSize = signal(true);\n readonly bordered = signal(false);\n readonly outerBordered = signal(false);\n readonly width = signal<number | undefined>(undefined);\n readonly actionsFieldWidth = signal<number | null>(null);\n readonly showCheckbox = signal(false);\n readonly checkeOnRowClick = signal(false);\n readonly singleCheck = signal(false);\n readonly checkboxLinkageForExpand = signal(false);\n readonly checkedKeys = signal(undefined);\n readonly disableCheckboxFn = signal<string | undefined>(undefined);\n readonly defaultSelectFirstRow = signal(false);\n readonly showStatistic = signal(false);\n readonly statisticTitle = signal(\"合计\");\n readonly showPagination = signal(true);\n readonly virtualScroll = signal(false);\n readonly virtualItemSize = signal(32);\n readonly pageSize = signal(10);\n readonly showSizeChanger = signal(true);\n readonly pageSizeOptions = signal(\"10,20,50,100\");\n readonly useBackEndPaging = signal(false);\n readonly customExportData = signal(false);\n readonly importLimitLength = signal<number | null>(null);\n readonly importStartLine = signal(2);\n readonly importTemplateFileName = signal(\"数据导入模版\");\n readonly importExampleData = signal<any>([]);\n readonly fields = signal<any[]>([]);\n readonly rowActions = signal<any[]>([]);\n readonly expandRow = signal<any>(undefined);\n}\n\nexport class TableFieldOptions implements BaseTableFieldOptions, StatisticTableFieldOptions {\n loop = false\n loopTarget: any[] | undefined = undefined;\n fieldFunForLoop: string | undefined = undefined;\n readonly inuse = signal(true);\n readonly field = signal(\"unknown\");\n readonly title = signal(\"未命名\");\n readonly export = signal(true);\n readonly exportFlowChild = signal(true);\n readonly exportFn = signal<string | undefined>(undefined);\n readonly import = signal(false);\n readonly importRequired = signal(false);\n readonly importCellType = signal<\"text\" | \"number\">(\"text\");\n readonly importHelp = signal<string | undefined>(undefined);\n readonly sortAble = signal(false);\n readonly sortOrder = signal<\"descend\" | \"ascend\" | null>(null);\n readonly sortPriority = signal<number | null>(null);\n readonly filterAble = signal(false);\n readonly filterMultiple = signal(false);\n readonly width = signal<number | null>(null);\n readonly align = signal<'left' | 'right' | 'center'>(\"left\");\n readonly freezeMode = signal<'none' | 'left' | 'right'>(\"none\");\n readonly groupAble = signal(false);\n readonly groupLevel = signal<number | null>(null);\n readonly statisticAble = signal(false);\n readonly statisticType = signal<\"sum\" | \"average\" | \"max\" | \"min\" | \"custom\">(\"sum\");\n readonly statisticFn = signal<string | undefined>(undefined);\n readonly titleGroup = signal<string | undefined>(undefined);\n readonly child = signal<any>(undefined);\n}","import { ChangeDetectionStrategy, Component, effect, input, model, OnDestroy, output, signal } from '@angular/core';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzGridModule } from 'ng-zorro-antd/grid';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzModalModule } from 'ng-zorro-antd/modal';\nimport { CdkDrag, CdkDragDrop, CdkDropList, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\nimport { TableFieldOptions } from '../table.options';\nimport { NzResizeEvent } from 'ng-zorro-antd/resizable';\nimport { debounceTime, Subject, Subscription } from 'rxjs';\n\n\n@Component({\n selector: 'axis-table-setter',\n imports: [NzIconModule, NzButtonModule, NzModalModule, NzGridModule, CdkDrag, CdkDropList],\n templateUrl: './table-setter.html',\n styleUrl: './table-setter.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableSetter implements OnDestroy {\n\n constructor() {\n effect(() => this.buildFixAndNotFixColumn(), { debugName: \"test\" });\n effect(() => this.onChange.emit([...this.fix()]));\n this.sub = this.saveCacheSubject.pipe(debounceTime(200)).subscribe(v => this.saveCache());\n }\n\n readonly fields = input.required<TableFieldOptions[]>();\n readonly cacheKey = input<string>();\n readonly onChange = output<TableFieldOptions[]>();\n\n readonly modalVisible = model(false);\n readonly fix = signal<TableFieldOptions[]>([]);\n readonly notFix = signal<TableFieldOptions[]>([]);\n\n saveCacheSubject = new Subject<void>();\n cache: { fix: string[], notFix: string[], widths: { [field: string]: number } } = { fix: [], notFix: [], widths: {} };\n sub?: Subscription;\n\n private buildFixAndNotFixColumn(): void {\n this.loadCache();\n const fields = this.fields();\n if (this.cache) {\n const fieldMap = new Map<string, TableFieldOptions>();\n for (const f of fields) {\n fieldMap.set(f.field(), f);\n if (this.cache.widths.hasOwnProperty(f.field())) {\n f.width.set(this.cache.widths[f.field()]);\n }\n }\n this.fix.set(this.cache.fix.filter(f => fieldMap.has(f)).map(f => fieldMap.get(f)!)\n .concat(fields.filter(f => !this.cache!.fix.includes(f.field()) && !this.cache!.notFix.includes(f.field()))));\n this.notFix.set(this.cache.notFix.filter(f => fieldMap.has(f)).map(f => fieldMap.get(f)!));\n } else {\n this.fix.set([...fields]);\n }\n }\n\n private loadCache() {\n if (this.cacheKey()) {\n const cacheStr = localStorage.getItem(this.cacheKey()!);\n if (cacheStr) {\n try {\n this.cache = JSON.parse(cacheStr);\n } catch (_) { }\n }\n }\n }\n\n private saveCache() {\n if (this.cacheKey()) {\n localStorage.setItem(this.cacheKey()!, JSON.stringify(this.cache));\n }\n }\n\n private updateFix(): void {\n this.fix.set([...this.fix()]);\n this.notFix.set([...this.notFix()]);\n if (this.cacheKey()) {\n this.cache.fix = this.fix().map(f => f.field());\n this.cache.notFix = this.notFix().map(f => f.field());\n this.saveCache();\n }\n }\n\n drop(event: CdkDragDrop<TableFieldOptions[], any, any>): void {\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n } else {\n transferArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);\n }\n this.updateFix();\n }\n\n deleteCustom(index: number): void {\n transferArrayItem(this.fix(), this.notFix(), index, this.notFix().length);\n this.updateFix();\n }\n\n addCustom(index: number): void {\n transferArrayItem(this.notFix(), this.fix(), index, this.fix().length);\n this.updateFix();\n }\n\n onResize(field: TableFieldOptions, event: NzResizeEvent) {\n field.width.set(event.width ?? null);\n this.cache.widths[field.field()] = event.width!;\n this.saveCacheSubject.next();\n }\n\n resetDefault() {\n this.fix.set([...this.fields()]);\n this.notFix.set([]);\n if (this.cacheKey()) {\n localStorage.removeItem(this.cacheKey()!);\n }\n }\n\n ngOnDestroy(): void {\n this.sub?.unsubscribe();\n this.saveCacheSubject.unsubscribe();\n }\n}","<a nz-button nzType=\"link\" nzSize=\"small\" (click)=\"modalVisible.set(true)\"\n style=\"margin: 2px;\">\n <nz-icon nzType=\"setting\" nzTheme=\"outline\" />\n 表头设置\n</a>\n<nz-modal [(nzVisible)]=\"modalVisible\" nzTitle=\"表头设置\" nzDraggable [nzOkText]=\"null\" nzCancelText=\"关闭\"\n (nzOnCancel)=\"modalVisible.set(false)\">\n <ng-container *nzModalContent>\n <div nz-row [nzGutter]=\"24\">\n <div nz-col class=\"gutter-row\" [nzSpan]=\"12\">\n <div class=\"container\">\n <p>展示字段<a nz-button nzType=\"link\" (click)=\"resetDefault()\">恢复默认</a></p>\n <div cdkDropList #todoList=\"cdkDropList\" [cdkDropListData]=\"fix()\"\n [cdkDropListConnectedTo]=\"[doneList]\" class=\"list\" (cdkDropListDropped)=\"drop($event)\">\n @for (item of fix(); track item.field(); let i = $index) {\n <div class=\"box\" cdkDrag>\n {{ item.title() }}\n <nz-icon nzType=\"minus-circle\" nzTheme=\"outline\" (click)=\"deleteCustom(i)\" />\n </div>\n }\n </div>\n </div>\n </div>\n <div nz-col class=\"gutter-row\" [nzSpan]=\"12\">\n <div class=\"container\">\n <p>隐藏字段</p>\n <div cdkDropList #doneList=\"cdkDropList\" [cdkDropListData]=\"notFix()\"\n [cdkDropListConnectedTo]=\"[todoList]\" class=\"list\" (cdkDropListDropped)=\"drop($event)\">\n @for (item of notFix(); track item.field(); let i = $index) {\n <div class=\"box\" cdkDrag>\n {{ item.title() }}\n <nz-icon nzType=\"plus-circle\" nzTheme=\"outline\" (click)=\"addCustom(i)\" />\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n</nz-modal>","import { ChangeDetectionStrategy, Component, computed, effect, Inject, Optional, signal, SkipSelf, untracked, ViewChild, WritableSignal } from '@angular/core';\nimport { TableFieldOptions, TableOptions } from './table.options';\nimport { Base, copy, DynamicDirective, EventHandlerOptions, ScopeDirective } from 'ngx-axis-appforge/core';\nimport { NzTableModule } from 'ng-zorro-antd/table';\nimport { FormsModule } from '@angular/forms';\nimport { TableSetter } from './table-setter/table-setter';\nimport { NzResizableModule } from 'ng-zorro-antd/resizable';\nimport { NzFlexModule } from 'ng-zorro-antd/flex';\nimport { DatePipe, DecimalPipe, PercentPipe } from '@angular/common';\nimport { TableFieldDisplayService, TableService, SelectService, ExpandService, StatisticService, AXIS_TABLE_SELECT_TOKEN, ChangeScene } from 'ngx-axis-appforge/axis-components/table-helper'\nimport { debounceTime, filter, map, Observable, of, Subject, take, tap } from 'rxjs';\nimport { utils, WorkSheet } from 'xlsx-js-style';\n\n\n@Component({\n selector: 'axis-table',\n imports: [NzTableModule, ScopeDirective, DynamicDirective, FormsModule, TableSetter, NzResizableModule, NzFlexModule],\n templateUrl: './table.html',\n styleUrl: './table.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [DatePipe, DecimalPipe, PercentPipe, TableFieldDisplayService, TableService, SelectService, ExpandService, StatisticService,\n {\n provide: AXIS_TABLE_SELECT_TOKEN,\n useExisting: SelectService,\n },\n ]\n})\nexport class Table extends Base<TableOptions> {\n\n constructor(public tableFieldDisplayService: TableFieldDisplayService, public tableSvc: TableService<TableOptions, TableFieldOptions>, select: SelectService, public expand: ExpandService, public statistic: StatisticService, @SkipSelf() @Optional() @Inject(AXIS_TABLE_SELECT_TOKEN) parentSelect?: SelectService) {\n super();\n effect(() => {\n this.tableSvc.init({ data: this.options.data, customExportData: this.customExportData, options: this.options, fields: this.fields });\n if (this.options.showCheckbox() && !this.options.singleCheck() && this.options.checkboxLinkageForExpand() && parentSelect && this.getScope()) {\n const key = this.getScope()?.snapshot(\"row\")[parentSelect.keyField];\n this.select = parentSelect!.findSubSelect(key) ?? select;\n } else {\n this.select = select;\n }\n });\n effect(() => {\n this.select.init({ options: this.options, keyField: this.options.keyField(), data: this.options.data, onSelectedChange: () => this.onSelectedChange(), parent: parentSelect, scope: this.getScope(), registToParent: true })\n });\n effect(() => {\n this.expand.init({ options: this.options, keyField: this.options.keyField(), data: this.options.data });\n })\n effect(() => {\n this.statistic.init({ options: this.options, data: this.options.data, fields: this.fields, tableSvc: this.tableSvc });\n })\n effect(() => {\n if (this.tableSvc.useBackEndPaging() && this.options.data()) {\n untracked(() => this.select.refreshCheckedStatus(ChangeScene.refreshHeader));\n }\n })\n effect(() => {\n let i = 0;\n const loopFieldDataMap = new Map<TableFieldOptions, any>();\n const loopFieldOriFieldMap = new Map<TableFieldOptions, string>();\n this.options.fields().forEach((f) => {\n if (f.loop) {\n const oriField = f.field;\n for (const item of this.loopFieldMap().get(f.field)!()) {\n loopFieldDataMap.set(this.oriFields()[i], item);\n loopFieldOriFieldMap.set(this.oriFields()[i], oriField);\n if (f.fieldFunForLoop) {\n f = copy(f);\n f.field = this.getScope()?.runFnWithSnapshot(f.fieldFunForLoop, { loopRow: item });\n }\n this.bindWithConfig(f, { options: this.oriFields()[i], tag: `bindField.${i}`, tempDataSource: { loopRow: item } });\n i++;\n }\n } else {\n this.bindWithConfig(f, { options: this.oriFields()[i], tag: `bindField.${i}` });\n i++;\n }\n });\n this.loopFieldDataMap.set(loopFieldDataMap);\n this.loopFieldOriFieldMap.set(loopFieldOriFieldMap);\n });\n effect(() => {\n clearInterval(this.timer);\n this.refreshScoll();\n if (this.options.heightExpanded()) {\n this.timer = setInterval(() => {\n this.refreshScoll();\n }, 500);\n }\n });\n effect(() => {\n if (this.tableSvc.useBackEndPaging()) {\n this.addSubscribe(this.backendPageParamsChange.pipe(tap(() => this.options.data.set(null)), debounceTime(50)).subscribe(_ => {\n this.triggeEvents(\"backendPageParamsChange\", { pageParams: Object.assign(this.tableSvc.backEndPageParams, this.statistic.backEndPageParams) }).subscribe();\n }));\n this.backendPageParamsChange.next();\n }\n });\n effect(() => {\n this.options.fields().filter(item => item.loop)\n .forEach(item => {\n const s = this.loopFieldMap().get(item.field)!;\n const io = this.getScope()?.dynamicField(item, \"loopTarget\", false);\n if (io?.init !== undefined) {\n s.set(io.init);\n }\n if (io?.obs) {\n this.addSubscribe(io.obs.pipe(filter(v => v !== undefined))\n .subscribe(s.set), `bindFieldLoop.${item.field}`);\n }\n });\n });\n effect(() => {\n this.triggeEvents(\"tableDataChange\", { tableData: this.tableSvc.tableData() });\n });\n }\n\n override options: TableOptions = new TableOptions();\n public select!: SelectService;\n readonly scroll = signal<{ x: string, y: string }>({ x: \"\", y: \"\" });\n readonly oriFields = computed(() => this.buildOriFields());\n readonly fields = computed(() => this.buildFields());\n readonly rowActions = computed(() => this.actionsFieldWidth() > 0 ? this.options.rowActions() : []);\n readonly actionsFieldWidth = computed(() => this.buildActionsFieldWidth());\n readonly fixFields = signal<TableFieldOptions[]>([]);\n readonly backendPageParamsChange = new Subject<void>();\n readonly customExportData = signal<any[] | undefined>(undefined);\n readonly customExportDataSubject = new Subject<any[]>();\n timer?: number;\n\n readonly loopFieldMap = computed(() => {\n const loopFieldMap = new Map<string, WritableSignal<any[]>>();\n this.options.fields().filter(item => item.loop)\n .forEach(item => {\n loopFieldMap.set(item.field, signal([]));\n });\n return loopFieldMap;\n });\n readonly loopFieldDataMap = signal<Map<TableFieldOptions, any>>(new Map());\n readonly loopFieldOriFieldMap = signal<Map<TableFieldOptions, string>>(new Map());\n\n override callFunction<T>(name: String, args?: any): T | undefined {\n switch (name) {\n case \"exportExcel\":\n return this.exportExcel() as T;\n default:\n return undefined;\n }\n }\n\n resizeHandleOffsetX(field: TableFieldOptions): number {\n if (field.sortAble() && field.filterAble()) {\n return 42;\n } else if (field.sortAble()) {\n return 22;\n } else if (field.filterAble()) {\n return 28;\n }\n return 0;\n }\n\n @ViewChild(TableSetter)\n tableSetter?: TableSetter;\n\n trackByKeyField = (i: number, data: any): any => {\n return data[this.options.keyField()];\n }\n\n private buildOriFields(): TableFieldOptions[] {\n const fields: TableFieldOptions[] = [];\n this.options.fields().forEach(f => {\n if (f.loop) {\n for (const _ of this.loopFieldMap().get(f.field)!()) {\n fields.push(new TableFieldOptions());\n }\n } else {\n fields.push(new TableFieldOptions());\n }\n });\n return fields;\n }\n\n private buildFields(): TableFieldOptions[] {\n return this.options.showTableTitleSet() ? this.fixFields() : this.oriFields();\n }\n\n private buildActionsFieldWidth(): number {\n if (this.options.actionsFieldWidth() == 0 || this.options.rowActions().length == 0) {\n return 0;\n }\n return this.options.actionsFieldWidth() ?? this.options.rowActions().length * 45 + 16;\n }\n\n private refreshScoll() {\n let x = this.options.width() ?? 0;\n if (this.options.width() == undefined) {\n if (this.options.showCheckbox()) {\n x += this.tableSvc.leaderFieldWidth();\n }\n if (this.options.showExpand()) {\n x += this.tableSvc.leaderFieldWidth();\n }\n if (this.options.showOrder()) {\n x += this.tableSvc.leaderFieldWidth();\n }\n this.tableSvc.displayFields().forEach(f => {\n if (f.width()) {\n x += f.width()!;\n } else {\n x += 120;\n }\n });\n x += this.actionsFieldWidth();\n }\n let y = \"\";\n if (this.options.heightExpanded()) {\n const element = this.elementRef.nativeElement as HTMLElement;\n const table = element.querySelector(\"nz-table\");\n const head = element.querySelector(\"table[nz-table-content]>thead.ant-table-thead\");\n const headRect = head?.getBoundingClientRect();\n const innerTableRect = head?.parentElement?.parentElement?.parentElement?.getBoundingClientRect();\n const outterTableRect = table?.getBoundingClientRect();\n let tableBody;\n if (head?.parentElement?.parentElement?.nextElementSibling?.classList.contains(\"ant-table-body\")) {\n tableBody = head?.parentElement?.parentElement?.nextElementSibling?.firstElementChild;\n } else if (head?.nextElementSibling?.classList.contains(\"ant-table-tbody\")) {\n tableBody = head?.nextElementSibling;\n } else if (head?.nextElementSibling?.nextElementSibling?.classList.contains(\"ant-table-tbody\")) {\n tableBody = head?.nextElementSibling?.nextElementSibling;\n }\n if (headRect && tableBody) {\n // scroolY = 视口高度(window.innerHeight) - 表头底部位置(headRect.bottom) - 表尾部高度(outterTableRect.bottom - innerTableRect.bottom)\n let scroolY = window.innerHeight - (headRect?.bottom ?? 0) - (outterTableRect?.bottom ?? 0) + (innerTableRect?.bottom ?? 0);\n if (scroolY < tableBody.clientHeight) {\n y = `${scroolY}px`;\n }\n }\n }\n this.scroll.set({ x: x + \"px\", y: y });\n }\n\n onPageIndexChange() {\n this.backendPageParamsChange.next();\n }\n\n onPageSizeChange() {\n this.tableSvc.clearCursorMarks();\n this.backendPageParamsChange.next();\n }\n\n sortChange() {\n this.backendPageParamsChange.next();\n this.tableSvc.sortChange();\n }\n\n onSelectedChange() {\n if (this.hasEventHandler(\"onSelectedChange\")) {\n this.triggeEvents(\"onSelectedChange\", { selectedRows: this.select.selectedRows() }).subscribe();\n }\n }\n\n rowClick(e: MouseEvent, row: any) {\n const isInput = (e.target as HTMLElement).matches(\n 'input:not([disabled]), textarea:not([disabled]), [contenteditable=\"true\"]'\n );\n if (!isInput && this.options.showCheckbox() && this.options.checkeOnRowClick()) {\n this.select.toggleChecked(row);\n }\n }\n\n exportExcel(): Observable<WorkSheet> {\n const fields = this.fields().filter(f => f.export());\n const fieldMap = new Map<String, TableFieldOptions>();\n for (const f of fields) {\n fieldMap.set(f.field(), f);\n }\n let dataObs: Observable<any[]>;\n if (this.options.customExportData()) {\n dataObs = this.customExportDataSubject.pipe(take(1), tap(data => this.customExportData.set(data)), map(_ => copy(this.tableSvc.tableDataForExport(), true)));\n this.triggeEvents(\"loadCustomExportData\").subscribe();\n } else if (this.options.useBackEndPaging()) {\n dataObs = of(copy(this.options.data().rows, true) as any[]);\n } else {\n dataObs = of(copy(this.tableSvc.tableData(), true) as any[]);\n }\n return dataObs.pipe(\n map(data => {\n const insertDatas: { index: number, row: any }[] = [];\n for (let i = 0; i < data.length; i++) {\n const row = data[i];\n if (this.tableSvc.isGroupEndForExport(i, row)) {\n const insertRow: any = this.statistic.statisticGroupMapForExport()[this.tableSvc.getGroupValueForExport(row)];\n const groupField = this.tableSvc.groupAbleFieldsForExport()[0]!;\n if (groupField.field() == fields[0].field()) {\n insertRow[groupField.field()] = `${row[groupField.field()]}(${this.options.statisticTitle()})`;\n } else {\n insertRow[fields[0].field()] = this.options.statisticTitle();\n insertRow[groupField.field()] = row[groupField.field()];\n }\n insertDatas.unshift({ index: i + 1, row: insertRow });\n }\n for (const field of fields) {\n let loopRow;\n if (this.loopFieldDataMap().has(field)) {\n loopRow = this.loopFieldDataMap().get(field);\n }\n if (field.exportFlowChild()) {\n row[field.field()] = this.tableFieldDisplayService.getFieldDisplayText(field, row, loopRow);\n } else if (field.exportFn()) {\n row[field.field()] = this.getScope()?.runFnWithSnapshot(field.exportFn(), { row, loopRow });\n }\n }\n for (const f of Object.keys(row)) {\n if (!fieldMap.has(f)) {\n delete row[f];\n }\n }\n }\n for (const r of insertDatas) {\n data.splice(r.index, 0, r.row);\n }\n const headerRow: any = {};\n for (const field of fields) {\n headerRow[field.field()] = field.title();\n }\n data.unshift(headerRow);\n if (this.options.showStatistic()) {\n const statisticRow: any = { ...this.statistic.statisticMapForExport() };\n if (fields.length && !fields[0].statisticAble()) {\n statisticRow[fields[0].field()] = this.options.statisticTitle();\n }\n data.push(statisticRow);\n }\n const ws = utils.json_to_sheet(data, { header: fields.map(f => f.field()), skipHeader: true });\n const merges: any[] = [];\n for (const [field, group] of this.tableSvc.rowsGroupMapForExport()) {\n const c = fields.findIndex(f => f.field() == field);\n if (c == -1) {\n continue;\n }\n for (const indexs of group.values()) {\n let offset = 0;\n for (let i = insertDatas.length - 1; i >= 0; i--) {\n if (indexs[indexs.length - 1] < insertDatas[i].index) {\n break;\n }\n offset++;\n }\n merges.push({ s: { c, r: indexs[0] + 1 + offset }, e: { c, r: indexs[indexs.length - 1] + 1 + offset } });\n }\n }\n ws['!merges'] = merges;\n return ws;\n }));\n }\n\n override onEvents(e: EventHandlerOptions<any>): Observable<boolean> | undefined {\n const obs = super.onEvents?.(e);\n if (obs) {\n return;\n }\n switch (e.name) {\n case \"setCustomExportData\":\n this.customExportDataSubject.next(e.data.data);\n return of(true);\n }\n return undefined;\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this.select.close();\n clearInterval(this.timer);\n }\n}\n","@if (options.showTableTitleSet()) {\n<axis-table-setter [fields]=\"oriFields()\" [cacheKey]=\"options.tableSetCacheKey()\"\n (onChange)=\"fixFields.set($event)\"></axis-table-setter>\n}\n<nz-table #table [nzSize]=\"options.size()\" [nzData]=\"tableSvc.rows()??[]\" [nzLoading]=\"!options.data()\"\n [nzBordered]=\"options.bordered()\" [nzOuterBordered]=\"options.outerBordered()\"\n [nzShowPagination]=\"options.showPagination()\"\n [nzFrontPagination]=\"options.showPagination() && !options.useBackEndPaging()\" [nzTotal]=\"tableSvc.rowtotal()\"\n [(nzPageSize)]=\"options.pageSize\" [nzShowSizeChanger]=\"options.showSizeChanger()\"\n [nzPageSizeOptions]=\"tableSvc.pageSizeOptions()\" [nzShowTotal]=\"options.showDataSize()?totalRange:null\"\n [nzScroll]=\"scroll()\" (nzPageIndexChange)=\"onPageIndexChange()\" (nzPageSizeChange)=\"onPageSizeChange()\"\n [(nzPageIndex)]=\"tableSvc.pageIndex\" [nzVirtualItemSize]=\"options.virtualItemSize()\"\n [nzVirtualForTrackBy]=\"trackByKeyField\">\n <thead>\n <tr>\n @if (options.showCheckbox()) {\n @if (!options.checkboxLinkageForExpand() && !options.singleCheck()) {\n <th nzLeft [nzChecked]=\"select.headerChecked()!='none'\"\n [nzIndeterminate]=\"select.headerChecked()=='indeterminate' || (select.headerChecked()=='checked' && tableSvc.useBackEndPaging())\"\n (nzCheckedChange)=\"select.onAllChecked($event)\" nzAlign=\"center\"\n [nzWidth]=\"tableSvc.leaderFieldWidth()-10+'px'\">\n </th>\n }@else {\n <th nzLeft [nzWidth]=\"tableSvc.leaderFieldWidth()-10+'px'\"></th>\n }\n }\n @if (options.showExpand()) {\n <th nzLeft nzAlign=\"center\" [nzWidth]=\"tableSvc.leaderFieldWidth()-15+'px'\"></th>\n }\n @if (options.showOrder()) {\n <th nzAlign=\"center\" [nzWidth]=\"tableSvc.leaderFieldWidth()+'px'\">序号</th>\n }\n @for (f of tableSvc.displayFields(); track f.field();let i=$index) {\n <th [attr.data-field]=\"loopFieldOriFieldMap().get(f)??f.field()\" nz-resizable nzBounds=\"window\"\n [nzDisabled]=\"!options.showTableTitleSet() || !f.width()\"\n [nzWidth]=\"f.width() == null ?null:f.width()+'px'\" (nzResize)=\"tableSetter?.onResize(f,$event)\"\n [nzShowSort]=\"tableSvc.fieldSortAble(f)\" [nzSortDirections]=\"tableSvc.fieldSortDirections(f)\"\n [nzSortFn]=\"tableSvc.fieldsControlsMap()[f.field()]?.sortFn\" [(nzSortOrder)]=\"f.sortOrder\"\n [nzSortPriority]=\"tableSvc.fieldSortPriority(f)\"\n [nzShowFilter]=\"f.filterAble() && !options.useBackEndPaging()\" (nzSortOrderChange)=\"sortChange()\"\n [nzFilters]=\"tableSvc.fieldsControlsMap()[f.field()]?.filterItems ?? []\"\n [nzFilterFn]=\"tableSvc.fieldsControlsMap()[f.field()]?.filterFn\"\n (nzFilterChange)=\"tableSvc.filterChange(f.field(),$event)\" [nzFilterMultiple]=\"f.filterMultiple()\"\n [nzAlign]=\"f.align()\" [nzLeft]=\"f.freezeMode()=='left'\" [nzRight]=\"f.freezeMode()=='right'\">\n <span>\n {{f.title()}}\n @if(options.showTableTitleSet()){\n <nz-resize-handle [style.transform]=\"`translateX(${resizeHandleOffsetX(f)}px)`\" nzDirection=\"right\"\n (click)=\"$event.stopPropagation()\">\n <div class=\"resize-trigger\"></div>\n </nz-resize-handle>\n }\n </span>\n </th>\n }\n @if (rowActions().length)\n {\n <th nzRight nzAlign=\"center\" [nzWidth]=\"actionsFieldWidth()+'px'\" data-rowactions>操作</th>\n }\n </tr>\n </thead>\n <tbody>\n @if (!options.showPagination() && options.virtualScroll()) {\n <ng-template nz-virtual-scroll let-data let-i=\"index\">\n </ng-template>\n }@else {\n @for (trow of table.data; track options.keyField()?trow[options.keyField()]:trow;let i=$index) {\n @for (data of expand.getListForExpanded(trow); track options.keyField()?data[options.keyField()]:data) {\n <tr (click)=\"rowClick($event,data)\" [axisScope]=\"options.id+'.row'\" scopeName=\"表格行\"\n [dataSources]=\"[{name:'row',type:'local',data:data}]\"\n [class.checkedRow]=\"select.setOfCheckedId().has(data[options.keyField()])\">\n @if (options.showCheckbox()) {\n <td nzLeft [nzChecked]=\"select.setOfCheckedId().has(data[options.keyField()])\"\n [nzIndeterminate]=\"select.setOfIndeterminateId().has(data[options.keyField()])\"\n [nzDisabled]=\"select.setOfDisabledId().has(data[options.keyField()])\"\n (nzCheckedChange)=\"select.onItemChecked(data, $event)\" nzAlign=\"center\"></td>\n }\n @if (options.showExpand()) {\n @if(options.expandMode() == \"tree\" && !expand.nodeMap().get(data[options.keyField()])?.children?.length){\n <td nzLeft></td>\n }@else{\n <td nzLeft [nzExpand]=\"expand.expandedSet.has(data[options.keyField()])\"\n (nzExpandChange)=\"expand.onExpandChange(data[options.keyField()],$event)\"></td>\n }\n }\n @if (options.showOrder()) {\n <td nzAlign=\"center\">{{(table.nzPageIndex-1) * table.nzPageSize + i+1}}</td>\n }\n @for (f of tableSvc.displayFields(); track f.field()) {\n <td [attr.rowspan]=\"tableSvc.rowspan(f,i,table.nzPageIndex,table.nzPageSize,data)\"\n [nzLeft]=\"f.freezeMode()=='left'\" [attr.data-field]=\"f.field()\" [nzRight]=\"f.freezeMode()=='right'\"\n [nzAlign]=\"f.align()\">\n @if (f.child()) {\n @if(loopFieldDataMap().has(f)){\n <ng-container [axisScope]=\"options.id+'.fields.'+f.field()+'.row.loop'\" scopeName=\"列循环\"\n [dataSources]=\"[{name:'loopRow',type:'local',data:loopFieldDataMap().get(f)}]\">\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n </ng-container>\n }@else{\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }\n }@else {\n {{data[f.field()]}}\n }\n </td>\n }\n @if (rowActions().length) {\n <td nzRight>\n <div nz-flex nzJustify=\"space-evenly\" data-rowactions>\n @for (a of rowActions(); track a.id) {\n <ng-container [axisDynamic]=\"a\"></ng-container>\n }\n </div>\n </td>\n }\n </tr>\n @if (options.showStatistic() && tableSvc.isGroupEnd(i+(table.nzPageIndex-1)*table.nzPageSize,data)) {\n <tr [axisScope]=\"options.id+'.row'\" scopeName=\"表格行\"\n [dataSources]=\"[{name:'row',type:'local',data:statistic.statisticGroupMap()[tableSvc.getGroupValue(data)]}]\">\n @if (options.showCheckbox()) {\n <td nzLeft></td>\n }\n @if (options.showExpand()) {\n <td nzLeft></td>\n }\n @if(options.showOrder()){\n <td nzAlign=\"right\">\n {{options.statisticTitle()}}\n </td>\n }\n @for (f of tableSvc.displayFields(); track f.field();let i=$index) {\n <td [nzLeft]=\"f.freezeMode()=='left'\" [nzRight]=\"f.freezeMode()=='right'\" [nzAlign]=\"f.align()\">\n @if (f.statisticAble()) {\n @if (f.child()) {\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }@else {\n {{statistic.statisticGroupMap()[tableSvc.getGroupValue(data)]?.[f.field()]}}\n }\n }@else if(i==0 && !options.showOrder()){\n @if(tableSvc.groupAbleFields()[0] == f){\n {{data[f.field()]}}({{options.statisticTitle()}})\n }@else{\n {{options.statisticTitle()}}\n }\n }@else if (f.groupAble() && f == tableSvc.groupAbleFields()[0]) {\n {{data[f.field()]}}\n }\n </td>\n }\n @if (rowActions().length) {\n <td nzRight></td>\n }\n </tr>\n }\n }\n @if (options.showExpand() && options.expandMode() == \"custom\") {\n <tr [axisScope]=\"options.id+'.row'\" scopeName=\"表格行\" [dataSources]=\"[{name:'row',type:'local',data:trow}]\"\n [nzExpand]=\"expand.expandedSet.has(trow[options.keyField()])\" data-expandrow>\n <ng-container [axisDynamic]=\"options.expandRow()\"></ng-container>\n </tr>\n }\n }\n }\n </tbody>\n @if (options.showStatistic()) {\n <tfoot nzSummary>\n <tr [axisScope]=\"options.id+'.row'\" scopeName=\"表格行\"\n [dataSources]=\"[{name:'row',type:'local',data:statistic.statisticMap()}]\">\n @if (options.showCheckbox()) {\n <td nzLeft></td>\n }\n @if (options.showExpand()) {\n <td nzLeft></td>\n }\n @if(options.showOrder()){\n <td nzAlign=\"right\">\n <b>{{options.statisticTitle()}}</b>\n </td>\n }\n @for (f of tableSvc.displayFields(); track f.field();let i=$index) {\n <td [nzLeft]=\"f.freezeMode()=='left'\" [nzRight]=\"f.freezeMode()=='right'\" [nzAlign]=\"f.align()\">\n <b>\n @if (f.statisticAble()) {\n @if (f.child()) {\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }@else {\n {{statistic.statisticMap()[f.field()]}}\n }\n }@else if(i==0 && !options.showOrder()){\n {{options.statisticTitle()}}\n }\n </b>\n </td>\n }\n @if (rowActions().length) {\n <td nzRight></td>\n }\n </tr>\n </tfoot>\n }\n <ng-template #totalRange let-range=\"range\" let-total>\n 共{{ total }}条数据,第{{ range[0] }}-{{ range[1] }}条\n </ng-template>\n</nz-table>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './table';\n"],"names":["i4"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAIM,MAAO,YAAa,SAAQ,WAAW,CAAA;AAChC,IAAA,QAAQ,GAAG,MAAM,CAAC,EAAE,+EAAC;AACrB,IAAA,UAAU,GAAG,MAAM,CAAC,KAAK,iFAAC;AAC1B,IAAA,UAAU,GAAG,MAAM,CAAoB,QAAQ,iFAAC;AAChD,IAAA,eAAe,GAAG,MAAM,CAAC,EAAE,sFAAC;AAC5B,IAAA,iBAAiB,GAAG,MAAM,CAAC,KAAK,wFAAC;AACjC,IAAA,gBAAgB,GAAG,MAAM,CAAC,EAAE,uFAAC;AAC7B,IAAA,IAAI,GAAG,MAAM,CAAiC,QAAQ,2EAAC;AACvD,IAAA,SAAS,GAAG,MAAM,CAAC,IAAI,gFAAC;AACxB,IAAA,cAAc,GAAG,MAAM,CAAC,KAAK,qFAAC;AAC9B,IAAA,YAAY,GAAG,MAAM,CAAC,IAAI,mFAAC;AAC3B,IAAA,QAAQ,GAAG,MAAM,CAAC,KAAK,+EAAC;AACxB,IAAA,aAAa,GAAG,MAAM,CAAC,KAAK,oFAAC;AAC7B,IAAA,KAAK,GAAG,MAAM,CAAqB,SAAS,4EAAC;AAC7C,IAAA,iBAAiB,GAAG,MAAM,CAAgB,IAAI,wFAAC;AAC/C,IAAA,YAAY,GAAG,MAAM,CAAC,KAAK,mFAAC;AAC5B,IAAA,gBAAgB,GAAG,MAAM,CAAC,KAAK,uFAAC;AAChC,IAAA,WAAW,GAAG,MAAM,CAAC,KAAK,kFAAC;AAC3B,IAAA,wBAAwB,GAAG,MAAM,CAAC,KAAK,+FAAC;AACxC,IAAA,WAAW,GAAG,MAAM,CAAC,SAAS,kFAAC;AAC/B,IAAA,iBAAiB,GAAG,MAAM,CAAqB,SAAS,wFAAC;AACzD,IAAA,qBAAqB,GAAG,MAAM,CAAC,KAAK,4FAAC;AACrC,IAAA,aAAa,GAAG,MAAM,CAAC,KAAK,oFAAC;AAC7B,IAAA,cAAc,GAAG,MAAM,CAAC,IAAI,qFAAC;AAC7B,IAAA,cAAc,GAAG,MAAM,CAAC,IAAI,qFAAC;AAC7B,IAAA,aAAa,GAAG,MAAM,CAAC,KAAK,oFAAC;AAC7B,IAAA,eAAe,GAAG,MAAM,CAAC,EAAE,sFAAC;AAC5B,IAAA,QAAQ,GAAG,MAAM,CAAC,EAAE,+EAAC;AACrB,IAAA,eAAe,GAAG,MAAM,CAAC,IAAI,sFAAC;AAC9B,IAAA,eAAe,GAAG,MAAM,CAAC,cAAc,sFAAC;AACxC,IAAA,gBAAgB,GAAG,MAAM,CAAC,KAAK,uFAAC;AAChC,IAAA,gBAAgB,GAAG,MAAM,CAAC,KAAK,uFAAC;AAChC,IAAA,iBAAiB,GAAG,MAAM,CAAgB,IAAI,wFAAC;AAC/C,IAAA,eAAe,GAAG,MAAM,CAAC,CAAC,sFAAC;AAC3B,IAAA,sBAAsB,GAAG,MAAM,CAAC,QAAQ,6FAAC;AACzC,IAAA,iBAAiB,GAAG,MAAM,CAAM,EAAE,wFAAC;AACnC,IAAA,MAAM,GAAG,MAAM,CAAQ,EAAE,6EAAC;AAC1B,IAAA,UAAU,GAAG,MAAM,CAAQ,EAAE,iFAAC;AAC9B,IAAA,SAAS,GAAG,MAAM,CAAM,SAAS,gFAAC;AAC9C;MAEY,iBAAiB,CAAA;IAC1B,IAAI,GAAG,KAAK;IACZ,UAAU,GAAsB,SAAS;IACzC,eAAe,GAAuB,SAAS;AACtC,IAAA,KAAK,GAAG,MAAM,CAAC,IAAI,4EAAC;AACpB,IAAA,KAAK,GAAG,MAAM,CAAC,SAAS,4EAAC;AACzB,IAAA,KAAK,GAAG,MAAM,CAAC,KAAK,4EAAC;AACrB,IAAA,MAAM,GAAG,MAAM,CAAC,IAAI,6EAAC;AACrB,IAAA,eAAe,GAAG,MAAM,CAAC,IAAI,sFAAC;AAC9B,IAAA,QAAQ,GAAG,MAAM,CAAqB,SAAS,+EAAC;AAChD,IAAA,MAAM,GAAG,MAAM,CAAC,KAAK,6EAAC;AACtB,IAAA,cAAc,GAAG,MAAM,CAAC,KAAK,qFAAC;AAC9B,IAAA,cAAc,GAAG,MAAM,CAAoB,MAAM,qFAAC;AAClD,IAAA,UAAU,GAAG,MAAM,CAAqB,SAAS,iFAAC;AAClD,IAAA,QAAQ,GAAG,MAAM,CAAC,KAAK,+EAAC;AACxB,IAAA,SAAS,GAAG,MAAM,CAA8B,IAAI,gFAAC;AACrD,IAAA,YAAY,GAAG,MAAM,CAAgB,IAAI,mFAAC;AAC1C,IAAA,UAAU,GAAG,MAAM,CAAC,KAAK,iFAAC;AAC1B,IAAA,cAAc,GAAG,MAAM,CAAC,KAAK,qFAAC;AAC9B,IAAA,KAAK,GAAG,MAAM,CAAgB,IAAI,4EAAC;AACnC,IAAA,KAAK,GAAG,MAAM,CAA8B,MAAM,4EAAC;AACnD,IAAA,UAAU,GAAG,MAAM,CAA4B,MAAM,iFAAC;AACtD,IAAA,SAAS,GAAG,MAAM,CAAC,KAAK,gFAAC;AACzB,IAAA,UAAU,GAAG,MAAM,CAAgB,IAAI,iFAAC;AACxC,IAAA,aAAa,GAAG,MAAM,CAAC,KAAK,oFAAC;AAC7B,IAAA,aAAa,GAAG,MAAM,CAA+C,KAAK,oFAAC;AAC3E,IAAA,WAAW,GAAG,MAAM,CAAqB,SAAS,kFAAC;AACnD,IAAA,UAAU,GAAG,MAAM,CAAqB,SAAS,iFAAC;AAClD,IAAA,KAAK,GAAG,MAAM,CAAM,SAAS,4EAAC;AAC1C;;MCxDY,WAAW,CAAA;AAEtB,IAAA,WAAA,GAAA;AACE,QAAA,MAAM,CAAC,MAAM,IAAI,CAAC,uBAAuB,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AACnE,QAAA,MAAM,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;IAC3F;AAES,IAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,4EAAuB;IAC9C,QAAQ,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAU;IAC1B,QAAQ,GAAG,MAAM,EAAuB;AAExC,IAAA,YAAY,GAAG,KAAK,CAAC,KAAK,mFAAC;AAC3B,IAAA,GAAG,GAAG,MAAM,CAAsB,EAAE,0EAAC;AACrC,IAAA,MAAM,GAAG,MAAM,CAAsB,EAAE,6EAAC;AAEjD,IAAA,gBAAgB,GAAG,IAAI,OAAO,EAAQ;AACtC,IAAA,KAAK,GAA6E,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;AACrH,IAAA,GAAG;IAEK,uBAAuB,GAAA;QAC7B,IAAI,CAAC,SAAS,EAAE;AAChB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5B,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA6B;AACrD,YAAA,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE;gBACtB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC1B,gBAAA,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE;AAC/C,oBAAA,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC3C;YACF;AACA,YAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAE;AAC/E,iBAAA,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/G,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC;QAC5F;aAAO;YACL,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;QAC3B;IACF;IAEQ,SAAS,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAG,CAAC;YACvD,IAAI,QAAQ,EAAE;AACZ,gBAAA,IAAI;oBACF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;gBACnC;AAAE,gBAAA,OAAO,CAAC,EAAE,EAAE;YAChB;QACF;IACF;IAEQ,SAAS,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,YAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpE;IACF;IAEQ,SAAS,GAAA;AACf,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7B,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AACnC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YAC/C,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YACrD,IAAI,CAAC,SAAS,EAAE;QAClB;IACF;AAEA,IAAA,IAAI,CAAC,KAAiD,EAAA;QACpD,IAAI,KAAK,CAAC,iBAAiB,KAAK,KAAK,CAAC,SAAS,EAAE;AAC/C,YAAA,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC;QAChF;aAAO;YACL,iBAAiB,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC;QAChH;QACA,IAAI,CAAC,SAAS,EAAE;IAClB;AAEA,IAAA,YAAY,CAAC,KAAa,EAAA;QACxB,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC;QACzE,IAAI,CAAC,SAAS,EAAE;IAClB;AAEA,IAAA,SAAS,CAAC,KAAa,EAAA;QACrB,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;QACtE,IAAI,CAAC,SAAS,EAAE;IAClB;IAEA,QAAQ,CAAC,KAAwB,EAAE,KAAoB,EAAA;QACrD,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC;AACpC,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KAAM;AAC/C,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;IAC9B;IAEA,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;AACnB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAG,CAAC;QAC3C;IACF;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE;AACvB,QAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE;IACrC;wGAtGW,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClBxB,ypEAuCW,EAAA,MAAA,EAAA,CAAA,6uBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED1BC,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,6HAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,SAAA,EAAA,SAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,EAAA,QAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,SAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,wcAAE,WAAW,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,4BAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,+BAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAK9E,WAAW,EAAA,UAAA,EAAA,CAAA;kBAPvB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,WACpB,CAAC,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,CAAC,EAAA,eAAA,EAGzE,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,ypEAAA,EAAA,MAAA,EAAA,CAAA,6uBAAA,CAAA,EAAA;;;AEW3C,MAAO,KAAM,SAAQ,IAAkB,CAAA;AAExB,IAAA,wBAAA;AAA2D,IAAA,QAAA;AAAuF,IAAA,MAAA;AAA8B,IAAA,SAAA;IAAnM,WAAA,CAAmB,wBAAkD,EAAS,QAAuD,EAAE,MAAqB,EAAS,MAAqB,EAAS,SAA2B,EAA2D,YAA4B,EAAA;AACnT,QAAA,KAAK,EAAE;QADU,IAAA,CAAA,wBAAwB,GAAxB,wBAAwB;QAAmC,IAAA,CAAA,QAAQ,GAAR,QAAQ;QAA+E,IAAA,CAAA,MAAM,GAAN,MAAM;QAAwB,IAAA,CAAA,SAAS,GAAT,SAAS;QAE1M,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AACpI,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE,IAAI,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AAC5I,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC;gBACnE,IAAI,CAAC,MAAM,GAAG,YAAa,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,MAAM;YAC1D;iBAAO;AACL,gBAAA,IAAI,CAAC,MAAM,GAAG,MAAM;YACtB;AACF,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,gBAAgB,EAAE,MAAM,IAAI,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;AAC9N,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACzG,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AACvH,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE;AAC3D,gBAAA,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YAC9E;AACF,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,GAAG,CAAC;AACT,YAAA,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAA0B;AAC1D,YAAA,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAA6B;YACjE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AAClC,gBAAA,IAAI,CAAC,CAAC,IAAI,EAAE;AACV,oBAAA,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK;AACxB,oBAAA,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAE,EAAE,EAAE;AACtD,wBAAA,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;AAC/C,wBAAA,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;AACvD,wBAAA,IAAI,CAAC,CAAC,eAAe,EAAE;AACrB,4BAAA,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACX,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;wBACpF;AACA,wBAAA,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAA,UAAA,EAAa,CAAC,CAAA,CAAE,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;AAClH,wBAAA,CAAC,EAAE;oBACL;gBACF;qBAAO;oBACL,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,CAAA,CAAE,EAAE,CAAC;AAC/E,oBAAA,CAAC,EAAE;gBACL;AACF,YAAA,CAAC,CAAC;AACF,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,gBAAgB,CAAC;AAC3C,YAAA,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,oBAAoB,CAAC;AACrD,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;AACV,YAAA,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;YACzB,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE;AACjC,gBAAA,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,MAAK;oBAC5B,IAAI,CAAC,YAAY,EAAE;gBACrB,CAAC,EAAE,GAAG,CAAC;YACT;AACF,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE;AACpC,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAG;AAC1H,oBAAA,IAAI,CAAC,YAAY,CAAC,yBAAyB,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE;gBAC5J,CAAC,CAAC,CAAC;AACH,gBAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE;YACrC;AACF,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;iBAC3C,OAAO,CAAC,IAAI,IAAG;AACd,gBAAA,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAE;AAC9C,gBAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC;AACnE,gBAAA,IAAI,EAAE,EAAE,IAAI,KAAK,SAAS,EAAE;AAC1B,oBAAA,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;gBAChB;AACA,gBAAA,IAAI,EAAE,EAAE,GAAG,EAAE;AACX,oBAAA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC;AACvD,yBAAA,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAA,cAAA,EAAiB,IAAI,CAAC,KAAK,CAAA,CAAE,CAAC;gBACrD;AACF,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;AAChF,QAAA,CAAC,CAAC;IACJ;AAES,IAAA,OAAO,GAAiB,IAAI,YAAY,EAAE;AAC5C,IAAA,MAAM;AACJ,IAAA,MAAM,GAAG,MAAM,CAA2B,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,6EAAC;IAC3D,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,WAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;IACjD,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;IAC3C,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;IAC1F,iBAAiB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,sBAAsB,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;AACjE,IAAA,SAAS,GAAG,MAAM,CAAsB,EAAE,gFAAC;AAC3C,IAAA,uBAAuB,GAAG,IAAI,OAAO,EAAQ;AAC7C,IAAA,gBAAgB,GAAG,MAAM,CAAoB,SAAS,uFAAC;AACvD,IAAA,uBAAuB,GAAG,IAAI,OAAO,EAAS;AACvD,IAAA,KAAK;AAEI,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AACpC,QAAA,MAAM,YAAY,GAAG,IAAI,GAAG,EAAiC;AAC7D,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;aAC3C,OAAO,CAAC,IAAI,IAAG;AACd,YAAA,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AAC1C,QAAA,CAAC,CAAC;AACJ,QAAA,OAAO,YAAY;AACrB,IAAA,CAAC,mFAAC;AACO,IAAA,gBAAgB,GAAG,MAAM,CAA8B,IAAI,GAAG,EAAE,uFAAC;AACjE,IAAA,oBAAoB,GAAG,MAAM,CAAiC,IAAI,GAAG,EAAE,2FAAC;IAExE,YAAY,CAAI,IAAY,EAAE,IAAU,EAAA;QAC/C,QAAQ,IAAI;AACV,YAAA,KAAK,aAAa;AAChB,gBAAA,OAAO,IAAI,CAAC,WAAW,EAAO;AAChC,YAAA;AACE,gBAAA,OAAO,SAAS;;IAEtB;AAEA,IAAA,mBAAmB,CAAC,KAAwB,EAAA;QAC1C,IAAI,KAAK,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,UAAU,EAAE,EAAE;AAC1C,YAAA,OAAO,EAAE;QACX;AAAO,aAAA,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE;AAC3B,YAAA,OAAO,EAAE;QACX;AAAO,aAAA,IAAI,KAAK,CAAC,UAAU,EAAE,EAAE;AAC7B,YAAA,OAAO,EAAE;QACX;AACA,QAAA,OAAO,CAAC;IACV;AAGA,IAAA,WAAW;AAEX,IAAA,eAAe,GAAG,CAAC,CAAS,EAAE,IAAS,KAAS;QAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;AACtC,IAAA,CAAC;IAEO,cAAc,GAAA;QACpB,MAAM,MAAM,GAAwB,EAAE;QACtC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,IAAG;AAChC,YAAA,IAAI,CAAC,CAAC,IAAI,EAAE;AACV,gBAAA,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAE,EAAE,EAAE;AACnD,oBAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,EAAE,CAAC;gBACtC;YACF;iBAAO;AACL,gBAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,EAAE,CAAC;YACtC;AACF,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,MAAM;IACf;IAEQ,WAAW,GAAA;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE;IAC/E;IAEQ,sBAAsB,GAAA;QAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE;AAClF,YAAA,OAAO,CAAC;QACV;AACA,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE;IACvF;IAEQ,YAAY,GAAA;QAClB,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;QACjC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,SAAS,EAAE;AACrC,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE;AAC/B,gBAAA,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE;YACvC;AACA,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE;AAC7B,gBAAA,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE;YACvC;AACA,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE;AAC5B,gBAAA,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE;YACvC;YACA,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,CAAC,IAAG;AACxC,gBAAA,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;AACb,oBAAA,CAAC,IAAI,CAAC,CAAC,KAAK,EAAG;gBACjB;qBAAO;oBACL,CAAC,IAAI,GAAG;gBACV;AACF,YAAA,CAAC,CAAC;AACF,YAAA,CAAC,IAAI,IAAI,CAAC,iBAAiB,EAAE;QAC/B;QACA,IAAI,CAAC,GAAG,EAAE;AACV,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE;AACjC,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAA4B;YAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC;YAC/C,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,+CAA+C,CAAC;AACnF,YAAA,MAAM,QAAQ,GAAG,IAAI,EAAE,qBAAqB,EAAE;AAC9C,YAAA,MAAM,cAAc,GAAG,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,qBAAqB,EAAE;AACjG,YAAA,MAAM,eAAe,GAAG,KAAK,EAAE,qBAAqB,EAAE;AACtD,YAAA,IAAI,SAAS;AACb,YAAA,IAAI,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;gBAChG,SAAS,GAAG,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,iBAAiB;YACvF;iBAAO,IAAI,IAAI,EAAE,kBAAkB,EAAE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;AAC1E,gBAAA,SAAS,GAAG,IAAI,EAAE,kBAAkB;YACtC;AAAO,iBAAA,IAAI,IAAI,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;AAC9F,gBAAA,SAAS,GAAG,IAAI,EAAE,kBAAkB,EAAE,kBAAkB;YAC1D;AACA,YAAA,IAAI,QAAQ,IAAI,SAAS,EAAE;;AAEzB,gBAAA,IAAI,OAAO,GAAG,MAAM,CAAC,WAAW,IAAI,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,IAAI,eAAe,EAAE,MAAM,IAAI,CAAC,CAAC,IAAI,cAAc,EAAE,MAAM,IAAI,CAAC,CAAC;AAC3H,gBAAA,IAAI,OAAO,GAAG,SAAS,CAAC,YAAY,EAAE;AACpC,oBAAA,CAAC,GAAG,CAAA,EAAG,OAAO,CAAA,EAAA,CAAI;gBACpB;YACF;QACF;AACA,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACxC;IAEA,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE;IACrC;IAEA,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE;AAChC,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE;IACrC;IAEA,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE;AACnC,QAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;IAC5B;IAEA,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,EAAE;AAC5C,YAAA,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE;QACjG;IACF;IAEA,QAAQ,CAAC,CAAa,EAAE,GAAQ,EAAA;QAC9B,MAAM,OAAO,GAAI,CAAC,CAAC,MAAsB,CAAC,OAAO,CAC/C,2EAA2E,CAC5E;AACD,QAAA,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE;AAC9E,YAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC;QAChC;IACF;IAEA,WAAW,GAAA;AACT,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;AACpD,QAAA,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA6B;AACrD,QAAA,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE;YACtB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5B;AACA,QAAA,IAAI,OAA0B;AAC9B,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE;YACnC,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;YAC5J,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC,SAAS,EAAE;QACvD;AAAO,aAAA,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE;AAC1C,YAAA,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,CAAU,CAAC;QAC7D;aAAO;AACL,YAAA,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,IAAI,CAAU,CAAC;QAC9D;QACA,OAAO,OAAO,CAAC,IAAI,CACjB,GAAG,CAAC,IAAI,IAAG;YACT,MAAM,WAAW,GAAkC,EAAE;AACrD,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpC,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;gBACnB,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;AAC7C,oBAAA,MAAM,SAAS,GAAQ,IAAI,CAAC,SAAS,CAAC,0BAA0B,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;oBAC7G,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAE;AAC/D,oBAAA,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;wBAC3C,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,GAAG,CAAA,EAAG,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAA,CAAA,CAAG;oBAChG;yBAAO;AACL,wBAAA,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;AAC5D,wBAAA,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;oBACzD;AACA,oBAAA,WAAW,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;gBACvD;AACA,gBAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AAC1B,oBAAA,IAAI,OAAO;oBACX,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;wBACtC,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;oBAC9C;AACA,oBAAA,IAAI,KAAK,CAAC,eAAe,EAAE,EAAE;AAC3B,wBAAA,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC;oBAC7F;AAAO,yBAAA,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE;wBAC3B,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,iBAAiB,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;oBAC7F;gBACF;gBACA,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;oBAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AACpB,wBAAA,OAAO,GAAG,CAAC,CAAC,CAAC;oBACf;gBACF;YACF;AACA,YAAA,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE;AAC3B,gBAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;YAChC;YACA,MAAM,SAAS,GAAQ,EAAE;AACzB,YAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;gBAC1B,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE;YAC1C;AACA,YAAA,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AACvB,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE;gBAChC,MAAM,YAAY,GAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,EAAE;AACvE,gBAAA,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,EAAE;AAC/C,oBAAA,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;gBACjE;AACA,gBAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;YACzB;AACA,YAAA,MAAM,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;YAC9F,MAAM,MAAM,GAAU,EAAE;AACxB,YAAA,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,EAAE;AAClE,gBAAA,MAAM,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC;AACnD,gBAAA,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;oBACX;gBACF;gBACA,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE;oBACnC,IAAI,MAAM,GAAG,CAAC;AACd,oBAAA,KAAK,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAChD,wBAAA,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;4BACpD;wBACF;AACA,wBAAA,MAAM,EAAE;oBACV;AACA,oBAAA,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC;gBAC3G;YACF;AACA,YAAA,EAAE,CAAC,SAAS,CAAC,GAAG,MAAM;AACtB,YAAA,OAAO,EAAE;QACX,CAAC,CAAC,CAAC;IACP;AAES,IAAA,QAAQ,CAAC,CAA2B,EAAA;QAC3C,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;QAC/B,IAAI,GAAG,EAAE;YACP;QACF;AACA,QAAA,QAAQ,CAAC,CAAC,IAAI;AACZ,YAAA,KAAK,qBAAqB;gBACxB,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9C,gBAAA,OAAO,EAAE,CAAC,IAAI,CAAC;;AAEnB,QAAA,OAAO,SAAS;IAClB;IAES,WAAW,GAAA;QAClB,KAAK,CAAC,WAAW,EAAE;AACnB,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AACnB,QAAA,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;IAC3B;AAxVW,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,KAAK,0LAEgP,uBAAuB,EAAA,QAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAF5Q,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,KAAK,yDAPL,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,wBAAwB,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB;AACpI,YAAA;AACE,gBAAA,OAAO,EAAE,uBAAuB;AAChC,gBAAA,WAAW,EAAE,aAAa;AAC3B,aAAA;AACF,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAsIU,WAAW,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/JxB,y9UA2MW,EAAA,MAAA,EAAA,CAAA,yRAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED3LC,aAAa,otGAAE,cAAc,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,YAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,WAAW,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,iBAAiB,qkBAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAWzG,KAAK,EAAA,UAAA,EAAA,CAAA;kBAbjB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,WACb,CAAC,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,CAAC,EAAA,eAAA,EAGpG,uBAAuB,CAAC,MAAM,aACpC,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,wBAAwB,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB;AACpI,wBAAA;AACE,4BAAA,OAAO,EAAE,uBAAuB;AAChC,4BAAA,WAAW,EAAE,aAAa;AAC3B,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,y9UAAA,EAAA,MAAA,EAAA,CAAA,yRAAA,CAAA,EAAA;;0BAIgO;;0BAAY;;0BAAY,MAAM;2BAAC,uBAAuB;;sBAkItR,SAAS;uBAAC,WAAW;;;AE/JxB;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"ngx-axis-appforge-axis-components-table.mjs","sources":["../../../axis-components/table/table.options.ts","../../../axis-components/table/table-setter/table-setter.ts","../../../axis-components/table/table-setter/table-setter.html","../../../axis-components/table/table.ts","../../../axis-components/table/table.html","../../../axis-components/table/ngx-axis-appforge-axis-components-table.ts"],"sourcesContent":["import { signal } from \"@angular/core\";\nimport { DataOptions, } from \"ngx-axis-appforge/core\";\nimport { BaseTableFieldOptions, BaseTableOptions, ExpandableTableOptions, SelectableTableOptions, StatisticTableFieldOptions, StatisticTableOptions } from 'ngx-axis-appforge/axis-components/table-helper'\n\nexport class TableOptions extends DataOptions implements BaseTableOptions, SelectableTableOptions, ExpandableTableOptions, StatisticTableOptions {\n readonly keyField = signal(\"\");\n readonly showExpand = signal(false);\n readonly expandMode = signal<\"custom\" | \"tree\">(\"custom\");\n readonly treeChildrenFun = signal(\"\");\n readonly showTableTitleSet = signal(false);\n readonly tableSetCacheKey = signal(\"\");\n readonly size = signal<'middle' | 'small' | 'default'>(\"middle\");\n readonly showOrder = signal(true);\n readonly heightExpanded = signal(false);\n readonly showDataSize = signal(true);\n readonly bordered = signal(false);\n readonly outerBordered = signal(false);\n readonly width = signal<number | undefined>(undefined);\n readonly actionsFieldWidth = signal<number | null>(null);\n readonly showCheckbox = signal(false);\n readonly checkeOnRowClick = signal(false);\n readonly singleCheck = signal(false);\n readonly checkboxLinkageForExpand = signal(false);\n readonly checkedKeys = signal(undefined);\n readonly disableCheckboxFn = signal<string | undefined>(undefined);\n readonly defaultSelectFirstRow = signal(false);\n readonly showStatistic = signal(false);\n readonly statisticTitle = signal(\"合计\");\n readonly showPagination = signal(true);\n readonly virtualScroll = signal(false);\n readonly virtualItemSize = signal(32);\n readonly pageSize = signal(10);\n readonly showSizeChanger = signal(true);\n readonly pageSizeOptions = signal(\"10,20,50,100\");\n readonly useBackEndPaging = signal(false);\n readonly customExportData = signal(false);\n readonly importLimitLength = signal<number | null>(null);\n readonly importStartLine = signal(2);\n readonly importTemplateFileName = signal(\"数据导入模版\");\n readonly importExampleData = signal<any>([]);\n readonly fields = signal<any[]>([]);\n readonly rowActions = signal<any[]>([]);\n readonly expandRow = signal<any>(undefined);\n}\n\nexport class TableFieldOptions implements BaseTableFieldOptions, StatisticTableFieldOptions {\n loop = false\n loopTarget: any[] | undefined = undefined;\n fieldFunForLoop: string | undefined = undefined;\n readonly inuse = signal(true);\n readonly field = signal(\"unknown\");\n readonly title = signal(\"未命名\");\n readonly export = signal(true);\n readonly exportFlowChild = signal(true);\n readonly exportFn = signal<string | undefined>(undefined);\n readonly import = signal(false);\n readonly importRequired = signal(false);\n readonly importCellType = signal<\"text\" | \"number\">(\"text\");\n readonly importHelp = signal<string | undefined>(undefined);\n readonly sortAble = signal(false);\n readonly sortOrder = signal<\"descend\" | \"ascend\" | null>(null);\n readonly sortPriority = signal<number | null>(null);\n readonly filterAble = signal(false);\n readonly filterMultiple = signal(false);\n readonly width = signal<number | null>(null);\n readonly align = signal<'left' | 'right' | 'center'>(\"left\");\n readonly freezeMode = signal<'none' | 'left' | 'right'>(\"none\");\n readonly groupAble = signal(false);\n readonly groupLevel = signal<number | null>(null);\n readonly statisticAble = signal(false);\n readonly statisticType = signal<\"sum\" | \"average\" | \"max\" | \"min\" | \"custom\">(\"sum\");\n readonly statisticFn = signal<string | undefined>(undefined);\n readonly titleGroup = signal<string | undefined>(undefined);\n readonly child = signal<any>(undefined);\n}","import { ChangeDetectionStrategy, Component, effect, input, model, OnDestroy, output, signal } from '@angular/core';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzGridModule } from 'ng-zorro-antd/grid';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzModalModule } from 'ng-zorro-antd/modal';\nimport { CdkDrag, CdkDragDrop, CdkDropList, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\nimport { TableFieldOptions } from '../table.options';\nimport { NzResizeEvent } from 'ng-zorro-antd/resizable';\nimport { debounceTime, Subject, Subscription } from 'rxjs';\n\n\n@Component({\n selector: 'axis-table-setter',\n imports: [NzIconModule, NzButtonModule, NzModalModule, NzGridModule, CdkDrag, CdkDropList],\n templateUrl: './table-setter.html',\n styleUrl: './table-setter.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableSetter implements OnDestroy {\n\n constructor() {\n effect(() => this.buildFixAndNotFixColumn(), { debugName: \"test\" });\n effect(() => this.onChange.emit([...this.fix()]));\n this.sub = this.saveCacheSubject.pipe(debounceTime(200)).subscribe(v => this.saveCache());\n }\n\n readonly fields = input.required<TableFieldOptions[]>();\n readonly cacheKey = input<string>();\n readonly onChange = output<TableFieldOptions[]>();\n\n readonly modalVisible = model(false);\n readonly fix = signal<TableFieldOptions[]>([]);\n readonly notFix = signal<TableFieldOptions[]>([]);\n\n saveCacheSubject = new Subject<void>();\n cache: { fix: string[], notFix: string[], widths: { [field: string]: number } } = { fix: [], notFix: [], widths: {} };\n sub?: Subscription;\n\n private buildFixAndNotFixColumn(): void {\n this.loadCache();\n const fields = this.fields();\n if (this.cache) {\n const fieldMap = new Map<string, TableFieldOptions>();\n for (const f of fields) {\n fieldMap.set(f.field(), f);\n if (this.cache.widths.hasOwnProperty(f.field())) {\n f.width.set(this.cache.widths[f.field()]);\n }\n }\n this.fix.set(this.cache.fix.filter(f => fieldMap.has(f)).map(f => fieldMap.get(f)!)\n .concat(fields.filter(f => !this.cache!.fix.includes(f.field()) && !this.cache!.notFix.includes(f.field()))));\n this.notFix.set(this.cache.notFix.filter(f => fieldMap.has(f)).map(f => fieldMap.get(f)!));\n } else {\n this.fix.set([...fields]);\n }\n }\n\n private loadCache() {\n if (this.cacheKey()) {\n const cacheStr = localStorage.getItem(this.cacheKey()!);\n if (cacheStr) {\n try {\n this.cache = JSON.parse(cacheStr);\n } catch (_) { }\n }\n }\n }\n\n private saveCache() {\n if (this.cacheKey()) {\n localStorage.setItem(this.cacheKey()!, JSON.stringify(this.cache));\n }\n }\n\n private updateFix(): void {\n this.fix.set([...this.fix()]);\n this.notFix.set([...this.notFix()]);\n if (this.cacheKey()) {\n this.cache.fix = this.fix().map(f => f.field());\n this.cache.notFix = this.notFix().map(f => f.field());\n this.saveCache();\n }\n }\n\n drop(event: CdkDragDrop<TableFieldOptions[], any, any>): void {\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n } else {\n transferArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);\n }\n this.updateFix();\n }\n\n deleteCustom(index: number): void {\n transferArrayItem(this.fix(), this.notFix(), index, this.notFix().length);\n this.updateFix();\n }\n\n addCustom(index: number): void {\n transferArrayItem(this.notFix(), this.fix(), index, this.fix().length);\n this.updateFix();\n }\n\n onResize(field: TableFieldOptions, event: NzResizeEvent) {\n field.width.set(event.width ?? null);\n this.cache.widths[field.field()] = event.width!;\n this.saveCacheSubject.next();\n }\n\n resetDefault() {\n this.fix.set([...this.fields()]);\n this.notFix.set([]);\n if (this.cacheKey()) {\n localStorage.removeItem(this.cacheKey()!);\n }\n }\n\n ngOnDestroy(): void {\n this.sub?.unsubscribe();\n this.saveCacheSubject.unsubscribe();\n }\n}","<a nz-button nzType=\"link\" nzSize=\"small\" (click)=\"modalVisible.set(true)\"\n style=\"margin: 2px;\">\n <nz-icon nzType=\"setting\" nzTheme=\"outline\" />\n 表头设置\n</a>\n<nz-modal [(nzVisible)]=\"modalVisible\" nzTitle=\"表头设置\" nzDraggable [nzOkText]=\"null\" nzCancelText=\"关闭\"\n (nzOnCancel)=\"modalVisible.set(false)\">\n <ng-container *nzModalContent>\n <div nz-row [nzGutter]=\"24\">\n <div nz-col class=\"gutter-row\" [nzSpan]=\"12\">\n <div class=\"container\">\n <p>展示字段<a nz-button nzType=\"link\" (click)=\"resetDefault()\">恢复默认</a></p>\n <div cdkDropList #todoList=\"cdkDropList\" [cdkDropListData]=\"fix()\"\n [cdkDropListConnectedTo]=\"[doneList]\" class=\"list\" (cdkDropListDropped)=\"drop($event)\">\n @for (item of fix(); track item.field(); let i = $index) {\n <div class=\"box\" cdkDrag>\n {{ item.title() }}\n <nz-icon nzType=\"minus-circle\" nzTheme=\"outline\" (click)=\"deleteCustom(i)\" />\n </div>\n }\n </div>\n </div>\n </div>\n <div nz-col class=\"gutter-row\" [nzSpan]=\"12\">\n <div class=\"container\">\n <p>隐藏字段</p>\n <div cdkDropList #doneList=\"cdkDropList\" [cdkDropListData]=\"notFix()\"\n [cdkDropListConnectedTo]=\"[todoList]\" class=\"list\" (cdkDropListDropped)=\"drop($event)\">\n @for (item of notFix(); track item.field(); let i = $index) {\n <div class=\"box\" cdkDrag>\n {{ item.title() }}\n <nz-icon nzType=\"plus-circle\" nzTheme=\"outline\" (click)=\"addCustom(i)\" />\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n</nz-modal>","import { ChangeDetectionStrategy, Component, computed, effect, Inject, Optional, signal, SkipSelf, untracked, ViewChild, WritableSignal } from '@angular/core';\nimport { TableFieldOptions, TableOptions } from './table.options';\nimport { Base, copy, DynamicDirective, EventHandlerOptions, ScopeDirective } from 'ngx-axis-appforge/core';\nimport { NzTableModule } from 'ng-zorro-antd/table';\nimport { FormsModule } from '@angular/forms';\nimport { TableSetter } from './table-setter/table-setter';\nimport { NzResizableModule } from 'ng-zorro-antd/resizable';\nimport { NzFlexModule } from 'ng-zorro-antd/flex';\nimport { DatePipe, DecimalPipe, PercentPipe } from '@angular/common';\nimport { TableFieldDisplayService, TableService, SelectService, ExpandService, StatisticService, AXIS_TABLE_SELECT_TOKEN, ChangeScene } from 'ngx-axis-appforge/axis-components/table-helper'\nimport { debounceTime, filter, map, Observable, of, Subject, take, tap } from 'rxjs';\nimport { utils, WorkSheet } from 'xlsx-js-style';\n\n\n@Component({\n selector: 'axis-table',\n imports: [NzTableModule, ScopeDirective, DynamicDirective, FormsModule, TableSetter, NzResizableModule, NzFlexModule],\n templateUrl: './table.html',\n styleUrl: './table.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [DatePipe, DecimalPipe, PercentPipe, TableFieldDisplayService, TableService, SelectService, ExpandService, StatisticService,\n {\n provide: AXIS_TABLE_SELECT_TOKEN,\n useExisting: SelectService,\n },\n ]\n})\nexport class Table extends Base<TableOptions> {\n\n constructor(public tableFieldDisplayService: TableFieldDisplayService, public tableSvc: TableService<TableOptions, TableFieldOptions>, select: SelectService, public expand: ExpandService, public statistic: StatisticService, @SkipSelf() @Optional() @Inject(AXIS_TABLE_SELECT_TOKEN) parentSelect?: SelectService) {\n super();\n effect(() => {\n this.tableSvc.init({ data: this.options.data, customExportData: this.customExportData, options: this.options, fields: this.fields });\n if (this.options.showCheckbox() && !this.options.singleCheck() && this.options.checkboxLinkageForExpand() && parentSelect && this.getScope()) {\n const key = this.getScope()?.snapshot(\"row\")[parentSelect.keyField];\n this.select = parentSelect!.findSubSelect(key) ?? select;\n } else {\n this.select = select;\n }\n });\n effect(() => {\n this.select.init({ options: this.options, keyField: this.options.keyField(), data: this.options.data, onSelectedChange: () => this.onSelectedChange(), parent: parentSelect, scope: this.getScope(), registToParent: true })\n });\n effect(() => {\n this.expand.init({ options: this.options, keyField: this.options.keyField(), data: this.options.data });\n })\n effect(() => {\n this.statistic.init({ options: this.options, data: this.options.data, fields: this.fields, tableSvc: this.tableSvc });\n })\n effect(() => {\n if (this.tableSvc.useBackEndPaging() && this.options.data()) {\n untracked(() => {\n if (!this.pageChanged) {\n this.select.clearDataCacheAndChecked();\n } else {\n this.pageChanged = false;\n }\n })\n }\n })\n effect(() => {\n let i = 0;\n const loopFieldDataMap = new Map<TableFieldOptions, any>();\n const loopFieldOriFieldMap = new Map<TableFieldOptions, string>();\n this.options.fields().forEach((f) => {\n if (f.loop) {\n const oriField = f.field;\n for (const item of this.loopFieldMap().get(f.field)!()) {\n loopFieldDataMap.set(this.oriFields()[i], item);\n loopFieldOriFieldMap.set(this.oriFields()[i], oriField);\n if (f.fieldFunForLoop) {\n f = copy(f);\n f.field = this.getScope()?.runFnWithSnapshot(f.fieldFunForLoop, { loopRow: item });\n }\n this.bindWithConfig(f, { options: this.oriFields()[i], tag: `bindField.${i}`, tempDataSource: { loopRow: item } });\n i++;\n }\n } else {\n this.bindWithConfig(f, { options: this.oriFields()[i], tag: `bindField.${i}` });\n i++;\n }\n });\n this.loopFieldDataMap.set(loopFieldDataMap);\n this.loopFieldOriFieldMap.set(loopFieldOriFieldMap);\n });\n effect(() => {\n clearInterval(this.timer);\n this.refreshScoll();\n if (this.options.heightExpanded()) {\n this.timer = setInterval(() => {\n this.refreshScoll();\n }, 500);\n }\n });\n effect(() => {\n if (this.tableSvc.useBackEndPaging()) {\n this.addSubscribe(this.backendPageParamsChange.pipe(tap(() => this.options.data.set(null)), debounceTime(50)).subscribe(_ => {\n this.pageChanged = true;\n this.triggeEvents(\"backendPageParamsChange\", { pageParams: Object.assign(this.tableSvc.backEndPageParams, this.statistic.backEndPageParams) }).subscribe();\n }));\n this.backendPageParamsChange.next();\n }\n });\n effect(() => {\n this.options.fields().filter(item => item.loop)\n .forEach(item => {\n const s = this.loopFieldMap().get(item.field)!;\n const io = this.getScope()?.dynamicField(item, \"loopTarget\", false);\n if (io?.init !== undefined) {\n s.set(io.init);\n }\n if (io?.obs) {\n this.addSubscribe(io.obs.pipe(filter(v => v !== undefined))\n .subscribe(s.set), `bindFieldLoop.${item.field}`);\n }\n });\n });\n effect(() => {\n this.triggeEvents(\"tableDataChange\", { tableData: this.tableSvc.tableData() });\n });\n }\n\n override options: TableOptions = new TableOptions();\n public select!: SelectService;\n readonly scroll = signal<{ x: string, y: string }>({ x: \"\", y: \"\" });\n readonly oriFields = computed(() => this.buildOriFields());\n readonly fields = computed(() => this.buildFields());\n readonly rowActions = computed(() => this.actionsFieldWidth() > 0 ? this.options.rowActions() : []);\n readonly actionsFieldWidth = computed(() => this.buildActionsFieldWidth());\n readonly fixFields = signal<TableFieldOptions[]>([]);\n readonly backendPageParamsChange = new Subject<void>();\n readonly customExportData = signal<any[] | undefined>(undefined);\n readonly customExportDataSubject = new Subject<any[]>();\n private pageChanged = false;\n timer?: number;\n\n readonly loopFieldMap = computed(() => {\n const loopFieldMap = new Map<string, WritableSignal<any[]>>();\n this.options.fields().filter(item => item.loop)\n .forEach(item => {\n loopFieldMap.set(item.field, signal([]));\n });\n return loopFieldMap;\n });\n readonly loopFieldDataMap = signal<Map<TableFieldOptions, any>>(new Map());\n readonly loopFieldOriFieldMap = signal<Map<TableFieldOptions, string>>(new Map());\n\n override callFunction<T>(name: String, args?: any): T | undefined {\n switch (name) {\n case \"exportExcel\":\n return this.exportExcel() as T;\n default:\n return undefined;\n }\n }\n\n resizeHandleOffsetX(field: TableFieldOptions): number {\n if (field.sortAble() && field.filterAble()) {\n return 42;\n } else if (field.sortAble()) {\n return 22;\n } else if (field.filterAble()) {\n return 28;\n }\n return 0;\n }\n\n @ViewChild(TableSetter)\n tableSetter?: TableSetter;\n\n trackByKeyField = (i: number, data: any): any => {\n return data[this.options.keyField()];\n }\n\n private buildOriFields(): TableFieldOptions[] {\n const fields: TableFieldOptions[] = [];\n this.options.fields().forEach(f => {\n if (f.loop) {\n for (const _ of this.loopFieldMap().get(f.field)!()) {\n fields.push(new TableFieldOptions());\n }\n } else {\n fields.push(new TableFieldOptions());\n }\n });\n return fields;\n }\n\n private buildFields(): TableFieldOptions[] {\n return this.options.showTableTitleSet() ? this.fixFields() : this.oriFields();\n }\n\n private buildActionsFieldWidth(): number {\n if (this.options.actionsFieldWidth() == 0 || this.options.rowActions().length == 0) {\n return 0;\n }\n return this.options.actionsFieldWidth() ?? this.options.rowActions().length * 45 + 16;\n }\n\n private refreshScoll() {\n let x = this.options.width() ?? 0;\n if (this.options.width() == undefined) {\n if (this.options.showCheckbox()) {\n x += this.tableSvc.leaderFieldWidth();\n }\n if (this.options.showExpand()) {\n x += this.tableSvc.leaderFieldWidth();\n }\n if (this.options.showOrder()) {\n x += this.tableSvc.leaderFieldWidth();\n }\n this.tableSvc.displayFields().forEach(f => {\n if (f.width()) {\n x += f.width()!;\n } else {\n x += 120;\n }\n });\n x += this.actionsFieldWidth();\n }\n let y = \"\";\n if (this.options.heightExpanded()) {\n const element = this.elementRef.nativeElement as HTMLElement;\n const table = element.querySelector(\"nz-table\");\n const head = element.querySelector(\"table[nz-table-content]>thead.ant-table-thead\");\n const headRect = head?.getBoundingClientRect();\n const innerTableRect = head?.parentElement?.parentElement?.parentElement?.getBoundingClientRect();\n const outterTableRect = table?.getBoundingClientRect();\n let tableBody;\n if (head?.parentElement?.parentElement?.nextElementSibling?.classList.contains(\"ant-table-body\")) {\n tableBody = head?.parentElement?.parentElement?.nextElementSibling?.firstElementChild;\n } else if (head?.nextElementSibling?.classList.contains(\"ant-table-tbody\")) {\n tableBody = head?.nextElementSibling;\n } else if (head?.nextElementSibling?.nextElementSibling?.classList.contains(\"ant-table-tbody\")) {\n tableBody = head?.nextElementSibling?.nextElementSibling;\n }\n if (headRect && tableBody) {\n // scroolY = 视口高度(window.innerHeight) - 表头底部位置(headRect.bottom) - 表尾部高度(outterTableRect.bottom - innerTableRect.bottom)\n let scroolY = window.innerHeight - (headRect?.bottom ?? 0) - (outterTableRect?.bottom ?? 0) + (innerTableRect?.bottom ?? 0);\n if (scroolY < tableBody.clientHeight) {\n y = `${scroolY}px`;\n }\n }\n }\n this.scroll.set({ x: x + \"px\", y: y });\n }\n\n onPageIndexChange() {\n this.backendPageParamsChange.next();\n }\n\n onPageSizeChange() {\n this.tableSvc.clearCursorMarks();\n this.backendPageParamsChange.next();\n }\n\n sortChange() {\n this.backendPageParamsChange.next();\n this.tableSvc.sortChange();\n }\n\n onSelectedChange() {\n if (this.hasEventHandler(\"onSelectedChange\")) {\n this.triggeEvents(\"onSelectedChange\", { selectedRows: this.select.selectedRows() }).subscribe();\n }\n }\n\n rowClick(e: MouseEvent, row: any) {\n const isInput = (e.target as HTMLElement).matches(\n 'input:not([disabled]), textarea:not([disabled]), [contenteditable=\"true\"]'\n );\n if (!isInput && this.options.showCheckbox() && this.options.checkeOnRowClick()) {\n this.select.toggleChecked(row);\n }\n }\n\n exportExcel(): Observable<WorkSheet> {\n const fields = this.fields().filter(f => f.export());\n const fieldMap = new Map<String, TableFieldOptions>();\n for (const f of fields) {\n fieldMap.set(f.field(), f);\n }\n let dataObs: Observable<any[]>;\n if (this.options.customExportData()) {\n dataObs = this.customExportDataSubject.pipe(take(1), tap(data => this.customExportData.set(data)), map(_ => copy(this.tableSvc.tableDataForExport(), true)));\n this.triggeEvents(\"loadCustomExportData\").subscribe();\n } else if (this.options.useBackEndPaging()) {\n dataObs = of(copy(this.options.data().rows, true) as any[]);\n } else {\n dataObs = of(copy(this.tableSvc.tableData(), true) as any[]);\n }\n return dataObs.pipe(\n map(data => {\n const insertDatas: { index: number, row: any }[] = [];\n for (let i = 0; i < data.length; i++) {\n const row = data[i];\n if (this.tableSvc.isGroupEndForExport(i, row)) {\n const insertRow: any = this.statistic.statisticGroupMapForExport()[this.tableSvc.getGroupValueForExport(row)];\n const groupField = this.tableSvc.groupAbleFieldsForExport()[0]!;\n if (groupField.field() == fields[0].field()) {\n insertRow[groupField.field()] = `${row[groupField.field()]}(${this.options.statisticTitle()})`;\n } else {\n insertRow[fields[0].field()] = this.options.statisticTitle();\n insertRow[groupField.field()] = row[groupField.field()];\n }\n insertDatas.unshift({ index: i + 1, row: insertRow });\n }\n for (const field of fields) {\n let loopRow;\n if (this.loopFieldDataMap().has(field)) {\n loopRow = this.loopFieldDataMap().get(field);\n }\n if (field.exportFlowChild()) {\n row[field.field()] = this.tableFieldDisplayService.getFieldDisplayText(field, row, loopRow);\n } else if (field.exportFn()) {\n row[field.field()] = this.getScope()?.runFnWithSnapshot(field.exportFn(), { row, loopRow });\n }\n }\n for (const f of Object.keys(row)) {\n if (!fieldMap.has(f)) {\n delete row[f];\n }\n }\n }\n for (const r of insertDatas) {\n data.splice(r.index, 0, r.row);\n }\n const headerRow: any = {};\n for (const field of fields) {\n headerRow[field.field()] = field.title();\n }\n data.unshift(headerRow);\n if (this.options.showStatistic()) {\n const statisticRow: any = { ...this.statistic.statisticMapForExport() };\n if (fields.length && !fields[0].statisticAble()) {\n statisticRow[fields[0].field()] = this.options.statisticTitle();\n }\n data.push(statisticRow);\n }\n const ws = utils.json_to_sheet(data, { header: fields.map(f => f.field()), skipHeader: true });\n const merges: any[] = [];\n for (const [field, group] of this.tableSvc.rowsGroupMapForExport()) {\n const c = fields.findIndex(f => f.field() == field);\n if (c == -1) {\n continue;\n }\n for (const indexs of group.values()) {\n let offset = 0;\n for (let i = insertDatas.length - 1; i >= 0; i--) {\n if (indexs[indexs.length - 1] < insertDatas[i].index) {\n break;\n }\n offset++;\n }\n merges.push({ s: { c, r: indexs[0] + 1 + offset }, e: { c, r: indexs[indexs.length - 1] + 1 + offset } });\n }\n }\n ws['!merges'] = merges;\n return ws;\n }));\n }\n\n override onEvents(e: EventHandlerOptions<any>): Observable<boolean> | undefined {\n const obs = super.onEvents?.(e);\n if (obs) {\n return;\n }\n switch (e.name) {\n case \"setCustomExportData\":\n this.customExportDataSubject.next(e.data.data);\n return of(true);\n }\n return undefined;\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this.select.close();\n clearInterval(this.timer);\n }\n}\n","@if (options.showTableTitleSet()) {\n<axis-table-setter [fields]=\"oriFields()\" [cacheKey]=\"options.tableSetCacheKey()\"\n (onChange)=\"fixFields.set($event)\"></axis-table-setter>\n}\n<nz-table #table [nzSize]=\"options.size()\" [nzData]=\"tableSvc.rows()??[]\" [nzLoading]=\"!options.data()\"\n [nzBordered]=\"options.bordered()\" [nzOuterBordered]=\"options.outerBordered()\"\n [nzShowPagination]=\"options.showPagination()\"\n [nzFrontPagination]=\"options.showPagination() && !options.useBackEndPaging()\" [nzTotal]=\"tableSvc.rowtotal()\"\n [(nzPageSize)]=\"options.pageSize\" [nzShowSizeChanger]=\"options.showSizeChanger()\"\n [nzPageSizeOptions]=\"tableSvc.pageSizeOptions()\" [nzShowTotal]=\"options.showDataSize()?totalRange:null\"\n [nzScroll]=\"scroll()\" (nzPageIndexChange)=\"onPageIndexChange()\" (nzPageSizeChange)=\"onPageSizeChange()\"\n [(nzPageIndex)]=\"tableSvc.pageIndex\" [nzVirtualItemSize]=\"options.virtualItemSize()\"\n [nzVirtualForTrackBy]=\"trackByKeyField\">\n <thead>\n <tr>\n @if (options.showCheckbox()) {\n @if (!options.checkboxLinkageForExpand() && !options.singleCheck()) {\n <th nzLeft [nzChecked]=\"select.headerChecked()!='none'\"\n [nzIndeterminate]=\"select.headerChecked()=='indeterminate' || (select.headerChecked()=='checked' && tableSvc.useBackEndPaging())\"\n (nzCheckedChange)=\"select.onAllChecked($event)\" nzAlign=\"center\"\n [nzWidth]=\"tableSvc.leaderFieldWidth()-10+'px'\">\n </th>\n }@else {\n <th nzLeft [nzWidth]=\"tableSvc.leaderFieldWidth()-10+'px'\"></th>\n }\n }\n @if (options.showExpand()) {\n <th nzLeft nzAlign=\"center\" [nzWidth]=\"tableSvc.leaderFieldWidth()-15+'px'\"></th>\n }\n @if (options.showOrder()) {\n <th nzAlign=\"center\" [nzWidth]=\"tableSvc.leaderFieldWidth()+'px'\">序号</th>\n }\n @for (f of tableSvc.displayFields(); track f.field();let i=$index) {\n <th [attr.data-field]=\"loopFieldOriFieldMap().get(f)??f.field()\" nz-resizable nzBounds=\"window\"\n [nzDisabled]=\"!options.showTableTitleSet() || !f.width()\"\n [nzWidth]=\"f.width() == null ?null:f.width()+'px'\" (nzResize)=\"tableSetter?.onResize(f,$event)\"\n [nzShowSort]=\"tableSvc.fieldSortAble(f)\" [nzSortDirections]=\"tableSvc.fieldSortDirections(f)\"\n [nzSortFn]=\"tableSvc.fieldsControlsMap()[f.field()]?.sortFn\" [(nzSortOrder)]=\"f.sortOrder\"\n [nzSortPriority]=\"tableSvc.fieldSortPriority(f)\"\n [nzShowFilter]=\"f.filterAble() && !options.useBackEndPaging()\" (nzSortOrderChange)=\"sortChange()\"\n [nzFilters]=\"tableSvc.fieldsControlsMap()[f.field()]?.filterItems ?? []\"\n [nzFilterFn]=\"tableSvc.fieldsControlsMap()[f.field()]?.filterFn\"\n (nzFilterChange)=\"tableSvc.filterChange(f.field(),$event)\" [nzFilterMultiple]=\"f.filterMultiple()\"\n [nzAlign]=\"f.align()\" [nzLeft]=\"f.freezeMode()=='left'\" [nzRight]=\"f.freezeMode()=='right'\">\n <span>\n {{f.title()}}\n @if(options.showTableTitleSet()){\n <nz-resize-handle [style.transform]=\"`translateX(${resizeHandleOffsetX(f)}px)`\" nzDirection=\"right\"\n (click)=\"$event.stopPropagation()\">\n <div class=\"resize-trigger\"></div>\n </nz-resize-handle>\n }\n </span>\n </th>\n }\n @if (rowActions().length)\n {\n <th nzRight nzAlign=\"center\" [nzWidth]=\"actionsFieldWidth()+'px'\" data-rowactions>操作</th>\n }\n </tr>\n </thead>\n <tbody>\n @if (!options.showPagination() && options.virtualScroll()) {\n <ng-template nz-virtual-scroll let-data let-i=\"index\">\n </ng-template>\n }@else {\n @for (trow of table.data; track options.keyField()?trow[options.keyField()]:trow;let i=$index) {\n @for (data of expand.getListForExpanded(trow); track options.keyField()?data[options.keyField()]:data) {\n <tr (click)=\"rowClick($event,data)\" [axisScope]=\"options.id+'.row'\" scopeName=\"表格行\"\n [dataSources]=\"[{name:'row',type:'local',data:data}]\"\n [class.checkedRow]=\"select.setOfCheckedId().has(data[options.keyField()])\">\n @if (options.showCheckbox()) {\n <td nzLeft [nzChecked]=\"select.setOfCheckedId().has(data[options.keyField()])\"\n [nzIndeterminate]=\"select.setOfIndeterminateId().has(data[options.keyField()])\"\n [nzDisabled]=\"select.setOfDisabledId().has(data[options.keyField()])\"\n (nzCheckedChange)=\"select.onItemChecked(data, $event)\" nzAlign=\"center\"></td>\n }\n @if (options.showExpand()) {\n @if(options.expandMode() == \"tree\" && !expand.nodeMap().get(data[options.keyField()])?.children?.length){\n <td nzLeft></td>\n }@else{\n <td nzLeft [nzExpand]=\"expand.expandedSet.has(data[options.keyField()])\"\n (nzExpandChange)=\"expand.onExpandChange(data[options.keyField()],$event)\"></td>\n }\n }\n @if (options.showOrder()) {\n <td nzAlign=\"center\">{{(table.nzPageIndex-1) * table.nzPageSize + i+1}}</td>\n }\n @for (f of tableSvc.displayFields(); track f.field()) {\n <td [attr.rowspan]=\"tableSvc.rowspan(f,i,table.nzPageIndex,table.nzPageSize,data)\"\n [nzLeft]=\"f.freezeMode()=='left'\" [attr.data-field]=\"f.field()\" [nzRight]=\"f.freezeMode()=='right'\"\n [nzAlign]=\"f.align()\">\n @if (f.child()) {\n @if(loopFieldDataMap().has(f)){\n <ng-container [axisScope]=\"options.id+'.fields.'+f.field()+'.row.loop'\" scopeName=\"列循环\"\n [dataSources]=\"[{name:'loopRow',type:'local',data:loopFieldDataMap().get(f)}]\">\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n </ng-container>\n }@else{\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }\n }@else {\n {{data[f.field()]}}\n }\n </td>\n }\n @if (rowActions().length) {\n <td nzRight>\n <div nz-flex nzJustify=\"space-evenly\" data-rowactions>\n @for (a of rowActions(); track a.id) {\n <ng-container [axisDynamic]=\"a\"></ng-container>\n }\n </div>\n </td>\n }\n </tr>\n @if (options.showStatistic() && tableSvc.isGroupEnd(i+(table.nzPageIndex-1)*table.nzPageSize,data)) {\n <tr [axisScope]=\"options.id+'.row'\" scopeName=\"表格行\"\n [dataSources]=\"[{name:'row',type:'local',data:statistic.statisticGroupMap()[tableSvc.getGroupValue(data)]}]\">\n @if (options.showCheckbox()) {\n <td nzLeft></td>\n }\n @if (options.showExpand()) {\n <td nzLeft></td>\n }\n @if(options.showOrder()){\n <td nzAlign=\"right\">\n {{options.statisticTitle()}}\n </td>\n }\n @for (f of tableSvc.displayFields(); track f.field();let i=$index) {\n <td [nzLeft]=\"f.freezeMode()=='left'\" [nzRight]=\"f.freezeMode()=='right'\" [nzAlign]=\"f.align()\">\n @if (f.statisticAble()) {\n @if (f.child()) {\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }@else {\n {{statistic.statisticGroupMap()[tableSvc.getGroupValue(data)]?.[f.field()]}}\n }\n }@else if(i==0 && !options.showOrder()){\n @if(tableSvc.groupAbleFields()[0] == f){\n {{data[f.field()]}}({{options.statisticTitle()}})\n }@else{\n {{options.statisticTitle()}}\n }\n }@else if (f.groupAble() && f == tableSvc.groupAbleFields()[0]) {\n {{data[f.field()]}}\n }\n </td>\n }\n @if (rowActions().length) {\n <td nzRight></td>\n }\n </tr>\n }\n }\n @if (options.showExpand() && options.expandMode() == \"custom\") {\n <tr [axisScope]=\"options.id+'.row'\" scopeName=\"表格行\" [dataSources]=\"[{name:'row',type:'local',data:trow}]\"\n [nzExpand]=\"expand.expandedSet.has(trow[options.keyField()])\" data-expandrow>\n <ng-container [axisDynamic]=\"options.expandRow()\"></ng-container>\n </tr>\n }\n }\n }\n </tbody>\n @if (options.showStatistic()) {\n <tfoot nzSummary>\n <tr [axisScope]=\"options.id+'.row'\" scopeName=\"表格行\"\n [dataSources]=\"[{name:'row',type:'local',data:statistic.statisticMap()}]\">\n @if (options.showCheckbox()) {\n <td nzLeft></td>\n }\n @if (options.showExpand()) {\n <td nzLeft></td>\n }\n @if(options.showOrder()){\n <td nzAlign=\"right\">\n <b>{{options.statisticTitle()}}</b>\n </td>\n }\n @for (f of tableSvc.displayFields(); track f.field();let i=$index) {\n <td [nzLeft]=\"f.freezeMode()=='left'\" [nzRight]=\"f.freezeMode()=='right'\" [nzAlign]=\"f.align()\">\n <b>\n @if (f.statisticAble()) {\n @if (f.child()) {\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }@else {\n {{statistic.statisticMap()[f.field()]}}\n }\n }@else if(i==0 && !options.showOrder()){\n {{options.statisticTitle()}}\n }\n </b>\n </td>\n }\n @if (rowActions().length) {\n <td nzRight></td>\n }\n </tr>\n </tfoot>\n }\n <ng-template #totalRange let-range=\"range\" let-total>\n 共{{ total }}条数据,第{{ range[0] }}-{{ range[1] }}条\n </ng-template>\n</nz-table>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './table';\n"],"names":["i4"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAIM,MAAO,YAAa,SAAQ,WAAW,CAAA;AAChC,IAAA,QAAQ,GAAG,MAAM,CAAC,EAAE,+EAAC;AACrB,IAAA,UAAU,GAAG,MAAM,CAAC,KAAK,iFAAC;AAC1B,IAAA,UAAU,GAAG,MAAM,CAAoB,QAAQ,iFAAC;AAChD,IAAA,eAAe,GAAG,MAAM,CAAC,EAAE,sFAAC;AAC5B,IAAA,iBAAiB,GAAG,MAAM,CAAC,KAAK,wFAAC;AACjC,IAAA,gBAAgB,GAAG,MAAM,CAAC,EAAE,uFAAC;AAC7B,IAAA,IAAI,GAAG,MAAM,CAAiC,QAAQ,2EAAC;AACvD,IAAA,SAAS,GAAG,MAAM,CAAC,IAAI,gFAAC;AACxB,IAAA,cAAc,GAAG,MAAM,CAAC,KAAK,qFAAC;AAC9B,IAAA,YAAY,GAAG,MAAM,CAAC,IAAI,mFAAC;AAC3B,IAAA,QAAQ,GAAG,MAAM,CAAC,KAAK,+EAAC;AACxB,IAAA,aAAa,GAAG,MAAM,CAAC,KAAK,oFAAC;AAC7B,IAAA,KAAK,GAAG,MAAM,CAAqB,SAAS,4EAAC;AAC7C,IAAA,iBAAiB,GAAG,MAAM,CAAgB,IAAI,wFAAC;AAC/C,IAAA,YAAY,GAAG,MAAM,CAAC,KAAK,mFAAC;AAC5B,IAAA,gBAAgB,GAAG,MAAM,CAAC,KAAK,uFAAC;AAChC,IAAA,WAAW,GAAG,MAAM,CAAC,KAAK,kFAAC;AAC3B,IAAA,wBAAwB,GAAG,MAAM,CAAC,KAAK,+FAAC;AACxC,IAAA,WAAW,GAAG,MAAM,CAAC,SAAS,kFAAC;AAC/B,IAAA,iBAAiB,GAAG,MAAM,CAAqB,SAAS,wFAAC;AACzD,IAAA,qBAAqB,GAAG,MAAM,CAAC,KAAK,4FAAC;AACrC,IAAA,aAAa,GAAG,MAAM,CAAC,KAAK,oFAAC;AAC7B,IAAA,cAAc,GAAG,MAAM,CAAC,IAAI,qFAAC;AAC7B,IAAA,cAAc,GAAG,MAAM,CAAC,IAAI,qFAAC;AAC7B,IAAA,aAAa,GAAG,MAAM,CAAC,KAAK,oFAAC;AAC7B,IAAA,eAAe,GAAG,MAAM,CAAC,EAAE,sFAAC;AAC5B,IAAA,QAAQ,GAAG,MAAM,CAAC,EAAE,+EAAC;AACrB,IAAA,eAAe,GAAG,MAAM,CAAC,IAAI,sFAAC;AAC9B,IAAA,eAAe,GAAG,MAAM,CAAC,cAAc,sFAAC;AACxC,IAAA,gBAAgB,GAAG,MAAM,CAAC,KAAK,uFAAC;AAChC,IAAA,gBAAgB,GAAG,MAAM,CAAC,KAAK,uFAAC;AAChC,IAAA,iBAAiB,GAAG,MAAM,CAAgB,IAAI,wFAAC;AAC/C,IAAA,eAAe,GAAG,MAAM,CAAC,CAAC,sFAAC;AAC3B,IAAA,sBAAsB,GAAG,MAAM,CAAC,QAAQ,6FAAC;AACzC,IAAA,iBAAiB,GAAG,MAAM,CAAM,EAAE,wFAAC;AACnC,IAAA,MAAM,GAAG,MAAM,CAAQ,EAAE,6EAAC;AAC1B,IAAA,UAAU,GAAG,MAAM,CAAQ,EAAE,iFAAC;AAC9B,IAAA,SAAS,GAAG,MAAM,CAAM,SAAS,gFAAC;AAC9C;MAEY,iBAAiB,CAAA;IAC1B,IAAI,GAAG,KAAK;IACZ,UAAU,GAAsB,SAAS;IACzC,eAAe,GAAuB,SAAS;AACtC,IAAA,KAAK,GAAG,MAAM,CAAC,IAAI,4EAAC;AACpB,IAAA,KAAK,GAAG,MAAM,CAAC,SAAS,4EAAC;AACzB,IAAA,KAAK,GAAG,MAAM,CAAC,KAAK,4EAAC;AACrB,IAAA,MAAM,GAAG,MAAM,CAAC,IAAI,6EAAC;AACrB,IAAA,eAAe,GAAG,MAAM,CAAC,IAAI,sFAAC;AAC9B,IAAA,QAAQ,GAAG,MAAM,CAAqB,SAAS,+EAAC;AAChD,IAAA,MAAM,GAAG,MAAM,CAAC,KAAK,6EAAC;AACtB,IAAA,cAAc,GAAG,MAAM,CAAC,KAAK,qFAAC;AAC9B,IAAA,cAAc,GAAG,MAAM,CAAoB,MAAM,qFAAC;AAClD,IAAA,UAAU,GAAG,MAAM,CAAqB,SAAS,iFAAC;AAClD,IAAA,QAAQ,GAAG,MAAM,CAAC,KAAK,+EAAC;AACxB,IAAA,SAAS,GAAG,MAAM,CAA8B,IAAI,gFAAC;AACrD,IAAA,YAAY,GAAG,MAAM,CAAgB,IAAI,mFAAC;AAC1C,IAAA,UAAU,GAAG,MAAM,CAAC,KAAK,iFAAC;AAC1B,IAAA,cAAc,GAAG,MAAM,CAAC,KAAK,qFAAC;AAC9B,IAAA,KAAK,GAAG,MAAM,CAAgB,IAAI,4EAAC;AACnC,IAAA,KAAK,GAAG,MAAM,CAA8B,MAAM,4EAAC;AACnD,IAAA,UAAU,GAAG,MAAM,CAA4B,MAAM,iFAAC;AACtD,IAAA,SAAS,GAAG,MAAM,CAAC,KAAK,gFAAC;AACzB,IAAA,UAAU,GAAG,MAAM,CAAgB,IAAI,iFAAC;AACxC,IAAA,aAAa,GAAG,MAAM,CAAC,KAAK,oFAAC;AAC7B,IAAA,aAAa,GAAG,MAAM,CAA+C,KAAK,oFAAC;AAC3E,IAAA,WAAW,GAAG,MAAM,CAAqB,SAAS,kFAAC;AACnD,IAAA,UAAU,GAAG,MAAM,CAAqB,SAAS,iFAAC;AAClD,IAAA,KAAK,GAAG,MAAM,CAAM,SAAS,4EAAC;AAC1C;;MCxDY,WAAW,CAAA;AAEtB,IAAA,WAAA,GAAA;AACE,QAAA,MAAM,CAAC,MAAM,IAAI,CAAC,uBAAuB,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AACnE,QAAA,MAAM,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;IAC3F;AAES,IAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,4EAAuB;IAC9C,QAAQ,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAU;IAC1B,QAAQ,GAAG,MAAM,EAAuB;AAExC,IAAA,YAAY,GAAG,KAAK,CAAC,KAAK,mFAAC;AAC3B,IAAA,GAAG,GAAG,MAAM,CAAsB,EAAE,0EAAC;AACrC,IAAA,MAAM,GAAG,MAAM,CAAsB,EAAE,6EAAC;AAEjD,IAAA,gBAAgB,GAAG,IAAI,OAAO,EAAQ;AACtC,IAAA,KAAK,GAA6E,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;AACrH,IAAA,GAAG;IAEK,uBAAuB,GAAA;QAC7B,IAAI,CAAC,SAAS,EAAE;AAChB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5B,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA6B;AACrD,YAAA,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE;gBACtB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC1B,gBAAA,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE;AAC/C,oBAAA,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC3C;YACF;AACA,YAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAE;AAC/E,iBAAA,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/G,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC;QAC5F;aAAO;YACL,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;QAC3B;IACF;IAEQ,SAAS,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAG,CAAC;YACvD,IAAI,QAAQ,EAAE;AACZ,gBAAA,IAAI;oBACF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;gBACnC;AAAE,gBAAA,OAAO,CAAC,EAAE,EAAE;YAChB;QACF;IACF;IAEQ,SAAS,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,YAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpE;IACF;IAEQ,SAAS,GAAA;AACf,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7B,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AACnC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YAC/C,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YACrD,IAAI,CAAC,SAAS,EAAE;QAClB;IACF;AAEA,IAAA,IAAI,CAAC,KAAiD,EAAA;QACpD,IAAI,KAAK,CAAC,iBAAiB,KAAK,KAAK,CAAC,SAAS,EAAE;AAC/C,YAAA,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC;QAChF;aAAO;YACL,iBAAiB,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC;QAChH;QACA,IAAI,CAAC,SAAS,EAAE;IAClB;AAEA,IAAA,YAAY,CAAC,KAAa,EAAA;QACxB,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC;QACzE,IAAI,CAAC,SAAS,EAAE;IAClB;AAEA,IAAA,SAAS,CAAC,KAAa,EAAA;QACrB,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;QACtE,IAAI,CAAC,SAAS,EAAE;IAClB;IAEA,QAAQ,CAAC,KAAwB,EAAE,KAAoB,EAAA;QACrD,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC;AACpC,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KAAM;AAC/C,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;IAC9B;IAEA,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;AACnB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAG,CAAC;QAC3C;IACF;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE;AACvB,QAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE;IACrC;wGAtGW,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClBxB,ypEAuCW,EAAA,MAAA,EAAA,CAAA,6uBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED1BC,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,6HAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,SAAA,EAAA,SAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,EAAA,QAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,SAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,wcAAE,WAAW,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,4BAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,+BAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAK9E,WAAW,EAAA,UAAA,EAAA,CAAA;kBAPvB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,WACpB,CAAC,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,CAAC,EAAA,eAAA,EAGzE,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,ypEAAA,EAAA,MAAA,EAAA,CAAA,6uBAAA,CAAA,EAAA;;;AEW3C,MAAO,KAAM,SAAQ,IAAkB,CAAA;AAExB,IAAA,wBAAA;AAA2D,IAAA,QAAA;AAAuF,IAAA,MAAA;AAA8B,IAAA,SAAA;IAAnM,WAAA,CAAmB,wBAAkD,EAAS,QAAuD,EAAE,MAAqB,EAAS,MAAqB,EAAS,SAA2B,EAA2D,YAA4B,EAAA;AACnT,QAAA,KAAK,EAAE;QADU,IAAA,CAAA,wBAAwB,GAAxB,wBAAwB;QAAmC,IAAA,CAAA,QAAQ,GAAR,QAAQ;QAA+E,IAAA,CAAA,MAAM,GAAN,MAAM;QAAwB,IAAA,CAAA,SAAS,GAAT,SAAS;QAE1M,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AACpI,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE,IAAI,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AAC5I,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC;gBACnE,IAAI,CAAC,MAAM,GAAG,YAAa,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,MAAM;YAC1D;iBAAO;AACL,gBAAA,IAAI,CAAC,MAAM,GAAG,MAAM;YACtB;AACF,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,gBAAgB,EAAE,MAAM,IAAI,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;AAC9N,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACzG,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AACvH,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE;gBAC3D,SAAS,CAAC,MAAK;AACb,oBAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACrB,wBAAA,IAAI,CAAC,MAAM,CAAC,wBAAwB,EAAE;oBACxC;yBAAO;AACL,wBAAA,IAAI,CAAC,WAAW,GAAG,KAAK;oBAC1B;AACF,gBAAA,CAAC,CAAC;YACJ;AACF,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,GAAG,CAAC;AACT,YAAA,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAA0B;AAC1D,YAAA,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAA6B;YACjE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AAClC,gBAAA,IAAI,CAAC,CAAC,IAAI,EAAE;AACV,oBAAA,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK;AACxB,oBAAA,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAE,EAAE,EAAE;AACtD,wBAAA,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;AAC/C,wBAAA,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;AACvD,wBAAA,IAAI,CAAC,CAAC,eAAe,EAAE;AACrB,4BAAA,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACX,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;wBACpF;AACA,wBAAA,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAA,UAAA,EAAa,CAAC,CAAA,CAAE,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;AAClH,wBAAA,CAAC,EAAE;oBACL;gBACF;qBAAO;oBACL,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,CAAA,CAAE,EAAE,CAAC;AAC/E,oBAAA,CAAC,EAAE;gBACL;AACF,YAAA,CAAC,CAAC;AACF,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,gBAAgB,CAAC;AAC3C,YAAA,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,oBAAoB,CAAC;AACrD,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;AACV,YAAA,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;YACzB,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE;AACjC,gBAAA,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,MAAK;oBAC5B,IAAI,CAAC,YAAY,EAAE;gBACrB,CAAC,EAAE,GAAG,CAAC;YACT;AACF,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE;AACpC,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAG;AAC1H,oBAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,oBAAA,IAAI,CAAC,YAAY,CAAC,yBAAyB,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE;gBAC5J,CAAC,CAAC,CAAC;AACH,gBAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE;YACrC;AACF,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;iBAC3C,OAAO,CAAC,IAAI,IAAG;AACd,gBAAA,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAE;AAC9C,gBAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC;AACnE,gBAAA,IAAI,EAAE,EAAE,IAAI,KAAK,SAAS,EAAE;AAC1B,oBAAA,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;gBAChB;AACA,gBAAA,IAAI,EAAE,EAAE,GAAG,EAAE;AACX,oBAAA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC;AACvD,yBAAA,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAA,cAAA,EAAiB,IAAI,CAAC,KAAK,CAAA,CAAE,CAAC;gBACrD;AACF,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;AAChF,QAAA,CAAC,CAAC;IACJ;AAES,IAAA,OAAO,GAAiB,IAAI,YAAY,EAAE;AAC5C,IAAA,MAAM;AACJ,IAAA,MAAM,GAAG,MAAM,CAA2B,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,6EAAC;IAC3D,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,WAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;IACjD,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;IAC3C,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;IAC1F,iBAAiB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,sBAAsB,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;AACjE,IAAA,SAAS,GAAG,MAAM,CAAsB,EAAE,gFAAC;AAC3C,IAAA,uBAAuB,GAAG,IAAI,OAAO,EAAQ;AAC7C,IAAA,gBAAgB,GAAG,MAAM,CAAoB,SAAS,uFAAC;AACvD,IAAA,uBAAuB,GAAG,IAAI,OAAO,EAAS;IAC/C,WAAW,GAAG,KAAK;AAC3B,IAAA,KAAK;AAEI,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AACpC,QAAA,MAAM,YAAY,GAAG,IAAI,GAAG,EAAiC;AAC7D,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;aAC3C,OAAO,CAAC,IAAI,IAAG;AACd,YAAA,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AAC1C,QAAA,CAAC,CAAC;AACJ,QAAA,OAAO,YAAY;AACrB,IAAA,CAAC,mFAAC;AACO,IAAA,gBAAgB,GAAG,MAAM,CAA8B,IAAI,GAAG,EAAE,uFAAC;AACjE,IAAA,oBAAoB,GAAG,MAAM,CAAiC,IAAI,GAAG,EAAE,2FAAC;IAExE,YAAY,CAAI,IAAY,EAAE,IAAU,EAAA;QAC/C,QAAQ,IAAI;AACV,YAAA,KAAK,aAAa;AAChB,gBAAA,OAAO,IAAI,CAAC,WAAW,EAAO;AAChC,YAAA;AACE,gBAAA,OAAO,SAAS;;IAEtB;AAEA,IAAA,mBAAmB,CAAC,KAAwB,EAAA;QAC1C,IAAI,KAAK,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,UAAU,EAAE,EAAE;AAC1C,YAAA,OAAO,EAAE;QACX;AAAO,aAAA,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE;AAC3B,YAAA,OAAO,EAAE;QACX;AAAO,aAAA,IAAI,KAAK,CAAC,UAAU,EAAE,EAAE;AAC7B,YAAA,OAAO,EAAE;QACX;AACA,QAAA,OAAO,CAAC;IACV;AAGA,IAAA,WAAW;AAEX,IAAA,eAAe,GAAG,CAAC,CAAS,EAAE,IAAS,KAAS;QAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;AACtC,IAAA,CAAC;IAEO,cAAc,GAAA;QACpB,MAAM,MAAM,GAAwB,EAAE;QACtC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,IAAG;AAChC,YAAA,IAAI,CAAC,CAAC,IAAI,EAAE;AACV,gBAAA,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAE,EAAE,EAAE;AACnD,oBAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,EAAE,CAAC;gBACtC;YACF;iBAAO;AACL,gBAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,EAAE,CAAC;YACtC;AACF,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,MAAM;IACf;IAEQ,WAAW,GAAA;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE;IAC/E;IAEQ,sBAAsB,GAAA;QAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE;AAClF,YAAA,OAAO,CAAC;QACV;AACA,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE;IACvF;IAEQ,YAAY,GAAA;QAClB,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;QACjC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,SAAS,EAAE;AACrC,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE;AAC/B,gBAAA,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE;YACvC;AACA,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE;AAC7B,gBAAA,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE;YACvC;AACA,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE;AAC5B,gBAAA,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE;YACvC;YACA,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,CAAC,IAAG;AACxC,gBAAA,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;AACb,oBAAA,CAAC,IAAI,CAAC,CAAC,KAAK,EAAG;gBACjB;qBAAO;oBACL,CAAC,IAAI,GAAG;gBACV;AACF,YAAA,CAAC,CAAC;AACF,YAAA,CAAC,IAAI,IAAI,CAAC,iBAAiB,EAAE;QAC/B;QACA,IAAI,CAAC,GAAG,EAAE;AACV,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE;AACjC,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAA4B;YAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC;YAC/C,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,+CAA+C,CAAC;AACnF,YAAA,MAAM,QAAQ,GAAG,IAAI,EAAE,qBAAqB,EAAE;AAC9C,YAAA,MAAM,cAAc,GAAG,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,qBAAqB,EAAE;AACjG,YAAA,MAAM,eAAe,GAAG,KAAK,EAAE,qBAAqB,EAAE;AACtD,YAAA,IAAI,SAAS;AACb,YAAA,IAAI,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;gBAChG,SAAS,GAAG,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,iBAAiB;YACvF;iBAAO,IAAI,IAAI,EAAE,kBAAkB,EAAE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;AAC1E,gBAAA,SAAS,GAAG,IAAI,EAAE,kBAAkB;YACtC;AAAO,iBAAA,IAAI,IAAI,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;AAC9F,gBAAA,SAAS,GAAG,IAAI,EAAE,kBAAkB,EAAE,kBAAkB;YAC1D;AACA,YAAA,IAAI,QAAQ,IAAI,SAAS,EAAE;;AAEzB,gBAAA,IAAI,OAAO,GAAG,MAAM,CAAC,WAAW,IAAI,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,IAAI,eAAe,EAAE,MAAM,IAAI,CAAC,CAAC,IAAI,cAAc,EAAE,MAAM,IAAI,CAAC,CAAC;AAC3H,gBAAA,IAAI,OAAO,GAAG,SAAS,CAAC,YAAY,EAAE;AACpC,oBAAA,CAAC,GAAG,CAAA,EAAG,OAAO,CAAA,EAAA,CAAI;gBACpB;YACF;QACF;AACA,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACxC;IAEA,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE;IACrC;IAEA,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE;AAChC,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE;IACrC;IAEA,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE;AACnC,QAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;IAC5B;IAEA,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,EAAE;AAC5C,YAAA,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE;QACjG;IACF;IAEA,QAAQ,CAAC,CAAa,EAAE,GAAQ,EAAA;QAC9B,MAAM,OAAO,GAAI,CAAC,CAAC,MAAsB,CAAC,OAAO,CAC/C,2EAA2E,CAC5E;AACD,QAAA,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE;AAC9E,YAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC;QAChC;IACF;IAEA,WAAW,GAAA;AACT,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;AACpD,QAAA,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA6B;AACrD,QAAA,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE;YACtB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5B;AACA,QAAA,IAAI,OAA0B;AAC9B,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE;YACnC,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;YAC5J,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC,SAAS,EAAE;QACvD;AAAO,aAAA,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE;AAC1C,YAAA,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,CAAU,CAAC;QAC7D;aAAO;AACL,YAAA,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,IAAI,CAAU,CAAC;QAC9D;QACA,OAAO,OAAO,CAAC,IAAI,CACjB,GAAG,CAAC,IAAI,IAAG;YACT,MAAM,WAAW,GAAkC,EAAE;AACrD,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpC,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;gBACnB,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;AAC7C,oBAAA,MAAM,SAAS,GAAQ,IAAI,CAAC,SAAS,CAAC,0BAA0B,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;oBAC7G,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAE;AAC/D,oBAAA,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;wBAC3C,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,GAAG,CAAA,EAAG,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAA,CAAA,CAAG;oBAChG;yBAAO;AACL,wBAAA,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;AAC5D,wBAAA,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;oBACzD;AACA,oBAAA,WAAW,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;gBACvD;AACA,gBAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AAC1B,oBAAA,IAAI,OAAO;oBACX,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;wBACtC,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;oBAC9C;AACA,oBAAA,IAAI,KAAK,CAAC,eAAe,EAAE,EAAE;AAC3B,wBAAA,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC;oBAC7F;AAAO,yBAAA,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE;wBAC3B,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,iBAAiB,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;oBAC7F;gBACF;gBACA,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;oBAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AACpB,wBAAA,OAAO,GAAG,CAAC,CAAC,CAAC;oBACf;gBACF;YACF;AACA,YAAA,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE;AAC3B,gBAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;YAChC;YACA,MAAM,SAAS,GAAQ,EAAE;AACzB,YAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;gBAC1B,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE;YAC1C;AACA,YAAA,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AACvB,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE;gBAChC,MAAM,YAAY,GAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,EAAE;AACvE,gBAAA,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,EAAE;AAC/C,oBAAA,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;gBACjE;AACA,gBAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;YACzB;AACA,YAAA,MAAM,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;YAC9F,MAAM,MAAM,GAAU,EAAE;AACxB,YAAA,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,EAAE;AAClE,gBAAA,MAAM,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC;AACnD,gBAAA,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;oBACX;gBACF;gBACA,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE;oBACnC,IAAI,MAAM,GAAG,CAAC;AACd,oBAAA,KAAK,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAChD,wBAAA,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;4BACpD;wBACF;AACA,wBAAA,MAAM,EAAE;oBACV;AACA,oBAAA,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC;gBAC3G;YACF;AACA,YAAA,EAAE,CAAC,SAAS,CAAC,GAAG,MAAM;AACtB,YAAA,OAAO,EAAE;QACX,CAAC,CAAC,CAAC;IACP;AAES,IAAA,QAAQ,CAAC,CAA2B,EAAA;QAC3C,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;QAC/B,IAAI,GAAG,EAAE;YACP;QACF;AACA,QAAA,QAAQ,CAAC,CAAC,IAAI;AACZ,YAAA,KAAK,qBAAqB;gBACxB,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9C,gBAAA,OAAO,EAAE,CAAC,IAAI,CAAC;;AAEnB,QAAA,OAAO,SAAS;IAClB;IAES,WAAW,GAAA;QAClB,KAAK,CAAC,WAAW,EAAE;AACnB,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AACnB,QAAA,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;IAC3B;AAhWW,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,KAAK,0LAEgP,uBAAuB,EAAA,QAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAF5Q,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,KAAK,yDAPL,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,wBAAwB,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB;AACpI,YAAA;AACE,gBAAA,OAAO,EAAE,uBAAuB;AAChC,gBAAA,WAAW,EAAE,aAAa;AAC3B,aAAA;AACF,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EA8IU,WAAW,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvKxB,y9UA2MW,EAAA,MAAA,EAAA,CAAA,yRAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED3LC,aAAa,otGAAE,cAAc,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,YAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,WAAW,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,iBAAiB,qkBAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAWzG,KAAK,EAAA,UAAA,EAAA,CAAA;kBAbjB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,WACb,CAAC,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,CAAC,EAAA,eAAA,EAGpG,uBAAuB,CAAC,MAAM,aACpC,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,wBAAwB,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB;AACpI,wBAAA;AACE,4BAAA,OAAO,EAAE,uBAAuB;AAChC,4BAAA,WAAW,EAAE,aAAa;AAC3B,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,y9UAAA,EAAA,MAAA,EAAA,CAAA,yRAAA,CAAA,EAAA;;0BAIgO;;0BAAY;;0BAAY,MAAM;2BAAC,uBAAuB;;sBA0ItR,SAAS;uBAAC,WAAW;;;AEvKxB;;AAEG;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { InjectionToken, effect, inject, input, ElementRef, isSignal, Directive, Optional, Inject, Injectable, Injector, HostBinding, untracked, model, ViewChild, output, ViewContainerRef, forwardRef, Pipe, signal, ChangeDetectionStrategy, Component, computed, ContentChild } from '@angular/core';
|
|
3
|
-
import { BehaviorSubject, filter, map, catchError, of, Subject, switchMap, debounceTime, isObservable, NEVER, merge, take, zip, Observable, tap, concat, last,
|
|
3
|
+
import { BehaviorSubject, filter, map, catchError, of, Subject, switchMap, debounceTime, isObservable, NEVER, merge, take, zip, Observable, tap, concat, last, from, defer, mergeWith } from 'rxjs';
|
|
4
4
|
import * as i1 from '@angular/common/http';
|
|
5
5
|
import { HttpContextToken, HttpContext, HttpRequest, HttpEventType, HttpClient } from '@angular/common/http';
|
|
6
6
|
import { fromPromise } from 'rxjs/internal/observable/innerFrom';
|
|
@@ -901,7 +901,7 @@ class EventsHandlerService {
|
|
|
901
901
|
apiEventHandler(e) {
|
|
902
902
|
const opt = e.data;
|
|
903
903
|
opt.context ??= e.ref?.injector.get(AXIS_HTTP_CONTEXT_DATA_TOKEN, null);
|
|
904
|
-
return sendApi(opt, this.http).pipe(
|
|
904
|
+
return sendApi(opt, this.http).pipe(switchMap(res => {
|
|
905
905
|
if (e.ref) {
|
|
906
906
|
return e.ref.triggeEvents("apiResponse", { ...e.tempDataSource, apiResponse: res }, e.triggeEvents);
|
|
907
907
|
}
|
|
@@ -1004,6 +1004,7 @@ class EventsHandlerService {
|
|
|
1004
1004
|
}
|
|
1005
1005
|
routeEventHandler(e) {
|
|
1006
1006
|
let { type, newtab, path } = e.data;
|
|
1007
|
+
let obs;
|
|
1007
1008
|
switch (type) {
|
|
1008
1009
|
case "web":
|
|
1009
1010
|
if (newtab) {
|
|
@@ -1016,7 +1017,8 @@ class EventsHandlerService {
|
|
|
1016
1017
|
}
|
|
1017
1018
|
if (url) {
|
|
1018
1019
|
window.open(url, "_blank");
|
|
1019
|
-
|
|
1020
|
+
obs = of(true);
|
|
1021
|
+
break;
|
|
1020
1022
|
}
|
|
1021
1023
|
}
|
|
1022
1024
|
else {
|
|
@@ -1024,7 +1026,8 @@ class EventsHandlerService {
|
|
|
1024
1026
|
if (typeof path == "string") {
|
|
1025
1027
|
if (path.startsWith("http")) {
|
|
1026
1028
|
window.open(path, "_self");
|
|
1027
|
-
|
|
1029
|
+
obs = of(true);
|
|
1030
|
+
break;
|
|
1028
1031
|
}
|
|
1029
1032
|
url = [path];
|
|
1030
1033
|
}
|
|
@@ -1037,13 +1040,20 @@ class EventsHandlerService {
|
|
|
1037
1040
|
}
|
|
1038
1041
|
else {
|
|
1039
1042
|
const route = e.ref?.injector.get(ActivatedRoute);
|
|
1040
|
-
|
|
1043
|
+
obs = from(this.router.navigate(url, { relativeTo: route, state: e.data?.params }));
|
|
1044
|
+
break;
|
|
1041
1045
|
}
|
|
1042
1046
|
}
|
|
1043
1047
|
}
|
|
1044
1048
|
break;
|
|
1045
1049
|
}
|
|
1046
|
-
|
|
1050
|
+
obs ??= of(false);
|
|
1051
|
+
return obs.pipe(switchMap(res => {
|
|
1052
|
+
if (res && e.ref) {
|
|
1053
|
+
return e.ref.triggeEvents("routeEnd", e.tempDataSource, e.triggeEvents);
|
|
1054
|
+
}
|
|
1055
|
+
return of(res);
|
|
1056
|
+
}));
|
|
1047
1057
|
}
|
|
1048
1058
|
runScriptEventHandler(e) {
|
|
1049
1059
|
if (e.data?.script) {
|
|
@@ -1206,24 +1216,26 @@ class Base {
|
|
|
1206
1216
|
return of(true);
|
|
1207
1217
|
}
|
|
1208
1218
|
triggeEvent(e, scope) {
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1219
|
+
return defer(() => {
|
|
1220
|
+
scope ??= this.scope ?? undefined;
|
|
1221
|
+
console.log("triggeEvent", e);
|
|
1222
|
+
e.ref = this;
|
|
1223
|
+
let obs;
|
|
1224
|
+
switch (e.target) {
|
|
1225
|
+
case "component":
|
|
1226
|
+
if (e.id) {
|
|
1227
|
+
obs = (scope)?.findInstance(e.id)?.onEvents?.(e);
|
|
1228
|
+
}
|
|
1229
|
+
break;
|
|
1230
|
+
case "service":
|
|
1231
|
+
obs = this.eventsService.onEvents(e);
|
|
1232
|
+
break;
|
|
1233
|
+
case "scope":
|
|
1234
|
+
obs = scope?.onEvents(e);
|
|
1235
|
+
break;
|
|
1236
|
+
}
|
|
1237
|
+
return obs ?? of(true);
|
|
1238
|
+
});
|
|
1227
1239
|
}
|
|
1228
1240
|
getScope() {
|
|
1229
1241
|
return this.scope;
|
|
@@ -3297,7 +3309,13 @@ const baseEventHandlerDescs = {
|
|
|
3297
3309
|
formStyle: {
|
|
3298
3310
|
labelSpan: 8
|
|
3299
3311
|
},
|
|
3300
|
-
dataComponent: RouteHandler
|
|
3312
|
+
dataComponent: RouteHandler,
|
|
3313
|
+
events: [
|
|
3314
|
+
{
|
|
3315
|
+
name: "routeEnd",
|
|
3316
|
+
title: "路由结束",
|
|
3317
|
+
}
|
|
3318
|
+
]
|
|
3301
3319
|
},
|
|
3302
3320
|
runScript: {
|
|
3303
3321
|
name: "runScript",
|