{"version":3,"file":"table-v2.mjs","sources":["../../../../../../../packages/components/table-v2/src/table-v2.tsx"],"sourcesContent":["import { defineComponent, provide, unref } from 'vue'\nimport { useNamespace } from '@hd-front-end/hooks'\nimport { useTable } from './use-table'\nimport { TableV2InjectionKey } from './tokens'\nimport { tableV2Props } from './table'\n// renderers\nimport MainTable from './renderers/main-table'\nimport LeftTable from './renderers/left-table'\nimport RightTable from './renderers/right-table'\nimport Row from './renderers/row'\nimport Cell from './renderers/cell'\nimport Header from './renderers/header'\nimport HeaderCell from './renderers/header-cell'\nimport Footer from './renderers/footer'\nimport Empty from './renderers/empty'\nimport Overlay from './renderers/overlay'\n\nimport type { CSSProperties } from 'vue'\nimport type { TableGridRowSlotParams } from './table-grid'\nimport type { ScrollStrategy } from './composables/use-scrollbar'\nimport type {\n  TableV2HeaderRendererParams,\n  TableV2HeaderRowCellRendererParams,\n  TableV2RowCellRenderParam,\n} from './components'\nimport type { KeyType } from './types'\n\nconst COMPONENT_NAME = 'ElTableV2'\n\nconst TableV2 = defineComponent({\n  name: COMPONENT_NAME,\n  props: tableV2Props,\n  setup(props, { slots, expose }) {\n    const ns = useNamespace('table-v2')\n\n    const {\n      columnsStyles,\n      fixedColumnsOnLeft,\n      fixedColumnsOnRight,\n      mainColumns,\n      mainTableHeight,\n      fixedTableHeight,\n      leftTableWidth,\n      rightTableWidth,\n      data,\n      depthMap,\n      expandedRowKeys,\n      hasFixedColumns,\n      mainTableRef,\n      leftTableRef,\n      rightTableRef,\n      isDynamic,\n      isResetting,\n      isScrolling,\n\n      bodyWidth,\n      emptyStyle,\n      rootStyle,\n      footerHeight,\n\n      showEmpty,\n\n      // exposes\n      scrollTo,\n      scrollToLeft,\n      scrollToTop,\n      scrollToRow,\n\n      getRowHeight,\n      onColumnSorted,\n      onRowHeightChange,\n      onRowHovered,\n      onRowExpanded,\n      onRowsRendered,\n      onScroll,\n      onVerticalScroll,\n    } = useTable(props)\n\n    expose({\n      /**\n       * @description scroll to a given position\n       * @params params {{ scrollLeft?: number, scrollTop?: number }} where to scroll to.\n       */\n      scrollTo,\n      /**\n       * @description scroll to a given position horizontally\n       * @params scrollLeft {Number} where to scroll to.\n       */\n      scrollToLeft,\n      /**\n       * @description scroll to a given position vertically\n       * @params scrollTop { Number } where to scroll to.\n       */\n      scrollToTop,\n      /**\n       * @description scroll to a given row\n       * @params row {Number} which row to scroll to\n       * @params @optional strategy {ScrollStrategy} use what strategy to scroll to\n       */\n      scrollToRow,\n    })\n\n    provide(TableV2InjectionKey, {\n      ns,\n      isResetting,\n      isScrolling,\n    })\n\n    return () => {\n      const {\n        cache,\n        cellProps,\n        estimatedRowHeight,\n        expandColumnKey,\n        fixedData,\n        headerHeight,\n        headerClass,\n        headerProps,\n        headerCellProps,\n        sortBy,\n        sortState,\n        rowHeight,\n        rowClass,\n        rowEventHandlers,\n        rowKey,\n        rowProps,\n        scrollbarAlwaysOn,\n        indentSize,\n        iconSize,\n        useIsScrolling,\n        vScrollbarSize,\n        width,\n      } = props\n\n      const _data = unref(data)\n\n      const mainTableProps = {\n        cache,\n        class: ns.e('main'),\n        columns: unref(mainColumns),\n        data: _data,\n        fixedData,\n        estimatedRowHeight,\n        bodyWidth: unref(bodyWidth),\n        headerHeight,\n        headerWidth: unref(bodyWidth),\n        height: unref(mainTableHeight),\n        mainTableRef,\n        rowKey,\n        rowHeight,\n        scrollbarAlwaysOn,\n        scrollbarStartGap: 2,\n        scrollbarEndGap: vScrollbarSize,\n        useIsScrolling,\n        width,\n        getRowHeight,\n        onRowsRendered,\n        onScroll,\n      }\n\n      const leftColumnsWidth = unref(leftTableWidth)\n      const _fixedTableHeight = unref(fixedTableHeight)\n\n      const leftTableProps = {\n        cache,\n        class: ns.e('left'),\n        columns: unref(fixedColumnsOnLeft),\n        data: _data,\n        fixedData,\n        estimatedRowHeight,\n        leftTableRef,\n        rowHeight,\n        bodyWidth: leftColumnsWidth,\n        headerWidth: leftColumnsWidth,\n        headerHeight,\n        height: _fixedTableHeight,\n        rowKey,\n        scrollbarAlwaysOn,\n        scrollbarStartGap: 2,\n        scrollbarEndGap: vScrollbarSize,\n        useIsScrolling,\n        width: leftColumnsWidth,\n        getRowHeight,\n        onScroll: onVerticalScroll,\n      }\n\n      const rightColumnsWidth = unref(rightTableWidth)\n\n      const rightTableProps = {\n        cache,\n        class: ns.e('right'),\n        columns: unref(fixedColumnsOnRight),\n        data: _data,\n        fixedData,\n        estimatedRowHeight,\n        rightTableRef,\n        rowHeight,\n        bodyWidth: rightColumnsWidth,\n        headerWidth: rightColumnsWidth,\n        headerHeight,\n        height: _fixedTableHeight,\n        rowKey,\n        scrollbarAlwaysOn,\n        scrollbarStartGap: 2,\n        scrollbarEndGap: vScrollbarSize,\n        width: rightColumnsWidth,\n        style: `${ns.cssVarName(\n          'table-scrollbar-size'\n        )}: ${vScrollbarSize}px` as unknown as CSSProperties,\n        useIsScrolling,\n        getRowHeight,\n        onScroll: onVerticalScroll,\n      }\n      const _columnsStyles = unref(columnsStyles)\n\n      const tableRowProps = {\n        ns,\n        depthMap: unref(depthMap),\n        columnsStyles: _columnsStyles,\n        expandColumnKey,\n        expandedRowKeys: unref(expandedRowKeys),\n        estimatedRowHeight,\n        hasFixedColumns: unref(hasFixedColumns),\n        rowProps,\n        rowClass,\n        rowKey,\n        rowEventHandlers,\n        onRowHovered,\n        onRowExpanded,\n        onRowHeightChange,\n      }\n\n      const tableCellProps = {\n        cellProps,\n        expandColumnKey,\n        indentSize,\n        iconSize,\n        rowKey,\n        expandedRowKeys: unref(expandedRowKeys),\n        ns,\n      }\n\n      const tableHeaderProps = {\n        ns,\n        headerClass,\n        headerProps,\n        columnsStyles: _columnsStyles,\n      }\n\n      const tableHeaderCellProps = {\n        ns,\n\n        sortBy,\n        sortState,\n        headerCellProps,\n        onColumnSorted,\n      }\n\n      const tableSlots = {\n        row: (props: TableGridRowSlotParams) => (\n          <Row {...props} {...tableRowProps}>\n            {{\n              row: slots.row,\n              cell: (props: TableV2RowCellRenderParam) =>\n                slots.cell ? (\n                  <Cell\n                    {...props}\n                    {...tableCellProps}\n                    style={_columnsStyles[props.column.key as KeyType]}\n                  >\n                    {slots.cell(props)}\n                  </Cell>\n                ) : (\n                  <Cell\n                    {...props}\n                    {...tableCellProps}\n                    style={_columnsStyles[props.column.key as KeyType]}\n                  />\n                ),\n            }}\n          </Row>\n        ),\n        header: (props: TableV2HeaderRendererParams) => (\n          <Header {...props} {...tableHeaderProps}>\n            {{\n              header: slots.header,\n              cell: (props: TableV2HeaderRowCellRendererParams) =>\n                slots['header-cell'] ? (\n                  <HeaderCell\n                    {...props}\n                    {...tableHeaderCellProps}\n                    style={_columnsStyles[props.column.key as KeyType]}\n                  >\n                    {slots['header-cell'](props)}\n                  </HeaderCell>\n                ) : (\n                  <HeaderCell\n                    {...props}\n                    {...tableHeaderCellProps}\n                    style={_columnsStyles[props.column.key as KeyType]}\n                  />\n                ),\n            }}\n          </Header>\n        ),\n      }\n\n      const rootKls = [\n        props.class,\n        ns.b(),\n        ns.e('root'),\n        {\n          [ns.is('dynamic')]: unref(isDynamic),\n        },\n      ]\n\n      const footerProps = {\n        class: ns.e('footer'),\n        style: unref(footerHeight),\n      }\n\n      return (\n        <div class={rootKls} style={unref(rootStyle)}>\n          <MainTable {...mainTableProps}>{tableSlots}</MainTable>\n          <LeftTable {...leftTableProps}>{tableSlots}</LeftTable>\n          <RightTable {...rightTableProps}>{tableSlots}</RightTable>\n          {slots.footer && (\n            <Footer {...footerProps}>{{ default: slots.footer }}</Footer>\n          )}\n          {unref(showEmpty) && (\n            <Empty class={ns.e('empty')} style={unref(emptyStyle)}>\n              {{ default: slots.empty }}\n            </Empty>\n          )}\n          {slots.overlay && (\n            <Overlay class={ns.e('overlay')}>\n              {{ default: slots.overlay }}\n            </Overlay>\n          )}\n        </div>\n      )\n    }\n  },\n})\n\nexport default TableV2\n\nexport type TableV2Instance = InstanceType<typeof TableV2> & {\n  /**\n   * @description scroll to a given position\n   * @params params {{ scrollLeft?: number, scrollTop?: number }} where to scroll to.\n   */\n  scrollTo: (param: { scrollLeft?: number; scrollTop?: number }) => void\n  /**\n   * @description scroll to a given position horizontally\n   * @params scrollLeft {Number} where to scroll to.\n   */\n  scrollToLeft: (scrollLeft: number) => void\n  /**\n   * @description scroll to a given position vertically\n   * @params scrollTop { Number } where to scroll to.\n   */\n  scrollToTop: (scrollTop: number) => void\n  /**\n   * @description scroll to a given row\n   * @params row {Number} which row to scroll to\n   * @params strategy {ScrollStrategy} use what strategy to scroll to\n   */\n  scrollToRow(row: number, strategy?: ScrollStrategy): void\n}\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","COMPONENT_NAME","TableV2","defineComponent","name","props","tableV2Props","setup","slots","expose","ns","useNamespace","columnsStyles","fixedColumnsOnLeft","fixedColumnsOnRight","mainColumns","mainTableHeight","fixedTableHeight","leftTableWidth","rightTableWidth","data","depthMap","expandedRowKeys","hasFixedColumns","mainTableRef","leftTableRef","rightTableRef","isDynamic","isResetting","isScrolling","bodyWidth","emptyStyle","rootStyle","footerHeight","showEmpty","scrollTo","scrollToLeft","scrollToTop","scrollToRow","getRowHeight","onColumnSorted","onRowHeightChange","onRowHovered","onRowExpanded","onRowsRendered","onScroll","onVerticalScroll","useTable","provide","TableV2InjectionKey","cache","cellProps","estimatedRowHeight","expandColumnKey","fixedData","headerHeight","headerClass","headerProps","headerCellProps","sortBy","sortState","rowHeight","rowClass","rowEventHandlers","rowKey","rowProps","scrollbarAlwaysOn","indentSize","iconSize","useIsScrolling","vScrollbarSize","width","_data","unref","mainTableProps","class","e","columns","headerWidth","height","scrollbarStartGap","scrollbarEndGap","leftColumnsWidth","_fixedTableHeight","leftTableProps","rightColumnsWidth","rightTableProps","style","cssVarName","_columnsStyles","tableRowProps","tableCellProps","tableHeaderProps","tableHeaderCellProps","tableSlots","row","_createVNode","Row","_mergeProps","cell","_slot","Cell","column","key","default","header","Header","_slot2","HeaderCell","rootKls","b","is","footerProps","MainTable","LeftTable","RightTable","footer","Footer","Empty","empty","overlay","Overlay"],"mappings":";;;;;;;;;;;;;;;;AAeyC,SAAAA,QAAAC,CAAA,EAAA;AAAA,EAAA,OAAA,OAAAA,CAAAA,KAAA,UAAAC,IAAAA,MAAAA,CAAAC,SAAAC,CAAAA,QAAAA,CAAAC,IAAAJ,CAAAA,CAAA,CAAAK,KAAAA,iBAAAA,IAAAA,CAAAA,OAAAA,CAAAL,CAAA,CAAA,CAAA;AAAA,CAAA;AAYzC,MAAMM,cAAiB,GAAA,WAAA,CAAA;AAEvB,MAAMC,UAAUC,eAAgB,CAAA;AAAA,EAC9BC,IAAMH,EAAAA,cAAAA;AAAAA,EACNI,KAAOC,EAAAA,YAAAA;AAAAA,EACPC,MAAMF,KAAO,EAAA;AAAA,IAAEG,KAAAA;AAAAA,IAAOC,MAAAA;AAAAA,GAAU,EAAA;AAC9B,IAAMC,MAAAA,EAAAA,GAAKC,aAAa,UAAU,CAAA,CAAA;AAElC,IAAM,MAAA;AAAA,MACJC,aAAAA;AAAAA,MACAC,kBAAAA;AAAAA,MACAC,mBAAAA;AAAAA,MACAC,WAAAA;AAAAA,MACAC,eAAAA;AAAAA,MACAC,gBAAAA;AAAAA,MACAC,cAAAA;AAAAA,MACAC,eAAAA;AAAAA,MACAC,IAAAA;AAAAA,MACAC,QAAAA;AAAAA,MACAC,eAAAA;AAAAA,MACAC,eAAAA;AAAAA,MACAC,YAAAA;AAAAA,MACAC,YAAAA;AAAAA,MACAC,aAAAA;AAAAA,MACAC,SAAAA;AAAAA,MACAC,WAAAA;AAAAA,MACAC,WAAAA;AAAAA,MAEAC,SAAAA;AAAAA,MACAC,UAAAA;AAAAA,MACAC,SAAAA;AAAAA,MACAC,YAAAA;AAAAA,MAEAC,SAAAA;AAAAA,MAGAC,QAAAA;AAAAA,MACAC,YAAAA;AAAAA,MACAC,WAAAA;AAAAA,MACAC,WAAAA;AAAAA,MAEAC,YAAAA;AAAAA,MACAC,cAAAA;AAAAA,MACAC,iBAAAA;AAAAA,MACAC,YAAAA;AAAAA,MACAC,aAAAA;AAAAA,MACAC,cAAAA;AAAAA,MACAC,QAAAA;AAAAA,MACAC,gBAAAA;AAAAA,KACF,GAAIC,SAAS1C,KAAK,CAAA,CAAA;AAElBI,IAAO,MAAA,CAAA;AAAA,MAKL0B,QAAAA;AAAAA,MAKAC,YAAAA;AAAAA,MAKAC,WAAAA;AAAAA,MAMAC,WAAAA;AAAAA,KACD,CAAA,CAAA;AAEDU,IAAAA,OAAAA,CAAQC,mBAAqB,EAAA;AAAA,MAC3BvC,EAAAA;AAAAA,MACAkB,WAAAA;AAAAA,MACAC,WAAAA;AAAAA,KACD,CAAA,CAAA;AAED,IAAA,OAAO,MAAM;AACX,MAAM,MAAA;AAAA,QACJqB,KAAAA;AAAAA,QACAC,SAAAA;AAAAA,QACAC,kBAAAA;AAAAA,QACAC,eAAAA;AAAAA,QACAC,SAAAA;AAAAA,QACAC,YAAAA;AAAAA,QACAC,WAAAA;AAAAA,QACAC,WAAAA;AAAAA,QACAC,eAAAA;AAAAA,QACAC,MAAAA;AAAAA,QACAC,SAAAA;AAAAA,QACAC,SAAAA;AAAAA,QACAC,QAAAA;AAAAA,QACAC,gBAAAA;AAAAA,QACAC,MAAAA;AAAAA,QACAC,QAAAA;AAAAA,QACAC,iBAAAA;AAAAA,QACAC,UAAAA;AAAAA,QACAC,QAAAA;AAAAA,QACAC,cAAAA;AAAAA,QACAC,cAAAA;AAAAA,QACAC,KAAAA;AAAAA,OACElE,GAAAA,KAAAA,CAAAA;AAEJ,MAAMmE,MAAAA,KAAAA,GAAQC,MAAMrD,IAAI,CAAA,CAAA;AAExB,MAAA,MAAMsD,cAAiB,GAAA;AAAA,QACrBxB,KAAAA;AAAAA,QACAyB,KAAAA,EAAOjE,EAAGkE,CAAAA,CAAAA,CAAE,MAAM,CAAA;AAAA,QAClBC,OAAAA,EAASJ,MAAM1D,WAAW,CAAA;AAAA,QAC1BK,IAAMoD,EAAAA,KAAAA;AAAAA,QACNlB,SAAAA;AAAAA,QACAF,kBAAAA;AAAAA,QACAtB,SAAAA,EAAW2C,MAAM3C,SAAS,CAAA;AAAA,QAC1ByB,YAAAA;AAAAA,QACAuB,WAAAA,EAAaL,MAAM3C,SAAS,CAAA;AAAA,QAC5BiD,MAAAA,EAAQN,MAAMzD,eAAe,CAAA;AAAA,QAC7BQ,YAAAA;AAAAA,QACAwC,MAAAA;AAAAA,QACAH,SAAAA;AAAAA,QACAK,iBAAAA;AAAAA,QACAc,iBAAmB,EAAA,CAAA;AAAA,QACnBC,eAAiBX,EAAAA,cAAAA;AAAAA,QACjBD,cAAAA;AAAAA,QACAE,KAAAA;AAAAA,QACAhC,YAAAA;AAAAA,QACAK,cAAAA;AAAAA,QACAC,QAAAA;AAAAA,OACF,CAAA;AAEA,MAAMqC,MAAAA,gBAAAA,GAAmBT,MAAMvD,cAAc,CAAA,CAAA;AAC7C,MAAMiE,MAAAA,iBAAAA,GAAoBV,MAAMxD,gBAAgB,CAAA,CAAA;AAEhD,MAAA,MAAMmE,cAAiB,GAAA;AAAA,QACrBlC,KAAAA;AAAAA,QACAyB,KAAAA,EAAOjE,EAAGkE,CAAAA,CAAAA,CAAE,MAAM,CAAA;AAAA,QAClBC,OAAAA,EAASJ,MAAM5D,kBAAkB,CAAA;AAAA,QACjCO,IAAMoD,EAAAA,KAAAA;AAAAA,QACNlB,SAAAA;AAAAA,QACAF,kBAAAA;AAAAA,QACA3B,YAAAA;AAAAA,QACAoC,SAAAA;AAAAA,QACA/B,SAAWoD,EAAAA,gBAAAA;AAAAA,QACXJ,WAAaI,EAAAA,gBAAAA;AAAAA,QACb3B,YAAAA;AAAAA,QACAwB,MAAQI,EAAAA,iBAAAA;AAAAA,QACRnB,MAAAA;AAAAA,QACAE,iBAAAA;AAAAA,QACAc,iBAAmB,EAAA,CAAA;AAAA,QACnBC,eAAiBX,EAAAA,cAAAA;AAAAA,QACjBD,cAAAA;AAAAA,QACAE,KAAOW,EAAAA,gBAAAA;AAAAA,QACP3C,YAAAA;AAAAA,QACAM,QAAUC,EAAAA,gBAAAA;AAAAA,OACZ,CAAA;AAEA,MAAMuC,MAAAA,iBAAAA,GAAoBZ,MAAMtD,eAAe,CAAA,CAAA;AAE/C,MAAA,MAAMmE,eAAkB,GAAA;AAAA,QACtBpC,KAAAA;AAAAA,QACAyB,KAAAA,EAAOjE,EAAGkE,CAAAA,CAAAA,CAAE,OAAO,CAAA;AAAA,QACnBC,OAAAA,EAASJ,MAAM3D,mBAAmB,CAAA;AAAA,QAClCM,IAAMoD,EAAAA,KAAAA;AAAAA,QACNlB,SAAAA;AAAAA,QACAF,kBAAAA;AAAAA,QACA1B,aAAAA;AAAAA,QACAmC,SAAAA;AAAAA,QACA/B,SAAWuD,EAAAA,iBAAAA;AAAAA,QACXP,WAAaO,EAAAA,iBAAAA;AAAAA,QACb9B,YAAAA;AAAAA,QACAwB,MAAQI,EAAAA,iBAAAA;AAAAA,QACRnB,MAAAA;AAAAA,QACAE,iBAAAA;AAAAA,QACAc,iBAAmB,EAAA,CAAA;AAAA,QACnBC,eAAiBX,EAAAA,cAAAA;AAAAA,QACjBC,KAAOc,EAAAA,iBAAAA;AAAAA,QACPE,KAAO,EAAA,CAAA,EAAG7E,EAAG8E,CAAAA,UAAAA,CACX,sBACF,CAAMlB,CAAAA,EAAAA,EAAAA,cAAAA,CAAAA,EAAAA,CAAAA;AAAAA,QACND,cAAAA;AAAAA,QACA9B,YAAAA;AAAAA,QACAM,QAAUC,EAAAA,gBAAAA;AAAAA,OACZ,CAAA;AACA,MAAM2C,MAAAA,cAAAA,GAAiBhB,MAAM7D,aAAa,CAAA,CAAA;AAE1C,MAAA,MAAM8E,aAAgB,GAAA;AAAA,QACpBhF,EAAAA;AAAAA,QACAW,QAAAA,EAAUoD,MAAMpD,QAAQ,CAAA;AAAA,QACxBT,aAAe6E,EAAAA,cAAAA;AAAAA,QACfpC,eAAAA;AAAAA,QACA/B,eAAAA,EAAiBmD,MAAMnD,eAAe,CAAA;AAAA,QACtC8B,kBAAAA;AAAAA,QACA7B,eAAAA,EAAiBkD,MAAMlD,eAAe,CAAA;AAAA,QACtC0C,QAAAA;AAAAA,QACAH,QAAAA;AAAAA,QACAE,MAAAA;AAAAA,QACAD,gBAAAA;AAAAA,QACArB,YAAAA;AAAAA,QACAC,aAAAA;AAAAA,QACAF,iBAAAA;AAAAA,OACF,CAAA;AAEA,MAAA,MAAMkD,cAAiB,GAAA;AAAA,QACrBxC,SAAAA;AAAAA,QACAE,eAAAA;AAAAA,QACAc,UAAAA;AAAAA,QACAC,QAAAA;AAAAA,QACAJ,MAAAA;AAAAA,QACA1C,eAAAA,EAAiBmD,MAAMnD,eAAe,CAAA;AAAA,QACtCZ,EAAAA;AAAAA,OACF,CAAA;AAEA,MAAA,MAAMkF,gBAAmB,GAAA;AAAA,QACvBlF,EAAAA;AAAAA,QACA8C,WAAAA;AAAAA,QACAC,WAAAA;AAAAA,QACA7C,aAAe6E,EAAAA,cAAAA;AAAAA,OACjB,CAAA;AAEA,MAAA,MAAMI,oBAAuB,GAAA;AAAA,QAC3BnF,EAAAA;AAAAA,QAEAiD,MAAAA;AAAAA,QACAC,SAAAA;AAAAA,QACAF,eAAAA;AAAAA,QACAlB,cAAAA;AAAAA,OACF,CAAA;AAEA,MAAA,MAAMsD,UAAa,GAAA;AAAA,QACjBC,GAAAA,EAAM1F,CAAAA,MAA6B2F,KAAAA,WAAAA,CAAAC,KAAAC,UACxB7F,CAAAA,MAAAA,EAAWqF,aAAa,CAAA,EAAA;AAAA,UAE7BK,KAAKvF,KAAMuF,CAAAA,GAAAA;AAAAA,UACXI,IAAAA,EAAO9F,CAAAA,MAAgC,KAAA;AAAA,YAAA+F,IAAAA,KAAAA,CAAAA;AAAA,YAAA,OACrC5F,MAAM2F,IAAIH,GAAAA,WAAAA,CAAAK,IAAAH,EAAAA,UAAAA,CAEF7F,QACAsF,cAAc,EAAA;AAAA,cAAA,OAAA,EACXF,cAAepF,CAAAA,MAAAA,CAAMiG,MAAOC,CAAAA,GAAAA,CAAAA;AAAAA,aAAe7G,GAAAA,OAAA0G,CAAAA,KAAAA,GAEjD5F,MAAM2F,IAAK9F,CAAAA,MAAK,CAAC,CAAA,GAAA+F,KAAA,GAAA;AAAA,cAAAI,OAAAA,EAAAA,MAAA,CAAAJ,KAAA,CAAA;AAAA,aAAAJ,CAAAA,GAAAA,WAAAA,CAAAK,IAAAH,EAAAA,UAAAA,CAId7F,QACAsF,cAAc,EAAA;AAAA,cAAA,OAAA,EACXF,cAAepF,CAAAA,MAAAA,CAAMiG,MAAOC,CAAAA,GAAAA,CAAAA;AAAAA,aAEtC,GAAA,IAAA,CAAA,CAAA;AAAA,WAAA;AAAA,SAGR,CAAA;AAAA,QACDE,MAAAA,EAASpG,CAAAA,MAAkC2F,KAAAA,WAAAA,CAAAU,QAAAR,UAC7B7F,CAAAA,MAAAA,EAAWuF,gBAAgB,CAAA,EAAA;AAAA,UAEnCa,QAAQjG,KAAMiG,CAAAA,MAAAA;AAAAA,UACdN,IAAAA,EAAO9F,CAAAA,MAAyC,KAAA;AAAA,YAAAsG,IAAAA,MAAAA,CAAAA;AAAA,YAAA,OAC9CnG,MAAM,aAAcwF,CAAAA,GAAAA,WAAAA,CAAAY,UAAAV,EAAAA,UAAAA,CAEZ7F,QACAwF,oBAAoB,EAAA;AAAA,cAAA,OAAA,EACjBJ,cAAepF,CAAAA,MAAAA,CAAMiG,MAAOC,CAAAA,GAAAA,CAAAA;AAAAA,aAAe,GAAA7G,OAAAiH,CAAAA,MAAAA,GAEjDnG,MAAM,aAAeH,CAAAA,CAAAA,MAAK,CAAC,CAAA,GAAAsG,MAAA,GAAA;AAAA,cAAAH,OAAAA,EAAAA,MAAA,CAAAG,MAAA,CAAA;AAAA,aAAAX,CAAAA,GAAAA,WAAAA,CAAAY,UAAAV,EAAAA,UAAAA,CAIxB7F,QACAwF,oBAAoB,EAAA;AAAA,cAAA,OAAA,EACjBJ,cAAepF,CAAAA,MAAAA,CAAMiG,MAAOC,CAAAA,GAAAA,CAAAA;AAAAA,aAEtC,GAAA,IAAA,CAAA,CAAA;AAAA,WAAA;AAAA,SAAA,CAAA;AAAA,OAIX,CAAA;AAEA,MAAMM,MAAAA,OAAAA,GAAU,CACdxG,KAAAA,CAAMsE,KACNjE,EAAAA,EAAAA,CAAGoG,GACHpG,EAAAA,EAAAA,CAAGkE,CAAE,CAAA,MAAM,CACX,EAAA;AAAA,QACE,CAAClE,EAAGqG,CAAAA,EAAAA,CAAG,SAAS,CAAA,GAAItC,MAAM9C,SAAS,CAAA;AAAA,OACpC,CAAA,CAAA;AAGH,MAAA,MAAMqF,WAAc,GAAA;AAAA,QAClBrC,KAAAA,EAAOjE,EAAGkE,CAAAA,CAAAA,CAAE,QAAQ,CAAA;AAAA,QACpBW,KAAAA,EAAOd,MAAMxC,YAAY,CAAA;AAAA,OAC3B,CAAA;AAEA,MAAA,OAAA+D,YAAA,KAAA,EAAA;AAAA,QAAA,OACca,EAAAA,OAAAA;AAAAA,QAAO,OAAA,EAASpC,MAAMzC,SAAS,CAAA;AAAA,OAAC,EAAAgE,CAAAA,WAAAiB,CAAAA,SAAAA,EAC3BvC,gBAAchF,OAAGoG,CAAAA,UAAU,IAAVA,UAAU,GAAA;AAAA,QAAAU,OAAAA,EAAAA,MAAA,CAAVV,UAAU,CAAA;AAAA,OAAAE,GAAAA,WAAAkB,CAAAA,SAAAA,EAC3B9B,gBAAc1F,OAAGoG,CAAAA,UAAU,IAAVA,UAAU,GAAA;AAAA,QAAAU,OAAAA,EAAAA,MAAA,CAAVV,UAAU,CAAA;AAAA,OAAAE,GAAAA,WAAAmB,CAAAA,UAAAA,EAC1B7B,iBAAe5F,OAAGoG,CAAAA,UAAU,IAAVA,UAAU,GAAA;AAAA,QAAAU,OAAAA,EAAAA,MAAA,CAAVV,UAAU,CAAA;AAAA,OAC3CtF,CAAAA,EAAAA,KAAAA,CAAM4G,MAAMpB,IAAAA,WAAAA,CAAAqB,QACCL,WAAW,EAAA;AAAA,QAAKR,SAAShG,KAAM4G,CAAAA,MAAAA;AAAAA,OAC5C,CACA3C,EAAAA,KAAAA,CAAMvC,SAAS,CAAA,IAAC8D,YAAAsB,KAAA,EAAA;AAAA,QAAA,OAAA,EACD5G,EAAGkE,CAAAA,CAAAA,CAAE,OAAO,CAAA;AAAA,QAAC,OAAA,EAASH,MAAM1C,UAAU,CAAA;AAAA,OAAC,EAAA;AAAA,QAChDyE,SAAShG,KAAM+G,CAAAA,KAAAA;AAAAA,OAAK,CAAA,EAG1B/G,KAAMgH,CAAAA,OAAAA,IAAOxB,YAAAyB,OAAA,EAAA;AAAA,QAAA,OAAA,EACI/G,EAAGkE,CAAAA,CAAAA,CAAE,SAAS,CAAA;AAAA,OAAC,EAAA;AAAA,QAC1B4B,SAAShG,KAAMgH,CAAAA,OAAAA;AAAAA,OAErB,CAAA,CAAA,CAAA,CAAA;AAAA,KAGP,CAAA;AAAA,GACF;AACF,CAAC,CAAA,CAAA;AAED,gBAAetH,OAAAA;;;;"}