{"version":3,"file":"table-pro2.mjs","sources":["../../../../../../../packages/components/table-pro/src/table-pro.tsx"],"sourcesContent":["import { computed, defineComponent, nextTick, ref, toRaw, toRefs, unref, watch } from 'vue'\nimport { mitt } from '@tav-ui/utils/mitt'\nimport { useHideTooltips } from '@tav-ui/hooks/web/useTooltip'\nimport { useGlobalConfig } from '@tav-ui/hooks/global/useGlobalConfig'\n// import TaCollapseTransition from '@tav-ui/components/transition'\nimport { onUnmountedOrOnDeactivated } from '@tav-ui/hooks/core/onUnmountedOrOnDeactivated'\nimport { onMountedOrActivated } from '@tav-ui/hooks/core/onMountedOrActivated'\nimport ComponentCustomAction from './components/custom-action'\nimport ComponentEmpty from './components/empty'\nimport ComponentFilterForm from './components/filter-form'\nimport {\n  ACTION_COLUMNS,\n  CamelCaseToCls,\n  ComponentName,\n  ComponentOperationsName,\n  buildTableId,\n} from './const'\nimport { useCellHover } from './hooks/useCellHover'\nimport { useColumnApi } from './hooks/useColumnApi'\nimport { useColumns } from './hooks/useColums'\nimport { useDataSource } from './hooks/useDataSource'\nimport { useExtendInstance } from './hooks/useExtendInstance'\nimport { useFixHeight, useHeight } from './hooks/useHeight'\nimport { useListeners } from './hooks/useListeners'\nimport { useLoading } from './hooks/useLoading'\nimport { useProps } from './hooks/useProps'\nimport { createTableContext } from './hooks/useTableContext'\nimport { useWatchDom } from './hooks/useWatchDom'\nimport { setupVxeTable } from './setup'\nimport { tableProEmits, tableProProps } from './types'\nimport { useCanvasCalcContent } from './hooks/useColumnAutoWidth'\nimport { useCheckboxCache } from './hooks/useCheckboxCache'\nimport type { ComputedRef } from 'vue'\nimport type { TableProColumn, TableProEvent, TableProInstance, TableProProps } from './types'\nimport type { CustomActionRef } from './typings'\n\nconst _VXETable = setupVxeTable()\nconst { Grid } = _VXETable\nexport const VXETable = _VXETable\nconst ComponentPrefixCls = CamelCaseToCls(ComponentName)\nconst ComponentOperationsPrefixCls = CamelCaseToCls(ComponentOperationsName)\n\nexport default defineComponent({\n  name: ComponentName,\n  props: tableProProps,\n  emits: tableProEmits,\n  setup(props, { slots, attrs, expose, emit }) {\n    const tableId = buildTableId()\n    const tableColumns = ref<TableProProps['columns']>(props.columns)\n    // 获取实例\n    const tableRef = ref<TableProInstance | null>(null)\n    const filterRef = ref<ComputedRef | null>(null)\n    const wrapperRef = ref<HTMLElement | null>(null)\n    const operationRef = ref<HTMLDivElement | null>(null)\n    const customActionRef = ref<CustomActionRef | null>(null)\n    const cacheActionWidths = ref<Record<string, any>>({})\n    // const columnsForAction = ref<TableProColumn[]>([])\n    const maxWidthForAction = ref<number>(0)\n    const currentPage = ref<number>(1)\n\n    // 注册 tablepro emitter\n    const tableEmitter = mitt()\n\n    // 数据返回的时机当作表格内部渲染完毕的时机\n    const isTableProRendered = computed(() => {\n      return (\n        JSON.stringify(unref(tableRef)?.getTableData().visibleData) &&\n        JSON.stringify(unref(tableRef)?.getTableData().visibleData) !== '[]'\n      )\n    })\n\n    // 表格 props\n    const _getProps = computed(() => {\n      // return { ...props, id: props.id ?? buildTableId() } as TableProProps\n      return { ...props } as TableProProps\n    })\n\n    // 根据 default 生成默认属性并与传入的 props 合并\n    const getProps = useProps(tableProProps, _getProps, tableRef, emit, tableEmitter)\n\n    watch(\n      () => props.columns,\n      async (curcolumns, precolumns) => {\n        if (JSON.stringify(curcolumns) !== JSON.stringify(precolumns)) {\n          tableColumns.value = curcolumns\n          await nextTick()\n          maxWidthForAction.value = 0\n          await handleNotPersistentColumnActionWidth()\n        }\n      },\n      {\n        deep: true,\n      }\n    )\n\n    // 翻页选择\n    const {\n      checkboxCaches,\n      isCheckboxCacheEnabled,\n      checkboxCacheList,\n      createCheckboxCache,\n      createAllCheckboxCache,\n      deleteCheckboxCache,\n      deleteAllCheckboxCache,\n    } = useCheckboxCache(tableRef, getProps, currentPage, tableEmitter)\n\n    // 扩展 columns\n    const getColumns = computed(() => {\n      // const columns: TableProColumn[] = useColumns(getProps, tableRef, emit)\n      const columns: TableProColumn[] = useColumns(\n        tableColumns.value,\n        unref(getProps).checkboxConfig,\n        unref(getProps).radioConfig,\n        tableRef,\n        emit,\n        isCheckboxCacheEnabled,\n        createCheckboxCache,\n        createAllCheckboxCache,\n        deleteCheckboxCache,\n        deleteAllCheckboxCache\n      )\n      return { columns }\n    })\n\n    // 列持久化处理\n    // const columnApiOptions = useColumnApi(getProps, useGlobalConfig(), tableEmitter)\n    const columnApiOptions = useColumnApi(\n      unref(getProps).id ?? tableId,\n      unref(getProps).customActionConfig.column,\n      useGlobalConfig(),\n      tableEmitter\n    )\n\n    // columnApiOptions?.useCachedColumnCoverCurrentColumns(getColumns, customActionRef as any)\n    watch(\n      () => unref(isTableProRendered),\n      (isRendered) => {\n        if (isRendered) {\n          columnApiOptions?.useCachedColumnCoverCurrentColumns(getColumns, customActionRef as any)\n        }\n      }\n    )\n\n    // 透传 attr\n    const getAttrs = computed(() => {\n      return { ...attrs } as any\n    })\n\n    // 透传 listener\n    const getListeners = useListeners(emit)\n\n    // extend props&apis\n    const { loading, setLoading } = useLoading(getProps)\n    // const { loading, setLoading } = useLoading(unref(getProps).loading)\n\n    // 手动处理单元格 tooltip\n    const { onCellMouseenter, onCellMouseleave, instances } = useCellHover(getProps, emit)\n    // const { onCellMouseenter, onCellMouseleave, instances } = useCellHover(\n    //   unref(getProps).id ?? tableId,\n    //   unref(getProps).showTooltip,\n    //   emit\n    // )\n\n    // 监听全局鼠标滚动取消cell tooltip\n    useHideTooltips(instances)\n\n    // merge v-bind value\n    const getBindValues = computed<TableProProps & TableProEvent>(() => ({\n      ...unref(getProps),\n      ...unref(getColumns),\n      ...unref(getAttrs),\n      ...unref(getListeners),\n      onCellMouseenter,\n      onCellMouseleave,\n      loading: unref(loading),\n    }))\n\n    // 数据处理\n    useDataSource(getProps, tableRef)\n    // useDataSource(\n    //   unref(getProps).api,\n    //   unref(getProps).immediate,\n    //   unref(getProps).pagerConfig,\n    //   tableRef\n    // )\n\n    // 执行dom监听的处理\n    useWatchDom(tableRef, operationRef, customActionRef, tableEmitter)\n\n    const { calcContent, clearCalcContentCanvas } = useCanvasCalcContent()\n    // 统计 action 渲染数据，动态设置宽度\n    const setCacheActionWidths = ({ key = '', value = 0 }) => {\n      if (key) {\n        cacheActionWidths.value[key] = value\n      }\n    }\n    async function handleNotPersistentColumnActionWidth() {\n      const tableData = unref(tableRef)?.getTableData().tableData\n      const maxWidth = Math.max(...Object.values(unref(cacheActionWidths)))\n      if (tableData && isFinite(maxWidth) && maxWidth !== unref(maxWidthForAction)) {\n        const currentColumns = toRaw(tableColumns.value ?? []).map((d) => toRaw(d))\n        const isSomeColumnSetWidth = currentColumns!.some((column) => !!column.width)\n        let actionPrevColumnHandled = false\n        for (let i = currentColumns!.length - 1; i >= 0; i--) {\n          const _column = currentColumns![i]\n          if (_column.field) {\n            if (ACTION_COLUMNS.includes(_column.field)) {\n              _column.width = Math.ceil(maxWidth)\n              _column.minWidth = Math.ceil(maxWidth)\n            } else if (\n              _column.visible &&\n              !_column.fixed &&\n              !actionPrevColumnHandled &&\n              !isSomeColumnSetWidth\n            ) {\n              if (_column.width) {\n                _column.minWidth = _column.width\n              }\n              //@ts-ignore\n              _column.width = undefined\n              //@ts-ignore\n              _column.maxWidth = undefined\n              actionPrevColumnHandled = true\n            }\n          }\n        }\n\n        maxWidthForAction.value = maxWidth\n        tableColumns.value = currentColumns\n        await unref(tableRef)?.recalculate(true)\n      }\n    }\n    if (columnApiOptions && unref(getBindValues).customActionConfig.column) {\n      // 开启了列持久化\n      tableEmitter.on('table-pro:column-covered', async () => {\n        await handleNotPersistentColumnActionWidth()\n      })\n\n      // 开启了列持久化但是无持久化数据\n      tableEmitter.on('table-pro:column-covered-no-data', async () => {\n        await handleNotPersistentColumnActionWidth()\n      })\n    }\n    watch(\n      () => JSON.stringify(cacheActionWidths.value),\n      async () => {\n        await handleNotPersistentColumnActionWidth()\n      }\n    )\n\n    // 表格高度，height设置百分比会跳动，设置auto后需要手动把剩余空间的高度计算后赋值\n    const { getHeight, setHeight } = useHeight(wrapperRef, operationRef)\n    useFixHeight(tableRef, wrapperRef, setHeight, tableEmitter, getProps)\n\n    // 注入数据\n    createTableContext({\n      tableRef,\n      tableEmitter,\n      tablePropsRef: getBindValues,\n      columnApiOptions,\n      setCacheActionWidths,\n      calcContent,\n      checkboxCaches,\n      isCheckboxCacheEnabled,\n      checkboxCacheList,\n      createAllCheckboxCache,\n      deleteCheckboxCache,\n      deleteAllCheckboxCache,\n    })\n\n    // 抛出实例\n    expose({\n      ...toRefs(\n        useExtendInstance(\n          tableRef,\n          getProps,\n          {\n            setLoading,\n            resetFilterInput: () => filterRef.value.resetFilterInput(),\n            resizeTableHeight: setHeight,\n            showExportModal: () => {\n              customActionRef.value?.showExportModal()\n            },\n            showColumnsModa: () => {\n              customActionRef.value?.showColumnsModa()\n            },\n            clearCellTooltip,\n          },\n          filterRef,\n          isCheckboxCacheEnabled,\n          checkboxCacheList,\n          deleteCheckboxCache,\n          deleteAllCheckboxCache,\n          currentPage\n        )\n      ),\n    })\n\n    // 类名处理\n    const getWrapperClass = computed(() => {\n      const values = unref(getBindValues)\n      return [\n        // ComponentPrefixCls,\n        attrs.class,\n        `${ComponentPrefixCls}-wrapper`,\n        {\n          [`${ComponentPrefixCls}--fill-inner`]: values.fillInner,\n        },\n      ]\n    })\n\n    // 统计面板\n    const statisticalShow = ref(false)\n    const triggerStatistical = () => {\n      statisticalShow.value = !statisticalShow.value\n      setTimeout(() => {\n        setHeight()\n      }, 0)\n    }\n\n    // components\n    function createOperation() {\n      const values = unref(getBindValues)\n      const isFilterFormHasContent =\n        values.filterFormConfig.inputForm || values.filterFormConfig.pannelForm\n      const isCustomActionHasContent =\n        values.customActionConfig.add ||\n        values.customActionConfig.delete ||\n        values.customActionConfig.export ||\n        values.customActionConfig.import ||\n        values.customActionConfig.refresh ||\n        slots.customAction\n      return values.showOperations && (isFilterFormHasContent || isCustomActionHasContent) ? (\n        <div class={ComponentOperationsPrefixCls} ref={operationRef}>\n          <ComponentFilterForm\n            ref={filterRef}\n            config={values.filterFormConfig}\n            filterExclusion={props.filterExclusion}\n            tableRef={tableRef}\n            tableSlots={slots}\n            filterModalClassName={values.filterModalClassName}\n          />\n          <ComponentCustomAction\n            ref={customActionRef}\n            config={values.customActionConfig}\n            tableRef={tableRef}\n            tableSlots={slots}\n            onTriggerStatistical={triggerStatistical}\n          />\n          {/* <TaCollapseTransition> */}\n          <div v-show={statisticalShow.value} class={`${ComponentOperationsPrefixCls}-statistical`}>\n            {slots?.statisticalList?.()}\n          </div>\n          {/* </TaCollapseTransition> */}\n        </div>\n      ) : null\n    }\n\n    function elementResizeObserverHandler() {\n      let elementResizeObserver: ResizeObserver | null = null\n      let calcNum = 0\n\n      function createElementResizeObserver() {\n        const el = unref(tableRef)?.$el\n        const parentEl = el.parentElement\n        if (el && parentEl) {\n          // TODO: pref record contentBoxSize\n          elementResizeObserver = new window.ResizeObserver((entries) => {\n            for (const entry of entries) {\n              if (entry.contentBoxSize) {\n                const contentBoxSize = Array.isArray(entry.contentBoxSize)\n                  ? entry.contentBoxSize[0]\n                  : entry.contentBoxSize\n\n                // console.log('start', el, parentEl.parentElement.id ?? tableId, contentBoxSize)\n                if (\n                  contentBoxSize.inlineSize > 0 &&\n                  contentBoxSize.blockSize > 0 &&\n                  unref(tableRef)?.recalculate &&\n                  calcNum <= 3\n                ) {\n                  // console.log('end', el, parentEl.parentElement.id ?? tableId, contentBoxSize)\n                  requestAnimationFrame(() => {\n                    unref(tableRef)\n                      ?.recalculate(true)\n                      .then(() => {\n                        calcNum++\n                      })\n                  })\n                }\n                // 不论是否有 keepalive 使用 ResizeObserver 监听时，只要 div 隐藏掉此时宽高均为0\n                if (contentBoxSize.inlineSize === 0 && contentBoxSize.blockSize === 0) {\n                  calcNum = 0\n                }\n              }\n            }\n          })\n          elementResizeObserver.observe(el)\n          elementResizeObserver.observe(parentEl)\n        }\n      }\n\n      function clearElementResizeObserver() {\n        elementResizeObserver?.disconnect()\n      }\n\n      return {\n        createElementResizeObserver,\n        clearElementResizeObserver,\n      }\n    }\n\n    const { createElementResizeObserver, clearElementResizeObserver } =\n      elementResizeObserverHandler()\n\n    watch(\n      () => getHeight.value,\n      async (curheight, preheight) => {\n        if (curheight && curheight !== preheight) {\n          await nextTick()\n          unref(tableRef)?.recalculate?.(true)\n        }\n      }\n    )\n\n    onMountedOrActivated(() => {\n      createElementResizeObserver()\n      handleNotPersistentColumnActionWidth()\n    })\n\n    function clearCellTooltip() {\n      // 鼠标不移出单元格直接单击跳转时要移出正在显示的提示\n      onCellMouseleave()\n      instances.clear()\n    }\n\n    function clearColumnAutoWidth() {\n      // columnsForAction.value = []\n      cacheActionWidths.value = {}\n      maxWidthForAction.value = 0\n      clearCalcContentCanvas()\n    }\n\n    onUnmountedOrOnDeactivated(async () => {\n      clearCellTooltip()\n      clearColumnAutoWidth()\n      clearElementResizeObserver()\n      await deleteAllCheckboxCache({\n        deleteByPage: false,\n      })\n    })\n\n    return () => {\n      return (\n        <div\n          class={unref(getWrapperClass)}\n          ref={wrapperRef}\n          id={unref(getBindValues).id ?? tableId}\n        >\n          {createOperation()}\n          <div\n            class={`${ComponentPrefixCls}`}\n            style={{ height: unref(getHeight), overflow: 'hidden' }}\n          >\n            <Grid\n              ref={tableRef}\n              {...unref(getBindValues)}\n              onPageChange={(...args) => {\n                unref(getBindValues).onPageChange?.(...args)\n                currentPage.value = args[0].currentPage ?? currentPage.value\n                clearCellTooltip()\n                // clearColumnAutoWidth()\n\n                if (unref(getBindValues).scrollTopActions.includes('paginate')) {\n                  nextTick(() => {\n                    unref(tableRef)?.scrollTo?.(0, 0)\n                  })\n                }\n              }}\n              onSortChange={() => {\n                // unref(getBindValues).onSortChange?.(...args)\n                clearCellTooltip()\n                // clearColumnAutoWidth()\n              }}\n            >\n              {{\n                empty: () => <ComponentEmpty />,\n                ...slots,\n              }}\n            </Grid>\n          </div>\n        </div>\n      )\n    }\n  },\n})\n"],"names":["useCheckboxCache","_VXETable","Grid","ComponentPrefixCls","name","ComponentName","props","tableProProps","emits","tableProEmits","attrs","expose","emit","tableId","buildTableId","tableColumns","ref","columns","tableRef","filterRef","wrapperRef","operationRef","customActionRef","maxWidthForAction","isTableProRendered","JSON","stringify","unref","visibleData","computed","getProps","deep","isCheckboxCacheEnabled","createAllCheckboxCache","deleteAllCheckboxCache","columnApiOptions","useCachedColumnCoverCurrentColumns","useListeners","setLoading","onCellMouseenter","onCellMouseleave","instances","useHideTooltips","getBindValues","getAttrs","getListeners","loading","useDataSource","clearCalcContentCanvas","useCanvasCalcContent","setCacheActionWidths","key","value","cacheActionWidths","tableData","toRaw","currentColumns","actionPrevColumnHandled","field","ACTION_COLUMNS","_column","width","minWidth","undefined","tableEmitter","on","setHeight","useFixHeight","createTableContext","_createVNode","tablePropsRef","toRefs","resetFilterInput","resizeTableHeight","showExportModal","showColumnsModa","clearCellTooltip","checkboxCacheList","deleteCheckboxCache","triggerStatistical","statisticalShow","setTimeout","isFilterFormHasContent","isCustomActionHasContent","values","filterModalClassName","slots","elementResizeObserver","window","entry","contentBoxSize","requestAnimationFrame","recalculate","inlineSize","calcNum","createElementResizeObserver","clearElementResizeObserver"],"mappings":"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"}