UNPKG

tdesign-mobile-vue

Version:
1 lines 19.5 kB
{"version":3,"file":"base-table.mjs","sources":["../../src/table/base-table.tsx"],"sourcesContent":["import { defineComponent, computed, h, ref } from 'vue';\nimport get from 'lodash/get';\nimport isFunction from 'lodash/isFunction';\nimport isString from 'lodash/isString';\nimport baseTableProps from './base-table-props';\nimport config from '../config';\nimport useClassName from './hooks/useClassName';\nimport useStyle, { formatCSSUnit } from './hooks/useStyle';\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';\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 tableContentRef = ref();\n const theadRef = ref();\n const tableElmRef = ref();\n const renderTNodeJSX = useTNodeJSX();\n const { classPrefix, tableLayoutClasses, tableHeaderClasses, tableBaseClass, tdAlignClasses, tdEllipsisClass } =\n useClassName();\n const { globalConfig } = useConfig('table');\n const defaultLoadingContent = h(TLoading, { ...(props.loadingProps as TdLoadingProps) });\n // 表格基础样式类\n const { tableClasses, tableContentStyles, tableElementStyles } = useStyle(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(() => [tableClasses.value]);\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 const onInnerVirtualScroll = (e: Event) => {\n props.onScroll?.({ params: e });\n };\n\n const tdClassName = (td_item: BaseTableCol<TableRowData>) => {\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;\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>) => {\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;\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') || 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 <tr\n key={tr_index}\n onClick={($event) => {\n handleRowClick(tr_item, tr_index, $event);\n }}\n >\n {props.columns?.map((td_item, td_index) => (\n <td\n key={td_index}\n class={tdClassName(td_item)}\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 </tr>\n ));\n }\n };\n\n return () => {\n const renderLoading = renderTNodeJSX('loading', { defaultNode: defaultLoadingContent });\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) => <col key={col_item.colKey} style={colStyle(col_item)} />)}\n </colgroup>\n {props.showHeader && (\n <thead ref={theadRef} class={theadClasses.value}>\n <tr>\n {props.columns?.map((item_th, index_th) => (\n <th key={index_th} class={thClassName(item_th)}>\n <div class={(item_th.ellipsisTitle || item_th.ellipsis) && ellipsisClasses.value}>\n {renderTitle(item_th, index_th)}\n </div>\n </th>\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","tableContentRef","theadRef","tableElmRef","renderTNodeJSX","useTNodeJSX","_useClassName","useClassName","classPrefix","tableLayoutClasses","tableHeaderClasses","tableBaseClass","tdAlignClasses","tdEllipsisClass","_useConfig","useConfig","globalConfig","defaultLoadingContent","h","TLoading","_objectSpread","loadingProps","_useStyle","useStyle","tableClasses","tableContentStyles","tableElementStyles","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","value","tableElmClasses","renderCell","params","cellEmptyContent","_context$slots","colKey","isFunction","cell","slots","isString","r","get","includes","loadingClasses","onInnerVirtualScroll","_props$onScroll","onScroll","tdClassName","td_item","className","ellipsis","align","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$columns2","onClick","$event","td_index","_props$columns3","_props$columns4","renderLoading","defaultNode","content","showHeader","index_th"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,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,kBAAkBD,GAAI,EAAA,CAAA;AAC5B,IAAA,IAAME,WAAWF,GAAI,EAAA,CAAA;AACrB,IAAA,IAAMG,cAAcH,GAAI,EAAA,CAAA;AACxB,IAAA,IAAMI,iBAAiBC,WAAY,EAAA,CAAA;AAC7B,IAAA,IAAAC,aAAA,GACJC,YAAa,EAAA;MADPC,4BAAAA;MAAaC,kBAAoB,GAAAH,aAAA,CAApBG,kBAAoB;MAAAC,kBAAA,GAAAJ,aAAA,CAAAI,kBAAA;MAAoBC,+BAAAA;MAAgBC,cAAgB,GAAAN,aAAA,CAAhBM,cAAgB;MAAAC,eAAA,GAAAP,aAAA,CAAAO,eAAA,CAAA;AAE7F,IAAA,IAAAC,UAAA,GAAyBC,SAAA,CAAU,OAAO,CAAA;MAAlCC,YAAA,GAAAF,UAAA,CAAAE,YAAA,CAAA;AACR,IAAA,IAAMC,wBAAwBC,CAAE,CAAAC,OAAA,EAAAC,aAAA,CAAA,EAAA,EAAgB1B,KAAA,CAAM2B,aAAiC,CAAA,CAAA;AAEvF,IAAA,IAAAC,SAAA,GAAiEC,SAAS7B,KAAK,CAAA;MAAvE8B,YAAc,GAAAF,SAAA,CAAdE,YAAc;MAAAC,kBAAA,GAAAH,SAAA,CAAAG,kBAAA;MAAoBC,kBAAmB,GAAAJ,SAAA,CAAnBI,kBAAmB,CAAA;IAE7D,IAAMC,eAAkB,GAAAjC,KAAA,CAAMkC,WAAgB,KAAA,OAAA,GAAU,MAAS,GAAA,KAAA,CAAA,CAAA;IAE3D,IAAAC,YAAA,GAAeC,SAAS,YAAA;AAAA,MAAA,OAAM,CAClCpB,kBAAmB,CAAAqB,MAAA,EAAAC,eAAA,CAAAA,eAAA,CAEhBtB,EAAAA,EAAAA,kBAAmB,CAAAuB,KAAA,EAAQC,QAAQxC,KAAM,CAAAyC,SAAA,IAAazC,MAAM0C,MAAM,CAAA,CAAA,EAClEzB,cAAe,CAAA0B,QAAA,EAAW3C,KAAM,CAAA2C,QAAA,CAEpC,CAAA,CAAA;KAAA,CAAA,CAAA;IAED,IAAMC,eAAeR,QAAS,CAAA,YAAA;AAAA,MAAA,OAAM,CAACnB,cAAA,CAAe4B,IAAI,CAAC,CAAA;KAAA,CAAA,CAAA;IAEnD,IAAAC,eAAA,GAAkBV,SAAS,YAAA;MAAA,OAAM,CAAA,EAAA,CAAAW,MAAA,CAAIjC,WAA+B,0BAAAiC,MAAA,CAAGjC,aAA4B,gBAAA,CAAA,CAAA,CAAA;KAAA,CAAA,CAAA;IAEzG,IAAMkC,cAAiB,GAAA,SAAjBA,cAAiBA,CAACC,GAAmB,EAAAC,QAAA,EAAkBC,CAAkB,EAAA;AAAA,MAAA,IAAAC,iBAAA,CAAA;AAC7E,MAAA,CAAAA,iBAAA,GAAApD,KAAA,CAAMqD,wDAAND,iBAAA,CAAAE,IAAA,CAAAtD,KAAA,EAAmB;AAAEiD,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,GAAA3D,KAAA,CAAM6D,0DAANF,kBAAA,CAAAL,IAAA,CAAAtD,KAAA,EAAoB;AAAEiD,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;IAEA,IAAMW,0BAA0B1B,QAAS,CAAA,YAAA;AAAA,MAAA,OAAM,CAACN,YAAA,CAAaiC,KAAK,CAAC,CAAA;KAAA,CAAA,CAAA;IAE7D,IAAAC,eAAA,GAAkB5B,QAAS,CAAA,YAAA;MAAA,OAAM,CAAC,CAACrB,mBAAmBf,KAAM,CAAAkC,WAAA,IAAe,OAAQ,CAAA,CAAC,CAAC,CAAA;KAAA,CAAA,CAAA;IAErF,IAAA+B,UAAA,GAAa,SAAbA,UAAAA,CACJC,MAAA,EACAC,gBACG,EAAA;AAAA,MAAA,IAAAC,cAAA,CAAA;AACH,MAAA,IAAQX,GAAA,GAAuBS,MAAA,CAAvBT,GAAA;QAAKR,GAAK,GAAaiB,MAAA,CAAlBjB,GAAK;QAAAC,QAAA,GAAagB,MAAA,CAAbhB,QAAA,CAAA;AAEd,MAAA,IAAAO,GAAA,CAAIY,WAAW,eAAiB,EAAA;QAClC,OAAOnB,QAAW,GAAA,CAAA,CAAA;AACpB,OAAA;AAEI,MAAA,IAAAoB,YAAA,CAAWb,GAAI,CAAAc,IAAI,CAAG,EAAA;AACjB,QAAA,OAAAd,GAAA,CAAIc,IAAK,CAAA/C,CAAA,EAAG0C,MAAM,CAAA,CAAA;AAC3B,OAAA;MACI,IAAA9D,OAAA,CAAQoE,KAAM,CAAAf,GAAA,CAAIY,MAAS,CAAA,EAAA;QAC7B,OAAOjE,OAAQ,CAAAoE,KAAA,CAAMf,GAAI,CAAAY,MAAA,CAAA,CAAQH,MAAM,CAAA,CAAA;AACzC,OAAA;MAEA,IAAIO,WAAShB,GAAI,CAAAc,IAAI,uBAAKnE,OAAQ,CAAAoE,KAAA,MAAA,IAAA,IAAAJ,cAAA,KAARA,KAAAA,CAAAA,IAAAA,cAAA,CAAgBX,IAAIc,IAAO,CAAA,EAAA;QACnD,OAAOnE,OAAQ,CAAAoE,KAAA,CAAMf,GAAI,CAAAc,IAAA,CAAA,CAAML,MAAM,CAAA,CAAA;AACvC,OAAA;MACA,IAAMQ,CAAI,GAAAC,KAAA,CAAI1B,GAAK,EAAAQ,GAAA,CAAIY,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,aAAWH,gBAAgB,CAAA,GAAIA,gBAAiB,CAAA3C,CAAA,EAAG0C,MAAM,CAAI,GAAAC,gBAAA,CAAA;AACtE,OAAA;AACA,MAAA,IAAI/D,QAAQoE,KAAM,CAAAL,gBAAA,EAAyB,OAAA/D,OAAA,CAAQoE,KAAM,CAAAL,gBAAA,CAAiBD,MAAM,CAAA,CAAA;AAChF,MAAA,IAAI9D,QAAQoE,KAAM,CAAA,oBAAA,CAAA,EAA8B,OAAApE,OAAA,CAAQoE,KAAM,CAAA,oBAAA,CAAA,CAAsBN,MAAM,CAAA,CAAA;AACnF,MAAA,OAAAQ,CAAA,CAAA;KACT,CAAA;IAEA,IAAMG,iBAAiBzC,QAAS,CAAA,YAAA;AAAA,MAAA,OAAM,CAAAW,EAAAA,CAAAA,MAAA,CAAIjC,aAAmC,uBAAA,CAAA,CAAA,CAAA;KAAA,CAAA,CAAA;AACvE,IAAA,IAAAgE,oBAAA,GAAuB,SAAvBA,oBAAAA,CAAwB3B,CAAa,EAAA;AAAA,MAAA,IAAA4B,eAAA,CAAA;AACzC,MAAA,CAAAA,eAAA,GAAA/E,KAAA,CAAMgF,QAAW,MAAA,IAAA,IAAAD,eAAA,KAAA,KAAA,CAAA,IAAjBA,eAAA,CAAAzB,IAAA,CAAAtD,KAAA,EAAiB;AAAEkE,QAAAA,MAAQ,EAAAf,CAAAA;AAAE,OAAC,CAAA,CAAA;KAChC,CAAA;AAEM,IAAA,IAAA8B,WAAA,GAAc,SAAdA,WAAAA,CAAeC,OAAwC,EAAA;MAC3D,IAAIC,SAAY,GAAA,EAAA,CAAA;MAChB,IAAID,QAAQE,QAAU,EAAA;AACRD,QAAAA,SAAA,GAAAhE,eAAA,CAAA;AACd,OAAA;MACA,IAAI+D,OAAQ,CAAAG,KAAA,IAASH,OAAQ,CAAAG,KAAA,KAAU,MAAQ,EAAA;AAC7CF,QAAAA,SAAA,GAAApC,EAAAA,CAAAA,MAAA,CAAeoC,SAAA,OAAApC,MAAA,CAAa7B,cAAe,CAAA,EAAA,CAAA6B,MAAA,CAAGmC,OAAQ,CAAAG,KAAA,EAAA,CAAA,CAAA;AACxD,OAAA;AACO,MAAA,OAAAF,SAAA,CAAA;KACT,CAAA;AAEM,IAAA,IAAAG,QAAA,GAAW,SAAXA,QAAAA,CAAYC,QAAyC,EAAA;MAClD,OAAA;QACLC,KAAO,EAAA,EAAA,CAAAzC,MAAA,CAAG0C,aAAc,CAAAF,QAAA,CAASC,SAASvD,eAAe,CAAA,CAAA;AACzDyD,QAAAA,oBACE,CAACD,aAAc,CAAAF,QAAA,CAASC,SAASvD,eAAe,CAAA,IAAK,CAACsD,QAAA,CAASG,YAAY1F,KAAM,CAAAkC,WAAA,KAAgB,UAC7F,MACA,GAAAuD,aAAA,CAAcF,SAASG,QAAQ,CAAA,CAAA;OAEvC,CAAA;KACF,CAAA;AAEM,IAAA,IAAAC,WAAA,GAAc,SAAdA,WAAAA,CAAeC,OAAwC,EAAA;MAC3D,IAAIT,SAAY,GAAA,EAAA,CAAA;MAChB,IAAIS,QAAQvB,MAAQ,EAAA;QACNc,SAAA,GAAA,EAAA,CAAApC,MAAA,CAAGjC,mCAAyB8E,OAAQ,CAAAvB,MAAA,CAAA,CAAA;AAClD,OAAA;AACI,MAAA,IAAAuB,OAAA,CAAQC,aAAiB,IAAAD,OAAA,CAAQR,QAAU,EAAA;QAC7CD,SAAA,GAAA,EAAA,CAAApC,MAAA,CAAeoC,SAAa,OAAApC,MAAA,CAAA5B,eAAA,CAAA,CAAA;AAC9B,OAAA;MACA,IAAIyE,OAAQ,CAAAP,KAAA,IAASO,OAAQ,CAAAP,KAAA,KAAU,MAAQ,EAAA;AAC7CF,QAAAA,SAAA,GAAApC,EAAAA,CAAAA,MAAA,CAAeoC,SAAA,OAAApC,MAAA,CAAa7B,cAAe,CAAA,EAAA,CAAA6B,MAAA,CAAG6C,OAAQ,CAAAP,KAAA,EAAA,CAAA,CAAA;AACxD,OAAA;AACO,MAAA,OAAAF,SAAA,CAAA;KACT,CAAA;IAEM,IAAAW,WAAA,GAAc,SAAdA,WAAAA,CAAeF,OAAA,EAAqCrC,KAAkB,EAAA;MACtE,IAAAe,YAAA,CAAWsB,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,MAAMvE,CAAG,EAAA;AAAEiC,UAAAA,KAAKmC,OAAS;AAAAlC,UAAAA,QAAA,EAAUH,KAAAA;AAAM,SAAC,CAAA,CAAA;AAC5D,OAAA;AACA,MAAA,OAAOqC,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;MAC5B,IAAMC,kBAAqB,GAAAzF,cAAA,CAAe,OAAO,CAAA,IAAKY,aAAayC,KAAM,CAAAqC,KAAA,CAAA;AACzE,MAAA,IAAI,EAAAH,CAAAA,WAAA,GAACjG,KAAA,CAAMqG,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,EAAWvF,cAAA,CAAewF,QAAAA;;uCACXzG,KAAM,CAAA0G,OAAA,MAAAH,IAAAA,IAAAA,cAAA,KAANA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,cAAA,CAAeD,MAAAA;;mBACdrF,cAAe,CAAAmF,KAAAA;AAAA,SAAA,EAAA,CAAQD;AAI3C,OAAA;MACI,IAAAD,CAAAA,YAAA,GAAAlG,KAAA,CAAMqG,mCAANH,KAAAA,CAAAA,IAAAA,YAAA,CAAYI,MAAQ,EAAA;AAAA,QAAA,IAAAK,YAAA,CAAA;AACtB,QAAA,OAAA,CAAAA,YAAA,GAAO3G,KAAM,CAAAqG,IAAA,MAAAM,IAAAA,IAAAA,YAAA,KAANA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAA,CAAYC,GAAI,CAAA,UAACC,OAAS,EAAAC,QAAA,EAAA;AAAA,UAAA,IAAAC,eAAA,CAAA;AAAA,UAAA,OAAAP,WAAA,CAAA,IAAA,EAAA;AAAA,YAAA,KAAA,EAExBM,QAAA;YAAA,SACI,EAAA,SAAAE,OAACC,CAAAA,MAAW,EAAA;AACJjE,cAAAA,cAAA,CAAA6D,OAAA,EAASC,UAAUG,MAAM,CAAA,CAAA;AAC1C,aAAA;iCAECjH,KAAM,CAAA0G,OAAA,MAAAK,IAAAA,IAAAA,eAAA,KAANA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,eAAA,CAAeH,GAAI,CAAA,UAAC1B,SAASgC,QAC5B,EAAA;AAAA,YAAA,OAAAV,WAAA,CAAA,IAAA,EAAA;AAAA,cAAA,KAAA,EACOU;qBACEjC,EAAAA,WAAA,CAAYC,OAAO,CAC1B;cAAA,SAAS,EAAA,SAAA8B,OAACC,CAAAA,MAAW,EAAA;gBACnBzD,eAAA,CAAgBqD,OAAS,EAAA3B,OAAA,EAAS4B,QAAU,EAAAI,QAAA,EAAUD,MAAM,CAAA,CAAA;AAC9D,eAAA;;uBAEY/B,OAAQ,CAAAE,QAAA,IAAYtC,gBAAgBiB,KAAAA;AAC7C,aAAA,EAAA,CAAAE,UAAA,CACC;AAAEhB,cAAAA,KAAK4D,OAAS;AAAApD,cAAAA,GAAA,EAAKyB;AAAShC,cAAAA,QAAU,EAAA4D,QAAA;AAAUpD,cAAAA,UAAUwD,QAAAA;AAAS,aAAA,EACrElH,KAAM,CAAAmE,gBACR;WAGL,CAAA,CAAA,CAAA,CAAA;AAAA,SAEJ,CAAA,CAAA;AACH,OAAA;KACF,CAAA;AAEA,IAAA,OAAO,YAAM;MAAA,IAAAgD,eAAA,EAAAC,eAAA,CAAA;AACX,MAAA,IAAMC,gBAAgB3G,cAAe,CAAA,SAAA,EAAW;AAAE4G,QAAAA,WAAA,EAAa/F,qBAAAA;AAAsB,OAAC,CAAA,CAAA;AACtF,MAAA,OAAAiF,WAAA,CAAA,KAAA,EAAA;AAAA,QAAA,KAAA,EACYnG;eAAiByD,EAAAA,uBAAA,CAAwBC;eAAa,EAAA,oBAAA;AAAA,OAAA,EAAA,CAAAyC,WAAA,CAAA,KAAA,EAAA;AAAA,QAAA,KAAA,EAEvDjG;eACEU,EAAAA,cAAA,CAAesG;eACfxF,EAAAA,kBAAA,CAAmBgC;kBAChBe,EAAAA,oBAAAA;AAAA,OAAA,EAAA,CAAA0B,WAAA,CAAA,OAAA,EAAA;AAAA,QAAA,KAAA,EAEE/F,WAAA;QAAA,OAAoBuD,EAAAA,eAAgB,CAAAD,KAAA;AAAA,QAAA,OAAA,EAAc/B,kBAAmB,CAAA+B,KAAAA;AAAA,OAAA,EAAA,CAAAyC,WAAA,CAAA,UAAA,EAAA,IAAA,EAAA,CAAA,CAAAW,eAAA,GAE5EnH,KAAA,CAAM0G,2DAANS,eAAA,CAAeP,GAAI,CAAA,UAACrB;;eAAuBA,EAAAA,QAAA,CAASlB;iBAAeiB,EAAAA,QAAA,CAASC,QAAQ,CAAA;AAAG,SAAA,EAAA,IAAA,CAAA,CAAA;AAAA,OAAE,EAE3FvF,CAAAA,EAAAA,KAAA,CAAMwH;eACOhH,QAAU;AAAA,QAAA,OAAA,EAAO2B,aAAa4B,KAAAA;AACxC,OAAA,EAAA,CAAAyC,WAAA,CAAAY,IAAAA,EAAAA,IAAAA,EAAAA,CAAAA,CAAAA,eAAA,GACGpH,KAAM,CAAA0G,OAAA,MAAA,IAAA,IAAAU,eAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAANA,eAAA,CAAeR,IAAI,UAAChB,OAAA,EAAS6B;;iBACnBA,QAAU;UAAA,OAAO9B,EAAAA,YAAYC,OAAO,CAAA;AAAA,SAAA,EAAA,CAAAY,WAAA,CAAA,KAAA,EAAA;UAAA,OACtC,EAAA,CAAQZ,QAAQC,aAAiB,IAAAD,OAAA,CAAQR,aAAatC,eAAgB,CAAAiB,KAAAA;AAAA,SAAA,EAAA,CACxE+B,YAAYF,OAAS,EAAA6B,QAAQ;OAGnC,CAAA,CARJ,CAAA,CAAA,CAAA,EAAAjB,WAAA,CAAA,OAAA,EAAA;AAAA,QAAA,OAAA,EAYW5D,aAAamB,KAAAA;AAAQ,OAAA,EAAA,CAAAiC,eAAA,GAEpCqB,CAAAA,CAAAA,CAAAA,EAAAA;iBAA6BxC,cAAe,CAAAd,KAAAA;AAAA,OAAA,EAAA,CAAQsD,cAAlC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;KAI3B,CAAA;AACF,GAAA;AACF,CAAC,CAAA;;;;"}