@delon/abc 19.0.0 → 19.1.0
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/auto-focus/auto-focus.directive.d.ts +6 -8
- package/cell/cell-host.directive.d.ts +4 -5
- package/cell/cell.component.d.ts +13 -22
- package/error-collect/error-collect.component.d.ts +6 -12
- package/fesm2022/auto-focus.mjs +16 -16
- package/fesm2022/auto-focus.mjs.map +1 -1
- package/fesm2022/cell.mjs +84 -99
- package/fesm2022/cell.mjs.map +1 -1
- package/fesm2022/date-picker.mjs +1 -0
- package/fesm2022/date-picker.mjs.map +1 -1
- package/fesm2022/error-collect.mjs +23 -40
- package/fesm2022/error-collect.mjs.map +1 -1
- package/fesm2022/exception.mjs.map +1 -1
- package/fesm2022/full-content.mjs +1 -1
- package/fesm2022/full-content.mjs.map +1 -1
- package/fesm2022/loading.mjs.map +1 -1
- package/fesm2022/lodop.mjs +1 -1
- package/fesm2022/lodop.mjs.map +1 -1
- package/fesm2022/notice-icon.mjs +6 -12
- package/fesm2022/notice-icon.mjs.map +1 -1
- package/fesm2022/onboarding.mjs +1 -1
- package/fesm2022/onboarding.mjs.map +1 -1
- package/fesm2022/quick-menu.mjs.map +1 -1
- package/fesm2022/reuse-tab.mjs.map +1 -1
- package/fesm2022/se.mjs +2 -2
- package/fesm2022/se.mjs.map +1 -1
- package/fesm2022/st.mjs +6 -5
- package/fesm2022/st.mjs.map +1 -1
- package/fesm2022/sv.mjs.map +1 -1
- package/fesm2022/xlsx.mjs.map +1 -1
- package/fesm2022/zip.mjs.map +1 -1
- package/loading/loading.types.d.ts +1 -3
- package/notice-icon/notice-icon.component.d.ts +6 -11
- package/notice-icon/style/index.less +4 -0
- package/package.json +4 -4
- package/quick-menu/quick-menu.component.d.ts +1 -3
- package/reuse-tab/reuse-tab.cache.d.ts +4 -12
- package/reuse-tab/reuse-tab.component.d.ts +1 -3
- package/se/se.types.d.ts +1 -3
- package/st/st.component.d.ts +1 -1
- package/st/st.interfaces.d.ts +5 -13
- package/st/st.types.d.ts +1 -3
- package/sv/sv-container.component.d.ts +1 -3
- package/xlsx/xlsx.service.d.ts +1 -3
- package/xlsx/xlsx.types.d.ts +1 -3
package/fesm2022/st.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"st.mjs","sources":["../../../../packages/abc/st/st-row.directive.ts","../../../../packages/abc/st/st-widget.ts","../../../../packages/abc/st/st-column-source.ts","../../../../packages/abc/st/st-data-source.ts","../../../../packages/abc/st/st-export.ts","../../../../packages/abc/st/st-widget-host.directive.ts","../../../../packages/abc/st/st-filter.component.ts","../../../../packages/abc/st/st.config.ts","../../../../packages/abc/st/st.component.ts","../../../../packages/abc/st/st-td.component.html","../../../../packages/abc/st/st.component.html","../../../../packages/abc/st/st.module.ts","../../../../packages/abc/st/provide.ts","../../../../packages/abc/st/st.ts"],"sourcesContent":["import { Directive, Injectable, Input, OnInit, TemplateRef, inject } from '@angular/core';\n\n@Injectable()\nexport class STRowSource {\n private titles: { [key: string]: TemplateRef<void> } = {};\n private rows: { [key: string]: TemplateRef<void> } = {};\n\n add(type: string | undefined, path: string, ref: TemplateRef<void>): void {\n this[type === 'title' ? 'titles' : 'rows'][path] = ref;\n }\n\n getTitle(path: string): TemplateRef<void> {\n return this.titles[path];\n }\n\n getRow(path: string): TemplateRef<void> {\n return this.rows[path];\n }\n}\n\n@Directive({\n selector: '[st-row]'\n})\nexport class STRowDirective implements OnInit {\n private readonly source = inject(STRowSource, { host: true });\n private readonly ref = inject(TemplateRef);\n @Input('st-row') id!: string;\n\n @Input() type?: 'title';\n\n ngOnInit(): void {\n this.source.add(this.type, this.id, this.ref);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\n@Injectable({ providedIn: 'root' })\nexport class STWidgetRegistry {\n private _widgets: { [type: string]: NzSafeAny } = {};\n\n get widgets(): NzSafeAny {\n return this._widgets;\n }\n\n register(type: string, widget: NzSafeAny): void {\n this._widgets[type] = widget;\n }\n\n has(type: string): boolean {\n return this._widgets.hasOwnProperty(type);\n }\n\n get(type: string): NzSafeAny {\n return this._widgets[type];\n }\n}\n","import { Host, Inject, Injectable, Optional, TemplateRef } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport { ACLService } from '@delon/acl';\nimport { AlainI18NService, ALAIN_I18N_TOKEN } from '@delon/theme';\nimport { AlainSTConfig } from '@delon/util/config';\nimport { deepCopy, warn } from '@delon/util/other';\nimport type { NgClassInterface, NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { STRowSource } from './st-row.directive';\nimport { STWidgetRegistry } from './st-widget';\nimport {\n STColumn,\n STColumnButton,\n STColumnButtonPop,\n STColumnFilter,\n STColumnGroupType,\n STColumnSafeType,\n STIcon,\n STResizable,\n STSortMap,\n STWidthMode\n} from './st.interfaces';\nimport { _STColumn, _STHeader } from './st.types';\n\nexport interface STColumnSourceProcessOptions {\n widthMode: STWidthMode;\n resizable?: STResizable;\n safeType: STColumnSafeType;\n expand: boolean;\n}\n\n@Injectable()\nexport class STColumnSource {\n private cog!: AlainSTConfig;\n\n constructor(\n private dom: DomSanitizer,\n @Host() private rowSource: STRowSource,\n @Optional() private acl: ACLService,\n @Optional() @Inject(ALAIN_I18N_TOKEN) private i18nSrv: AlainI18NService,\n private stWidgetRegistry: STWidgetRegistry\n ) {}\n\n setCog(val: AlainSTConfig): void {\n this.cog = val;\n }\n\n private fixPop(i: STColumnButton, def: STColumnButtonPop): void {\n if (i.pop == null || i.pop === false) {\n i.pop = false;\n return;\n }\n\n let pop = {\n ...def\n };\n if (typeof i.pop === 'string') {\n pop.title = i.pop;\n } else if (typeof i.pop === 'object') {\n pop = {\n ...pop,\n ...i.pop\n };\n }\n\n if (typeof pop.condition !== 'function') {\n pop.condition = () => false;\n }\n\n if (this.i18nSrv) {\n if (pop.titleI18n) pop.title = this.i18nSrv.fanyi(pop.titleI18n);\n if (pop.okTextI18n) pop.okText = this.i18nSrv.fanyi(pop.okTextI18n);\n if (pop.cancelTextI18n) pop.cancelText = this.i18nSrv.fanyi(pop.cancelTextI18n);\n }\n\n i.pop = pop;\n }\n\n private btnCoerce(list: STColumnButton[]): STColumnButton[] {\n if (!list) return [];\n const ret: STColumnButton[] = [];\n const { modal, drawer, pop, btnIcon } = this.cog;\n\n for (const item of list) {\n if (this.acl && item.acl && !this.acl.can(item.acl)) {\n continue;\n }\n\n if (item.type === 'modal' || item.type === 'static') {\n if (item.modal == null || item.modal.component == null) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.warn(`[st] Should specify modal parameter when type is modal or static`);\n }\n item.type = 'none';\n } else {\n item.modal = { ...{ paramsName: 'record', size: 'lg' }, ...modal, ...item.modal };\n }\n }\n\n if (item.type === 'drawer') {\n if (item.drawer == null || item.drawer.component == null) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.warn(`[st] Should specify drawer parameter when type is drawer`);\n }\n item.type = 'none';\n } else {\n item.drawer = { ...{ paramsName: 'record', size: 'lg' }, ...drawer, ...item.drawer };\n }\n }\n\n if (item.type === 'del' && typeof item.pop === 'undefined') {\n item.pop = true;\n }\n\n // pop\n this.fixPop(item, pop!);\n\n if (typeof item.icon !== 'function') {\n item.icon = {\n ...btnIcon,\n ...(typeof item.icon === 'string' ? { type: item.icon } : item.icon)\n } as STIcon;\n }\n\n item.children = item.children && item.children.length > 0 ? this.btnCoerce(item.children) : [];\n\n // i18n\n if (item.i18n && this.i18nSrv) {\n item.text = this.i18nSrv.fanyi(item.i18n);\n }\n\n ret.push(item);\n }\n this.btnCoerceIf(ret);\n return ret;\n }\n\n private btnCoerceIf(list: STColumnButton[]): void {\n for (const item of list) {\n item.iifBehavior = item.iifBehavior || this.cog.iifBehavior;\n if (item.children && item.children.length > 0) {\n this.btnCoerceIf(item.children);\n } else {\n item.children = [];\n }\n }\n }\n\n private fixedCoerce(list: _STColumn[], expand: boolean): void {\n const countReduce = (a: number, b: _STColumn): number => a + +b.width!.toString().replace('px', '');\n const expandWidth = expand ? 50 : 0;\n // left width\n list\n .filter(w => w.fixed && w.fixed === 'left' && w.width)\n .forEach((item, idx) => (item._left = `${list.slice(0, idx).reduce(countReduce, 0) + expandWidth}px`));\n // right width\n list\n .filter(w => w.fixed && w.fixed === 'right' && w.width)\n .reverse()\n .forEach((item, idx) => (item._right = `${idx > 0 ? list.slice(-idx).reduce(countReduce, 0) : 0}px`));\n }\n\n private sortCoerce(item: _STColumn): STSortMap {\n const res = this.fixSortCoerce(item);\n res.reName = {\n ...this.cog.sortReName,\n ...res.reName\n };\n return res;\n }\n\n private fixSortCoerce(item: _STColumn): STSortMap {\n if (typeof item.sort === 'undefined') {\n return { enabled: false };\n }\n\n let res: STSortMap = {};\n\n if (typeof item.sort === 'string') {\n res.key = item.sort;\n } else if (typeof item.sort !== 'boolean') {\n res = item.sort;\n } else if (typeof item.sort === 'boolean') {\n res.compare = (a, b) => a[item.indexKey!] - b[item.indexKey!];\n }\n\n if (!res.key) {\n res.key = item.indexKey;\n }\n\n res.enabled = true;\n\n return res;\n }\n\n private filterCoerce(item: _STColumn): STColumnFilter | null {\n if (item.filter == null) {\n return null;\n }\n\n let res: STColumnFilter | null = item.filter;\n res.type = res.type || 'default';\n res.showOPArea = res.showOPArea !== false;\n\n let icon = 'filter';\n let iconTheme = 'fill';\n let fixMenus = true;\n let value: NzSafeAny = undefined;\n switch (res.type) {\n case 'keyword':\n icon = 'search';\n iconTheme = 'outline';\n break;\n case 'number':\n icon = 'search';\n iconTheme = 'outline';\n res.number = {\n step: 1,\n min: -Infinity,\n max: Infinity,\n ...res.number\n };\n break;\n case 'date':\n icon = 'calendar';\n iconTheme = 'outline';\n res.date = {\n range: false,\n mode: 'date',\n showToday: true,\n showNow: false,\n ...res.date\n };\n break;\n case 'custom':\n break;\n default:\n fixMenus = false;\n break;\n }\n if (fixMenus && (res.menus == null || res.menus!.length === 0)) {\n res.menus = [{ value }];\n }\n\n if (res.menus?.length === 0) {\n return null;\n }\n\n if (typeof res.multiple === 'undefined') {\n res.multiple = true;\n }\n\n res.confirmText = res.confirmText || this.cog.filterConfirmText;\n res.clearText = res.clearText || this.cog.filterClearText;\n res.key = res.key || item.indexKey;\n res.icon = res.icon || icon;\n\n const baseIcon = { type: icon, theme: iconTheme } as STIcon;\n if (typeof res.icon === 'string') {\n res.icon = { ...baseIcon, type: res.icon } as STIcon;\n } else {\n res.icon = { ...baseIcon, ...res.icon };\n }\n\n this.updateDefault(res);\n\n if (this.acl) {\n res.menus = res.menus?.filter(w => this.acl.can(w.acl!));\n }\n\n return res.menus?.length === 0 ? null : res;\n }\n\n private restoreRender(item: _STColumn): void {\n if (item.renderTitle) {\n item.__renderTitle =\n typeof item.renderTitle === 'string'\n ? this.rowSource.getTitle(item.renderTitle)\n : (item.renderTitle as TemplateRef<void>);\n }\n if (item.render) {\n item.__render =\n typeof item.render === 'string' ? this.rowSource.getRow(item.render) : (item.render as TemplateRef<void>);\n }\n }\n\n private widgetCoerce(item: _STColumn): void {\n if (item.type !== 'widget') return;\n if (item.widget == null || !this.stWidgetRegistry.has(item.widget.type)) {\n delete item.type;\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n warn(`st: No widget for type \"${item.widget?.type}\"`);\n }\n }\n }\n\n private genHeaders(rootColumns: _STColumn[]): { headers: _STHeader[][]; headerWidths: string[] | null } {\n const rows: _STHeader[][] = [];\n const widths: string[] = [];\n const fillRowCells = (columns: _STColumn[], colIndex: number, rowIndex = 0): number[] => {\n // Init rows\n rows[rowIndex] = rows[rowIndex] || [];\n\n let currentColIndex = colIndex;\n const colSpans: number[] = columns.map(column => {\n const cell: STColumnGroupType = {\n column,\n colStart: currentColIndex,\n hasSubColumns: false\n };\n\n let colSpan = 1;\n\n const subColumns = column.children;\n if (Array.isArray(subColumns) && subColumns.length > 0) {\n colSpan = fillRowCells(subColumns, currentColIndex, rowIndex + 1).reduce((total, count) => total + count, 0);\n cell.hasSubColumns = true;\n } else {\n widths.push((cell.column.width as string) || '');\n }\n\n if ('colSpan' in column) {\n colSpan = column.colSpan!;\n }\n\n if ('rowSpan' in column) {\n cell.rowSpan = column.rowSpan;\n }\n\n cell.colSpan = colSpan;\n cell.colEnd = cell.colStart + colSpan - 1;\n rows[rowIndex].push(cell as NzSafeAny);\n\n currentColIndex += colSpan;\n\n return colSpan;\n });\n\n return colSpans;\n };\n\n fillRowCells(rootColumns, 0);\n\n // Handle `rowSpan`\n const rowCount = rows.length;\n for (let rowIndex = 0; rowIndex < rowCount; rowIndex += 1) {\n rows[rowIndex].forEach(cell => {\n if (!('rowSpan' in cell) && !(cell as _STHeader).hasSubColumns) {\n (cell as _STHeader).rowSpan = rowCount - rowIndex;\n }\n });\n }\n\n return { headers: rows, headerWidths: rowCount > 1 ? widths : null };\n }\n\n private cleanCond(list: _STColumn[]): _STColumn[] {\n const res: _STColumn[] = [];\n const copyList = deepCopy(list);\n for (const item of copyList) {\n if (typeof item.iif === 'function' && !item.iif(item)) {\n continue;\n }\n if (this.acl && item.acl && !this.acl.can(item.acl)) {\n continue;\n }\n if (Array.isArray(item.children) && item.children.length > 0) {\n item.children = this.cleanCond(item.children);\n }\n res.push(item);\n }\n return res;\n }\n\n private mergeClass(item: _STColumn): void {\n const builtInClassNames: string[] = [];\n if (item._isTruncate) {\n builtInClassNames.push('text-truncate');\n }\n const rawClassName = item.className;\n if (!rawClassName) {\n const typeClass = (\n {\n number: 'text-right',\n currency: 'text-right',\n date: 'text-center'\n } as NzSafeAny\n )[item.type!];\n if (typeClass) {\n builtInClassNames.push(typeClass);\n }\n item._className = builtInClassNames;\n return;\n }\n\n const rawClassNameIsArray = Array.isArray(rawClassName);\n if (!rawClassNameIsArray && typeof rawClassName === 'object') {\n const objClassNames: NgClassInterface = rawClassName;\n builtInClassNames.forEach(key => (objClassNames[key] = true));\n item._className = objClassNames;\n return;\n }\n\n const arrayClassNames = rawClassNameIsArray ? Array.from(rawClassName as string[]) : [rawClassName];\n arrayClassNames.splice(0, 0, ...builtInClassNames);\n item._className = [...new Set(arrayClassNames)].filter(w => !!w);\n }\n\n process(\n list: STColumn[],\n options: STColumnSourceProcessOptions\n ): { columns: _STColumn[]; headers: _STHeader[][]; headerWidths: string[] | null } {\n if (!list || list.length === 0) {\n return { columns: [], headers: [], headerWidths: null };\n }\n const { noIndex } = this.cog;\n let checkboxCount = 0;\n let radioCount = 0;\n const columns: _STColumn[] = [];\n\n const processItem = (item: _STColumn): _STColumn => {\n // index\n if (item.index) {\n if (!Array.isArray(item.index)) {\n item.index = item.index.toString().split('.');\n }\n item.indexKey = item.index.join('.');\n }\n\n // #region title\n\n const tit = (typeof item.title === 'string' ? { text: item.title } : item.title) || {};\n if (tit.i18n && this.i18nSrv) {\n tit.text = this.i18nSrv.fanyi(tit.i18n);\n }\n if (tit.text) {\n tit._text = this.dom.bypassSecurityTrustHtml(tit.text);\n }\n item.title = tit;\n\n // #endregion\n\n // no\n if (item.type === 'no') {\n item.noIndex = item.noIndex == null ? noIndex : item.noIndex;\n }\n // checkbox\n if (item.selections == null) {\n item.selections = [];\n }\n if (item.type === 'checkbox') {\n ++checkboxCount;\n if (!item.width) {\n item.width = `${item.selections.length > 0 ? 62 : 50}px`;\n }\n }\n if (this.acl) {\n item.selections = item.selections.filter(w => this.acl.can(w.acl!));\n }\n // radio\n if (item.type === 'radio') {\n ++radioCount;\n item.selections = [];\n if (!item.width) {\n item.width = '50px';\n }\n }\n // cell\n if (item.cell != null) {\n item.type = 'cell';\n }\n // types\n if (item.type === 'yn') {\n item.yn = { truth: true, ...this.cog.yn, ...item.yn };\n }\n // date\n if (item.type === 'date') {\n item.dateFormat = item.dateFormat || this.cog.date?.format;\n }\n if (\n (item.type === 'link' && typeof item.click !== 'function') ||\n (item.type === 'badge' && item.badge == null) ||\n (item.type === 'tag' && item.tag == null) ||\n (item.type === 'enum' && item.enum == null)\n ) {\n item.type = '';\n }\n item._isTruncate = !!item.width && options.widthMode.strictBehavior === 'truncate' && item.type !== 'img';\n // className\n this.mergeClass(item);\n // width\n if (typeof item.width === 'number') {\n item._width = item.width;\n item.width = `${item.width}px`;\n }\n item._left = false;\n item._right = false;\n item.safeType = item.safeType ?? options.safeType;\n\n // sorter\n item._sort = this.sortCoerce(item);\n // filter\n item.filter = this.filterCoerce(item) as STColumnFilter;\n // buttons\n item.buttons = this.btnCoerce(item.buttons!);\n // widget\n this.widgetCoerce(item);\n // restore custom row\n this.restoreRender(item);\n // resizable\n item.resizable = {\n disabled: true,\n bounds: 'window',\n minWidth: 60,\n maxWidth: 360,\n preview: true,\n ...options.resizable,\n ...(typeof item.resizable === 'boolean' ? ({ disabled: !item.resizable } as STResizable) : item.resizable)\n };\n\n return item;\n };\n\n const processList = (data: _STColumn[]): void => {\n for (const item of data) {\n columns.push(processItem(item));\n if (Array.isArray(item.children)) {\n processList(item.children);\n }\n }\n };\n\n const copyList = this.cleanCond(list as _STColumn[]);\n processList(copyList);\n\n if (checkboxCount > 1) {\n throw new Error(`[st]: just only one column checkbox`);\n }\n if (radioCount > 1) {\n throw new Error(`[st]: just only one column radio`);\n }\n\n this.fixedCoerce(columns as _STColumn[], options.expand);\n return {\n columns: columns.filter(w => !Array.isArray(w.children) || w.children.length === 0),\n ...this.genHeaders(copyList)\n };\n }\n\n restoreAllRender(columns: _STColumn[]): void {\n columns.forEach(i => this.restoreRender(i));\n }\n\n updateDefault(filter: STColumnFilter): this {\n if (filter.menus == null) return this;\n\n if (filter.type === 'default') {\n filter.default = filter.menus!.findIndex(w => w.checked!) !== -1;\n } else {\n filter.default = !!filter.menus![0].value;\n }\n return this;\n }\n\n cleanFilter(col: _STColumn): this {\n const f = col.filter!;\n f.default = false;\n if (f.type === 'default') {\n f.menus!.forEach(i => (i.checked = false));\n } else {\n f.menus![0].value = undefined;\n }\n return this;\n }\n}\n","import { DecimalPipe } from '@angular/common';\nimport { HttpParams } from '@angular/common/http';\nimport { Host, Injectable } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { Observable, of, map } from 'rxjs';\n\nimport type { CellOptions } from '@delon/abc/cell';\nimport { DatePipe, YNPipe, _HttpClient } from '@delon/theme';\nimport type { AlainSTConfig } from '@delon/util/config';\nimport { CurrencyService } from '@delon/util/format';\nimport { deepCopy, deepGet } from '@delon/util/other';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport type {\n STColumn,\n STColumnFilter,\n STColumnFilterMenu,\n STColumnMaxMultipleButton,\n STCustomRequestOptions,\n STData,\n STIcon,\n STMultiSort,\n STMultiSortResultType,\n STOnCellResult,\n STPage,\n STReq,\n STReqReNameType,\n STRequestOptions,\n STRes,\n STRowClassName,\n STSingleSort,\n STSortMap,\n STStatistical,\n STStatisticalResult,\n STStatisticalResults,\n STStatisticalType\n} from './st.interfaces';\nimport type { _STColumn, _STColumnButton, _STDataValue, _STHeader } from './st.types';\n\nexport interface STDataSourceOptions {\n pi: number;\n ps: number;\n paginator: boolean;\n data?: string | STData[] | Observable<STData[]>;\n total: number;\n req: STReq;\n res: STRes;\n page: STPage;\n columns: _STColumn[];\n headers: _STHeader[][];\n singleSort?: STSingleSort | null;\n multiSort?: STMultiSort;\n rowClassName?: STRowClassName | null;\n customRequest?: (options: STCustomRequestOptions) => Observable<NzSafeAny>;\n}\n\nexport interface STDataSourceResult {\n /** 是否需要显示分页器 */\n pageShow: boolean;\n /** 新 `pi`,若返回 `undefined` 表示用户受控 */\n pi: number;\n /** 新 `ps`,若返回 `undefined` 表示用户受控 */\n ps: number;\n /** 新 `total`,若返回 `undefined` 表示用户受控 */\n total: number;\n /** 数据 */\n list: STData[];\n /** 统计数据 */\n statistical: STStatisticalResults;\n}\n\n@Injectable()\nexport class STDataSource {\n private cog!: AlainSTConfig;\n private sortTick = 0;\n\n constructor(\n private http: _HttpClient,\n @Host() private datePipe: DatePipe,\n @Host() private ynPipe: YNPipe,\n @Host() private numberPipe: DecimalPipe,\n private currencySrv: CurrencyService,\n private dom: DomSanitizer\n ) {}\n\n setCog(val: AlainSTConfig): void {\n this.cog = val;\n }\n\n process(options: STDataSourceOptions): Observable<STDataSourceResult> {\n let data$: Observable<STData[]>;\n let isRemote = false;\n const { data, res, total, page, pi, ps, paginator, columns, headers } = options;\n let retTotal: number;\n let retPs: number;\n let retList: STData[];\n let retPi: number;\n let rawData: NzSafeAny;\n let showPage = page.show;\n\n if (typeof data === 'string') {\n isRemote = true;\n data$ = this.getByRemote(data, options).pipe(\n map(result => {\n rawData = result;\n let ret: STData[];\n if (Array.isArray(result)) {\n ret = result;\n retTotal = ret.length;\n retPs = retTotal;\n showPage = false;\n } else {\n const reName = res.reName!;\n if (typeof reName === 'function') {\n const fnRes = reName(result, { pi, ps, total });\n ret = fnRes.list;\n retTotal = fnRes.total;\n } else {\n // list\n ret = deepGet(result, reName.list as string[], []);\n if (ret == null || !Array.isArray(ret)) {\n ret = [];\n }\n // total\n const resultTotal = reName.total && deepGet(result, reName.total as string[], null);\n retTotal = resultTotal == null ? total || 0 : +resultTotal;\n }\n }\n return deepCopy(ret);\n })\n );\n } else if (data == null || Array.isArray(data)) {\n data$ = of(data ?? []);\n } else {\n // a cold observable\n data$ = data;\n }\n\n if (!isRemote) {\n data$ = data$.pipe(\n // sort\n map((result: STData[]) => {\n rawData = result;\n let copyResult = deepCopy(result);\n const sorterFn = this.getSorterFn(headers);\n if (sorterFn) {\n copyResult = copyResult.sort(sorterFn);\n }\n return copyResult;\n }),\n // filter\n map((result: STData[]) => {\n columns\n .filter(w => w.filter)\n .forEach(c => {\n const filter = c.filter!;\n const values = this.getFilteredData(filter);\n if (values.length === 0) return;\n const onFilter = filter.fn;\n if (typeof onFilter !== 'function') {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.warn(`[st] Muse provide the fn function in filter`);\n }\n return;\n }\n result = result.filter(record => values.some(v => onFilter(v, record)));\n });\n return result;\n }),\n // paging\n map((result: STData[]) => {\n if (paginator && page.front) {\n const maxPageIndex = Math.ceil(result.length / ps);\n retPi = Math.max(1, pi > maxPageIndex ? maxPageIndex : pi);\n retTotal = result.length;\n if (page.show === true) {\n return result.slice((retPi - 1) * ps, retPi * ps);\n }\n }\n return result;\n })\n );\n }\n\n // pre-process\n if (typeof res.process === 'function') {\n data$ = data$.pipe(map(result => res.process!(result, rawData)));\n }\n\n data$ = data$.pipe(map(result => this.optimizeData({ result, columns, rowClassName: options.rowClassName })));\n\n return data$.pipe(\n map(result => {\n retList = result;\n const realTotal = retTotal || total;\n const realPs = retPs || ps;\n\n return {\n pi: retPi,\n ps: retPs,\n total: retTotal,\n list: retList,\n statistical: this.genStatistical(columns as _STColumn[], retList, rawData),\n pageShow: typeof showPage === 'undefined' ? realTotal > realPs : showPage\n } as STDataSourceResult;\n })\n );\n }\n\n private get(item: STData, col: _STColumn, idx: number): _STDataValue {\n try {\n const safeHtml = col.safeType === 'safeHtml';\n if (col.format) {\n const formatRes = col.format(item, col, idx) || '';\n return {\n text: formatRes,\n _text: safeHtml ? this.dom.bypassSecurityTrustHtml(formatRes) : formatRes,\n org: formatRes,\n safeType: col.safeType!\n };\n }\n\n const value = deepGet(item, col.index as string[], col.default);\n\n let text = value;\n let color: string | undefined;\n let tooltip: string | undefined;\n switch (col.type) {\n case 'no':\n text = this.getNoIndex(item, col, idx);\n break;\n case 'img':\n text = value ? `<img src=\"${value}\" class=\"img\">` : '';\n break;\n case 'number':\n text = this.numberPipe.transform(value, col.numberDigits);\n break;\n case 'currency':\n text = this.currencySrv.format(value, col.currency?.format);\n break;\n case 'date':\n text =\n value == null || value === col.default || (typeof value === 'number' && value <= 0)\n ? col.default\n : this.datePipe.transform(value, col.dateFormat);\n break;\n case 'yn':\n text = this.ynPipe.transform(value === col.yn!.truth, col.yn!.yes!, col.yn!.no!, col.yn!.mode!, false);\n break;\n case 'enum':\n text = col.enum![value];\n break;\n case 'tag':\n case 'badge':\n const data = col.type === 'tag' ? col.tag : col.badge;\n if (data && data[text]) {\n const dataItem = data[text];\n text = dataItem.text;\n color = dataItem.color;\n tooltip = dataItem.tooltip;\n } else {\n text = '';\n }\n break;\n }\n if (text == null) text = '';\n return {\n text,\n _text: safeHtml ? this.dom.bypassSecurityTrustHtml(text) : text,\n org: value,\n color,\n tooltip,\n safeType: col.safeType!,\n buttons: []\n };\n } catch (ex) {\n const text = `INVALID DATA`;\n console.error(`Failed to get data`, item, col, ex);\n return { text, _text: text, org: text, buttons: [], safeType: 'text' };\n }\n }\n\n private getByRemote(url: string, options: STDataSourceOptions): Observable<unknown> {\n const { req, page, paginator, pi, ps, singleSort, multiSort, columns, headers } = options;\n const method = (req.method || 'GET').toUpperCase();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let params: { [param: string]: any } = {};\n const reName = req.reName as STReqReNameType;\n if (paginator) {\n if (req.type === 'page') {\n params = {\n [reName.pi as string]: page.zeroIndexed ? pi - 1 : pi,\n [reName.ps as string]: ps\n };\n } else {\n params = {\n [reName.skip as string]: (pi - 1) * ps,\n [reName.limit as string]: ps\n };\n }\n }\n params = {\n ...params,\n ...req.params,\n ...this.getReqSortMap(singleSort, multiSort, headers),\n ...this.getReqFilterMap(columns)\n };\n if (options.req.ignoreParamNull == true) {\n Object.keys(params).forEach(key => {\n if (params[key] == null) delete params[key];\n });\n }\n\n let reqOptions: STRequestOptions = {\n params,\n body: req.body,\n headers: req.headers\n };\n if (method === 'POST' && req.allInBody === true) {\n reqOptions = {\n body: { ...req.body, ...params },\n headers: req.headers\n };\n }\n if (typeof req.process === 'function') {\n reqOptions = req.process(reqOptions);\n }\n if (!(reqOptions.params instanceof HttpParams)) {\n reqOptions.params = new HttpParams({ fromObject: reqOptions.params });\n }\n if (typeof options.customRequest === 'function') {\n return options.customRequest({ method, url, options: reqOptions });\n }\n return this.http.request(method, url, reqOptions);\n }\n\n getCell(c: STColumn, item: STData, idx: number): STOnCellResult {\n const onCellResult = typeof c.onCell === 'function' ? c.onCell(item, idx) : null;\n const mergedColSpan = onCellResult?.colSpan ?? 1;\n const mergedRowSpan = onCellResult?.rowSpan ?? 1;\n return {\n colSpan: mergedColSpan <= 0 ? null : mergedColSpan,\n rowSpan: mergedRowSpan <= 0 ? null : mergedRowSpan\n } as STOnCellResult;\n }\n\n optimizeData(options: { columns: _STColumn[]; result: STData[]; rowClassName?: STRowClassName | null }): STData[] {\n const { result, columns, rowClassName } = options;\n for (let i = 0, len = result.length; i < len; i++) {\n result[i]._values = columns.map(c => {\n const props = this.getCell(c, result[i], i);\n\n if (Array.isArray(c.buttons) && c.buttons.length > 0) {\n return { buttons: this.genButtons(c.buttons, result[i], c), _text: '', props };\n }\n\n let cell: CellOptions | undefined;\n if (typeof c.cell === 'function') {\n cell = c.cell(result[i], c);\n }\n return { ...this.get(result[i], c, i), props, cell };\n });\n result[i]._rowClassName = [rowClassName ? rowClassName(result[i], i) : null, result[i].className]\n .filter(w => !!w)\n .join(' ');\n }\n return result;\n }\n\n getNoIndex(item: STData, col: _STColumn, idx: number): number {\n return typeof col.noIndex === 'function' ? col.noIndex(item, col, idx) : col.noIndex! + idx;\n }\n\n private genButtons(_btns: _STColumnButton[], item: STData, col: STColumn): _STColumnButton[] {\n const fn = (btns: _STColumnButton[]): _STColumnButton[] => {\n return deepCopy(btns).filter(btn => {\n const result = typeof btn.iif === 'function' ? btn.iif(item, btn, col) : true;\n const isRenderDisabled = btn.iifBehavior === 'disabled';\n btn._result = result;\n btn._disabled = !result && isRenderDisabled;\n if (btn.children?.length) {\n btn.children = fn(btn.children!);\n }\n return result || isRenderDisabled;\n });\n };\n\n const res = fn(_btns);\n\n const fnText = (btns: _STColumnButton[]): _STColumnButton[] => {\n for (const btn of btns) {\n btn._text = typeof btn.text === 'function' ? btn.text(item, btn) : btn.text || '';\n btn._className = typeof btn.className === 'function' ? btn.className(item, btn) : btn.className;\n btn._icon = typeof btn.icon === 'function' ? btn.icon(item, btn) : (btn.icon as STIcon);\n if (btn.children?.length) {\n btn.children = fnText(btn.children!);\n }\n }\n return btns;\n };\n\n return this.fixMaxMultiple(fnText(res), col);\n }\n\n private fixMaxMultiple(btns: _STColumnButton[], col: STColumn): _STColumnButton[] {\n const curCog = col.maxMultipleButton;\n const btnSize = btns.length;\n if (curCog == null || btnSize <= 0) return btns;\n\n const cog: STColumnMaxMultipleButton = {\n ...this.cog.maxMultipleButton,\n ...(typeof curCog === 'number' ? { count: curCog } : curCog)\n };\n\n if (cog.count! >= btnSize) return btns;\n\n const newBtns: _STColumnButton[] = btns.slice(0, cog.count);\n newBtns.push({ _text: cog.text, children: btns.slice(cog.count) });\n return newBtns;\n }\n\n // #region sort\n\n private getValidSort(headers: _STHeader[][]): STSortMap[] {\n return headers.reduce((a, header) => {\n const ls = header\n .map(i => i.column)\n .filter(item => item._sort && item._sort.enabled && item._sort.default)\n .map(item => item._sort!);\n return a.concat(...ls);\n }, [] as STSortMap[]);\n }\n\n private getSorterFn(headers: _STHeader[][]): ((a: STData, b: STData) => number) | void {\n const sortList = this.getValidSort(headers);\n if (sortList.length === 0) {\n return;\n }\n const sortItem = sortList[0];\n if (sortItem.compare === null) {\n return;\n }\n if (typeof sortItem.compare !== 'function') {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.warn(`[st] Muse provide the compare function in sort`);\n }\n return;\n }\n\n return (a: STData, b: STData) => {\n const result = sortItem.compare!(a, b);\n if (result !== 0) {\n return sortItem.default === 'descend' ? -result : result;\n }\n return 0;\n };\n }\n\n get nextSortTick(): number {\n return ++this.sortTick;\n }\n\n getReqSortMap(\n singleSort: STSingleSort | undefined | null,\n multiSort: STMultiSort | undefined,\n headers: _STHeader[][]\n ): STMultiSortResultType {\n let ret: STMultiSortResultType = {};\n const sortList = this.getValidSort(headers);\n\n if (multiSort) {\n const ms: STMultiSort = {\n key: 'sort',\n separator: '-',\n nameSeparator: '.',\n keepEmptyKey: true,\n arrayParam: false,\n ...multiSort\n };\n\n const sortMap = sortList\n .sort((a, b) => a.tick - b.tick)\n .map(item => item.key! + ms.nameSeparator + ((item.reName || {})[item.default!] || item.default));\n\n ret = { [ms.key!]: ms.arrayParam ? sortMap : sortMap.join(ms.separator) };\n\n return sortMap.length === 0 && ms.keepEmptyKey === false ? {} : ret;\n }\n\n if (sortList.length === 0) return ret;\n\n const mapData = sortList[0];\n let sortFiled = mapData.key;\n let sortValue = (sortList[0].reName || {})[mapData.default!] || mapData.default;\n if (singleSort) {\n sortValue = sortFiled + (singleSort.nameSeparator || '.') + sortValue;\n sortFiled = singleSort.key || 'sort';\n }\n ret[sortFiled as string] = sortValue as string;\n return ret;\n }\n\n // #endregion\n\n // #region filter\n\n private getFilteredData(filter: STColumnFilter): STColumnFilterMenu[] {\n return filter.type === 'default' ? filter.menus!.filter(f => f.checked === true) : filter.menus!.slice(0, 1);\n }\n\n private getReqFilterMap(columns: _STColumn[]): { [key: string]: string } {\n let ret = {};\n columns\n .filter(w => w.filter && w.filter.default === true)\n .forEach(col => {\n const filter = col.filter!;\n const values = this.getFilteredData(filter);\n let obj: { [key: string]: NzSafeAny } = {};\n if (filter.reName) {\n obj = filter.reName!(filter.menus!, col);\n } else {\n obj[filter.key!] = values.map(i => i.value).join(',');\n }\n ret = { ...ret, ...obj };\n });\n return ret;\n }\n\n // #endregion\n\n // #region statistical\n\n private genStatistical(columns: _STColumn[], list: STData[], rawData: NzSafeAny): STStatisticalResults {\n const res: { [key: string]: NzSafeAny } = {};\n columns.forEach((col, index) => {\n res[col.key || col.indexKey || index] =\n col.statistical == null ? {} : this.getStatistical(col, index, list, rawData);\n });\n return res;\n }\n\n private getStatistical(col: _STColumn, index: number, list: STData[], rawData: NzSafeAny): STStatisticalResult {\n const val = col.statistical;\n const item: STStatistical = {\n digits: 2,\n currency: undefined,\n ...(typeof val === 'string' ? { type: val as STStatisticalType } : (val as STStatistical))\n };\n let res: STStatisticalResult = { value: 0 };\n let currency = false;\n if (typeof item.type === 'function') {\n res = item.type(this.getValues(index, list), col, list, rawData);\n currency = true;\n } else {\n switch (item.type) {\n case 'count':\n res.value = list.length;\n break;\n case 'distinctCount':\n res.value = this.getValues(index, list).filter((value, idx, self) => self.indexOf(value) === idx).length;\n break;\n case 'sum':\n res.value = this.toFixed(this.getSum(index, list), item.digits!);\n currency = true;\n break;\n case 'average':\n res.value = this.toFixed(this.getSum(index, list) / list.length, item.digits!);\n currency = true;\n break;\n case 'max':\n res.value = Math.max(...this.getValues(index, list));\n currency = true;\n break;\n case 'min':\n res.value = Math.min(...this.getValues(index, list));\n currency = true;\n break;\n }\n }\n if (item.currency === true || (item.currency == null && currency === true)) {\n res.text = this.currencySrv.format(res.value, col.currency?.format) as string;\n } else {\n res.text = String(res.value);\n }\n return res;\n }\n\n private toFixed(val: number, digits: number): number {\n if (isNaN(val) || !isFinite(val)) {\n return 0;\n }\n return parseFloat(val.toFixed(digits));\n }\n\n private getValues(index: number, list: STData[]): number[] {\n return list.map(i => i._values[index].org).map(i => (i === '' || i == null ? 0 : i));\n }\n\n private getSum(index: number, list: STData[]): number {\n return this.getValues(index, list).reduce((p, i) => (p += parseFloat(String(i))), 0);\n }\n\n // #endregion\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { XlsxExportResult, XlsxService } from '@delon/abc/xlsx';\nimport { deepGet } from '@delon/util/other';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { STColumn, STExportOptions } from './st.interfaces';\nimport { _STColumn } from './st.types';\n\n@Injectable()\nexport class STExport {\n private readonly xlsxSrv = inject(XlsxService);\n\n private _stGet(item: NzSafeAny, col: STColumn, index: number, colIndex: number): NzSafeAny {\n const ret: { [key: string]: NzSafeAny } = { t: 's', v: '' };\n\n if (col.format) {\n ret.v = col.format(item, col, index);\n } else {\n const val = item._values ? item._values[colIndex].text : deepGet(item, col.index as string[], '');\n ret.v = val;\n if (val != null) {\n switch (col.type) {\n case 'currency':\n ret.t = 'n';\n break;\n case 'date':\n // Can't be a empty value, it will cause `#NULL!`\n // See https://github.com/SheetJS/sheetjs/blob/master/docbits/52_datatype.md\n if (`${val}`.length > 0) {\n ret.t = 'd';\n // Number Formats: https://github.com/SheetJS/sheetjs/blob/master/docbits/63_numfmt.md\n ret.z = col.dateFormat;\n }\n break;\n case 'yn':\n const yn = col.yn!;\n ret.v = val === yn.truth ? yn.yes : yn.no;\n break;\n }\n }\n }\n\n ret.v = ret.v ?? '';\n\n return ret;\n }\n\n private genSheet(opt: STExportOptions): { [sheet: string]: unknown } {\n const sheets: { [sheet: string]: { [key: string]: NzSafeAny } } = {};\n const sheet: { [key: string]: NzSafeAny } = (sheets[opt.sheetname || 'Sheet1'] = {});\n const dataLen = opt.data!.length;\n const columns = opt.columens! as _STColumn[];\n let validColCount = 0;\n let wpx = false;\n const invalidFn = (col: _STColumn): boolean =>\n col.exported === false || !col.index || !(!col.buttons || col.buttons.length === 0);\n for (const [idx, col] of columns.entries()) {\n if (invalidFn(col)) continue;\n if (!wpx && col._width != null) wpx = true;\n ++validColCount;\n const columnName = this.xlsxSrv!.numberToSchema(validColCount);\n sheet[`${columnName}1`] = {\n t: 's',\n v: typeof col.title === 'object' ? col.title.text : col.title\n };\n for (let dataIdx = 0; dataIdx < dataLen; dataIdx++) {\n sheet[`${columnName}${dataIdx + 2}`] = this._stGet(opt.data![dataIdx], col, dataIdx, idx);\n }\n }\n if (wpx) {\n // wpx: width in screen pixels https://github.com/SheetJS/sheetjs#column-properties\n sheet['!cols'] = columns.filter(col => !invalidFn(col)).map(col => ({ wpx: col._width }));\n }\n\n if (validColCount > 0 && dataLen > 0) {\n sheet['!ref'] = `A1:${this.xlsxSrv!.numberToSchema(validColCount)}${dataLen + 1}`;\n }\n\n return sheets;\n }\n\n async export(opt: STExportOptions): Promise<XlsxExportResult> {\n const sheets = this.genSheet(opt);\n return this.xlsxSrv.export({\n sheets,\n filename: opt.filename,\n callback: opt.callback\n });\n }\n}\n","import { Directive, Input, OnInit, ViewContainerRef, inject } from '@angular/core';\n\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { STWidgetRegistry } from './st-widget';\nimport { STColumn, STData } from './st.interfaces';\n\n@Directive({\n selector: '[st-widget-host]'\n})\nexport class STWidgetHostDirective implements OnInit {\n private readonly stWidgetRegistry = inject(STWidgetRegistry);\n private readonly viewContainerRef = inject(ViewContainerRef);\n\n @Input() record!: STData;\n @Input() column!: STColumn;\n\n ngOnInit(): void {\n const widget = this.column.widget!;\n const componentType = this.stWidgetRegistry.get(widget.type);\n\n this.viewContainerRef.clear();\n const componentRef = this.viewContainerRef.createComponent(componentType);\n const { record, column } = this;\n const data: { [key: string]: NzSafeAny } = widget.params ? widget.params({ record, column }) : { record };\n Object.keys(data).forEach(key => {\n (componentRef.instance as NzSafeAny)[key] = data[key];\n });\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport type { LocaleData } from '@delon/theme';\nimport { NzCheckboxComponent } from 'ng-zorro-antd/checkbox';\nimport { NzDatePickerComponent, NzRangePickerComponent } from 'ng-zorro-antd/date-picker';\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { NzIconDirective } from 'ng-zorro-antd/icon';\nimport { NzInputDirective } from 'ng-zorro-antd/input';\nimport { NzInputNumberComponent } from 'ng-zorro-antd/input-number';\nimport { NzMenuModule } from 'ng-zorro-antd/menu';\nimport { NzRadioComponent } from 'ng-zorro-antd/radio';\n\nimport type { STColumnFilter, STColumnFilterMenu, STIcon } from './st.interfaces';\nimport type { _STColumn } from './st.types';\n\n@Component({\n selector: 'st-filter',\n template: `\n <span\n class=\"ant-table-filter-trigger\"\n [class.active]=\"visible || f.default\"\n nz-dropdown\n [nzDropdownMenu]=\"filterMenu\"\n nzTrigger=\"click\"\n [nzClickHide]=\"false\"\n [(nzVisible)]=\"visible\"\n nzOverlayClassName=\"st__filter-wrap\"\n (click)=\"stopPropagation($event)\"\n >\n <nz-icon [nzType]=\"icon.type\" [nzTheme]=\"icon.theme!\" />\n </span>\n <nz-dropdown-menu #filterMenu=\"nzDropdownMenu\">\n <div class=\"ant-table-filter-dropdown\">\n @switch (f.type) {\n @case ('keyword') {\n <div class=\"st__filter-keyword\">\n <input\n type=\"text\"\n nz-input\n [attr.placeholder]=\"f.placeholder\"\n [(ngModel)]=\"f.menus![0]!.value\"\n (ngModelChange)=\"n.emit($event)\"\n (keyup.enter)=\"confirm()\"\n />\n </div>\n }\n @case ('number') {\n <div class=\"p-sm st__filter-number\">\n <nz-input-number\n [(ngModel)]=\"f.menus![0]!.value\"\n (ngModelChange)=\"n.emit($event)\"\n [nzMin]=\"f.number!.min!\"\n [nzMax]=\"f.number!.max!\"\n [nzStep]=\"f.number!.step!\"\n [nzPrecision]=\"f.number!.precision || null\"\n [nzPlaceHolder]=\"f.placeholder!\"\n class=\"width-100\"\n />\n </div>\n }\n @case ('date') {\n <div class=\"p-sm st__filter-date\">\n @if (f.date!.range) {\n <nz-range-picker\n nzInline\n [nzMode]=\"$any(f.date!.mode)\"\n [(ngModel)]=\"f.menus![0]!.value\"\n (ngModelChange)=\"n.emit($event)\"\n [nzShowNow]=\"f.date!.showNow\"\n [nzShowToday]=\"f.date!.showToday\"\n [nzDisabledDate]=\"f.date!.disabledDate\"\n [nzDisabledTime]=\"f.date!.disabledTime\"\n />\n } @else {\n <nz-date-picker\n nzInline\n [nzMode]=\"$any(f.date!.mode)\"\n [(ngModel)]=\"f.menus![0]!.value\"\n (ngModelChange)=\"n.emit($event)\"\n [nzShowNow]=\"f.date!.showNow\"\n [nzShowToday]=\"f.date!.showToday\"\n [nzDisabledDate]=\"f.date!.disabledDate\"\n [nzDisabledTime]=\"f.date!.disabledTime\"\n />\n }\n </div>\n }\n @case ('custom') {\n <div class=\"st__filter-custom\">\n <ng-template\n [ngTemplateOutlet]=\"f.custom!\"\n [ngTemplateOutletContext]=\"{ $implicit: f, col: col, handle: this }\"\n />\n </div>\n }\n @default {\n <ul nz-menu>\n @for (filter of f.menus; track $index) {\n <li nz-menu-item>\n @if (f.multiple) {\n <label nz-checkbox [(ngModel)]=\"filter.checked\" (ngModelChange)=\"checkboxChange()\">\n {{ filter.text }}\n </label>\n } @else {\n <label nz-radio [ngModel]=\"filter.checked\" (ngModelChange)=\"radioChange(filter)\">\n {{ filter.text }}\n </label>\n }\n </li>\n }\n </ul>\n }\n }\n @if (f.showOPArea) {\n <div class=\"ant-table-filter-dropdown-btns\">\n <a class=\"ant-table-filter-dropdown-link confirm\" (click)=\"confirm()\">\n <span>{{ f.confirmText || locale.filterConfirm }}</span>\n </a>\n <a class=\"ant-table-filter-dropdown-link clear\" (click)=\"reset()\">\n <span>{{ f.clearText || locale.filterReset }}</span>\n </a>\n </div>\n }\n </div>\n </nz-dropdown-menu>\n `,\n host: {\n '[class.ant-table-filter-trigger-container]': `true`,\n '[class.st__filter]': `true`,\n '[class.ant-table-filter-trigger-container-open]': `visible`\n },\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n FormsModule,\n NzDropDownModule,\n NzIconDirective,\n NzInputDirective,\n NzInputNumberComponent,\n NzRangePickerComponent,\n NzDatePickerComponent,\n NgTemplateOutlet,\n NzMenuModule,\n NzCheckboxComponent,\n NzRadioComponent\n ]\n})\nexport class STFilterComponent {\n private readonly cdr = inject(ChangeDetectorRef);\n\n visible = false;\n @Input() col!: _STColumn;\n @Input() locale: LocaleData = {};\n @Input() f!: STColumnFilter;\n @Output() readonly n = new EventEmitter<unknown>();\n @Output() readonly handle = new EventEmitter<boolean>();\n get icon(): STIcon {\n return this.f.icon as STIcon;\n }\n\n stopPropagation($event: MouseEvent): void {\n $event.stopPropagation();\n }\n\n checkboxChange(): void {\n this.n.emit(this.f.menus?.filter(w => w.checked));\n }\n\n radioChange(item: STColumnFilterMenu): void {\n this.f.menus!.forEach(i => (i.checked = false));\n item.checked = !item.checked;\n this.n.emit(item);\n }\n\n close(result?: boolean): void {\n if (result != null) this.handle.emit(result);\n\n this.visible = false;\n this.cdr.detectChanges();\n }\n\n confirm(): this {\n this.handle.emit(true);\n return this;\n }\n\n reset(): this {\n this.handle.emit(false);\n return this;\n }\n}\n","import { AlainSTConfig } from '@delon/util/config';\n\nexport const ST_DEFAULT_CONFIG: AlainSTConfig = {\n pi: 1,\n ps: 10,\n size: 'default',\n responsive: true,\n responsiveHideHeaderFooter: false,\n req: {\n type: 'page',\n method: 'GET',\n allInBody: false,\n lazyLoad: false,\n ignoreParamNull: false,\n reName: { pi: 'pi', ps: 'ps', skip: 'skip', limit: 'limit' }\n },\n res: {\n reName: { list: ['list'], total: ['total'] }\n },\n page: {\n front: true,\n zeroIndexed: false,\n position: 'bottom',\n placement: 'right',\n show: true,\n showSize: false,\n pageSizes: [10, 20, 30, 40, 50],\n showQuickJumper: false,\n total: true,\n toTop: true,\n toTopOffset: 100,\n itemRender: null,\n simple: false\n },\n modal: {\n paramsName: 'record',\n size: 'lg',\n exact: true\n },\n drawer: {\n paramsName: 'record',\n size: 'md',\n footer: true,\n footerHeight: 55\n },\n pop: {\n title: '确认删除吗?',\n trigger: 'click',\n placement: 'top'\n },\n btnIcon: {\n theme: 'outline',\n spin: false\n },\n noIndex: 1,\n expandRowByClick: false,\n expandAccordion: false,\n widthMode: {\n type: 'default',\n strictBehavior: 'truncate'\n },\n virtualItemSize: 54,\n virtualMaxBufferPx: 200,\n virtualMinBufferPx: 100,\n iifBehavior: 'hide',\n loadingDelay: 0,\n safeType: 'safeHtml',\n date: {\n format: `yyyy-MM-dd HH:mm`\n },\n yn: {\n truth: true,\n yes: '是',\n mode: 'icon'\n },\n maxMultipleButton: {\n text: '更多',\n count: 2\n }\n};\n","import { moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';\nimport type { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport { DecimalPipe, DOCUMENT, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n inject,\n input,\n Input,\n numberAttribute,\n OnChanges,\n Output,\n SimpleChange,\n SimpleChanges,\n TemplateRef,\n TrackByFunction,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { isObservable, Observable, of, filter, catchError, map, finalize, throwError, lastValueFrom } from 'rxjs';\n\nimport { CellComponent } from '@delon/abc/cell';\nimport {\n ALAIN_I18N_TOKEN,\n DatePipe,\n DelonLocaleService,\n DrawerHelper,\n LocaleData,\n ModalHelper,\n YNPipe\n} from '@delon/theme';\nimport { AlainConfigService, AlainSTConfig } from '@delon/util/config';\nimport { deepCopy, deepMergeKey } from '@delon/util/other';\nimport { NzBadgeComponent } from 'ng-zorro-antd/badge';\nimport { NzCheckboxComponent } from 'ng-zorro-antd/checkbox';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { NzDividerComponent } from 'ng-zorro-antd/divider';\nimport { NzContextMenuService, NzDropdownMenuComponent, NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { NzIconDirective } from 'ng-zorro-antd/icon';\nimport { NzMenuModule } from 'ng-zorro-antd/menu';\nimport { NzPopconfirmDirective } from 'ng-zorro-antd/popconfirm';\nimport { NzRadioComponent } from 'ng-zorro-antd/radio';\nimport { NzResizableModule, NzResizeEvent } from 'ng-zorro-antd/resizable';\nimport { NzTableComponent, NzTableModule } from 'ng-zorro-antd/table';\nimport { NzTagComponent } from 'ng-zorro-antd/tag';\nimport { NzTooltipDirective } from 'ng-zorro-antd/tooltip';\n\nimport { STColumnSource } from './st-column-source';\nimport { STDataSource, STDataSourceOptions, STDataSourceResult } from './st-data-source';\nimport { STExport } from './st-export';\nimport { STFilterComponent } from './st-filter.component';\nimport { STRowSource } from './st-row.directive';\nimport { STWidgetHostDirective } from './st-widget-host.directive';\nimport { ST_DEFAULT_CONFIG } from './st.config';\nimport type {\n STChange,\n STChangeType,\n STClickRowClassName,\n STClickRowClassNameType,\n STColumn,\n STColumnButton,\n STColumnSafeType,\n STColumnSelection,\n STContextmenuFn,\n STContextmenuItem,\n STCustomRequestOptions,\n STData,\n STDragOptions,\n STError,\n STExportOptions,\n STLoadOptions,\n STMultiSort,\n STPage,\n STReq,\n STRes,\n STResetColumnsOption,\n STResizable,\n STRowClassName,\n STSingleSort,\n STStatisticalResults,\n STWidthMode\n} from './st.interfaces';\nimport type { _STColumn, _STDataValue, _STHeader, _STTdNotify, _STTdNotifyType } from './st.types';\n\n@Component({\n selector: 'st-td',\n templateUrl: './st-td.component.html',\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n FormsModule,\n NzTooltipDirective,\n NgTemplateOutlet,\n NzPopconfirmDirective,\n NzIconDirective,\n NzCheckboxComponent,\n NzRadioComponent,\n NzTagComponent,\n NzBadgeComponent,\n CellComponent,\n STWidgetHostDirective,\n NzDropDownModule,\n NzMenuModule,\n NzDividerComponent\n ]\n})\nexport class STTdComponent {\n private readonly stComp = inject(STComponent, { host: true });\n private readonly router = inject(Router);\n private readonly modalHelper = inject(ModalHelper);\n private readonly drawerHelper = inject(DrawerHelper);\n\n @Input() c!: _STColumn;\n @Input() cIdx!: number;\n @Input() data!: STData[];\n @Input() i!: STData;\n @Input() index!: number;\n @Output() readonly n = new EventEmitter<_STTdNotify>();\n\n private get routerState(): { pi: number; ps: number; total: number } {\n const { pi, ps, total } = this.stComp;\n return { pi, ps, total };\n }\n\n private report(type: _STTdNotifyType): void {\n this.n.emit({ type, item: this.i, col: this.c });\n }\n\n _checkbox(value: boolean): void {\n this.i.checked = value;\n this.report('checkbox');\n }\n\n _radio(): void {\n this.data.filter(w => !w.disabled).forEach(i => (i.checked = false));\n this.i.checked = true;\n this.report('radio');\n }\n\n _link(e: Event): boolean {\n this._stopPropagation(e);\n const res = this.c.click!(this.i, this.stComp);\n if (typeof res === 'string') {\n this.router.navigateByUrl(res, { state: this.routerState });\n }\n return false;\n }\n\n _client(): void {\n this.c.click?.(this.i, this.stComp);\n }\n\n _stopPropagation(ev: Event): void {\n ev.preventDefault();\n ev.stopPropagation();\n }\n\n _btn(btn: STColumnButton, ev?: Event): void {\n ev?.stopPropagation();\n const cog = this.stComp.cog;\n let record = this.i;\n if (btn.type === 'modal' || btn.type === 'static') {\n if (cog.modal!.pureRecoard === true) {\n record = this.stComp.pureItem(record)!;\n }\n const modal = btn.modal!;\n const obj = { [modal.paramsName!]: record };\n (this.modalHelper[btn.type === 'modal' ? 'create' : 'createStatic'] as NzSafeAny)(\n modal.component,\n { ...obj, ...(modal.params && modal.params(record)) },\n deepMergeKey({}, true, cog.modal, modal)\n )\n .pipe(filter(w => typeof w !== 'undefined'))\n .subscribe((res: NzSafeAny) => this.btnCallback(record, btn, res));\n return;\n } else if (btn.type === 'drawer') {\n if (cog.drawer!.pureRecoard === true) {\n record = this.stComp.pureItem(record)!;\n }\n const drawer = btn.drawer!;\n const obj = { [drawer.paramsName!]: record };\n this.drawerHelper\n .create(\n drawer.title!,\n drawer.component,\n { ...obj, ...(drawer.params && drawer.params(record)) },\n deepMergeKey({}, true, cog.drawer, drawer)\n )\n .pipe(filter(w => typeof w !== 'undefined'))\n .subscribe(res => this.btnCallback(record, btn, res));\n return;\n } else if (btn.type === 'link') {\n const clickRes = this.btnCallback(record, btn);\n if (typeof clickRes === 'string') {\n this.router.navigateByUrl(clickRes, { state: this.routerState });\n }\n return;\n }\n this.btnCallback(record, btn);\n }\n\n private btnCallback(record: STData, btn: STColumnButton, modal?: NzSafeAny): NzSafeAny {\n if (!btn.click) return;\n if (typeof btn.click === 'string') {\n switch (btn.click) {\n case 'load':\n this.stComp.load();\n break;\n case 'reload':\n this.stComp.reload();\n break;\n }\n } else {\n return btn.click(record, modal, this.stComp);\n }\n }\n}\n\n@Component({\n selector: 'st',\n exportAs: 'st',\n templateUrl: './st.component.html',\n providers: [STDataSource, STRowSource, STColumnSource, STExport, DatePipe, YNPipe, DecimalPipe],\n host: {\n '[class.st]': `true`,\n '[class.st__p-left]': `page.placement === 'left'`,\n '[class.st__p-center]': `page.placement === 'center'`,\n '[class.st__width-strict]': `widthMode.type === 'strict'`,\n '[class.st__row-class]': `rowClassName`,\n '[class.ant-table-rep]': `responsive`,\n '[class.ant-table-rep__hide-header-footer]': `responsiveHideHeaderFooter`\n },\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n FormsModule,\n NzTableModule,\n NzTooltipDirective,\n NzCheckboxComponent,\n NzResizableModule,\n NgTemplateOutlet,\n NzDropDownModule,\n NzIconDirective,\n NzMenuModule,\n STFilterComponent,\n STTdComponent,\n DragDropModule\n ]\n})\nexport class STComponent implements AfterViewInit, OnChanges {\n private readonly i18nSrv = inject(ALAIN_I18N_TOKEN);\n private readonly el: HTMLElement = inject(ElementRef).nativeElement;\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly doc = inject(DOCUMENT);\n private readonly exportSrv = inject(STExport);\n private readonly columnSource = inject(STColumnSource);\n private readonly dataSource = inject(STDataSource);\n private readonly delonI18n = inject(DelonLocaleService);\n private readonly cms = inject(NzContextMenuService, { optional: true });\n private readonly destroy$ = inject(DestroyRef);\n\n private totalTpl = ``;\n private inied = false;\n cog!: AlainSTConfig;\n private _req!: STReq;\n private _res!: STRes;\n private _page!: STPage;\n private _widthMode!: STWidthMode;\n private customWidthConfig: boolean = false;\n _widthConfig: string[] = [];\n locale: LocaleData = {};\n _loading = false;\n _data: STData[] = [];\n _statistical: STStatisticalResults = {};\n _isPagination = true;\n _allChecked = false;\n _allCheckedDisabled = false;\n _indeterminate = false;\n _headers: _STHeader[][] = [];\n _columns: _STColumn[] = [];\n contextmenuList: STContextmenuItem[] = [];\n @ViewChild('table') readonly orgTable!: NzTableComponent<STData>;\n @ViewChild('contextmenuTpl') readonly contextmenuTpl!: NzDropdownMenuComponent;\n\n @Input()\n get req(): STReq {\n return this._req;\n }\n set req(value: STReq) {\n this._req = deepMergeKey({}, true, this.cog.req, value);\n }\n /** 返回体配置 */\n @Input()\n get res(): STRes {\n return this._res;\n }\n set res(value: STRes) {\n const item = (this._res = deepMergeKey({}, true, this.cog.res, value));\n const reName = item.reName!;\n if (typeof reName !== 'function') {\n if (!Array.isArray(reName.list)) reName.list = reName.list!.split('.');\n if (!Array.isArray(reName.total)) reName.total = reName.total!.split('.');\n }\n this._res = item;\n }\n @Input()\n get page(): STPage {\n return this._page;\n }\n set page(value: STPage) {\n this._page = { ...this.cog.page, ...value };\n this.updateTotalTpl();\n }\n @Input() data?: string | STData[] | Observable<STData[]>;\n @Input() columns?: STColumn[] | null;\n @Input() contextmenu?: STContextmenuFn | null;\n @Input({ transform: (v: unknown) => numberAttribute(v, 10) }) ps = 10;\n @Input({ transform: (v: unknown) => numberAttribute(v, 1) }) pi = 1;\n @Input({ transform: (v: unknown) => numberAttribute(v, 0) }) total = 0;\n @Input() loading: boolean | null = null;\n @Input({ transform: numberAttribute }) loadingDelay = 0;\n @Input() loadingIndicator: TemplateRef<void> | null = null;\n @Input({ transform: booleanAttribute }) bordered = false;\n @Input() size!: 'small' | 'middle' | 'default';\n @Input() scroll: { x?: string | null; y?: string | null } = { x: null, y: null };\n drag = input<STDragOptions | null, STDragOptions | boolean | string | null | undefined>(null, {\n transform: v => {\n const obj: STDragOptions | null = typeof v === 'object' ? v : booleanAttribute(v) ? {} : null;\n if (obj == null) return null;\n\n if (typeof obj.dropped !== 'function') {\n obj.dropped = e => {\n moveItemInArray(this._data, e.previousIndex, e.currentIndex);\n this.cd();\n };\n }\n return obj;\n }\n });\n @Input() singleSort?: STSingleSort | null;\n private _multiSort?: STMultiSort;\n @Input()\n get multiSort(): NzSafeAny {\n return this._multiSort;\n }\n set multiSort(value: NzSafeAny) {\n if (\n (typeof value === 'boolean' && !booleanAttribute(value)) ||\n (typeof value === 'object' && Object.keys(value).length === 0)\n ) {\n this._multiSort = undefined;\n return;\n }\n this._multiSort = {\n ...(typeof value === 'object' ? value : {})\n };\n }\n @Input() rowClassName?: STRowClassName | null;\n @Input() clickRowClassName?: STClickRowClassName | null;\n @Input()\n set widthMode(value: STWidthMode) {\n this._widthMode = { ...this.cog.widthMode, ...value };\n }\n get widthMode(): STWidthMode {\n return this._widthMode;\n }\n @Input()\n set widthConfig(val: string[]) {\n this._widthConfig = val;\n this.customWidthConfig = val && val.length > 0;\n }\n private _resizable?: STResizable;\n @Input()\n set resizable(val: STResizable | boolean | string) {\n this._resizable = typeof val === 'object' ? val : { disabled: !booleanAttribute(val) };\n }\n @Input() header?: string | TemplateRef<void> | null;\n @Input({ transform: booleanAttribute }) showHeader = true;\n @Input() footer?: string | TemplateRef<void> | null;\n @Input() bodyHeader?: TemplateRef<{ $implicit: STStatisticalResults }> | null;\n @Input() body?: TemplateRef<{ $implicit: STStatisticalResults }> | null;\n @Input({ transform: booleanAttribute }) expandRowByClick = false;\n @Input({ transform: booleanAttribute }) expandAccordion = false;\n @Input() expand: TemplateRef<{ $implicit: STData; index: number }> | null = null;\n @Input() expandIcon: TemplateRef<{ $implicit: STData; index: number }> | null = null;\n @Input() noResult?: string | TemplateRef<void> | null;\n @Input({ transform: booleanAttribute }) responsive: boolean = true;\n @Input({ transform: booleanAttribute }) responsiveHideHeaderFooter?: boolean;\n @Output() readonly error = new EventEmitter<STError>();\n @Output() readonly change = new EventEmitter<STChange>();\n @Input({ transform: booleanAttribute }) virtualScroll = false;\n @Input({ transform: numberAttribute }) virtualItemSize = 54;\n @Input({ transform: numberAttribute }) virtualMaxBufferPx = 200;\n @Input({ transform: numberAttribute }) virtualMinBufferPx = 100;\n @Input() customRequest?: (options: STCustomRequestOptions) => Observable<NzSafeAny>;\n @Input() virtualForTrackBy: TrackByFunction<STData> = index => index;\n @Input() trackBy: TrackByFunction<STData> = (_, item) => item;\n\n /**\n * Get the number of the current page\n */\n get count(): number {\n return this._data.length;\n }\n\n /**\n * Get the data of the current page\n */\n get list(): STData[] {\n return this._data;\n }\n\n get noColumns(): boolean {\n return this.columns == null;\n }\n\n constructor(configSrv: AlainConfigService) {\n this.delonI18n.change.pipe(takeUntilDestroyed()).subscribe(() => {\n this.locale = this.delonI18n.getData('st');\n if (this._columns.length > 0) {\n this.updateTotalTpl();\n this.cd();\n }\n });\n\n this.i18nSrv.change\n .pipe(\n takeUntilDestroyed(),\n filter(() => this._columns.length > 0)\n )\n .subscribe(() => this.refreshColumns());\n\n this.setCog(configSrv.merge('st', ST_DEFAULT_CONFIG)!);\n }\n\n private setCog(cog: AlainSTConfig): void {\n const copyMultiSort = { ...cog.multiSort };\n // Because multiSort.global will affect the result, it should be removed first, and multiSort will be operated again after processing.\n delete cog.multiSort;\n this.cog = cog;\n Object.assign(this, cog);\n\n if (copyMultiSort.global !== false) {\n this.multiSort = copyMultiSort;\n }\n this.columnSource.setCog(cog);\n this.dataSource.setCog(cog);\n }\n\n cd(): this {\n this.cdr.detectChanges();\n return this;\n }\n\n private refreshData(): this {\n this._data = [...this._data];\n return this.cd();\n }\n\n renderTotal(total: string, range: string[]): string {\n return this.totalTpl\n ? this.totalTpl.replace('{{total}}', total).replace('{{range[0]}}', range[0]).replace('{{range[1]}}', range[1])\n : '';\n }\n\n private changeEmit(type: STChangeType, data?: NzSafeAny): void {\n const res: STChange = {\n type,\n pi: this.pi,\n ps: this.ps,\n total: this.total\n };\n if (data != null) {\n res[type] = data;\n }\n this.change.emit(res);\n }\n\n // #region data\n\n /**\n * 获取过滤后所有数据\n * - 本地数据:包含排序、过滤后不分页数据\n * - 远程数据:不传递 `pi`、`ps` 两个参数\n */\n get filteredData(): Observable<STData[]> {\n return this.loadData({ paginator: false } as unknown as STDataSourceOptions).pipe(map(res => res.list));\n }\n\n private updateTotalTpl(): void {\n const { total } = this.page;\n if (typeof total === 'string' && total.length) {\n this.totalTpl = total;\n } else if (booleanAttribute(total)) {\n this.totalTpl = this.locale.total;\n } else {\n this.totalTpl = '';\n }\n }\n\n private setLoading(val: boolean): void {\n if (this.loading == null) {\n this._loading = val;\n this.cdr.detectChanges();\n }\n }\n\n private loadData(options?: STDataSourceOptions): Observable<STDataSourceResult> {\n const { pi, ps, data, req, res, page, total, singleSort, multiSort, rowClassName, _columns, _headers } = this;\n return this.dataSource\n .process({\n pi,\n ps,\n total,\n data,\n req,\n res,\n page,\n columns: _columns,\n headers: _headers,\n singleSort,\n multiSort,\n rowClassName,\n paginator: true,\n customRequest: this.customRequest || this.cog.customRequest,\n ...options\n })\n .pipe(takeUntilDestroyed(this.destroy$));\n }\n\n private loadPageData(): Observable<this> {\n this.setLoading(true);\n return this.loadData().pipe(\n finalize(() => this.setLoading(false)),\n catchError(error => {\n this.error.emit({ type: 'req', error });\n return throwError(() => error);\n }),\n map(result => {\n const undefinedString = 'undefined';\n if (typeof result.pi !== undefinedString) {\n this.pi = result.pi;\n }\n if (typeof result.ps !== undefinedString) {\n this.ps = result.ps;\n }\n if (typeof result.total !== undefinedString) {\n this.total = result.total;\n }\n if (typeof result.pageShow !== undefinedString) {\n this._isPagination = result.pageShow;\n }\n this._data = result.list ?? [];\n this._statistical = result.statistical as STStatisticalResults;\n // Should be re-render in next tike when using virtual scroll\n // https://github.com/ng-alain/ng-alain/issues/1836\n if (this.cdkVirtualScrollViewport != null) {\n Promise.resolve().then(() => this.cdkVirtualScrollViewport?.checkViewportSize());\n }\n this._refCheck();\n this.changeEmit('loaded', result.list);\n return this;\n })\n );\n }\n\n /** 清空所有数据 */\n clear(cleanStatus: boolean = true): this {\n if (cleanStatus) {\n this.clearStatus();\n }\n this._data = [];\n return this.cd();\n }\n\n /** 清空所有状态 */\n clearStatus(): this {\n return this.clearCheck().clearRadio().clearFilter().clearSort();\n }\n\n /**\n * 根据页码重新加载数据\n *\n * @param pi 指定当前页码,默认:`1`\n * @param extraParams 重新指定 `extraParams` 值\n * @param options 选项\n */\n load(pi: number = 1, extraParams?: NzSafeAny, options?: STLoadOptions): this {\n if (pi !== -1) this.pi = pi;\n if (typeof extraParams !== 'undefined') {\n this.req.params = options && options.merge ? { ...this.req.params, ...extraParams } : extraParams;\n }\n this._change('pi', options);\n return this;\n }\n\n /**\n * 重新刷新当前页\n *\n * @param extraParams 重新指定 `extraParams` 值\n */\n reload(extraParams?: NzSafeAny, options?: STLoadOptions): this {\n return this.load(-1, extraParams, options);\n }\n\n /**\n * 重置且重新设置 `pi` 为 `1`,包含以下值:\n * - `check` 数据\n * - `radio` 数据\n * - `sort` 数据\n * - `fileter` 数据\n *\n * @param extraParams 重新指定 `extraParams` 值\n */\n reset(extraParams?: NzSafeAny, options?: STLoadOptions): this {\n this.clearStatus().load(1, extraParams, options);\n return this;\n }\n\n private _toTop(enforce?: boolean): void {\n if (!(enforce == null ? this.page.toTop : enforce)) return;\n const el = this.el;\n el.scrollIntoView();\n // fix header height\n this.doc.documentElement.scrollTop -= this.page.toTopOffset!;\n if (this.scroll) {\n if (this.cdkVirtualScrollViewport) {\n this.cdkVirtualScrollViewport.scrollTo({\n top: 0,\n left: 0\n });\n } else {\n el.querySelector('.ant-table-body, .ant-table-content')?.scrollTo(0, 0);\n }\n }\n }\n\n _change(type: 'pi' | 'ps', options?: STLoadOptions): void {\n if (type === 'pi' || (type === 'ps' && this.pi <= Math.ceil(this.total / this.ps))) {\n this.loadPageData().subscribe(() => this._toTop(options?.toTop));\n }\n\n this.changeEmit(type);\n }\n\n private closeOtherExpand(item: STData): void {\n if (this.expandAccordion === false) return;\n this._data.filter(i => i !== item).forEach(i => (i.expand = false));\n }\n\n _rowClick(e: Event, item: STData, index: number, dbl: boolean): void {\n const el = e.target as HTMLElement;\n if (el.nodeName === 'INPUT') return;\n const { expand, expandRowByClick } = this;\n if (!!expand && item.showExpand !== false && expandRowByClick) {\n item.expand = !item.expand;\n this.closeOtherExpand(item);\n this.changeEmit('expand', item);\n return;\n }\n\n const data = { e, item, index };\n if (dbl) {\n this.changeEmit('dblClick', data);\n } else {\n this._clickRowClassName(el, item, index);\n this.changeEmit('click', data);\n }\n }\n\n private _clickRowClassName(el: HTMLElement, item: STData, index: number): void {\n const cr = this.clickRowClassName;\n if (cr == null) return;\n const config = {\n exclusive: false,\n ...(typeof cr === 'string' ? { fn: () => cr } : cr)\n } as STClickRowClassNameType;\n const className = config.fn(item, index);\n const trEl = el.closest('tr') as HTMLElement;\n if (config.exclusive) {\n trEl.parentElement!!.querySelectorAll('tr').forEach((a: HTMLElement) => a.classList.remove(className));\n }\n if (trEl.classList.contains(className)) {\n trEl.classList.remove(className);\n } else {\n trEl.classList.add(className);\n }\n }\n\n _expandChange(item: STData, expand: boolean): void {\n item.expand = expand;\n this.closeOtherExpand(item);\n this.changeEmit('expand', item);\n }\n\n _stopPropagation(ev: Event): void {\n ev.stopPropagation();\n }\n\n private _refColAndData(): this {\n this._columns.forEach((c, cIdx) => {\n this._data.forEach((i, idx) => {\n const values = i._values as _STDataValue[];\n if (c.type === 'no') {\n const text = `${this.dataSource.getNoIndex(i, c, idx)}`;\n values[cIdx] = {\n text,\n _text: text,\n org: idx,\n safeType: 'text'\n } as _STDataValue;\n }\n values[cIdx].props = this.dataSource.getCell(c, i, idx);\n });\n });\n\n return this.refreshData();\n }\n\n /**\n * Add a rows in the table, like this:\n *\n * ```\n * this.st.addRow(stDataItem)\n * ```\n *\n * **TIPS:** Don't change the `total` value, it is recommended to use the `reload` method if needed\n */\n addRow(data: STData | STData[], options?: { index?: number }): this {\n if (!Array.isArray(data)) data = [data];\n this._data.splice(options?.index ?? 0, 0, ...(data as STData[]));\n return this.optimizeData()._refColAndData();\n }\n\n /**\n * Remove a row in the table, like this:\n *\n * ```\n * this.st.removeRow(0)\n * this.st.removeRow(stDataItem)\n * ```\n *\n * **TIPS:** Don't change the `total` value, it is recommended to use the `reload` method if needed\n */\n removeRow(data: STData | STData[] | number): this {\n if (typeof data === 'number') {\n this._data.splice(data, 1);\n } else {\n if (!Array.isArray(data)) {\n data = [data];\n }\n\n const curData = this._data;\n for (var i = curData.length; i--; ) {\n if (data.indexOf(curData[i]) !== -1) {\n curData.splice(i, 1);\n }\n }\n }\n return this._refCheck()._refColAndData();\n }\n\n /**\n * Sets the row value for the `index` in the table, like this:\n *\n * - `optinos.refreshSchema` Whether to refresh of st schemas\n * - `optinos.emitReload` Whether to trigger a reload http request when data is url\n *\n * ```\n * this.st.setRow(0, { price: 100 })\n * this.st.setRow(0, { price: 100, name: 'asdf' })\n * this.st.setRow(item, { price: 100 })\n * ```\n */\n setRow(\n index: number | STData,\n item: STData,\n options?: {\n refreshSchema?: boolean;\n emitReload?: boolean;\n /**\n *\n * @param arrayProcessMethod 数组处理方式\n * - `true` 表示替换新值,不管新值为哪种类型\n * - `false` 表示会合并整个数组(将旧数据与新数据合并成新数组)\n */\n arrayProcessMethod?: boolean;\n }\n ): this {\n options = { refreshSchema: false, emitReload: false, ...options };\n if (typeof index !== 'number') {\n index = this._data.indexOf(index);\n }\n this._data[index] = deepMergeKey(this._data[index], options?.arrayProcessMethod ?? false, item);\n this.optimizeData();\n if (options.refreshSchema) {\n this.resetColumns({ emitReload: options.emitReload });\n return this;\n }\n return this.refreshData();\n }\n\n // #endregion\n\n // #region sort\n\n sort(col: _STColumn, value: NzSafeAny): void {\n if (this.multiSort) {\n col._sort.default = value;\n col._sort.tick = this.dataSource.nextSortTick;\n } else {\n this._headers.forEach(row => {\n row.forEach(item => (item.column._sort.default = item.column === col ? value : null));\n });\n }\n this.cdr.detectChanges();\n this.loadPageData().subscribe(() => {\n const res = {\n value,\n map: this.dataSource.getReqSortMap(this.singleSort, this.multiSort, this._headers),\n column: col\n };\n this.changeEmit('sort', res);\n });\n }\n\n clearSort(): this {\n this._headers.forEach(row => {\n row.forEach(item => (item.column._sort.default = null));\n });\n return this;\n }\n\n // #endregion\n\n // #region filter\n\n _handleFilter(col: _STColumn, confirm: boolean): void {\n if (!confirm) {\n this.columnSource.cleanFilter(col);\n }\n // 过滤表示一种数据的变化应重置页码为 `1`\n this.pi = 1;\n this.columnSource.updateDefault(col.filter!);\n this.loadPageData().subscribe(() => this.changeEmit('filter', col));\n }\n\n handleFilterNotify(value?: unknown): void {\n this.changeEmit('filterChange', value);\n }\n\n clearFilter(): this {\n this._columns.filter(w => w.filter && w.filter.default === true).forEach(col => this.columnSource.cleanFilter(col));\n return this;\n }\n // #endregion\n\n // #region checkbox\n\n /** 清除所有 `checkbox` */\n clearCheck(): this {\n return this.checkAll(false);\n }\n\n private _refCheck(): this {\n const validData = this._data.filter(w => !w.disabled);\n const checkedList = validData.filter(w => w.checked === true);\n this._allChecked = checkedList.length > 0 && checkedList.length === validData.length;\n const allUnChecked = validData.every(value => !value.checked);\n this._indeterminate = !this._allChecked && !allUnChecked;\n this._allCheckedDisabled = this._data.length === this._data.filter(w => w.disabled).length;\n return this.cd();\n }\n\n checkAll(checked?: boolean): this {\n checked = typeof checked === 'undefined' ? this._allChecked : checked;\n this._data.filter(w => !w.disabled).forEach(i => (i.checked = checked));\n return this._refCheck()._checkNotify().refreshData();\n }\n\n _rowSelection(row: STColumnSelection): this {\n row.select(this._data);\n return this._refCheck()._checkNotify();\n }\n\n _checkNotify(): this {\n const res = this._data.filter(w => !w.disabled && w.checked === true);\n this.changeEmit('checkbox', res);\n return this;\n }\n\n // #endregion\n\n // #region radio\n\n /** 清除所有 `radio` */\n clearRadio(): this {\n this._data.filter(w => w.checked).forEach(item => (item.checked = false));\n this.changeEmit('radio', null);\n return this.refreshData();\n }\n\n // #endregion\n\n _handleTd(ev: _STTdNotify): void {\n switch (ev.type) {\n case 'checkbox':\n this._refCheck()._checkNotify();\n break;\n case 'radio':\n this.changeEmit('radio', ev.item);\n this.refreshData();\n break;\n }\n }\n\n // #region export\n\n /**\n * 导出当前页,确保已经注册 `XlsxModule`\n *\n * @param newData 重新指定数据;若为 `true` 表示使用 `filteredData` 数据\n * @param opt 额外参数\n */\n export(newData?: STData[] | true, opt?: STExportOptions): void {\n const data = Array.isArray(newData)\n ? this.dataSource.optimizeData({ columns: this._columns, result: newData })\n : this._data;\n (newData === true ? this.filteredData : of(data)).subscribe((res: STData[]) =>\n this.exportSrv.export({\n columens: this._columns,\n ...opt,\n data: res\n })\n );\n }\n\n // #endregion\n\n // #region resizable\n\n colResize({ width }: NzResizeEvent, column: _STColumn): void {\n column.width = `${width}px`;\n this.changeEmit('resize', column);\n }\n\n // #endregion\n\n // #region contextmenu\n onContextmenu(event: MouseEvent): void {\n if (!this.contextmenu) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n const colEl = (event.target as HTMLElement).closest('[data-col-index]') as HTMLElement;\n if (!colEl) {\n return;\n }\n const colIndex = Number(colEl.dataset.colIndex);\n const rowIndex = Number((colEl.closest('tr') as HTMLElement).dataset.index);\n const isTitle = isNaN(rowIndex);\n const obs$ = this.contextmenu({\n event,\n type: isTitle ? 'head' : 'body',\n rowIndex: isTitle ? null : rowIndex,\n colIndex,\n data: isTitle ? null : this.list[rowIndex],\n column: this._columns[colIndex]\n });\n (isObservable(obs$) ? obs$ : of(obs$))\n .pipe(\n takeUntilDestroyed(this.destroy$),\n filter(res => res.length > 0)\n )\n .subscribe(res => {\n this.contextmenuList = res.map(i => {\n if (!Array.isArray(i.children)) {\n i.children = [];\n }\n return i;\n });\n this.cdr.detectChanges();\n this.cms?.create(event, this.contextmenuTpl);\n });\n }\n // #endregion\n\n get cdkVirtualScrollViewport(): CdkVirtualScrollViewport | undefined {\n return this.orgTable?.cdkVirtualScrollViewport as NzSafeAny;\n }\n\n private _resetColumns(options?: STResetColumnsOption): Observable<this> {\n options = { emitReload: true, preClearData: false, ...options };\n if (typeof options.columns !== 'undefined') {\n this.columns = options.columns;\n }\n if (typeof options.pi !== 'undefined') {\n this.pi = options.pi;\n }\n if (typeof options.ps !== 'undefined') {\n this.ps = options.ps;\n }\n if (options.emitReload) {\n // Should clean data, Because of changing columns may cause inaccurate data\n options.preClearData = true;\n }\n if (options.preClearData) {\n this._data = [];\n }\n this.refreshColumns();\n if (options.emitReload) {\n return this.loadPageData();\n } else {\n this.cd();\n return of(this);\n }\n }\n\n resetColumns(options?: STResetColumnsOption): Promise<this> {\n return lastValueFrom(this._resetColumns(options));\n }\n\n private refreshColumns(): this {\n const res = this.columnSource.process(this.columns as _STColumn[], {\n widthMode: this.widthMode,\n resizable: this._resizable,\n safeType: this.cog.safeType as STColumnSafeType,\n expand: this.expand != null\n });\n this._columns = res.columns;\n this._headers = res.headers;\n if (this.customWidthConfig === false && res.headerWidths != null) {\n this._widthConfig = res.headerWidths;\n }\n return this;\n }\n\n private optimizeData(): this {\n this._data = this.dataSource.optimizeData({\n columns: this._columns,\n result: this._data,\n rowClassName: this.rowClassName\n });\n return this;\n }\n\n /**\n * Return pure data, `st` internally maintains a set of data for caching, this part of data may affect the backend\n *\n * 返回纯净数据,`st` 内部会维护一组用于缓存的数据,这部分数据可能会影响后端\n */\n pureItem(itemOrIndex: STData | number): STData | null {\n if (typeof itemOrIndex === 'number') {\n itemOrIndex = this._data[itemOrIndex];\n }\n if (!itemOrIndex) {\n return null;\n }\n const copyItem = deepCopy(itemOrIndex);\n ['_values', '_rowClassName'].forEach(key => delete copyItem[key]);\n return copyItem;\n }\n\n ngAfterViewInit(): void {\n this.refreshColumns();\n if (!this.req.lazyLoad) this.loadPageData().subscribe();\n this.inied = true;\n }\n\n ngOnChanges(changes: { [P in keyof this]?: SimpleChange } & SimpleChanges): void {\n if (changes.loading) {\n this._loading = changes.loading.currentValue;\n }\n if (!this.inied) return;\n\n if (changes.columns) {\n this.refreshColumns().optimizeData();\n }\n if (changes.data) {\n this.loadPageData().subscribe();\n }\n }\n}\n","<ng-template #btnTpl let-i let-child=\"child\">\n @if (i.tooltip) {\n <span nz-tooltip [nzTooltipTitle]=\"i.tooltip\" [class.d-block]=\"child\" [class.width-100]=\"child\">\n <ng-template [ngTemplateOutlet]=\"btnItemTpl\" [ngTemplateOutletContext]=\"{ $implicit: i }\" />\n </span>\n } @else {\n <ng-template [ngTemplateOutlet]=\"btnItemTpl\" [ngTemplateOutletContext]=\"{ $implicit: i }\" />\n }\n</ng-template>\n<ng-template #btnItemTpl let-i>\n @if (i.pop) {\n @let pop = i.pop;\n <a\n nz-popconfirm\n [nzPopconfirmTitle]=\"pop.title\"\n [nzIcon]=\"pop.icon\"\n [nzCondition]=\"pop.condition(i)\"\n [nzCancelText]=\"pop.cancelText\"\n [nzOkText]=\"pop.okText\"\n [nzOkType]=\"pop.okType\"\n (nzOnConfirm)=\"_btn(i)\"\n class=\"st__btn-text\"\n [class]=\"i._className\"\n (click)=\"_stopPropagation($event)\"\n >\n <ng-template [ngTemplateOutlet]=\"btnTextTpl\" [ngTemplateOutletContext]=\"{ $implicit: i }\" />\n </a>\n } @else {\n <a (click)=\"_btn(i, $event)\" class=\"st__btn-text\" [class]=\"i._className\">\n <ng-template [ngTemplateOutlet]=\"btnTextTpl\" [ngTemplateOutletContext]=\"{ $implicit: i }\" />\n </a>\n }\n</ng-template>\n<ng-template #btnTextTpl let-i>\n @if (i._icon) {\n @let icon = i._icon;\n @if (icon.iconfont) {\n <nz-icon [nzIconfont]=\"icon.iconfont\" />\n } @else {\n <nz-icon [nzType]=\"icon.type\" [nzTheme]=\"icon.theme\" [nzSpin]=\"icon.spin\" [nzTwotoneColor]=\"icon.twoToneColor\" />\n }\n }\n <span [innerHTML]=\"i._text\" [class.pl-xs]=\"i._icon\"></span>\n</ng-template>\n@if (c.__render) {\n <ng-template [ngTemplateOutlet]=\"c.__render!\" [ngTemplateOutletContext]=\"{ $implicit: i, index: index, column: c }\" />\n} @else {\n @let col = i._values[cIdx];\n @switch (c.type) {\n @case ('checkbox') {\n <label nz-checkbox [nzDisabled]=\"i.disabled\" [ngModel]=\"i.checked\" (ngModelChange)=\"_checkbox($event)\"></label>\n }\n @case ('radio') {\n <label nz-radio [nzDisabled]=\"i.disabled\" [ngModel]=\"i.checked\" (ngModelChange)=\"_radio()\"></label>\n }\n @case ('link') {\n <a (click)=\"_link($event)\" [innerHTML]=\"col._text\" [attr.title]=\"col.text\"></a>\n }\n @case ('tag') {\n <nz-tag [nzColor]=\"col.color\" [nz-tooltip]=\"col.tooltip\">\n <span [innerHTML]=\"col._text\"></span>\n </nz-tag>\n }\n @case ('badge') {\n <nz-badge [nzStatus]=\"col.color\" [nzText]=\"col.text\" [nz-tooltip]=\"col.tooltip\" />\n }\n @case ('cell') {\n <cell [value]=\"col.text\" [options]=\"col.cell ?? c.cell\" (click)=\"_client()\" />\n }\n @case ('widget') {\n <ng-template st-widget-host [record]=\"i\" [column]=\"c\" />\n }\n @default {\n @if (c.safeType === 'text') {\n <span [innerText]=\"col._text\" [attr.title]=\"c._isTruncate ? col.text : null\"></span>\n } @else {\n <span [innerHTML]=\"col._text\" [attr.title]=\"c._isTruncate ? col.text : null\"></span>\n }\n }\n }\n @for (btn of col.buttons; track $index) {\n @if (btn.children!.length > 0) {\n <a nz-dropdown [nzDropdownMenu]=\"btnMenu\" nzOverlayClassName=\"st__btn-sub\">\n <span [innerHTML]=\"btn._text\"></span>\n <nz-icon nzType=\"down\" />\n </a>\n <nz-dropdown-menu #btnMenu=\"nzDropdownMenu\">\n <ul nz-menu>\n @for (subBtn of btn.children; track $index) {\n @if (subBtn.type === 'divider') {\n <li nz-menu-divider></li>\n } @else {\n <li nz-menu-item [class.st__btn-disabled]=\"subBtn._disabled\">\n <ng-template\n [ngTemplateOutlet]=\"btnTpl\"\n [ngTemplateOutletContext]=\"{ $implicit: subBtn, child: true }\"\n />\n </li>\n }\n }\n </ul>\n </nz-dropdown-menu>\n } @else {\n <span [class.st__btn-disabled]=\"btn._disabled\">\n <ng-template [ngTemplateOutlet]=\"btnTpl\" [ngTemplateOutletContext]=\"{ $implicit: btn, child: false }\" />\n </span>\n }\n @if (!$last) {\n <nz-divider nzType=\"vertical\" />\n }\n }\n}\n","<ng-template #titleTpl let-i>\n <span [innerHTML]=\"i._text\"></span>\n @if (i.optional) {\n <small class=\"st__head-optional\" [innerHTML]=\"i.optional\"></small>\n }\n @if (i.optionalHelp) {\n <nz-icon class=\"st__head-tip\" nz-tooltip [nzTooltipTitle]=\"i.optionalHelp\" nzType=\"question-circle\" />\n }\n</ng-template>\n<ng-template #chkAllTpl let-custom>\n <label\n nz-checkbox\n class=\"st__checkall\"\n [nzDisabled]=\"_allCheckedDisabled\"\n [(ngModel)]=\"_allChecked\"\n [nzIndeterminate]=\"_indeterminate\"\n (ngModelChange)=\"checkAll()\"\n [class.ant-table-selection-select-all-custom]=\"custom\"\n ></label>\n</ng-template>\n<nz-table\n #table\n [nzData]=\"_data\"\n [(nzPageIndex)]=\"pi\"\n (nzPageIndexChange)=\"_change('pi')\"\n [(nzPageSize)]=\"ps\"\n (nzPageSizeChange)=\"_change('ps')\"\n [nzTotal]=\"total\"\n [nzShowPagination]=\"_isPagination\"\n [nzFrontPagination]=\"false\"\n [nzBordered]=\"bordered\"\n [nzSize]=\"size\"\n [nzLoading]=\"noColumns || _loading\"\n [nzLoadingDelay]=\"loadingDelay\"\n [nzLoadingIndicator]=\"loadingIndicator\"\n [nzTitle]=\"header!\"\n [nzFooter]=\"footer!\"\n [nzScroll]=\"scroll\"\n [nzVirtualItemSize]=\"virtualItemSize\"\n [nzVirtualMaxBufferPx]=\"virtualMaxBufferPx\"\n [nzVirtualMinBufferPx]=\"virtualMinBufferPx\"\n [nzVirtualForTrackBy]=\"virtualForTrackBy\"\n [nzNoResult]=\"noResult!\"\n [nzPageSizeOptions]=\"page.pageSizes!\"\n [nzShowQuickJumper]=\"page.showQuickJumper\"\n [nzShowSizeChanger]=\"page.showSize\"\n [nzPaginationPosition]=\"page.position!\"\n [nzPaginationType]=\"page.type!\"\n [nzItemRender]=\"page.itemRender!\"\n [nzSimple]=\"page.simple\"\n [nzShowTotal]=\"totalTpl\"\n [nzWidthConfig]=\"_widthConfig\"\n (contextmenu)=\"onContextmenu($event)\"\n [class.st__no-column]=\"noColumns\"\n>\n @if (showHeader) {\n <thead>\n @for (row of _headers; track row) {\n <tr>\n @if ($first && expand) {\n <th nzWidth=\"50px\" [rowSpan]=\"_headers.length\" [nzLeft]=\"row[0].column._left ? true : false\"></th>\n }\n @for (h of row; track h; let index = $index; let last = $last) {\n @let _c = h.column;\n <th\n [colSpan]=\"h.colSpan\"\n [rowSpan]=\"h.rowSpan\"\n [nzWidth]=\"$any(_c).width\"\n [nzLeft]=\"_c._left\"\n [nzRight]=\"_c._right\"\n [class]=\"_c._className\"\n [attr.data-col]=\"_c.indexKey\"\n [attr.data-col-index]=\"index\"\n [nzShowSort]=\"_c._sort.enabled\"\n [nzSortOrder]=\"$any(_c)._sort.default\"\n (nzSortOrderChange)=\"sort(_c, $event)\"\n [nzCustomFilter]=\"!!_c.filter\"\n [class.st__has-filter]=\"_c.filter\"\n nz-resizable\n [nzDisabled]=\"last || $any(_c).resizable.disabled\"\n [nzMaxWidth]=\"$any(_c).resizable.maxWidth\"\n [nzMinWidth]=\"$any(_c).resizable.minWidth\"\n [nzBounds]=\"$any(_c).resizable.bounds\"\n [nzPreview]=\"$any(_c).resizable.preview\"\n (nzResizeEnd)=\"colResize($event, _c)\"\n >\n @if ($any(!last && !$any(_c).resizable.disabled)) {\n <nz-resize-handle nzDirection=\"right\" (click)=\"_stopPropagation($event)\">\n <i></i>\n </nz-resize-handle>\n }\n @if (_c.__renderTitle) {\n <ng-template\n [ngTemplateOutlet]=\"_c.__renderTitle!\"\n [ngTemplateOutletContext]=\"{ $implicit: h.column, index: index }\"\n />\n } @else {\n @switch (_c.type) {\n @case ('checkbox') {\n @if (_c.selections!.length === 0) {\n <ng-template [ngTemplateOutlet]=\"chkAllTpl\" [ngTemplateOutletContext]=\"{ $implicit: false }\" />\n } @else {\n <div class=\"ant-table-selection\">\n <ng-template [ngTemplateOutlet]=\"chkAllTpl\" [ngTemplateOutletContext]=\"{ $implicit: true }\" />\n @if (_c.selections!.length) {\n <div class=\"ant-table-selection-extra\">\n <div\n nz-dropdown\n nzPlacement=\"bottomLeft\"\n [nzDropdownMenu]=\"selectionMenu\"\n class=\"ant-table-selection-down st__checkall-selection\"\n >\n <nz-icon nzType=\"down\" />\n </div>\n </div>\n }\n <nz-dropdown-menu #selectionMenu=\"nzDropdownMenu\">\n <ul nz-menu class=\"ant-table-selection-menu\">\n @for (rw of _c.selections; track $index) {\n <li nz-menu-item (click)=\"_rowSelection(rw)\" [innerHTML]=\"rw.text\"></li>\n }\n </ul>\n </nz-dropdown-menu>\n </div>\n }\n }\n @default {\n <ng-template [ngTemplateOutlet]=\"titleTpl\" [ngTemplateOutletContext]=\"{ $implicit: _c.title }\" />\n }\n }\n }\n @if (_c.filter) {\n <st-filter\n nz-th-extra\n [col]=\"h.column\"\n [f]=\"_c.filter\"\n [locale]=\"locale\"\n (n)=\"handleFilterNotify($event)\"\n (handle)=\"_handleFilter(_c, $event)\"\n />\n }\n </th>\n }\n </tr>\n }\n </thead>\n }\n <tbody\n class=\"st__body\"\n cdkDropList\n [cdkDropListDisabled]=\"drag() === null\"\n (cdkDropListDropped)=\"drag()?.dropped?.($event)\"\n (cdkDropListEntered)=\"drag()?.entered?.($event)\"\n (cdkDropListExited)=\"drag()?.exited?.($event)\"\n (cdkDropListSorted)=\"drag()?.sorted?.($event)\"\n >\n @if (!_loading) {\n <ng-template [ngTemplateOutlet]=\"bodyHeader!\" [ngTemplateOutletContext]=\"{ $implicit: _statistical }\" />\n }\n <ng-template #bodyTpl let-i let-index=\"index\">\n <tr\n [attr.data-index]=\"index\"\n (click)=\"_rowClick($event, i, index, false)\"\n (dblclick)=\"_rowClick($event, i, index, true)\"\n [class]=\"i._rowClassName\"\n cdkDrag\n >\n @if (expand) {\n <td\n [nzShowExpand]=\"expand && i.showExpand !== false\"\n [nzExpand]=\"i.expand\"\n [nzExpandIcon]=\"expandIcon ? wrapExpandIcon : null\"\n (nzExpandChange)=\"_expandChange(i, $event)\"\n (click)=\"_stopPropagation($event)\"\n nzWidth=\"50px\"\n [nzLeft]=\"_columns[0]._left ? true : false\"\n ></td>\n <ng-template #wrapExpandIcon>\n <span (click)=\"_expandChange(i, !i.expand)\">\n <ng-template [ngTemplateOutlet]=\"expandIcon\" [ngTemplateOutletContext]=\"{ $implicit: i, index: index }\" />\n </span>\n </ng-template>\n }\n @for (c of _columns; track cIdx; let cIdx = $index) {\n @let props = i._values[cIdx].props;\n @if (props?.colSpan > 0 && props?.rowSpan > 0) {\n <td\n [nzLeft]=\"c._left\"\n [nzRight]=\"c._right\"\n [attr.data-col-index]=\"cIdx\"\n [class]=\"c._className\"\n [attr.colspan]=\"props?.colSpan === 1 ? null : props?.colSpan\"\n [attr.rowspan]=\"props?.rowSpan === 1 ? null : props?.rowSpan\"\n >\n @if (responsive) {\n <span class=\"ant-table-rep__title\">\n <ng-template [ngTemplateOutlet]=\"titleTpl\" [ngTemplateOutletContext]=\"{ $implicit: c.title }\" />\n </span>\n }\n <st-td [data]=\"_data\" [i]=\"i\" [index]=\"index\" [c]=\"c\" [cIdx]=\"cIdx\" (n)=\"_handleTd($event)\" />\n </td>\n }\n }\n </tr>\n <tr [nzExpand]=\"i.expand\">\n <ng-template [ngTemplateOutlet]=\"expand\" [ngTemplateOutletContext]=\"{ $implicit: i, index: index }\" />\n </tr>\n </ng-template>\n @if (virtualScroll) {\n <ng-template nz-virtual-scroll let-i let-index=\"index\">\n <ng-template [ngTemplateOutlet]=\"bodyTpl\" [ngTemplateOutletContext]=\"{ $implicit: i, index: index }\" />\n </ng-template>\n } @else {\n @for (i of _data; track trackBy($index, i)) {\n <ng-template [ngTemplateOutlet]=\"bodyTpl\" [ngTemplateOutletContext]=\"{ $implicit: i, index: $index }\" />\n }\n }\n @if (!_loading) {\n <ng-template [ngTemplateOutlet]=\"body!\" [ngTemplateOutletContext]=\"{ $implicit: _statistical }\" />\n }\n </tbody>\n <ng-template #totalTpl let-range=\"range\" let-total>{{ renderTotal(total, range) }}</ng-template>\n</nz-table>\n<nz-dropdown-menu #contextmenuTpl=\"nzDropdownMenu\">\n <ul nz-menu class=\"st__contextmenu\">\n @for (i of contextmenuList; track $index) {\n @if (i.children!.length === 0) {\n <li nz-menu-item (click)=\"i.fn!(i)\" [innerHTML]=\"i.text\"></li>\n } @else {\n <li nz-submenu [nzTitle]=\"i.text\">\n <ul>\n @for (ci of i.children; track $index) {\n <li nz-menu-item (click)=\"ci.fn!(ci)\" [innerHTML]=\"ci.text\"></li>\n }\n </ul>\n </li>\n }\n }\n </ul>\n</nz-dropdown-menu>\n","import { NgModule } from '@angular/core';\n\nimport { STRowDirective } from './st-row.directive';\nimport { STWidgetHostDirective } from './st-widget-host.directive';\nimport { STComponent } from './st.component';\n\nconst COMPONENTS = [STComponent, STRowDirective, STWidgetHostDirective];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\nexport class STModule {}\n","import { EnvironmentProviders, inject, makeEnvironmentProviders, provideEnvironmentInitializer } from '@angular/core';\n\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { STWidgetRegistry } from './st-widget';\n\nexport interface STWidgetProvideConfig {\n KEY: string;\n type: NzSafeAny;\n}\n\n/**\n * Just only using Standalone widgets\n */\nexport function provideSTWidgets(...widgets: STWidgetProvideConfig[]): EnvironmentProviders {\n return makeEnvironmentProviders([\n provideEnvironmentInitializer(() => {\n const srv = inject(STWidgetRegistry);\n widgets.forEach(widget => srv.register(widget.KEY, widget.type));\n })\n ]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i4.STWidgetRegistry","i1","i3","i4","i2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"st.mjs","sources":["../../../../packages/abc/st/st-row.directive.ts","../../../../packages/abc/st/st-widget.ts","../../../../packages/abc/st/st-column-source.ts","../../../../packages/abc/st/st-data-source.ts","../../../../packages/abc/st/st-export.ts","../../../../packages/abc/st/st-widget-host.directive.ts","../../../../packages/abc/st/st-filter.component.ts","../../../../packages/abc/st/st.config.ts","../../../../packages/abc/st/st.component.ts","../../../../packages/abc/st/st-td.component.html","../../../../packages/abc/st/st.component.html","../../../../packages/abc/st/st.module.ts","../../../../packages/abc/st/provide.ts","../../../../packages/abc/st/st.ts"],"sourcesContent":["import { Directive, Injectable, Input, OnInit, TemplateRef, inject } from '@angular/core';\n\n@Injectable()\nexport class STRowSource {\n private titles: Record<string, TemplateRef<void>> = {};\n private rows: Record<string, TemplateRef<void>> = {};\n\n add(type: string | undefined, path: string, ref: TemplateRef<void>): void {\n this[type === 'title' ? 'titles' : 'rows'][path] = ref;\n }\n\n getTitle(path: string): TemplateRef<void> {\n return this.titles[path];\n }\n\n getRow(path: string): TemplateRef<void> {\n return this.rows[path];\n }\n}\n\n@Directive({\n selector: '[st-row]'\n})\nexport class STRowDirective implements OnInit {\n private readonly source = inject(STRowSource, { host: true });\n private readonly ref = inject(TemplateRef);\n @Input('st-row') id!: string;\n\n @Input() type?: 'title';\n\n ngOnInit(): void {\n this.source.add(this.type, this.id, this.ref);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\n@Injectable({ providedIn: 'root' })\nexport class STWidgetRegistry {\n private _widgets: Record<string, NzSafeAny> = {};\n\n get widgets(): NzSafeAny {\n return this._widgets;\n }\n\n register(type: string, widget: NzSafeAny): void {\n this._widgets[type] = widget;\n }\n\n has(type: string): boolean {\n return Object.prototype.hasOwnProperty.call(this._widgets, type);\n }\n\n get(type: string): NzSafeAny {\n return this._widgets[type];\n }\n}\n","import { Host, Inject, Injectable, Optional, TemplateRef } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport { ACLService } from '@delon/acl';\nimport { AlainI18NService, ALAIN_I18N_TOKEN } from '@delon/theme';\nimport { AlainSTConfig } from '@delon/util/config';\nimport { deepCopy, warn } from '@delon/util/other';\nimport type { NgClassInterface, NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { STRowSource } from './st-row.directive';\nimport { STWidgetRegistry } from './st-widget';\nimport {\n STColumn,\n STColumnButton,\n STColumnButtonPop,\n STColumnFilter,\n STColumnGroupType,\n STColumnSafeType,\n STIcon,\n STResizable,\n STSortMap,\n STWidthMode\n} from './st.interfaces';\nimport { _STColumn, _STHeader } from './st.types';\n\nexport interface STColumnSourceProcessOptions {\n widthMode: STWidthMode;\n resizable?: STResizable;\n safeType: STColumnSafeType;\n expand: boolean;\n}\n\n@Injectable()\nexport class STColumnSource {\n private cog!: AlainSTConfig;\n\n constructor(\n private dom: DomSanitizer,\n @Host() private rowSource: STRowSource,\n @Optional() private acl: ACLService,\n @Optional() @Inject(ALAIN_I18N_TOKEN) private i18nSrv: AlainI18NService,\n private stWidgetRegistry: STWidgetRegistry\n ) {}\n\n setCog(val: AlainSTConfig): void {\n this.cog = val;\n }\n\n private fixPop(i: STColumnButton, def: STColumnButtonPop): void {\n if (i.pop == null || i.pop === false) {\n i.pop = false;\n return;\n }\n\n let pop = {\n ...def\n };\n if (typeof i.pop === 'string') {\n pop.title = i.pop;\n } else if (typeof i.pop === 'object') {\n pop = {\n ...pop,\n ...i.pop\n };\n }\n\n if (typeof pop.condition !== 'function') {\n pop.condition = () => false;\n }\n\n if (this.i18nSrv) {\n if (pop.titleI18n) pop.title = this.i18nSrv.fanyi(pop.titleI18n);\n if (pop.okTextI18n) pop.okText = this.i18nSrv.fanyi(pop.okTextI18n);\n if (pop.cancelTextI18n) pop.cancelText = this.i18nSrv.fanyi(pop.cancelTextI18n);\n }\n\n i.pop = pop;\n }\n\n private btnCoerce(list: STColumnButton[]): STColumnButton[] {\n if (!list) return [];\n const ret: STColumnButton[] = [];\n const { modal, drawer, pop, btnIcon } = this.cog;\n\n for (const item of list) {\n if (this.acl && item.acl && !this.acl.can(item.acl)) {\n continue;\n }\n\n if (item.type === 'modal' || item.type === 'static') {\n if (item.modal == null || item.modal.component == null) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.warn(`[st] Should specify modal parameter when type is modal or static`);\n }\n item.type = 'none';\n } else {\n item.modal = { ...{ paramsName: 'record', size: 'lg' }, ...modal, ...item.modal };\n }\n }\n\n if (item.type === 'drawer') {\n if (item.drawer == null || item.drawer.component == null) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.warn(`[st] Should specify drawer parameter when type is drawer`);\n }\n item.type = 'none';\n } else {\n item.drawer = { ...{ paramsName: 'record', size: 'lg' }, ...drawer, ...item.drawer };\n }\n }\n\n if (item.type === 'del' && typeof item.pop === 'undefined') {\n item.pop = true;\n }\n\n // pop\n this.fixPop(item, pop!);\n\n if (typeof item.icon !== 'function') {\n item.icon = {\n ...btnIcon,\n ...(typeof item.icon === 'string' ? { type: item.icon } : item.icon)\n } as STIcon;\n }\n\n item.children = item.children && item.children.length > 0 ? this.btnCoerce(item.children) : [];\n\n // i18n\n if (item.i18n && this.i18nSrv) {\n item.text = this.i18nSrv.fanyi(item.i18n);\n }\n\n ret.push(item);\n }\n this.btnCoerceIf(ret);\n return ret;\n }\n\n private btnCoerceIf(list: STColumnButton[]): void {\n for (const item of list) {\n item.iifBehavior = item.iifBehavior || this.cog.iifBehavior;\n if (item.children && item.children.length > 0) {\n this.btnCoerceIf(item.children);\n } else {\n item.children = [];\n }\n }\n }\n\n private fixedCoerce(list: _STColumn[], expand: boolean): void {\n const countReduce = (a: number, b: _STColumn): number => a + +b.width!.toString().replace('px', '');\n const expandWidth = expand ? 50 : 0;\n // left width\n list\n .filter(w => w.fixed && w.fixed === 'left' && w.width)\n .forEach((item, idx) => (item._left = `${list.slice(0, idx).reduce(countReduce, 0) + expandWidth}px`));\n // right width\n list\n .filter(w => w.fixed && w.fixed === 'right' && w.width)\n .reverse()\n .forEach((item, idx) => (item._right = `${idx > 0 ? list.slice(-idx).reduce(countReduce, 0) : 0}px`));\n }\n\n private sortCoerce(item: _STColumn): STSortMap {\n const res = this.fixSortCoerce(item);\n res.reName = {\n ...this.cog.sortReName,\n ...res.reName\n };\n return res;\n }\n\n private fixSortCoerce(item: _STColumn): STSortMap {\n if (typeof item.sort === 'undefined') {\n return { enabled: false };\n }\n\n let res: STSortMap = {};\n\n if (typeof item.sort === 'string') {\n res.key = item.sort;\n } else if (typeof item.sort !== 'boolean') {\n res = item.sort;\n } else if (typeof item.sort === 'boolean') {\n res.compare = (a, b) => a[item.indexKey!] - b[item.indexKey!];\n }\n\n if (!res.key) {\n res.key = item.indexKey;\n }\n\n res.enabled = true;\n\n return res;\n }\n\n private filterCoerce(item: _STColumn): STColumnFilter | null {\n if (item.filter == null) {\n return null;\n }\n\n let res: STColumnFilter | null = item.filter;\n res.type = res.type || 'default';\n res.showOPArea = res.showOPArea !== false;\n\n let icon = 'filter';\n let iconTheme = 'fill';\n let fixMenus = true;\n let value: NzSafeAny = undefined;\n switch (res.type) {\n case 'keyword':\n icon = 'search';\n iconTheme = 'outline';\n break;\n case 'number':\n icon = 'search';\n iconTheme = 'outline';\n res.number = {\n step: 1,\n min: -Infinity,\n max: Infinity,\n ...res.number\n };\n break;\n case 'date':\n icon = 'calendar';\n iconTheme = 'outline';\n res.date = {\n range: false,\n mode: 'date',\n showToday: true,\n showNow: false,\n ...res.date\n };\n break;\n case 'custom':\n break;\n default:\n fixMenus = false;\n break;\n }\n if (fixMenus && (res.menus == null || res.menus!.length === 0)) {\n res.menus = [{ value }];\n }\n\n if (res.menus?.length === 0) {\n return null;\n }\n\n if (typeof res.multiple === 'undefined') {\n res.multiple = true;\n }\n\n res.confirmText = res.confirmText || this.cog.filterConfirmText;\n res.clearText = res.clearText || this.cog.filterClearText;\n res.key = res.key || item.indexKey;\n res.icon = res.icon || icon;\n\n const baseIcon = { type: icon, theme: iconTheme } as STIcon;\n if (typeof res.icon === 'string') {\n res.icon = { ...baseIcon, type: res.icon } as STIcon;\n } else {\n res.icon = { ...baseIcon, ...res.icon };\n }\n\n this.updateDefault(res);\n\n if (this.acl) {\n res.menus = res.menus?.filter(w => this.acl.can(w.acl!));\n }\n\n return res.menus?.length === 0 ? null : res;\n }\n\n private restoreRender(item: _STColumn): void {\n if (item.renderTitle) {\n item.__renderTitle =\n typeof item.renderTitle === 'string'\n ? this.rowSource.getTitle(item.renderTitle)\n : (item.renderTitle as TemplateRef<void>);\n }\n if (item.render) {\n item.__render =\n typeof item.render === 'string' ? this.rowSource.getRow(item.render) : (item.render as TemplateRef<void>);\n }\n }\n\n private widgetCoerce(item: _STColumn): void {\n if (item.type !== 'widget') return;\n if (item.widget == null || !this.stWidgetRegistry.has(item.widget.type)) {\n delete item.type;\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n warn(`st: No widget for type \"${item.widget?.type}\"`);\n }\n }\n }\n\n private genHeaders(rootColumns: _STColumn[]): { headers: _STHeader[][]; headerWidths: string[] | null } {\n const rows: _STHeader[][] = [];\n const widths: string[] = [];\n const fillRowCells = (columns: _STColumn[], colIndex: number, rowIndex = 0): number[] => {\n // Init rows\n rows[rowIndex] = rows[rowIndex] || [];\n\n let currentColIndex = colIndex;\n const colSpans: number[] = columns.map(column => {\n const cell: STColumnGroupType = {\n column,\n colStart: currentColIndex,\n hasSubColumns: false\n };\n\n let colSpan = 1;\n\n const subColumns = column.children;\n if (Array.isArray(subColumns) && subColumns.length > 0) {\n colSpan = fillRowCells(subColumns, currentColIndex, rowIndex + 1).reduce((total, count) => total + count, 0);\n cell.hasSubColumns = true;\n } else {\n widths.push((cell.column.width as string) || '');\n }\n\n if ('colSpan' in column) {\n colSpan = column.colSpan!;\n }\n\n if ('rowSpan' in column) {\n cell.rowSpan = column.rowSpan;\n }\n\n cell.colSpan = colSpan;\n cell.colEnd = cell.colStart + colSpan - 1;\n rows[rowIndex].push(cell as NzSafeAny);\n\n currentColIndex += colSpan;\n\n return colSpan;\n });\n\n return colSpans;\n };\n\n fillRowCells(rootColumns, 0);\n\n // Handle `rowSpan`\n const rowCount = rows.length;\n for (let rowIndex = 0; rowIndex < rowCount; rowIndex += 1) {\n rows[rowIndex].forEach(cell => {\n if (!('rowSpan' in cell) && !(cell as _STHeader).hasSubColumns) {\n (cell as _STHeader).rowSpan = rowCount - rowIndex;\n }\n });\n }\n\n return { headers: rows, headerWidths: rowCount > 1 ? widths : null };\n }\n\n private cleanCond(list: _STColumn[]): _STColumn[] {\n const res: _STColumn[] = [];\n const copyList = deepCopy(list);\n for (const item of copyList) {\n if (typeof item.iif === 'function' && !item.iif(item)) {\n continue;\n }\n if (this.acl && item.acl && !this.acl.can(item.acl)) {\n continue;\n }\n if (Array.isArray(item.children) && item.children.length > 0) {\n item.children = this.cleanCond(item.children);\n }\n res.push(item);\n }\n return res;\n }\n\n private mergeClass(item: _STColumn): void {\n const builtInClassNames: string[] = [];\n if (item._isTruncate) {\n builtInClassNames.push('text-truncate');\n }\n const rawClassName = item.className;\n if (!rawClassName) {\n const typeClass = (\n {\n number: 'text-right',\n currency: 'text-right',\n date: 'text-center'\n } as NzSafeAny\n )[item.type!];\n if (typeClass) {\n builtInClassNames.push(typeClass);\n }\n item._className = builtInClassNames;\n return;\n }\n\n const rawClassNameIsArray = Array.isArray(rawClassName);\n if (!rawClassNameIsArray && typeof rawClassName === 'object') {\n const objClassNames: NgClassInterface = rawClassName;\n builtInClassNames.forEach(key => (objClassNames[key] = true));\n item._className = objClassNames;\n return;\n }\n\n const arrayClassNames = rawClassNameIsArray ? Array.from(rawClassName as string[]) : [rawClassName];\n arrayClassNames.splice(0, 0, ...builtInClassNames);\n item._className = [...new Set(arrayClassNames)].filter(w => !!w);\n }\n\n process(\n list: STColumn[],\n options: STColumnSourceProcessOptions\n ): { columns: _STColumn[]; headers: _STHeader[][]; headerWidths: string[] | null } {\n if (!list || list.length === 0) {\n return { columns: [], headers: [], headerWidths: null };\n }\n const { noIndex } = this.cog;\n let checkboxCount = 0;\n let radioCount = 0;\n const columns: _STColumn[] = [];\n\n const processItem = (item: _STColumn): _STColumn => {\n // index\n if (item.index) {\n if (!Array.isArray(item.index)) {\n item.index = item.index.toString().split('.');\n }\n item.indexKey = item.index.join('.');\n }\n\n // #region title\n\n const tit = (typeof item.title === 'string' ? { text: item.title } : item.title) || {};\n if (tit.i18n && this.i18nSrv) {\n tit.text = this.i18nSrv.fanyi(tit.i18n);\n }\n if (tit.text) {\n tit._text = this.dom.bypassSecurityTrustHtml(tit.text);\n }\n item.title = tit;\n\n // #endregion\n\n // no\n if (item.type === 'no') {\n item.noIndex = item.noIndex == null ? noIndex : item.noIndex;\n }\n // checkbox\n if (item.selections == null) {\n item.selections = [];\n }\n if (item.type === 'checkbox') {\n ++checkboxCount;\n if (!item.width) {\n item.width = `${item.selections.length > 0 ? 62 : 50}px`;\n }\n }\n if (this.acl) {\n item.selections = item.selections.filter(w => this.acl.can(w.acl!));\n }\n // radio\n if (item.type === 'radio') {\n ++radioCount;\n item.selections = [];\n if (!item.width) {\n item.width = '50px';\n }\n }\n // cell\n if (item.cell != null) {\n item.type = 'cell';\n }\n // types\n if (item.type === 'yn') {\n item.yn = { truth: true, ...this.cog.yn, ...item.yn };\n }\n // date\n if (item.type === 'date') {\n item.dateFormat = item.dateFormat || this.cog.date?.format;\n }\n if (\n (item.type === 'link' && typeof item.click !== 'function') ||\n (item.type === 'badge' && item.badge == null) ||\n (item.type === 'tag' && item.tag == null) ||\n (item.type === 'enum' && item.enum == null)\n ) {\n item.type = '';\n }\n item._isTruncate = !!item.width && options.widthMode.strictBehavior === 'truncate' && item.type !== 'img';\n // className\n this.mergeClass(item);\n // width\n if (typeof item.width === 'number') {\n item._width = item.width;\n item.width = `${item.width}px`;\n }\n item._left = false;\n item._right = false;\n item.safeType = item.safeType ?? options.safeType;\n\n // sorter\n item._sort = this.sortCoerce(item);\n // filter\n item.filter = this.filterCoerce(item) as STColumnFilter;\n // buttons\n item.buttons = this.btnCoerce(item.buttons!);\n // widget\n this.widgetCoerce(item);\n // restore custom row\n this.restoreRender(item);\n // resizable\n item.resizable = {\n disabled: true,\n bounds: 'window',\n minWidth: 60,\n maxWidth: 360,\n preview: true,\n ...options.resizable,\n ...(typeof item.resizable === 'boolean' ? ({ disabled: !item.resizable } as STResizable) : item.resizable)\n };\n\n return item;\n };\n\n const processList = (data: _STColumn[]): void => {\n for (const item of data) {\n columns.push(processItem(item));\n if (Array.isArray(item.children)) {\n processList(item.children);\n }\n }\n };\n\n const copyList = this.cleanCond(list as _STColumn[]);\n processList(copyList);\n\n if (checkboxCount > 1) {\n throw new Error(`[st]: just only one column checkbox`);\n }\n if (radioCount > 1) {\n throw new Error(`[st]: just only one column radio`);\n }\n\n this.fixedCoerce(columns as _STColumn[], options.expand);\n return {\n columns: columns.filter(w => !Array.isArray(w.children) || w.children.length === 0),\n ...this.genHeaders(copyList)\n };\n }\n\n restoreAllRender(columns: _STColumn[]): void {\n columns.forEach(i => this.restoreRender(i));\n }\n\n updateDefault(filter: STColumnFilter): this {\n if (filter.menus == null) return this;\n\n if (filter.type === 'default') {\n filter.default = filter.menus!.findIndex(w => w.checked!) !== -1;\n } else {\n filter.default = !!filter.menus![0].value;\n }\n return this;\n }\n\n cleanFilter(col: _STColumn): this {\n const f = col.filter!;\n f.default = false;\n if (f.type === 'default') {\n f.menus!.forEach(i => (i.checked = false));\n } else {\n f.menus![0].value = undefined;\n }\n return this;\n }\n}\n","import { DecimalPipe } from '@angular/common';\nimport { HttpParams } from '@angular/common/http';\nimport { Host, Injectable } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { Observable, of, map } from 'rxjs';\n\nimport type { CellOptions } from '@delon/abc/cell';\nimport { DatePipe, YNPipe, _HttpClient } from '@delon/theme';\nimport type { AlainSTConfig } from '@delon/util/config';\nimport { CurrencyService } from '@delon/util/format';\nimport { deepCopy, deepGet } from '@delon/util/other';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport type {\n STColumn,\n STColumnFilter,\n STColumnFilterMenu,\n STColumnMaxMultipleButton,\n STCustomRequestOptions,\n STData,\n STIcon,\n STMultiSort,\n STMultiSortResultType,\n STOnCellResult,\n STPage,\n STReq,\n STReqReNameType,\n STRequestOptions,\n STRes,\n STRowClassName,\n STSingleSort,\n STSortMap,\n STStatistical,\n STStatisticalResult,\n STStatisticalResults,\n STStatisticalType\n} from './st.interfaces';\nimport type { _STColumn, _STColumnButton, _STDataValue, _STHeader } from './st.types';\n\nexport interface STDataSourceOptions {\n pi: number;\n ps: number;\n paginator: boolean;\n data?: string | STData[] | Observable<STData[]>;\n total: number;\n req: STReq;\n res: STRes;\n page: STPage;\n columns: _STColumn[];\n headers: _STHeader[][];\n singleSort?: STSingleSort | null;\n multiSort?: STMultiSort;\n rowClassName?: STRowClassName | null;\n customRequest?: (options: STCustomRequestOptions) => Observable<NzSafeAny>;\n}\n\nexport interface STDataSourceResult {\n /** 是否需要显示分页器 */\n pageShow: boolean;\n /** 新 `pi`,若返回 `undefined` 表示用户受控 */\n pi: number;\n /** 新 `ps`,若返回 `undefined` 表示用户受控 */\n ps: number;\n /** 新 `total`,若返回 `undefined` 表示用户受控 */\n total: number;\n /** 数据 */\n list: STData[];\n /** 统计数据 */\n statistical: STStatisticalResults;\n}\n\n@Injectable()\nexport class STDataSource {\n private cog!: AlainSTConfig;\n private sortTick = 0;\n\n constructor(\n private http: _HttpClient,\n @Host() private datePipe: DatePipe,\n @Host() private ynPipe: YNPipe,\n @Host() private numberPipe: DecimalPipe,\n private currencySrv: CurrencyService,\n private dom: DomSanitizer\n ) {}\n\n setCog(val: AlainSTConfig): void {\n this.cog = val;\n }\n\n process(options: STDataSourceOptions): Observable<STDataSourceResult> {\n let data$: Observable<STData[]>;\n let isRemote = false;\n const { data, res, total, page, pi, ps, paginator, columns, headers } = options;\n let retTotal: number;\n let retPs: number;\n let retList: STData[];\n let retPi: number;\n let rawData: NzSafeAny;\n let showPage = page.show;\n\n if (typeof data === 'string') {\n isRemote = true;\n data$ = this.getByRemote(data, options).pipe(\n map(result => {\n rawData = result;\n let ret: STData[];\n if (Array.isArray(result)) {\n ret = result;\n retTotal = ret.length;\n retPs = retTotal;\n showPage = false;\n } else {\n const reName = res.reName!;\n if (typeof reName === 'function') {\n const fnRes = reName(result, { pi, ps, total });\n ret = fnRes.list;\n retTotal = fnRes.total;\n } else {\n // list\n ret = deepGet(result, reName.list as string[], []);\n if (ret == null || !Array.isArray(ret)) {\n ret = [];\n }\n // total\n const resultTotal = reName.total && deepGet(result, reName.total as string[], null);\n retTotal = resultTotal == null ? total || 0 : +resultTotal;\n }\n }\n return deepCopy(ret);\n })\n );\n } else if (data == null || Array.isArray(data)) {\n data$ = of(data ?? []);\n } else {\n // a cold observable\n data$ = data;\n }\n\n if (!isRemote) {\n data$ = data$.pipe(\n // sort\n map((result: STData[]) => {\n rawData = result;\n let copyResult = deepCopy(result);\n const sorterFn = this.getSorterFn(headers);\n if (sorterFn) {\n copyResult = copyResult.sort(sorterFn);\n }\n return copyResult;\n }),\n // filter\n map((result: STData[]) => {\n columns\n .filter(w => w.filter)\n .forEach(c => {\n const filter = c.filter!;\n const values = this.getFilteredData(filter);\n if (values.length === 0) return;\n const onFilter = filter.fn;\n if (typeof onFilter !== 'function') {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.warn(`[st] Muse provide the fn function in filter`);\n }\n return;\n }\n result = result.filter(record => values.some(v => onFilter(v, record)));\n });\n return result;\n }),\n // paging\n map((result: STData[]) => {\n if (paginator && page.front) {\n const maxPageIndex = Math.ceil(result.length / ps);\n retPi = Math.max(1, pi > maxPageIndex ? maxPageIndex : pi);\n retTotal = result.length;\n if (page.show === true) {\n return result.slice((retPi - 1) * ps, retPi * ps);\n }\n }\n return result;\n })\n );\n }\n\n // pre-process\n if (typeof res.process === 'function') {\n data$ = data$.pipe(map(result => res.process!(result, rawData)));\n }\n\n data$ = data$.pipe(map(result => this.optimizeData({ result, columns, rowClassName: options.rowClassName })));\n\n return data$.pipe(\n map(result => {\n retList = result;\n const realTotal = retTotal || total;\n const realPs = retPs || ps;\n\n return {\n pi: retPi,\n ps: retPs,\n total: retTotal,\n list: retList,\n statistical: this.genStatistical(columns as _STColumn[], retList, rawData),\n pageShow: typeof showPage === 'undefined' ? realTotal > realPs : showPage\n } as STDataSourceResult;\n })\n );\n }\n\n private get(item: STData, col: _STColumn, idx: number): _STDataValue {\n try {\n const safeHtml = col.safeType === 'safeHtml';\n if (col.format) {\n const formatRes = col.format(item, col, idx) || '';\n return {\n text: formatRes,\n _text: safeHtml ? this.dom.bypassSecurityTrustHtml(formatRes) : formatRes,\n org: formatRes,\n safeType: col.safeType!\n };\n }\n\n const value = deepGet(item, col.index as string[], col.default);\n\n let text = value;\n let color: string | undefined;\n let tooltip: string | undefined;\n switch (col.type) {\n case 'no':\n text = this.getNoIndex(item, col, idx);\n break;\n case 'img':\n text = value ? `<img src=\"${value}\" class=\"img\">` : '';\n break;\n case 'number':\n text = this.numberPipe.transform(value, col.numberDigits);\n break;\n case 'currency':\n text = this.currencySrv.format(value, col.currency?.format);\n break;\n case 'date':\n text =\n value == null || value === col.default || (typeof value === 'number' && value <= 0)\n ? col.default\n : this.datePipe.transform(value, col.dateFormat);\n break;\n case 'yn':\n text = this.ynPipe.transform(value === col.yn!.truth, col.yn!.yes!, col.yn!.no!, col.yn!.mode!, false);\n break;\n case 'enum':\n text = col.enum![value];\n break;\n case 'tag':\n case 'badge': {\n const data = col.type === 'tag' ? col.tag : col.badge;\n if (data && data[text]) {\n const dataItem = data[text];\n text = dataItem.text;\n color = dataItem.color;\n tooltip = dataItem.tooltip;\n } else {\n text = '';\n }\n break;\n }\n }\n if (text == null) text = '';\n return {\n text,\n _text: safeHtml ? this.dom.bypassSecurityTrustHtml(text) : text,\n org: value,\n color,\n tooltip,\n safeType: col.safeType!,\n buttons: []\n };\n } catch (ex) {\n const text = `INVALID DATA`;\n console.error(`Failed to get data`, item, col, ex);\n return { text, _text: text, org: text, buttons: [], safeType: 'text' };\n }\n }\n\n private getByRemote(url: string, options: STDataSourceOptions): Observable<unknown> {\n const { req, page, paginator, pi, ps, singleSort, multiSort, columns, headers } = options;\n const method = (req.method || 'GET').toUpperCase();\n\n let params: Record<string, any> = {};\n const reName = req.reName as STReqReNameType;\n if (paginator) {\n if (req.type === 'page') {\n params = {\n [reName.pi as string]: page.zeroIndexed ? pi - 1 : pi,\n [reName.ps as string]: ps\n };\n } else {\n params = {\n [reName.skip as string]: (pi - 1) * ps,\n [reName.limit as string]: ps\n };\n }\n }\n params = {\n ...params,\n ...req.params,\n ...this.getReqSortMap(singleSort, multiSort, headers),\n ...this.getReqFilterMap(columns)\n };\n if (options.req.ignoreParamNull == true) {\n Object.keys(params).forEach(key => {\n if (params[key] == null) delete params[key];\n });\n }\n\n let reqOptions: STRequestOptions = {\n params,\n body: req.body,\n headers: req.headers\n };\n if (method === 'POST' && req.allInBody === true) {\n reqOptions = {\n body: { ...req.body, ...params },\n headers: req.headers\n };\n }\n if (typeof req.process === 'function') {\n reqOptions = req.process(reqOptions);\n }\n if (!(reqOptions.params instanceof HttpParams)) {\n reqOptions.params = new HttpParams({ fromObject: reqOptions.params });\n }\n if (typeof options.customRequest === 'function') {\n return options.customRequest({ method, url, options: reqOptions });\n }\n return this.http.request(method, url, reqOptions);\n }\n\n getCell(c: STColumn, item: STData, idx: number): STOnCellResult {\n const onCellResult = typeof c.onCell === 'function' ? c.onCell(item, idx) : null;\n const mergedColSpan = onCellResult?.colSpan ?? 1;\n const mergedRowSpan = onCellResult?.rowSpan ?? 1;\n return {\n colSpan: mergedColSpan <= 0 ? null : mergedColSpan,\n rowSpan: mergedRowSpan <= 0 ? null : mergedRowSpan\n } as STOnCellResult;\n }\n\n optimizeData(options: { columns: _STColumn[]; result: STData[]; rowClassName?: STRowClassName | null }): STData[] {\n const { result, columns, rowClassName } = options;\n for (let i = 0, len = result.length; i < len; i++) {\n result[i]._values = columns.map(c => {\n const props = this.getCell(c, result[i], i);\n\n if (Array.isArray(c.buttons) && c.buttons.length > 0) {\n return { buttons: this.genButtons(c.buttons, result[i], c), _text: '', props };\n }\n\n let cell: CellOptions | undefined;\n if (typeof c.cell === 'function') {\n cell = c.cell(result[i], c);\n }\n return { ...this.get(result[i], c, i), props, cell };\n });\n result[i]._rowClassName = [rowClassName ? rowClassName(result[i], i) : null, result[i].className]\n .filter(w => !!w)\n .join(' ');\n }\n return result;\n }\n\n getNoIndex(item: STData, col: _STColumn, idx: number): number {\n return typeof col.noIndex === 'function' ? col.noIndex(item, col, idx) : col.noIndex! + idx;\n }\n\n private genButtons(_btns: _STColumnButton[], item: STData, col: STColumn): _STColumnButton[] {\n const fn = (btns: _STColumnButton[]): _STColumnButton[] => {\n return deepCopy(btns).filter(btn => {\n const result = typeof btn.iif === 'function' ? btn.iif(item, btn, col) : true;\n const isRenderDisabled = btn.iifBehavior === 'disabled';\n btn._result = result;\n btn._disabled = !result && isRenderDisabled;\n if (btn.children?.length) {\n btn.children = fn(btn.children!);\n }\n return result || isRenderDisabled;\n });\n };\n\n const res = fn(_btns);\n\n const fnText = (btns: _STColumnButton[]): _STColumnButton[] => {\n for (const btn of btns) {\n btn._text = typeof btn.text === 'function' ? btn.text(item, btn) : btn.text || '';\n btn._className = typeof btn.className === 'function' ? btn.className(item, btn) : btn.className;\n btn._icon = typeof btn.icon === 'function' ? btn.icon(item, btn) : (btn.icon as STIcon);\n if (btn.children?.length) {\n btn.children = fnText(btn.children!);\n }\n }\n return btns;\n };\n\n return this.fixMaxMultiple(fnText(res), col);\n }\n\n private fixMaxMultiple(btns: _STColumnButton[], col: STColumn): _STColumnButton[] {\n const curCog = col.maxMultipleButton;\n const btnSize = btns.length;\n if (curCog == null || btnSize <= 0) return btns;\n\n const cog: STColumnMaxMultipleButton = {\n ...this.cog.maxMultipleButton,\n ...(typeof curCog === 'number' ? { count: curCog } : curCog)\n };\n\n if (cog.count! >= btnSize) return btns;\n\n const newBtns: _STColumnButton[] = btns.slice(0, cog.count);\n newBtns.push({ _text: cog.text, children: btns.slice(cog.count) });\n return newBtns;\n }\n\n // #region sort\n\n private getValidSort(headers: _STHeader[][]): STSortMap[] {\n return headers.reduce((a, header) => {\n const ls = header\n .map(i => i.column)\n .filter(item => item._sort && item._sort.enabled && item._sort.default)\n .map(item => item._sort!);\n return a.concat(...ls);\n }, [] as STSortMap[]);\n }\n\n private getSorterFn(headers: _STHeader[][]): ((a: STData, b: STData) => number) | void {\n const sortList = this.getValidSort(headers);\n if (sortList.length === 0) {\n return;\n }\n const sortItem = sortList[0];\n if (sortItem.compare === null) {\n return;\n }\n if (typeof sortItem.compare !== 'function') {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.warn(`[st] Muse provide the compare function in sort`);\n }\n return;\n }\n\n return (a: STData, b: STData) => {\n const result = sortItem.compare!(a, b);\n if (result !== 0) {\n return sortItem.default === 'descend' ? -result : result;\n }\n return 0;\n };\n }\n\n get nextSortTick(): number {\n return ++this.sortTick;\n }\n\n getReqSortMap(\n singleSort: STSingleSort | undefined | null,\n multiSort: STMultiSort | undefined,\n headers: _STHeader[][]\n ): STMultiSortResultType {\n let ret: STMultiSortResultType = {};\n const sortList = this.getValidSort(headers);\n\n if (multiSort) {\n const ms: STMultiSort = {\n key: 'sort',\n separator: '-',\n nameSeparator: '.',\n keepEmptyKey: true,\n arrayParam: false,\n ...multiSort\n };\n\n const sortMap = sortList\n .sort((a, b) => a.tick - b.tick)\n .map(item => item.key! + ms.nameSeparator + ((item.reName || {})[item.default!] || item.default));\n\n ret = { [ms.key!]: ms.arrayParam ? sortMap : sortMap.join(ms.separator) };\n\n return sortMap.length === 0 && ms.keepEmptyKey === false ? {} : ret;\n }\n\n if (sortList.length === 0) return ret;\n\n const mapData = sortList[0];\n let sortFiled = mapData.key;\n let sortValue = (sortList[0].reName || {})[mapData.default!] || mapData.default;\n if (singleSort) {\n sortValue = sortFiled + (singleSort.nameSeparator || '.') + sortValue;\n sortFiled = singleSort.key || 'sort';\n }\n ret[sortFiled as string] = sortValue as string;\n return ret;\n }\n\n // #endregion\n\n // #region filter\n\n private getFilteredData(filter: STColumnFilter): STColumnFilterMenu[] {\n return filter.type === 'default' ? filter.menus!.filter(f => f.checked === true) : filter.menus!.slice(0, 1);\n }\n\n private getReqFilterMap(columns: _STColumn[]): Record<string, string> {\n let ret = {};\n columns\n .filter(w => w.filter && w.filter.default === true)\n .forEach(col => {\n const filter = col.filter!;\n const values = this.getFilteredData(filter);\n let obj: Record<string, NzSafeAny> = {};\n if (filter.reName) {\n obj = filter.reName!(filter.menus!, col);\n } else {\n obj[filter.key!] = values.map(i => i.value).join(',');\n }\n ret = { ...ret, ...obj };\n });\n return ret;\n }\n\n // #endregion\n\n // #region statistical\n\n private genStatistical(columns: _STColumn[], list: STData[], rawData: NzSafeAny): STStatisticalResults {\n const res: Record<string, NzSafeAny> = {};\n columns.forEach((col, index) => {\n res[col.key || col.indexKey || index] =\n col.statistical == null ? {} : this.getStatistical(col, index, list, rawData);\n });\n return res;\n }\n\n private getStatistical(col: _STColumn, index: number, list: STData[], rawData: NzSafeAny): STStatisticalResult {\n const val = col.statistical;\n const item: STStatistical = {\n digits: 2,\n currency: undefined,\n ...(typeof val === 'string' ? { type: val as STStatisticalType } : (val as STStatistical))\n };\n let res: STStatisticalResult = { value: 0 };\n let currency = false;\n if (typeof item.type === 'function') {\n res = item.type(this.getValues(index, list), col, list, rawData);\n currency = true;\n } else {\n switch (item.type) {\n case 'count':\n res.value = list.length;\n break;\n case 'distinctCount':\n res.value = this.getValues(index, list).filter((value, idx, self) => self.indexOf(value) === idx).length;\n break;\n case 'sum':\n res.value = this.toFixed(this.getSum(index, list), item.digits!);\n currency = true;\n break;\n case 'average':\n res.value = this.toFixed(this.getSum(index, list) / list.length, item.digits!);\n currency = true;\n break;\n case 'max':\n res.value = Math.max(...this.getValues(index, list));\n currency = true;\n break;\n case 'min':\n res.value = Math.min(...this.getValues(index, list));\n currency = true;\n break;\n }\n }\n if (item.currency === true || (item.currency == null && currency === true)) {\n res.text = this.currencySrv.format(res.value, col.currency?.format) as string;\n } else {\n res.text = String(res.value);\n }\n return res;\n }\n\n private toFixed(val: number, digits: number): number {\n if (isNaN(val) || !isFinite(val)) {\n return 0;\n }\n return parseFloat(val.toFixed(digits));\n }\n\n private getValues(index: number, list: STData[]): number[] {\n return list.map(i => i._values[index].org).map(i => (i === '' || i == null ? 0 : i));\n }\n\n private getSum(index: number, list: STData[]): number {\n return this.getValues(index, list).reduce((p, i) => (p += parseFloat(String(i))), 0);\n }\n\n // #endregion\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { XlsxExportResult, XlsxService } from '@delon/abc/xlsx';\nimport { deepGet } from '@delon/util/other';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { STColumn, STExportOptions } from './st.interfaces';\nimport { _STColumn } from './st.types';\n\n@Injectable()\nexport class STExport {\n private readonly xlsxSrv = inject(XlsxService);\n\n private _stGet(item: NzSafeAny, col: STColumn, index: number, colIndex: number): NzSafeAny {\n const ret: Record<string, NzSafeAny> = { t: 's', v: '' };\n\n if (col.format) {\n ret.v = col.format(item, col, index);\n } else {\n const val = item._values ? item._values[colIndex].text : deepGet(item, col.index as string[], '');\n ret.v = val;\n if (val != null) {\n switch (col.type) {\n case 'currency':\n ret.t = 'n';\n break;\n case 'date':\n // Can't be a empty value, it will cause `#NULL!`\n // See https://github.com/SheetJS/sheetjs/blob/master/docbits/52_datatype.md\n if (`${val}`.length > 0) {\n ret.t = 'd';\n // Number Formats: https://github.com/SheetJS/sheetjs/blob/master/docbits/63_numfmt.md\n ret.z = col.dateFormat;\n }\n break;\n case 'yn': {\n const yn = col.yn!;\n ret.v = val === yn.truth ? yn.yes : yn.no;\n break;\n }\n }\n }\n }\n\n ret.v = ret.v ?? '';\n\n return ret;\n }\n\n private genSheet(opt: STExportOptions): Record<string, unknown> {\n const sheets: Record<string, Record<string, NzSafeAny>> = {};\n const sheet: Record<string, NzSafeAny> = (sheets[opt.sheetname || 'Sheet1'] = {});\n const dataLen = opt.data!.length;\n const columns = opt.columens! as _STColumn[];\n let validColCount = 0;\n let wpx = false;\n const invalidFn = (col: _STColumn): boolean =>\n col.exported === false || !col.index || !(!col.buttons || col.buttons.length === 0);\n for (const [idx, col] of columns.entries()) {\n if (invalidFn(col)) continue;\n if (!wpx && col._width != null) wpx = true;\n ++validColCount;\n const columnName = this.xlsxSrv!.numberToSchema(validColCount);\n sheet[`${columnName}1`] = {\n t: 's',\n v: typeof col.title === 'object' ? col.title.text : col.title\n };\n for (let dataIdx = 0; dataIdx < dataLen; dataIdx++) {\n sheet[`${columnName}${dataIdx + 2}`] = this._stGet(opt.data![dataIdx], col, dataIdx, idx);\n }\n }\n if (wpx) {\n // wpx: width in screen pixels https://github.com/SheetJS/sheetjs#column-properties\n sheet['!cols'] = columns.filter(col => !invalidFn(col)).map(col => ({ wpx: col._width }));\n }\n\n if (validColCount > 0 && dataLen > 0) {\n sheet['!ref'] = `A1:${this.xlsxSrv!.numberToSchema(validColCount)}${dataLen + 1}`;\n }\n\n return sheets;\n }\n\n async export(opt: STExportOptions): Promise<XlsxExportResult> {\n const sheets = this.genSheet(opt);\n return this.xlsxSrv.export({\n sheets,\n filename: opt.filename,\n callback: opt.callback\n });\n }\n}\n","import { Directive, Input, OnInit, ViewContainerRef, inject } from '@angular/core';\n\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { STWidgetRegistry } from './st-widget';\nimport { STColumn, STData } from './st.interfaces';\n\n@Directive({\n selector: '[st-widget-host]'\n})\nexport class STWidgetHostDirective implements OnInit {\n private readonly stWidgetRegistry = inject(STWidgetRegistry);\n private readonly viewContainerRef = inject(ViewContainerRef);\n\n @Input() record!: STData;\n @Input() column!: STColumn;\n\n ngOnInit(): void {\n const widget = this.column.widget!;\n const componentType = this.stWidgetRegistry.get(widget.type);\n\n this.viewContainerRef.clear();\n const componentRef = this.viewContainerRef.createComponent(componentType);\n const { record, column } = this;\n const data: Record<string, NzSafeAny> = widget.params ? widget.params({ record, column }) : { record };\n Object.keys(data).forEach(key => {\n (componentRef.instance as NzSafeAny)[key] = data[key];\n });\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport type { LocaleData } from '@delon/theme';\nimport { NzCheckboxComponent } from 'ng-zorro-antd/checkbox';\nimport { NzDatePickerComponent, NzRangePickerComponent } from 'ng-zorro-antd/date-picker';\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { NzIconDirective } from 'ng-zorro-antd/icon';\nimport { NzInputDirective } from 'ng-zorro-antd/input';\nimport { NzInputNumberComponent } from 'ng-zorro-antd/input-number';\nimport { NzMenuModule } from 'ng-zorro-antd/menu';\nimport { NzRadioComponent } from 'ng-zorro-antd/radio';\n\nimport type { STColumnFilter, STColumnFilterMenu, STIcon } from './st.interfaces';\nimport type { _STColumn } from './st.types';\n\n@Component({\n selector: 'st-filter',\n template: `\n <span\n class=\"ant-table-filter-trigger\"\n [class.active]=\"visible || f.default\"\n nz-dropdown\n [nzDropdownMenu]=\"filterMenu\"\n nzTrigger=\"click\"\n [nzClickHide]=\"false\"\n [(nzVisible)]=\"visible\"\n nzOverlayClassName=\"st__filter-wrap\"\n (click)=\"stopPropagation($event)\"\n >\n <nz-icon [nzType]=\"icon.type\" [nzTheme]=\"icon.theme!\" />\n </span>\n <nz-dropdown-menu #filterMenu=\"nzDropdownMenu\">\n <div class=\"ant-table-filter-dropdown\">\n @switch (f.type) {\n @case ('keyword') {\n <div class=\"st__filter-keyword\">\n <input\n type=\"text\"\n nz-input\n [attr.placeholder]=\"f.placeholder\"\n [(ngModel)]=\"f.menus![0]!.value\"\n (ngModelChange)=\"n.emit($event)\"\n (keyup.enter)=\"confirm()\"\n />\n </div>\n }\n @case ('number') {\n <div class=\"p-sm st__filter-number\">\n <nz-input-number\n [(ngModel)]=\"f.menus![0]!.value\"\n (ngModelChange)=\"n.emit($event)\"\n [nzMin]=\"f.number!.min!\"\n [nzMax]=\"f.number!.max!\"\n [nzStep]=\"f.number!.step!\"\n [nzPrecision]=\"f.number!.precision || null\"\n [nzPlaceHolder]=\"f.placeholder!\"\n class=\"width-100\"\n />\n </div>\n }\n @case ('date') {\n <div class=\"p-sm st__filter-date\">\n @if (f.date!.range) {\n <nz-range-picker\n nzInline\n [nzMode]=\"$any(f.date!.mode)\"\n [(ngModel)]=\"f.menus![0]!.value\"\n (ngModelChange)=\"n.emit($event)\"\n [nzShowNow]=\"f.date!.showNow\"\n [nzShowToday]=\"f.date!.showToday\"\n [nzDisabledDate]=\"f.date!.disabledDate\"\n [nzDisabledTime]=\"f.date!.disabledTime\"\n />\n } @else {\n <nz-date-picker\n nzInline\n [nzMode]=\"$any(f.date!.mode)\"\n [(ngModel)]=\"f.menus![0]!.value\"\n (ngModelChange)=\"n.emit($event)\"\n [nzShowNow]=\"f.date!.showNow\"\n [nzShowToday]=\"f.date!.showToday\"\n [nzDisabledDate]=\"f.date!.disabledDate\"\n [nzDisabledTime]=\"f.date!.disabledTime\"\n />\n }\n </div>\n }\n @case ('custom') {\n <div class=\"st__filter-custom\">\n <ng-template\n [ngTemplateOutlet]=\"f.custom!\"\n [ngTemplateOutletContext]=\"{ $implicit: f, col: col, handle: this }\"\n />\n </div>\n }\n @default {\n <ul nz-menu>\n @for (filter of f.menus; track $index) {\n <li nz-menu-item>\n @if (f.multiple) {\n <label nz-checkbox [(ngModel)]=\"filter.checked\" (ngModelChange)=\"checkboxChange()\">\n {{ filter.text }}\n </label>\n } @else {\n <label nz-radio [ngModel]=\"filter.checked\" (ngModelChange)=\"radioChange(filter)\">\n {{ filter.text }}\n </label>\n }\n </li>\n }\n </ul>\n }\n }\n @if (f.showOPArea) {\n <div class=\"ant-table-filter-dropdown-btns\">\n <a class=\"ant-table-filter-dropdown-link confirm\" (click)=\"confirm()\">\n <span>{{ f.confirmText || locale.filterConfirm }}</span>\n </a>\n <a class=\"ant-table-filter-dropdown-link clear\" (click)=\"reset()\">\n <span>{{ f.clearText || locale.filterReset }}</span>\n </a>\n </div>\n }\n </div>\n </nz-dropdown-menu>\n `,\n host: {\n '[class.ant-table-filter-trigger-container]': `true`,\n '[class.st__filter]': `true`,\n '[class.ant-table-filter-trigger-container-open]': `visible`\n },\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n FormsModule,\n NzDropDownModule,\n NzIconDirective,\n NzInputDirective,\n NzInputNumberComponent,\n NzRangePickerComponent,\n NzDatePickerComponent,\n NgTemplateOutlet,\n NzMenuModule,\n NzCheckboxComponent,\n NzRadioComponent\n ]\n})\nexport class STFilterComponent {\n private readonly cdr = inject(ChangeDetectorRef);\n\n visible = false;\n @Input() col!: _STColumn;\n @Input() locale: LocaleData = {};\n @Input() f!: STColumnFilter;\n @Output() readonly n = new EventEmitter<unknown>();\n @Output() readonly handle = new EventEmitter<boolean>();\n get icon(): STIcon {\n return this.f.icon as STIcon;\n }\n\n stopPropagation($event: MouseEvent): void {\n $event.stopPropagation();\n }\n\n checkboxChange(): void {\n this.n.emit(this.f.menus?.filter(w => w.checked));\n }\n\n radioChange(item: STColumnFilterMenu): void {\n this.f.menus!.forEach(i => (i.checked = false));\n item.checked = !item.checked;\n this.n.emit(item);\n }\n\n close(result?: boolean): void {\n if (result != null) this.handle.emit(result);\n\n this.visible = false;\n this.cdr.detectChanges();\n }\n\n confirm(): this {\n this.handle.emit(true);\n return this;\n }\n\n reset(): this {\n this.handle.emit(false);\n return this;\n }\n}\n","import { AlainSTConfig } from '@delon/util/config';\n\nexport const ST_DEFAULT_CONFIG: AlainSTConfig = {\n pi: 1,\n ps: 10,\n size: 'default',\n responsive: true,\n responsiveHideHeaderFooter: false,\n req: {\n type: 'page',\n method: 'GET',\n allInBody: false,\n lazyLoad: false,\n ignoreParamNull: false,\n reName: { pi: 'pi', ps: 'ps', skip: 'skip', limit: 'limit' }\n },\n res: {\n reName: { list: ['list'], total: ['total'] }\n },\n page: {\n front: true,\n zeroIndexed: false,\n position: 'bottom',\n placement: 'right',\n show: true,\n showSize: false,\n pageSizes: [10, 20, 30, 40, 50],\n showQuickJumper: false,\n total: true,\n toTop: true,\n toTopOffset: 100,\n itemRender: null,\n simple: false\n },\n modal: {\n paramsName: 'record',\n size: 'lg',\n exact: true\n },\n drawer: {\n paramsName: 'record',\n size: 'md',\n footer: true,\n footerHeight: 55\n },\n pop: {\n title: '确认删除吗?',\n trigger: 'click',\n placement: 'top'\n },\n btnIcon: {\n theme: 'outline',\n spin: false\n },\n noIndex: 1,\n expandRowByClick: false,\n expandAccordion: false,\n widthMode: {\n type: 'default',\n strictBehavior: 'truncate'\n },\n virtualItemSize: 54,\n virtualMaxBufferPx: 200,\n virtualMinBufferPx: 100,\n iifBehavior: 'hide',\n loadingDelay: 0,\n safeType: 'safeHtml',\n date: {\n format: `yyyy-MM-dd HH:mm`\n },\n yn: {\n truth: true,\n yes: '是',\n mode: 'icon'\n },\n maxMultipleButton: {\n text: '更多',\n count: 2\n }\n};\n","import { moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';\nimport type { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport { DecimalPipe, DOCUMENT, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n inject,\n input,\n Input,\n numberAttribute,\n OnChanges,\n Output,\n SimpleChange,\n SimpleChanges,\n TemplateRef,\n TrackByFunction,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { isObservable, Observable, of, filter, catchError, map, finalize, throwError, lastValueFrom } from 'rxjs';\n\nimport { CellComponent } from '@delon/abc/cell';\nimport {\n ALAIN_I18N_TOKEN,\n DatePipe,\n DelonLocaleService,\n DrawerHelper,\n LocaleData,\n ModalHelper,\n YNPipe\n} from '@delon/theme';\nimport { AlainConfigService, AlainSTConfig } from '@delon/util/config';\nimport { deepCopy, deepMergeKey } from '@delon/util/other';\nimport { NzBadgeComponent } from 'ng-zorro-antd/badge';\nimport { NzCheckboxComponent } from 'ng-zorro-antd/checkbox';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { NzDividerComponent } from 'ng-zorro-antd/divider';\nimport { NzContextMenuService, NzDropdownMenuComponent, NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { NzIconDirective } from 'ng-zorro-antd/icon';\nimport { NzMenuModule } from 'ng-zorro-antd/menu';\nimport { NzPopconfirmDirective } from 'ng-zorro-antd/popconfirm';\nimport { NzRadioComponent } from 'ng-zorro-antd/radio';\nimport { NzResizableModule, NzResizeEvent } from 'ng-zorro-antd/resizable';\nimport { NzTableComponent, NzTableModule } from 'ng-zorro-antd/table';\nimport { NzTagComponent } from 'ng-zorro-antd/tag';\nimport { NzTooltipDirective } from 'ng-zorro-antd/tooltip';\n\nimport { STColumnSource } from './st-column-source';\nimport { STDataSource, STDataSourceOptions, STDataSourceResult } from './st-data-source';\nimport { STExport } from './st-export';\nimport { STFilterComponent } from './st-filter.component';\nimport { STRowSource } from './st-row.directive';\nimport { STWidgetHostDirective } from './st-widget-host.directive';\nimport { ST_DEFAULT_CONFIG } from './st.config';\nimport type {\n STChange,\n STChangeType,\n STClickRowClassName,\n STClickRowClassNameType,\n STColumn,\n STColumnButton,\n STColumnSafeType,\n STColumnSelection,\n STContextmenuFn,\n STContextmenuItem,\n STCustomRequestOptions,\n STData,\n STDragOptions,\n STError,\n STExportOptions,\n STLoadOptions,\n STMultiSort,\n STPage,\n STReq,\n STRes,\n STResetColumnsOption,\n STResizable,\n STRowClassName,\n STSingleSort,\n STStatisticalResults,\n STWidthMode\n} from './st.interfaces';\nimport type { _STColumn, _STDataValue, _STHeader, _STTdNotify, _STTdNotifyType } from './st.types';\n\n@Component({\n selector: 'st-td',\n templateUrl: './st-td.component.html',\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n FormsModule,\n NzTooltipDirective,\n NgTemplateOutlet,\n NzPopconfirmDirective,\n NzIconDirective,\n NzCheckboxComponent,\n NzRadioComponent,\n NzTagComponent,\n NzBadgeComponent,\n CellComponent,\n STWidgetHostDirective,\n NzDropDownModule,\n NzMenuModule,\n NzDividerComponent\n ]\n})\nexport class STTdComponent {\n private readonly stComp = inject(STComponent, { host: true });\n private readonly router = inject(Router);\n private readonly modalHelper = inject(ModalHelper);\n private readonly drawerHelper = inject(DrawerHelper);\n\n @Input() c!: _STColumn;\n @Input() cIdx!: number;\n @Input() data!: STData[];\n @Input() i!: STData;\n @Input() index!: number;\n @Output() readonly n = new EventEmitter<_STTdNotify>();\n\n private get routerState(): { pi: number; ps: number; total: number } {\n const { pi, ps, total } = this.stComp;\n return { pi, ps, total };\n }\n\n private report(type: _STTdNotifyType): void {\n this.n.emit({ type, item: this.i, col: this.c });\n }\n\n _checkbox(value: boolean): void {\n this.i.checked = value;\n this.report('checkbox');\n }\n\n _radio(): void {\n this.data.filter(w => !w.disabled).forEach(i => (i.checked = false));\n this.i.checked = true;\n this.report('radio');\n }\n\n _link(e: Event): boolean {\n this._stopPropagation(e);\n const res = this.c.click!(this.i, this.stComp);\n if (typeof res === 'string') {\n this.router.navigateByUrl(res, { state: this.routerState });\n }\n return false;\n }\n\n _client(): void {\n this.c.click?.(this.i, this.stComp);\n }\n\n _stopPropagation(ev: Event): void {\n ev.preventDefault();\n ev.stopPropagation();\n }\n\n _btn(btn: STColumnButton, ev?: Event): void {\n ev?.stopPropagation();\n const cog = this.stComp.cog;\n let record = this.i;\n if (btn.type === 'modal' || btn.type === 'static') {\n if (cog.modal!.pureRecoard === true) {\n record = this.stComp.pureItem(record)!;\n }\n const modal = btn.modal!;\n const obj = { [modal.paramsName!]: record };\n (this.modalHelper[btn.type === 'modal' ? 'create' : 'createStatic'] as NzSafeAny)(\n modal.component,\n { ...obj, ...(modal.params && modal.params(record)) },\n deepMergeKey({}, true, cog.modal, modal)\n )\n .pipe(filter(w => typeof w !== 'undefined'))\n .subscribe((res: NzSafeAny) => this.btnCallback(record, btn, res));\n return;\n } else if (btn.type === 'drawer') {\n if (cog.drawer!.pureRecoard === true) {\n record = this.stComp.pureItem(record)!;\n }\n const drawer = btn.drawer!;\n const obj = { [drawer.paramsName!]: record };\n this.drawerHelper\n .create(\n drawer.title!,\n drawer.component,\n { ...obj, ...(drawer.params && drawer.params(record)) },\n deepMergeKey({}, true, cog.drawer, drawer)\n )\n .pipe(filter(w => typeof w !== 'undefined'))\n .subscribe(res => this.btnCallback(record, btn, res));\n return;\n } else if (btn.type === 'link') {\n const clickRes = this.btnCallback(record, btn);\n if (typeof clickRes === 'string') {\n this.router.navigateByUrl(clickRes, { state: this.routerState });\n }\n return;\n }\n this.btnCallback(record, btn);\n }\n\n private btnCallback(record: STData, btn: STColumnButton, modal?: NzSafeAny): NzSafeAny {\n if (!btn.click) return;\n if (typeof btn.click === 'string') {\n switch (btn.click) {\n case 'load':\n this.stComp.load();\n break;\n case 'reload':\n this.stComp.reload();\n break;\n }\n } else {\n return btn.click(record, modal, this.stComp);\n }\n }\n}\n\n@Component({\n selector: 'st',\n exportAs: 'st',\n templateUrl: './st.component.html',\n providers: [STDataSource, STRowSource, STColumnSource, STExport, DatePipe, YNPipe, DecimalPipe],\n host: {\n '[class.st]': `true`,\n '[class.st__p-left]': `page.placement === 'left'`,\n '[class.st__p-center]': `page.placement === 'center'`,\n '[class.st__width-strict]': `widthMode.type === 'strict'`,\n '[class.st__row-class]': `rowClassName`,\n '[class.ant-table-rep]': `responsive`,\n '[class.ant-table-rep__hide-header-footer]': `responsiveHideHeaderFooter`\n },\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n FormsModule,\n NzTableModule,\n NzTooltipDirective,\n NzCheckboxComponent,\n NzResizableModule,\n NgTemplateOutlet,\n NzDropDownModule,\n NzIconDirective,\n NzMenuModule,\n STFilterComponent,\n STTdComponent,\n DragDropModule\n ]\n})\nexport class STComponent implements AfterViewInit, OnChanges {\n private readonly i18nSrv = inject(ALAIN_I18N_TOKEN);\n private readonly el: HTMLElement = inject(ElementRef).nativeElement;\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly doc = inject(DOCUMENT);\n private readonly exportSrv = inject(STExport);\n private readonly columnSource = inject(STColumnSource);\n private readonly dataSource = inject(STDataSource);\n private readonly delonI18n = inject(DelonLocaleService);\n private readonly cms = inject(NzContextMenuService, { optional: true });\n private readonly destroy$ = inject(DestroyRef);\n\n private totalTpl = ``;\n private inied = false;\n cog!: AlainSTConfig;\n private _req!: STReq;\n private _res!: STRes;\n private _page!: STPage;\n private _widthMode!: STWidthMode;\n private customWidthConfig: boolean = false;\n _widthConfig: string[] = [];\n locale: LocaleData = {};\n _loading = false;\n _data: STData[] = [];\n _statistical: STStatisticalResults = {};\n _isPagination = true;\n _allChecked = false;\n _allCheckedDisabled = false;\n _indeterminate = false;\n _headers: _STHeader[][] = [];\n _columns: _STColumn[] = [];\n contextmenuList: STContextmenuItem[] = [];\n @ViewChild('table') readonly orgTable!: NzTableComponent<STData>;\n @ViewChild('contextmenuTpl') readonly contextmenuTpl!: NzDropdownMenuComponent;\n\n @Input()\n get req(): STReq {\n return this._req;\n }\n set req(value: STReq) {\n this._req = deepMergeKey({}, true, this.cog.req, value);\n }\n /** 返回体配置 */\n @Input()\n get res(): STRes {\n return this._res;\n }\n set res(value: STRes) {\n const item = (this._res = deepMergeKey({}, true, this.cog.res, value));\n const reName = item.reName!;\n if (typeof reName !== 'function') {\n if (!Array.isArray(reName.list)) reName.list = reName.list!.split('.');\n if (!Array.isArray(reName.total)) reName.total = reName.total!.split('.');\n }\n this._res = item;\n }\n @Input()\n get page(): STPage {\n return this._page;\n }\n set page(value: STPage) {\n this._page = { ...this.cog.page, ...value };\n this.updateTotalTpl();\n }\n @Input() data?: string | STData[] | Observable<STData[]>;\n @Input() columns?: STColumn[] | null;\n @Input() contextmenu?: STContextmenuFn | null;\n @Input({ transform: (v: unknown) => numberAttribute(v, 10) }) ps = 10;\n @Input({ transform: (v: unknown) => numberAttribute(v, 1) }) pi = 1;\n @Input({ transform: (v: unknown) => numberAttribute(v, 0) }) total = 0;\n @Input() loading: boolean | null = null;\n @Input({ transform: numberAttribute }) loadingDelay = 0;\n @Input() loadingIndicator: TemplateRef<void> | null = null;\n @Input({ transform: booleanAttribute }) bordered = false;\n @Input() size!: 'small' | 'middle' | 'default';\n @Input() scroll: { x?: string | null; y?: string | null } = { x: null, y: null };\n drag = input<STDragOptions | null, unknown>(null, {\n transform: v => {\n const obj: STDragOptions | null = typeof v === 'object' ? v : booleanAttribute(v) ? {} : null;\n if (obj == null) return null;\n\n if (typeof obj.dropped !== 'function') {\n obj.dropped = e => {\n moveItemInArray(this._data, e.previousIndex, e.currentIndex);\n this.cd();\n };\n }\n return obj;\n }\n });\n @Input() singleSort?: STSingleSort | null;\n private _multiSort?: STMultiSort;\n @Input()\n get multiSort(): NzSafeAny {\n return this._multiSort;\n }\n set multiSort(value: NzSafeAny) {\n if (\n (typeof value === 'boolean' && !booleanAttribute(value)) ||\n (typeof value === 'object' && Object.keys(value).length === 0)\n ) {\n this._multiSort = undefined;\n return;\n }\n this._multiSort = {\n ...(typeof value === 'object' ? value : {})\n };\n }\n @Input() rowClassName?: STRowClassName | null;\n @Input() clickRowClassName?: STClickRowClassName | null;\n @Input()\n set widthMode(value: STWidthMode) {\n this._widthMode = { ...this.cog.widthMode, ...value };\n }\n get widthMode(): STWidthMode {\n return this._widthMode;\n }\n @Input()\n set widthConfig(val: string[]) {\n this._widthConfig = val;\n this.customWidthConfig = val && val.length > 0;\n }\n private _resizable?: STResizable;\n @Input()\n set resizable(val: STResizable | boolean | string) {\n this._resizable = typeof val === 'object' ? val : { disabled: !booleanAttribute(val) };\n }\n @Input() header?: string | TemplateRef<void> | null;\n @Input({ transform: booleanAttribute }) showHeader = true;\n @Input() footer?: string | TemplateRef<void> | null;\n @Input() bodyHeader?: TemplateRef<{ $implicit: STStatisticalResults }> | null;\n @Input() body?: TemplateRef<{ $implicit: STStatisticalResults }> | null;\n @Input({ transform: booleanAttribute }) expandRowByClick = false;\n @Input({ transform: booleanAttribute }) expandAccordion = false;\n @Input() expand: TemplateRef<{ $implicit: STData; index: number }> | null = null;\n @Input() expandIcon: TemplateRef<{ $implicit: STData; index: number }> | null = null;\n @Input() noResult?: string | TemplateRef<void> | null;\n @Input({ transform: booleanAttribute }) responsive: boolean = true;\n @Input({ transform: booleanAttribute }) responsiveHideHeaderFooter?: boolean;\n @Output() readonly error = new EventEmitter<STError>();\n @Output() readonly change = new EventEmitter<STChange>();\n @Input({ transform: booleanAttribute }) virtualScroll = false;\n @Input({ transform: numberAttribute }) virtualItemSize = 54;\n @Input({ transform: numberAttribute }) virtualMaxBufferPx = 200;\n @Input({ transform: numberAttribute }) virtualMinBufferPx = 100;\n @Input() customRequest?: (options: STCustomRequestOptions) => Observable<NzSafeAny>;\n @Input() virtualForTrackBy: TrackByFunction<STData> = index => index;\n @Input() trackBy: TrackByFunction<STData> = (_, item) => item;\n\n /**\n * Get the number of the current page\n */\n get count(): number {\n return this._data.length;\n }\n\n /**\n * Get the data of the current page\n */\n get list(): STData[] {\n return this._data;\n }\n\n get noColumns(): boolean {\n return this.columns == null;\n }\n\n constructor(configSrv: AlainConfigService) {\n this.delonI18n.change.pipe(takeUntilDestroyed()).subscribe(() => {\n this.locale = this.delonI18n.getData('st');\n if (this._columns.length > 0) {\n this.updateTotalTpl();\n this.cd();\n }\n });\n\n this.i18nSrv.change\n .pipe(\n takeUntilDestroyed(),\n filter(() => this._columns.length > 0)\n )\n .subscribe(() => this.refreshColumns());\n\n this.setCog(configSrv.merge('st', ST_DEFAULT_CONFIG)!);\n }\n\n private setCog(cog: AlainSTConfig): void {\n const copyMultiSort = { ...cog.multiSort };\n // Because multiSort.global will affect the result, it should be removed first, and multiSort will be operated again after processing.\n delete cog.multiSort;\n this.cog = cog;\n Object.assign(this, cog);\n\n if (copyMultiSort.global !== false) {\n this.multiSort = copyMultiSort;\n }\n this.columnSource.setCog(cog);\n this.dataSource.setCog(cog);\n }\n\n cd(): this {\n this.cdr.detectChanges();\n return this;\n }\n\n private refreshData(): this {\n this._data = [...this._data];\n return this.cd();\n }\n\n renderTotal(total: string, range: string[]): string {\n return this.totalTpl\n ? this.totalTpl.replace('{{total}}', total).replace('{{range[0]}}', range[0]).replace('{{range[1]}}', range[1])\n : '';\n }\n\n private changeEmit(type: STChangeType, data?: NzSafeAny): void {\n const res: STChange = {\n type,\n pi: this.pi,\n ps: this.ps,\n total: this.total\n };\n if (data != null) {\n res[type] = data;\n }\n this.change.emit(res);\n }\n\n // #region data\n\n /**\n * 获取过滤后所有数据\n * - 本地数据:包含排序、过滤后不分页数据\n * - 远程数据:不传递 `pi`、`ps` 两个参数\n */\n get filteredData(): Observable<STData[]> {\n return this.loadData({ paginator: false } as unknown as STDataSourceOptions).pipe(map(res => res.list));\n }\n\n private updateTotalTpl(): void {\n const { total } = this.page;\n if (typeof total === 'string' && total.length) {\n this.totalTpl = total;\n } else if (booleanAttribute(total)) {\n this.totalTpl = this.locale.total;\n } else {\n this.totalTpl = '';\n }\n }\n\n private setLoading(val: boolean): void {\n if (this.loading == null) {\n this._loading = val;\n this.cdr.detectChanges();\n }\n }\n\n private loadData(options?: STDataSourceOptions): Observable<STDataSourceResult> {\n const { pi, ps, data, req, res, page, total, singleSort, multiSort, rowClassName, _columns, _headers } = this;\n return this.dataSource\n .process({\n pi,\n ps,\n total,\n data,\n req,\n res,\n page,\n columns: _columns,\n headers: _headers,\n singleSort,\n multiSort,\n rowClassName,\n paginator: true,\n customRequest: this.customRequest || this.cog.customRequest,\n ...options\n })\n .pipe(takeUntilDestroyed(this.destroy$));\n }\n\n private loadPageData(): Observable<this> {\n this.setLoading(true);\n return this.loadData().pipe(\n finalize(() => this.setLoading(false)),\n catchError(error => {\n this.error.emit({ type: 'req', error });\n return throwError(() => error);\n }),\n map(result => {\n const undefinedString = 'undefined';\n if (typeof result.pi !== undefinedString) {\n this.pi = result.pi;\n }\n if (typeof result.ps !== undefinedString) {\n this.ps = result.ps;\n }\n if (typeof result.total !== undefinedString) {\n this.total = result.total;\n }\n if (typeof result.pageShow !== undefinedString) {\n this._isPagination = result.pageShow;\n }\n this._data = result.list ?? [];\n this._statistical = result.statistical as STStatisticalResults;\n // Should be re-render in next tike when using virtual scroll\n // https://github.com/ng-alain/ng-alain/issues/1836\n if (this.cdkVirtualScrollViewport != null) {\n Promise.resolve().then(() => this.cdkVirtualScrollViewport?.checkViewportSize());\n }\n this._refCheck();\n this.changeEmit('loaded', result.list);\n return this;\n })\n );\n }\n\n /** 清空所有数据 */\n clear(cleanStatus: boolean = true): this {\n if (cleanStatus) {\n this.clearStatus();\n }\n this._data = [];\n return this.cd();\n }\n\n /** 清空所有状态 */\n clearStatus(): this {\n return this.clearCheck().clearRadio().clearFilter().clearSort();\n }\n\n /**\n * 根据页码重新加载数据\n *\n * @param pi 指定当前页码,默认:`1`\n * @param extraParams 重新指定 `extraParams` 值\n * @param options 选项\n */\n load(pi: number = 1, extraParams?: NzSafeAny, options?: STLoadOptions): this {\n if (pi !== -1) this.pi = pi;\n if (typeof extraParams !== 'undefined') {\n this.req.params = options && options.merge ? { ...this.req.params, ...extraParams } : extraParams;\n }\n this._change('pi', options);\n return this;\n }\n\n /**\n * 重新刷新当前页\n *\n * @param extraParams 重新指定 `extraParams` 值\n */\n reload(extraParams?: NzSafeAny, options?: STLoadOptions): this {\n return this.load(-1, extraParams, options);\n }\n\n /**\n * 重置且重新设置 `pi` 为 `1`,包含以下值:\n * - `check` 数据\n * - `radio` 数据\n * - `sort` 数据\n * - `fileter` 数据\n *\n * @param extraParams 重新指定 `extraParams` 值\n */\n reset(extraParams?: NzSafeAny, options?: STLoadOptions): this {\n this.clearStatus().load(1, extraParams, options);\n return this;\n }\n\n private _toTop(enforce?: boolean): void {\n if (!(enforce == null ? this.page.toTop : enforce)) return;\n const el = this.el;\n el.scrollIntoView();\n // fix header height\n this.doc.documentElement.scrollTop -= this.page.toTopOffset!;\n if (this.scroll) {\n if (this.cdkVirtualScrollViewport) {\n this.cdkVirtualScrollViewport.scrollTo({\n top: 0,\n left: 0\n });\n } else {\n el.querySelector('.ant-table-body, .ant-table-content')?.scrollTo(0, 0);\n }\n }\n }\n\n _change(type: 'pi' | 'ps', options?: STLoadOptions): void {\n if (type === 'pi' || (type === 'ps' && this.pi <= Math.ceil(this.total / this.ps))) {\n this.loadPageData().subscribe(() => this._toTop(options?.toTop));\n }\n\n this.changeEmit(type);\n }\n\n private closeOtherExpand(item: STData): void {\n if (this.expandAccordion === false) return;\n this._data.filter(i => i !== item).forEach(i => (i.expand = false));\n }\n\n _rowClick(e: Event, item: STData, index: number, dbl: boolean): void {\n const el = e.target as HTMLElement;\n if (el.nodeName === 'INPUT') return;\n const { expand, expandRowByClick } = this;\n if (!!expand && item.showExpand !== false && expandRowByClick) {\n item.expand = !item.expand;\n this.closeOtherExpand(item);\n this.changeEmit('expand', item);\n return;\n }\n\n const data = { e, item, index };\n if (dbl) {\n this.changeEmit('dblClick', data);\n } else {\n this._clickRowClassName(el, item, index);\n this.changeEmit('click', data);\n }\n }\n\n private _clickRowClassName(el: HTMLElement, item: STData, index: number): void {\n const cr = this.clickRowClassName;\n if (cr == null) return;\n const config = {\n exclusive: false,\n ...(typeof cr === 'string' ? { fn: () => cr } : cr)\n } as STClickRowClassNameType;\n const className = config.fn(item, index);\n const trEl = el.closest('tr') as HTMLElement;\n if (config.exclusive) {\n trEl.parentElement!.querySelectorAll('tr').forEach((a: HTMLElement) => a.classList.remove(className));\n }\n if (trEl.classList.contains(className)) {\n trEl.classList.remove(className);\n } else {\n trEl.classList.add(className);\n }\n }\n\n _expandChange(item: STData, expand: boolean): void {\n item.expand = expand;\n this.closeOtherExpand(item);\n this.changeEmit('expand', item);\n }\n\n _stopPropagation(ev: Event): void {\n ev.stopPropagation();\n }\n\n private _refColAndData(): this {\n this._columns.forEach((c, cIdx) => {\n this._data.forEach((i, idx) => {\n const values = i._values as _STDataValue[];\n if (c.type === 'no') {\n const text = `${this.dataSource.getNoIndex(i, c, idx)}`;\n values[cIdx] = {\n text,\n _text: text,\n org: idx,\n safeType: 'text'\n } as _STDataValue;\n }\n values[cIdx].props = this.dataSource.getCell(c, i, idx);\n });\n });\n\n return this.refreshData();\n }\n\n /**\n * Add a rows in the table, like this:\n *\n * ```\n * this.st.addRow(stDataItem)\n * ```\n *\n * **TIPS:** Don't change the `total` value, it is recommended to use the `reload` method if needed\n */\n addRow(data: STData | STData[], options?: { index?: number }): this {\n if (!Array.isArray(data)) data = [data];\n this._data.splice(options?.index ?? 0, 0, ...(data as STData[]));\n return this.optimizeData()._refColAndData();\n }\n\n /**\n * Remove a row in the table, like this:\n *\n * ```\n * this.st.removeRow(0)\n * this.st.removeRow(stDataItem)\n * ```\n *\n * **TIPS:** Don't change the `total` value, it is recommended to use the `reload` method if needed\n */\n removeRow(data: STData | STData[] | number): this {\n if (typeof data === 'number') {\n this._data.splice(data, 1);\n } else {\n if (!Array.isArray(data)) {\n data = [data];\n }\n\n const curData = this._data;\n for (let i = curData.length; i >= 0; i--) {\n if (data.indexOf(curData[i]) !== -1) {\n curData.splice(i, 1);\n }\n }\n }\n return this._refCheck()._refColAndData();\n }\n\n /**\n * Sets the row value for the `index` in the table, like this:\n *\n * - `optinos.refreshSchema` Whether to refresh of st schemas\n * - `optinos.emitReload` Whether to trigger a reload http request when data is url\n *\n * ```\n * this.st.setRow(0, { price: 100 })\n * this.st.setRow(0, { price: 100, name: 'asdf' })\n * this.st.setRow(item, { price: 100 })\n * ```\n */\n setRow(\n index: number | STData,\n item: STData,\n options?: {\n refreshSchema?: boolean;\n emitReload?: boolean;\n /**\n *\n * @param arrayProcessMethod 数组处理方式\n * - `true` 表示替换新值,不管新值为哪种类型\n * - `false` 表示会合并整个数组(将旧数据与新数据合并成新数组)\n */\n arrayProcessMethod?: boolean;\n }\n ): this {\n options = { refreshSchema: false, emitReload: false, ...options };\n if (typeof index !== 'number') {\n index = this._data.indexOf(index);\n }\n this._data[index] = deepMergeKey(this._data[index], options?.arrayProcessMethod ?? false, item);\n this.optimizeData();\n if (options.refreshSchema) {\n this.resetColumns({ emitReload: options.emitReload });\n return this;\n }\n return this.refreshData();\n }\n\n // #endregion\n\n // #region sort\n\n sort(col: _STColumn, value: NzSafeAny): void {\n if (this.multiSort) {\n col._sort.default = value;\n col._sort.tick = this.dataSource.nextSortTick;\n } else {\n this._headers.forEach(row => {\n row.forEach(item => (item.column._sort.default = item.column === col ? value : null));\n });\n }\n this.cdr.detectChanges();\n this.loadPageData().subscribe(() => {\n const res = {\n value,\n map: this.dataSource.getReqSortMap(this.singleSort, this.multiSort, this._headers),\n column: col\n };\n this.changeEmit('sort', res);\n });\n }\n\n clearSort(): this {\n this._headers.forEach(row => {\n row.forEach(item => (item.column._sort.default = null));\n });\n return this;\n }\n\n // #endregion\n\n // #region filter\n\n _handleFilter(col: _STColumn, confirm: boolean): void {\n if (!confirm) {\n this.columnSource.cleanFilter(col);\n }\n // 过滤表示一种数据的变化应重置页码为 `1`\n this.pi = 1;\n this.columnSource.updateDefault(col.filter!);\n this.loadPageData().subscribe(() => this.changeEmit('filter', col));\n }\n\n handleFilterNotify(value?: unknown): void {\n this.changeEmit('filterChange', value);\n }\n\n clearFilter(): this {\n this._columns.filter(w => w.filter && w.filter.default === true).forEach(col => this.columnSource.cleanFilter(col));\n return this;\n }\n // #endregion\n\n // #region checkbox\n\n /** 清除所有 `checkbox` */\n clearCheck(): this {\n return this.checkAll(false);\n }\n\n private _refCheck(): this {\n const validData = this._data.filter(w => !w.disabled);\n const checkedList = validData.filter(w => w.checked === true);\n this._allChecked = checkedList.length > 0 && checkedList.length === validData.length;\n const allUnChecked = validData.every(value => !value.checked);\n this._indeterminate = !this._allChecked && !allUnChecked;\n this._allCheckedDisabled = this._data.length === this._data.filter(w => w.disabled).length;\n return this.cd();\n }\n\n checkAll(checked?: boolean): this {\n checked = typeof checked === 'undefined' ? this._allChecked : checked;\n this._data.filter(w => !w.disabled).forEach(i => (i.checked = checked));\n return this._refCheck()._checkNotify().refreshData();\n }\n\n _rowSelection(row: STColumnSelection): this {\n row.select(this._data);\n return this._refCheck()._checkNotify();\n }\n\n _checkNotify(): this {\n const res = this._data.filter(w => !w.disabled && w.checked === true);\n this.changeEmit('checkbox', res);\n return this;\n }\n\n // #endregion\n\n // #region radio\n\n /** 清除所有 `radio` */\n clearRadio(): this {\n this._data.filter(w => w.checked).forEach(item => (item.checked = false));\n this.changeEmit('radio', null);\n return this.refreshData();\n }\n\n // #endregion\n\n _handleTd(ev: _STTdNotify): void {\n switch (ev.type) {\n case 'checkbox':\n this._refCheck()._checkNotify();\n break;\n case 'radio':\n this.changeEmit('radio', ev.item);\n this.refreshData();\n break;\n }\n }\n\n // #region export\n\n /**\n * 导出当前页,确保已经注册 `XlsxModule`\n *\n * @param newData 重新指定数据;若为 `true` 表示使用 `filteredData` 数据\n * @param opt 额外参数\n */\n export(newData?: STData[] | true, opt?: STExportOptions): void {\n const data = Array.isArray(newData)\n ? this.dataSource.optimizeData({ columns: this._columns, result: newData })\n : this._data;\n (newData === true ? this.filteredData : of(data)).subscribe((res: STData[]) =>\n this.exportSrv.export({\n columens: this._columns,\n ...opt,\n data: res\n })\n );\n }\n\n // #endregion\n\n // #region resizable\n\n colResize({ width }: NzResizeEvent, column: _STColumn): void {\n column.width = `${width}px`;\n this.changeEmit('resize', column);\n }\n\n // #endregion\n\n // #region contextmenu\n onContextmenu(event: MouseEvent): void {\n if (!this.contextmenu) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n const colEl = (event.target as HTMLElement).closest('[data-col-index]') as HTMLElement;\n if (!colEl) {\n return;\n }\n const colIndex = Number(colEl.dataset.colIndex);\n const rowIndex = Number((colEl.closest('tr') as HTMLElement).dataset.index);\n const isTitle = isNaN(rowIndex);\n const obs$ = this.contextmenu({\n event,\n type: isTitle ? 'head' : 'body',\n rowIndex: isTitle ? null : rowIndex,\n colIndex,\n data: isTitle ? null : this.list[rowIndex],\n column: this._columns[colIndex]\n });\n (isObservable(obs$) ? obs$ : of(obs$))\n .pipe(\n takeUntilDestroyed(this.destroy$),\n filter(res => res.length > 0)\n )\n .subscribe(res => {\n this.contextmenuList = res.map(i => {\n if (!Array.isArray(i.children)) {\n i.children = [];\n }\n return i;\n });\n this.cdr.detectChanges();\n this.cms?.create(event, this.contextmenuTpl);\n });\n }\n // #endregion\n\n get cdkVirtualScrollViewport(): CdkVirtualScrollViewport | undefined {\n return this.orgTable?.cdkVirtualScrollViewport as NzSafeAny;\n }\n\n private _resetColumns(options?: STResetColumnsOption): Observable<this> {\n options = { emitReload: true, preClearData: false, ...options };\n if (typeof options.columns !== 'undefined') {\n this.columns = options.columns;\n }\n if (typeof options.pi !== 'undefined') {\n this.pi = options.pi;\n }\n if (typeof options.ps !== 'undefined') {\n this.ps = options.ps;\n }\n if (options.emitReload) {\n // Should clean data, Because of changing columns may cause inaccurate data\n options.preClearData = true;\n }\n if (options.preClearData) {\n this._data = [];\n }\n this.refreshColumns();\n if (options.emitReload) {\n return this.loadPageData();\n } else {\n this.cd();\n return of(this);\n }\n }\n\n resetColumns(options?: STResetColumnsOption): Promise<this> {\n return lastValueFrom(this._resetColumns(options));\n }\n\n private refreshColumns(): this {\n const res = this.columnSource.process(this.columns as _STColumn[], {\n widthMode: this.widthMode,\n resizable: this._resizable,\n safeType: this.cog.safeType as STColumnSafeType,\n expand: this.expand != null\n });\n this._columns = res.columns;\n this._headers = res.headers;\n if (this.customWidthConfig === false && res.headerWidths != null) {\n this._widthConfig = res.headerWidths;\n }\n return this;\n }\n\n private optimizeData(): this {\n this._data = this.dataSource.optimizeData({\n columns: this._columns,\n result: this._data,\n rowClassName: this.rowClassName\n });\n return this;\n }\n\n /**\n * Return pure data, `st` internally maintains a set of data for caching, this part of data may affect the backend\n *\n * 返回纯净数据,`st` 内部会维护一组用于缓存的数据,这部分数据可能会影响后端\n */\n pureItem(itemOrIndex: STData | number): STData | null {\n if (typeof itemOrIndex === 'number') {\n itemOrIndex = this._data[itemOrIndex];\n }\n if (!itemOrIndex) {\n return null;\n }\n const copyItem = deepCopy(itemOrIndex);\n ['_values', '_rowClassName'].forEach(key => delete copyItem[key]);\n return copyItem;\n }\n\n ngAfterViewInit(): void {\n this.refreshColumns();\n if (!this.req.lazyLoad) this.loadPageData().subscribe();\n this.inied = true;\n }\n\n ngOnChanges(changes: { [P in keyof this]?: SimpleChange } & SimpleChanges): void {\n if (changes.loading) {\n this._loading = changes.loading.currentValue;\n }\n if (!this.inied) return;\n\n if (changes.columns) {\n this.refreshColumns().optimizeData();\n }\n if (changes.data) {\n this.loadPageData().subscribe();\n }\n }\n}\n","<ng-template #btnTpl let-i let-child=\"child\">\n @if (i.tooltip) {\n <span nz-tooltip [nzTooltipTitle]=\"i.tooltip\" [class.d-block]=\"child\" [class.width-100]=\"child\">\n <ng-template [ngTemplateOutlet]=\"btnItemTpl\" [ngTemplateOutletContext]=\"{ $implicit: i }\" />\n </span>\n } @else {\n <ng-template [ngTemplateOutlet]=\"btnItemTpl\" [ngTemplateOutletContext]=\"{ $implicit: i }\" />\n }\n</ng-template>\n<ng-template #btnItemTpl let-i>\n @if (i.pop) {\n @let pop = i.pop;\n <a\n nz-popconfirm\n [nzPopconfirmTitle]=\"pop.title\"\n [nzIcon]=\"pop.icon\"\n [nzCondition]=\"pop.condition(i)\"\n [nzCancelText]=\"pop.cancelText\"\n [nzOkText]=\"pop.okText\"\n [nzOkType]=\"pop.okType\"\n (nzOnConfirm)=\"_btn(i)\"\n class=\"st__btn-text\"\n [class]=\"i._className\"\n (click)=\"_stopPropagation($event)\"\n >\n <ng-template [ngTemplateOutlet]=\"btnTextTpl\" [ngTemplateOutletContext]=\"{ $implicit: i }\" />\n </a>\n } @else {\n <a (click)=\"_btn(i, $event)\" class=\"st__btn-text\" [class]=\"i._className\">\n <ng-template [ngTemplateOutlet]=\"btnTextTpl\" [ngTemplateOutletContext]=\"{ $implicit: i }\" />\n </a>\n }\n</ng-template>\n<ng-template #btnTextTpl let-i>\n @if (i._icon) {\n @let icon = i._icon;\n @if (icon.iconfont) {\n <nz-icon [nzIconfont]=\"icon.iconfont\" />\n } @else {\n <nz-icon [nzType]=\"icon.type\" [nzTheme]=\"icon.theme\" [nzSpin]=\"icon.spin\" [nzTwotoneColor]=\"icon.twoToneColor\" />\n }\n }\n <span [innerHTML]=\"i._text\" [class.pl-xs]=\"i._icon\"></span>\n</ng-template>\n@if (c.__render) {\n <ng-template [ngTemplateOutlet]=\"c.__render!\" [ngTemplateOutletContext]=\"{ $implicit: i, index: index, column: c }\" />\n} @else {\n @let col = i._values[cIdx];\n @switch (c.type) {\n @case ('checkbox') {\n <label nz-checkbox [nzDisabled]=\"i.disabled\" [ngModel]=\"i.checked\" (ngModelChange)=\"_checkbox($event)\"></label>\n }\n @case ('radio') {\n <label nz-radio [nzDisabled]=\"i.disabled\" [ngModel]=\"i.checked\" (ngModelChange)=\"_radio()\"></label>\n }\n @case ('link') {\n <a (click)=\"_link($event)\" [innerHTML]=\"col._text\" [attr.title]=\"col.text\"></a>\n }\n @case ('tag') {\n <nz-tag [nzColor]=\"col.color\" [nz-tooltip]=\"col.tooltip\">\n <span [innerHTML]=\"col._text\"></span>\n </nz-tag>\n }\n @case ('badge') {\n <nz-badge [nzStatus]=\"col.color\" [nzText]=\"col.text\" [nz-tooltip]=\"col.tooltip\" />\n }\n @case ('cell') {\n <cell [value]=\"col.text\" [options]=\"col.cell ?? c.cell\" (click)=\"_client()\" />\n }\n @case ('widget') {\n <ng-template st-widget-host [record]=\"i\" [column]=\"c\" />\n }\n @default {\n @if (c.safeType === 'text') {\n <span [innerText]=\"col._text\" [attr.title]=\"c._isTruncate ? col.text : null\"></span>\n } @else {\n <span [innerHTML]=\"col._text\" [attr.title]=\"c._isTruncate ? col.text : null\"></span>\n }\n }\n }\n @for (btn of col.buttons; track $index) {\n @if (btn.children!.length > 0) {\n <a nz-dropdown [nzDropdownMenu]=\"btnMenu\" nzOverlayClassName=\"st__btn-sub\">\n <span [innerHTML]=\"btn._text\"></span>\n <nz-icon nzType=\"down\" />\n </a>\n <nz-dropdown-menu #btnMenu=\"nzDropdownMenu\">\n <ul nz-menu>\n @for (subBtn of btn.children; track $index) {\n @if (subBtn.type === 'divider') {\n <li nz-menu-divider></li>\n } @else {\n <li nz-menu-item [class.st__btn-disabled]=\"subBtn._disabled\">\n <ng-template\n [ngTemplateOutlet]=\"btnTpl\"\n [ngTemplateOutletContext]=\"{ $implicit: subBtn, child: true }\"\n />\n </li>\n }\n }\n </ul>\n </nz-dropdown-menu>\n } @else {\n <span [class.st__btn-disabled]=\"btn._disabled\">\n <ng-template [ngTemplateOutlet]=\"btnTpl\" [ngTemplateOutletContext]=\"{ $implicit: btn, child: false }\" />\n </span>\n }\n @if (!$last) {\n <nz-divider nzType=\"vertical\" />\n }\n }\n}\n","<ng-template #titleTpl let-i>\n <span [innerHTML]=\"i._text\"></span>\n @if (i.optional) {\n <small class=\"st__head-optional\" [innerHTML]=\"i.optional\"></small>\n }\n @if (i.optionalHelp) {\n <nz-icon class=\"st__head-tip\" nz-tooltip [nzTooltipTitle]=\"i.optionalHelp\" nzType=\"question-circle\" />\n }\n</ng-template>\n<ng-template #chkAllTpl let-custom>\n <label\n nz-checkbox\n class=\"st__checkall\"\n [nzDisabled]=\"_allCheckedDisabled\"\n [(ngModel)]=\"_allChecked\"\n [nzIndeterminate]=\"_indeterminate\"\n (ngModelChange)=\"checkAll()\"\n [class.ant-table-selection-select-all-custom]=\"custom\"\n ></label>\n</ng-template>\n<nz-table\n #table\n [nzData]=\"_data\"\n [(nzPageIndex)]=\"pi\"\n (nzPageIndexChange)=\"_change('pi')\"\n [(nzPageSize)]=\"ps\"\n (nzPageSizeChange)=\"_change('ps')\"\n [nzTotal]=\"total\"\n [nzShowPagination]=\"_isPagination\"\n [nzFrontPagination]=\"false\"\n [nzBordered]=\"bordered\"\n [nzSize]=\"size\"\n [nzLoading]=\"noColumns || _loading\"\n [nzLoadingDelay]=\"loadingDelay\"\n [nzLoadingIndicator]=\"loadingIndicator\"\n [nzTitle]=\"header!\"\n [nzFooter]=\"footer!\"\n [nzScroll]=\"scroll\"\n [nzVirtualItemSize]=\"virtualItemSize\"\n [nzVirtualMaxBufferPx]=\"virtualMaxBufferPx\"\n [nzVirtualMinBufferPx]=\"virtualMinBufferPx\"\n [nzVirtualForTrackBy]=\"virtualForTrackBy\"\n [nzNoResult]=\"noResult!\"\n [nzPageSizeOptions]=\"page.pageSizes!\"\n [nzShowQuickJumper]=\"page.showQuickJumper\"\n [nzShowSizeChanger]=\"page.showSize\"\n [nzPaginationPosition]=\"page.position!\"\n [nzPaginationType]=\"page.type!\"\n [nzItemRender]=\"page.itemRender!\"\n [nzSimple]=\"page.simple\"\n [nzShowTotal]=\"totalTpl\"\n [nzWidthConfig]=\"_widthConfig\"\n (contextmenu)=\"onContextmenu($event)\"\n [class.st__no-column]=\"noColumns\"\n>\n @if (showHeader) {\n <thead>\n @for (row of _headers; track row) {\n <tr>\n @if ($first && expand) {\n <th nzWidth=\"50px\" [rowSpan]=\"_headers.length\" [nzLeft]=\"row[0].column._left ? true : false\"></th>\n }\n @for (h of row; track h; let index = $index; let last = $last) {\n @let _c = h.column;\n <th\n [colSpan]=\"h.colSpan\"\n [rowSpan]=\"h.rowSpan\"\n [nzWidth]=\"$any(_c).width\"\n [nzLeft]=\"_c._left\"\n [nzRight]=\"_c._right\"\n [class]=\"_c._className\"\n [attr.data-col]=\"_c.indexKey\"\n [attr.data-col-index]=\"index\"\n [nzShowSort]=\"_c._sort.enabled\"\n [nzSortOrder]=\"$any(_c)._sort.default\"\n (nzSortOrderChange)=\"sort(_c, $event)\"\n [nzCustomFilter]=\"!!_c.filter\"\n [class.st__has-filter]=\"_c.filter\"\n nz-resizable\n [nzDisabled]=\"last || $any(_c).resizable.disabled\"\n [nzMaxWidth]=\"$any(_c).resizable.maxWidth\"\n [nzMinWidth]=\"$any(_c).resizable.minWidth\"\n [nzBounds]=\"$any(_c).resizable.bounds\"\n [nzPreview]=\"$any(_c).resizable.preview\"\n (nzResizeEnd)=\"colResize($event, _c)\"\n >\n @if ($any(!last && !$any(_c).resizable.disabled)) {\n <nz-resize-handle nzDirection=\"right\" (click)=\"_stopPropagation($event)\">\n <i></i>\n </nz-resize-handle>\n }\n @if (_c.__renderTitle) {\n <ng-template\n [ngTemplateOutlet]=\"_c.__renderTitle!\"\n [ngTemplateOutletContext]=\"{ $implicit: h.column, index: index }\"\n />\n } @else {\n @switch (_c.type) {\n @case ('checkbox') {\n @if (_c.selections!.length === 0) {\n <ng-template [ngTemplateOutlet]=\"chkAllTpl\" [ngTemplateOutletContext]=\"{ $implicit: false }\" />\n } @else {\n <div class=\"ant-table-selection\">\n <ng-template [ngTemplateOutlet]=\"chkAllTpl\" [ngTemplateOutletContext]=\"{ $implicit: true }\" />\n @if (_c.selections!.length) {\n <div class=\"ant-table-selection-extra\">\n <div\n nz-dropdown\n nzPlacement=\"bottomLeft\"\n [nzDropdownMenu]=\"selectionMenu\"\n class=\"ant-table-selection-down st__checkall-selection\"\n >\n <nz-icon nzType=\"down\" />\n </div>\n </div>\n }\n <nz-dropdown-menu #selectionMenu=\"nzDropdownMenu\">\n <ul nz-menu class=\"ant-table-selection-menu\">\n @for (rw of _c.selections; track $index) {\n <li nz-menu-item (click)=\"_rowSelection(rw)\" [innerHTML]=\"rw.text\"></li>\n }\n </ul>\n </nz-dropdown-menu>\n </div>\n }\n }\n @default {\n <ng-template [ngTemplateOutlet]=\"titleTpl\" [ngTemplateOutletContext]=\"{ $implicit: _c.title }\" />\n }\n }\n }\n @if (_c.filter) {\n <st-filter\n nz-th-extra\n [col]=\"h.column\"\n [f]=\"_c.filter\"\n [locale]=\"locale\"\n (n)=\"handleFilterNotify($event)\"\n (handle)=\"_handleFilter(_c, $event)\"\n />\n }\n </th>\n }\n </tr>\n }\n </thead>\n }\n <tbody\n class=\"st__body\"\n cdkDropList\n [cdkDropListDisabled]=\"drag() === null\"\n (cdkDropListDropped)=\"drag()?.dropped?.($event)\"\n (cdkDropListEntered)=\"drag()?.entered?.($event)\"\n (cdkDropListExited)=\"drag()?.exited?.($event)\"\n (cdkDropListSorted)=\"drag()?.sorted?.($event)\"\n >\n @if (!_loading) {\n <ng-template [ngTemplateOutlet]=\"bodyHeader!\" [ngTemplateOutletContext]=\"{ $implicit: _statistical }\" />\n }\n <ng-template #bodyTpl let-i let-index=\"index\">\n <tr\n [attr.data-index]=\"index\"\n (click)=\"_rowClick($event, i, index, false)\"\n (dblclick)=\"_rowClick($event, i, index, true)\"\n [class]=\"i._rowClassName\"\n cdkDrag\n >\n @if (expand) {\n <td\n [nzShowExpand]=\"expand && i.showExpand !== false\"\n [nzExpand]=\"i.expand\"\n [nzExpandIcon]=\"expandIcon ? wrapExpandIcon : null\"\n (nzExpandChange)=\"_expandChange(i, $event)\"\n (click)=\"_stopPropagation($event)\"\n nzWidth=\"50px\"\n [nzLeft]=\"_columns[0]._left ? true : false\"\n ></td>\n <ng-template #wrapExpandIcon>\n <span (click)=\"_expandChange(i, !i.expand)\">\n <ng-template [ngTemplateOutlet]=\"expandIcon\" [ngTemplateOutletContext]=\"{ $implicit: i, index: index }\" />\n </span>\n </ng-template>\n }\n @for (c of _columns; track cIdx; let cIdx = $index) {\n @let props = i._values[cIdx].props;\n @if (props?.colSpan > 0 && props?.rowSpan > 0) {\n <td\n [nzLeft]=\"c._left\"\n [nzRight]=\"c._right\"\n [attr.data-col-index]=\"cIdx\"\n [class]=\"c._className\"\n [attr.colspan]=\"props?.colSpan === 1 ? null : props?.colSpan\"\n [attr.rowspan]=\"props?.rowSpan === 1 ? null : props?.rowSpan\"\n >\n @if (responsive) {\n <span class=\"ant-table-rep__title\">\n <ng-template [ngTemplateOutlet]=\"titleTpl\" [ngTemplateOutletContext]=\"{ $implicit: c.title }\" />\n </span>\n }\n <st-td [data]=\"_data\" [i]=\"i\" [index]=\"index\" [c]=\"c\" [cIdx]=\"cIdx\" (n)=\"_handleTd($event)\" />\n </td>\n }\n }\n </tr>\n <tr [nzExpand]=\"i.expand\">\n <ng-template [ngTemplateOutlet]=\"expand\" [ngTemplateOutletContext]=\"{ $implicit: i, index: index }\" />\n </tr>\n </ng-template>\n @if (virtualScroll) {\n <ng-template nz-virtual-scroll let-i let-index=\"index\">\n <ng-template [ngTemplateOutlet]=\"bodyTpl\" [ngTemplateOutletContext]=\"{ $implicit: i, index: index }\" />\n </ng-template>\n } @else {\n @for (i of _data; track trackBy($index, i)) {\n <ng-template [ngTemplateOutlet]=\"bodyTpl\" [ngTemplateOutletContext]=\"{ $implicit: i, index: $index }\" />\n }\n }\n @if (!_loading) {\n <ng-template [ngTemplateOutlet]=\"body!\" [ngTemplateOutletContext]=\"{ $implicit: _statistical }\" />\n }\n </tbody>\n <ng-template #totalTpl let-range=\"range\" let-total>{{ renderTotal(total, range) }}</ng-template>\n</nz-table>\n<nz-dropdown-menu #contextmenuTpl=\"nzDropdownMenu\">\n <ul nz-menu class=\"st__contextmenu\">\n @for (i of contextmenuList; track $index) {\n @if (i.children!.length === 0) {\n <li nz-menu-item (click)=\"i.fn!(i)\" [innerHTML]=\"i.text\"></li>\n } @else {\n <li nz-submenu [nzTitle]=\"i.text\">\n <ul>\n @for (ci of i.children; track $index) {\n <li nz-menu-item (click)=\"ci.fn!(ci)\" [innerHTML]=\"ci.text\"></li>\n }\n </ul>\n </li>\n }\n }\n </ul>\n</nz-dropdown-menu>\n","import { NgModule } from '@angular/core';\n\nimport { STRowDirective } from './st-row.directive';\nimport { STWidgetHostDirective } from './st-widget-host.directive';\nimport { STComponent } from './st.component';\n\nconst COMPONENTS = [STComponent, STRowDirective, STWidgetHostDirective];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\nexport class STModule {}\n","import { EnvironmentProviders, inject, makeEnvironmentProviders, provideEnvironmentInitializer } from '@angular/core';\n\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { STWidgetRegistry } from './st-widget';\n\nexport interface STWidgetProvideConfig {\n KEY: string;\n type: NzSafeAny;\n}\n\n/**\n * Just only using Standalone widgets\n */\nexport function provideSTWidgets(...widgets: STWidgetProvideConfig[]): EnvironmentProviders {\n return makeEnvironmentProviders([\n provideEnvironmentInitializer(() => {\n const srv = inject(STWidgetRegistry);\n widgets.forEach(widget => srv.register(widget.KEY, widget.type));\n })\n ]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i4.STWidgetRegistry","i1","i3","i4","i2"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAGa,WAAW,CAAA;IACd,MAAM,GAAsC,EAAE;IAC9C,IAAI,GAAsC,EAAE;AAEpD,IAAA,GAAG,CAAC,IAAwB,EAAE,IAAY,EAAE,GAAsB,EAAA;AAChE,QAAA,IAAI,CAAC,IAAI,KAAK,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;;AAGxD,IAAA,QAAQ,CAAC,IAAY,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;;AAG1B,IAAA,MAAM,CAAC,IAAY,EAAA;AACjB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;;uGAbb,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAX,WAAW,EAAA,CAAA;;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB;;MAqBY,cAAc,CAAA;IACR,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC5C,IAAA,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC;AACzB,IAAA,EAAE;AAEV,IAAA,IAAI;IAEb,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC;;uGARpC,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,CAAA,QAAA,EAAA,IAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE;AACX,iBAAA;8BAIkB,EAAE,EAAA,CAAA;sBAAlB,KAAK;uBAAC,QAAQ;gBAEN,IAAI,EAAA,CAAA;sBAAZ;;;MCvBU,gBAAgB,CAAA;IACnB,QAAQ,GAA8B,EAAE;AAEhD,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ;;IAGtB,QAAQ,CAAC,IAAY,EAAE,MAAiB,EAAA;AACtC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM;;AAG9B,IAAA,GAAG,CAAC,IAAY,EAAA;AACd,QAAA,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;;AAGlE,IAAA,GAAG,CAAC,IAAY,EAAA;AACd,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;;uGAhBjB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cADH,MAAM,EAAA,CAAA;;2FACnB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MC6BrB,cAAc,CAAA;AAIf,IAAA,GAAA;AACQ,IAAA,SAAA;AACI,IAAA,GAAA;AAC0B,IAAA,OAAA;AACtC,IAAA,gBAAA;AAPF,IAAA,GAAG;IAEX,WACU,CAAA,GAAiB,EACT,SAAsB,EAClB,GAAe,EACW,OAAyB,EAC/D,gBAAkC,EAAA;QAJlC,IAAG,CAAA,GAAA,GAAH,GAAG;QACK,IAAS,CAAA,SAAA,GAAT,SAAS;QACL,IAAG,CAAA,GAAA,GAAH,GAAG;QACuB,IAAO,CAAA,OAAA,GAAP,OAAO;QAC7C,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB;;AAG1B,IAAA,MAAM,CAAC,GAAkB,EAAA;AACvB,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;;IAGR,MAAM,CAAC,CAAiB,EAAE,GAAsB,EAAA;AACtD,QAAA,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,EAAE;AACpC,YAAA,CAAC,CAAC,GAAG,GAAG,KAAK;YACb;;AAGF,QAAA,IAAI,GAAG,GAAG;AACR,YAAA,GAAG;SACJ;AACD,QAAA,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE;AAC7B,YAAA,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG;;AACZ,aAAA,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE;AACpC,YAAA,GAAG,GAAG;AACJ,gBAAA,GAAG,GAAG;gBACN,GAAG,CAAC,CAAC;aACN;;AAGH,QAAA,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,UAAU,EAAE;AACvC,YAAA,GAAG,CAAC,SAAS,GAAG,MAAM,KAAK;;AAG7B,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,GAAG,CAAC,SAAS;AAAE,gBAAA,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;YAChE,IAAI,GAAG,CAAC,UAAU;AAAE,gBAAA,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;YACnE,IAAI,GAAG,CAAC,cAAc;AAAE,gBAAA,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC;;AAGjF,QAAA,CAAC,CAAC,GAAG,GAAG,GAAG;;AAGL,IAAA,SAAS,CAAC,IAAsB,EAAA;AACtC,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,EAAE;QACpB,MAAM,GAAG,GAAqB,EAAE;AAChC,QAAA,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG;AAEhD,QAAA,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;YACvB,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACnD;;AAGF,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;AACnD,gBAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,EAAE;AACtD,oBAAA,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,EAAE;AACjD,wBAAA,OAAO,CAAC,IAAI,CAAC,CAAA,gEAAA,CAAkE,CAAC;;AAElF,oBAAA,IAAI,CAAC,IAAI,GAAG,MAAM;;qBACb;oBACL,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE;;;AAIrF,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC1B,gBAAA,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,EAAE;AACxD,oBAAA,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,EAAE;AACjD,wBAAA,OAAO,CAAC,IAAI,CAAC,CAAA,wDAAA,CAA0D,CAAC;;AAE1E,oBAAA,IAAI,CAAC,IAAI,GAAG,MAAM;;qBACb;oBACL,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE;;;AAIxF,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,WAAW,EAAE;AAC1D,gBAAA,IAAI,CAAC,GAAG,GAAG,IAAI;;;AAIjB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAI,CAAC;AAEvB,YAAA,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;gBACnC,IAAI,CAAC,IAAI,GAAG;AACV,oBAAA,GAAG,OAAO;oBACV,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI;iBAC1D;;AAGb,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;;YAG9F,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AAC7B,gBAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;;AAG3C,YAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;;AAEhB,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;AACrB,QAAA,OAAO,GAAG;;AAGJ,IAAA,WAAW,CAAC,IAAsB,EAAA;AACxC,QAAA,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;AACvB,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW;AAC3D,YAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AAC7C,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;;iBAC1B;AACL,gBAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;;;IAKhB,WAAW,CAAC,IAAiB,EAAE,MAAe,EAAA;QACpD,MAAM,WAAW,GAAG,CAAC,CAAS,EAAE,CAAY,KAAa,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACnG,MAAM,WAAW,GAAG,MAAM,GAAG,EAAE,GAAG,CAAC;;QAEnC;AACG,aAAA,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,IAAI,CAAC,CAAC,KAAK;AACpD,aAAA,OAAO,CAAC,CAAC,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,GAAG,CAAA,EAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,WAAW,CAAI,EAAA,CAAA,CAAC,CAAC;;QAExG;AACG,aAAA,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,OAAO,IAAI,CAAC,CAAC,KAAK;AACrD,aAAA,OAAO;AACP,aAAA,OAAO,CAAC,CAAC,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,GAAG,CAAA,EAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAI,EAAA,CAAA,CAAC,CAAC;;AAGjG,IAAA,UAAU,CAAC,IAAe,EAAA;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QACpC,GAAG,CAAC,MAAM,GAAG;AACX,YAAA,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU;YACtB,GAAG,GAAG,CAAC;SACR;AACD,QAAA,OAAO,GAAG;;AAGJ,IAAA,aAAa,CAAC,IAAe,EAAA;AACnC,QAAA,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE;AACpC,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;;QAG3B,IAAI,GAAG,GAAc,EAAE;AAEvB,QAAA,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;AACjC,YAAA,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI;;AACd,aAAA,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;AACzC,YAAA,GAAG,GAAG,IAAI,CAAC,IAAI;;AACV,aAAA,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;YACzC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAS,CAAC;;AAG/D,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;AACZ,YAAA,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ;;AAGzB,QAAA,GAAG,CAAC,OAAO,GAAG,IAAI;AAElB,QAAA,OAAO,GAAG;;AAGJ,IAAA,YAAY,CAAC,IAAe,EAAA;AAClC,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;AACvB,YAAA,OAAO,IAAI;;AAGb,QAAA,IAAI,GAAG,GAA0B,IAAI,CAAC,MAAM;QAC5C,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,SAAS;QAChC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,KAAK,KAAK;QAEzC,IAAI,IAAI,GAAG,QAAQ;QACnB,IAAI,SAAS,GAAG,MAAM;QACtB,IAAI,QAAQ,GAAG,IAAI;QACnB,IAAI,KAAK,GAAc,SAAS;AAChC,QAAA,QAAQ,GAAG,CAAC,IAAI;AACd,YAAA,KAAK,SAAS;gBACZ,IAAI,GAAG,QAAQ;gBACf,SAAS,GAAG,SAAS;gBACrB;AACF,YAAA,KAAK,QAAQ;gBACX,IAAI,GAAG,QAAQ;gBACf,SAAS,GAAG,SAAS;gBACrB,GAAG,CAAC,MAAM,GAAG;AACX,oBAAA,IAAI,EAAE,CAAC;oBACP,GAAG,EAAE,CAAC,QAAQ;AACd,oBAAA,GAAG,EAAE,QAAQ;oBACb,GAAG,GAAG,CAAC;iBACR;gBACD;AACF,YAAA,KAAK,MAAM;gBACT,IAAI,GAAG,UAAU;gBACjB,SAAS,GAAG,SAAS;gBACrB,GAAG,CAAC,IAAI,GAAG;AACT,oBAAA,KAAK,EAAE,KAAK;AACZ,oBAAA,IAAI,EAAE,MAAM;AACZ,oBAAA,SAAS,EAAE,IAAI;AACf,oBAAA,OAAO,EAAE,KAAK;oBACd,GAAG,GAAG,CAAC;iBACR;gBACD;AACF,YAAA,KAAK,QAAQ;gBACX;AACF,YAAA;gBACE,QAAQ,GAAG,KAAK;gBAChB;;AAEJ,QAAA,IAAI,QAAQ,KAAK,GAAG,CAAC,KAAK,IAAI,IAAI,IAAI,GAAG,CAAC,KAAM,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;YAC9D,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;;QAGzB,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,EAAE;AAC3B,YAAA,OAAO,IAAI;;AAGb,QAAA,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,WAAW,EAAE;AACvC,YAAA,GAAG,CAAC,QAAQ,GAAG,IAAI;;AAGrB,QAAA,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB;AAC/D,QAAA,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe;QACzD,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ;QAClC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,IAAI;QAE3B,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAY;AAC3D,QAAA,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;AAChC,YAAA,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAY;;aAC/C;AACL,YAAA,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE;;AAGzC,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;AAEvB,QAAA,IAAI,IAAI,CAAC,GAAG,EAAE;YACZ,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAI,CAAC,CAAC;;AAG1D,QAAA,OAAO,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,IAAI,GAAG,GAAG;;AAGrC,IAAA,aAAa,CAAC,IAAe,EAAA;AACnC,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,IAAI,CAAC,aAAa;AAChB,gBAAA,OAAO,IAAI,CAAC,WAAW,KAAK;sBACxB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW;AAC1C,sBAAG,IAAI,CAAC,WAAiC;;AAE/C,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,QAAQ;gBACX,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAI,IAAI,CAAC,MAA4B;;;AAIvG,IAAA,YAAY,CAAC,IAAe,EAAA;AAClC,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;YAAE;QAC5B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACvE,OAAO,IAAI,CAAC,IAAI;AAChB,YAAA,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,EAAE;gBACjD,IAAI,CAAC,2BAA2B,IAAI,CAAC,MAAM,EAAE,IAAI,CAAG,CAAA,CAAA,CAAC;;;;AAKnD,IAAA,UAAU,CAAC,WAAwB,EAAA;QACzC,MAAM,IAAI,GAAkB,EAAE;QAC9B,MAAM,MAAM,GAAa,EAAE;QAC3B,MAAM,YAAY,GAAG,CAAC,OAAoB,EAAE,QAAgB,EAAE,QAAQ,GAAG,CAAC,KAAc;;YAEtF,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;YAErC,IAAI,eAAe,GAAG,QAAQ;YAC9B,MAAM,QAAQ,GAAa,OAAO,CAAC,GAAG,CAAC,MAAM,IAAG;AAC9C,gBAAA,MAAM,IAAI,GAAsB;oBAC9B,MAAM;AACN,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,aAAa,EAAE;iBAChB;gBAED,IAAI,OAAO,GAAG,CAAC;AAEf,gBAAA,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ;AAClC,gBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;oBACtD,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,eAAe,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC;AAC5G,oBAAA,IAAI,CAAC,aAAa,GAAG,IAAI;;qBACpB;oBACL,MAAM,CAAC,IAAI,CAAE,IAAI,CAAC,MAAM,CAAC,KAAgB,IAAI,EAAE,CAAC;;AAGlD,gBAAA,IAAI,SAAS,IAAI,MAAM,EAAE;AACvB,oBAAA,OAAO,GAAG,MAAM,CAAC,OAAQ;;AAG3B,gBAAA,IAAI,SAAS,IAAI,MAAM,EAAE;AACvB,oBAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;;AAG/B,gBAAA,IAAI,CAAC,OAAO,GAAG,OAAO;gBACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,OAAO,GAAG,CAAC;gBACzC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAiB,CAAC;gBAEtC,eAAe,IAAI,OAAO;AAE1B,gBAAA,OAAO,OAAO;AAChB,aAAC,CAAC;AAEF,YAAA,OAAO,QAAQ;AACjB,SAAC;AAED,QAAA,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;;AAG5B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM;AAC5B,QAAA,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE,QAAQ,IAAI,CAAC,EAAE;YACzD,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,IAAG;AAC5B,gBAAA,IAAI,EAAE,SAAS,IAAI,IAAI,CAAC,IAAI,CAAE,IAAkB,CAAC,aAAa,EAAE;AAC7D,oBAAA,IAAkB,CAAC,OAAO,GAAG,QAAQ,GAAG,QAAQ;;AAErD,aAAC,CAAC;;AAGJ,QAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,EAAE;;AAG9D,IAAA,SAAS,CAAC,IAAiB,EAAA;QACjC,MAAM,GAAG,GAAgB,EAAE;AAC3B,QAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC/B,QAAA,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;AAC3B,YAAA,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACrD;;YAEF,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACnD;;AAEF,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;;AAE/C,YAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;;AAEhB,QAAA,OAAO,GAAG;;AAGJ,IAAA,UAAU,CAAC,IAAe,EAAA;QAChC,MAAM,iBAAiB,GAAa,EAAE;AACtC,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC;;AAEzC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS;QACnC,IAAI,CAAC,YAAY,EAAE;AACjB,YAAA,MAAM,SAAS,GACb;AACE,gBAAA,MAAM,EAAE,YAAY;AACpB,gBAAA,QAAQ,EAAE,YAAY;AACtB,gBAAA,IAAI,EAAE;AAET,aAAA,CAAC,IAAI,CAAC,IAAK,CAAC;YACb,IAAI,SAAS,EAAE;AACb,gBAAA,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC;;AAEnC,YAAA,IAAI,CAAC,UAAU,GAAG,iBAAiB;YACnC;;QAGF,MAAM,mBAAmB,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;QACvD,IAAI,CAAC,mBAAmB,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;YAC5D,MAAM,aAAa,GAAqB,YAAY;AACpD,YAAA,iBAAiB,CAAC,OAAO,CAAC,GAAG,KAAK,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;AAC7D,YAAA,IAAI,CAAC,UAAU,GAAG,aAAa;YAC/B;;AAGF,QAAA,MAAM,eAAe,GAAG,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAAC,YAAwB,CAAC,GAAG,CAAC,YAAY,CAAC;QACnG,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,iBAAiB,CAAC;QAClD,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;IAGlE,OAAO,CACL,IAAgB,EAChB,OAAqC,EAAA;QAErC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,YAAA,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;;AAEzD,QAAA,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG;QAC5B,IAAI,aAAa,GAAG,CAAC;QACrB,IAAI,UAAU,GAAG,CAAC;QAClB,MAAM,OAAO,GAAgB,EAAE;AAE/B,QAAA,MAAM,WAAW,GAAG,CAAC,IAAe,KAAe;;AAEjD,YAAA,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC9B,oBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;;gBAE/C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;;;AAKtC,YAAA,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,KAAK,EAAE;YACtF,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AAC5B,gBAAA,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;;AAEzC,YAAA,IAAI,GAAG,CAAC,IAAI,EAAE;AACZ,gBAAA,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC;;AAExD,YAAA,IAAI,CAAC,KAAK,GAAG,GAAG;;;AAKhB,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;AACtB,gBAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC,OAAO;;;AAG9D,YAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;AAC3B,gBAAA,IAAI,CAAC,UAAU,GAAG,EAAE;;AAEtB,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;AAC5B,gBAAA,EAAE,aAAa;AACf,gBAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;oBACf,IAAI,CAAC,KAAK,GAAG,CAAA,EAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI;;;AAG5D,YAAA,IAAI,IAAI,CAAC,GAAG,EAAE;gBACZ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAI,CAAC,CAAC;;;AAGrE,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;AACzB,gBAAA,EAAE,UAAU;AACZ,gBAAA,IAAI,CAAC,UAAU,GAAG,EAAE;AACpB,gBAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACf,oBAAA,IAAI,CAAC,KAAK,GAAG,MAAM;;;;AAIvB,YAAA,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;AACrB,gBAAA,IAAI,CAAC,IAAI,GAAG,MAAM;;;AAGpB,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;gBACtB,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE;;;AAGvD,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AACxB,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM;;AAE5D,YAAA,IACE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,UAAU;iBACxD,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC;iBAC5C,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC;AACzC,iBAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAC3C;AACA,gBAAA,IAAI,CAAC,IAAI,GAAG,EAAE;;YAEhB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,SAAS,CAAC,cAAc,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK;;AAEzG,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;;AAErB,YAAA,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;AAClC,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK;gBACxB,IAAI,CAAC,KAAK,GAAG,CAAA,EAAG,IAAI,CAAC,KAAK,IAAI;;AAEhC,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ;;YAGjD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;;YAElC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAmB;;YAEvD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAQ,CAAC;;AAE5C,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;;AAEvB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;;YAExB,IAAI,CAAC,SAAS,GAAG;AACf,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,MAAM,EAAE,QAAQ;AAChB,gBAAA,QAAQ,EAAE,EAAE;AACZ,gBAAA,QAAQ,EAAE,GAAG;AACb,gBAAA,OAAO,EAAE,IAAI;gBACb,GAAG,OAAO,CAAC,SAAS;gBACpB,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,SAAS,GAAI,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,SAAS,EAAkB,GAAG,IAAI,CAAC,SAAS;aAC1G;AAED,YAAA,OAAO,IAAI;AACb,SAAC;AAED,QAAA,MAAM,WAAW,GAAG,CAAC,IAAiB,KAAU;AAC9C,YAAA,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;gBACvB,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AAChC,oBAAA,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;;;AAGhC,SAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAmB,CAAC;QACpD,WAAW,CAAC,QAAQ,CAAC;AAErB,QAAA,IAAI,aAAa,GAAG,CAAC,EAAE;AACrB,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,mCAAA,CAAqC,CAAC;;AAExD,QAAA,IAAI,UAAU,GAAG,CAAC,EAAE;AAClB,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,gCAAA,CAAkC,CAAC;;QAGrD,IAAI,CAAC,WAAW,CAAC,OAAsB,EAAE,OAAO,CAAC,MAAM,CAAC;QACxD,OAAO;YACL,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;AACnF,YAAA,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ;SAC5B;;AAGH,IAAA,gBAAgB,CAAC,OAAoB,EAAA;AACnC,QAAA,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;;AAG7C,IAAA,aAAa,CAAC,MAAsB,EAAA;AAClC,QAAA,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI;AAAE,YAAA,OAAO,IAAI;AAErC,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;YAC7B,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,KAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,OAAQ,CAAC,KAAK,CAAC,CAAC;;aAC3D;AACL,YAAA,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,KAAK;;AAE3C,QAAA,OAAO,IAAI;;AAGb,IAAA,WAAW,CAAC,GAAc,EAAA;AACxB,QAAA,MAAM,CAAC,GAAG,GAAG,CAAC,MAAO;AACrB,QAAA,CAAC,CAAC,OAAO,GAAG,KAAK;AACjB,QAAA,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE;AACxB,YAAA,CAAC,CAAC,KAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;;aACrC;YACL,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,SAAS;;AAE/B,QAAA,OAAO,IAAI;;AA5hBF,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,4HAOH,gBAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAP3B,cAAc,EAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B;;0BAMI;;0BACA;;0BACA;;0BAAY,MAAM;2BAAC,gBAAgB;;;MCgC3B,YAAY,CAAA;AAKb,IAAA,IAAA;AACQ,IAAA,QAAA;AACA,IAAA,MAAA;AACA,IAAA,UAAA;AACR,IAAA,WAAA;AACA,IAAA,GAAA;AATF,IAAA,GAAG;IACH,QAAQ,GAAG,CAAC;IAEpB,WACU,CAAA,IAAiB,EACT,QAAkB,EAClB,MAAc,EACd,UAAuB,EAC/B,WAA4B,EAC5B,GAAiB,EAAA;QALjB,IAAI,CAAA,IAAA,GAAJ,IAAI;QACI,IAAQ,CAAA,QAAA,GAAR,QAAQ;QACR,IAAM,CAAA,MAAA,GAAN,MAAM;QACN,IAAU,CAAA,UAAA,GAAV,UAAU;QAClB,IAAW,CAAA,WAAA,GAAX,WAAW;QACX,IAAG,CAAA,GAAA,GAAH,GAAG;;AAGb,IAAA,MAAM,CAAC,GAAkB,EAAA;AACvB,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;;AAGhB,IAAA,OAAO,CAAC,OAA4B,EAAA;AAClC,QAAA,IAAI,KAA2B;QAC/B,IAAI,QAAQ,GAAG,KAAK;QACpB,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO;AAC/E,QAAA,IAAI,QAAgB;AACpB,QAAA,IAAI,KAAa;AACjB,QAAA,IAAI,OAAiB;AACrB,QAAA,IAAI,KAAa;AACjB,QAAA,IAAI,OAAkB;AACtB,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI;AAExB,QAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5B,QAAQ,GAAG,IAAI;AACf,YAAA,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CAC1C,GAAG,CAAC,MAAM,IAAG;gBACX,OAAO,GAAG,MAAM;AAChB,gBAAA,IAAI,GAAa;AACjB,gBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oBACzB,GAAG,GAAG,MAAM;AACZ,oBAAA,QAAQ,GAAG,GAAG,CAAC,MAAM;oBACrB,KAAK,GAAG,QAAQ;oBAChB,QAAQ,GAAG,KAAK;;qBACX;AACL,oBAAA,MAAM,MAAM,GAAG,GAAG,CAAC,MAAO;AAC1B,oBAAA,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;AAChC,wBAAA,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;AAC/C,wBAAA,GAAG,GAAG,KAAK,CAAC,IAAI;AAChB,wBAAA,QAAQ,GAAG,KAAK,CAAC,KAAK;;yBACjB;;wBAEL,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,IAAgB,EAAE,EAAE,CAAC;AAClD,wBAAA,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;4BACtC,GAAG,GAAG,EAAE;;;AAGV,wBAAA,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,KAAiB,EAAE,IAAI,CAAC;AACnF,wBAAA,QAAQ,GAAG,WAAW,IAAI,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,WAAW;;;AAG9D,gBAAA,OAAO,QAAQ,CAAC,GAAG,CAAC;aACrB,CAAC,CACH;;aACI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAC9C,YAAA,KAAK,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;;aACjB;;YAEL,KAAK,GAAG,IAAI;;QAGd,IAAI,CAAC,QAAQ,EAAE;YACb,KAAK,GAAG,KAAK,CAAC,IAAI;;AAEhB,YAAA,GAAG,CAAC,CAAC,MAAgB,KAAI;gBACvB,OAAO,GAAG,MAAM;AAChB,gBAAA,IAAI,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;gBACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;gBAC1C,IAAI,QAAQ,EAAE;AACZ,oBAAA,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;;AAExC,gBAAA,OAAO,UAAU;AACnB,aAAC,CAAC;;AAEF,YAAA,GAAG,CAAC,CAAC,MAAgB,KAAI;gBACvB;qBACG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM;qBACpB,OAAO,CAAC,CAAC,IAAG;AACX,oBAAA,MAAM,MAAM,GAAG,CAAC,CAAC,MAAO;oBACxB,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;AAC3C,oBAAA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;wBAAE;AACzB,oBAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE;AAC1B,oBAAA,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AAClC,wBAAA,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,EAAE;AACjD,4BAAA,OAAO,CAAC,IAAI,CAAC,CAAA,2CAAA,CAA6C,CAAC;;wBAE7D;;oBAEF,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AACzE,iBAAC,CAAC;AACJ,gBAAA,OAAO,MAAM;AACf,aAAC,CAAC;;AAEF,YAAA,GAAG,CAAC,CAAC,MAAgB,KAAI;AACvB,gBAAA,IAAI,SAAS,IAAI,IAAI,CAAC,KAAK,EAAE;AAC3B,oBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;AAClD,oBAAA,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,YAAY,GAAG,YAAY,GAAG,EAAE,CAAC;AAC1D,oBAAA,QAAQ,GAAG,MAAM,CAAC,MAAM;AACxB,oBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;AACtB,wBAAA,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,GAAG,EAAE,CAAC;;;AAGrD,gBAAA,OAAO,MAAM;aACd,CAAC,CACH;;;AAIH,QAAA,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU,EAAE;YACrC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,OAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;;AAGlE,QAAA,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QAE7G,OAAO,KAAK,CAAC,IAAI,CACf,GAAG,CAAC,MAAM,IAAG;YACX,OAAO,GAAG,MAAM;AAChB,YAAA,MAAM,SAAS,GAAG,QAAQ,IAAI,KAAK;AACnC,YAAA,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE;YAE1B,OAAO;AACL,gBAAA,EAAE,EAAE,KAAK;AACT,gBAAA,EAAE,EAAE,KAAK;AACT,gBAAA,KAAK,EAAE,QAAQ;AACf,gBAAA,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,OAAsB,EAAE,OAAO,EAAE,OAAO,CAAC;AAC1E,gBAAA,QAAQ,EAAE,OAAO,QAAQ,KAAK,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG;aAC5C;SACxB,CAAC,CACH;;AAGK,IAAA,GAAG,CAAC,IAAY,EAAE,GAAc,EAAE,GAAW,EAAA;AACnD,QAAA,IAAI;AACF,YAAA,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,KAAK,UAAU;AAC5C,YAAA,IAAI,GAAG,CAAC,MAAM,EAAE;AACd,gBAAA,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE;gBAClD,OAAO;AACL,oBAAA,IAAI,EAAE,SAAS;AACf,oBAAA,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,SAAS,CAAC,GAAG,SAAS;AACzE,oBAAA,GAAG,EAAE,SAAS;oBACd,QAAQ,EAAE,GAAG,CAAC;iBACf;;AAGH,YAAA,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,KAAiB,EAAE,GAAG,CAAC,OAAO,CAAC;YAE/D,IAAI,IAAI,GAAG,KAAK;AAChB,YAAA,IAAI,KAAyB;AAC7B,YAAA,IAAI,OAA2B;AAC/B,YAAA,QAAQ,GAAG,CAAC,IAAI;AACd,gBAAA,KAAK,IAAI;oBACP,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC;oBACtC;AACF,gBAAA,KAAK,KAAK;AACR,oBAAA,IAAI,GAAG,KAAK,GAAG,CAAA,UAAA,EAAa,KAAK,CAAA,cAAA,CAAgB,GAAG,EAAE;oBACtD;AACF,gBAAA,KAAK,QAAQ;AACX,oBAAA,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,YAAY,CAAC;oBACzD;AACF,gBAAA,KAAK,UAAU;AACb,oBAAA,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC;oBAC3D;AACF,gBAAA,KAAK,MAAM;oBACT,IAAI;AACF,wBAAA,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,GAAG,CAAC,OAAO,KAAK,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,CAAC;8BAC9E,GAAG,CAAC;AACN,8BAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC;oBACpD;AACF,gBAAA,KAAK,IAAI;AACP,oBAAA,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,KAAK,GAAG,CAAC,EAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAG,CAAC,GAAI,EAAE,GAAG,CAAC,EAAG,CAAC,EAAG,EAAE,GAAG,CAAC,EAAG,CAAC,IAAK,EAAE,KAAK,CAAC;oBACtG;AACF,gBAAA,KAAK,MAAM;AACT,oBAAA,IAAI,GAAG,GAAG,CAAC,IAAK,CAAC,KAAK,CAAC;oBACvB;AACF,gBAAA,KAAK,KAAK;gBACV,KAAK,OAAO,EAAE;AACZ,oBAAA,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,KAAK,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK;AACrD,oBAAA,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE;AACtB,wBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;AAC3B,wBAAA,IAAI,GAAG,QAAQ,CAAC,IAAI;AACpB,wBAAA,KAAK,GAAG,QAAQ,CAAC,KAAK;AACtB,wBAAA,OAAO,GAAG,QAAQ,CAAC,OAAO;;yBACrB;wBACL,IAAI,GAAG,EAAE;;oBAEX;;;YAGJ,IAAI,IAAI,IAAI,IAAI;gBAAE,IAAI,GAAG,EAAE;YAC3B,OAAO;gBACL,IAAI;AACJ,gBAAA,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,CAAC,GAAG,IAAI;AAC/D,gBAAA,GAAG,EAAE,KAAK;gBACV,KAAK;gBACL,OAAO;gBACP,QAAQ,EAAE,GAAG,CAAC,QAAS;AACvB,gBAAA,OAAO,EAAE;aACV;;QACD,OAAO,EAAE,EAAE;YACX,MAAM,IAAI,GAAG,CAAA,YAAA,CAAc;YAC3B,OAAO,CAAC,KAAK,CAAC,CAAoB,kBAAA,CAAA,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;AAClD,YAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;;;IAIlE,WAAW,CAAC,GAAW,EAAE,OAA4B,EAAA;QAC3D,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO;AACzF,QAAA,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,KAAK,EAAE,WAAW,EAAE;QAElD,IAAI,MAAM,GAAwB,EAAE;AACpC,QAAA,MAAM,MAAM,GAAG,GAAG,CAAC,MAAyB;QAC5C,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE;AACvB,gBAAA,MAAM,GAAG;AACP,oBAAA,CAAC,MAAM,CAAC,EAAY,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE;AACrD,oBAAA,CAAC,MAAM,CAAC,EAAY,GAAG;iBACxB;;iBACI;AACL,gBAAA,MAAM,GAAG;oBACP,CAAC,MAAM,CAAC,IAAc,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE;AACtC,oBAAA,CAAC,MAAM,CAAC,KAAe,GAAG;iBAC3B;;;AAGL,QAAA,MAAM,GAAG;AACP,YAAA,GAAG,MAAM;YACT,GAAG,GAAG,CAAC,MAAM;YACb,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC;AACrD,YAAA,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO;SAChC;QACD,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,EAAE;YACvC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,IAAG;AAChC,gBAAA,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI;AAAE,oBAAA,OAAO,MAAM,CAAC,GAAG,CAAC;AAC7C,aAAC,CAAC;;AAGJ,QAAA,IAAI,UAAU,GAAqB;YACjC,MAAM;YACN,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,GAAG,CAAC;SACd;QACD,IAAI,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,EAAE;AAC/C,YAAA,UAAU,GAAG;gBACX,IAAI,EAAE,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,MAAM,EAAE;gBAChC,OAAO,EAAE,GAAG,CAAC;aACd;;AAEH,QAAA,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU,EAAE;AACrC,YAAA,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC;;QAEtC,IAAI,EAAE,UAAU,CAAC,MAAM,YAAY,UAAU,CAAC,EAAE;AAC9C,YAAA,UAAU,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;;AAEvE,QAAA,IAAI,OAAO,OAAO,CAAC,aAAa,KAAK,UAAU,EAAE;AAC/C,YAAA,OAAO,OAAO,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;;AAEpE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC;;AAGnD,IAAA,OAAO,CAAC,CAAW,EAAE,IAAY,EAAE,GAAW,EAAA;QAC5C,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,MAAM,KAAK,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,IAAI;AAChF,QAAA,MAAM,aAAa,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC;AAChD,QAAA,MAAM,aAAa,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC;QAChD,OAAO;YACL,OAAO,EAAE,aAAa,IAAI,CAAC,GAAG,IAAI,GAAG,aAAa;YAClD,OAAO,EAAE,aAAa,IAAI,CAAC,GAAG,IAAI,GAAG;SACpB;;AAGrB,IAAA,YAAY,CAAC,OAAyF,EAAA;QACpG,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO;AACjD,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AACjD,YAAA,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAG;AAClC,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAE3C,gBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;oBACpD,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;;AAGhF,gBAAA,IAAI,IAA6B;AACjC,gBAAA,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,UAAU,EAAE;AAChC,oBAAA,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;;gBAE7B,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;AACtD,aAAC,CAAC;AACF,YAAA,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;iBAC7F,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;iBACf,IAAI,CAAC,GAAG,CAAC;;AAEd,QAAA,OAAO,MAAM;;AAGf,IAAA,UAAU,CAAC,IAAY,EAAE,GAAc,EAAE,GAAW,EAAA;QAClD,OAAO,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,OAAQ,GAAG,GAAG;;AAGrF,IAAA,UAAU,CAAC,KAAwB,EAAE,IAAY,EAAE,GAAa,EAAA;AACtE,QAAA,MAAM,EAAE,GAAG,CAAC,IAAuB,KAAuB;YACxD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,IAAG;gBACjC,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC,GAAG,KAAK,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI;AAC7E,gBAAA,MAAM,gBAAgB,GAAG,GAAG,CAAC,WAAW,KAAK,UAAU;AACvD,gBAAA,GAAG,CAAC,OAAO,GAAG,MAAM;AACpB,gBAAA,GAAG,CAAC,SAAS,GAAG,CAAC,MAAM,IAAI,gBAAgB;AAC3C,gBAAA,IAAI,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE;oBACxB,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,QAAS,CAAC;;gBAElC,OAAO,MAAM,IAAI,gBAAgB;AACnC,aAAC,CAAC;AACJ,SAAC;AAED,QAAA,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC;AAErB,QAAA,MAAM,MAAM,GAAG,CAAC,IAAuB,KAAuB;AAC5D,YAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACtB,gBAAA,GAAG,CAAC,KAAK,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE;gBACjF,GAAG,CAAC,UAAU,GAAG,OAAO,GAAG,CAAC,SAAS,KAAK,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,SAAS;gBAC/F,GAAG,CAAC,KAAK,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAI,GAAG,CAAC,IAAe;AACvF,gBAAA,IAAI,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE;oBACxB,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,QAAS,CAAC;;;AAGxC,YAAA,OAAO,IAAI;AACb,SAAC;QAED,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;;IAGtC,cAAc,CAAC,IAAuB,EAAE,GAAa,EAAA;AAC3D,QAAA,MAAM,MAAM,GAAG,GAAG,CAAC,iBAAiB;AACpC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM;AAC3B,QAAA,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC;AAAE,YAAA,OAAO,IAAI;AAE/C,QAAA,MAAM,GAAG,GAA8B;AACrC,YAAA,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB;AAC7B,YAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;SAC5D;AAED,QAAA,IAAI,GAAG,CAAC,KAAM,IAAI,OAAO;AAAE,YAAA,OAAO,IAAI;AAEtC,QAAA,MAAM,OAAO,GAAsB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;AAClE,QAAA,OAAO,OAAO;;;AAKR,IAAA,YAAY,CAAC,OAAsB,EAAA;QACzC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,KAAI;YAClC,MAAM,EAAE,GAAG;iBACR,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM;iBACjB,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO;iBACrE,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,KAAM,CAAC;AAC3B,YAAA,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;SACvB,EAAE,EAAiB,CAAC;;AAGf,IAAA,WAAW,CAAC,OAAsB,EAAA;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;AAC3C,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACzB;;AAEF,QAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC;AAC5B,QAAA,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE;YAC7B;;AAEF,QAAA,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,UAAU,EAAE;AAC1C,YAAA,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,EAAE;AACjD,gBAAA,OAAO,CAAC,IAAI,CAAC,CAAA,8CAAA,CAAgD,CAAC;;YAEhE;;AAGF,QAAA,OAAO,CAAC,CAAS,EAAE,CAAS,KAAI;YAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;AACtC,YAAA,IAAI,MAAM,KAAK,CAAC,EAAE;AAChB,gBAAA,OAAO,QAAQ,CAAC,OAAO,KAAK,SAAS,GAAG,CAAC,MAAM,GAAG,MAAM;;AAE1D,YAAA,OAAO,CAAC;AACV,SAAC;;AAGH,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,EAAE,IAAI,CAAC,QAAQ;;AAGxB,IAAA,aAAa,CACX,UAA2C,EAC3C,SAAkC,EAClC,OAAsB,EAAA;QAEtB,IAAI,GAAG,GAA0B,EAAE;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;QAE3C,IAAI,SAAS,EAAE;AACb,YAAA,MAAM,EAAE,GAAgB;AACtB,gBAAA,GAAG,EAAE,MAAM;AACX,gBAAA,SAAS,EAAE,GAAG;AACd,gBAAA,aAAa,EAAE,GAAG;AAClB,gBAAA,YAAY,EAAE,IAAI;AAClB,gBAAA,UAAU,EAAE,KAAK;AACjB,gBAAA,GAAG;aACJ;YAED,MAAM,OAAO,GAAG;AACb,iBAAA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI;AAC9B,iBAAA,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAI,GAAG,EAAE,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,IAAI,CAAC,OAAQ,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;YAEnG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,GAAI,GAAG,EAAE,CAAC,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE;AAEzE,YAAA,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,GAAG,EAAE,GAAG,GAAG;;AAGrE,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;AAAE,YAAA,OAAO,GAAG;AAErC,QAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC;AAC3B,QAAA,IAAI,SAAS,GAAG,OAAO,CAAC,GAAG;QAC3B,IAAI,SAAS,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,EAAE,OAAO,CAAC,OAAQ,CAAC,IAAI,OAAO,CAAC,OAAO;QAC/E,IAAI,UAAU,EAAE;AACd,YAAA,SAAS,GAAG,SAAS,IAAI,UAAU,CAAC,aAAa,IAAI,GAAG,CAAC,GAAG,SAAS;AACrE,YAAA,SAAS,GAAG,UAAU,CAAC,GAAG,IAAI,MAAM;;AAEtC,QAAA,GAAG,CAAC,SAAmB,CAAC,GAAG,SAAmB;AAC9C,QAAA,OAAO,GAAG;;;;AAOJ,IAAA,eAAe,CAAC,MAAsB,EAAA;AAC5C,QAAA,OAAO,MAAM,CAAC,IAAI,KAAK,SAAS,GAAG,MAAM,CAAC,KAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,KAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;;AAGtG,IAAA,eAAe,CAAC,OAAoB,EAAA;QAC1C,IAAI,GAAG,GAAG,EAAE;QACZ;AACG,aAAA,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI;aACjD,OAAO,CAAC,GAAG,IAAG;AACb,YAAA,MAAM,MAAM,GAAG,GAAG,CAAC,MAAO;YAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;YAC3C,IAAI,GAAG,GAA8B,EAAE;AACvC,YAAA,IAAI,MAAM,CAAC,MAAM,EAAE;gBACjB,GAAG,GAAG,MAAM,CAAC,MAAO,CAAC,MAAM,CAAC,KAAM,EAAE,GAAG,CAAC;;iBACnC;gBACL,GAAG,CAAC,MAAM,CAAC,GAAI,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;YAEvD,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE;AAC1B,SAAC,CAAC;AACJ,QAAA,OAAO,GAAG;;;;AAOJ,IAAA,cAAc,CAAC,OAAoB,EAAE,IAAc,EAAE,OAAkB,EAAA;QAC7E,MAAM,GAAG,GAA8B,EAAE;QACzC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,KAAI;YAC7B,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,IAAI,KAAK,CAAC;gBACnC,GAAG,CAAC,WAAW,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC;AACjF,SAAC,CAAC;AACF,QAAA,OAAO,GAAG;;AAGJ,IAAA,cAAc,CAAC,GAAc,EAAE,KAAa,EAAE,IAAc,EAAE,OAAkB,EAAA;AACtF,QAAA,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW;AAC3B,QAAA,MAAM,IAAI,GAAkB;AAC1B,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,QAAQ,EAAE,SAAS;AACnB,YAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,GAAG,EAAE,IAAI,EAAE,GAAwB,EAAE,GAAI,GAAqB;SAC1F;AACD,QAAA,IAAI,GAAG,GAAwB,EAAE,KAAK,EAAE,CAAC,EAAE;QAC3C,IAAI,QAAQ,GAAG,KAAK;AACpB,QAAA,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;YACnC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC;YAChE,QAAQ,GAAG,IAAI;;aACV;AACL,YAAA,QAAQ,IAAI,CAAC,IAAI;AACf,gBAAA,KAAK,OAAO;AACV,oBAAA,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM;oBACvB;AACF,gBAAA,KAAK,eAAe;AAClB,oBAAA,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM;oBACxG;AACF,gBAAA,KAAK,KAAK;oBACR,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,MAAO,CAAC;oBAChE,QAAQ,GAAG,IAAI;oBACf;AACF,gBAAA,KAAK,SAAS;oBACZ,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAO,CAAC;oBAC9E,QAAQ,GAAG,IAAI;oBACf;AACF,gBAAA,KAAK,KAAK;AACR,oBAAA,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBACpD,QAAQ,GAAG,IAAI;oBACf;AACF,gBAAA,KAAK,KAAK;AACR,oBAAA,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBACpD,QAAQ,GAAG,IAAI;oBACf;;;AAGN,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,KAAK,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI,QAAQ,KAAK,IAAI,CAAC,EAAE;AAC1E,YAAA,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAW;;aACxE;YACL,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;;AAE9B,QAAA,OAAO,GAAG;;IAGJ,OAAO,CAAC,GAAW,EAAE,MAAc,EAAA;QACzC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAChC,YAAA,OAAO,CAAC;;QAEV,OAAO,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;;IAGhC,SAAS,CAAC,KAAa,EAAE,IAAc,EAAA;AAC7C,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;;IAG9E,MAAM,CAAC,KAAa,EAAE,IAAc,EAAA;AAC1C,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;;uGAhhB3E,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAZ,YAAY,EAAA,CAAA;;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB;;0BAOI;;0BACA;;0BACA;;;MCtEQ,QAAQ,CAAA;AACF,IAAA,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC;AAEtC,IAAA,MAAM,CAAC,IAAe,EAAE,GAAa,EAAE,KAAa,EAAE,QAAgB,EAAA;QAC5E,MAAM,GAAG,GAA8B,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE;AAExD,QAAA,IAAI,GAAG,CAAC,MAAM,EAAE;AACd,YAAA,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC;;aAC/B;AACL,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,KAAiB,EAAE,EAAE,CAAC;AACjG,YAAA,GAAG,CAAC,CAAC,GAAG,GAAG;AACX,YAAA,IAAI,GAAG,IAAI,IAAI,EAAE;AACf,gBAAA,QAAQ,GAAG,CAAC,IAAI;AACd,oBAAA,KAAK,UAAU;AACb,wBAAA,GAAG,CAAC,CAAC,GAAG,GAAG;wBACX;AACF,oBAAA,KAAK,MAAM;;;wBAGT,IAAI,CAAA,EAAG,GAAG,CAAE,CAAA,CAAC,MAAM,GAAG,CAAC,EAAE;AACvB,4BAAA,GAAG,CAAC,CAAC,GAAG,GAAG;;AAEX,4BAAA,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU;;wBAExB;oBACF,KAAK,IAAI,EAAE;AACT,wBAAA,MAAM,EAAE,GAAG,GAAG,CAAC,EAAG;wBAClB,GAAG,CAAC,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE;wBACzC;;;;;QAMR,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE;AAEnB,QAAA,OAAO,GAAG;;AAGJ,IAAA,QAAQ,CAAC,GAAoB,EAAA;QACnC,MAAM,MAAM,GAA8C,EAAE;AAC5D,QAAA,MAAM,KAAK,IAA+B,MAAM,CAAC,GAAG,CAAC,SAAS,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;AACjF,QAAA,MAAM,OAAO,GAAG,GAAG,CAAC,IAAK,CAAC,MAAM;AAChC,QAAA,MAAM,OAAO,GAAG,GAAG,CAAC,QAAwB;QAC5C,IAAI,aAAa,GAAG,CAAC;QACrB,IAAI,GAAG,GAAG,KAAK;AACf,QAAA,MAAM,SAAS,GAAG,CAAC,GAAc,KAC/B,GAAG,CAAC,QAAQ,KAAK,KAAK,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC;AACrF,QAAA,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE;YAC1C,IAAI,SAAS,CAAC,GAAG,CAAC;gBAAE;AACpB,YAAA,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI;gBAAE,GAAG,GAAG,IAAI;AAC1C,YAAA,EAAE,aAAa;YACf,MAAM,UAAU,GAAG,IAAI,CAAC,OAAQ,CAAC,cAAc,CAAC,aAAa,CAAC;AAC9D,YAAA,KAAK,CAAC,CAAA,EAAG,UAAU,CAAA,CAAA,CAAG,CAAC,GAAG;AACxB,gBAAA,CAAC,EAAE,GAAG;gBACN,CAAC,EAAE,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;aACzD;AACD,YAAA,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO,EAAE,OAAO,EAAE,EAAE;gBAClD,KAAK,CAAC,CAAG,EAAA,UAAU,CAAG,EAAA,OAAO,GAAG,CAAC,CAAE,CAAA,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAK,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC;;;QAG7F,IAAI,GAAG,EAAE;;AAEP,YAAA,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;;QAG3F,IAAI,aAAa,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE;AACpC,YAAA,KAAK,CAAC,MAAM,CAAC,GAAG,CAAM,GAAA,EAAA,IAAI,CAAC,OAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAA,EAAG,OAAO,GAAG,CAAC,EAAE;;AAGnF,QAAA,OAAO,MAAM;;IAGf,MAAM,MAAM,CAAC,GAAoB,EAAA;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AACjC,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YACzB,MAAM;YACN,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,QAAQ,EAAE,GAAG,CAAC;AACf,SAAA,CAAC;;uGA/EO,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAR,QAAQ,EAAA,CAAA;;2FAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBADpB;;;MCCY,qBAAqB,CAAA;AACf,IAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC3C,IAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAEnD,IAAA,MAAM;AACN,IAAA,MAAM;IAEf,QAAQ,GAAA;AACN,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAO;AAClC,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;AAE5D,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;QAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,aAAa,CAAC;AACzE,QAAA,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;QAC/B,MAAM,IAAI,GAA8B,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE;QACtG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,IAAG;YAC7B,YAAY,CAAC,QAAsB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;AACvD,SAAC,CAAC;;uGAjBO,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE;AACX,iBAAA;8BAKU,MAAM,EAAA,CAAA;sBAAd;gBACQ,MAAM,EAAA,CAAA;sBAAd;;;MCgJU,iBAAiB,CAAA;AACX,IAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAEhD,OAAO,GAAG,KAAK;AACN,IAAA,GAAG;IACH,MAAM,GAAe,EAAE;AACvB,IAAA,CAAC;AACS,IAAA,CAAC,GAAG,IAAI,YAAY,EAAW;AAC/B,IAAA,MAAM,GAAG,IAAI,YAAY,EAAW;AACvD,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,CAAC,CAAC,IAAc;;AAG9B,IAAA,eAAe,CAAC,MAAkB,EAAA;QAChC,MAAM,CAAC,eAAe,EAAE;;IAG1B,cAAc,GAAA;QACZ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;;AAGnD,IAAA,WAAW,CAAC,IAAwB,EAAA;AAClC,QAAA,IAAI,CAAC,CAAC,CAAC,KAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;AAC/C,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO;AAC5B,QAAA,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;AAGnB,IAAA,KAAK,CAAC,MAAgB,EAAA;QACpB,IAAI,MAAM,IAAI,IAAI;AAAE,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AAE5C,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;;IAG1B,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AACtB,QAAA,OAAO,IAAI;;IAGb,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACvB,QAAA,OAAO,IAAI;;uGAzCF,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAnIlB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,GAAA,EAAA,EAAA,OAAA,EAAA,EAAA,CAAA,EAAA,GAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,0CAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,+CAAA,EAAA,SAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4GT,EAUC,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,onBACX,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,SAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,YAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,eAAe,EACf,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,WAAA,EAAA,IAAA,EAAA,gBAAgB,mLAChB,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,eAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,OAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,YAAA,EAAA,YAAA,EAAA,aAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACtB,sBAAsB,EACtB,QAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,qBAAqB,wsBACrB,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,mBAAmB,sNACnB,gBAAgB,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,aAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAGP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBArI7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4GT,EAAA,CAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,4CAA4C,EAAE,CAAM,IAAA,CAAA;AACpD,wBAAA,oBAAoB,EAAE,CAAM,IAAA,CAAA;AAC5B,wBAAA,iDAAiD,EAAE,CAAS,OAAA;AAC7D,qBAAA;AACD,oBAAA,mBAAmB,EAAE,KAAK;oBAC1B,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,oBAAA,OAAO,EAAE;wBACP,WAAW;wBACX,gBAAgB;wBAChB,eAAe;wBACf,gBAAgB;wBAChB,sBAAsB;wBACtB,sBAAsB;wBACtB,qBAAqB;wBACrB,gBAAgB;wBAChB,YAAY;wBACZ,mBAAmB;wBACnB;AACD;AACF,iBAAA;8BAKU,GAAG,EAAA,CAAA;sBAAX;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBACQ,CAAC,EAAA,CAAA;sBAAT;gBACkB,CAAC,EAAA,CAAA;sBAAnB;gBACkB,MAAM,EAAA,CAAA;sBAAxB;;;ACrKU,MAAA,iBAAiB,GAAkB;AAC9C,IAAA,EAAE,EAAE,CAAC;AACL,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,UAAU,EAAE,IAAI;AAChB,IAAA,0BAA0B,EAAE,KAAK;AACjC,IAAA,GAAG,EAAE;AACH,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE,KAAK;AAChB,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,eAAe,EAAE,KAAK;AACtB,QAAA,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;AAC3D,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC;AAC3C,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,KAAK,EAAE,IAAI;AACX,QAAA,WAAW,EAAE,KAAK;AAClB,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,SAAS,EAAE,OAAO;AAClB,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,QAAQ,EAAE,KAAK;QACf,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAC/B,QAAA,eAAe,EAAE,KAAK;AACtB,QAAA,KAAK,EAAE,IAAI;AACX,QAAA,KAAK,EAAE,IAAI;AACX,QAAA,WAAW,EAAE,GAAG;AAChB,QAAA,UAAU,EAAE,IAAI;AAChB,QAAA,MAAM,EAAE;AACT,KAAA;AACD,IAAA,KAAK,EAAE;AACL,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,KAAK,EAAE;AACR,KAAA;AACD,IAAA,MAAM,EAAE;AACN,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,MAAM,EAAE,IAAI;AACZ,QAAA,YAAY,EAAE;AACf,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,SAAS,EAAE;AACZ,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,IAAI,EAAE;AACP,KAAA;AACD,IAAA,OAAO,EAAE,CAAC;AACV,IAAA,gBAAgB,EAAE,KAAK;AACvB,IAAA,eAAe,EAAE,KAAK;AACtB,IAAA,SAAS,EAAE;AACT,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,cAAc,EAAE;AACjB,KAAA;AACD,IAAA,eAAe,EAAE,EAAE;AACnB,IAAA,kBAAkB,EAAE,GAAG;AACvB,IAAA,kBAAkB,EAAE,GAAG;AACvB,IAAA,WAAW,EAAE,MAAM;AACnB,IAAA,YAAY,EAAE,CAAC;AACf,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,CAAkB,gBAAA;AAC3B,KAAA;AACD,IAAA,EAAE,EAAE;AACF,QAAA,KAAK,EAAE,IAAI;AACX,QAAA,GAAG,EAAE,GAAG;AACR,QAAA,IAAI,EAAE;AACP,KAAA;AACD,IAAA,iBAAiB,EAAE;AACjB,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,KAAK,EAAE;AACR;;;MCsCU,aAAa,CAAA;IACP,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC5C,IAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACjC,IAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AAE3C,IAAA,CAAC;AACD,IAAA,IAAI;AACJ,IAAA,IAAI;AACJ,IAAA,CAAC;AACD,IAAA,KAAK;AACK,IAAA,CAAC,GAAG,IAAI,YAAY,EAAe;AAEtD,IAAA,IAAY,WAAW,GAAA;QACrB,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM;AACrC,QAAA,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE;;AAGlB,IAAA,MAAM,CAAC,IAAqB,EAAA;QAClC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;;AAGlD,IAAA,SAAS,CAAC,KAAc,EAAA;AACtB,QAAA,IAAI,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK;AACtB,QAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;;IAGzB,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;AACpE,QAAA,IAAI,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI;AACrB,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;;AAGtB,IAAA,KAAK,CAAC,CAAQ,EAAA;AACZ,QAAA,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACxB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,KAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;AAC9C,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC3B,YAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;;AAE7D,QAAA,OAAO,KAAK;;IAGd,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;;AAGrC,IAAA,gBAAgB,CAAC,EAAS,EAAA;QACxB,EAAE,CAAC,cAAc,EAAE;QACnB,EAAE,CAAC,eAAe,EAAE;;IAGtB,IAAI,CAAC,GAAmB,EAAE,EAAU,EAAA;QAClC,EAAE,EAAE,eAAe,EAAE;AACrB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG;AAC3B,QAAA,IAAI,MAAM,GAAG,IAAI,CAAC,CAAC;AACnB,QAAA,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;YACjD,IAAI,GAAG,CAAC,KAAM,CAAC,WAAW,KAAK,IAAI,EAAE;gBACnC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAE;;AAExC,YAAA,MAAM,KAAK,GAAG,GAAG,CAAC,KAAM;YACxB,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,UAAW,GAAG,MAAM,EAAE;YAC1C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO,GAAG,QAAQ,GAAG,cAAc,CAAe,CAC/E,KAAK,CAAC,SAAS,EACf,EAAE,GAAG,GAAG,EAAE,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EACrD,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;AAEvC,iBAAA,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,WAAW,CAAC;AAC1C,iBAAA,SAAS,CAAC,CAAC,GAAc,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YACpE;;AACK,aAAA,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;YAChC,IAAI,GAAG,CAAC,MAAO,CAAC,WAAW,KAAK,IAAI,EAAE;gBACpC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAE;;AAExC,YAAA,MAAM,MAAM,GAAG,GAAG,CAAC,MAAO;YAC1B,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,UAAW,GAAG,MAAM,EAAE;AAC5C,YAAA,IAAI,CAAC;AACF,iBAAA,MAAM,CACL,MAAM,CAAC,KAAM,EACb,MAAM,CAAC,SAAS,EAChB,EAAE,GAAG,GAAG,EAAE,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EACvD,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;AAE3C,iBAAA,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,WAAW,CAAC;AAC1C,iBAAA,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YACvD;;AACK,aAAA,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE;YAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC;AAC9C,YAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AAChC,gBAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;;YAElE;;AAEF,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC;;AAGvB,IAAA,WAAW,CAAC,MAAc,EAAE,GAAmB,EAAE,KAAiB,EAAA;QACxE,IAAI,CAAC,GAAG,CAAC,KAAK;YAAE;AAChB,QAAA,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE;AACjC,YAAA,QAAQ,GAAG,CAAC,KAAK;AACf,gBAAA,KAAK,MAAM;AACT,oBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;oBAClB;AACF,gBAAA,KAAK,QAAQ;AACX,oBAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;oBACpB;;;aAEC;AACL,YAAA,OAAO,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;;;uGA3GrC,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,ECpH1B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,OAAA,EAAA,MAAA,EAAA,EAAA,CAAA,EAAA,GAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,GAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,CAAA,EAAA,GAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,goIAgHA,EDZI,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,EACX,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,kBAAkB,EAClB,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,uBAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,0BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,uBAAA,EAAA,6BAAA,EAAA,yBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,EAChB,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,qBAAqB,EACrB,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,gCAAA,EAAA,mBAAA,EAAA,0BAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,oBAAA,EAAA,6BAAA,EAAA,6BAAA,EAAA,8BAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,2BAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,eAAe,EACf,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,WAAA,EAAA,IAAA,EAAA,mBAAmB,EACnB,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,EAChB,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,aAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,cAAc,EACd,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,EAChB,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,cAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,aAAa,EACb,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,qBAAqB,EACrB,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,gBAAgB,EAChB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,SAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,YAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,+BACZ,kBAAkB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,eAAA,EAAA,WAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAGT,aAAa,EAAA,UAAA,EAAA,CAAA;kBAvBzB,SAAS;+BACE,OAAO,EAAA,mBAAA,EAEI,KAAK,EAAA,eAAA,EACT,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAC5B,OAAA,EAAA;wBACP,WAAW;wBACX,kBAAkB;wBAClB,gBAAgB;wBAChB,qBAAqB;wBACrB,eAAe;wBACf,mBAAmB;wBACnB,gBAAgB;wBAChB,cAAc;wBACd,gBAAgB;wBAChB,aAAa;wBACb,qBAAqB;wBACrB,gBAAgB;wBAChB,YAAY;wBACZ;AACD,qBAAA,EAAA,QAAA,EAAA,goIAAA,EAAA;8BAQQ,CAAC,EAAA,CAAA;sBAAT;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,CAAC,EAAA,CAAA;sBAAT;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACkB,CAAC,EAAA,CAAA;sBAAnB;;MAqIU,WAAW,CAAA;AACL,IAAA,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAClC,IAAA,EAAE,GAAgB,MAAM,CAAC,UAAU,CAAC,CAAC,aAAa;AAClD,IAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC/B,IAAA,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;AACtB,IAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC5B,IAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC;AACrC,IAAA,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC;AACjC,IAAA,SAAS,GAAG,MAAM,CAAC,kBAAkB,CAAC;IACtC,GAAG,GAAG,MAAM,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACtD,IAAA,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC;IAEtC,QAAQ,GAAG,EAAE;IACb,KAAK,GAAG,KAAK;AACrB,IAAA,GAAG;AACK,IAAA,IAAI;AACJ,IAAA,IAAI;AACJ,IAAA,KAAK;AACL,IAAA,UAAU;IACV,iBAAiB,GAAY,KAAK;IAC1C,YAAY,GAAa,EAAE;IAC3B,MAAM,GAAe,EAAE;IACvB,QAAQ,GAAG,KAAK;IAChB,KAAK,GAAa,EAAE;IACpB,YAAY,GAAyB,EAAE;IACvC,aAAa,GAAG,IAAI;IACpB,WAAW,GAAG,KAAK;IACnB,mBAAmB,GAAG,KAAK;IAC3B,cAAc,GAAG,KAAK;IACtB,QAAQ,GAAkB,EAAE;IAC5B,QAAQ,GAAgB,EAAE;IAC1B,eAAe,GAAwB,EAAE;AACZ,IAAA,QAAQ;AACC,IAAA,cAAc;AAEpD,IAAA,IACI,GAAG,GAAA;QACL,OAAO,IAAI,CAAC,IAAI;;IAElB,IAAI,GAAG,CAAC,KAAY,EAAA;AAClB,QAAA,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;;;AAGzD,IAAA,IACI,GAAG,GAAA;QACL,OAAO,IAAI,CAAC,IAAI;;IAElB,IAAI,GAAG,CAAC,KAAY,EAAA;QAClB,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACtE,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAO;AAC3B,QAAA,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;YAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;gBAAE,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAK,CAAC,KAAK,CAAC,GAAG,CAAC;YACtE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;gBAAE,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAM,CAAC,KAAK,CAAC,GAAG,CAAC;;AAE3E,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;AAElB,IAAA,IACI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,KAAK;;IAEnB,IAAI,IAAI,CAAC,KAAa,EAAA;AACpB,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,KAAK,EAAE;QAC3C,IAAI,CAAC,cAAc,EAAE;;AAEd,IAAA,IAAI;AACJ,IAAA,OAAO;AACP,IAAA,WAAW;IAC0C,EAAE,GAAG,EAAE;IACR,EAAE,GAAG,CAAC;IACN,KAAK,GAAG,CAAC;IAC7D,OAAO,GAAmB,IAAI;IACA,YAAY,GAAG,CAAC;IAC9C,gBAAgB,GAA6B,IAAI;IAClB,QAAQ,GAAG,KAAK;AAC/C,IAAA,IAAI;IACJ,MAAM,GAA6C,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AAChF,IAAA,IAAI,GAAG,KAAK,CAAgC,IAAI,EAAE;QAChD,SAAS,EAAE,CAAC,IAAG;YACb,MAAM,GAAG,GAAyB,OAAO,CAAC,KAAK,QAAQ,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI;YAC7F,IAAI,GAAG,IAAI,IAAI;AAAE,gBAAA,OAAO,IAAI;AAE5B,YAAA,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU,EAAE;AACrC,gBAAA,GAAG,CAAC,OAAO,GAAG,CAAC,IAAG;AAChB,oBAAA,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,YAAY,CAAC;oBAC5D,IAAI,CAAC,EAAE,EAAE;AACX,iBAAC;;AAEH,YAAA,OAAO,GAAG;;AAEb,KAAA,CAAC;AACO,IAAA,UAAU;AACX,IAAA,UAAU;AAClB,IAAA,IACI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,UAAU;;IAExB,IAAI,SAAS,CAAC,KAAgB,EAAA;QAC5B,IACE,CAAC,OAAO,KAAK,KAAK,SAAS,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;AACvD,aAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,EAC9D;AACA,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS;YAC3B;;QAEF,IAAI,CAAC,UAAU,GAAG;AAChB,YAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,EAAE;SAC3C;;AAEM,IAAA,YAAY;AACZ,IAAA,iBAAiB;IAC1B,IACI,SAAS,CAAC,KAAkB,EAAA;AAC9B,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,KAAK,EAAE;;AAEvD,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,UAAU;;IAExB,IACI,WAAW,CAAC,GAAa,EAAA;AAC3B,QAAA,IAAI,CAAC,YAAY,GAAG,GAAG;QACvB,IAAI,CAAC,iBAAiB,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;;AAExC,IAAA,UAAU;IAClB,IACI,SAAS,CAAC,GAAmC,EAAA;QAC/C,IAAI,CAAC,UAAU,GAAG,OAAO,GAAG,KAAK,QAAQ,GAAG,GAAG,GAAG,EAAE,QAAQ,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE;;AAE/E,IAAA,MAAM;IACyB,UAAU,GAAG,IAAI;AAChD,IAAA,MAAM;AACN,IAAA,UAAU;AACV,IAAA,IAAI;IAC2B,gBAAgB,GAAG,KAAK;IACxB,eAAe,GAAG,KAAK;IACtD,MAAM,GAA6D,IAAI;IACvE,UAAU,GAA6D,IAAI;AAC3E,IAAA,QAAQ;IACuB,UAAU,GAAY,IAAI;AAC1B,IAAA,0BAA0B;AAC/C,IAAA,KAAK,GAAG,IAAI,YAAY,EAAW;AACnC,IAAA,MAAM,GAAG,IAAI,YAAY,EAAY;IAChB,aAAa,GAAG,KAAK;IACtB,eAAe,GAAG,EAAE;IACpB,kBAAkB,GAAG,GAAG;IACxB,kBAAkB,GAAG,GAAG;AACtD,IAAA,aAAa;AACb,IAAA,iBAAiB,GAA4B,KAAK,IAAI,KAAK;IAC3D,OAAO,GAA4B,CAAC,CAAC,EAAE,IAAI,KAAK,IAAI;AAE7D;;AAEG;AACH,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM;;AAG1B;;AAEG;AACH,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,KAAK;;AAGnB,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI;;AAG7B,IAAA,WAAA,CAAY,SAA6B,EAAA;AACvC,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,SAAS,CAAC,MAAK;YAC9D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;YAC1C,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5B,IAAI,CAAC,cAAc,EAAE;gBACrB,IAAI,CAAC,EAAE,EAAE;;AAEb,SAAC,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC;AACV,aAAA,IAAI,CACH,kBAAkB,EAAE,EACpB,MAAM,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;aAEvC,SAAS,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;AAEzC,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,iBAAiB,CAAE,CAAC;;AAGhD,IAAA,MAAM,CAAC,GAAkB,EAAA;QAC/B,MAAM,aAAa,GAAG,EAAE,GAAG,GAAG,CAAC,SAAS,EAAE;;QAE1C,OAAO,GAAG,CAAC,SAAS;AACpB,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;AACd,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC;AAExB,QAAA,IAAI,aAAa,CAAC,MAAM,KAAK,KAAK,EAAE;AAClC,YAAA,IAAI,CAAC,SAAS,GAAG,aAAa;;AAEhC,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC;AAC7B,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC;;IAG7B,EAAE,GAAA;AACA,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;AACxB,QAAA,OAAO,IAAI;;IAGL,WAAW,GAAA;QACjB,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;AAC5B,QAAA,OAAO,IAAI,CAAC,EAAE,EAAE;;IAGlB,WAAW,CAAC,KAAa,EAAE,KAAe,EAAA;QACxC,OAAO,IAAI,CAAC;AACV,cAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;cAC5G,EAAE;;IAGA,UAAU,CAAC,IAAkB,EAAE,IAAgB,EAAA;AACrD,QAAA,MAAM,GAAG,GAAa;YACpB,IAAI;YACJ,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,IAAI,CAAC;SACb;AACD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAChB,YAAA,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI;;AAElB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;;;AAKvB;;;;AAIG;AACH,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAoC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;;IAGjG,cAAc,GAAA;AACpB,QAAA,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE;AAC7C,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;;AAChB,aAAA,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;YAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK;;aAC5B;AACL,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;;AAId,IAAA,UAAU,CAAC,GAAY,EAAA;AAC7B,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;AACxB,YAAA,IAAI,CAAC,QAAQ,GAAG,GAAG;AACnB,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;;;AAIpB,IAAA,QAAQ,CAAC,OAA6B,EAAA;QAC5C,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI;QAC7G,OAAO,IAAI,CAAC;AACT,aAAA,OAAO,CAAC;YACP,EAAE;YACF,EAAE;YACF,KAAK;YACL,IAAI;YACJ,GAAG;YACH,GAAG;YACH,IAAI;AACJ,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,OAAO,EAAE,QAAQ;YACjB,UAAU;YACV,SAAS;YACT,YAAY;AACZ,YAAA,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa;AAC3D,YAAA,GAAG;SACJ;aACA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;IAGpC,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QACrB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CACzB,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EACtC,UAAU,CAAC,KAAK,IAAG;AACjB,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AACvC,YAAA,OAAO,UAAU,CAAC,MAAM,KAAK,CAAC;AAChC,SAAC,CAAC,EACF,GAAG,CAAC,MAAM,IAAG;YACX,MAAM,eAAe,GAAG,WAAW;AACnC,YAAA,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,eAAe,EAAE;AACxC,gBAAA,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE;;AAErB,YAAA,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,eAAe,EAAE;AACxC,gBAAA,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE;;AAErB,YAAA,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,eAAe,EAAE;AAC3C,gBAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;;AAE3B,YAAA,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,eAAe,EAAE;AAC9C,gBAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,QAAQ;;YAEtC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE;AAC9B,YAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,WAAmC;;;AAG9D,YAAA,IAAI,IAAI,CAAC,wBAAwB,IAAI,IAAI,EAAE;AACzC,gBAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,wBAAwB,EAAE,iBAAiB,EAAE,CAAC;;YAElF,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC;AACtC,YAAA,OAAO,IAAI;SACZ,CAAC,CACH;;;IAIH,KAAK,CAAC,cAAuB,IAAI,EAAA;QAC/B,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,WAAW,EAAE;;AAEpB,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;AACf,QAAA,OAAO,IAAI,CAAC,EAAE,EAAE;;;IAIlB,WAAW,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE;;AAGjE;;;;;;AAMG;AACH,IAAA,IAAI,CAAC,EAAa,GAAA,CAAC,EAAE,WAAuB,EAAE,OAAuB,EAAA;QACnE,IAAI,EAAE,KAAK,CAAC,CAAC;AAAE,YAAA,IAAI,CAAC,EAAE,GAAG,EAAE;AAC3B,QAAA,IAAI,OAAO,WAAW,KAAK,WAAW,EAAE;AACtC,YAAA,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,OAAO,IAAI,OAAO,CAAC,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,WAAW,EAAE,GAAG,WAAW;;AAEnG,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;AAC3B,QAAA,OAAO,IAAI;;AAGb;;;;AAIG;IACH,MAAM,CAAC,WAAuB,EAAE,OAAuB,EAAA;QACrD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC;;AAG5C;;;;;;;;AAQG;IACH,KAAK,CAAC,WAAuB,EAAE,OAAuB,EAAA;AACpD,QAAA,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC;AAChD,QAAA,OAAO,IAAI;;AAGL,IAAA,MAAM,CAAC,OAAiB,EAAA;AAC9B,QAAA,IAAI,EAAE,OAAO,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;YAAE;AACpD,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE;QAClB,EAAE,CAAC,cAAc,EAAE;;AAEnB,QAAA,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,WAAY;AAC5D,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,IAAI,CAAC,wBAAwB,EAAE;AACjC,gBAAA,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC;AACrC,oBAAA,GAAG,EAAE,CAAC;AACN,oBAAA,IAAI,EAAE;AACP,iBAAA,CAAC;;iBACG;AACL,gBAAA,EAAE,CAAC,aAAa,CAAC,qCAAqC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;;;;IAK7E,OAAO,CAAC,IAAiB,EAAE,OAAuB,EAAA;QAChD,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE;AAClF,YAAA,IAAI,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;;AAGlE,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;;AAGf,IAAA,gBAAgB,CAAC,IAAY,EAAA;AACnC,QAAA,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK;YAAE;AACpC,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;;AAGrE,IAAA,SAAS,CAAC,CAAQ,EAAE,IAAY,EAAE,KAAa,EAAE,GAAY,EAAA;AAC3D,QAAA,MAAM,EAAE,GAAG,CAAC,CAAC,MAAqB;AAClC,QAAA,IAAI,EAAE,CAAC,QAAQ,KAAK,OAAO;YAAE;AAC7B,QAAA,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI;AACzC,QAAA,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,IAAI,gBAAgB,EAAE;AAC7D,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM;AAC1B,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;AAC3B,YAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC;YAC/B;;QAGF,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;QAC/B,IAAI,GAAG,EAAE;AACP,YAAA,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC;;aAC5B;YACL,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC;AACxC,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC;;;AAI1B,IAAA,kBAAkB,CAAC,EAAe,EAAE,IAAY,EAAE,KAAa,EAAA;AACrE,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB;QACjC,IAAI,EAAE,IAAI,IAAI;YAAE;AAChB,QAAA,MAAM,MAAM,GAAG;AACb,YAAA,SAAS,EAAE,KAAK;YAChB,IAAI,OAAO,EAAE,KAAK,QAAQ,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE;SACxB;QAC5B,MAAM,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QACxC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAgB;AAC5C,QAAA,IAAI,MAAM,CAAC,SAAS,EAAE;YACpB,IAAI,CAAC,aAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAc,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;;QAEvG,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AACtC,YAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;;aAC3B;AACL,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC;;;IAIjC,aAAa,CAAC,IAAY,EAAE,MAAe,EAAA;AACzC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC;;AAGjC,IAAA,gBAAgB,CAAC,EAAS,EAAA;QACxB,EAAE,CAAC,eAAe,EAAE;;IAGd,cAAc,GAAA;QACpB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,KAAI;YAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,KAAI;AAC5B,gBAAA,MAAM,MAAM,GAAG,CAAC,CAAC,OAAyB;AAC1C,gBAAA,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE;AACnB,oBAAA,MAAM,IAAI,GAAG,CAAA,EAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE;oBACvD,MAAM,CAAC,IAAI,CAAC,GAAG;wBACb,IAAI;AACJ,wBAAA,KAAK,EAAE,IAAI;AACX,wBAAA,GAAG,EAAE,GAAG;AACR,wBAAA,QAAQ,EAAE;qBACK;;AAEnB,gBAAA,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;AACzD,aAAC,CAAC;AACJ,SAAC,CAAC;AAEF,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE;;AAG3B;;;;;;;;AAQG;IACH,MAAM,CAAC,IAAuB,EAAE,OAA4B,EAAA;AAC1D,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;AAAE,YAAA,IAAI,GAAG,CAAC,IAAI,CAAC;AACvC,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,EAAE,GAAI,IAAiB,CAAC;AAChE,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,cAAc,EAAE;;AAG7C;;;;;;;;;AASG;AACH,IAAA,SAAS,CAAC,IAAgC,EAAA;AACxC,QAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;;aACrB;YACL,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACxB,gBAAA,IAAI,GAAG,CAAC,IAAI,CAAC;;AAGf,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK;AAC1B,YAAA,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACxC,gBAAA,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AACnC,oBAAA,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;;;;AAI1B,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,cAAc,EAAE;;AAG1C;;;;;;;;;;;AAWG;AACH,IAAA,MAAM,CACJ,KAAsB,EACtB,IAAY,EACZ,OAUC,EAAA;AAED,QAAA,OAAO,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE;AACjE,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;;QAEnC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,kBAAkB,IAAI,KAAK,EAAE,IAAI,CAAC;QAC/F,IAAI,CAAC,YAAY,EAAE;AACnB,QAAA,IAAI,OAAO,CAAC,aAAa,EAAE;YACzB,IAAI,CAAC,YAAY,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;AACrD,YAAA,OAAO,IAAI;;AAEb,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE;;;;IAO3B,IAAI,CAAC,GAAc,EAAE,KAAgB,EAAA;AACnC,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK;YACzB,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY;;aACxC;AACL,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAG;AAC1B,gBAAA,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,KAAK,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;AACvF,aAAC,CAAC;;AAEJ,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;AACxB,QAAA,IAAI,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,MAAK;AACjC,YAAA,MAAM,GAAG,GAAG;gBACV,KAAK;AACL,gBAAA,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC;AAClF,gBAAA,MAAM,EAAE;aACT;AACD,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC;AAC9B,SAAC,CAAC;;IAGJ,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAG;AAC1B,YAAA,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;AACzD,SAAC,CAAC;AACF,QAAA,OAAO,IAAI;;;;IAOb,aAAa,CAAC,GAAc,EAAE,OAAgB,EAAA;QAC5C,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC;;;AAGpC,QAAA,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,MAAO,CAAC;AAC5C,QAAA,IAAI,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;;AAGrE,IAAA,kBAAkB,CAAC,KAAe,EAAA;AAChC,QAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,KAAK,CAAC;;IAGxC,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AACnH,QAAA,OAAO,IAAI;;;;;IAOb,UAAU,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;;IAGrB,SAAS,GAAA;AACf,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;AACrD,QAAA,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC;AAC7D,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM;AACpF,QAAA,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QAC7D,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY;QACxD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM;AAC1F,QAAA,OAAO,IAAI,CAAC,EAAE,EAAE;;AAGlB,IAAA,QAAQ,CAAC,OAAiB,EAAA;AACxB,QAAA,OAAO,GAAG,OAAO,OAAO,KAAK,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,OAAO;AACrE,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,YAAY,EAAE,CAAC,WAAW,EAAE;;AAGtD,IAAA,aAAa,CAAC,GAAsB,EAAA;AAClC,QAAA,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACtB,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,YAAY,EAAE;;IAGxC,YAAY,GAAA;QACV,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC;AACrE,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC;AAChC,QAAA,OAAO,IAAI;;;;;IAQb,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;AACzE,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC;AAC9B,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE;;;AAK3B,IAAA,SAAS,CAAC,EAAe,EAAA;AACvB,QAAA,QAAQ,EAAE,CAAC,IAAI;AACb,YAAA,KAAK,UAAU;AACb,gBAAA,IAAI,CAAC,SAAS,EAAE,CAAC,YAAY,EAAE;gBAC/B;AACF,YAAA,KAAK,OAAO;gBACV,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC;gBACjC,IAAI,CAAC,WAAW,EAAE;gBAClB;;;;AAMN;;;;;AAKG;IACH,MAAM,CAAC,OAAyB,EAAE,GAAqB,EAAA;AACrD,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO;AAChC,cAAE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE;AAC1E,cAAE,IAAI,CAAC,KAAK;AACd,QAAA,CAAC,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC,GAAa,KACxE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,YAAA,GAAG,GAAG;AACN,YAAA,IAAI,EAAE;AACP,SAAA,CAAC,CACH;;;;AAOH,IAAA,SAAS,CAAC,EAAE,KAAK,EAAiB,EAAE,MAAiB,EAAA;AACnD,QAAA,MAAM,CAAC,KAAK,GAAG,CAAG,EAAA,KAAK,IAAI;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC;;;;AAMnC,IAAA,aAAa,CAAC,KAAiB,EAAA;AAC7B,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB;;QAEF,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,eAAe,EAAE;QACvB,MAAM,KAAK,GAAI,KAAK,CAAC,MAAsB,CAAC,OAAO,CAAC,kBAAkB,CAAgB;QACtF,IAAI,CAAC,KAAK,EAAE;YACV;;QAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC/C,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAiB,CAAC,OAAO,CAAC,KAAK,CAAC;AAC3E,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC;AAC/B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;YAC5B,KAAK;YACL,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM;YAC/B,QAAQ,EAAE,OAAO,GAAG,IAAI,GAAG,QAAQ;YACnC,QAAQ;AACR,YAAA,IAAI,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC1C,YAAA,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;AAC/B,SAAA,CAAC;AACF,QAAA,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;aAClC,IAAI,CACH,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EACjC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;aAE9B,SAAS,CAAC,GAAG,IAAG;YACf,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAG;gBACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE;AAC9B,oBAAA,CAAC,CAAC,QAAQ,GAAG,EAAE;;AAEjB,gBAAA,OAAO,CAAC;AACV,aAAC,CAAC;AACF,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;YACxB,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC;AAC9C,SAAC,CAAC;;;AAIN,IAAA,IAAI,wBAAwB,GAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,wBAAqC;;AAGrD,IAAA,aAAa,CAAC,OAA8B,EAAA;AAClD,QAAA,OAAO,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE;AAC/D,QAAA,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,WAAW,EAAE;AAC1C,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO;;AAEhC,QAAA,IAAI,OAAO,OAAO,CAAC,EAAE,KAAK,WAAW,EAAE;AACrC,YAAA,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE;;AAEtB,QAAA,IAAI,OAAO,OAAO,CAAC,EAAE,KAAK,WAAW,EAAE;AACrC,YAAA,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE;;AAEtB,QAAA,IAAI,OAAO,CAAC,UAAU,EAAE;;AAEtB,YAAA,OAAO,CAAC,YAAY,GAAG,IAAI;;AAE7B,QAAA,IAAI,OAAO,CAAC,YAAY,EAAE;AACxB,YAAA,IAAI,CAAC,KAAK,GAAG,EAAE;;QAEjB,IAAI,CAAC,cAAc,EAAE;AACrB,QAAA,IAAI,OAAO,CAAC,UAAU,EAAE;AACtB,YAAA,OAAO,IAAI,CAAC,YAAY,EAAE;;aACrB;YACL,IAAI,CAAC,EAAE,EAAE;AACT,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC;;;AAInB,IAAA,YAAY,CAAC,OAA8B,EAAA;QACzC,OAAO,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;;IAG3C,cAAc,GAAA;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,OAAsB,EAAE;YACjE,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,UAAU;AAC1B,YAAA,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAA4B;AAC/C,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI;AACxB,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO;AAC3B,QAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,KAAK,IAAI,GAAG,CAAC,YAAY,IAAI,IAAI,EAAE;AAChE,YAAA,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY;;AAEtC,QAAA,OAAO,IAAI;;IAGL,YAAY,GAAA;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;YACxC,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,MAAM,EAAE,IAAI,CAAC,KAAK;YAClB,YAAY,EAAE,IAAI,CAAC;AACpB,SAAA,CAAC;AACF,QAAA,OAAO,IAAI;;AAGb;;;;AAIG;AACH,IAAA,QAAQ,CAAC,WAA4B,EAAA;AACnC,QAAA,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;AACnC,YAAA,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;;QAEvC,IAAI,CAAC,WAAW,EAAE;AAChB,YAAA,OAAO,IAAI;;AAEb,QAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC;AACtC,QAAA,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;AACjE,QAAA,OAAO,QAAQ;;IAGjB,eAAe,GAAA;QACb,IAAI,CAAC,cAAc,EAAE;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ;AAAE,YAAA,IAAI,CAAC,YAAY,EAAE,CAAC,SAAS,EAAE;AACvD,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;;AAGnB,IAAA,WAAW,CAAC,OAA6D,EAAA;AACvE,QAAA,IAAI,OAAO,CAAC,OAAO,EAAE;YACnB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY;;QAE9C,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE;AAEjB,QAAA,IAAI,OAAO,CAAC,OAAO,EAAE;AACnB,YAAA,IAAI,CAAC,cAAc,EAAE,CAAC,YAAY,EAAE;;AAEtC,QAAA,IAAI,OAAO,CAAC,IAAI,EAAE;AAChB,YAAA,IAAI,CAAC,YAAY,EAAE,CAAC,SAAS,EAAE;;;uGA/zBxB,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAmEF,CAAC,CAAU,KAAK,eAAe,CAAC,CAAC,EAAE,EAAE,CAAC,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EACtC,CAAC,CAAU,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,EACrC,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,CAAC,CAAU,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,yQAErC,eAAe,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAEf,gBAAgB,EAuDhB,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,gBAAgB,ghBAIhB,gBAAgB,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAChB,gBAAgB,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAIhB,gBAAgB,EAAA,EAAA,0BAAA,EAAA,EAAA,iBAAA,EAAA,4BAAA,EAAA,UAAA,EAAA,4BAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAChB,gBAAgB,EAGhB,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,gBAAgB,mJAChB,eAAe,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EACf,eAAe,EACf,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,eAAe,EA5KxB,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,2BAAA,EAAA,oBAAA,EAAA,6BAAA,EAAA,wBAAA,EAAA,6BAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,YAAA,EAAA,yCAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,IAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EExOjG,6lTAgPA,EFMI,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,kWACX,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,aAAA,EAAA,cAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,YAAA,EAAA,SAAA,EAAA,eAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,yBAAA,EAAA,sBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,qHAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,mBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,gFAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,0HAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,+GAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,6BAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACb,kBAAkB,EAClB,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,uBAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,0BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,uBAAA,EAAA,6BAAA,EAAA,yBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,mBAAmB,EACnB,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAiB,EACjB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,mJAChB,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,SAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,eAAA,EAAA,SAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,YAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,eAAe,EACf,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,EAAA,YAAY,+BACZ,iBAAiB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,QAAA,EAAA,GAAA,CAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EA3IR,aAAa,EAAA,QAAA,EAAA,OAAA,EAAA,MAAA,EAAA,CAAA,GAAA,EAAA,MAAA,EAAA,MAAA,EAAA,GAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,GAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EA6ItB,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,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,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAGL,WAAW,EAAA,UAAA,EAAA,CAAA;kBAhCvB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAI,YACJ,IAAI,EAAA,SAAA,EAEH,CAAC,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,EACzF,IAAA,EAAA;AACJ,wBAAA,YAAY,EAAE,CAAM,IAAA,CAAA;AACpB,wBAAA,oBAAoB,EAAE,CAA2B,yBAAA,CAAA;AACjD,wBAAA,sBAAsB,EAAE,CAA6B,2BAAA,CAAA;AACrD,wBAAA,0BAA0B,EAAE,CAA6B,2BAAA,CAAA;AACzD,wBAAA,uBAAuB,EAAE,CAAc,YAAA,CAAA;AACvC,wBAAA,uBAAuB,EAAE,CAAY,UAAA,CAAA;AACrC,wBAAA,2CAA2C,EAAE,CAA4B,0BAAA;qBAC1E,EACoB,mBAAA,EAAA,KAAK,mBACT,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAC5B,OAAA,EAAA;wBACP,WAAW;wBACX,aAAa;wBACb,kBAAkB;wBAClB,mBAAmB;wBACnB,iBAAiB;wBACjB,gBAAgB;wBAChB,gBAAgB;wBAChB,eAAe;wBACf,YAAY;wBACZ,iBAAiB;wBACjB,aAAa;wBACb;AACD,qBAAA,EAAA,QAAA,EAAA,6lTAAA,EAAA;uFAkC4B,QAAQ,EAAA,CAAA;sBAApC,SAAS;uBAAC,OAAO;gBACoB,cAAc,EAAA,CAAA;sBAAnD,SAAS;uBAAC,gBAAgB;gBAGvB,GAAG,EAAA,CAAA;sBADN;gBASG,GAAG,EAAA,CAAA;sBADN;gBAcG,IAAI,EAAA,CAAA;sBADP;gBAQQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBAC6D,EAAE,EAAA,CAAA;sBAA/D,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA,EAAE,SAAS,EAAE,CAAC,CAAU,KAAK,eAAe,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;gBACC,EAAE,EAAA,CAAA;sBAA9D,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA,EAAE,SAAS,EAAE,CAAC,CAAU,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;gBACE,KAAK,EAAA,CAAA;sBAAjE,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA,EAAE,SAAS,EAAE,CAAC,CAAU,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;gBAClD,OAAO,EAAA,CAAA;sBAAf;gBACsC,YAAY,EAAA,CAAA;sBAAlD,KAAK;uBAAC,EAAE,SAAS,EAAE,eAAe,EAAE;gBAC5B,gBAAgB,EAAA,CAAA;sBAAxB;gBACuC,QAAQ,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAC7B,IAAI,EAAA,CAAA;sBAAZ;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBAeQ,UAAU,EAAA,CAAA;sBAAlB;gBAGG,SAAS,EAAA,CAAA;sBADZ;gBAgBQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;gBAEG,SAAS,EAAA,CAAA;sBADZ;gBAQG,WAAW,EAAA,CAAA;sBADd;gBAOG,SAAS,EAAA,CAAA;sBADZ;gBAIQ,MAAM,EAAA,CAAA;sBAAd;gBACuC,UAAU,EAAA,CAAA;sBAAjD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAC7B,MAAM,EAAA,CAAA;sBAAd;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACuC,gBAAgB,EAAA,CAAA;sBAAvD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,eAAe,EAAA,CAAA;sBAAtD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAC7B,MAAM,EAAA,CAAA;sBAAd;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACuC,UAAU,EAAA,CAAA;sBAAjD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,0BAA0B,EAAA,CAAA;sBAAjE,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACnB,KAAK,EAAA,CAAA;sBAAvB;gBACkB,MAAM,EAAA,CAAA;sBAAxB;gBACuC,aAAa,EAAA,CAAA;sBAApD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACC,eAAe,EAAA,CAAA;sBAArD,KAAK;uBAAC,EAAE,SAAS,EAAE,eAAe,EAAE;gBACE,kBAAkB,EAAA,CAAA;sBAAxD,KAAK;uBAAC,EAAE,SAAS,EAAE,eAAe,EAAE;gBACE,kBAAkB,EAAA,CAAA;sBAAxD,KAAK;uBAAC,EAAE,SAAS,EAAE,eAAe,EAAE;gBAC5B,aAAa,EAAA,CAAA;sBAArB;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;gBACQ,OAAO,EAAA,CAAA;sBAAf;;;AGjZH,MAAM,UAAU,GAAG,CAAC,WAAW,EAAE,cAAc,EAAE,qBAAqB,CAAC;MAM1D,QAAQ,CAAA;uGAAR,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;wGAAR,QAAQ,EAAA,OAAA,EAAA,CAND,WAAW,EAAE,cAAc,EAAE,qBAAqB,CAAA,EAAA,OAAA,EAAA,CAAlD,WAAW,EAAE,cAAc,EAAE,qBAAqB,CAAA,EAAA,CAAA;AAMzD,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,QAAQ,YAND,WAAW,CAAA,EAAA,CAAA;;2FAMlB,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAJpB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,UAAU;AACnB,oBAAA,OAAO,EAAE;AACV,iBAAA;;;ACAD;;AAEG;AACa,SAAA,gBAAgB,CAAC,GAAG,OAAgC,EAAA;AAClE,IAAA,OAAO,wBAAwB,CAAC;QAC9B,6BAA6B,CAAC,MAAK;AACjC,YAAA,MAAM,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC;YACpC,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AAClE,SAAC;AACF,KAAA,CAAC;AACJ;;ACrBA;;AAEG;;;;"}
|