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
10 KiB
1 lines
10 KiB
{"ast":null,"code":"import { computed, unref } from 'vue';\nimport { SortOrder, oppositeOrderMap } from '../constants.mjs';\nimport { placeholderSign } from '../private.mjs';\nimport { calcColumnStyle } from './utils.mjs';\nimport { isObject } from '@vue/shared';\nfunction useColumns(props, columns, fixed) {\n const _columns = computed(() => unref(columns).map((column, index) => {\n var _a, _b;\n return {\n ...column,\n key: (_b = (_a = column.key) != null ? _a : column.dataKey) != null ? _b : index\n };\n }));\n const visibleColumns = computed(() => {\n return unref(_columns).filter(column => !column.hidden);\n });\n const fixedColumnsOnLeft = computed(() => unref(visibleColumns).filter(column => column.fixed === \"left\" || column.fixed === true));\n const fixedColumnsOnRight = computed(() => unref(visibleColumns).filter(column => column.fixed === \"right\"));\n const normalColumns = computed(() => unref(visibleColumns).filter(column => !column.fixed));\n const mainColumns = computed(() => {\n const ret = [];\n unref(fixedColumnsOnLeft).forEach(column => {\n ret.push({\n ...column,\n placeholderSign\n });\n });\n unref(normalColumns).forEach(column => {\n ret.push(column);\n });\n unref(fixedColumnsOnRight).forEach(column => {\n ret.push({\n ...column,\n placeholderSign\n });\n });\n return ret;\n });\n const hasFixedColumns = computed(() => {\n return unref(fixedColumnsOnLeft).length || unref(fixedColumnsOnRight).length;\n });\n const columnsStyles = computed(() => {\n return unref(_columns).reduce((style, column) => {\n style[column.key] = calcColumnStyle(column, unref(fixed), props.fixed);\n return style;\n }, {});\n });\n const columnsTotalWidth = computed(() => {\n return unref(visibleColumns).reduce((width, column) => width + column.width, 0);\n });\n const getColumn = key => {\n return unref(_columns).find(column => column.key === key);\n };\n const getColumnStyle = key => {\n return unref(columnsStyles)[key];\n };\n const updateColumnWidth = (column, width) => {\n column.width = width;\n };\n function onColumnSorted(e) {\n var _a;\n const {\n key\n } = e.currentTarget.dataset;\n if (!key) return;\n const {\n sortState,\n sortBy\n } = props;\n let order = SortOrder.ASC;\n if (isObject(sortState)) {\n order = oppositeOrderMap[sortState[key]];\n } else {\n order = oppositeOrderMap[sortBy.order];\n }\n (_a = props.onColumnSort) == null ? void 0 : _a.call(props, {\n column: getColumn(key),\n key,\n order\n });\n }\n return {\n columns: _columns,\n columnsStyles,\n columnsTotalWidth,\n fixedColumnsOnLeft,\n fixedColumnsOnRight,\n hasFixedColumns,\n mainColumns,\n normalColumns,\n visibleColumns,\n getColumn,\n getColumnStyle,\n updateColumnWidth,\n onColumnSorted\n };\n}\nexport { useColumns };","map":{"version":3,"names":["useColumns","props","columns","fixed","_columns","computed","unref","map","column","index","_a","_b","key","dataKey","visibleColumns","filter","hidden","fixedColumnsOnLeft","fixedColumnsOnRight","normalColumns","mainColumns","ret","forEach","push","placeholderSign","hasFixedColumns","length","columnsStyles","reduce","style","calcColumnStyle","columnsTotalWidth","width","getColumn","find","getColumnStyle","updateColumnWidth","onColumnSorted","e","currentTarget","dataset","sortState","sortBy","order","SortOrder","ASC","isObject","oppositeOrderMap","onColumnSort","call"],"sources":["../../../../../../../packages/components/table-v2/src/composables/use-columns.ts"],"sourcesContent":["// @ts-nocheck\nimport { computed, unref } from 'vue'\nimport { isObject } from '@element-plus/utils'\nimport { SortOrder, oppositeOrderMap } from '../constants'\nimport { placeholderSign } from '../private'\nimport { calcColumnStyle } from './utils'\n\nimport type { CSSProperties, Ref } from 'vue'\nimport type { TableV2Props } from '../table'\nimport type { AnyColumns, Column, KeyType } from '../types'\n\nfunction useColumns(\n props: TableV2Props,\n columns: Ref<AnyColumns>,\n fixed: Ref<boolean>\n) {\n const _columns = computed(() =>\n unref(columns).map((column, index) => ({\n ...column,\n key: column.key ?? column.dataKey ?? index,\n }))\n )\n\n const visibleColumns = computed(() => {\n return unref(_columns).filter((column) => !column.hidden)\n })\n\n const fixedColumnsOnLeft = computed(() =>\n unref(visibleColumns).filter(\n (column) => column.fixed === 'left' || column.fixed === true\n )\n )\n\n const fixedColumnsOnRight = computed(() =>\n unref(visibleColumns).filter((column) => column.fixed === 'right')\n )\n\n const normalColumns = computed(() =>\n unref(visibleColumns).filter((column) => !column.fixed)\n )\n\n const mainColumns = computed(() => {\n const ret: AnyColumns = []\n\n unref(fixedColumnsOnLeft).forEach((column) => {\n ret.push({\n ...column,\n placeholderSign,\n })\n })\n\n unref(normalColumns).forEach((column) => {\n ret.push(column)\n })\n\n unref(fixedColumnsOnRight).forEach((column) => {\n ret.push({\n ...column,\n placeholderSign,\n })\n })\n\n return ret\n })\n\n const hasFixedColumns = computed(() => {\n return unref(fixedColumnsOnLeft).length || unref(fixedColumnsOnRight).length\n })\n\n const columnsStyles = computed(() => {\n return unref(_columns).reduce<Record<Column<any>['key'], CSSProperties>>(\n (style, column) => {\n style[column.key] = calcColumnStyle(column, unref(fixed), props.fixed)\n return style\n },\n {}\n )\n })\n\n const columnsTotalWidth = computed(() => {\n return unref(visibleColumns).reduce(\n (width, column) => width + column.width,\n 0\n )\n })\n\n const getColumn = (key: KeyType) => {\n return unref(_columns).find((column) => column.key === key)\n }\n\n const getColumnStyle = (key: KeyType) => {\n return unref(columnsStyles)[key]\n }\n\n const updateColumnWidth = (column: Column<any>, width: number) => {\n column.width = width\n }\n\n function onColumnSorted(e: MouseEvent) {\n const { key } = (e.currentTarget as HTMLElement).dataset\n if (!key) return\n const { sortState, sortBy } = props\n\n let order = SortOrder.ASC\n\n if (isObject(sortState)) {\n order = oppositeOrderMap[sortState[key]]\n } else {\n order = oppositeOrderMap[sortBy.order]\n }\n\n props.onColumnSort?.({ column: getColumn(key)!, key, order })\n }\n\n return {\n columns: _columns,\n columnsStyles,\n columnsTotalWidth,\n fixedColumnsOnLeft,\n fixedColumnsOnRight,\n hasFixedColumns,\n mainColumns,\n normalColumns,\n visibleColumns,\n\n getColumn,\n getColumnStyle,\n updateColumnWidth,\n onColumnSorted,\n }\n}\n\nexport { useColumns }\nexport type UseColumnsReturn = ReturnType<typeof useColumns>\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|