You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 lines
31 KiB

{"ast":null,"code":"import { ref, watchEffect, watch, unref, computed, onMounted, nextTick } from 'vue';\nimport { useEventListener, useResizeObserver } from '@vueuse/core';\nimport { useFormSize } from '../../../form/src/hooks/use-form-common-props.mjs';\nfunction useStyle(props, layout, store, table) {\n const isHidden = ref(false);\n const renderExpanded = ref(null);\n const resizeProxyVisible = ref(false);\n const setDragVisible = visible => {\n resizeProxyVisible.value = visible;\n };\n const resizeState = ref({\n width: null,\n height: null,\n headerHeight: null\n });\n const isGroup = ref(false);\n const scrollbarViewStyle = {\n display: \"inline-block\",\n verticalAlign: \"middle\"\n };\n const tableWidth = ref();\n const tableScrollHeight = ref(0);\n const bodyScrollHeight = ref(0);\n const headerScrollHeight = ref(0);\n const footerScrollHeight = ref(0);\n const appendScrollHeight = ref(0);\n watchEffect(() => {\n layout.setHeight(props.height);\n });\n watchEffect(() => {\n layout.setMaxHeight(props.maxHeight);\n });\n watch(() => [props.currentRowKey, store.states.rowKey], ([currentRowKey, rowKey]) => {\n if (!unref(rowKey) || !unref(currentRowKey)) return;\n store.setCurrentRowKey(`${currentRowKey}`);\n }, {\n immediate: true\n });\n watch(() => props.data, data => {\n table.store.commit(\"setData\", data);\n }, {\n immediate: true,\n deep: true\n });\n watchEffect(() => {\n if (props.expandRowKeys) {\n store.setExpandRowKeysAdapter(props.expandRowKeys);\n }\n });\n const handleMouseLeave = () => {\n table.store.commit(\"setHoverRow\", null);\n if (table.hoverState) table.hoverState = null;\n };\n const handleHeaderFooterMousewheel = (event, data) => {\n const {\n pixelX,\n pixelY\n } = data;\n if (Math.abs(pixelX) >= Math.abs(pixelY)) {\n table.refs.bodyWrapper.scrollLeft += data.pixelX / 5;\n }\n };\n const shouldUpdateHeight = computed(() => {\n return props.height || props.maxHeight || store.states.fixedColumns.value.length > 0 || store.states.rightFixedColumns.value.length > 0;\n });\n const tableBodyStyles = computed(() => {\n return {\n width: layout.bodyWidth.value ? `${layout.bodyWidth.value}px` : \"\"\n };\n });\n const doLayout = () => {\n if (shouldUpdateHeight.value) {\n layout.updateElsHeight();\n }\n layout.updateColumnsWidth();\n requestAnimationFrame(syncPosition);\n };\n onMounted(async () => {\n await nextTick();\n store.updateColumns();\n bindEvents();\n requestAnimationFrame(doLayout);\n const el = table.vnode.el;\n const tableHeader = table.refs.headerWrapper;\n if (props.flexible && el && el.parentElement) {\n el.parentElement.style.minWidth = \"0\";\n }\n resizeState.value = {\n width: tableWidth.value = el.offsetWidth,\n height: el.offsetHeight,\n headerHeight: props.showHeader && tableHeader ? tableHeader.offsetHeight : null\n };\n store.states.columns.value.forEach(column => {\n if (column.filteredValue && column.filteredValue.length) {\n table.store.commit(\"filterChange\", {\n column,\n values: column.filteredValue,\n silent: true\n });\n }\n });\n table.$ready = true;\n });\n const setScrollClassByEl = (el, className) => {\n if (!el) return;\n const classList = Array.from(el.classList).filter(item => !item.startsWith(\"is-scrolling-\"));\n classList.push(layout.scrollX.value ? className : \"is-scrolling-none\");\n el.className = classList.join(\" \");\n };\n const setScrollClass = className => {\n const {\n tableWrapper\n } = table.refs;\n setScrollClassByEl(tableWrapper, className);\n };\n const hasScrollClass = className => {\n const {\n tableWrapper\n } = table.refs;\n return !!(tableWrapper && tableWrapper.classList.contains(className));\n };\n const syncPosition = function () {\n if (!table.refs.scrollBarRef) return;\n if (!layout.scrollX.value) {\n const scrollingNoneClass = \"is-scrolling-none\";\n if (!hasScrollClass(scrollingNoneClass)) {\n setScrollClass(scrollingNoneClass);\n }\n return;\n }\n const scrollContainer = table.refs.scrollBarRef.wrapRef;\n if (!scrollContainer) return;\n const {\n scrollLeft,\n offsetWidth,\n scrollWidth\n } = scrollContainer;\n const {\n headerWrapper,\n footerWrapper\n } = table.refs;\n if (headerWrapper) headerWrapper.scrollLeft = scrollLeft;\n if (footerWrapper) footerWrapper.scrollLeft = scrollLeft;\n const maxScrollLeftPosition = scrollWidth - offsetWidth - 1;\n if (scrollLeft >= maxScrollLeftPosition) {\n setScrollClass(\"is-scrolling-right\");\n } else if (scrollLeft === 0) {\n setScrollClass(\"is-scrolling-left\");\n } else {\n setScrollClass(\"is-scrolling-middle\");\n }\n };\n const bindEvents = () => {\n if (!table.refs.scrollBarRef) return;\n if (table.refs.scrollBarRef.wrapRef) {\n useEventListener(table.refs.scrollBarRef.wrapRef, \"scroll\", syncPosition, {\n passive: true\n });\n }\n if (props.fit) {\n useResizeObserver(table.vnode.el, resizeListener);\n } else {\n useEventListener(window, \"resize\", resizeListener);\n }\n useResizeObserver(table.refs.bodyWrapper, () => {\n var _a, _b;\n resizeListener();\n (_b = (_a = table.refs) == null ? void 0 : _a.scrollBarRef) == null ? void 0 : _b.update();\n });\n };\n const resizeListener = () => {\n var _a, _b, _c, _d;\n const el = table.vnode.el;\n if (!table.$ready || !el) return;\n let shouldUpdateLayout = false;\n const {\n width: oldWidth,\n height: oldHeight,\n headerHeight: oldHeaderHeight\n } = resizeState.value;\n const width = tableWidth.value = el.offsetWidth;\n if (oldWidth !== width) {\n shouldUpdateLayout = true;\n }\n const height = el.offsetHeight;\n if ((props.height || shouldUpdateHeight.value) && oldHeight !== height) {\n shouldUpdateLayout = true;\n }\n const tableHeader = props.tableLayout === \"fixed\" ? table.refs.headerWrapper : (_a = table.refs.tableHeaderRef) == null ? void 0 : _a.$el;\n if (props.showHeader && (tableHeader == null ? void 0 : tableHeader.offsetHeight) !== oldHeaderHeight) {\n shouldUpdateLayout = true;\n }\n tableScrollHeight.value = ((_b = table.refs.tableWrapper) == null ? void 0 : _b.scrollHeight) || 0;\n headerScrollHeight.value = (tableHeader == null ? void 0 : tableHeader.scrollHeight) || 0;\n footerScrollHeight.value = ((_c = table.refs.footerWrapper) == null ? void 0 : _c.offsetHeight) || 0;\n appendScrollHeight.value = ((_d = table.refs.appendWrapper) == null ? void 0 : _d.offsetHeight) || 0;\n bodyScrollHeight.value = tableScrollHeight.value - headerScrollHeight.value - footerScrollHeight.value - appendScrollHeight.value;\n if (shouldUpdateLayout) {\n resizeState.value = {\n width,\n height,\n headerHeight: props.showHeader && (tableHeader == null ? void 0 : tableHeader.offsetHeight) || 0\n };\n doLayout();\n }\n };\n const tableSize = useFormSize();\n const bodyWidth = computed(() => {\n const {\n bodyWidth: bodyWidth_,\n scrollY,\n gutterWidth\n } = layout;\n return bodyWidth_.value ? `${bodyWidth_.value - (scrollY.value ? gutterWidth : 0)}px` : \"\";\n });\n const tableLayout = computed(() => {\n if (props.maxHeight) return \"fixed\";\n return props.tableLayout;\n });\n const emptyBlockStyle = computed(() => {\n if (props.data && props.data.length) return null;\n let height = \"100%\";\n if (props.height && bodyScrollHeight.value) {\n height = `${bodyScrollHeight.value}px`;\n }\n const width = tableWidth.value;\n return {\n width: width ? `${width}px` : \"\",\n height\n };\n });\n const scrollbarStyle = computed(() => {\n if (props.height) {\n return {\n height: \"100%\"\n };\n }\n if (props.maxHeight) {\n if (!Number.isNaN(Number(props.maxHeight))) {\n return {\n maxHeight: `${props.maxHeight - headerScrollHeight.value - footerScrollHeight.value}px`\n };\n } else {\n return {\n maxHeight: `calc(${props.maxHeight} - ${headerScrollHeight.value + footerScrollHeight.value}px)`\n };\n }\n }\n return {};\n });\n const handleFixedMousewheel = (event, data) => {\n const bodyWrapper = table.refs.bodyWrapper;\n if (Math.abs(data.spinY) > 0) {\n const currentScrollTop = bodyWrapper.scrollTop;\n if (data.pixelY < 0 && currentScrollTop !== 0) {\n event.preventDefault();\n }\n if (data.pixelY > 0 && bodyWrapper.scrollHeight - bodyWrapper.clientHeight > currentScrollTop) {\n event.preventDefault();\n }\n bodyWrapper.scrollTop += Math.ceil(data.pixelY / 5);\n } else {\n bodyWrapper.scrollLeft += Math.ceil(data.pixelX / 5);\n }\n };\n return {\n isHidden,\n renderExpanded,\n setDragVisible,\n isGroup,\n handleMouseLeave,\n handleHeaderFooterMousewheel,\n tableSize,\n emptyBlockStyle,\n handleFixedMousewheel,\n resizeProxyVisible,\n bodyWidth,\n resizeState,\n doLayout,\n tableBodyStyles,\n tableLayout,\n scrollbarViewStyle,\n scrollbarStyle\n };\n}\nexport { useStyle as default };","map":{"version":3,"names":["useStyle","props","layout","store","table","isHidden","ref","renderExpanded","resizeProxyVisible","setDragVisible","visible","value","resizeState","width","height","headerHeight","isGroup","scrollbarViewStyle","display","verticalAlign","tableWidth","tableScrollHeight","bodyScrollHeight","headerScrollHeight","footerScrollHeight","appendScrollHeight","watchEffect","setHeight","setMaxHeight","maxHeight","watch","currentRowKey","states","rowKey","unref","setCurrentRowKey","immediate","data","commit","deep","expandRowKeys","setExpandRowKeysAdapter","handleMouseLeave","hoverState","handleHeaderFooterMousewheel","event","pixelX","pixelY","Math","abs","refs","bodyWrapper","scrollLeft","shouldUpdateHeight","computed","fixedColumns","length","rightFixedColumns","tableBodyStyles","bodyWidth","doLayout","updateElsHeight","updateColumnsWidth","requestAnimationFrame","syncPosition","onMounted","nextTick","updateColumns","bindEvents","el","vnode","tableHeader","headerWrapper","flexible","parentElement","style","minWidth","offsetWidth","offsetHeight","showHeader","columns","forEach","column","filteredValue","values","silent","$ready","setScrollClassByEl","className","classList","Array","from","filter","item","startsWith","push","scrollX","join","setScrollClass","tableWrapper","hasScrollClass","contains","scrollBarRef","scrollingNoneClass","scrollContainer","wrapRef","scrollWidth","footerWrapper","maxScrollLeftPosition","useEventListener","passive","fit","useResizeObserver","resizeListener","window","_a","_b","update","_c","_d","shouldUpdateLayout","oldWidth","oldHeight","oldHeaderHeight","tableLayout","tableHeaderRef","$el","scrollHeight","appendWrapper","tableSize","useFormSize","bodyWidth_","scrollY","gutterWidth","emptyBlockStyle","scrollbarStyle","Number","isNaN","handleFixedMousewheel","spinY","currentScrollTop","scrollTop","preventDefault","clientHeight","ceil"],"sources":["../../../../../../../packages/components/table/src/table/style-helper.ts"],"sourcesContent":["// @ts-nocheck\nimport {\n computed,\n nextTick,\n onMounted,\n ref,\n unref,\n watch,\n watchEffect,\n} from 'vue'\nimport { useEventListener, useResizeObserver } from '@vueuse/core'\nimport { useFormSize } from '@element-plus/components/form'\n\nimport type { Table, TableProps } from './defaults'\nimport type { Store } from '../store'\nimport type TableLayout from '../table-layout'\nimport type { TableColumnCtx } from '../table-column/defaults'\n\nfunction useStyle<T>(\n props: TableProps<T>,\n layout: TableLayout<T>,\n store: Store<T>,\n table: Table<T>\n) {\n const isHidden = ref(false)\n const renderExpanded = ref(null)\n const resizeProxyVisible = ref(false)\n const setDragVisible = (visible: boolean) => {\n resizeProxyVisible.value = visible\n }\n const resizeState = ref<{\n width: null | number\n height: null | number\n headerHeight: null | number\n }>({\n width: null,\n height: null,\n headerHeight: null,\n })\n const isGroup = ref(false)\n const scrollbarViewStyle = {\n display: 'inline-block',\n verticalAlign: 'middle',\n }\n const tableWidth = ref()\n const tableScrollHeight = ref(0)\n const bodyScrollHeight = ref(0)\n const headerScrollHeight = ref(0)\n const footerScrollHeight = ref(0)\n const appendScrollHeight = ref(0)\n\n watchEffect(() => {\n layout.setHeight(props.height)\n })\n watchEffect(() => {\n layout.setMaxHeight(props.maxHeight)\n })\n watch(\n () => [props.currentRowKey, store.states.rowKey],\n ([currentRowKey, rowKey]) => {\n if (!unref(rowKey) || !unref(currentRowKey)) return\n store.setCurrentRowKey(`${currentRowKey}`)\n },\n {\n immediate: true,\n }\n )\n watch(\n () => props.data,\n (data) => {\n table.store.commit('setData', data)\n },\n {\n immediate: true,\n deep: true,\n }\n )\n watchEffect(() => {\n if (props.expandRowKeys) {\n store.setExpandRowKeysAdapter(props.expandRowKeys)\n }\n })\n\n const handleMouseLeave = () => {\n table.store.commit('setHoverRow', null)\n if (table.hoverState) table.hoverState = null\n }\n\n const handleHeaderFooterMousewheel = (event, data) => {\n const { pixelX, pixelY } = data\n if (Math.abs(pixelX) >= Math.abs(pixelY)) {\n table.refs.bodyWrapper.scrollLeft += data.pixelX / 5\n }\n }\n\n const shouldUpdateHeight = computed(() => {\n return (\n props.height ||\n props.maxHeight ||\n store.states.fixedColumns.value.length > 0 ||\n store.states.rightFixedColumns.value.length > 0\n )\n })\n\n const tableBodyStyles = computed(() => {\n return {\n width: layout.bodyWidth.value ? `${layout.bodyWidth.value}px` : '',\n }\n })\n\n const doLayout = () => {\n if (shouldUpdateHeight.value) {\n layout.updateElsHeight()\n }\n layout.updateColumnsWidth()\n requestAnimationFrame(syncPosition)\n }\n onMounted(async () => {\n await nextTick()\n store.updateColumns()\n bindEvents()\n requestAnimationFrame(doLayout)\n\n const el: HTMLElement = table.vnode.el as HTMLElement\n const tableHeader: HTMLElement = table.refs.headerWrapper\n if (props.flexible && el && el.parentElement) {\n // Automatic minimum size of flex-items\n // Ensure that the main axis does not follow the width of the items\n el.parentElement.style.minWidth = '0'\n }\n\n resizeState.value = {\n width: (tableWidth.value = el.offsetWidth),\n height: el.offsetHeight,\n headerHeight:\n props.showHeader && tableHeader ? tableHeader.offsetHeight : null,\n }\n\n // init filters\n store.states.columns.value.forEach((column: TableColumnCtx<T>) => {\n if (column.filteredValue && column.filteredValue.length) {\n table.store.commit('filterChange', {\n column,\n values: column.filteredValue,\n silent: true,\n })\n }\n })\n table.$ready = true\n })\n const setScrollClassByEl = (el: HTMLElement, className: string) => {\n if (!el) return\n const classList = Array.from(el.classList).filter(\n (item) => !item.startsWith('is-scrolling-')\n )\n classList.push(layout.scrollX.value ? className : 'is-scrolling-none')\n el.className = classList.join(' ')\n }\n const setScrollClass = (className: string) => {\n const { tableWrapper } = table.refs\n setScrollClassByEl(tableWrapper, className)\n }\n const hasScrollClass = (className: string) => {\n const { tableWrapper } = table.refs\n return !!(tableWrapper && tableWrapper.classList.contains(className))\n }\n const syncPosition = function () {\n if (!table.refs.scrollBarRef) return\n if (!layout.scrollX.value) {\n const scrollingNoneClass = 'is-scrolling-none'\n if (!hasScrollClass(scrollingNoneClass)) {\n setScrollClass(scrollingNoneClass)\n }\n return\n }\n const scrollContainer = table.refs.scrollBarRef.wrapRef\n if (!scrollContainer) return\n const { scrollLeft, offsetWidth, scrollWidth } = scrollContainer\n const { headerWrapper, footerWrapper } = table.refs\n if (headerWrapper) headerWrapper.scrollLeft = scrollLeft\n if (footerWrapper) footerWrapper.scrollLeft = scrollLeft\n const maxScrollLeftPosition = scrollWidth - offsetWidth - 1\n if (scrollLeft >= maxScrollLeftPosition) {\n setScrollClass('is-scrolling-right')\n } else if (scrollLeft === 0) {\n setScrollClass('is-scrolling-left')\n } else {\n setScrollClass('is-scrolling-middle')\n }\n }\n\n const bindEvents = () => {\n if (!table.refs.scrollBarRef) return\n if (table.refs.scrollBarRef.wrapRef) {\n useEventListener(\n table.refs.scrollBarRef.wrapRef,\n 'scroll',\n syncPosition,\n {\n passive: true,\n }\n )\n }\n if (props.fit) {\n useResizeObserver(table.vnode.el as HTMLElement, resizeListener)\n } else {\n useEventListener(window, 'resize', resizeListener)\n }\n\n useResizeObserver(table.refs.bodyWrapper, () => {\n resizeListener()\n table.refs?.scrollBarRef?.update()\n })\n }\n const resizeListener = () => {\n const el = table.vnode.el\n if (!table.$ready || !el) return\n\n let shouldUpdateLayout = false\n const {\n width: oldWidth,\n height: oldHeight,\n headerHeight: oldHeaderHeight,\n } = resizeState.value\n\n const width = (tableWidth.value = el.offsetWidth)\n if (oldWidth !== width) {\n shouldUpdateLayout = true\n }\n\n const height = el.offsetHeight\n if ((props.height || shouldUpdateHeight.value) && oldHeight !== height) {\n shouldUpdateLayout = true\n }\n\n const tableHeader: HTMLElement =\n props.tableLayout === 'fixed'\n ? table.refs.headerWrapper\n : table.refs.tableHeaderRef?.$el\n if (props.showHeader && tableHeader?.offsetHeight !== oldHeaderHeight) {\n shouldUpdateLayout = true\n }\n\n tableScrollHeight.value = table.refs.tableWrapper?.scrollHeight || 0\n headerScrollHeight.value = tableHeader?.scrollHeight || 0\n footerScrollHeight.value = table.refs.footerWrapper?.offsetHeight || 0\n appendScrollHeight.value = table.refs.appendWrapper?.offsetHeight || 0\n bodyScrollHeight.value =\n tableScrollHeight.value -\n headerScrollHeight.value -\n footerScrollHeight.value -\n appendScrollHeight.value\n\n if (shouldUpdateLayout) {\n resizeState.value = {\n width,\n height,\n headerHeight: (props.showHeader && tableHeader?.offsetHeight) || 0,\n }\n doLayout()\n }\n }\n const tableSize = useFormSize()\n const bodyWidth = computed(() => {\n const { bodyWidth: bodyWidth_, scrollY, gutterWidth } = layout\n return bodyWidth_.value\n ? `${(bodyWidth_.value as number) - (scrollY.value ? gutterWidth : 0)}px`\n : ''\n })\n\n const tableLayout = computed(() => {\n if (props.maxHeight) return 'fixed'\n return props.tableLayout\n })\n\n const emptyBlockStyle = computed(() => {\n if (props.data && props.data.length) return null\n let height = '100%'\n if (props.height && bodyScrollHeight.value) {\n height = `${bodyScrollHeight.value}px`\n }\n const width = tableWidth.value\n return {\n width: width ? `${width}px` : '',\n height,\n }\n })\n\n const scrollbarStyle = computed(() => {\n if (props.height) {\n return {\n height: '100%',\n }\n }\n if (props.maxHeight) {\n if (!Number.isNaN(Number(props.maxHeight))) {\n return {\n maxHeight: `${\n props.maxHeight -\n headerScrollHeight.value -\n footerScrollHeight.value\n }px`,\n }\n } else {\n return {\n maxHeight: `calc(${props.maxHeight} - ${\n headerScrollHeight.value + footerScrollHeight.value\n }px)`,\n }\n }\n }\n\n return {}\n })\n\n /**\n * fix layout\n */\n const handleFixedMousewheel = (event, data) => {\n const bodyWrapper = table.refs.bodyWrapper\n if (Math.abs(data.spinY) > 0) {\n const currentScrollTop = bodyWrapper.scrollTop\n if (data.pixelY < 0 && currentScrollTop !== 0) {\n event.preventDefault()\n }\n if (\n data.pixelY > 0 &&\n bodyWrapper.scrollHeight - bodyWrapper.clientHeight > currentScrollTop\n ) {\n event.preventDefault()\n }\n bodyWrapper.scrollTop += Math.ceil(data.pixelY / 5)\n } else {\n bodyWrapper.scrollLeft += Math.ceil(data.pixelX / 5)\n }\n }\n\n return {\n isHidden,\n renderExpanded,\n setDragVisible,\n isGroup,\n handleMouseLeave,\n handleHeaderFooterMousewheel,\n tableSize,\n emptyBlockStyle,\n handleFixedMousewheel,\n resizeProxyVisible,\n bodyWidth,\n resizeState,\n doLayout,\n tableBodyStyles,\n tableLayout,\n scrollbarViewStyle,\n scrollbarStyle,\n }\n}\n\nexport default useStyle\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}