tdesign-mobile-vue
Version:
tdesign-mobile-vue
1 lines • 25.7 kB
Source Map (JSON)
{"version":3,"file":"base-table.mjs","sources":["../../src/table/base-table.tsx"],"sourcesContent":["import { defineComponent, computed, h, ref } from 'vue';\nimport { get, isFunction, isString } from 'lodash-es';\nimport baseTableProps from './base-table-props';\nimport config from '../config';\nimport useClassName from './hooks/useClassName';\nimport useStyle, { formatCSSUnit } from './hooks/useStyle';\nimport useFixed, { getRowFixedStyles, getColumnFixedStyles } from './hooks/useFixed';\nimport { ClassName } from '../common';\n\nimport { BaseTableCellParams, BaseTableCol, TableRowData, TdBaseTableProps } from './type';\nimport TLoading from '../loading';\nimport { TdLoadingProps } from '../loading/type';\nimport { useConfig } from '../config-provider/useConfig';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { formatClassNames, formatRowAttributes, formatRowClassNames } from './utils';\n\nconst { prefix } = config;\n\nexport default defineComponent({\n name: `${prefix}-base-table`,\n props: baseTableProps,\n emits: ['cell-click', 'row-click', 'scroll'],\n setup(props, context) {\n const tableRef = ref();\n const theadRef = ref();\n const tableElmRef = ref();\n const renderTNodeJSX = useTNodeJSX();\n const {\n classPrefix,\n tableLayoutClasses,\n tableHeaderClasses,\n tableBaseClass,\n tdAlignClasses,\n tdEllipsisClass,\n tableRowFixedClasses,\n tableColFixedClasses,\n } = useClassName();\n const { globalConfig, t } = useConfig('table');\n const defaultLoadingContent = h(TLoading, { ...(props.loadingProps as TdLoadingProps) });\n // 表格基础样式类\n const { tableClasses, tableContentStyles, tableElementStyles } = useStyle(props);\n const {\n rowAndColFixedPosition,\n tableContentRef,\n isFixedColumn,\n isFixedHeader,\n showColumnShadow,\n refreshTable,\n updateColumnFixedShadow,\n } = useFixed(props);\n\n const defaultColWidth = props.tableLayout === 'fixed' ? '80px' : undefined;\n\n const theadClasses = computed(() => [\n tableHeaderClasses.header,\n {\n [tableHeaderClasses.fixed]: Boolean(props.maxHeight || props.height),\n [tableBaseClass.bordered]: props.bordered,\n },\n ]);\n\n const tbodyClasses = computed(() => [tableBaseClass.body]);\n\n const ellipsisClasses = computed(() => [`${classPrefix}-table__ellipsis`, `${classPrefix}-text-ellipsis`]);\n\n const handleRowClick = (row: TableRowData, rowIndex: number, e: MouseEvent) => {\n props.onRowClick?.({ row, index: rowIndex, e });\n };\n\n const handleCellClick = (row: TableRowData, col: any, rowIndex: number, colIndex: number, e: MouseEvent) => {\n if (col.stopPropagation) {\n e.stopPropagation();\n }\n props.onCellClick?.({ row, col, rowIndex, colIndex, e });\n };\n\n const dynamicBaseTableClasses = computed(() => [\n {\n [tableBaseClass.headerFixed]: isFixedHeader.value,\n [tableBaseClass.columnFixed]: isFixedColumn.value,\n [tableColFixedClasses.leftShadow]: showColumnShadow.left,\n [tableColFixedClasses.rightShadow]: showColumnShadow.right,\n },\n tableClasses.value,\n ]);\n\n const tableElmClasses = computed(() => [[tableLayoutClasses[props.tableLayout || 'fixed']]]);\n\n const renderCell = (\n params: BaseTableCellParams<TableRowData>,\n cellEmptyContent?: TdBaseTableProps['cellEmptyContent'],\n ) => {\n const { col, row, rowIndex } = params;\n // support serial number column\n if (col.colKey === 'serial-number') {\n return rowIndex + 1;\n }\n\n if (isFunction(col.cell)) {\n return col.cell(h, params);\n }\n if (context.slots[col.colKey]) {\n return context.slots[col.colKey](params);\n }\n\n if (isString(col.cell) && context.slots?.[col.cell]) {\n return context.slots[col.cell](params);\n }\n const r = get(row, col.colKey);\n // 0 和 false 属于正常可用值,不能使用兜底逻辑 cellEmptyContent\n if (![undefined, '', null].includes(r)) return r;\n\n // cellEmptyContent 作为空数据兜底显示,用户可自定义\n if (cellEmptyContent) {\n return isFunction(cellEmptyContent) ? cellEmptyContent(h, params) : cellEmptyContent;\n }\n if (context.slots.cellEmptyContent) return context.slots.cellEmptyContent(params);\n if (context.slots['cell-empty-content']) return context.slots['cell-empty-content'](params);\n return r;\n };\n\n const loadingClasses = computed(() => [`${classPrefix}-table__loading--full`]);\n\n const onInnerVirtualScroll = (e: Event) => {\n const target = (e.target || e.srcElement) as HTMLElement;\n updateColumnFixedShadow(target);\n props.onScroll?.({ params: e });\n };\n\n const tdClassName = (td_item: BaseTableCol<TableRowData>, extra?: Array<ClassName>) => {\n let className = '';\n if (td_item.ellipsis) {\n className = tdEllipsisClass;\n }\n if (td_item.align && td_item.align !== 'left') {\n className = `${className} ${tdAlignClasses[`${td_item.align}`]}`;\n }\n return [className, ...extra];\n };\n\n const colStyle = (col_item: BaseTableCol<TableRowData>) => {\n return {\n width: `${formatCSSUnit(col_item.width || defaultColWidth)}`,\n minWidth: `${\n !formatCSSUnit(col_item.width || defaultColWidth) && !col_item.minWidth && props.tableLayout === 'fixed'\n ? '80px'\n : formatCSSUnit(col_item.minWidth)\n }`,\n };\n };\n\n const thClassName = (item_th: BaseTableCol<TableRowData>, extra?: ClassName) => {\n let className = '';\n if (item_th.colKey) {\n className = `${classPrefix}-table__th-${item_th.colKey}`;\n }\n if (item_th.ellipsisTitle || item_th.ellipsis) {\n className = `${className} ${tdEllipsisClass}`;\n }\n if (item_th.align && item_th.align !== 'left') {\n className = `${className} ${tdAlignClasses[`${item_th.align}`]}`;\n }\n return [className, extra];\n };\n\n const renderTitle = (item_th: BaseTableCol<TableRowData>, index: number) => {\n if (isFunction(item_th?.title)) {\n return item_th?.title(h, { col: item_th, colIndex: index });\n }\n return item_th?.title;\n };\n\n const renderTableBody = () => {\n const renderContentEmpty = renderTNodeJSX('empty') || t(globalConfig.value.empty);\n if (!props.data?.length && renderContentEmpty) {\n return (\n <tr class={tableBaseClass.emptyRow}>\n <td colspan={props.columns?.length}>\n <div class={tableBaseClass.empty}>{renderContentEmpty}</div>\n </td>\n </tr>\n );\n }\n if (props.data?.length) {\n return props.data?.map((tr_item, tr_index) => {\n const { style, classes } = getRowFixedStyles(\n get(tr_item, props.rowKey || 'id'),\n tr_index,\n props.data?.length || 0,\n props.fixedRows,\n rowAndColFixedPosition.value,\n tableRowFixedClasses,\n );\n\n const customClasses = formatRowClassNames(\n props.rowClassName,\n { row: tr_item, rowKey: props.rowKey, rowIndex: tr_index, type: 'body' },\n props.rowKey || 'id',\n );\n\n const trAttributes =\n formatRowAttributes(props.rowAttributes, { row: tr_item, rowIndex: tr_index, type: 'body' }) || {};\n\n return (\n <tr\n {...trAttributes}\n key={tr_index}\n style={style}\n class={[classes, customClasses]}\n onClick={($event) => {\n handleRowClick(tr_item, tr_index, $event);\n }}\n >\n {props.columns?.map((td_item, td_index) => {\n const tdStyles = getColumnFixedStyles(\n td_item,\n td_index,\n rowAndColFixedPosition.value,\n tableColFixedClasses,\n );\n\n const customClasses = formatClassNames(td_item.className, {\n col: td_item,\n colIndex: td_index,\n row: tr_item,\n rowIndex: tr_index,\n type: 'td',\n });\n\n return (\n <td\n key={td_index}\n style={tdStyles.style}\n class={tdClassName(td_item, [tdStyles.classes, customClasses])}\n onClick={($event) => {\n handleCellClick(tr_item, td_item, tr_index, td_index, $event);\n }}\n >\n <div class={td_item.ellipsis && ellipsisClasses.value}>\n {renderCell(\n { row: tr_item, col: td_item, rowIndex: tr_index, colIndex: td_index },\n props.cellEmptyContent,\n )}\n </div>\n </td>\n );\n })}\n </tr>\n );\n });\n }\n };\n\n context.expose({\n refreshTable,\n });\n\n return () => {\n const renderLoading = renderTNodeJSX('loading', { defaultNode: defaultLoadingContent });\n\n return (\n <div ref={tableRef} class={dynamicBaseTableClasses.value} style=\"position: relative\">\n <div\n ref={tableContentRef}\n class={tableBaseClass.content}\n style={tableContentStyles.value}\n onScroll={onInnerVirtualScroll}\n >\n <table ref={tableElmRef} class={tableElmClasses.value} style={tableElementStyles.value}>\n <colgroup>\n {props.columns?.map((col_item) => {\n return <col key={col_item.colKey} style={colStyle(col_item)} />;\n })}\n </colgroup>\n {props.showHeader && (\n <thead ref={theadRef} class={theadClasses.value}>\n <tr>\n {props.columns?.map((item_th, index_th) => {\n const thStyles = getColumnFixedStyles(\n item_th,\n index_th,\n rowAndColFixedPosition.value,\n tableColFixedClasses,\n );\n return (\n <th\n key={index_th}\n class={thClassName(item_th, thStyles.classes)}\n style={thStyles.style}\n data-colKey={item_th.colKey}\n >\n <div class={(item_th.ellipsisTitle || item_th.ellipsis) && ellipsisClasses.value}>\n {renderTitle(item_th, index_th)}\n </div>\n </th>\n );\n })}\n </tr>\n </thead>\n )}\n <tbody class={tbodyClasses.value}>{renderTableBody()}</tbody>\n </table>\n {renderLoading && <div class={loadingClasses.value}>{renderLoading}</div>}\n </div>\n </div>\n );\n };\n },\n});\n"],"names":["prefix","config","defineComponent","name","props","baseTableProps","emits","setup","context","tableRef","ref","theadRef","tableElmRef","renderTNodeJSX","useTNodeJSX","_useClassName","useClassName","classPrefix","tableLayoutClasses","tableHeaderClasses","tableBaseClass","tdAlignClasses","tdEllipsisClass","tableRowFixedClasses","tableColFixedClasses","_useConfig","useConfig","globalConfig","t","defaultLoadingContent","h","TLoading","_objectSpread","loadingProps","_useStyle","useStyle","tableClasses","tableContentStyles","tableElementStyles","_useFixed","useFixed","rowAndColFixedPosition","tableContentRef","isFixedColumn","isFixedHeader","showColumnShadow","refreshTable","updateColumnFixedShadow","defaultColWidth","tableLayout","theadClasses","computed","header","_defineProperty","fixed","Boolean","maxHeight","height","bordered","tbodyClasses","body","ellipsisClasses","concat","handleRowClick","row","rowIndex","e","_props$onRowClick","onRowClick","call","index","handleCellClick","col","colIndex","_props$onCellClick","stopPropagation","onCellClick","dynamicBaseTableClasses","headerFixed","value","columnFixed","leftShadow","left","rightShadow","right","tableElmClasses","renderCell","params","cellEmptyContent","_context$slots","colKey","isFunction","cell","slots","isString","r","get","includes","loadingClasses","onInnerVirtualScroll","_props$onScroll","target","srcElement","onScroll","tdClassName","td_item","extra","className","ellipsis","align","_toConsumableArray","colStyle","col_item","width","formatCSSUnit","minWidth","thClassName","item_th","ellipsisTitle","renderTitle","title","renderTableBody","_props$data","_props$data2","renderContentEmpty","empty","data","length","_props$columns","_createVNode","emptyRow","columns","_props$data3","map","tr_item","tr_index","_props$data4","_props$columns2","_getRowFixedStyles","getRowFixedStyles","rowKey","fixedRows","style","classes","customClasses","formatRowClassNames","rowClassName","type","trAttributes","formatRowAttributes","rowAttributes","_mergeProps","onClick","$event","td_index","tdStyles","getColumnFixedStyles","formatClassNames","expose","_props$columns3","_props$columns4","renderLoading","defaultNode","content","showHeader","index_th","thStyles"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,IAAQA,SAAWC,MAAA,CAAXD;AAER,gBAAeE,eAAgB,CAAA;AAC7BC,EAAAA,gBAASH,MAAA,EAAA,aAAA,CAAA;AACTI,EAAAA,KAAO,EAAAC,cAAA;AACPC,EAAAA,KAAO,EAAA,CAAC,YAAc,EAAA,WAAA,EAAa,QAAQ,CAAA;AAC3CC,EAAAA,KAAA,WAAAA,KAAAA,CAAMH,OAAOI,OAAS,EAAA;AACpB,IAAA,IAAMC,WAAWC,GAAI,EAAA,CAAA;AACrB,IAAA,IAAMC,WAAWD,GAAI,EAAA,CAAA;AACrB,IAAA,IAAME,cAAcF,GAAI,EAAA,CAAA;AACxB,IAAA,IAAMG,iBAAiBC,WAAY,EAAA,CAAA;AAC7B,IAAA,IAAAC,aAAA,GASFC,YAAa,EAAA;MARfC,WAAA,GAAAF,aAAA,CAAAE,WAAA;MACAC,kBAAA,GAAAH,aAAA,CAAAG,kBAAA;MACAC,kBAAA,GAAAJ,aAAA,CAAAI,kBAAA;MACAC,cAAA,GAAAL,aAAA,CAAAK,cAAA;MACAC,cAAA,GAAAN,aAAA,CAAAM,cAAA;MACAC,eAAA,GAAAP,aAAA,CAAAO,eAAA;MACAC,oBAAA,GAAAR,aAAA,CAAAQ,oBAAA;MACAC,oBAAA,GAAAT,aAAA,CAAAS,oBAAA,CAAA;AAEF,IAAA,IAAAC,UAAA,GAA4BC,UAAU,OAAO,CAAA;MAArCC,YAAA,GAAAF,UAAA,CAAAE,YAAA;MAAcC,CAAE,GAAAH,UAAA,CAAFG,CAAE,CAAA;AACxB,IAAA,IAAMC,wBAAwBC,CAAE,CAAAC,OAAA,EAAAC,aAAA,CAAA,EAAA,EAAgB5B,KAAA,CAAM6B,aAAiC,CAAA,CAAA;AAEvF,IAAA,IAAAC,SAAA,GAAiEC,SAAS/B,KAAK,CAAA;MAAvEgC,YAAc,GAAAF,SAAA,CAAdE,YAAc;MAAAC,kBAAA,GAAAH,SAAA,CAAAG,kBAAA;MAAoBC,kBAAmB,GAAAJ,SAAA,CAAnBI,kBAAmB,CAAA;AACvD,IAAA,IAAAC,SAAA,GAQFC,SAASpC,KAAK,CAAA;MAPhBqC,sBAAA,GAAAF,SAAA,CAAAE,sBAAA;MACAC,eAAA,GAAAH,SAAA,CAAAG,eAAA;MACAC,aAAA,GAAAJ,SAAA,CAAAI,aAAA;MACAC,aAAA,GAAAL,SAAA,CAAAK,aAAA;MACAC,gBAAA,GAAAN,SAAA,CAAAM,gBAAA;MACAC,YAAA,GAAAP,SAAA,CAAAO,YAAA;MACAC,uBAAA,GAAAR,SAAA,CAAAQ,uBAAA,CAAA;IAGF,IAAMC,eAAkB,GAAA5C,KAAA,CAAM6C,WAAgB,KAAA,OAAA,GAAU,MAAS,GAAA,KAAA,CAAA,CAAA;IAE3D,IAAAC,YAAA,GAAeC,SAAS,YAAA;AAAA,MAAA,OAAM,CAClChC,kBAAmB,CAAAiC,MAAA,EAAAC,eAAA,CAAAA,eAAA,CAEhBlC,EAAAA,EAAAA,kBAAmB,CAAAmC,KAAA,EAAQC,QAAQnD,KAAM,CAAAoD,SAAA,IAAapD,MAAMqD,MAAM,CAAA,CAAA,EAClErC,cAAe,CAAAsC,QAAA,EAAWtD,KAAM,CAAAsD,QAAA,CAEpC,CAAA,CAAA;KAAA,CAAA,CAAA;IAED,IAAMC,eAAeR,QAAS,CAAA,YAAA;AAAA,MAAA,OAAM,CAAC/B,cAAA,CAAewC,IAAI,CAAC,CAAA;KAAA,CAAA,CAAA;IAEnD,IAAAC,eAAA,GAAkBV,SAAS,YAAA;MAAA,OAAM,CAAA,EAAA,CAAAW,MAAA,CAAI7C,WAA+B,0BAAA6C,MAAA,CAAG7C,aAA4B,gBAAA,CAAA,CAAA,CAAA;KAAA,CAAA,CAAA;IAEzG,IAAM8C,cAAiB,GAAA,SAAjBA,cAAiBA,CAACC,GAAmB,EAAAC,QAAA,EAAkBC,CAAkB,EAAA;AAAA,MAAA,IAAAC,iBAAA,CAAA;AAC7E,MAAA,CAAAA,iBAAA,GAAA/D,KAAA,CAAMgE,wDAAND,iBAAA,CAAAE,IAAA,CAAAjE,KAAA,EAAmB;AAAE4D,QAAAA,GAAA,EAAAA,GAAA;AAAKM,QAAAA,KAAO,EAAAL,QAAA;AAAUC,QAAAA,GAAAA,CAAAA;AAAE,OAAC,CAAA,CAAA;KAChD,CAAA;AAEA,IAAA,IAAMK,kBAAkB,SAAlBA,gBAAmBP,GAAA,EAAmBQ,GAAU,EAAAP,QAAA,EAAkBQ,UAAkBP,CAAkB,EAAA;AAAA,MAAA,IAAAQ,kBAAA,CAAA;MAC1G,IAAIF,IAAIG,eAAiB,EAAA;QACvBT,CAAA,CAAES,eAAgB,EAAA,CAAA;AACpB,OAAA;AACA,MAAA,CAAAD,kBAAA,GAAAtE,KAAA,CAAMwE,0DAANF,kBAAA,CAAAL,IAAA,CAAAjE,KAAA,EAAoB;AAAE4D,QAAAA,GAAA,EAAAA,GAAA;AAAKQ,QAAAA,KAAAA;AAAKP,QAAAA,QAAU,EAAVA,QAAU;AAAAQ,QAAAA,QAAA,EAAAA,QAAA;AAAUP,QAAAA,GAAAA,CAAAA;AAAE,OAAC,CAAA,CAAA;KACzD,CAAA;IAEM,IAAAW,uBAAA,GAA0B1B,SAAS,YAAA;MAAA,OAAM,CAAAE,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAE1CjC,EAAAA,EAAAA,cAAe,CAAA0D,WAAA,EAAclC,aAAc,CAAAmC,KAAA,GAC3C3D,cAAe,CAAA4D,WAAA,EAAcrC,aAAc,CAAAoC,KAAA,CAAA,EAC3CvD,oBAAqB,CAAAyD,UAAA,EAAapC,gBAAiB,CAAAqC,IAAA,CACnD1D,EAAAA,oBAAqB,CAAA2D,WAAA,EAActC,gBAAiB,CAAAuC,KAAA,GAEvDhD,YAAa,CAAA2C,KAAA,CACd,CAAA;KAAA,CAAA,CAAA;IAEK,IAAAM,eAAA,GAAkBlC,QAAS,CAAA,YAAA;MAAA,OAAM,CAAC,CAACjC,mBAAmBd,KAAM,CAAA6C,WAAA,IAAe,OAAQ,CAAA,CAAC,CAAC,CAAA;KAAA,CAAA,CAAA;IAErF,IAAAqC,UAAA,GAAa,SAAbA,UAAAA,CACJC,MAAA,EACAC,gBACG,EAAA;AAAA,MAAA,IAAAC,cAAA,CAAA;AACH,MAAA,IAAQjB,GAAA,GAAuBe,MAAA,CAAvBf,GAAA;QAAKR,GAAK,GAAauB,MAAA,CAAlBvB,GAAK;QAAAC,QAAA,GAAasB,MAAA,CAAbtB,QAAA,CAAA;AAEd,MAAA,IAAAO,GAAA,CAAIkB,WAAW,eAAiB,EAAA;QAClC,OAAOzB,QAAW,GAAA,CAAA,CAAA;AACpB,OAAA;AAEI,MAAA,IAAA0B,UAAA,CAAWnB,GAAI,CAAAoB,IAAI,CAAG,EAAA;AACjB,QAAA,OAAApB,GAAA,CAAIoB,IAAK,CAAA9D,CAAA,EAAGyD,MAAM,CAAA,CAAA;AAC3B,OAAA;MACI,IAAA/E,OAAA,CAAQqF,KAAM,CAAArB,GAAA,CAAIkB,MAAS,CAAA,EAAA;QAC7B,OAAOlF,OAAQ,CAAAqF,KAAA,CAAMrB,GAAI,CAAAkB,MAAA,CAAA,CAAQH,MAAM,CAAA,CAAA;AACzC,OAAA;MAEA,IAAIO,SAAStB,GAAI,CAAAoB,IAAI,uBAAKpF,OAAQ,CAAAqF,KAAA,MAAA,IAAA,IAAAJ,cAAA,KAARA,KAAAA,CAAAA,IAAAA,cAAA,CAAgBjB,IAAIoB,IAAO,CAAA,EAAA;QACnD,OAAOpF,OAAQ,CAAAqF,KAAA,CAAMrB,GAAI,CAAAoB,IAAA,CAAA,CAAML,MAAM,CAAA,CAAA;AACvC,OAAA;MACA,IAAMQ,CAAI,GAAAC,GAAA,CAAIhC,GAAK,EAAAQ,GAAA,CAAIkB,MAAM,CAAA,CAAA;AAE7B,MAAA,IAAI,CAAC,CAAC,KAAA,CAAA,EAAW,IAAI,IAAI,CAAA,CAAEO,SAASF,CAAC,CAAA,EAAU,OAAAA,CAAA,CAAA;AAG/C,MAAA,IAAIP,gBAAkB,EAAA;AACpB,QAAA,OAAOG,WAAWH,gBAAgB,CAAA,GAAIA,gBAAiB,CAAA1D,CAAA,EAAGyD,MAAM,CAAI,GAAAC,gBAAA,CAAA;AACtE,OAAA;AACA,MAAA,IAAIhF,QAAQqF,KAAM,CAAAL,gBAAA,EAAyB,OAAAhF,OAAA,CAAQqF,KAAM,CAAAL,gBAAA,CAAiBD,MAAM,CAAA,CAAA;AAChF,MAAA,IAAI/E,QAAQqF,KAAM,CAAA,oBAAA,CAAA,EAA8B,OAAArF,OAAA,CAAQqF,KAAM,CAAA,oBAAA,CAAA,CAAsBN,MAAM,CAAA,CAAA;AACnF,MAAA,OAAAQ,CAAA,CAAA;KACT,CAAA;IAEA,IAAMG,iBAAiB/C,QAAS,CAAA,YAAA;AAAA,MAAA,OAAM,CAAAW,EAAAA,CAAAA,MAAA,CAAI7C,aAAmC,uBAAA,CAAA,CAAA,CAAA;KAAA,CAAA,CAAA;AAEvE,IAAA,IAAAkF,oBAAA,GAAuB,SAAvBA,oBAAAA,CAAwBjC,CAAa,EAAA;AAAA,MAAA,IAAAkC,eAAA,CAAA;MACnC,IAAAC,MAAA,GAAUnC,CAAE,CAAAmC,MAAA,IAAUnC,CAAE,CAAAoC,UAAA,CAAA;MAC9BvD,uBAAA,CAAwBsD,MAAM,CAAA,CAAA;AAC9B,MAAA,CAAAD,eAAA,GAAAhG,KAAA,CAAMmG,QAAW,MAAA,IAAA,IAAAH,eAAA,KAAA,KAAA,CAAA,IAAjBA,eAAA,CAAA/B,IAAA,CAAAjE,KAAA,EAAiB;AAAEmF,QAAAA,MAAQ,EAAArB,CAAAA;AAAE,OAAC,CAAA,CAAA;KAChC,CAAA;IAEM,IAAAsC,WAAA,GAAc,SAAdA,WAAAA,CAAeC,OAAA,EAAqCC,KAA6B,EAAA;MACrF,IAAIC,SAAY,GAAA,EAAA,CAAA;MAChB,IAAIF,QAAQG,QAAU,EAAA;AACRD,QAAAA,SAAA,GAAArF,eAAA,CAAA;AACd,OAAA;MACA,IAAImF,OAAQ,CAAAI,KAAA,IAASJ,OAAQ,CAAAI,KAAA,KAAU,MAAQ,EAAA;AAC7CF,QAAAA,SAAA,GAAA7C,EAAAA,CAAAA,MAAA,CAAe6C,SAAA,OAAA7C,MAAA,CAAazC,cAAe,CAAA,EAAA,CAAAyC,MAAA,CAAG2C,OAAQ,CAAAI,KAAA,EAAA,CAAA,CAAA;AACxD,OAAA;AACO,MAAA,OAAA,CAACF,SAAW,CAAA7C,CAAAA,MAAA,CAAAgD,kBAAA,CAAGJ,KAAK,CAAA,CAAA,CAAA;KAC7B,CAAA;AAEM,IAAA,IAAAK,QAAA,GAAW,SAAXA,QAAAA,CAAYC,QAAyC,EAAA;MAClD,OAAA;QACLC,KAAO,EAAA,EAAA,CAAAnD,MAAA,CAAGoD,aAAc,CAAAF,QAAA,CAASC,SAASjE,eAAe,CAAA,CAAA;AACzDmE,QAAAA,oBACE,CAACD,aAAc,CAAAF,QAAA,CAASC,SAASjE,eAAe,CAAA,IAAK,CAACgE,QAAA,CAASG,YAAY/G,KAAM,CAAA6C,WAAA,KAAgB,UAC7F,MACA,GAAAiE,aAAA,CAAcF,SAASG,QAAQ,CAAA,CAAA;OAEvC,CAAA;KACF,CAAA;IAEM,IAAAC,WAAA,GAAc,SAAdA,WAAAA,CAAeC,OAAA,EAAqCX,KAAsB,EAAA;MAC9E,IAAIC,SAAY,GAAA,EAAA,CAAA;MAChB,IAAIU,QAAQ3B,MAAQ,EAAA;QACNiB,SAAA,GAAA,EAAA,CAAA7C,MAAA,CAAG7C,mCAAyBoG,OAAQ,CAAA3B,MAAA,CAAA,CAAA;AAClD,OAAA;AACI,MAAA,IAAA2B,OAAA,CAAQC,aAAiB,IAAAD,OAAA,CAAQT,QAAU,EAAA;QAC7CD,SAAA,GAAA,EAAA,CAAA7C,MAAA,CAAe6C,SAAa,OAAA7C,MAAA,CAAAxC,eAAA,CAAA,CAAA;AAC9B,OAAA;MACA,IAAI+F,OAAQ,CAAAR,KAAA,IAASQ,OAAQ,CAAAR,KAAA,KAAU,MAAQ,EAAA;AAC7CF,QAAAA,SAAA,GAAA7C,EAAAA,CAAAA,MAAA,CAAe6C,SAAA,OAAA7C,MAAA,CAAazC,cAAe,CAAA,EAAA,CAAAyC,MAAA,CAAGuD,OAAQ,CAAAR,KAAA,EAAA,CAAA,CAAA;AACxD,OAAA;AACO,MAAA,OAAA,CAACF,WAAWD,KAAK,CAAA,CAAA;KAC1B,CAAA;IAEM,IAAAa,WAAA,GAAc,SAAdA,WAAAA,CAAeF,OAAA,EAAqC/C,KAAkB,EAAA;MACtE,IAAAqB,UAAA,CAAW0B,OAAS,KAATA,IAAAA,IAAAA,OAAS,uBAATA,OAAS,CAAAG,KAAK,CAAG,EAAA;QACvB,OAAAH,OAAA,aAAAA,OAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,OAAA,CAASG,MAAM1F,CAAG,EAAA;AAAE0C,UAAAA,KAAK6C,OAAS;AAAA5C,UAAAA,QAAA,EAAUH,KAAAA;AAAM,SAAC,CAAA,CAAA;AAC5D,OAAA;AACA,MAAA,OAAO+C,OAAS,KAATA,IAAAA,IAAAA,OAAS,KAATA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAS,CAAAG,KAAA,CAAA;KAClB,CAAA;AAEA,IAAA,IAAMC,kBAAkB,SAAlBA,kBAAwB;MAAA,IAAAC,WAAA,EAAAC,YAAA,CAAA;AAC5B,MAAA,IAAMC,qBAAqB/G,cAAe,CAAA,OAAO,KAAKe,CAAE,CAAAD,YAAA,CAAaoD,MAAM8C,KAAK,CAAA,CAAA;AAChF,MAAA,IAAI,EAAAH,CAAAA,WAAA,GAACtH,KAAA,CAAM0H,IAAM,MAAA,IAAA,IAAAJ,WAAA,KAAA,KAAA,CAAA,IAAZA,WAAA,CAAYK,MAAA,CAAA,IAAUH,kBAAoB,EAAA;AAAA,QAAA,IAAAI,cAAA,CAAA;AAE3C,QAAA,OAAAC,WAAA,CAAA,IAAA,EAAA;AAAA,UAAA,OAAA,EAAW7G,cAAA,CAAe8G,QAAAA;;uCACX9H,KAAM,CAAA+H,OAAA,MAAAH,IAAAA,IAAAA,cAAA,KAANA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,cAAA,CAAeD,MAAAA;;mBACd3G,cAAe,CAAAyG,KAAAA;AAAA,SAAA,EAAA,CAAQD;AAI3C,OAAA;MACI,IAAAD,CAAAA,YAAA,GAAAvH,KAAA,CAAM0H,mCAANH,KAAAA,CAAAA,IAAAA,YAAA,CAAYI,MAAQ,EAAA;AAAA,QAAA,IAAAK,YAAA,CAAA;AACtB,QAAA,OAAA,CAAAA,YAAA,GAAOhI,KAAM,CAAA0H,IAAA,cAAAM,YAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAANA,YAAA,CAAYC,GAAI,CAAA,UAACC,SAASC,QAAa,EAAA;UAAA,IAAAC,YAAA,EAAAC,eAAA,CAAA;AACtC,UAAA,IAAAC,kBAAA,GAAqBC,iBAAA,CACzB3C,GAAI,CAAAsC,OAAA,EAASlI,KAAM,CAAAwI,MAAA,IAAU,IAAI,CAAA,EACjCL,QAAA,EACA,EAAAC,YAAA,GAAApI,KAAA,CAAM0H,qDAANU,YAAA,CAAYT,MAAU,KAAA,CAAA,EACtB3H,KAAM,CAAAyI,SAAA,EACNpG,sBAAuB,CAAAsC,KAAA,EACvBxD,oBACF,CAAA;YAPQuH,KAAO,GAAAJ,kBAAA,CAAPI,KAAO;YAAAC,OAAA,GAAAL,kBAAA,CAAAK,OAAA,CAAA;AASf,UAAA,IAAMC,aAAgB,GAAAC,mBAAA,CACpB7I,KAAM,CAAA8I,YAAA,EACN;AAAElF,YAAAA,KAAKsE,OAAS;YAAAM,MAAA,EAAQxI,MAAMwI,MAAQ;AAAA3E,YAAAA,QAAA,EAAUsE,QAAU;AAAAY,YAAAA,IAAA,EAAM,MAAA;AAAO,WAAA,EACvE/I,MAAMwI,MAAU,IAAA,IAClB,CAAA,CAAA;AAEA,UAAA,IAAMQ,YACJ,GAAAC,mBAAA,CAAoBjJ,KAAM,CAAAkJ,aAAA,EAAe;AAAEtF,YAAAA,GAAA,EAAKsE,OAAS;AAAArE,YAAAA,QAAA,EAAUsE,QAAU;AAAAY,YAAAA,IAAA,EAAM,MAAA;WAAQ,KAAK,EAAC,CAAA;AAEnG,UAAA,OAAAlB,WAAA,CAAA,IAAA,EAAAsB,UAAA,CAEQH,YACJ,EAAA;AAAA,YAAA,KAAA,EAAKb;qBACEO,KAAA;AAAA,YAAA,OAAA,EACA,CAACC,OAAS,EAAAC,aAAa,CAC9B;YAAA,SAAS,EAAA,SAAAQ,OAACC,CAAAA,MAAW,EAAA;AACJ1F,cAAAA,cAAA,CAAAuE,OAAA,EAASC,UAAUkB,MAAM,CAAA,CAAA;AAC1C,aAAA;kCAECrJ,KAAM,CAAA+H,OAAA,cAAAM,eAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAANA,eAAA,CAAeJ,GAAI,CAAA,UAAC5B,SAASiD,QAAa,EAAA;AACzC,YAAA,IAAMC,QAAW,GAAAC,oBAAA,CACfnD,OAAA,EACAiD,QAAA,EACAjH,sBAAuB,CAAAsC,KAAA,EACvBvD,oBACF,CAAA,CAAA;AAEMwH,YAAAA,IAAAA,cAAAA,GAAgBa,gBAAiB,CAAApD,OAAA,CAAQE,SAAW,EAAA;AACxDnC,cAAAA,GAAK,EAAAiC,OAAA;AACLhC,cAAAA,QAAU,EAAAiF,QAAA;AACV1F,cAAAA,GAAK,EAAAsE,OAAA;AACLrE,cAAAA,QAAU,EAAAsE,QAAA;AACVY,cAAAA,IAAM,EAAA,IAAA;AACR,aAAC,CAAA,CAAA;AAED,YAAA,OAAAlB,WAAA,CAAA,IAAA,EAAA;AAAA,cAAA,KAAA,EAESyB;qBACEC,EAAAA,QAAA,CAASb;qBACTtC,EAAAA,WAAA,CAAYC,OAAS,EAAA,CAACkD,SAASZ,OAASC,EAAAA,cAAa,CAAC,CAC7D;cAAA,SAAS,EAAA,SAAAQ,OAACC,CAAAA,MAAW,EAAA;gBACnBlF,eAAA,CAAgB+D,OAAS,EAAA7B,OAAA,EAAS8B,QAAU,EAAAmB,QAAA,EAAUD,MAAM,CAAA,CAAA;AAC9D,eAAA;;uBAEYhD,OAAQ,CAAAG,QAAA,IAAY/C,gBAAgBkB,KAAAA;AAC7C,aAAA,EAAA,CAAAO,UAAA,CACC;AAAEtB,cAAAA,KAAKsE,OAAS;AAAA9D,cAAAA,GAAA,EAAKiC;AAASxC,cAAAA,QAAU,EAAAsE,QAAA;AAAU9D,cAAAA,UAAUiF,QAAAA;AAAS,aAAA,EACrEtJ,KAAM,CAAAoF,gBACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAIR,WAAC;AAGP,SAAC,CAAA,CAAA;AACH,OAAA;KACF,CAAA;IAEAhF,OAAA,CAAQsJ,MAAO,CAAA;AACbhH,MAAAA,YAAA,EAAAA,YAAAA;AACF,KAAC,CAAA,CAAA;AAED,IAAA,OAAO,YAAM;MAAA,IAAAiH,eAAA,EAAAC,eAAA,CAAA;AACX,MAAA,IAAMC,gBAAgBpJ,cAAe,CAAA,SAAA,EAAW;AAAEqJ,QAAAA,WAAA,EAAarI,qBAAAA;AAAsB,OAAC,CAAA,CAAA;AAEtF,MAAA,OAAAoG,WAAA,CAAA,KAAA,EAAA;AAAA,QAAA,KAAA,EACYxH;eAAiBoE,EAAAA,uBAAA,CAAwBE;eAAa,EAAA,oBAAA;AAAA,OAAA,EAAA,CAAAkD,WAAA,CAAA,KAAA,EAAA;AAAA,QAAA,KAAA,EAEvDvF;eACEtB,EAAAA,cAAA,CAAe+I;eACf9H,EAAAA,kBAAA,CAAmB0C;kBAChBoB,EAAAA,oBAAAA;AAAA,OAAA,EAAA,CAAA8B,WAAA,CAAA,OAAA,EAAA;AAAA,QAAA,KAAA,EAEErH,WAAA;QAAA,OAAoByE,EAAAA,eAAgB,CAAAN,KAAA;AAAA,QAAA,OAAA,EAAczC,kBAAmB,CAAAyC,KAAAA;AAAA,OAAA,EAAA,CAAAkD,WAAA,CAAA8B,UAAAA,EAAAA,IAAAA,EAAAA,CAAAA,CAAAA,eAAA,GAE5E3J,KAAA,CAAM+H,OAAS,MAAA,IAAA,IAAA4B,eAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAfA,eAAA,CAAe1B,GAAA,CAAI,UAACrB,QAAa,EAAA;AACzB,QAAA,OAAAiB,WAAA,CAAA,KAAA,EAAA;UAAA,KAAUjB,EAAAA,QAAA,CAAStB;iBAAeqB,EAAAA,QAAA,CAASC,QAAQ,CAAA;AAAG,SAAA,EAAA,IAAA,CAAA,CAAA;AAC/D,OAAC,EAEF5G,CAAAA,EAAAA,MAAMgK,UACL,IAAAnC,WAAA,CAAA,OAAA,EAAA;AAAA,QAAA,KAAA,EAAYtH;iBAAiBuC,YAAA,CAAa6B,KAAAA;AACxC,OAAA,EAAA,CAAAkD,WAAA,CAAA+B,IAAAA,EAAAA,IAAAA,EAAAA,CAAAA,CAAAA,eAAA,GACG5J,KAAM,CAAA+H,OAAA,MAAA6B,IAAAA,IAAAA,eAAA,KAANA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,eAAA,CAAe3B,GAAI,CAAA,UAAChB,SAASgD,QAAa,EAAA;AACzC,QAAA,IAAMC,QAAW,GAAAV,oBAAA,CACfvC,OAAA,EACAgD,QAAA,EACA5H,sBAAuB,CAAAsC,KAAA,EACvBvD,oBACF,CAAA,CAAA;AACA,QAAA,OAAAyG,WAAA,CAAA,IAAA,EAAA;AAAA,UAAA,KAAA,EAESoC,QAAA;AAAA,UAAA,OAAA,EACEjD,WAAA,CAAYC,OAAS,EAAAiD,QAAA,CAASvB,OAAO,CAAA;UAAA,OACrCuB,EAAAA,QAAA,CAASxB;yBACHzB,OAAA,CAAQ3B,MAAAA;AAErB,SAAA,EAAA,CAAAuC,WAAA,CAAA,KAAA,EAAA;UAAA,OAAK,EAAA,CAAQZ,OAAQ,CAAAC,aAAA,IAAiBD,QAAQT,QAAa,KAAA/C,eAAA,CAAgBkB,KAAAA;AACxE,SAAA,EAAA,CAAAwC,WAAA,CAAYF,OAAS,EAAAgD,QAAQ,CAChC,CAAA,CAAA,CAAA,CAAA,CAAA;OAGL,CAAA,CArBJ,CAAA,CAAA,CAAA,EAAApC,WAAA,CAAA,OAAA,EAAA;AAAA,QAAA,OAAA,EAyBWtE,aAAaoB,KAAAA;AAAQ,OAAA,EAAA,CAAA0C,eAAA,GAEpCwC,CAAAA,CAAAA,CAAAA,EAAAA;iBAA6B/D,cAAe,CAAAnB,KAAAA;AAAA,OAAA,EAAA,CAAQkF,cAAlC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;KAI3B,CAAA;AACF,GAAA;AACF,CAAC,CAAA;;;;"}