{"version":3,"file":"table-v2.mjs","sources":["../../../../../../packages/components/table-v2/src/table-v2.tsx"],"sourcesContent":["// @ts-nocheck\nimport { defineComponent, provide, unref } from 'vue'\nimport { useNamespace } from '@bigin/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 { TableGridRowSlotParams } from './table-grid'\nimport type { ScrollStrategy } from './composables/use-scrollbar'\nimport type {\n  TableV2HeaderRendererParams,\n  TableV2HeaderRowCellRendererParams,\n  TableV2RowCellRenderParam,\n} from './components'\n\nconst COMPONENT_NAME = 'BTableV2'\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      hoveringRowKey,\n      mainTableRef,\n      leftTableRef,\n      rightTableRef,\n      isDynamic,\n      isResetting,\n      isScrolling,\n\n      bodyWidth,\n      emptyStyle,\n      rootStyle,\n      headerWidth,\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      hoveringRowKey,\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(headerWidth),\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        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      const rightColumnsWidthWithScrollbar = rightColumnsWidth + vScrollbarSize\n\n      const rightTableProps = {\n        cache,\n        class: ns.e('right'),\n        columns: unref(fixedColumnsOnRight),\n        data: _data,\n        estimatedRowHeight,\n        rightTableRef,\n        rowHeight,\n        bodyWidth: rightColumnsWidthWithScrollbar,\n        headerWidth: rightColumnsWidthWithScrollbar,\n        headerHeight,\n        height: _fixedTableHeight,\n        rowKey,\n        scrollbarAlwaysOn,\n        scrollbarStartGap: 2,\n        scrollbarEndGap: vScrollbarSize,\n        width: rightColumnsWidthWithScrollbar,\n        style: `--${unref(\n          ns.namespace\n        )}-table-scrollbar-size: ${vScrollbarSize}px`,\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        hoveringRowKey: unref(hoveringRowKey),\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]}\n                  >\n                    {slots.cell}\n                  </Cell>\n                ) : (\n                  <Cell\n                    {...props}\n                    {...tableCellProps}\n                    style={_columnsStyles[props.column.key]}\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]}\n                  >\n                    {slots['header-cell']}\n                  </HeaderCell>\n                ) : (\n                  <HeaderCell\n                    {...props}\n                    {...tableHeaderCellProps}\n                    style={_columnsStyles[props.column.key]}\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\n          class={rootKls}\n          style={unref(rootStyle)}\n          data-test-name={'table-v2'}\n        >\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":["_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","hoveringRowKey","mainTableRef","leftTableRef","rightTableRef","isDynamic","isResetting","isScrolling","bodyWidth","emptyStyle","rootStyle","headerWidth","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","height","scrollbarStartGap","scrollbarEndGap","leftColumnsWidth","_fixedTableHeight","leftTableProps","rightColumnsWidth","rightColumnsWidthWithScrollbar","rightTableProps","style","namespace","_columnsStyles","tableRowProps","tableCellProps","tableHeaderProps","tableHeaderCellProps","tableSlots","row","cell","_createVNode","Cell","_mergeProps","column","key","header","HeaderCell","rootKls","b","is","footerProps","RightTable","footer","default","Empty","empty","overlay"],"mappings":"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"}