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
40 KiB

{"ast":null,"code":"import { createVNode, render } from 'vue';\nimport { merge, get, flatMap, isNull } from 'lodash-unified';\nimport { ElTooltip } from '../../tooltip/index.mjs';\nimport { isArray, isString, isFunction, hasOwn, isObject } from '@vue/shared';\nimport { throwError } from '../../../utils/error.mjs';\nimport { isUndefined, isNumber, isBoolean } from '../../../utils/types.mjs';\nconst getCell = function (event) {\n var _a;\n return (_a = event.target) == null ? void 0 : _a.closest(\"td\");\n};\nconst orderBy = function (array, sortKey, reverse, sortMethod, sortBy) {\n if (!sortKey && !sortMethod && (!sortBy || isArray(sortBy) && !sortBy.length)) {\n return array;\n }\n if (isString(reverse)) {\n reverse = reverse === \"descending\" ? -1 : 1;\n } else {\n reverse = reverse && reverse < 0 ? -1 : 1;\n }\n const getKey = sortMethod ? null : function (value, index) {\n if (sortBy) {\n if (!isArray(sortBy)) {\n sortBy = [sortBy];\n }\n return sortBy.map(by => {\n if (isString(by)) {\n return get(value, by);\n } else {\n return by(value, index, array);\n }\n });\n }\n if (sortKey !== \"$key\") {\n if (isObject(value) && \"$value\" in value) value = value.$value;\n }\n return [isObject(value) ? get(value, sortKey) : value];\n };\n const compare = function (a, b) {\n if (sortMethod) {\n return sortMethod(a.value, b.value);\n }\n for (let i = 0, len = a.key.length; i < len; i++) {\n if (a.key[i] < b.key[i]) {\n return -1;\n }\n if (a.key[i] > b.key[i]) {\n return 1;\n }\n }\n return 0;\n };\n return array.map((value, index) => {\n return {\n value,\n index,\n key: getKey ? getKey(value, index) : null\n };\n }).sort((a, b) => {\n let order = compare(a, b);\n if (!order) {\n order = a.index - b.index;\n }\n return order * +reverse;\n }).map(item => item.value);\n};\nconst getColumnById = function (table, columnId) {\n let column = null;\n table.columns.forEach(item => {\n if (item.id === columnId) {\n column = item;\n }\n });\n return column;\n};\nconst getColumnByKey = function (table, columnKey) {\n let column = null;\n for (let i = 0; i < table.columns.length; i++) {\n const item = table.columns[i];\n if (item.columnKey === columnKey) {\n column = item;\n break;\n }\n }\n if (!column) throwError(\"ElTable\", `No column matching with column-key: ${columnKey}`);\n return column;\n};\nconst getColumnByCell = function (table, cell, namespace) {\n const matches = (cell.className || \"\").match(new RegExp(`${namespace}-table_[^\\\\s]+`, \"gm\"));\n if (matches) {\n return getColumnById(table, matches[0]);\n }\n return null;\n};\nconst getRowIdentity = (row, rowKey) => {\n if (!row) throw new Error(\"Row is required when get row identity\");\n if (isString(rowKey)) {\n if (!rowKey.includes(\".\")) {\n return `${row[rowKey]}`;\n }\n const key = rowKey.split(\".\");\n let current = row;\n for (const element of key) {\n current = current[element];\n }\n return `${current}`;\n } else if (isFunction(rowKey)) {\n return rowKey.call(null, row);\n }\n};\nconst getKeysMap = function (array, rowKey) {\n const arrayMap = {};\n (array || []).forEach((row, index) => {\n arrayMap[getRowIdentity(row, rowKey)] = {\n row,\n index\n };\n });\n return arrayMap;\n};\nfunction mergeOptions(defaults, config) {\n const options = {};\n let key;\n for (key in defaults) {\n options[key] = defaults[key];\n }\n for (key in config) {\n if (hasOwn(config, key)) {\n const value = config[key];\n if (!isUndefined(value)) {\n options[key] = value;\n }\n }\n }\n return options;\n}\nfunction parseWidth(width) {\n if (width === \"\") return width;\n if (!isUndefined(width)) {\n width = Number.parseInt(width, 10);\n if (Number.isNaN(width)) {\n width = \"\";\n }\n }\n return width;\n}\nfunction parseMinWidth(minWidth) {\n if (minWidth === \"\") return minWidth;\n if (!isUndefined(minWidth)) {\n minWidth = parseWidth(minWidth);\n if (Number.isNaN(minWidth)) {\n minWidth = 80;\n }\n }\n return minWidth;\n}\nfunction parseHeight(height) {\n if (isNumber(height)) {\n return height;\n }\n if (isString(height)) {\n if (/^\\d+(?:px)?$/.test(height)) {\n return Number.parseInt(height, 10);\n } else {\n return height;\n }\n }\n return null;\n}\nfunction compose(...funcs) {\n if (funcs.length === 0) {\n return arg => arg;\n }\n if (funcs.length === 1) {\n return funcs[0];\n }\n return funcs.reduce((a, b) => (...args) => a(b(...args)));\n}\nfunction toggleRowStatus(statusArr, row, newVal, tableTreeProps, selectable, rowIndex) {\n let _rowIndex = rowIndex != null ? rowIndex : 0;\n let changed = false;\n const index = statusArr.indexOf(row);\n const included = index !== -1;\n const isRowSelectable = selectable == null ? void 0 : selectable.call(null, row, rowIndex);\n const toggleStatus = type => {\n if (type === \"add\") {\n statusArr.push(row);\n } else {\n statusArr.splice(index, 1);\n }\n changed = true;\n };\n const getChildrenCount = row2 => {\n let count = 0;\n const children = (tableTreeProps == null ? void 0 : tableTreeProps.children) && row2[tableTreeProps.children];\n if (children && isArray(children)) {\n count += children.length;\n children.forEach(item => {\n count += getChildrenCount(item);\n });\n }\n return count;\n };\n if (!selectable || isRowSelectable) {\n if (isBoolean(newVal)) {\n if (newVal && !included) {\n toggleStatus(\"add\");\n } else if (!newVal && included) {\n toggleStatus(\"remove\");\n }\n } else {\n included ? toggleStatus(\"remove\") : toggleStatus(\"add\");\n }\n }\n if (!(tableTreeProps == null ? void 0 : tableTreeProps.checkStrictly) && (tableTreeProps == null ? void 0 : tableTreeProps.children) && isArray(row[tableTreeProps.children])) {\n row[tableTreeProps.children].forEach(item => {\n toggleRowStatus(statusArr, item, newVal != null ? newVal : !included, tableTreeProps, selectable, _rowIndex + 1);\n _rowIndex += getChildrenCount(item) + 1;\n });\n }\n return changed;\n}\nfunction walkTreeNode(root, cb, childrenKey = \"children\", lazyKey = \"hasChildren\") {\n const isNil = array => !(isArray(array) && array.length);\n function _walker(parent, children, level) {\n cb(parent, children, level);\n children.forEach(item => {\n if (item[lazyKey]) {\n cb(item, null, level + 1);\n return;\n }\n const children2 = item[childrenKey];\n if (!isNil(children2)) {\n _walker(item, children2, level + 1);\n }\n });\n }\n root.forEach(item => {\n if (item[lazyKey]) {\n cb(item, null, 0);\n return;\n }\n const children = item[childrenKey];\n if (!isNil(children)) {\n _walker(item, children, 0);\n }\n });\n}\nconst getTableOverflowTooltipProps = (props, content) => {\n return {\n content,\n ...props,\n popperOptions: {\n strategy: \"fixed\",\n ...props.popperOptions\n }\n };\n};\nlet removePopper = null;\nfunction createTablePopper(props, popperContent, trigger, table) {\n if ((removePopper == null ? void 0 : removePopper.trigger) === trigger) {\n merge(removePopper.vm.component.props, getTableOverflowTooltipProps(props, popperContent));\n return;\n }\n removePopper == null ? void 0 : removePopper();\n const parentNode = table == null ? void 0 : table.refs.tableWrapper;\n const ns = parentNode == null ? void 0 : parentNode.dataset.prefix;\n const vm = createVNode(ElTooltip, {\n virtualTriggering: true,\n virtualRef: trigger,\n appendTo: parentNode,\n placement: \"top\",\n transition: \"none\",\n offset: 0,\n hideAfter: 0,\n ...getTableOverflowTooltipProps(props, popperContent)\n });\n vm.appContext = {\n ...table.appContext,\n ...table\n };\n const container = document.createElement(\"div\");\n render(vm, container);\n vm.component.exposed.onOpen();\n const scrollContainer = parentNode == null ? void 0 : parentNode.querySelector(`.${ns}-scrollbar__wrap`);\n removePopper = () => {\n render(null, container);\n scrollContainer == null ? void 0 : scrollContainer.removeEventListener(\"scroll\", removePopper);\n removePopper = null;\n };\n removePopper.trigger = trigger;\n removePopper.vm = vm;\n scrollContainer == null ? void 0 : scrollContainer.addEventListener(\"scroll\", removePopper);\n}\nfunction getCurrentColumns(column) {\n if (column.children) {\n return flatMap(column.children, getCurrentColumns);\n } else {\n return [column];\n }\n}\nfunction getColSpan(colSpan, column) {\n return colSpan + column.colSpan;\n}\nconst isFixedColumn = (index, fixed, store, realColumns) => {\n let start = 0;\n let after = index;\n const columns = store.states.columns.value;\n if (realColumns) {\n const curColumns = getCurrentColumns(realColumns[index]);\n const preColumns = columns.slice(0, columns.indexOf(curColumns[0]));\n start = preColumns.reduce(getColSpan, 0);\n after = start + curColumns.reduce(getColSpan, 0) - 1;\n } else {\n start = index;\n }\n let fixedLayout;\n switch (fixed) {\n case \"left\":\n if (after < store.states.fixedLeafColumnsLength.value) {\n fixedLayout = \"left\";\n }\n break;\n case \"right\":\n if (start >= columns.length - store.states.rightFixedLeafColumnsLength.value) {\n fixedLayout = \"right\";\n }\n break;\n default:\n if (after < store.states.fixedLeafColumnsLength.value) {\n fixedLayout = \"left\";\n } else if (start >= columns.length - store.states.rightFixedLeafColumnsLength.value) {\n fixedLayout = \"right\";\n }\n }\n return fixedLayout ? {\n direction: fixedLayout,\n start,\n after\n } : {};\n};\nconst getFixedColumnsClass = (namespace, index, fixed, store, realColumns, offset = 0) => {\n const classes = [];\n const {\n direction,\n start,\n after\n } = isFixedColumn(index, fixed, store, realColumns);\n if (direction) {\n const isLeft = direction === \"left\";\n classes.push(`${namespace}-fixed-column--${direction}`);\n if (isLeft && after + offset === store.states.fixedLeafColumnsLength.value - 1) {\n classes.push(\"is-last-column\");\n } else if (!isLeft && start - offset === store.states.columns.value.length - store.states.rightFixedLeafColumnsLength.value) {\n classes.push(\"is-first-column\");\n }\n }\n return classes;\n};\nfunction getOffset(offset, column) {\n return offset + (isNull(column.realWidth) || Number.isNaN(column.realWidth) ? Number(column.width) : column.realWidth);\n}\nconst getFixedColumnOffset = (index, fixed, store, realColumns) => {\n const {\n direction,\n start = 0,\n after = 0\n } = isFixedColumn(index, fixed, store, realColumns);\n if (!direction) {\n return;\n }\n const styles = {};\n const isLeft = direction === \"left\";\n const columns = store.states.columns.value;\n if (isLeft) {\n styles.left = columns.slice(0, start).reduce(getOffset, 0);\n } else {\n styles.right = columns.slice(after + 1).reverse().reduce(getOffset, 0);\n }\n return styles;\n};\nconst ensurePosition = (style, key) => {\n if (!style) return;\n if (!Number.isNaN(style[key])) {\n style[key] = `${style[key]}px`;\n }\n};\nexport { compose, createTablePopper, ensurePosition, getCell, getColumnByCell, getColumnById, getColumnByKey, getFixedColumnOffset, getFixedColumnsClass, getKeysMap, getRowIdentity, isFixedColumn, mergeOptions, orderBy, parseHeight, parseMinWidth, parseWidth, removePopper, toggleRowStatus, walkTreeNode };","map":{"version":3,"names":["getCell","event","_a","target","closest","orderBy","array","sortKey","reverse","sortMethod","sortBy","isArray","length","isString","getKey","value","index","map","by","get","isObject","$value","compare","a","b","i","len","key","sort","order","item","getColumnById","table","columnId","column","columns","forEach","id","getColumnByKey","columnKey","throwError","getColumnByCell","cell","namespace","matches","className","match","RegExp","getRowIdentity","row","rowKey","Error","includes","split","current","element","isFunction","call","getKeysMap","arrayMap","mergeOptions","defaults","config","options","hasOwn","isUndefined","parseWidth","width","Number","parseInt","isNaN","parseMinWidth","minWidth","parseHeight","height","isNumber","test","compose","funcs","arg","reduce","args","toggleRowStatus","statusArr","newVal","tableTreeProps","selectable","rowIndex","_rowIndex","changed","indexOf","included","isRowSelectable","toggleStatus","type","push","splice","getChildrenCount","row2","count","children","isBoolean","checkStrictly","walkTreeNode","root","cb","childrenKey","lazyKey","isNil","_walker","parent","level","children2","getTableOverflowTooltipProps","props","content","popperOptions","strategy","removePopper","createTablePopper","popperContent","trigger","merge","vm","component","parentNode","refs","tableWrapper","ns","dataset","prefix","createVNode","ElTooltip","virtualTriggering","virtualRef","appendTo","placement","transition","offset","hideAfter","appContext","container","document","createElement","render","exposed","onOpen","scrollContainer","querySelector","removeEventListener","addEventListener","getCurrentColumns","flatMap","getColSpan","colSpan","isFixedColumn","fixed","store","realColumns","start","after","states","curColumns","preColumns","slice","fixedLayout","fixedLeafColumnsLength","rightFixedLeafColumnsLength","direction","getFixedColumnsClass","classes","isLeft","getOffset","isNull","realWidth","getFixedColumnOffset","styles","left","right","ensurePosition","style"],"sources":["../../../../../../packages/components/table/src/util.ts"],"sourcesContent":["// @ts-nocheck\nimport { createVNode, render } from 'vue'\nimport { flatMap, get, isNull, merge } from 'lodash-unified'\nimport {\n hasOwn,\n isArray,\n isBoolean,\n isFunction,\n isNumber,\n isObject,\n isString,\n isUndefined,\n throwError,\n} from '@element-plus/utils'\nimport ElTooltip, {\n type ElTooltipProps,\n} from '@element-plus/components/tooltip'\nimport type { Table, TreeProps } from './table/defaults'\nimport type { TableColumnCtx } from './table-column/defaults'\nimport type { VNode } from 'vue'\n\nexport type TableOverflowTooltipOptions = Partial<\n Pick<\n ElTooltipProps,\n | 'appendTo'\n | 'effect'\n | 'enterable'\n | 'hideAfter'\n | 'offset'\n | 'placement'\n | 'popperClass'\n | 'popperOptions'\n | 'showAfter'\n | 'showArrow'\n | 'transition'\n >\n>\n\ntype RemovePopperFn = (() => void) & {\n trigger?: HTMLElement\n vm?: VNode\n}\n\nexport const getCell = function (event: Event) {\n return (event.target as HTMLElement)?.closest('td')\n}\n\nexport const orderBy = function <T>(\n array: T[],\n sortKey: string,\n reverse: string | number,\n sortMethod,\n sortBy: string | (string | ((a: T, b: T, array?: T[]) => number))[]\n) {\n if (\n !sortKey &&\n !sortMethod &&\n (!sortBy || (isArray(sortBy) && !sortBy.length))\n ) {\n return array\n }\n if (isString(reverse)) {\n reverse = reverse === 'descending' ? -1 : 1\n } else {\n reverse = reverse && reverse < 0 ? -1 : 1\n }\n const getKey = sortMethod\n ? null\n : function (value, index) {\n if (sortBy) {\n if (!isArray(sortBy)) {\n sortBy = [sortBy]\n }\n return sortBy.map((by) => {\n if (isString(by)) {\n return get(value, by)\n } else {\n return by(value, index, array)\n }\n })\n }\n if (sortKey !== '$key') {\n if (isObject(value) && '$value' in value) value = value.$value\n }\n return [isObject(value) ? get(value, sortKey) : value]\n }\n const compare = function (a, b) {\n if (sortMethod) {\n return sortMethod(a.value, b.value)\n }\n for (let i = 0, len = a.key.length; i < len; i++) {\n if (a.key[i] < b.key[i]) {\n return -1\n }\n if (a.key[i] > b.key[i]) {\n return 1\n }\n }\n return 0\n }\n return array\n .map((value, index) => {\n return {\n value,\n index,\n key: getKey ? getKey(value, index) : null,\n }\n })\n .sort((a, b) => {\n let order = compare(a, b)\n if (!order) {\n // make stable https://en.wikipedia.org/wiki/Sorting_algorithm#Stability\n order = a.index - b.index\n }\n return order * +reverse\n })\n .map((item) => item.value)\n}\n\nexport const getColumnById = function <T>(\n table: {\n columns: TableColumnCtx<T>[]\n },\n columnId: string\n): null | TableColumnCtx<T> {\n let column = null\n table.columns.forEach((item) => {\n if (item.id === columnId) {\n column = item\n }\n })\n return column\n}\n\nexport const getColumnByKey = function <T>(\n table: {\n columns: TableColumnCtx<T>[]\n },\n columnKey: string\n): TableColumnCtx<T> {\n let column = null\n for (let i = 0; i < table.columns.length; i++) {\n const item = table.columns[i]\n if (item.columnKey === columnKey) {\n column = item\n break\n }\n }\n if (!column)\n throwError('ElTable', `No column matching with column-key: ${columnKey}`)\n return column\n}\n\nexport const getColumnByCell = function <T>(\n table: {\n columns: TableColumnCtx<T>[]\n },\n cell: HTMLElement,\n namespace: string\n): null | TableColumnCtx<T> {\n const matches = (cell.className || '').match(\n new RegExp(`${namespace}-table_[^\\\\s]+`, 'gm')\n )\n if (matches) {\n return getColumnById(table, matches[0])\n }\n return null\n}\n\nexport const getRowIdentity = <T>(\n row: T,\n rowKey: string | ((row: T) => any)\n): string => {\n if (!row) throw new Error('Row is required when get row identity')\n if (isString(rowKey)) {\n if (!rowKey.includes('.')) {\n return `${row[rowKey]}`\n }\n const key = rowKey.split('.')\n let current = row\n for (const element of key) {\n current = current[element]\n }\n return `${current}`\n } else if (isFunction(rowKey)) {\n return rowKey.call(null, row)\n }\n}\n\nexport const getKeysMap = function <T>(\n array: T[],\n rowKey: string\n): Record<string, { row: T; index: number }> {\n const arrayMap = {}\n ;(array || []).forEach((row, index) => {\n arrayMap[getRowIdentity(row, rowKey)] = { row, index }\n })\n return arrayMap\n}\n\nexport function mergeOptions<T, K>(defaults: T, config: K): T & K {\n const options = {} as T & K\n let key\n for (key in defaults) {\n options[key] = defaults[key]\n }\n for (key in config) {\n if (hasOwn(config as unknown as Record<string, any>, key)) {\n const value = config[key]\n if (!isUndefined(value)) {\n options[key] = value\n }\n }\n }\n return options\n}\n\nexport function parseWidth(width: number | string): number | string {\n if (width === '') return width\n if (!isUndefined(width)) {\n width = Number.parseInt(width as string, 10)\n if (Number.isNaN(width)) {\n width = ''\n }\n }\n return width\n}\n\nexport function parseMinWidth(minWidth: number | string): number | string {\n if (minWidth === '') return minWidth\n if (!isUndefined(minWidth)) {\n minWidth = parseWidth(minWidth)\n if (Number.isNaN(minWidth)) {\n minWidth = 80\n }\n }\n return minWidth\n}\n\nexport function parseHeight(height: number | string) {\n if (isNumber(height)) {\n return height\n }\n if (isString(height)) {\n if (/^\\d+(?:px)?$/.test(height)) {\n return Number.parseInt(height, 10)\n } else {\n return height\n }\n }\n return null\n}\n\n// https://github.com/reduxjs/redux/blob/master/src/compose.js\nexport function compose(...funcs) {\n if (funcs.length === 0) {\n return (arg) => arg\n }\n if (funcs.length === 1) {\n return funcs[0]\n }\n return funcs.reduce(\n (a, b) =>\n (...args) =>\n a(b(...args))\n )\n}\n\nexport function toggleRowStatus<T>(\n statusArr: T[],\n row: T,\n newVal?: boolean,\n tableTreeProps?: TreeProps,\n selectable?: (row: T, index?: number) => boolean,\n rowIndex?: number\n): boolean {\n let _rowIndex = rowIndex ?? 0\n let changed = false\n const index = statusArr.indexOf(row)\n const included = index !== -1\n const isRowSelectable = selectable?.call(null, row, rowIndex)\n\n const toggleStatus = (type: 'add' | 'remove') => {\n if (type === 'add') {\n statusArr.push(row)\n } else {\n statusArr.splice(index, 1)\n }\n changed = true\n }\n const getChildrenCount = (row: T) => {\n let count = 0\n const children = tableTreeProps?.children && row[tableTreeProps.children]\n if (children && isArray(children)) {\n count += children.length\n children.forEach((item) => {\n count += getChildrenCount(item)\n })\n }\n return count\n }\n\n if (!selectable || isRowSelectable) {\n if (isBoolean(newVal)) {\n if (newVal && !included) {\n toggleStatus('add')\n } else if (!newVal && included) {\n toggleStatus('remove')\n }\n } else {\n included ? toggleStatus('remove') : toggleStatus('add')\n }\n }\n\n if (\n !tableTreeProps?.checkStrictly &&\n tableTreeProps?.children &&\n isArray(row[tableTreeProps.children])\n ) {\n row[tableTreeProps.children].forEach((item) => {\n toggleRowStatus(\n statusArr,\n item,\n newVal ?? !included,\n tableTreeProps,\n selectable,\n _rowIndex + 1\n )\n _rowIndex += getChildrenCount(item) + 1\n })\n }\n return changed\n}\n\nexport function walkTreeNode(\n root,\n cb,\n childrenKey = 'children',\n lazyKey = 'hasChildren'\n) {\n const isNil = (array) => !(isArray(array) && array.length)\n\n function _walker(parent, children, level) {\n cb(parent, children, level)\n children.forEach((item) => {\n if (item[lazyKey]) {\n cb(item, null, level + 1)\n return\n }\n const children = item[childrenKey]\n if (!isNil(children)) {\n _walker(item, children, level + 1)\n }\n })\n }\n\n root.forEach((item) => {\n if (item[lazyKey]) {\n cb(item, null, 0)\n return\n }\n const children = item[childrenKey]\n if (!isNil(children)) {\n _walker(item, children, 0)\n }\n })\n}\n\nconst getTableOverflowTooltipProps = (\n props: TableOverflowTooltipOptions,\n content: string\n) => {\n return {\n content,\n ...props,\n popperOptions: {\n strategy: 'fixed',\n ...props.popperOptions,\n },\n }\n}\n\nexport let removePopper: RemovePopperFn | null = null\n\nexport function createTablePopper(\n props: TableOverflowTooltipOptions,\n popperContent: string,\n trigger: HTMLElement,\n table: Table<[]>\n) {\n if (removePopper?.trigger === trigger) {\n merge(\n removePopper!.vm.component.props,\n getTableOverflowTooltipProps(props, popperContent)\n )\n return\n }\n removePopper?.()\n const parentNode = table?.refs.tableWrapper\n const ns = parentNode?.dataset.prefix\n const vm = createVNode(ElTooltip, {\n virtualTriggering: true,\n virtualRef: trigger,\n appendTo: parentNode,\n placement: 'top',\n transition: 'none', // Default does not require transition\n offset: 0,\n hideAfter: 0,\n ...getTableOverflowTooltipProps(props, popperContent),\n })\n vm.appContext = { ...table.appContext, ...table }\n const container = document.createElement('div')\n render(vm, container)\n vm.component!.exposed!.onOpen()\n const scrollContainer = parentNode?.querySelector(`.${ns}-scrollbar__wrap`)\n removePopper = () => {\n render(null, container)\n scrollContainer?.removeEventListener('scroll', removePopper!)\n removePopper = null\n }\n removePopper.trigger = trigger\n removePopper.vm = vm\n scrollContainer?.addEventListener('scroll', removePopper)\n}\n\nfunction getCurrentColumns<T>(column: TableColumnCtx<T>): TableColumnCtx<T>[] {\n if (column.children) {\n return flatMap(column.children, getCurrentColumns)\n } else {\n return [column]\n }\n}\n\nfunction getColSpan<T>(colSpan: number, column: TableColumnCtx<T>) {\n return colSpan + column.colSpan\n}\n\nexport const isFixedColumn = <T>(\n index: number,\n fixed: string | boolean,\n store: any,\n realColumns?: TableColumnCtx<T>[]\n) => {\n let start = 0\n let after = index\n const columns = store.states.columns.value\n if (realColumns) {\n // fixed column supported in grouped header\n const curColumns = getCurrentColumns(realColumns[index])\n const preColumns = columns.slice(0, columns.indexOf(curColumns[0]))\n\n start = preColumns.reduce(getColSpan, 0)\n after = start + curColumns.reduce(getColSpan, 0) - 1\n } else {\n start = index\n }\n let fixedLayout\n switch (fixed) {\n case 'left':\n if (after < store.states.fixedLeafColumnsLength.value) {\n fixedLayout = 'left'\n }\n break\n case 'right':\n if (\n start >=\n columns.length - store.states.rightFixedLeafColumnsLength.value\n ) {\n fixedLayout = 'right'\n }\n break\n default:\n if (after < store.states.fixedLeafColumnsLength.value) {\n fixedLayout = 'left'\n } else if (\n start >=\n columns.length - store.states.rightFixedLeafColumnsLength.value\n ) {\n fixedLayout = 'right'\n }\n }\n return fixedLayout\n ? {\n direction: fixedLayout,\n start,\n after,\n }\n : {}\n}\n\nexport const getFixedColumnsClass = <T>(\n namespace: string,\n index: number,\n fixed: string | boolean,\n store: any,\n realColumns?: TableColumnCtx<T>[],\n offset = 0\n) => {\n const classes: string[] = []\n const { direction, start, after } = isFixedColumn(\n index,\n fixed,\n store,\n realColumns\n )\n if (direction) {\n const isLeft = direction === 'left'\n classes.push(`${namespace}-fixed-column--${direction}`)\n if (\n isLeft &&\n after + offset === store.states.fixedLeafColumnsLength.value - 1\n ) {\n classes.push('is-last-column')\n } else if (\n !isLeft &&\n start - offset ===\n store.states.columns.value.length -\n store.states.rightFixedLeafColumnsLength.value\n ) {\n classes.push('is-first-column')\n }\n }\n return classes\n}\n\nfunction getOffset<T>(offset: number, column: TableColumnCtx<T>) {\n return (\n offset +\n (isNull(column.realWidth) || Number.isNaN(column.realWidth)\n ? Number(column.width)\n : column.realWidth)\n )\n}\n\nexport const getFixedColumnOffset = <T>(\n index: number,\n fixed: string | boolean,\n store: any,\n realColumns?: TableColumnCtx<T>[]\n) => {\n const {\n direction,\n start = 0,\n after = 0,\n } = isFixedColumn(index, fixed, store, realColumns)\n if (!direction) {\n return\n }\n const styles: any = {}\n const isLeft = direction === 'left'\n const columns = store.states.columns.value\n if (isLeft) {\n styles.left = columns.slice(0, start).reduce(getOffset, 0)\n } else {\n styles.right = columns\n .slice(after + 1)\n .reverse()\n .reduce(getOffset, 0)\n }\n return styles\n}\n\nexport const ensurePosition = (style, key: string) => {\n if (!style) return\n if (!Number.isNaN(style[key])) {\n style[key] = `${style[key]}px`\n }\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}