element-plus
Version:
A Component Library for Vue 3
1 lines • 13.5 kB
Source Map (JSON)
{"version":3,"file":"config.mjs","sources":["../../../../../../packages/components/table/src/config.ts"],"sourcesContent":["import { h } from 'vue'\nimport ElCheckbox from '@element-plus/components/checkbox'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { ArrowRight, Loading } from '@element-plus/icons-vue'\nimport { getProp, isBoolean, isFunction, isNumber } from '@element-plus/utils'\n\nimport type { VNode } from 'vue'\nimport type { TableColumnCtx } from './table-column/defaults'\nimport type { Store } from './store'\nimport type { DefaultRow, TreeNode } from './table/defaults'\n\nconst defaultClassNames = {\n selection: 'table-column--selection',\n expand: 'table__expand-column',\n} as const\n\nexport const cellStarts = {\n default: {\n order: '',\n },\n selection: {\n width: 48,\n minWidth: 48,\n realWidth: 48,\n order: '',\n },\n expand: {\n width: 48,\n minWidth: 48,\n realWidth: 48,\n order: '',\n },\n index: {\n width: 48,\n minWidth: 48,\n realWidth: 48,\n order: '',\n },\n}\n\nexport const getDefaultClassName = (type: string) => {\n return defaultClassNames[type as keyof typeof defaultClassNames] || ''\n}\n\n// 这些选项不应该被覆盖\nexport const cellForced = {\n selection: {\n renderHeader<T extends DefaultRow>({ store }: { store: Store<T> }) {\n function isDisabled() {\n return store.states.data.value && store.states.data.value.length === 0\n }\n return h(ElCheckbox, {\n disabled: isDisabled(),\n size: store.states.tableSize.value,\n indeterminate:\n store.states.selection.value.length > 0 &&\n !store.states.isAllSelected.value,\n 'onUpdate:modelValue': store.toggleAllSelection ?? undefined,\n modelValue: store.states.isAllSelected.value,\n ariaLabel: store.t('el.table.selectAllLabel'),\n })\n },\n renderCell<T extends DefaultRow>({\n row,\n column,\n store,\n $index,\n }: {\n row: T\n column: TableColumnCtx<T>\n store: Store<T>\n $index: number\n }) {\n return h(ElCheckbox, {\n disabled: column.selectable\n ? !column.selectable.call(null, row, $index)\n : false,\n size: store.states.tableSize.value,\n onChange: () => {\n store.commit('rowSelectedChanged', row)\n },\n onClick: (event: Event) => event.stopPropagation(),\n modelValue: store.isSelected(row),\n ariaLabel: store.t('el.table.selectRowLabel'),\n })\n },\n sortable: false,\n resizable: false,\n },\n index: {\n renderHeader<T extends DefaultRow>({\n column,\n }: {\n column: TableColumnCtx<T>\n }) {\n return column.label || '#'\n },\n renderCell<T extends DefaultRow>({\n column,\n $index,\n }: {\n column: TableColumnCtx<T>\n $index: number\n }) {\n let i = $index + 1\n const index = column.index\n\n if (isNumber(index)) {\n i = $index + index\n } else if (isFunction(index)) {\n i = index($index)\n }\n return h('div', {}, [i])\n },\n sortable: false,\n },\n expand: {\n renderHeader<T extends DefaultRow>({\n column,\n }: {\n column: TableColumnCtx<T>\n }) {\n return column.label || ''\n },\n renderCell<T extends DefaultRow>({\n column,\n row,\n store,\n expanded,\n $index,\n }: {\n column: TableColumnCtx<T>\n row: T\n store: Store<T>\n expanded: boolean\n $index: number\n }) {\n const { ns } = store\n const classes = [ns.e('expand-icon')]\n\n if (!column.renderExpand && expanded) {\n classes.push(ns.em('expand-icon', 'expanded'))\n }\n const callback = function (e: Event) {\n e.stopPropagation()\n store.toggleRowExpansion(row)\n }\n const isRowExpandable =\n store.states.rowExpandable.value?.(row, $index) ?? true\n if (!isRowExpandable) {\n classes.push(ns.is('disabled'))\n }\n return h(\n 'button',\n {\n type: 'button',\n disabled: !isRowExpandable,\n 'aria-label': store.t(\n expanded ? 'el.table.collapseRowLabel' : 'el.table.expandRowLabel'\n ),\n 'aria-expanded': expanded,\n class: classes,\n onClick: callback,\n },\n {\n default: () => {\n if (column.renderExpand) {\n return [\n column.renderExpand({\n expanded,\n expandable: isRowExpandable,\n }),\n ]\n }\n\n return [\n h(ElIcon, null, {\n default: () => {\n return [h(ArrowRight)]\n },\n }),\n ]\n },\n }\n )\n },\n sortable: false,\n resizable: false,\n },\n}\n\nexport function defaultRenderCell<T extends DefaultRow>({\n row,\n column,\n $index,\n}: {\n row: T\n column: TableColumnCtx<T>\n $index: number\n}) {\n const property = column.property\n const value = property && getProp(row, property).value\n if (column && column.formatter) {\n return column.formatter(row, column, value, $index)\n }\n return value?.toString?.() || ''\n}\n\nexport function treeCellPrefix<T extends DefaultRow>(\n {\n row,\n treeNode,\n store,\n }: {\n row: T\n treeNode: TreeNode\n store: Store<T>\n },\n createPlaceholder = false\n) {\n const { ns } = store\n if (!treeNode) {\n if (createPlaceholder) {\n return [\n h('span', {\n class: ns.e('placeholder'),\n }),\n ]\n }\n return null\n }\n const ele: VNode[] = []\n const callback = function (e: Event) {\n e.stopPropagation()\n if (treeNode.loading) {\n return\n }\n store.loadOrToggle(row)\n }\n if (treeNode.indent) {\n ele.push(\n h('span', {\n class: ns.e('indent'),\n style: { 'padding-left': `${treeNode.indent}px` },\n })\n )\n }\n if (isBoolean(treeNode.expanded) && !treeNode.noLazyChildren) {\n const expandClasses = [\n ns.e('expand-icon'),\n treeNode.expanded ? ns.em('expand-icon', 'expanded') : '',\n ]\n let icon = ArrowRight\n if (treeNode.loading) {\n icon = Loading\n }\n\n ele.push(\n h(\n 'button',\n {\n type: 'button',\n 'aria-label': store.t(\n treeNode.expanded\n ? 'el.table.collapseRowLabel'\n : 'el.table.expandRowLabel'\n ),\n 'aria-expanded': treeNode.expanded,\n class: expandClasses,\n onClick: callback,\n },\n {\n default: () => {\n return [\n h(\n ElIcon,\n { class: ns.is('loading', treeNode.loading) },\n {\n default: () => [h(icon)],\n }\n ),\n ]\n },\n }\n )\n )\n } else {\n ele.push(\n h('span', {\n class: ns.e('placeholder'),\n })\n )\n }\n return ele\n}\n"],"names":[],"mappings":"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"}