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

{"ast":null,"code":"import { getCurrentInstance, ref, watchEffect, computed, unref, renderSlot, h, Comment } from 'vue';\nimport { cellForced, defaultRenderCell, treeCellPrefix, getDefaultClassName } from '../config.mjs';\nimport { parseWidth, parseMinWidth } from '../util.mjs';\nimport { useNamespace } from '../../../../hooks/use-namespace/index.mjs';\nimport { isUndefined } from '../../../../utils/types.mjs';\nimport { debugWarn } from '../../../../utils/error.mjs';\nimport { isArray } from '@vue/shared';\nfunction useRender(props, slots, owner) {\n const instance = getCurrentInstance();\n const columnId = ref(\"\");\n const isSubColumn = ref(false);\n const realAlign = ref();\n const realHeaderAlign = ref();\n const ns = useNamespace(\"table\");\n watchEffect(() => {\n realAlign.value = props.align ? `is-${props.align}` : null;\n realAlign.value;\n });\n watchEffect(() => {\n realHeaderAlign.value = props.headerAlign ? `is-${props.headerAlign}` : realAlign.value;\n realHeaderAlign.value;\n });\n const columnOrTableParent = computed(() => {\n let parent = instance.vnode.vParent || instance.parent;\n while (parent && !parent.tableId && !parent.columnId) {\n parent = parent.vnode.vParent || parent.parent;\n }\n return parent;\n });\n const hasTreeColumn = computed(() => {\n const {\n store\n } = instance.parent;\n if (!store) return false;\n const {\n treeData\n } = store.states;\n const treeDataValue = treeData.value;\n return treeDataValue && Object.keys(treeDataValue).length > 0;\n });\n const realWidth = ref(parseWidth(props.width));\n const realMinWidth = ref(parseMinWidth(props.minWidth));\n const setColumnWidth = column => {\n if (realWidth.value) column.width = realWidth.value;\n if (realMinWidth.value) {\n column.minWidth = realMinWidth.value;\n }\n if (!realWidth.value && realMinWidth.value) {\n column.width = void 0;\n }\n if (!column.minWidth) {\n column.minWidth = 80;\n }\n column.realWidth = Number(isUndefined(column.width) ? column.minWidth : column.width);\n return column;\n };\n const setColumnForcedProps = column => {\n const type = column.type;\n const source = cellForced[type] || {};\n Object.keys(source).forEach(prop => {\n const value = source[prop];\n if (prop !== \"className\" && !isUndefined(value)) {\n column[prop] = value;\n }\n });\n const className = getDefaultClassName(type);\n if (className) {\n const forceClass = `${unref(ns.namespace)}-${className}`;\n column.className = column.className ? `${column.className} ${forceClass}` : forceClass;\n }\n return column;\n };\n const checkSubColumn = children => {\n if (isArray(children)) {\n children.forEach(child => check(child));\n } else {\n check(children);\n }\n function check(item) {\n var _a;\n if (((_a = item == null ? void 0 : item.type) == null ? void 0 : _a.name) === \"ElTableColumn\") {\n item.vParent = instance;\n }\n }\n };\n const setColumnRenders = column => {\n if (props.renderHeader) {\n debugWarn(\"TableColumn\", \"Comparing to render-header, scoped-slot header is easier to use. We recommend users to use scoped-slot header.\");\n } else if (column.type !== \"selection\") {\n column.renderHeader = scope => {\n instance.columnConfig.value[\"label\"];\n return renderSlot(slots, \"header\", scope, () => [column.label]);\n };\n }\n if (slots[\"filter-icon\"]) {\n column.renderFilterIcon = scope => {\n return renderSlot(slots, \"filter-icon\", scope);\n };\n }\n let originRenderCell = column.renderCell;\n if (column.type === \"expand\") {\n column.renderCell = data => h(\"div\", {\n class: \"cell\"\n }, [originRenderCell(data)]);\n owner.value.renderExpanded = data => {\n return slots.default ? slots.default(data) : slots.default;\n };\n } else {\n originRenderCell = originRenderCell || defaultRenderCell;\n column.renderCell = data => {\n let children = null;\n if (slots.default) {\n const vnodes = slots.default(data);\n children = vnodes.some(v => v.type !== Comment) ? vnodes : originRenderCell(data);\n } else {\n children = originRenderCell(data);\n }\n const {\n columns\n } = owner.value.store.states;\n const firstUserColumnIndex = columns.value.findIndex(item => item.type === \"default\");\n const shouldCreatePlaceholder = hasTreeColumn.value && data.cellIndex === firstUserColumnIndex;\n const prefix = treeCellPrefix(data, shouldCreatePlaceholder);\n const props2 = {\n class: \"cell\",\n style: {}\n };\n if (column.showOverflowTooltip) {\n props2.class = `${props2.class} ${unref(ns.namespace)}-tooltip`;\n props2.style = {\n width: `${(data.column.realWidth || Number(data.column.width)) - 1}px`\n };\n }\n checkSubColumn(children);\n return h(\"div\", props2, [prefix, children]);\n };\n }\n return column;\n };\n const getPropsData = (...propsKey) => {\n return propsKey.reduce((prev, cur) => {\n if (isArray(cur)) {\n cur.forEach(key => {\n prev[key] = props[key];\n });\n }\n return prev;\n }, {});\n };\n const getColumnElIndex = (children, child) => {\n return Array.prototype.indexOf.call(children, child);\n };\n const updateColumnOrder = () => {\n owner.value.store.commit(\"updateColumnOrder\", instance.columnConfig.value);\n };\n return {\n columnId,\n realAlign,\n isSubColumn,\n realHeaderAlign,\n columnOrTableParent,\n setColumnWidth,\n setColumnForcedProps,\n setColumnRenders,\n getPropsData,\n getColumnElIndex,\n updateColumnOrder\n };\n}\nexport { useRender as default };","map":{"version":3,"names":["useRender","props","slots","owner","instance","getCurrentInstance","columnId","ref","isSubColumn","realAlign","realHeaderAlign","ns","useNamespace","watchEffect","value","align","headerAlign","columnOrTableParent","computed","parent","vnode","vParent","tableId","hasTreeColumn","store","treeData","states","treeDataValue","Object","keys","length","realWidth","parseWidth","width","realMinWidth","parseMinWidth","minWidth","setColumnWidth","column","Number","isUndefined","setColumnForcedProps","type","source","cellForced","forEach","prop","className","getDefaultClassName","forceClass","unref","namespace","checkSubColumn","children","isArray","child","check","item","_a","name","setColumnRenders","renderHeader","debugWarn","scope","columnConfig","renderSlot","label","renderFilterIcon","originRenderCell","renderCell","data","h","class","renderExpanded","default","defaultRenderCell","vnodes","some","v","Comment","columns","firstUserColumnIndex","findIndex","shouldCreatePlaceholder","cellIndex","prefix","treeCellPrefix","props2","style","showOverflowTooltip","getPropsData","propsKey","reduce","prev","cur","key","getColumnElIndex","Array","prototype","indexOf","call","updateColumnOrder","commit"],"sources":["../../../../../../../packages/components/table/src/table-column/render-helper.ts"],"sourcesContent":["// @ts-nocheck\nimport {\n Comment,\n computed,\n getCurrentInstance,\n h,\n ref,\n renderSlot,\n unref,\n watchEffect,\n} from 'vue'\nimport { debugWarn, isArray, isUndefined } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport {\n cellForced,\n defaultRenderCell,\n getDefaultClassName,\n treeCellPrefix,\n} from '../config'\nimport { parseMinWidth, parseWidth } from '../util'\nimport type { ComputedRef } from 'vue'\nimport type { TableColumn, TableColumnCtx } from './defaults'\n\nfunction useRender<T>(\n props: TableColumnCtx<T>,\n slots,\n owner: ComputedRef<any>\n) {\n const instance = getCurrentInstance() as TableColumn<T>\n const columnId = ref('')\n const isSubColumn = ref(false)\n const realAlign = ref<string>()\n const realHeaderAlign = ref<string>()\n const ns = useNamespace('table')\n watchEffect(() => {\n realAlign.value = props.align ? `is-${props.align}` : null\n // nextline help render\n realAlign.value\n })\n watchEffect(() => {\n realHeaderAlign.value = props.headerAlign\n ? `is-${props.headerAlign}`\n : realAlign.value\n // nextline help render\n realHeaderAlign.value\n })\n const columnOrTableParent = computed(() => {\n let parent: any = instance.vnode.vParent || instance.parent\n while (parent && !parent.tableId && !parent.columnId) {\n parent = parent.vnode.vParent || parent.parent\n }\n return parent\n })\n const hasTreeColumn = computed<boolean>(() => {\n const { store } = instance.parent\n if (!store) return false\n const { treeData } = store.states\n const treeDataValue = treeData.value\n return treeDataValue && Object.keys(treeDataValue).length > 0\n })\n\n const realWidth = ref(parseWidth(props.width))\n const realMinWidth = ref(parseMinWidth(props.minWidth))\n const setColumnWidth = (column: TableColumnCtx<T>) => {\n if (realWidth.value) column.width = realWidth.value\n if (realMinWidth.value) {\n column.minWidth = realMinWidth.value\n }\n if (!realWidth.value && realMinWidth.value) {\n column.width = undefined\n }\n if (!column.minWidth) {\n column.minWidth = 80\n }\n column.realWidth = Number(\n isUndefined(column.width) ? column.minWidth : column.width\n )\n return column\n }\n const setColumnForcedProps = (column: TableColumnCtx<T>) => {\n // 对于特定类型的 column,某些属性不允许设置\n const type = column.type\n const source = cellForced[type] || {}\n Object.keys(source).forEach((prop) => {\n const value = source[prop]\n if (prop !== 'className' && !isUndefined(value)) {\n column[prop] = value\n }\n })\n const className = getDefaultClassName(type)\n if (className) {\n const forceClass = `${unref(ns.namespace)}-${className}`\n column.className = column.className\n ? `${column.className} ${forceClass}`\n : forceClass\n }\n return column\n }\n\n const checkSubColumn = (children: TableColumn<T> | TableColumn<T>[]) => {\n if (isArray(children)) {\n children.forEach((child) => check(child))\n } else {\n check(children)\n }\n function check(item: TableColumn<T>) {\n if (item?.type?.name === 'ElTableColumn') {\n item.vParent = instance\n }\n }\n }\n const setColumnRenders = (column: TableColumnCtx<T>) => {\n // renderHeader 属性不推荐使用。\n if (props.renderHeader) {\n debugWarn(\n 'TableColumn',\n 'Comparing to render-header, scoped-slot header is easier to use. We recommend users to use scoped-slot header.'\n )\n } else if (column.type !== 'selection') {\n column.renderHeader = (scope) => {\n // help render\n instance.columnConfig.value['label']\n return renderSlot(slots, 'header', scope, () => [column.label])\n }\n }\n\n if (slots['filter-icon']) {\n column.renderFilterIcon = (scope) => {\n return renderSlot(slots, 'filter-icon', scope)\n }\n }\n\n let originRenderCell = column.renderCell\n // TODO: 这里的实现调整\n if (column.type === 'expand') {\n // 对于展开行,renderCell 不允许配置的。在上一步中已经设置过,这里需要简单封装一下。\n column.renderCell = (data) =>\n h(\n 'div',\n {\n class: 'cell',\n },\n [originRenderCell(data)]\n )\n owner.value.renderExpanded = (data) => {\n return slots.default ? slots.default(data) : slots.default\n }\n } else {\n originRenderCell = originRenderCell || defaultRenderCell\n // 对 renderCell 进行包装\n column.renderCell = (data) => {\n let children = null\n if (slots.default) {\n const vnodes = slots.default(data)\n children = vnodes.some((v) => v.type !== Comment)\n ? vnodes\n : originRenderCell(data)\n } else {\n children = originRenderCell(data)\n }\n\n const { columns } = owner.value.store.states\n const firstUserColumnIndex = columns.value.findIndex(\n (item) => item.type === 'default'\n )\n const shouldCreatePlaceholder =\n hasTreeColumn.value && data.cellIndex === firstUserColumnIndex\n const prefix = treeCellPrefix(data, shouldCreatePlaceholder)\n const props = {\n class: 'cell',\n style: {},\n }\n if (column.showOverflowTooltip) {\n props.class = `${props.class} ${unref(ns.namespace)}-tooltip`\n props.style = {\n width: `${\n (data.column.realWidth || Number(data.column.width)) - 1\n }px`,\n }\n }\n checkSubColumn(children)\n return h('div', props, [prefix, children])\n }\n }\n return column\n }\n const getPropsData = (...propsKey: unknown[]) => {\n return propsKey.reduce((prev, cur) => {\n if (isArray(cur)) {\n cur.forEach((key) => {\n prev[key] = props[key]\n })\n }\n return prev\n }, {})\n }\n const getColumnElIndex = (children, child) => {\n return Array.prototype.indexOf.call(children, child)\n }\n\n const updateColumnOrder = () => {\n owner.value.store.commit('updateColumnOrder', instance.columnConfig.value)\n }\n\n return {\n columnId,\n realAlign,\n isSubColumn,\n realHeaderAlign,\n columnOrTableParent,\n setColumnWidth,\n setColumnForcedProps,\n setColumnRenders,\n getPropsData,\n getColumnElIndex,\n updateColumnOrder,\n }\n}\n\nexport default useRender\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}