pro-design-vue 1.0.0-rc.9 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.css +1 -1
- package/dist/index.full.js +375 -206
- package/dist/index.full.min.js +8 -8
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +8 -8
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +375 -206
- package/es/components/drawer/src/drawer.vue2.mjs +1 -1
- package/es/components/drawer/src/drawer.vue2.mjs.map +1 -1
- package/es/components/form/src/Form.d.ts +1 -1
- package/es/components/form/src/base/BaseForm.d.ts +1 -1
- package/es/components/form/src/base/BaseForm.mjs +16 -11
- package/es/components/form/src/base/BaseForm.mjs.map +1 -1
- package/es/components/form/src/base/StepForm.d.ts +1 -1
- package/es/components/form/src/components/FormColWrapper.d.ts +9 -0
- package/es/components/form/src/components/FormColWrapper.mjs +9 -1
- package/es/components/form/src/components/FormColWrapper.mjs.map +1 -1
- package/es/components/form/src/components/FormGroup.d.ts +6 -4
- package/es/components/form/src/components/FormGroup.mjs +1 -1
- package/es/components/form/src/components/FormGroup.mjs.map +1 -1
- package/es/components/form/src/components/FormItem.d.ts +9 -0
- package/es/components/form/src/components/FormItem.mjs +32 -24
- package/es/components/form/src/components/FormItem.mjs.map +1 -1
- package/es/components/form/src/components/FormItems.mjs +2 -1
- package/es/components/form/src/components/FormItems.mjs.map +1 -1
- package/es/components/form/src/components/FormList.d.ts +6 -4
- package/es/components/form/src/components/FormList.mjs +1 -1
- package/es/components/form/src/components/FormList.mjs.map +1 -1
- package/es/components/form/src/components/FormListContainer.d.ts +6 -4
- package/es/components/form/src/components/FormListContainer.mjs +1 -1
- package/es/components/form/src/components/FormListContainer.mjs.map +1 -1
- package/es/components/form/src/components/FormSet.d.ts +6 -4
- package/es/components/form/src/components/FormSet.mjs +1 -1
- package/es/components/form/src/components/FormSet.mjs.map +1 -1
- package/es/components/form/src/components/FormSubmitter.d.ts +2 -2
- package/es/components/form/src/components/FormSubmitter.mjs +25 -7
- package/es/components/form/src/components/FormSubmitter.mjs.map +1 -1
- package/es/components/form/src/components/FormTitle.d.ts +6 -4
- package/es/components/form/src/components/FormTitle.mjs +11 -6
- package/es/components/form/src/components/FormTitle.mjs.map +1 -1
- package/es/components/form/src/hooks/useAction.d.ts +5 -3
- package/es/components/form/src/hooks/useAction.mjs +30 -11
- package/es/components/form/src/hooks/useAction.mjs.map +1 -1
- package/es/components/form/src/hooks/useFieldValue.d.ts +1 -1
- package/es/components/form/src/hooks/useFieldValue.mjs +11 -15
- package/es/components/form/src/hooks/useFieldValue.mjs.map +1 -1
- package/es/components/form/src/layouts/DrawerForm.d.ts +1 -1
- package/es/components/form/src/layouts/ModalForm.d.ts +1 -1
- package/es/components/form/src/layouts/QueryFilter.d.ts +1 -1
- package/es/components/form/src/layouts/QueryFilter.mjs +14 -4
- package/es/components/form/src/layouts/QueryFilter.mjs.map +1 -1
- package/es/components/form/src/layouts/StepsForm.d.ts +1 -1
- package/es/components/form/src/layouts/StepsForm.mjs +8 -8
- package/es/components/form/src/layouts/StepsForm.mjs.map +1 -1
- package/es/components/form/src/type.d.ts +24 -11
- package/es/components/form/src/utils/transformer.d.ts +3 -0
- package/es/components/form/src/utils/transformer.mjs +24 -0
- package/es/components/form/src/utils/transformer.mjs.map +1 -0
- package/es/components/modal/src/modal.vue2.mjs +1 -1
- package/es/components/modal/src/modal.vue2.mjs.map +1 -1
- package/es/components/table/src/components/Body/Body.vue.mjs.map +1 -1
- package/es/components/table/src/components/Body/Body.vue2.mjs +1 -2
- package/es/components/table/src/components/Body/Body.vue2.mjs.map +1 -1
- package/es/components/table/src/components/Body/BodyCell.mjs +2 -2
- package/es/components/table/src/components/Body/BodyCell.mjs.map +1 -1
- package/es/components/table/src/components/Body/BodyRow.vue.mjs.map +1 -1
- package/es/components/table/src/components/Body/BodyRow.vue2.mjs +3 -3
- package/es/components/table/src/components/Body/BodyRow.vue2.mjs.map +1 -1
- package/es/components/table/src/components/Drag/RowHandler.vue.mjs.map +1 -1
- package/es/components/table/src/components/Drag/RowHandler.vue2.mjs +17 -16
- package/es/components/table/src/components/Drag/RowHandler.vue2.mjs.map +1 -1
- package/es/components/table/src/components/Header/HeaderCellTitle.vue.mjs +19 -7
- package/es/components/table/src/components/Header/HeaderCellTitle.vue.mjs.map +1 -1
- package/es/components/table/src/components/Header/HeaderCellTitle.vue2.mjs +1 -0
- package/es/components/table/src/components/Header/HeaderCellTitle.vue2.mjs.map +1 -1
- package/es/components/table/src/components/Header/HeaderExtraCell.vue.mjs.map +1 -1
- package/es/components/table/src/components/Header/HeaderExtraCell.vue2.mjs +1 -0
- package/es/components/table/src/components/Header/HeaderExtraCell.vue2.mjs.map +1 -1
- package/es/components/table/src/components/InteralTable.vue.d.ts +21 -0
- package/es/components/table/src/components/InteralTable.vue.mjs.map +1 -1
- package/es/components/table/src/components/InteralTable.vue2.mjs +11 -5
- package/es/components/table/src/components/InteralTable.vue2.mjs.map +1 -1
- package/es/components/table/src/components/Table.d.ts +25 -4
- package/es/components/table/src/components/Table.mjs +48 -14
- package/es/components/table/src/components/Table.mjs.map +1 -1
- package/es/components/table/src/components/ToolBar/ToolBar.vue.mjs +25 -6
- package/es/components/table/src/components/ToolBar/ToolBar.vue.mjs.map +1 -1
- package/es/components/table/src/components/ToolBar/ToolBar.vue2.mjs.map +1 -1
- package/es/components/table/src/components/interface.d.ts +33 -5
- package/es/components/table/src/components/interface.mjs +10 -1
- package/es/components/table/src/components/interface.mjs.map +1 -1
- package/es/components/table/src/hooks/useCellProps.mjs +3 -1
- package/es/components/table/src/hooks/useCellProps.mjs.map +1 -1
- package/es/components/table/src/hooks/useContainer.mjs +1 -1
- package/es/components/table/src/hooks/useContainer.mjs.map +1 -1
- package/es/components/table/src/hooks/useFetchData.mjs +13 -18
- package/es/components/table/src/hooks/useFetchData.mjs.map +1 -1
- package/es/components/table/src/hooks/useHover.d.ts +3 -0
- package/es/components/table/src/hooks/useHover.mjs +3 -1
- package/es/components/table/src/hooks/useHover.mjs.map +1 -1
- package/es/components/table/src/hooks/usePagination.d.ts +1 -0
- package/es/components/table/src/hooks/usePagination.mjs +7 -2
- package/es/components/table/src/hooks/usePagination.mjs.map +1 -1
- package/es/components/table/src/utils/genProColumnToColumn.mjs +5 -4
- package/es/components/table/src/utils/genProColumnToColumn.mjs.map +1 -1
- package/es/components/table/src/utils/util.d.ts +1 -1
- package/es/components/table/src/utils/util.mjs +1 -1
- package/es/components/table/src/utils/util.mjs.map +1 -1
- package/es/index.d.ts +65 -21
- package/es/utils/validate.d.ts +1 -1
- package/es/utils/validate.mjs +1 -1
- package/es/utils/validate.mjs.map +1 -1
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/lib/components/drawer/src/drawer.vue2.js +1 -1
- package/lib/components/drawer/src/drawer.vue2.js.map +1 -1
- package/lib/components/form/src/Form.d.ts +1 -1
- package/lib/components/form/src/base/BaseForm.d.ts +1 -1
- package/lib/components/form/src/base/BaseForm.js +14 -9
- package/lib/components/form/src/base/BaseForm.js.map +1 -1
- package/lib/components/form/src/base/StepForm.d.ts +1 -1
- package/lib/components/form/src/components/FormColWrapper.d.ts +9 -0
- package/lib/components/form/src/components/FormColWrapper.js +9 -1
- package/lib/components/form/src/components/FormColWrapper.js.map +1 -1
- package/lib/components/form/src/components/FormGroup.d.ts +6 -4
- package/lib/components/form/src/components/FormGroup.js +1 -1
- package/lib/components/form/src/components/FormGroup.js.map +1 -1
- package/lib/components/form/src/components/FormItem.d.ts +9 -0
- package/lib/components/form/src/components/FormItem.js +32 -24
- package/lib/components/form/src/components/FormItem.js.map +1 -1
- package/lib/components/form/src/components/FormItems.js +2 -1
- package/lib/components/form/src/components/FormItems.js.map +1 -1
- package/lib/components/form/src/components/FormList.d.ts +6 -4
- package/lib/components/form/src/components/FormList.js +1 -1
- package/lib/components/form/src/components/FormList.js.map +1 -1
- package/lib/components/form/src/components/FormListContainer.d.ts +6 -4
- package/lib/components/form/src/components/FormListContainer.js +1 -1
- package/lib/components/form/src/components/FormListContainer.js.map +1 -1
- package/lib/components/form/src/components/FormSet.d.ts +6 -4
- package/lib/components/form/src/components/FormSet.js +1 -1
- package/lib/components/form/src/components/FormSet.js.map +1 -1
- package/lib/components/form/src/components/FormSubmitter.d.ts +2 -2
- package/lib/components/form/src/components/FormSubmitter.js +25 -7
- package/lib/components/form/src/components/FormSubmitter.js.map +1 -1
- package/lib/components/form/src/components/FormTitle.d.ts +6 -4
- package/lib/components/form/src/components/FormTitle.js +11 -6
- package/lib/components/form/src/components/FormTitle.js.map +1 -1
- package/lib/components/form/src/hooks/useAction.d.ts +5 -3
- package/lib/components/form/src/hooks/useAction.js +29 -9
- package/lib/components/form/src/hooks/useAction.js.map +1 -1
- package/lib/components/form/src/hooks/useFieldValue.d.ts +1 -1
- package/lib/components/form/src/hooks/useFieldValue.js +11 -15
- package/lib/components/form/src/hooks/useFieldValue.js.map +1 -1
- package/lib/components/form/src/layouts/DrawerForm.d.ts +1 -1
- package/lib/components/form/src/layouts/ModalForm.d.ts +1 -1
- package/lib/components/form/src/layouts/QueryFilter.d.ts +1 -1
- package/lib/components/form/src/layouts/QueryFilter.js +14 -4
- package/lib/components/form/src/layouts/QueryFilter.js.map +1 -1
- package/lib/components/form/src/layouts/StepsForm.d.ts +1 -1
- package/lib/components/form/src/layouts/StepsForm.js +8 -8
- package/lib/components/form/src/layouts/StepsForm.js.map +1 -1
- package/lib/components/form/src/type.d.ts +24 -11
- package/lib/components/form/src/utils/transformer.d.ts +3 -0
- package/lib/components/form/src/utils/transformer.js +28 -0
- package/lib/components/form/src/utils/transformer.js.map +1 -0
- package/lib/components/modal/src/modal.vue2.js +1 -1
- package/lib/components/modal/src/modal.vue2.js.map +1 -1
- package/lib/components/table/src/components/Body/Body.vue.js.map +1 -1
- package/lib/components/table/src/components/Body/Body.vue2.js +1 -2
- package/lib/components/table/src/components/Body/Body.vue2.js.map +1 -1
- package/lib/components/table/src/components/Body/BodyCell.js +2 -2
- package/lib/components/table/src/components/Body/BodyCell.js.map +1 -1
- package/lib/components/table/src/components/Body/BodyRow.vue.js.map +1 -1
- package/lib/components/table/src/components/Body/BodyRow.vue2.js +3 -3
- package/lib/components/table/src/components/Body/BodyRow.vue2.js.map +1 -1
- package/lib/components/table/src/components/Drag/RowHandler.vue.js.map +1 -1
- package/lib/components/table/src/components/Drag/RowHandler.vue2.js +17 -16
- package/lib/components/table/src/components/Drag/RowHandler.vue2.js.map +1 -1
- package/lib/components/table/src/components/Header/HeaderCellTitle.vue.js +18 -6
- package/lib/components/table/src/components/Header/HeaderCellTitle.vue.js.map +1 -1
- package/lib/components/table/src/components/Header/HeaderCellTitle.vue2.js +1 -0
- package/lib/components/table/src/components/Header/HeaderCellTitle.vue2.js.map +1 -1
- package/lib/components/table/src/components/Header/HeaderExtraCell.vue.js.map +1 -1
- package/lib/components/table/src/components/Header/HeaderExtraCell.vue2.js +1 -0
- package/lib/components/table/src/components/Header/HeaderExtraCell.vue2.js.map +1 -1
- package/lib/components/table/src/components/InteralTable.vue.d.ts +21 -0
- package/lib/components/table/src/components/InteralTable.vue.js.map +1 -1
- package/lib/components/table/src/components/InteralTable.vue2.js +12 -6
- package/lib/components/table/src/components/InteralTable.vue2.js.map +1 -1
- package/lib/components/table/src/components/Table.d.ts +25 -4
- package/lib/components/table/src/components/Table.js +47 -13
- package/lib/components/table/src/components/Table.js.map +1 -1
- package/lib/components/table/src/components/ToolBar/ToolBar.vue.js +24 -5
- package/lib/components/table/src/components/ToolBar/ToolBar.vue.js.map +1 -1
- package/lib/components/table/src/components/ToolBar/ToolBar.vue2.js.map +1 -1
- package/lib/components/table/src/components/interface.d.ts +33 -5
- package/lib/components/table/src/components/interface.js +10 -1
- package/lib/components/table/src/components/interface.js.map +1 -1
- package/lib/components/table/src/hooks/useCellProps.js +3 -1
- package/lib/components/table/src/hooks/useCellProps.js.map +1 -1
- package/lib/components/table/src/hooks/useContainer.js +1 -1
- package/lib/components/table/src/hooks/useContainer.js.map +1 -1
- package/lib/components/table/src/hooks/useFetchData.js +13 -18
- package/lib/components/table/src/hooks/useFetchData.js.map +1 -1
- package/lib/components/table/src/hooks/useHover.d.ts +3 -0
- package/lib/components/table/src/hooks/useHover.js +2 -0
- package/lib/components/table/src/hooks/useHover.js.map +1 -1
- package/lib/components/table/src/hooks/usePagination.d.ts +1 -0
- package/lib/components/table/src/hooks/usePagination.js +7 -1
- package/lib/components/table/src/hooks/usePagination.js.map +1 -1
- package/lib/components/table/src/utils/genProColumnToColumn.js +5 -4
- package/lib/components/table/src/utils/genProColumnToColumn.js.map +1 -1
- package/lib/components/table/src/utils/util.d.ts +1 -1
- package/lib/components/table/src/utils/util.js +1 -1
- package/lib/components/table/src/utils/util.js.map +1 -1
- package/lib/index.d.ts +65 -21
- package/lib/utils/validate.d.ts +1 -1
- package/lib/utils/validate.js +1 -1
- package/lib/utils/validate.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +1 -1
- package/theme-chalk/css-var.css +1 -1
- package/theme-chalk/index.css +1 -1
- package/theme-chalk/pro-form.css +1 -1
- package/theme-chalk/src/css-var.less +154 -677
- package/theme-chalk/src/form.less +5 -0
- package/theme-chalk/src/table/alert.less +1 -0
- package/theme-chalk/src/table/table.less +3 -3
- package/theme-chalk/src/common/css-var.less +0 -914
@@ -20,7 +20,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
20
20
|
[`${_ctx.prefixCls}-header-cell-title-inner`]: true
|
21
21
|
}),
|
22
22
|
title: _ctx.altTitle,
|
23
|
-
style: vue.normalizeStyle(`
|
23
|
+
style: vue.normalizeStyle(`justify-content: ${_ctx.column.align}`)
|
24
24
|
}, [
|
25
25
|
vue.createElementVNode(
|
26
26
|
"span",
|
@@ -66,16 +66,28 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
66
66
|
1040
|
67
67
|
/* FULL_PROPS, DYNAMIC_SLOTS */
|
68
68
|
)) : vue.createCommentVNode("v-if", true),
|
69
|
-
_ctx.column.headerTooltip ? (vue.openBlock(), vue.createBlock(_component_Tooltip, {
|
70
|
-
|
71
|
-
|
72
|
-
|
69
|
+
_ctx.column.headerTooltip ? (vue.openBlock(), vue.createBlock(_component_Tooltip, { key: 1 }, {
|
70
|
+
title: vue.withCtx(() => [
|
71
|
+
_ctx.column.headerTooltip === true ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.title), { key: 0 })) : (vue.openBlock(), vue.createElementBlock(
|
72
|
+
vue.Fragment,
|
73
|
+
{ key: 1 },
|
74
|
+
[
|
75
|
+
vue.createTextVNode(
|
76
|
+
vue.toDisplayString(_ctx.column.headerTooltip),
|
77
|
+
1
|
78
|
+
/* TEXT */
|
79
|
+
)
|
80
|
+
],
|
81
|
+
64
|
82
|
+
/* STABLE_FRAGMENT */
|
83
|
+
))
|
84
|
+
]),
|
73
85
|
default: vue.withCtx(() => [
|
74
86
|
vue.createVNode(_component_InfoCircleOutlined, { style: { "margin-inline-start": "3px", "font-size": "12px" } })
|
75
87
|
]),
|
76
88
|
_: 1
|
77
89
|
/* STABLE */
|
78
|
-
}
|
90
|
+
})) : vue.createCommentVNode("v-if", true)
|
79
91
|
], 14, _hoisted_1);
|
80
92
|
}
|
81
93
|
var HeaderCellTitle = /* @__PURE__ */ _pluginVue_exportHelper.default(HeaderCellTitle_vue_vue_type_script_lang.default, [["render", _sfc_render]]);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"HeaderCellTitle.vue.js","sources":["../../../../../../../../packages/components/table/src/components/Header/HeaderCellTitle.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-12-17 11:35:56\n * @LastEditors: shen\n * @LastEditTime: 2025-
|
1
|
+
{"version":3,"file":"HeaderCellTitle.vue.js","sources":["../../../../../../../../packages/components/table/src/components/Header/HeaderCellTitle.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-12-17 11:35:56\n * @LastEditors: shen\n * @LastEditTime: 2025-09-29 13:25:11\n * @Description:\n-->\n<script lang=\"ts\">\nimport type { FinallyColumnType } from '../interface'\nimport type { PropType } from 'vue'\n\nimport { defineComponent, computed, h, renderSlot, Fragment, inject } from 'vue'\nimport { Popover, Tooltip } from 'ant-design-vue'\nimport { ExclamationCircleOutlined, InfoCircleOutlined } from '@ant-design/icons-vue'\nimport { useInjectSlots } from '../context/TableSlotsContext'\nimport { useInjectTable } from '../context/TableContext'\nimport { AUTO_HEADER_HEIGHT } from '../../utils/constant'\nimport { ensureValidVNode } from '../../utils/util'\nimport { RenderVNode } from '@pro-design-vue/utils'\n\nexport default defineComponent({\n name: 'HeaderCellTitle',\n components: { ExclamationCircleOutlined, InfoCircleOutlined, Popover, Tooltip, RenderVNode },\n props: {\n column: { type: Object as PropType<FinallyColumnType>, default: () => ({}) },\n prefixCls: String as PropType<string>,\n wrapText: Boolean as PropType<boolean>,\n },\n setup(props) {\n const tableSlotsContext = useInjectSlots()\n const tableContext = useInjectTable()\n const autoHeight = inject<boolean>(AUTO_HEADER_HEIGHT, false)\n\n const sortColumns = computed(() =>\n tableContext.sorterStates.value.map(({ column, sortOrder }) => ({\n column,\n order: sortOrder,\n })),\n )\n\n const title = computed(() =>\n h(Fragment, [\n renderSlot(\n tableSlotsContext,\n 'headerCell',\n {\n title: props.column.title,\n column: props.column.originColumn,\n },\n () => {\n return [\n typeof props.column.title == 'function'\n ? props.column.title({\n column: props.column.originColumn!,\n sortColumns: sortColumns.value,\n sortColumn: sortColumns.value[0]?.column,\n sortOrder: sortColumns.value[0]?.order,\n })\n : props.column.title,\n ]\n },\n ),\n ]),\n )\n\n const isShowPopover = computed(\n () =>\n !!ensureValidVNode(\n tableSlotsContext.headerCellPopover?.({\n title: props.column.title,\n column: props.column.originColumn!,\n }) ?? [],\n ),\n )\n\n const showCellPopover = computed(() => {\n return undefined === props.column.showCellPopover\n ? isShowPopover.value\n : props.column.showCellPopover\n })\n\n const popoverProps = computed(() =>\n 'boolean' == typeof showCellPopover.value ? {} : showCellPopover.value,\n )\n\n return {\n isShowPopover,\n tableSlotsContext,\n title,\n autoHeight,\n popoverProps,\n showCellPopover,\n altTitle: computed(() =>\n props.column.showTitle && typeof props.column.title == 'string' ? props.column.title : '',\n ),\n }\n },\n})\n</script>\n\n<template>\n <span\n :key=\"String('headerCell' in tableSlotsContext)\"\n :class=\"{\n [`${prefixCls}-header-cell-title-inner`]: true,\n }\"\n :title=\"altTitle\"\n :style=\"`justify-content: ${column.align}`\"\n >\n <span\n :class=\"{\n [`${prefixCls}-cell-wrap-text`]: wrapText,\n [`${prefixCls}-cell-text-ellipsis`]: column.ellipsis !== false && !autoHeight,\n }\"\n >\n <component :is=\"title\"></component>\n </span>\n <template v-if=\"showCellPopover\">\n <Popover v-bind=\"popoverProps\">\n <template #title v-if=\"!popoverProps?.title\">\n <component :is=\"title\"></component>\n </template>\n <template #content>\n <RenderVNode\n v-if=\"tableSlotsContext.headerCellPopover\"\n :vnode=\"\n tableSlotsContext.headerCellPopover({\n title: column.title,\n column: column.originColumn!,\n })\n \"\n />\n </template>\n <ExclamationCircleOutlined style=\"margin-inline-start: 3px; font-size: 12px\" />\n </Popover>\n </template>\n <template v-if=\"column.headerTooltip\">\n <Tooltip>\n <InfoCircleOutlined style=\"margin-inline-start: 3px; font-size: 12px\" />\n <template #title>\n <component :is=\"title\" v-if=\"column.headerTooltip === true\"></component>\n <template v-else>{{ column.headerTooltip }}</template>\n </template>\n </Tooltip>\n </template>\n </span>\n</template>\n"],"names":["_createElementBlock","_normalizeClass","_normalizeStyle","_createElementVNode","_openBlock","_createBlock","_resolveDynamicComponent","_normalizeProps","_mergeProps","_createSlots","_withCtx","_createVNode","_Fragment","_createTextVNode","_toDisplayString"],"mappings":"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"}
|
@@ -42,6 +42,7 @@ var _sfc_main = vue.defineComponent({
|
|
42
42
|
var _a, _b;
|
43
43
|
return [
|
44
44
|
typeof props.column.title == "function" ? props.column.title({
|
45
|
+
column: props.column.originColumn,
|
45
46
|
sortColumns: sortColumns.value,
|
46
47
|
sortColumn: (_a = sortColumns.value[0]) == null ? void 0 : _a.column,
|
47
48
|
sortOrder: (_b = sortColumns.value[0]) == null ? void 0 : _b.order
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"HeaderCellTitle.vue2.js","sources":["../../../../../../../../packages/components/table/src/components/Header/HeaderCellTitle.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-12-17 11:35:56\n * @LastEditors: shen\n * @LastEditTime: 2025-
|
1
|
+
{"version":3,"file":"HeaderCellTitle.vue2.js","sources":["../../../../../../../../packages/components/table/src/components/Header/HeaderCellTitle.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-12-17 11:35:56\n * @LastEditors: shen\n * @LastEditTime: 2025-09-29 13:25:11\n * @Description:\n-->\n<script lang=\"ts\">\nimport type { FinallyColumnType } from '../interface'\nimport type { PropType } from 'vue'\n\nimport { defineComponent, computed, h, renderSlot, Fragment, inject } from 'vue'\nimport { Popover, Tooltip } from 'ant-design-vue'\nimport { ExclamationCircleOutlined, InfoCircleOutlined } from '@ant-design/icons-vue'\nimport { useInjectSlots } from '../context/TableSlotsContext'\nimport { useInjectTable } from '../context/TableContext'\nimport { AUTO_HEADER_HEIGHT } from '../../utils/constant'\nimport { ensureValidVNode } from '../../utils/util'\nimport { RenderVNode } from '@pro-design-vue/utils'\n\nexport default defineComponent({\n name: 'HeaderCellTitle',\n components: { ExclamationCircleOutlined, InfoCircleOutlined, Popover, Tooltip, RenderVNode },\n props: {\n column: { type: Object as PropType<FinallyColumnType>, default: () => ({}) },\n prefixCls: String as PropType<string>,\n wrapText: Boolean as PropType<boolean>,\n },\n setup(props) {\n const tableSlotsContext = useInjectSlots()\n const tableContext = useInjectTable()\n const autoHeight = inject<boolean>(AUTO_HEADER_HEIGHT, false)\n\n const sortColumns = computed(() =>\n tableContext.sorterStates.value.map(({ column, sortOrder }) => ({\n column,\n order: sortOrder,\n })),\n )\n\n const title = computed(() =>\n h(Fragment, [\n renderSlot(\n tableSlotsContext,\n 'headerCell',\n {\n title: props.column.title,\n column: props.column.originColumn,\n },\n () => {\n return [\n typeof props.column.title == 'function'\n ? props.column.title({\n column: props.column.originColumn!,\n sortColumns: sortColumns.value,\n sortColumn: sortColumns.value[0]?.column,\n sortOrder: sortColumns.value[0]?.order,\n })\n : props.column.title,\n ]\n },\n ),\n ]),\n )\n\n const isShowPopover = computed(\n () =>\n !!ensureValidVNode(\n tableSlotsContext.headerCellPopover?.({\n title: props.column.title,\n column: props.column.originColumn!,\n }) ?? [],\n ),\n )\n\n const showCellPopover = computed(() => {\n return undefined === props.column.showCellPopover\n ? isShowPopover.value\n : props.column.showCellPopover\n })\n\n const popoverProps = computed(() =>\n 'boolean' == typeof showCellPopover.value ? {} : showCellPopover.value,\n )\n\n return {\n isShowPopover,\n tableSlotsContext,\n title,\n autoHeight,\n popoverProps,\n showCellPopover,\n altTitle: computed(() =>\n props.column.showTitle && typeof props.column.title == 'string' ? props.column.title : '',\n ),\n }\n },\n})\n</script>\n\n<template>\n <span\n :key=\"String('headerCell' in tableSlotsContext)\"\n :class=\"{\n [`${prefixCls}-header-cell-title-inner`]: true,\n }\"\n :title=\"altTitle\"\n :style=\"`justify-content: ${column.align}`\"\n >\n <span\n :class=\"{\n [`${prefixCls}-cell-wrap-text`]: wrapText,\n [`${prefixCls}-cell-text-ellipsis`]: column.ellipsis !== false && !autoHeight,\n }\"\n >\n <component :is=\"title\"></component>\n </span>\n <template v-if=\"showCellPopover\">\n <Popover v-bind=\"popoverProps\">\n <template #title v-if=\"!popoverProps?.title\">\n <component :is=\"title\"></component>\n </template>\n <template #content>\n <RenderVNode\n v-if=\"tableSlotsContext.headerCellPopover\"\n :vnode=\"\n tableSlotsContext.headerCellPopover({\n title: column.title,\n column: column.originColumn!,\n })\n \"\n />\n </template>\n <ExclamationCircleOutlined style=\"margin-inline-start: 3px; font-size: 12px\" />\n </Popover>\n </template>\n <template v-if=\"column.headerTooltip\">\n <Tooltip>\n <InfoCircleOutlined style=\"margin-inline-start: 3px; font-size: 12px\" />\n <template #title>\n <component :is=\"title\" v-if=\"column.headerTooltip === true\"></component>\n <template v-else>{{ column.headerTooltip }}</template>\n </template>\n </Tooltip>\n </template>\n </span>\n</template>\n"],"names":["defineComponent","ExclamationCircleOutlined","InfoCircleOutlined","Popover","Tooltip","RenderVNode","useInjectSlots","useInjectTable","inject","AUTO_HEADER_HEIGHT","computed","h","Fragment","renderSlot","ensureValidVNode"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"HeaderExtraCell.vue.js","sources":["../../../../../../../../packages/components/table/src/components/Header/HeaderExtraCell.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-06 16:03:18\n * @LastEditors: shen\n * @LastEditTime: 2025-07-28 09:05:37\n * @Description:\n-->\n<script lang=\"ts\">\nimport type { CSSProperties, PropType } from 'vue'\nimport type { FinallyColumnType, DefaultRecordType, Key } from '../interface'\n\nimport { defineComponent, inject, computed, Fragment, h } from 'vue'\nimport { Dropdown, Menu, MenuItem } from 'ant-design-vue'\nimport { DownOutlined } from '@ant-design/icons-vue'\nimport { AUTO_HEADER_HEIGHT } from '../../utils/constant'\nimport { getCellFixedInfo } from '../../utils/fixUtil'\nimport { useInjectTable } from '../context/TableContext'\nimport supportSticky from '../../utils/supportSticky'\nimport eagerComputed from '../../utils/eagerComputed'\nimport Checkbox from '../Checkbox'\n\nexport default defineComponent({\n name: 'HeaderExtraCell',\n components: {\n Checkbox,\n Dropdown,\n AMenu: Menu,\n MenuItem,\n DownOutlined,\n },\n props: {\n component: { type: String, default: 'div' },\n prefixCls: String,\n column: { type: Object as PropType<FinallyColumnType<DefaultRecordType>>, default: () => ({}) },\n additionalProps: Object,\n },\n setup(props) {\n const autoHeight = inject<boolean>(AUTO_HEADER_HEIGHT, false)\n const tableContext = useInjectTable()\n const { pageDataEnableRowKeys, getRecordByKey, mergedRowSelection } = tableContext\n const {\n checkedCurrentAll,\n checkedCurrentSome,\n allDisabled,\n allDisabledAndChecked,\n allDisabledSomeChecked,\n mergedSelections,\n setSelectedKeys,\n } = tableContext.selection\n\n const rowSelectionType = computed(() => tableContext.mergedRowSelection.value.type)\n const hideSelectAll = computed(() => tableContext.mergedRowSelection.value.hideSelectAll)\n const derivedSelectedKeySet = computed(() => tableContext.selection.derivedSelectedKeySet.value)\n const sortColumns = computed(() =>\n tableContext.sorterStates.value.map(({ column, sortOrder }) => ({\n column,\n order: sortOrder,\n })),\n )\n\n const title = computed(() => {\n return h(Fragment, [\n typeof props.column.title == 'function'\n ? props.column.title({\n sortColumns: sortColumns.value,\n sortColumn: sortColumns.value[0]?.column,\n sortOrder: sortColumns.value[0]?.order,\n })\n : props.column.title,\n ])\n })\n\n const cellFixedInfo = computed(() => {\n if (autoHeight) {\n const additionalProps = props.additionalProps!\n return getCellFixedInfo(\n additionalProps.colstart,\n additionalProps.colend,\n tableContext.allColumns.value,\n tableContext.stickyOffsets.value,\n tableContext.props.direction,\n )\n }\n return undefined\n })\n\n const cellClass = computed(() => {\n const { prefixCls } = props\n let cellFixedCls = {}\n if (cellFixedInfo.value && supportSticky) {\n const autoCellPrefixCls = `${prefixCls}-cell`,\n { fixLeft, fixRight, firstFixLeft, lastFixLeft, firstFixRight, lastFixRight } =\n cellFixedInfo.value\n cellFixedCls = {\n [`${autoCellPrefixCls}-fix-left`]: typeof fixLeft === 'number',\n [`${autoCellPrefixCls}-fix-left-first`]: firstFixLeft,\n [`${autoCellPrefixCls}-fix-left-last`]: lastFixLeft,\n [`${autoCellPrefixCls}-fix-right`]: typeof fixRight == 'number',\n [`${autoCellPrefixCls}-fix-right-first`]: firstFixRight,\n [`${autoCellPrefixCls}-fix-right-last`]: lastFixRight,\n }\n }\n return Object.assign(\n {\n [`${prefixCls}-cell`]: true,\n [`${prefixCls}-header-cell`]: true,\n [`${prefixCls}-header-extra-cell`]: true,\n },\n cellFixedCls,\n )\n })\n\n return {\n cellClass,\n componentStyle: computed(() => {\n const styles: CSSProperties = {}\n if (cellFixedInfo.value && supportSticky) {\n const { fixLeft, fixRight } = cellFixedInfo.value\n if (typeof fixLeft == 'number') {\n styles.position = 'sticky'\n styles.left = `${fixLeft}px`\n }\n if (typeof fixRight == 'number') {\n styles.position = 'sticky'\n styles.right = `${fixRight}px`\n }\n }\n return autoHeight ? styles : { height: `${props.column.height}px` }\n }),\n getPopupContainer: computed(() => tableContext.getPopupContainer.value),\n rowSelectionType,\n hideSelectAll,\n onSelectAllChange: () => {\n const changeRows: Key[] = []\n const copyDerivedSelectedKeySet = new Set(derivedSelectedKeySet.value)\n if (checkedCurrentAll.value) {\n pageDataEnableRowKeys.value.forEach((key: Key) => {\n copyDerivedSelectedKeySet.delete(key)\n changeRows.push(key)\n })\n } else {\n pageDataEnableRowKeys.value.forEach((key: Key) => {\n if (!copyDerivedSelectedKeySet.has(key)) {\n copyDerivedSelectedKeySet.add(key)\n changeRows.push(key)\n }\n })\n }\n\n const selectedRows: Key[] = Array.from(copyDerivedSelectedKeySet)\n mergedRowSelection.value.onSelectAll?.(\n !checkedCurrentAll,\n selectedRows.map((key: Key) => getRecordByKey(key)),\n changeRows.map((key: Key) => getRecordByKey(key)),\n )\n setSelectedKeys(selectedRows)\n },\n checked: eagerComputed(() =>\n allDisabled.value\n ? allDisabledAndChecked.value\n : !!tableContext.flattenData.value.length && checkedCurrentAll.value,\n ),\n indeterminate: eagerComputed(() =>\n allDisabled.value\n ? !allDisabledAndChecked.value && allDisabledSomeChecked.value\n : !checkedCurrentAll.value && checkedCurrentSome.value,\n ),\n disabled: eagerComputed(\n () => tableContext.flattenData.value.length === 0 || allDisabled.value,\n ),\n mergedSelections,\n onMenuClick: (callback: any) => {\n callback?.(pageDataEnableRowKeys.value)\n },\n autoHeight,\n title,\n h,\n Fragment,\n }\n },\n})\n</script>\n\n<template>\n <component\n :is=\"component\"\n tabindex=\"-1\"\n role=\"cell\"\n :class=\"cellClass\"\n :style=\"componentStyle\"\n v-bind=\"additionalProps\"\n @click.stop\n >\n <template\n v-if=\"column.type !== 'checkbox' || rowSelectionType === 'radio' || hideSelectAll\"\n ></template>\n <div v-else :class=\"`${prefixCls}-selection-wrap`\">\n <div :class=\"`${prefixCls}-selection`\">\n <component v-if=\"column.title\" :is=\"title\" />\n <template v-else>\n <Checkbox\n :prefix-cls=\"prefixCls\"\n :indeterminate=\"indeterminate\"\n :disabled=\"disabled\"\n :checked=\"checked\"\n :aria-label=\"\n checked\n ? 'Press Space to toggle all row selection (checked)'\n : 'Press Space to toggle all row selection (unchecked)'\n \"\n @change=\"onSelectAllChange\"\n />\n <div v-if=\"mergedSelections\" :class=\"`${prefixCls}-selection-extra`\">\n <Dropdown :get-popup-container=\"getPopupContainer\">\n <span>\n <DownOutlined :class=\"`${prefixCls}-selection-extra-dropdown-icon`\" />\n </span>\n <template #overlay>\n <AMenu :get-popup-container=\"getPopupContainer\">\n <template\n v-for=\"(item, index) in mergedSelections\"\n :key=\"(item && item.key) || index\"\n >\n <MenuItem\n v-if=\"item\"\n :key=\"item.key || index\"\n @click=\"onMenuClick(item.onSelect)\"\n >\n <component\n :is=\"\n h(Fragment, [\n typeof item.text == 'function' ? item.text(item) : item.text,\n ])\n \"\n ></component>\n </MenuItem>\n </template>\n </AMenu>\n </template>\n </Dropdown>\n </div>\n </template>\n </div>\n </div>\n </component>\n</template>\n"],"names":["_createBlock","_resolveDynamicComponent","_mergeProps","_withModifiers","_openBlock","_createElementBlock","_Fragment","_normalizeClass","_createElementVNode","_createVNode","_withCtx","_renderList"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"HeaderExtraCell.vue.js","sources":["../../../../../../../../packages/components/table/src/components/Header/HeaderExtraCell.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-06 16:03:18\n * @LastEditors: shen\n * @LastEditTime: 2025-09-30 16:52:24\n * @Description:\n-->\n<script lang=\"ts\">\nimport type { CSSProperties, PropType } from 'vue'\nimport type { FinallyColumnType, DefaultRecordType, Key } from '../interface'\n\nimport { defineComponent, inject, computed, Fragment, h } from 'vue'\nimport { Dropdown, Menu, MenuItem } from 'ant-design-vue'\nimport { DownOutlined } from '@ant-design/icons-vue'\nimport { AUTO_HEADER_HEIGHT } from '../../utils/constant'\nimport { getCellFixedInfo } from '../../utils/fixUtil'\nimport { useInjectTable } from '../context/TableContext'\nimport supportSticky from '../../utils/supportSticky'\nimport eagerComputed from '../../utils/eagerComputed'\nimport Checkbox from '../Checkbox'\n\nexport default defineComponent({\n name: 'HeaderExtraCell',\n components: {\n Checkbox,\n Dropdown,\n AMenu: Menu,\n MenuItem,\n DownOutlined,\n },\n props: {\n component: { type: String, default: 'div' },\n prefixCls: String,\n column: { type: Object as PropType<FinallyColumnType<DefaultRecordType>>, default: () => ({}) },\n additionalProps: Object,\n },\n setup(props) {\n const autoHeight = inject<boolean>(AUTO_HEADER_HEIGHT, false)\n const tableContext = useInjectTable()\n const { pageDataEnableRowKeys, getRecordByKey, mergedRowSelection } = tableContext\n const {\n checkedCurrentAll,\n checkedCurrentSome,\n allDisabled,\n allDisabledAndChecked,\n allDisabledSomeChecked,\n mergedSelections,\n setSelectedKeys,\n } = tableContext.selection\n\n const rowSelectionType = computed(() => tableContext.mergedRowSelection.value.type)\n const hideSelectAll = computed(() => tableContext.mergedRowSelection.value.hideSelectAll)\n const derivedSelectedKeySet = computed(() => tableContext.selection.derivedSelectedKeySet.value)\n const sortColumns = computed(() =>\n tableContext.sorterStates.value.map(({ column, sortOrder }) => ({\n column,\n order: sortOrder,\n })),\n )\n\n const title = computed(() => {\n return h(Fragment, [\n typeof props.column.title == 'function'\n ? props.column.title({\n column: props.column.originColumn!,\n sortColumns: sortColumns.value,\n sortColumn: sortColumns.value[0]?.column,\n sortOrder: sortColumns.value[0]?.order,\n })\n : props.column.title,\n ])\n })\n\n const cellFixedInfo = computed(() => {\n if (autoHeight) {\n const additionalProps = props.additionalProps!\n return getCellFixedInfo(\n additionalProps.colstart,\n additionalProps.colend,\n tableContext.allColumns.value,\n tableContext.stickyOffsets.value,\n tableContext.props.direction,\n )\n }\n return undefined\n })\n\n const cellClass = computed(() => {\n const { prefixCls } = props\n let cellFixedCls = {}\n if (cellFixedInfo.value && supportSticky) {\n const autoCellPrefixCls = `${prefixCls}-cell`,\n { fixLeft, fixRight, firstFixLeft, lastFixLeft, firstFixRight, lastFixRight } =\n cellFixedInfo.value\n cellFixedCls = {\n [`${autoCellPrefixCls}-fix-left`]: typeof fixLeft === 'number',\n [`${autoCellPrefixCls}-fix-left-first`]: firstFixLeft,\n [`${autoCellPrefixCls}-fix-left-last`]: lastFixLeft,\n [`${autoCellPrefixCls}-fix-right`]: typeof fixRight == 'number',\n [`${autoCellPrefixCls}-fix-right-first`]: firstFixRight,\n [`${autoCellPrefixCls}-fix-right-last`]: lastFixRight,\n }\n }\n return Object.assign(\n {\n [`${prefixCls}-cell`]: true,\n [`${prefixCls}-header-cell`]: true,\n [`${prefixCls}-header-extra-cell`]: true,\n },\n cellFixedCls,\n )\n })\n\n return {\n cellClass,\n componentStyle: computed(() => {\n const styles: CSSProperties = {}\n if (cellFixedInfo.value && supportSticky) {\n const { fixLeft, fixRight } = cellFixedInfo.value\n if (typeof fixLeft == 'number') {\n styles.position = 'sticky'\n styles.left = `${fixLeft}px`\n }\n if (typeof fixRight == 'number') {\n styles.position = 'sticky'\n styles.right = `${fixRight}px`\n }\n }\n return autoHeight ? styles : { height: `${props.column.height}px` }\n }),\n getPopupContainer: computed(() => tableContext.getPopupContainer.value),\n rowSelectionType,\n hideSelectAll,\n onSelectAllChange: () => {\n const changeRows: Key[] = []\n const copyDerivedSelectedKeySet = new Set(derivedSelectedKeySet.value)\n if (checkedCurrentAll.value) {\n pageDataEnableRowKeys.value.forEach((key: Key) => {\n copyDerivedSelectedKeySet.delete(key)\n changeRows.push(key)\n })\n } else {\n pageDataEnableRowKeys.value.forEach((key: Key) => {\n if (!copyDerivedSelectedKeySet.has(key)) {\n copyDerivedSelectedKeySet.add(key)\n changeRows.push(key)\n }\n })\n }\n\n const selectedRows: Key[] = Array.from(copyDerivedSelectedKeySet)\n mergedRowSelection.value.onSelectAll?.(\n !checkedCurrentAll,\n selectedRows.map((key: Key) => getRecordByKey(key)),\n changeRows.map((key: Key) => getRecordByKey(key)),\n )\n setSelectedKeys(selectedRows)\n },\n checked: eagerComputed(() =>\n allDisabled.value\n ? allDisabledAndChecked.value\n : !!tableContext.flattenData.value.length && checkedCurrentAll.value,\n ),\n indeterminate: eagerComputed(() =>\n allDisabled.value\n ? !allDisabledAndChecked.value && allDisabledSomeChecked.value\n : !checkedCurrentAll.value && checkedCurrentSome.value,\n ),\n disabled: eagerComputed(\n () => tableContext.flattenData.value.length === 0 || allDisabled.value,\n ),\n mergedSelections,\n onMenuClick: (callback: any) => {\n callback?.(pageDataEnableRowKeys.value)\n },\n autoHeight,\n title,\n h,\n Fragment,\n }\n },\n})\n</script>\n\n<template>\n <component\n :is=\"component\"\n tabindex=\"-1\"\n role=\"cell\"\n :class=\"cellClass\"\n :style=\"componentStyle\"\n v-bind=\"additionalProps\"\n @click.stop\n >\n <template\n v-if=\"column.type !== 'checkbox' || rowSelectionType === 'radio' || hideSelectAll\"\n ></template>\n <div v-else :class=\"`${prefixCls}-selection-wrap`\">\n <div :class=\"`${prefixCls}-selection`\">\n <component v-if=\"column.title\" :is=\"title\" />\n <template v-else>\n <Checkbox\n :prefix-cls=\"prefixCls\"\n :indeterminate=\"indeterminate\"\n :disabled=\"disabled\"\n :checked=\"checked\"\n :aria-label=\"\n checked\n ? 'Press Space to toggle all row selection (checked)'\n : 'Press Space to toggle all row selection (unchecked)'\n \"\n @change=\"onSelectAllChange\"\n />\n <div v-if=\"mergedSelections\" :class=\"`${prefixCls}-selection-extra`\">\n <Dropdown :get-popup-container=\"getPopupContainer\">\n <span>\n <DownOutlined :class=\"`${prefixCls}-selection-extra-dropdown-icon`\" />\n </span>\n <template #overlay>\n <AMenu :get-popup-container=\"getPopupContainer\">\n <template\n v-for=\"(item, index) in mergedSelections\"\n :key=\"(item && item.key) || index\"\n >\n <MenuItem\n v-if=\"item\"\n :key=\"item.key || index\"\n @click=\"onMenuClick(item.onSelect)\"\n >\n <component\n :is=\"\n h(Fragment, [\n typeof item.text == 'function' ? item.text(item) : item.text,\n ])\n \"\n ></component>\n </MenuItem>\n </template>\n </AMenu>\n </template>\n </Dropdown>\n </div>\n </template>\n </div>\n </div>\n </component>\n</template>\n"],"names":["_createBlock","_resolveDynamicComponent","_mergeProps","_withModifiers","_openBlock","_createElementBlock","_Fragment","_normalizeClass","_createElementVNode","_createVNode","_withCtx","_renderList"],"mappings":"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"}
|
@@ -53,6 +53,7 @@ var _sfc_main = vue.defineComponent({
|
|
53
53
|
var _a, _b;
|
54
54
|
return vue.h(vue.Fragment, [
|
55
55
|
typeof props.column.title == "function" ? props.column.title({
|
56
|
+
column: props.column.originColumn,
|
56
57
|
sortColumns: sortColumns.value,
|
57
58
|
sortColumn: (_a = sortColumns.value[0]) == null ? void 0 : _a.column,
|
58
59
|
sortOrder: (_b = sortColumns.value[0]) == null ? void 0 : _b.order
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"HeaderExtraCell.vue2.js","sources":["../../../../../../../../packages/components/table/src/components/Header/HeaderExtraCell.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-06 16:03:18\n * @LastEditors: shen\n * @LastEditTime: 2025-07-28 09:05:37\n * @Description:\n-->\n<script lang=\"ts\">\nimport type { CSSProperties, PropType } from 'vue'\nimport type { FinallyColumnType, DefaultRecordType, Key } from '../interface'\n\nimport { defineComponent, inject, computed, Fragment, h } from 'vue'\nimport { Dropdown, Menu, MenuItem } from 'ant-design-vue'\nimport { DownOutlined } from '@ant-design/icons-vue'\nimport { AUTO_HEADER_HEIGHT } from '../../utils/constant'\nimport { getCellFixedInfo } from '../../utils/fixUtil'\nimport { useInjectTable } from '../context/TableContext'\nimport supportSticky from '../../utils/supportSticky'\nimport eagerComputed from '../../utils/eagerComputed'\nimport Checkbox from '../Checkbox'\n\nexport default defineComponent({\n name: 'HeaderExtraCell',\n components: {\n Checkbox,\n Dropdown,\n AMenu: Menu,\n MenuItem,\n DownOutlined,\n },\n props: {\n component: { type: String, default: 'div' },\n prefixCls: String,\n column: { type: Object as PropType<FinallyColumnType<DefaultRecordType>>, default: () => ({}) },\n additionalProps: Object,\n },\n setup(props) {\n const autoHeight = inject<boolean>(AUTO_HEADER_HEIGHT, false)\n const tableContext = useInjectTable()\n const { pageDataEnableRowKeys, getRecordByKey, mergedRowSelection } = tableContext\n const {\n checkedCurrentAll,\n checkedCurrentSome,\n allDisabled,\n allDisabledAndChecked,\n allDisabledSomeChecked,\n mergedSelections,\n setSelectedKeys,\n } = tableContext.selection\n\n const rowSelectionType = computed(() => tableContext.mergedRowSelection.value.type)\n const hideSelectAll = computed(() => tableContext.mergedRowSelection.value.hideSelectAll)\n const derivedSelectedKeySet = computed(() => tableContext.selection.derivedSelectedKeySet.value)\n const sortColumns = computed(() =>\n tableContext.sorterStates.value.map(({ column, sortOrder }) => ({\n column,\n order: sortOrder,\n })),\n )\n\n const title = computed(() => {\n return h(Fragment, [\n typeof props.column.title == 'function'\n ? props.column.title({\n sortColumns: sortColumns.value,\n sortColumn: sortColumns.value[0]?.column,\n sortOrder: sortColumns.value[0]?.order,\n })\n : props.column.title,\n ])\n })\n\n const cellFixedInfo = computed(() => {\n if (autoHeight) {\n const additionalProps = props.additionalProps!\n return getCellFixedInfo(\n additionalProps.colstart,\n additionalProps.colend,\n tableContext.allColumns.value,\n tableContext.stickyOffsets.value,\n tableContext.props.direction,\n )\n }\n return undefined\n })\n\n const cellClass = computed(() => {\n const { prefixCls } = props\n let cellFixedCls = {}\n if (cellFixedInfo.value && supportSticky) {\n const autoCellPrefixCls = `${prefixCls}-cell`,\n { fixLeft, fixRight, firstFixLeft, lastFixLeft, firstFixRight, lastFixRight } =\n cellFixedInfo.value\n cellFixedCls = {\n [`${autoCellPrefixCls}-fix-left`]: typeof fixLeft === 'number',\n [`${autoCellPrefixCls}-fix-left-first`]: firstFixLeft,\n [`${autoCellPrefixCls}-fix-left-last`]: lastFixLeft,\n [`${autoCellPrefixCls}-fix-right`]: typeof fixRight == 'number',\n [`${autoCellPrefixCls}-fix-right-first`]: firstFixRight,\n [`${autoCellPrefixCls}-fix-right-last`]: lastFixRight,\n }\n }\n return Object.assign(\n {\n [`${prefixCls}-cell`]: true,\n [`${prefixCls}-header-cell`]: true,\n [`${prefixCls}-header-extra-cell`]: true,\n },\n cellFixedCls,\n )\n })\n\n return {\n cellClass,\n componentStyle: computed(() => {\n const styles: CSSProperties = {}\n if (cellFixedInfo.value && supportSticky) {\n const { fixLeft, fixRight } = cellFixedInfo.value\n if (typeof fixLeft == 'number') {\n styles.position = 'sticky'\n styles.left = `${fixLeft}px`\n }\n if (typeof fixRight == 'number') {\n styles.position = 'sticky'\n styles.right = `${fixRight}px`\n }\n }\n return autoHeight ? styles : { height: `${props.column.height}px` }\n }),\n getPopupContainer: computed(() => tableContext.getPopupContainer.value),\n rowSelectionType,\n hideSelectAll,\n onSelectAllChange: () => {\n const changeRows: Key[] = []\n const copyDerivedSelectedKeySet = new Set(derivedSelectedKeySet.value)\n if (checkedCurrentAll.value) {\n pageDataEnableRowKeys.value.forEach((key: Key) => {\n copyDerivedSelectedKeySet.delete(key)\n changeRows.push(key)\n })\n } else {\n pageDataEnableRowKeys.value.forEach((key: Key) => {\n if (!copyDerivedSelectedKeySet.has(key)) {\n copyDerivedSelectedKeySet.add(key)\n changeRows.push(key)\n }\n })\n }\n\n const selectedRows: Key[] = Array.from(copyDerivedSelectedKeySet)\n mergedRowSelection.value.onSelectAll?.(\n !checkedCurrentAll,\n selectedRows.map((key: Key) => getRecordByKey(key)),\n changeRows.map((key: Key) => getRecordByKey(key)),\n )\n setSelectedKeys(selectedRows)\n },\n checked: eagerComputed(() =>\n allDisabled.value\n ? allDisabledAndChecked.value\n : !!tableContext.flattenData.value.length && checkedCurrentAll.value,\n ),\n indeterminate: eagerComputed(() =>\n allDisabled.value\n ? !allDisabledAndChecked.value && allDisabledSomeChecked.value\n : !checkedCurrentAll.value && checkedCurrentSome.value,\n ),\n disabled: eagerComputed(\n () => tableContext.flattenData.value.length === 0 || allDisabled.value,\n ),\n mergedSelections,\n onMenuClick: (callback: any) => {\n callback?.(pageDataEnableRowKeys.value)\n },\n autoHeight,\n title,\n h,\n Fragment,\n }\n },\n})\n</script>\n\n<template>\n <component\n :is=\"component\"\n tabindex=\"-1\"\n role=\"cell\"\n :class=\"cellClass\"\n :style=\"componentStyle\"\n v-bind=\"additionalProps\"\n @click.stop\n >\n <template\n v-if=\"column.type !== 'checkbox' || rowSelectionType === 'radio' || hideSelectAll\"\n ></template>\n <div v-else :class=\"`${prefixCls}-selection-wrap`\">\n <div :class=\"`${prefixCls}-selection`\">\n <component v-if=\"column.title\" :is=\"title\" />\n <template v-else>\n <Checkbox\n :prefix-cls=\"prefixCls\"\n :indeterminate=\"indeterminate\"\n :disabled=\"disabled\"\n :checked=\"checked\"\n :aria-label=\"\n checked\n ? 'Press Space to toggle all row selection (checked)'\n : 'Press Space to toggle all row selection (unchecked)'\n \"\n @change=\"onSelectAllChange\"\n />\n <div v-if=\"mergedSelections\" :class=\"`${prefixCls}-selection-extra`\">\n <Dropdown :get-popup-container=\"getPopupContainer\">\n <span>\n <DownOutlined :class=\"`${prefixCls}-selection-extra-dropdown-icon`\" />\n </span>\n <template #overlay>\n <AMenu :get-popup-container=\"getPopupContainer\">\n <template\n v-for=\"(item, index) in mergedSelections\"\n :key=\"(item && item.key) || index\"\n >\n <MenuItem\n v-if=\"item\"\n :key=\"item.key || index\"\n @click=\"onMenuClick(item.onSelect)\"\n >\n <component\n :is=\"\n h(Fragment, [\n typeof item.text == 'function' ? item.text(item) : item.text,\n ])\n \"\n ></component>\n </MenuItem>\n </template>\n </AMenu>\n </template>\n </Dropdown>\n </div>\n </template>\n </div>\n </div>\n </component>\n</template>\n"],"names":["defineComponent","Checkbox","Dropdown","Menu","MenuItem","DownOutlined","inject","AUTO_HEADER_HEIGHT","useInjectTable","computed","h","Fragment","getCellFixedInfo","supportSticky","eagerComputed"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"HeaderExtraCell.vue2.js","sources":["../../../../../../../../packages/components/table/src/components/Header/HeaderExtraCell.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-06 16:03:18\n * @LastEditors: shen\n * @LastEditTime: 2025-09-30 16:52:24\n * @Description:\n-->\n<script lang=\"ts\">\nimport type { CSSProperties, PropType } from 'vue'\nimport type { FinallyColumnType, DefaultRecordType, Key } from '../interface'\n\nimport { defineComponent, inject, computed, Fragment, h } from 'vue'\nimport { Dropdown, Menu, MenuItem } from 'ant-design-vue'\nimport { DownOutlined } from '@ant-design/icons-vue'\nimport { AUTO_HEADER_HEIGHT } from '../../utils/constant'\nimport { getCellFixedInfo } from '../../utils/fixUtil'\nimport { useInjectTable } from '../context/TableContext'\nimport supportSticky from '../../utils/supportSticky'\nimport eagerComputed from '../../utils/eagerComputed'\nimport Checkbox from '../Checkbox'\n\nexport default defineComponent({\n name: 'HeaderExtraCell',\n components: {\n Checkbox,\n Dropdown,\n AMenu: Menu,\n MenuItem,\n DownOutlined,\n },\n props: {\n component: { type: String, default: 'div' },\n prefixCls: String,\n column: { type: Object as PropType<FinallyColumnType<DefaultRecordType>>, default: () => ({}) },\n additionalProps: Object,\n },\n setup(props) {\n const autoHeight = inject<boolean>(AUTO_HEADER_HEIGHT, false)\n const tableContext = useInjectTable()\n const { pageDataEnableRowKeys, getRecordByKey, mergedRowSelection } = tableContext\n const {\n checkedCurrentAll,\n checkedCurrentSome,\n allDisabled,\n allDisabledAndChecked,\n allDisabledSomeChecked,\n mergedSelections,\n setSelectedKeys,\n } = tableContext.selection\n\n const rowSelectionType = computed(() => tableContext.mergedRowSelection.value.type)\n const hideSelectAll = computed(() => tableContext.mergedRowSelection.value.hideSelectAll)\n const derivedSelectedKeySet = computed(() => tableContext.selection.derivedSelectedKeySet.value)\n const sortColumns = computed(() =>\n tableContext.sorterStates.value.map(({ column, sortOrder }) => ({\n column,\n order: sortOrder,\n })),\n )\n\n const title = computed(() => {\n return h(Fragment, [\n typeof props.column.title == 'function'\n ? props.column.title({\n column: props.column.originColumn!,\n sortColumns: sortColumns.value,\n sortColumn: sortColumns.value[0]?.column,\n sortOrder: sortColumns.value[0]?.order,\n })\n : props.column.title,\n ])\n })\n\n const cellFixedInfo = computed(() => {\n if (autoHeight) {\n const additionalProps = props.additionalProps!\n return getCellFixedInfo(\n additionalProps.colstart,\n additionalProps.colend,\n tableContext.allColumns.value,\n tableContext.stickyOffsets.value,\n tableContext.props.direction,\n )\n }\n return undefined\n })\n\n const cellClass = computed(() => {\n const { prefixCls } = props\n let cellFixedCls = {}\n if (cellFixedInfo.value && supportSticky) {\n const autoCellPrefixCls = `${prefixCls}-cell`,\n { fixLeft, fixRight, firstFixLeft, lastFixLeft, firstFixRight, lastFixRight } =\n cellFixedInfo.value\n cellFixedCls = {\n [`${autoCellPrefixCls}-fix-left`]: typeof fixLeft === 'number',\n [`${autoCellPrefixCls}-fix-left-first`]: firstFixLeft,\n [`${autoCellPrefixCls}-fix-left-last`]: lastFixLeft,\n [`${autoCellPrefixCls}-fix-right`]: typeof fixRight == 'number',\n [`${autoCellPrefixCls}-fix-right-first`]: firstFixRight,\n [`${autoCellPrefixCls}-fix-right-last`]: lastFixRight,\n }\n }\n return Object.assign(\n {\n [`${prefixCls}-cell`]: true,\n [`${prefixCls}-header-cell`]: true,\n [`${prefixCls}-header-extra-cell`]: true,\n },\n cellFixedCls,\n )\n })\n\n return {\n cellClass,\n componentStyle: computed(() => {\n const styles: CSSProperties = {}\n if (cellFixedInfo.value && supportSticky) {\n const { fixLeft, fixRight } = cellFixedInfo.value\n if (typeof fixLeft == 'number') {\n styles.position = 'sticky'\n styles.left = `${fixLeft}px`\n }\n if (typeof fixRight == 'number') {\n styles.position = 'sticky'\n styles.right = `${fixRight}px`\n }\n }\n return autoHeight ? styles : { height: `${props.column.height}px` }\n }),\n getPopupContainer: computed(() => tableContext.getPopupContainer.value),\n rowSelectionType,\n hideSelectAll,\n onSelectAllChange: () => {\n const changeRows: Key[] = []\n const copyDerivedSelectedKeySet = new Set(derivedSelectedKeySet.value)\n if (checkedCurrentAll.value) {\n pageDataEnableRowKeys.value.forEach((key: Key) => {\n copyDerivedSelectedKeySet.delete(key)\n changeRows.push(key)\n })\n } else {\n pageDataEnableRowKeys.value.forEach((key: Key) => {\n if (!copyDerivedSelectedKeySet.has(key)) {\n copyDerivedSelectedKeySet.add(key)\n changeRows.push(key)\n }\n })\n }\n\n const selectedRows: Key[] = Array.from(copyDerivedSelectedKeySet)\n mergedRowSelection.value.onSelectAll?.(\n !checkedCurrentAll,\n selectedRows.map((key: Key) => getRecordByKey(key)),\n changeRows.map((key: Key) => getRecordByKey(key)),\n )\n setSelectedKeys(selectedRows)\n },\n checked: eagerComputed(() =>\n allDisabled.value\n ? allDisabledAndChecked.value\n : !!tableContext.flattenData.value.length && checkedCurrentAll.value,\n ),\n indeterminate: eagerComputed(() =>\n allDisabled.value\n ? !allDisabledAndChecked.value && allDisabledSomeChecked.value\n : !checkedCurrentAll.value && checkedCurrentSome.value,\n ),\n disabled: eagerComputed(\n () => tableContext.flattenData.value.length === 0 || allDisabled.value,\n ),\n mergedSelections,\n onMenuClick: (callback: any) => {\n callback?.(pageDataEnableRowKeys.value)\n },\n autoHeight,\n title,\n h,\n Fragment,\n }\n },\n})\n</script>\n\n<template>\n <component\n :is=\"component\"\n tabindex=\"-1\"\n role=\"cell\"\n :class=\"cellClass\"\n :style=\"componentStyle\"\n v-bind=\"additionalProps\"\n @click.stop\n >\n <template\n v-if=\"column.type !== 'checkbox' || rowSelectionType === 'radio' || hideSelectAll\"\n ></template>\n <div v-else :class=\"`${prefixCls}-selection-wrap`\">\n <div :class=\"`${prefixCls}-selection`\">\n <component v-if=\"column.title\" :is=\"title\" />\n <template v-else>\n <Checkbox\n :prefix-cls=\"prefixCls\"\n :indeterminate=\"indeterminate\"\n :disabled=\"disabled\"\n :checked=\"checked\"\n :aria-label=\"\n checked\n ? 'Press Space to toggle all row selection (checked)'\n : 'Press Space to toggle all row selection (unchecked)'\n \"\n @change=\"onSelectAllChange\"\n />\n <div v-if=\"mergedSelections\" :class=\"`${prefixCls}-selection-extra`\">\n <Dropdown :get-popup-container=\"getPopupContainer\">\n <span>\n <DownOutlined :class=\"`${prefixCls}-selection-extra-dropdown-icon`\" />\n </span>\n <template #overlay>\n <AMenu :get-popup-container=\"getPopupContainer\">\n <template\n v-for=\"(item, index) in mergedSelections\"\n :key=\"(item && item.key) || index\"\n >\n <MenuItem\n v-if=\"item\"\n :key=\"item.key || index\"\n @click=\"onMenuClick(item.onSelect)\"\n >\n <component\n :is=\"\n h(Fragment, [\n typeof item.text == 'function' ? item.text(item) : item.text,\n ])\n \"\n ></component>\n </MenuItem>\n </template>\n </AMenu>\n </template>\n </Dropdown>\n </div>\n </template>\n </div>\n </div>\n </component>\n</template>\n"],"names":["defineComponent","Checkbox","Dropdown","Menu","MenuItem","DownOutlined","inject","AUTO_HEADER_HEIGHT","useInjectTable","computed","h","Fragment","getCellFixedInfo","supportSticky","eagerComputed"],"mappings":"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"}
|
@@ -74,6 +74,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
74
74
|
};
|
75
75
|
size: {
|
76
76
|
type: import("vue").PropType<import("./interface").DensitySize>;
|
77
|
+
default: string;
|
77
78
|
};
|
78
79
|
bordered: {
|
79
80
|
type: BooleanConstructor;
|
@@ -180,6 +181,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
180
181
|
type: NumberConstructor;
|
181
182
|
default: number;
|
182
183
|
};
|
184
|
+
rowHover: {
|
185
|
+
type: BooleanConstructor;
|
186
|
+
default: undefined;
|
187
|
+
};
|
183
188
|
rowKey: {
|
184
189
|
type: import("vue").PropType<string | GetRowKey<DefaultRecordType>>;
|
185
190
|
};
|
@@ -370,6 +375,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
370
375
|
'onUpdate:dataSource': {
|
371
376
|
type: import("vue").PropType<(dataSource: DefaultRecordType[]) => void>;
|
372
377
|
};
|
378
|
+
'onUpdate:columns': {
|
379
|
+
type: import("vue").PropType<(columns: import("pro-design-vue").ProTableColumnsType<DefaultRecordType>, action: "resize" | "drag") => void>;
|
380
|
+
};
|
373
381
|
columnEmptyText: {
|
374
382
|
type: import("vue").PropType<string | false>;
|
375
383
|
default: string;
|
@@ -390,6 +398,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
390
398
|
params: import("vue").PropType<Record<string, any>>;
|
391
399
|
defaultData: import("vue").PropType<DefaultRecordType[]>;
|
392
400
|
manual: BooleanConstructor;
|
401
|
+
manualRequest: BooleanConstructor;
|
393
402
|
polling: import("vue").PropType<number | ((dataSource: any[]) => number)>;
|
394
403
|
debounceTime: NumberConstructor;
|
395
404
|
onLoad: {
|
@@ -579,6 +588,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
579
588
|
};
|
580
589
|
size: {
|
581
590
|
type: import("vue").PropType<import("./interface").DensitySize>;
|
591
|
+
default: string;
|
582
592
|
};
|
583
593
|
bordered: {
|
584
594
|
type: BooleanConstructor;
|
@@ -685,6 +695,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
685
695
|
type: NumberConstructor;
|
686
696
|
default: number;
|
687
697
|
};
|
698
|
+
rowHover: {
|
699
|
+
type: BooleanConstructor;
|
700
|
+
default: undefined;
|
701
|
+
};
|
688
702
|
rowKey: {
|
689
703
|
type: import("vue").PropType<string | GetRowKey<DefaultRecordType>>;
|
690
704
|
};
|
@@ -875,6 +889,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
875
889
|
'onUpdate:dataSource': {
|
876
890
|
type: import("vue").PropType<(dataSource: DefaultRecordType[]) => void>;
|
877
891
|
};
|
892
|
+
'onUpdate:columns': {
|
893
|
+
type: import("vue").PropType<(columns: import("pro-design-vue").ProTableColumnsType<DefaultRecordType>, action: "resize" | "drag") => void>;
|
894
|
+
};
|
878
895
|
columnEmptyText: {
|
879
896
|
type: import("vue").PropType<string | false>;
|
880
897
|
default: string;
|
@@ -895,6 +912,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
895
912
|
params: import("vue").PropType<Record<string, any>>;
|
896
913
|
defaultData: import("vue").PropType<DefaultRecordType[]>;
|
897
914
|
manual: BooleanConstructor;
|
915
|
+
manualRequest: BooleanConstructor;
|
898
916
|
polling: import("vue").PropType<number | ((dataSource: any[]) => number)>;
|
899
917
|
debounceTime: NumberConstructor;
|
900
918
|
onLoad: {
|
@@ -952,6 +970,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
952
970
|
"onUpdate:filters"?: ((...args: any[]) => any) | undefined;
|
953
971
|
}>, {
|
954
972
|
direction: "rtl";
|
973
|
+
size: import("./interface").DensitySize;
|
955
974
|
loading: boolean | Partial<import("vue").ExtractPropTypes<{
|
956
975
|
prefixCls: StringConstructor;
|
957
976
|
spinning: {
|
@@ -1009,6 +1028,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
1009
1028
|
rowExpandable: (record: DefaultRecordType) => boolean;
|
1010
1029
|
rowSelection: import("pro-design-vue").ProTableRowSelection<DefaultRecordType>;
|
1011
1030
|
rowHoverDelay: number;
|
1031
|
+
rowHover: boolean;
|
1012
1032
|
customRow: (data: DefaultRecordType, index?: number) => Omit<import("vue").HTMLAttributes, "style"> & {
|
1013
1033
|
style?: import("vue").CSSProperties;
|
1014
1034
|
};
|
@@ -1103,6 +1123,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
1103
1123
|
columnEmptyText: string | false;
|
1104
1124
|
toolBar: boolean;
|
1105
1125
|
alwaysShowAlert: boolean;
|
1126
|
+
manualRequest: boolean;
|
1106
1127
|
onRequestError: (e: Error) => void;
|
1107
1128
|
onSizeChange: (size: import("./interface").DensitySize) => void;
|
1108
1129
|
columnsState: import("pro-design-vue").ProColumnStateType;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"InteralTable.vue.js","sources":["../../../../../../../packages/components/table/src/components/InteralTable.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-01 09:29:27\n * @LastEditors: shen\n * @LastEditTime: 2025-09-19 10:44:08\n * @Description:\n-->\n<script lang=\"ts\">\nimport type { WatchStopHandle } from 'vue'\nimport {\n computed,\n defineComponent,\n shallowRef,\n ref,\n watchEffect,\n inject,\n watch,\n toRaw,\n triggerRef,\n onActivated,\n isReactive,\n toRef,\n} from 'vue'\nimport { Spin, Pagination } from 'ant-design-vue'\nimport { animateRows as globalAnimateRows } from './config'\nimport { baseTableProps } from './interface'\nimport { DOWN, LEFT, UP } from './Drag/constant'\nimport { addNestItemData, deleteNestItemData, isPromise } from '../utils/util'\nimport { useEditProvider } from '../hooks/useEdit'\nimport { useProvidePopup } from './context/PopupContext'\nimport { useHScrollSyncProvide } from '../hooks/useHScrollSync'\nimport { useVScrollSyncProvide } from '../hooks/useVScrollSync'\nimport { useProvideTable } from './context/TableContext'\nimport { useProvideRangeStore } from '../hooks/useRangeStore'\nimport { usePrefixCls } from '@pro-design-vue/hooks'\nimport { resize } from '@pro-design-vue/directives'\nimport { omit, debounce } from '@pro-design-vue/utils'\nimport useKVMap from '../hooks/useKVMap'\nimport useLicense from '../hooks/useLicense'\nimport devWarning from '../utils/devWarning'\nimport eagerComputed from '../utils/eagerComputed'\nimport getScrollBarSize from '../utils/getScrollBarSize'\nimport useColumns from '../hooks/useColumns'\nimport useSorter from '../hooks/useSorter'\nimport useFilter from '../hooks/useFilter'\nimport useCal from '../hooks/useCal'\nimport useFlattenRecords from '../hooks/useFlattenRecords'\nimport useSelection from '../hooks/useRowSelection'\nimport usePagination, { getPaginationParam } from '../hooks/usePagination'\nimport raf from '../utils/raf'\nimport easeoutScroll from '../utils/easeoutScroll'\nimport useData from '../hooks/useData'\nimport supportSticky from '../utils/supportSticky'\nimport classNames from '../utils/classNames'\nimport useCellProps from '../hooks/useCellProps'\nimport KeyCode from '../utils/KeyCode'\nimport TableSlotsContextProvider from './context/TableSlotsContext'\nimport MeasureWidth from './MeasureWidth.vue'\nimport PopupContainer from './PopupContainer.vue'\nimport AutoHeightHeader from './AutoHeightHeader/Header.vue'\nimport Header from './Header/Header.vue'\nimport Body from './Body/Body.vue'\n\nimport type { SpinProps } from 'ant-design-vue/es/spin'\nimport type {\n GetRowKey,\n Key,\n SorterResult,\n TableLocale,\n ColumnType,\n ResizeActionType,\n DragRowEventInfo,\n DragColumnEventInfo,\n DefaultRecordType,\n TableAction,\n} from './interface'\nimport type { CustomSlotsType } from '../utils/type'\nimport type { RangeCell } from '../hooks/RangeInterface'\nimport type { SortState } from '../hooks/useSorter'\nimport type { FilterState } from '../hooks/useFilter'\nimport type { ContextSlots } from './context/TableSlotsContext'\n\nexport type FilterValue = (Key | boolean)[]\nexport interface ChangeEventInfo<RecordType> {\n pagination: {\n current?: number\n pageSize?: number\n total?: number\n }\n filters: Record<string, FilterValue | null>\n sorter: SorterResult<RecordType> | SorterResult<RecordType>[]\n filterStates: FilterState<RecordType>[]\n sorterStates: SortState<RecordType>[]\n currentDataSource: RecordType[]\n action: TableAction\n}\nconst EMPTY_LIST: any[] = []\n\nexport default defineComponent({\n name: 'ProTable',\n inheritAttrs: false,\n directives: { resize },\n components: {\n TableSlotsContextProvider,\n Spin,\n MeasureWidth,\n Pagination,\n PopupContainer,\n AutoHeightHeader,\n ProHeader: Header,\n ProBody: Body,\n },\n props: baseTableProps(),\n emits: [\n 'update:pagination',\n 'scroll',\n 'update:selectedRowKeys',\n 'update:expandedRowKeys',\n 'update:columns',\n 'update:sorter',\n 'update:filters',\n 'expand',\n 'expandedRowsChange',\n 'resizeColumn',\n 'update:dataSource',\n 'cellKeydown',\n ],\n slots: {} as CustomSlotsType<ContextSlots>,\n setup(props, { expose, emit, slots }) {\n const rowKey = computed(() => props.rowKey ?? 'id')\n const popupContainer = shallowRef<any>(null)\n const customUiCls = usePrefixCls('custom-ui')\n\n const { editCellKeys, openEditor, closeEditor } = useEditProvider()\n\n useProvidePopup()\n\n const getPopupContainer = computed(() => props.getPopupContainer!)\n const { status, watermarkMsg } = useLicense()\n\n const dragRowsHandle = new Map<Key, Set<HTMLSpanElement>>()\n const draggingRowKey = ref<Key | null>(null)\n const insertToRowKey = ref<Key | null>(null)\n const dragColumnsHandle = new Map<Key, Set<HTMLDivElement>>()\n const draggingColumnKey = ref<Key>('')\n const latestRangeStartCell = shallowRef<RangeCell | null>(null)\n const mergedSummaryFixed = computed(() =>\n props.summaryFixed === true || props.summaryFixed === ('' as any)\n ? 'bottom'\n : props.summaryFixed,\n )\n const realHeaderHeight = ref(0)\n\n watchEffect(() => {\n devWarning(\n !(typeof rowKey.value == 'function' && rowKey.value.length > 1),\n 'table',\n '`index` parameter of `rowKey` function is deprecated. There is no guarantee that it will work as expected.',\n )\n })\n\n const localeData: any = inject('localeData', {\n antLocale: {\n Table: {\n triggerDesc: 'Click to sort descending',\n triggerAsc: 'Click to sort ascending',\n cancelSort: 'Click to cancel sorting',\n },\n },\n })\n\n const locale = computed<TableLocale>(() => {\n const antLocale = localeData?.antLocale || {}\n return {\n ...(antLocale.locale === 'zh-cn'\n ? {\n triggerDesc: '\\u70B9\\u51FB\\u964D\\u5E8F',\n triggerAsc: '\\u70B9\\u51FB\\u5347\\u5E8F',\n cancelSort: '\\u53D6\\u6D88\\u6392\\u5E8F',\n }\n : {}),\n ...(antLocale.Table || {}),\n ...(props.locale || {}),\n }\n })\n\n const scrollTop = ref(0)\n const scrollLeft = ref(0)\n const rootRef = ref<HTMLDivElement>()\n const bodyWidth = ref(0)\n const bodyHeight = ref(0)\n const measureWidthRef = shallowRef<HTMLDivElement>()\n\n const mergedScrollX = eagerComputed(() => props.scrollX ?? props.scroll?.x)\n const mergedScrollY = eagerComputed(() => props.scroll?.y ?? props.height ?? props.maxHeight)\n const bodyScrollWidth = ref(typeof mergedScrollX.value == 'number' ? mergedScrollX.value : 0)\n\n watch(mergedScrollX, () => {\n bodyScrollWidth.value = typeof mergedScrollX.value == 'number' ? mergedScrollX.value : 0\n })\n\n const virtual = eagerComputed<boolean>(() => !(props.virtual === false || !mergedScrollY.value))\n const xVirtual = eagerComputed<boolean>(\n () => props.xVirtual || (props.virtual !== false && props.xVirtual !== false),\n )\n\n const getRowKey = computed<GetRowKey>(() =>\n typeof rowKey.value == 'function'\n ? rowKey.value\n : (record: Record<string, any>) => {\n return record?.[rowKey.value as string]\n },\n )\n\n const rawData = shallowRef<DefaultRecordType[]>([])\n const rawColumns = shallowRef<ColumnType[]>([])\n\n let dataSourceWatchStopHandle: WatchStopHandle\n let columnsWatchStopHandle: WatchStopHandle\n watch(\n () => props.deepWatchDataSource,\n () => {\n dataSourceWatchStopHandle && dataSourceWatchStopHandle()\n dataSourceWatchStopHandle = watch(\n () => props.dataSource,\n () => {\n rawData.value = toRaw(props.dataSource) || EMPTY_LIST\n triggerRef(rawData)\n },\n { immediate: true, deep: !!props.deepWatchDataSource },\n )\n },\n { immediate: true, deep: true },\n )\n\n watch(\n () => props.deepWatchColumns,\n () => {\n columnsWatchStopHandle && columnsWatchStopHandle()\n columnsWatchStopHandle = watch(\n () => props.columns,\n () => {\n rawColumns.value = toRaw(props.columns) || EMPTY_LIST\n triggerRef(rawColumns)\n },\n { immediate: true, deep: true },\n )\n },\n { immediate: true, deep: !!props.deepWatchColumns },\n )\n\n const childrenColumnName = computed(() => props.childrenColumnName || 'children')\n\n const { getRecordByKey, getIndexsByKey, getKeyByIndexs, allDataRowKeys, allDataRootRowKeys } =\n useKVMap(rawData, childrenColumnName, getRowKey)\n\n const defaultExpandedRowKeys = shallowRef<Key[]>([])\n watchEffect(() => {\n props.defaultExpandedRowKeys && (defaultExpandedRowKeys.value = props.defaultExpandedRowKeys)\n props.defaultExpandAllRows && (defaultExpandedRowKeys.value = allDataRowKeys.value)\n })\n\n const mergedRowSelection = computed(() => {\n const rowSelection = props.rowSelection || {}\n const { checkStrictly = true } = rowSelection\n return { ...rowSelection, checkStrictly }\n })\n\n const expandedRowKeys = computed(\n () => new Set(props.expandedRowKeys || defaultExpandedRowKeys.value || []),\n )\n\n const spinProps = computed<SpinProps>(() => {\n if (typeof props.loading === 'boolean') {\n return { spinning: props.loading }\n } else if (typeof props.loading === 'object') {\n return { spinning: true, ...props.loading }\n } else {\n return { spinning: false }\n }\n })\n\n onActivated(() => {\n scrollTo({ left: 0, top: 0 })\n })\n\n let triggerOnChange: any = () => {}\n\n const scrollBarSize = shallowRef(getScrollBarSize())\n const baseHeight = computed(() =>\n props.size === 'small' ? 39 : props.size === 'middle' ? 47 : 55,\n )\n const expandedRowRender = computed(() => props.expandedRowRender)\n const expandType = eagerComputed(() =>\n rawData.value.some((column) => column?.[childrenColumnName.value])\n ? 'nest'\n : expandedRowRender.value\n ? 'row'\n : null,\n )\n const expandable = eagerComputed(() => !!props.expandedRowRender)\n\n const columns = useColumns({\n props,\n rawColumns,\n bodyScrollWidth,\n baseHeight,\n measureWidthRef,\n expandable,\n expandType,\n scrollLeft,\n bodyWidth,\n xVirtual,\n draggingColumnKey,\n latestRangeStartCell,\n })\n\n const { sortedData, sorterStates, sorter, changeSorter } = useSorter(\n props,\n rawData,\n columns.allColumns,\n (sorter, sorterStates) => {\n scrollTop.value > bodyHeight.value && updateAnimate()\n triggerOnChange({ sorter, sorterStates }, 'sort', false)\n },\n )\n\n const { filterData, filterStates, filters, changeFilter } = useFilter(\n props,\n sortedData,\n columns.allColumns,\n (filters, filterStates) => {\n triggerOnChange({ filters, filterStates }, 'filter', true)\n },\n )\n\n const total = eagerComputed(() => filterData.value.length)\n const paginationParam = computed(() => {\n if (props.pagination === false) {\n return {}\n }\n return getPaginationParam(props.pagination, mergedPagination.value)\n })\n\n const triggeronPaginationChange = (current: number, pageSize: number) => {\n const pagination = { ...paginationParam.value, current, pageSize }\n props['onUpdate:pagination'] &&\n emit(\n 'update:pagination',\n isReactive(props.pagination)\n ? Object.assign(props.pagination || {}, pagination)\n : pagination,\n )\n }\n\n const {\n mergedPagination,\n pos,\n refreshPagination,\n onChange: onPaginationChange,\n onShowSizeChange,\n pageData,\n } = usePagination(total, props, filterData, (current, pageSize) => {\n const pagination = { ...paginationParam.value, current, pageSize }\n triggeronPaginationChange(current, pageSize)\n updateAnimate()\n triggerOnChange({ pagination }, 'paginate')\n })\n\n const {\n flattenData,\n keyEntities,\n pageDataRowKeys,\n pageDataEnableRowKeys,\n checkboxPropsMap,\n getRowFlattenIndexByKey,\n isMyChildren,\n getRowByFlattenIndex,\n } = useFlattenRecords(\n pageData,\n childrenColumnName,\n expandedRowKeys,\n getRowKey,\n expandType,\n mergedRowSelection,\n )\n\n const cal = useCal(props, flattenData, bodyHeight, scrollTop, virtual, keyEntities)\n\n const { rowPosition, viewportHeight, startIndex, endIndex } = cal\n const { leftWidth, rightWidth, centerWidth, bodyMaxWidth } = columns\n\n const selection = useSelection(props, mergedRowSelection, rawData, {\n prefixCls: computed(() => props.prefixCls!),\n pageData,\n getRowKey,\n getRecordByKey,\n childrenColumnName,\n locale,\n flattenData,\n keyEntities,\n checkboxPropsMap,\n allDataRowKeys,\n allDataRootRowKeys,\n pageDataRowKeys,\n pageDataEnableRowKeys,\n })\n\n const bodyRef = ref<HTMLDivElement>()\n let leftRaf: any, topRaf: any\n\n const scrollTo = (options: any = {}, type = 'auto', isAnimate = false) => {\n if (!isAnimate) {\n updateAnimate()\n }\n const mergeOptions = typeof options == 'number' ? { top: options } : options\n let left, top\n if ('left' in mergeOptions) {\n left = mergeOptions.left || 0\n } else if ('columnIndex' in mergeOptions) {\n const position = columns.getColumnPosition(mergeOptions.columnIndex!)\n if (position) {\n left = position.left - leftWidth.value\n }\n } else if ('columnKey' in mergeOptions) {\n const position = columns.getColumnPositionByKey(mergeOptions.columnKey!)\n if (position) {\n left = position.left - leftWidth.value\n }\n }\n if ('top' in mergeOptions) {\n top = Math.min(Math.max(mergeOptions.top || 0, 0), maxScrollTop.value)\n } else if ('rowKey' in mergeOptions) {\n const pos = cal.getRowPositionByKey(mergeOptions.rowKey!)\n if (pos) {\n top = pos\n }\n }\n\n left = Math.max(Math.min(maxScrollLeft.value, left || 0), 0)\n if (!showVerticalScrollbar.value) {\n top = 0\n }\n if (type === 'smooth') {\n if (left !== undefined) {\n raf.cancel(leftRaf)\n leftRaf = easeoutScroll(scrollLeft.value, left, (val: number) => {\n scrollLeft.value = val\n })\n }\n if (top !== undefined) {\n raf.cancel(topRaf)\n topRaf = easeoutScroll(scrollTop.value, top, (val: number) => {\n scrollTop.value = val\n })\n }\n } else {\n if (left !== undefined) {\n scrollLeft.value = left\n }\n if (top !== undefined) {\n scrollTop.value = top\n }\n }\n }\n\n const useAnimate = ref(false)\n const animateRows = computed(() => {\n return !!(props.animateRows ?? globalAnimateRows.value)\n })\n\n let timer: any\n watch(\n animateRows,\n (newVal) => {\n useAnimate.value = newVal\n },\n { immediate: true },\n )\n\n const updateAnimate = () => {\n useAnimate.value = false\n clearTimeout(timer)\n timer = setTimeout(() => {\n useAnimate.value = animateRows.value\n }, 100)\n }\n\n const maxScrollLeft = computed(() => bodyMaxWidth.value - bodyWidth.value)\n const maxScrollTop = computed(() => viewportHeight.value - bodyHeight.value)\n const onScroll = (e) => {\n emit('scroll', e)\n }\n\n useHScrollSyncProvide({ scrollLeft, maxScrollLeft, onScroll, bodyWidth })\n useVScrollSyncProvide({ scrollTop, maxScrollTop, onScroll, updateAnimate, bodyWidth })\n\n const { data, pos: dataRowPosition } = useData(\n props,\n rowPosition,\n flattenData,\n startIndex,\n endIndex,\n draggingRowKey,\n useAnimate,\n getRowFlattenIndexByKey,\n latestRangeStartCell,\n )\n\n const pingedLeft = ref(false)\n const pingedRight = ref(false)\n const noPinged = ref(false)\n\n watchEffect(() => {\n pingedLeft.value = supportSticky && !!scrollLeft.value\n pingedRight.value =\n supportSticky &&\n centerWidth.value - (bodyWidth.value - leftWidth.value - rightWidth.value) >\n scrollLeft.value\n noPinged.value = !pingedLeft.value && !pingedRight.value\n })\n\n const rootClass = computed(() =>\n classNames({\n [`${props.prefixCls}`]: true,\n [`${props.prefixCls}-support-sticky`]: supportSticky,\n [`${props.prefixCls}-stripe`]: props.stripe,\n [`${props.prefixCls}-bordered`]: props.bordered,\n [`${props.prefixCls}-${props.size}`]: true,\n [`${props.prefixCls}-ping-left`]: pingedLeft.value,\n [`${props.prefixCls}-ping-right`]: pingedRight.value,\n [`${props.prefixCls}-no-ping`]: noPinged.value,\n [`${props.prefixCls}-has-animate`]: animateRows.value,\n }),\n )\n const rootStyle = computed(() => ({\n height: typeof props.height == 'number' ? `${props.height}px` : props.height,\n maxHeight: typeof props.maxHeight == 'number' ? `${props.maxHeight}px` : props.maxHeight,\n minHeight: typeof props.minHeight == 'number' ? `${props.minHeight}px` : props.minHeight,\n }))\n\n const showHorizontalScrollbar = ref(false)\n const debounceFn = debounce(() => {\n showHorizontalScrollbar.value = bodyMaxWidth.value > bodyWidth.value\n if (bodyWidth.value > bodyScrollWidth.value) {\n bodyScrollWidth.value = bodyWidth.value\n }\n }, 100)\n\n watch([bodyMaxWidth, bodyWidth], () => {\n debounceFn()\n })\n\n const showVerticalScrollbar = eagerComputed(\n () => !!mergedScrollY.value && bodyHeight.value + 0.9 < viewportHeight.value,\n )\n const scrollToFirstRow = eagerComputed(\n () => !props.scroll || (props.scroll && props.scroll.scrollToFirstRowOnChange !== false),\n )\n\n triggerOnChange = (\n info: Partial<ChangeEventInfo<DefaultRecordType>>,\n action: TableAction,\n reset = false,\n ) => {\n if (reset) {\n refreshPagination()\n triggeronPaginationChange(1, mergedPagination.value.pageSize!)\n if (props.pagination) {\n props.pagination.onChange?.(1, mergedPagination.value.pageSize)\n }\n }\n if (scrollToFirstRow.value) {\n scrollTop.value = 0\n }\n props.onChange?.(\n info.pagination || mergedPagination.value,\n info.filters || filters.value,\n info.sorter || sorter.value,\n {\n currentDataSource: info.currentDataSource || filterData.value,\n action,\n },\n )\n }\n\n const paginationProps = computed(() => {\n return omit(mergedPagination.value, ['position', 'onChange', 'onShowSizeChange'])\n })\n\n const paginationClass = computed(() => {\n return {\n [`${props.prefixCls}-pagination`]: true,\n [`${props.prefixCls}-pagination-${pos.value.bottom}`]: true,\n [`${customUiCls}`]: true,\n }\n })\n const bottomPaginationHeight = ref(0)\n const bottomPaginationStyle = computed<any>(() => {\n if (!props.paginationSticky) {\n return {}\n }\n if (props.paginationSticky === true) {\n return { position: 'sticky', 'z-index': 9, bottom: '0px' }\n }\n return {\n position: 'sticky',\n 'z-index': 9,\n bottom: `${props.paginationSticky?.offsetBottom ?? 0}px`,\n }\n })\n\n const indentSize = computed(() => (typeof props.indentSize == 'number' ? props.indentSize : 15))\n\n const cellProps = useCellProps({\n leftColumns: columns.leftColumns,\n rightColumns: columns.rightColumns,\n visibleCenterColumns: columns.visibleCenterColumns,\n allColumns: columns.allColumns,\n data,\n mergedRowHeights: cal.mergedRowHeights,\n startIndex,\n getColumnPosition: columns.getColumnPosition,\n bodyWidth,\n leftWidth,\n centerWidth,\n getRowHeight: cal.getRowHeight,\n customCell: toRef(props, 'customCell'),\n })\n\n watch(\n [realHeaderHeight, scrollLeft],\n () => {\n popupContainer.value?.alignPopup?.()\n },\n { flush: 'post' },\n )\n\n useProvideTable({\n ...cal,\n ...columns,\n ...cellProps,\n rootRef,\n rawData,\n getRowFlattenIndexByKey,\n prefixCls: computed(() => props.prefixCls!),\n draggingRowKey,\n insertToRowKey,\n status,\n useAnimate,\n animateRows,\n watermarkMsg,\n onResizeColumn: (w: number, col: ColumnType, action: ResizeActionType) => {\n const width = col.width\n const result = props.onResizeColumn?.(w, col, action)\n if (result !== false && !(width === w && col.width === w)) {\n col.width = width !== col.width ? col.width : w\n triggerRef(rawColumns)\n }\n },\n onRowDragEnd: (opt: DragRowEventInfo) => {\n const { insertToRowKey, record, fromIndexs, rowKey, dir, preTargetInfo, nextTargetInfo } =\n opt\n const rawRecord = toRaw(record)\n const dragEnd = props.onRowDragEnd?.({ ...opt, record: rawRecord, fromIndexs })\n if (dragEnd === false) {\n return\n }\n\n const handler = () => {\n if (!isMyChildren(rowKey, preTargetInfo?.rowKey as Key) && insertToRowKey !== rowKey) {\n if (insertToRowKey !== null) {\n const parentRecord = getRecordByKey(insertToRowKey)\n if (\n insertToRowKey === preTargetInfo?.rowKey ||\n insertToRowKey === nextTargetInfo?.rowKey\n ) {\n if (dir === DOWN) {\n addNestItemData(\n parentRecord[childrenColumnName.value],\n [],\n childrenColumnName.value,\n rawRecord,\n )\n deleteNestItemData(rawData.value, fromIndexs, childrenColumnName.value)\n } else {\n deleteNestItemData(rawData.value, fromIndexs, childrenColumnName.value)\n addNestItemData(\n parentRecord[childrenColumnName.value],\n [],\n childrenColumnName.value,\n rawRecord,\n )\n }\n } else {\n if (dir === DOWN) {\n addNestItemData(\n rawData.value,\n preTargetInfo?.indexs as number[],\n childrenColumnName.value,\n rawRecord,\n )\n deleteNestItemData(rawData.value, fromIndexs, childrenColumnName.value)\n } else {\n deleteNestItemData(rawData.value, fromIndexs, childrenColumnName.value)\n addNestItemData(\n rawData.value,\n preTargetInfo?.indexs as number[],\n childrenColumnName.value,\n rawRecord,\n )\n }\n }\n } else {\n if (dir === DOWN && preTargetInfo) {\n addNestItemData(\n rawData.value,\n [preTargetInfo.indexs[0]!],\n childrenColumnName.value,\n rawRecord,\n )\n deleteNestItemData(rawData.value, fromIndexs, childrenColumnName.value)\n } else if (dir === UP && nextTargetInfo) {\n deleteNestItemData(rawData.value, fromIndexs, childrenColumnName.value)\n addNestItemData(\n rawData.value,\n preTargetInfo?.indexs ? [preTargetInfo!.indexs[0]!] : [],\n childrenColumnName.value,\n rawRecord,\n )\n }\n }\n triggerRef(rawData)\n emit('update:dataSource', rawData.value)\n }\n }\n\n if (isPromise(dragEnd)) {\n dragEnd\n .then(() => {\n handler()\n })\n .catch(() => {})\n } else {\n handler()\n }\n },\n virtual,\n xVirtual,\n dataRowPosition,\n rawColumns,\n bodyHeight,\n scrollTop,\n scrollLeft,\n supportSticky,\n childrenColumnName,\n bodyScrollWidth,\n baseHeight,\n startIndex,\n data,\n pageData,\n getRecordByKey,\n getIndexsByKey,\n expandType,\n flattenData,\n expandedRowKeys,\n indentSize,\n props,\n bodyWidth,\n scrollTo,\n scrollBarSize,\n leftWidth,\n rightWidth,\n centerWidth,\n showVerticalScrollbar,\n showHorizontalScrollbar,\n getRowKey,\n selection,\n updateSelectedRowKeys: (keys: Key[]) => {\n emit('update:selectedRowKeys', keys)\n },\n locale,\n sorterStates,\n changeSorter,\n changeFilter,\n filterStates,\n onTriggerExpand: (record, key: Key) => {\n let keys: Key[]\n const hasKey = expandedRowKeys.value.has(key)\n if (hasKey) {\n expandedRowKeys.value.delete(key)\n keys = [...expandedRowKeys.value]\n } else {\n keys = [...expandedRowKeys.value, key]\n }\n defaultExpandedRowKeys.value = keys\n emit('update:expandedRowKeys', keys)\n emit('expand', !hasKey, record)\n emit('expandedRowsChange', keys)\n },\n keyEntities,\n pageDataRowKeys,\n pageDataEnableRowKeys,\n checkboxPropsMap,\n mergedRowSelection,\n getPopupContainer,\n allDataRowKeys,\n allDataRootRowKeys,\n dragRowsHandle,\n isMyChildren,\n getKeyByIndexs,\n getRowByFlattenIndex,\n draggingColumnKey,\n dragColumnsHandle,\n onColumnDragEnd: (arg: DragColumnEventInfo) => {\n const { dir, column, targetColumn } = arg\n const dragEnd = props.onColumnDragEnd?.(arg)\n if (dragEnd === false) {\n return\n }\n\n const handler = () => {\n if (column === targetColumn || column.key === targetColumn.key) return\n const index = rawColumns.value.findIndex(\n (col) => col === column || col.key === column.key,\n )\n const targetIndex = rawColumns.value.findIndex(\n (col) => col === targetColumn || col.key === targetColumn.key,\n )\n if (dir === LEFT) {\n rawColumns.value.splice(index, 1)\n rawColumns.value.splice(targetIndex, 0, column)\n } else {\n rawColumns.value.splice(targetIndex + 1, 0, column)\n rawColumns.value.splice(index, 1)\n }\n triggerRef(rawColumns)\n emit('update:columns', rawColumns.value)\n }\n\n if (isPromise(dragEnd)) {\n dragEnd\n .then(() => {\n handler()\n })\n .catch(() => {})\n } else {\n handler()\n }\n },\n onColumnDrag: () => {},\n columnDrag: computed(() => props.columnDrag),\n summaryFixed: mergedSummaryFixed,\n realHeaderHeight,\n bottomPaginationHeight,\n pos,\n })\n\n const tabGuardTopRef = ref()\n const tabGuardBottomRef = ref()\n\n const {\n navigationService,\n getSelectedRange,\n clearAllSelectedRange,\n copySelectedRange,\n appendCellToSelectedRange,\n onBodyKeydown,\n } = useProvideRangeStore({\n allColumns: columns.allColumns,\n flattenData,\n rangeSelection: computed(() => props.rangeSelection),\n getRowByFlattenIndex,\n rootRef,\n prefixCls: computed(() => props.prefixCls!),\n allCellProps: cellProps.allCellProps,\n tabGuardTopRef,\n tabGuardBottomRef,\n ensureCellColumnVisible: (cell: RangeCell) => {\n if (!cell.column || cell.column.fixed) return\n const sl = scrollLeft.value\n const pos = columns.getColumnPositionByKey(cell.column.columnKey)\n if (pos) {\n const { width, left } = pos\n const lw = leftWidth.value\n const rw = rightWidth.value\n left - lw < sl\n ? (scrollLeft.value = left - lw)\n : left + width > sl + bodyWidth.value - rw &&\n (scrollLeft.value = left + width - bodyWidth.value + rw)\n }\n },\n ensureCellRowVisible: (cell: RangeCell) => {\n const { rowIndex } = cell\n const st = scrollTop.value\n const row = getRowByFlattenIndex(rowIndex)\n const pos = cal.getRowPositionByKey(row.rowKey)\n const cprops =\n (cellProps.allCellProps.value[row.rowKey]?.[cell.column!.columnKey] || {}).props || {}\n const height = cal.getRowHeight(rowIndex, cprops.rowSpan)\n if (pos !== undefined) {\n updateAnimate()\n if (pos < st) {\n scrollTop.value = pos\n } else {\n if (pos + height > st + bodyHeight.value) {\n scrollTop.value = pos + height - bodyHeight.value\n }\n }\n }\n },\n latestRangeStartCell,\n bodyRef: computed(() => {\n return (bodyRef.value as any)?.bodyRef\n }),\n scrollLeft,\n scrollTop,\n scrollTo,\n showVerticalScrollbar,\n showHorizontalScrollbar,\n getIndexsByKey,\n formatRangeCellText: (parmas) => {\n if (props.formatRangeCellText) {\n return props.formatRangeCellText(parmas)\n } else if (parmas.value) {\n return parmas.value\n }\n return ''\n },\n editCellKeys,\n copyDelimiter: computed(() => props.copyDelimiter),\n })\n\n expose({\n scrollTo,\n scrollLeft,\n scrollTop,\n bodyRef: computed(() => {\n return (bodyRef.value as any)?.bodyRef\n }),\n getSelectedRange,\n clearAllSelectedRange,\n copySelectedRange,\n appendCellToSelectedRange,\n openEditor: (cellInfos: any[]) => {\n openEditor(cellInfos.map((info) => `${info.rowKey} ${info.columnKey}`))\n },\n closeEditor: (cellInfos: any[]) => {\n if (cellInfos) {\n closeEditor(cellInfos.map((info) => `${info.rowKey} ${info.columnKey}`))\n } else {\n closeEditor()\n }\n },\n })\n\n return {\n bodyRef,\n spinProps,\n rowPosition,\n viewportHeight,\n startIndex,\n data,\n watermarkMsg,\n rootStyle,\n rootClass,\n onBodyKeydown,\n watermarkStyle: computed<any>(() => ({\n minWidth: '100px!important',\n minHeight: '40px!important',\n position: 'absolute!important',\n fontSize: '20px!important',\n opacity: '0.8!important',\n bottom: '40px!important',\n right: '40px!important',\n pointerEvents: 'none',\n display: 'block!important',\n zIndex: '999999!important',\n color: '#000000!important',\n margin: '0px!important',\n padding: '0px!important',\n transform: 'unset!important',\n })),\n mergedPagination,\n pos,\n onPaginationChange,\n scrollBarSize,\n scrollTop,\n bodyScrollWidth,\n bodyWidth,\n scrollLeft,\n cal,\n selection,\n locale,\n paginationProps,\n slots,\n mergedScrollX,\n mergedScrollY,\n bodyHeight,\n measureWidthRef,\n flattenData,\n rootRef,\n mergedSummaryFixed,\n handleResize: (e: CustomEvent) => {\n realHeaderHeight.value = e.detail.height\n },\n handlePaginationResize: (e: CustomEvent) => {\n bottomPaginationHeight.value = e.detail.height\n },\n popupContainer,\n handleGuardTopKeydown: (e: KeyboardEvent) => {\n e.keyCode !== KeyCode.TAB ||\n e.shiftKey ||\n (navigationService.getFirstCellToFocus(e.shiftKey), e.preventDefault())\n },\n handleGuardBottomKeydown: (e: KeyboardEvent) => {\n e.keyCode === KeyCode.TAB &&\n e.shiftKey &&\n (navigationService.getLastCellToFocus(e.shiftKey), e.preventDefault())\n },\n tabGuardTopRef,\n tabGuardBottomRef,\n onShowSizeChange,\n customUiCls,\n paginationClass,\n bottomPaginationStyle,\n }\n },\n})\n</script>\n\n<template>\n <TableSlotsContextProvider :value=\"{ ...slots }\">\n <Spin v-bind=\"spinProps\">\n <Pagination\n v-if=\"pos.top\"\n :class=\"`${prefixCls}-pagination ${prefixCls}-pagination-${pos.top} ${customUiCls}`\"\n v-bind=\"paginationProps\"\n @change=\"onPaginationChange\"\n @show-size-change=\"onShowSizeChange\"\n />\n <div\n ref=\"tabGuardTopRef\"\n role=\"presentation\"\n tabindex=\"0\"\n :style=\"{ position: 'absolute', width: '0', height: '0' }\"\n @keydown=\"handleGuardTopKeydown\"\n ></div>\n <div key=\"content\" ref=\"ref\" :class=\"rootClass\" :style=\"rootStyle\">\n <template v-if=\"showHeader\">\n <AutoHeightHeader\n v-if=\"autoHeaderHeight\"\n :prefix-cls=\"prefixCls\"\n :sticky=\"sticky\"\n @resizeheight=\"handleResize\"\n />\n <ProHeader v-else :prefix-cls=\"prefixCls\" :sticky=\"sticky\" @resizeheight=\"handleResize\" />\n </template>\n <ProBody\n ref=\"bodyRef\"\n v-model:bodyScrollWidth=\"bodyScrollWidth\"\n v-model:bodyWidth=\"bodyWidth\"\n v-model:bodyHeight=\"bodyHeight\"\n :prefix-cls=\"prefixCls\"\n :wrap-text=\"wrapText\"\n :scroll-x=\"mergedScrollX\"\n :height=\"mergedScrollY\"\n :summary-fixed=\"mergedSummaryFixed\"\n :summary=\"$slots.summary\"\n :empty-text=\"$slots.emptyText\"\n @keydown=\"onBodyKeydown\"\n />\n </div>\n <div\n ref=\"tabGuardBottomRef\"\n role=\"presentation\"\n tabindex=\"0\"\n :style=\"{ position: 'absolute', width: '0', height: '0' }\"\n @keydown=\"handleGuardBottomKeydown\"\n ></div>\n <div v-if=\"$slots.footer\" key=\"footer\" :class=\"`${prefixCls}-footer`\">\n <slot name=\"footer\" />\n </div>\n <PopupContainer ref=\"popupContainer\" :prefix-cls=\"prefixCls\" />\n <div\n v-if=\"pos.bottom\"\n v-resize:height\n :style=\"bottomPaginationStyle\"\n :class=\"`${prefixCls}-pagination-wrap`\"\n @resizeheight=\"handlePaginationResize\"\n >\n <Pagination\n :class=\"paginationClass\"\n v-bind=\"paginationProps\"\n @change=\"onPaginationChange\"\n @show-size-change=\"onShowSizeChange\"\n />\n </div>\n </Spin>\n <MeasureWidth ref=\"measureWidthRef\" />\n </TableSlotsContextProvider>\n</template>\n"],"names":["_createBlock","_createVNode","_normalizeProps","_guardReactiveProps","_withCtx","_openBlock","_mergeProps","_createCommentVNode","_createElementVNode","_normalizeClass","_normalizeStyle","_createElementBlock","_Fragment","_renderSlot","_withDirectives"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"InteralTable.vue.js","sources":["../../../../../../../packages/components/table/src/components/InteralTable.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-01 09:29:27\n * @LastEditors: shen\n * @LastEditTime: 2025-09-30 16:18:38\n * @Description:\n-->\n<script lang=\"ts\">\nimport type { WatchStopHandle } from 'vue'\nimport {\n computed,\n defineComponent,\n shallowRef,\n ref,\n watchEffect,\n inject,\n watch,\n toRaw,\n triggerRef,\n onActivated,\n isReactive,\n toRef,\n} from 'vue'\nimport { Spin, Pagination } from 'ant-design-vue'\nimport { animateRows as globalAnimateRows } from './config'\nimport { baseTableProps } from './interface'\nimport { DOWN, LEFT, UP } from './Drag/constant'\nimport { addNestItemData, deleteNestItemData } from '../utils/util'\nimport { useEditProvider } from '../hooks/useEdit'\nimport { useProvidePopup } from './context/PopupContext'\nimport { useHScrollSyncProvide } from '../hooks/useHScrollSync'\nimport { useVScrollSyncProvide } from '../hooks/useVScrollSync'\nimport { useProvideTable } from './context/TableContext'\nimport { useProvideRangeStore } from '../hooks/useRangeStore'\nimport { usePrefixCls } from '@pro-design-vue/hooks'\nimport { resize } from '@pro-design-vue/directives'\nimport { omit, debounce, isPromise } from '@pro-design-vue/utils'\nimport useKVMap from '../hooks/useKVMap'\nimport useLicense from '../hooks/useLicense'\nimport devWarning from '../utils/devWarning'\nimport eagerComputed from '../utils/eagerComputed'\nimport getScrollBarSize from '../utils/getScrollBarSize'\nimport useColumns from '../hooks/useColumns'\nimport useSorter from '../hooks/useSorter'\nimport useFilter from '../hooks/useFilter'\nimport useCal from '../hooks/useCal'\nimport useFlattenRecords from '../hooks/useFlattenRecords'\nimport useSelection from '../hooks/useRowSelection'\nimport usePagination, { getPaginationParam } from '../hooks/usePagination'\nimport raf from '../utils/raf'\nimport easeoutScroll from '../utils/easeoutScroll'\nimport useData from '../hooks/useData'\nimport supportSticky from '../utils/supportSticky'\nimport classNames from '../utils/classNames'\nimport useCellProps from '../hooks/useCellProps'\nimport KeyCode from '../utils/KeyCode'\nimport TableSlotsContextProvider from './context/TableSlotsContext'\nimport MeasureWidth from './MeasureWidth.vue'\nimport PopupContainer from './PopupContainer.vue'\nimport AutoHeightHeader from './AutoHeightHeader/Header.vue'\nimport Header from './Header/Header.vue'\nimport Body from './Body/Body.vue'\n\nimport type { SpinProps } from 'ant-design-vue/es/spin'\nimport type {\n GetRowKey,\n Key,\n SorterResult,\n TableLocale,\n ColumnType,\n ResizeActionType,\n DragRowEventInfo,\n DragColumnEventInfo,\n DefaultRecordType,\n TableAction,\n} from './interface'\nimport type { CustomSlotsType } from '../utils/type'\nimport type { RangeCell } from '../hooks/RangeInterface'\nimport type { SortState } from '../hooks/useSorter'\nimport type { FilterState } from '../hooks/useFilter'\nimport type { ContextSlots } from './context/TableSlotsContext'\n\nexport type FilterValue = (Key | boolean)[]\nexport interface ChangeEventInfo<RecordType> {\n pagination: {\n current?: number\n pageSize?: number\n total?: number\n }\n filters: Record<string, FilterValue | null>\n sorter: SorterResult<RecordType> | SorterResult<RecordType>[]\n filterStates: FilterState<RecordType>[]\n sorterStates: SortState<RecordType>[]\n currentDataSource: RecordType[]\n action: TableAction\n}\nconst EMPTY_LIST: any[] = []\n\nexport default defineComponent({\n name: 'ProTable',\n inheritAttrs: false,\n directives: { resize },\n components: {\n TableSlotsContextProvider,\n Spin,\n MeasureWidth,\n Pagination,\n PopupContainer,\n AutoHeightHeader,\n ProHeader: Header,\n ProBody: Body,\n },\n props: baseTableProps(),\n emits: [\n 'update:pagination',\n 'scroll',\n 'update:selectedRowKeys',\n 'update:expandedRowKeys',\n 'update:columns',\n 'update:sorter',\n 'update:filters',\n 'expand',\n 'expandedRowsChange',\n 'resizeColumn',\n 'update:dataSource',\n 'cellKeydown',\n ],\n slots: {} as CustomSlotsType<ContextSlots>,\n setup(props, { expose, emit, slots }) {\n const rowKey = computed(() => props.rowKey ?? 'id')\n const popupContainer = shallowRef<any>(null)\n const customUiCls = usePrefixCls('custom-ui')\n\n const { editCellKeys, openEditor, closeEditor } = useEditProvider()\n\n useProvidePopup()\n\n const getPopupContainer = computed(() => props.getPopupContainer!)\n const { status, watermarkMsg } = useLicense()\n\n const dragRowsHandle = new Map<Key, Set<HTMLSpanElement>>()\n const draggingRowKey = ref<Key | null>(null)\n const insertToRowKey = ref<Key | null>(null)\n const dragColumnsHandle = new Map<Key, Set<HTMLDivElement>>()\n const draggingColumnKey = ref<Key>('')\n const latestRangeStartCell = shallowRef<RangeCell | null>(null)\n const mergedSummaryFixed = computed(() =>\n props.summaryFixed === true || props.summaryFixed === ('' as any)\n ? 'bottom'\n : props.summaryFixed,\n )\n const realHeaderHeight = ref(0)\n\n watchEffect(() => {\n devWarning(\n !(typeof rowKey.value == 'function' && rowKey.value.length > 1),\n 'table',\n '`index` parameter of `rowKey` function is deprecated. There is no guarantee that it will work as expected.',\n )\n })\n\n const localeData: any = inject('localeData', {\n antLocale: {\n Table: {\n triggerDesc: 'Click to sort descending',\n triggerAsc: 'Click to sort ascending',\n cancelSort: 'Click to cancel sorting',\n },\n },\n })\n\n const locale = computed<TableLocale>(() => {\n const antLocale = localeData?.antLocale || {}\n return {\n ...(antLocale.locale === 'zh-cn'\n ? {\n triggerDesc: '\\u70B9\\u51FB\\u964D\\u5E8F',\n triggerAsc: '\\u70B9\\u51FB\\u5347\\u5E8F',\n cancelSort: '\\u53D6\\u6D88\\u6392\\u5E8F',\n }\n : {}),\n ...(antLocale.Table || {}),\n ...(props.locale || {}),\n }\n })\n\n const scrollTop = ref(0)\n const scrollLeft = ref(0)\n const rootRef = ref<HTMLDivElement>()\n const bodyWidth = ref(0)\n const bodyHeight = ref(0)\n const measureWidthRef = shallowRef<HTMLDivElement>()\n\n const mergedScrollX = eagerComputed(() => props.scrollX ?? props.scroll?.x)\n const mergedScrollY = eagerComputed(() => props.scroll?.y ?? props.height ?? props.maxHeight)\n const bodyScrollWidth = ref(typeof mergedScrollX.value == 'number' ? mergedScrollX.value : 0)\n\n watch(mergedScrollX, () => {\n bodyScrollWidth.value = typeof mergedScrollX.value == 'number' ? mergedScrollX.value : 0\n })\n\n const virtual = eagerComputed<boolean>(() => !(props.virtual === false || !mergedScrollY.value))\n const xVirtual = eagerComputed<boolean>(\n () => props.xVirtual || (props.virtual !== false && props.xVirtual !== false),\n )\n\n const getRowKey = computed<GetRowKey>(() =>\n typeof rowKey.value == 'function'\n ? rowKey.value\n : (record: Record<string, any>) => {\n return record?.[rowKey.value as string]\n },\n )\n\n const rawData = shallowRef<DefaultRecordType[]>([])\n const rawColumns = shallowRef<ColumnType[]>([])\n\n let dataSourceWatchStopHandle: WatchStopHandle\n let columnsWatchStopHandle: WatchStopHandle\n watch(\n () => props.deepWatchDataSource,\n () => {\n dataSourceWatchStopHandle && dataSourceWatchStopHandle()\n dataSourceWatchStopHandle = watch(\n () => props.dataSource,\n () => {\n rawData.value = toRaw(props.dataSource) || EMPTY_LIST\n triggerRef(rawData)\n },\n { immediate: true, deep: !!props.deepWatchDataSource },\n )\n },\n { immediate: true, deep: true },\n )\n\n watch(\n () => props.deepWatchColumns,\n () => {\n columnsWatchStopHandle && columnsWatchStopHandle()\n columnsWatchStopHandle = watch(\n () => props.columns,\n () => {\n rawColumns.value = toRaw(props.columns) || EMPTY_LIST\n triggerRef(rawColumns)\n },\n { immediate: true, deep: true },\n )\n },\n { immediate: true, deep: !!props.deepWatchColumns },\n )\n\n const childrenColumnName = computed(() => props.childrenColumnName || 'children')\n\n const { getRecordByKey, getIndexsByKey, getKeyByIndexs, allDataRowKeys, allDataRootRowKeys } =\n useKVMap(rawData, childrenColumnName, getRowKey)\n\n const defaultExpandedRowKeys = shallowRef<Key[]>([])\n watchEffect(() => {\n props.defaultExpandedRowKeys && (defaultExpandedRowKeys.value = props.defaultExpandedRowKeys)\n props.defaultExpandAllRows && (defaultExpandedRowKeys.value = allDataRowKeys.value)\n })\n\n const mergedRowSelection = computed(() => {\n const rowSelection = props.rowSelection || {}\n const { checkStrictly = true } = rowSelection\n return { ...rowSelection, checkStrictly }\n })\n\n const expandedRowKeys = computed(\n () => new Set(props.expandedRowKeys || defaultExpandedRowKeys.value || []),\n )\n\n const spinProps = computed<SpinProps>(() => {\n if (typeof props.loading === 'boolean') {\n return { spinning: props.loading }\n } else if (typeof props.loading === 'object') {\n return { spinning: true, ...props.loading }\n } else {\n return { spinning: false }\n }\n })\n\n onActivated(() => {\n scrollTo({ left: 0, top: 0 })\n })\n\n let triggerOnChange: any = () => {}\n\n const scrollBarSize = shallowRef(getScrollBarSize())\n const baseHeight = computed(() =>\n props.size === 'small' ? 39 : props.size === 'middle' ? 47 : 55,\n )\n const expandedRowRender = computed(() => props.expandedRowRender)\n const expandType = eagerComputed(() =>\n rawData.value.some((column) => column?.[childrenColumnName.value])\n ? 'nest'\n : expandedRowRender.value\n ? 'row'\n : null,\n )\n const expandable = eagerComputed(() => !!props.expandedRowRender)\n\n const columns = useColumns({\n props,\n rawColumns,\n bodyScrollWidth,\n baseHeight,\n measureWidthRef,\n expandable,\n expandType,\n scrollLeft,\n bodyWidth,\n xVirtual,\n draggingColumnKey,\n latestRangeStartCell,\n })\n\n const { sortedData, sorterStates, sorter, changeSorter } = useSorter(\n props,\n rawData,\n columns.allColumns,\n (sorter, sorterStates) => {\n scrollTop.value > bodyHeight.value && updateAnimate()\n triggerOnChange({ sorter, sorterStates }, 'sort', false)\n },\n )\n\n const { filterData, filterStates, filters, changeFilter } = useFilter(\n props,\n sortedData,\n columns.allColumns,\n (filters, filterStates) => {\n triggerOnChange({ filters, filterStates }, 'filter', true)\n },\n )\n\n const total = eagerComputed(() => filterData.value.length)\n const paginationParam = computed(() => {\n if (props.pagination === false) {\n return {}\n }\n return getPaginationParam(props.pagination, mergedPagination.value)\n })\n\n const triggeronPaginationChange = (current: number, pageSize: number) => {\n const pagination = { ...paginationParam.value, current, pageSize }\n props['onUpdate:pagination'] &&\n emit(\n 'update:pagination',\n isReactive(props.pagination)\n ? Object.assign(props.pagination || {}, pagination)\n : pagination,\n )\n }\n\n const {\n mergedPagination,\n pos,\n refreshPagination,\n onChange: onPaginationChange,\n onShowSizeChange,\n pageData,\n } = usePagination(total, props, filterData, (current, pageSize) => {\n const pagination = { ...paginationParam.value, current, pageSize }\n triggeronPaginationChange(current, pageSize)\n updateAnimate()\n triggerOnChange({ pagination }, 'paginate')\n })\n\n const {\n flattenData,\n keyEntities,\n pageDataRowKeys,\n pageDataEnableRowKeys,\n checkboxPropsMap,\n getRowFlattenIndexByKey,\n isMyChildren,\n getRowByFlattenIndex,\n } = useFlattenRecords(\n pageData,\n childrenColumnName,\n expandedRowKeys,\n getRowKey,\n expandType,\n mergedRowSelection,\n )\n\n const cal = useCal(props, flattenData, bodyHeight, scrollTop, virtual, keyEntities)\n\n const { rowPosition, viewportHeight, startIndex, endIndex } = cal\n const { leftWidth, rightWidth, centerWidth, bodyMaxWidth } = columns\n\n const selection = useSelection(props, mergedRowSelection, rawData, {\n prefixCls: computed(() => props.prefixCls!),\n pageData,\n getRowKey,\n getRecordByKey,\n childrenColumnName,\n locale,\n flattenData,\n keyEntities,\n checkboxPropsMap,\n allDataRowKeys,\n allDataRootRowKeys,\n pageDataRowKeys,\n pageDataEnableRowKeys,\n })\n\n const bodyRef = ref<HTMLDivElement>()\n let leftRaf: any, topRaf: any\n\n const scrollTo = (options: any = {}, type = 'auto', isAnimate = false) => {\n if (!isAnimate) {\n updateAnimate()\n }\n const mergeOptions = typeof options == 'number' ? { top: options } : options\n let left, top\n if ('left' in mergeOptions) {\n left = mergeOptions.left || 0\n } else if ('columnIndex' in mergeOptions) {\n const position = columns.getColumnPosition(mergeOptions.columnIndex!)\n if (position) {\n left = position.left - leftWidth.value\n }\n } else if ('columnKey' in mergeOptions) {\n const position = columns.getColumnPositionByKey(mergeOptions.columnKey!)\n if (position) {\n left = position.left - leftWidth.value\n }\n }\n if ('top' in mergeOptions) {\n top = Math.min(Math.max(mergeOptions.top || 0, 0), maxScrollTop.value)\n } else if ('rowKey' in mergeOptions) {\n const pos = cal.getRowPositionByKey(mergeOptions.rowKey!)\n if (pos) {\n top = pos\n }\n }\n\n left = Math.max(Math.min(maxScrollLeft.value, left || 0), 0)\n if (!showVerticalScrollbar.value) {\n top = 0\n }\n if (type === 'smooth') {\n if (left !== undefined) {\n raf.cancel(leftRaf)\n leftRaf = easeoutScroll(scrollLeft.value, left, (val: number) => {\n scrollLeft.value = val\n })\n }\n if (top !== undefined) {\n raf.cancel(topRaf)\n topRaf = easeoutScroll(scrollTop.value, top, (val: number) => {\n scrollTop.value = val\n })\n }\n } else {\n if (left !== undefined) {\n scrollLeft.value = left\n }\n if (top !== undefined) {\n scrollTop.value = top\n }\n }\n }\n\n const useAnimate = ref(false)\n const animateRows = computed(() => {\n return !!(props.animateRows ?? globalAnimateRows.value)\n })\n\n let timer: any\n watch(\n animateRows,\n (newVal) => {\n useAnimate.value = newVal\n },\n { immediate: true },\n )\n\n const updateAnimate = () => {\n useAnimate.value = false\n clearTimeout(timer)\n timer = setTimeout(() => {\n useAnimate.value = animateRows.value\n }, 100)\n }\n\n const maxScrollLeft = computed(() => bodyMaxWidth.value - bodyWidth.value)\n const maxScrollTop = computed(() => viewportHeight.value - bodyHeight.value)\n const onScroll = (e) => {\n emit('scroll', e)\n }\n\n useHScrollSyncProvide({ scrollLeft, maxScrollLeft, onScroll, bodyWidth })\n useVScrollSyncProvide({ scrollTop, maxScrollTop, onScroll, updateAnimate, bodyWidth })\n\n const { data, pos: dataRowPosition } = useData(\n props,\n rowPosition,\n flattenData,\n startIndex,\n endIndex,\n draggingRowKey,\n useAnimate,\n getRowFlattenIndexByKey,\n latestRangeStartCell,\n )\n\n const pingedLeft = ref(false)\n const pingedRight = ref(false)\n const noPinged = ref(false)\n\n watchEffect(() => {\n pingedLeft.value = supportSticky && !!scrollLeft.value\n pingedRight.value =\n supportSticky &&\n centerWidth.value - (bodyWidth.value - leftWidth.value - rightWidth.value) >\n scrollLeft.value\n noPinged.value = !pingedLeft.value && !pingedRight.value\n })\n\n const rootClass = computed(() =>\n classNames({\n [`${props.prefixCls}`]: true,\n [`${props.prefixCls}-support-sticky`]: supportSticky,\n [`${props.prefixCls}-stripe`]: props.stripe,\n [`${props.prefixCls}-bordered`]: props.bordered,\n [`${props.prefixCls}-${props.size}`]: true,\n [`${props.prefixCls}-ping-left`]: pingedLeft.value,\n [`${props.prefixCls}-ping-right`]: pingedRight.value,\n [`${props.prefixCls}-no-ping`]: noPinged.value,\n [`${props.prefixCls}-has-animate`]: animateRows.value,\n }),\n )\n const rootStyle = computed(() => ({\n height: typeof props.height == 'number' ? `${props.height}px` : props.height,\n maxHeight: typeof props.maxHeight == 'number' ? `${props.maxHeight}px` : props.maxHeight,\n minHeight: typeof props.minHeight == 'number' ? `${props.minHeight}px` : props.minHeight,\n }))\n\n const showHorizontalScrollbar = ref(false)\n const debounceFn = debounce(() => {\n showHorizontalScrollbar.value = bodyMaxWidth.value > bodyWidth.value\n if (bodyWidth.value > bodyScrollWidth.value) {\n bodyScrollWidth.value = bodyWidth.value\n }\n }, 100)\n\n watch([bodyMaxWidth, bodyWidth], () => {\n debounceFn()\n })\n\n const showVerticalScrollbar = eagerComputed(\n () => !!mergedScrollY.value && bodyHeight.value + 0.9 < viewportHeight.value,\n )\n const scrollToFirstRow = eagerComputed(\n () => !props.scroll || (props.scroll && props.scroll.scrollToFirstRowOnChange !== false),\n )\n\n triggerOnChange = (\n info: Partial<ChangeEventInfo<DefaultRecordType>>,\n action: TableAction,\n reset = false,\n ) => {\n if (reset) {\n refreshPagination()\n triggeronPaginationChange(1, mergedPagination.value.pageSize!)\n if (props.pagination) {\n props.pagination.onChange?.(1, mergedPagination.value.pageSize)\n }\n }\n if (scrollToFirstRow.value) {\n scrollTop.value = 0\n }\n props.onChange?.(\n info.pagination || mergedPagination.value,\n info.filters || filters.value,\n info.sorter || sorter.value,\n {\n currentDataSource: info.currentDataSource || filterData.value,\n action,\n },\n )\n }\n\n const paginationProps = computed(() => {\n return omit(mergedPagination.value, ['position', 'onChange', 'onShowSizeChange'])\n })\n\n const paginationClass = computed(() => {\n return {\n [`${props.prefixCls}-pagination`]: true,\n [`${props.prefixCls}-pagination-${pos.value.bottom}`]: true,\n [`${customUiCls}`]: true,\n }\n })\n const bottomPaginationHeight = ref(0)\n const bottomPaginationStyle = computed<any>(() => {\n if (!props.paginationSticky) {\n return {}\n }\n if (props.paginationSticky === true) {\n return { position: 'sticky', 'z-index': 9, bottom: '0px' }\n }\n return {\n position: 'sticky',\n 'z-index': 9,\n bottom: `${props.paginationSticky?.offsetBottom ?? 0}px`,\n }\n })\n\n const indentSize = computed(() => (typeof props.indentSize == 'number' ? props.indentSize : 15))\n\n const cellProps = useCellProps({\n leftColumns: columns.leftColumns,\n rightColumns: columns.rightColumns,\n visibleCenterColumns: columns.visibleCenterColumns,\n allColumns: columns.allColumns,\n data,\n mergedRowHeights: cal.mergedRowHeights,\n startIndex,\n getColumnPosition: columns.getColumnPosition,\n bodyWidth,\n leftWidth,\n centerWidth,\n getRowHeight: cal.getRowHeight,\n customCell: toRef(props, 'customCell'),\n })\n\n watch(\n [realHeaderHeight, scrollLeft],\n () => {\n popupContainer.value?.alignPopup?.()\n },\n { flush: 'post' },\n )\n\n useProvideTable({\n ...cal,\n ...columns,\n ...cellProps,\n rootRef,\n rawData,\n getRowFlattenIndexByKey,\n prefixCls: computed(() => props.prefixCls!),\n draggingRowKey,\n insertToRowKey,\n status,\n useAnimate,\n animateRows,\n watermarkMsg,\n onResizeColumn: (w: number, col: ColumnType, action: ResizeActionType) => {\n const width = col.width\n const result = props.onResizeColumn?.(w, col, action)\n if (result !== false) {\n if (!(width === w && col.width === w)) {\n col.width = width !== col.width ? col.width : w\n triggerRef(rawColumns)\n }\n if (action === 'end') {\n emit('update:columns', rawColumns.value, 'resize')\n }\n }\n },\n onRowDragEnd: (opt: DragRowEventInfo) => {\n const { insertToRowKey, record, fromIndexs, rowKey, dir, preTargetInfo, nextTargetInfo } =\n opt\n const rawRecord = toRaw(record)\n const dragEnd = props.onRowDragEnd?.({ ...opt, record: rawRecord, fromIndexs })\n if (dragEnd === false) {\n return\n }\n\n const handler = () => {\n if (!isMyChildren(rowKey, preTargetInfo?.rowKey as Key) && insertToRowKey !== rowKey) {\n if (insertToRowKey !== null) {\n const parentRecord = getRecordByKey(insertToRowKey)\n if (\n insertToRowKey === preTargetInfo?.rowKey ||\n insertToRowKey === nextTargetInfo?.rowKey\n ) {\n if (dir === DOWN) {\n addNestItemData(\n parentRecord[childrenColumnName.value],\n [],\n childrenColumnName.value,\n rawRecord,\n )\n deleteNestItemData(rawData.value, fromIndexs, childrenColumnName.value)\n } else {\n deleteNestItemData(rawData.value, fromIndexs, childrenColumnName.value)\n addNestItemData(\n parentRecord[childrenColumnName.value],\n [],\n childrenColumnName.value,\n rawRecord,\n )\n }\n } else {\n if (dir === DOWN) {\n addNestItemData(\n rawData.value,\n preTargetInfo?.indexs as number[],\n childrenColumnName.value,\n rawRecord,\n )\n deleteNestItemData(rawData.value, fromIndexs, childrenColumnName.value)\n } else {\n deleteNestItemData(rawData.value, fromIndexs, childrenColumnName.value)\n addNestItemData(\n rawData.value,\n preTargetInfo?.indexs as number[],\n childrenColumnName.value,\n rawRecord,\n )\n }\n }\n } else {\n if (dir === DOWN && preTargetInfo) {\n addNestItemData(\n rawData.value,\n [preTargetInfo.indexs[0]!],\n childrenColumnName.value,\n rawRecord,\n )\n deleteNestItemData(rawData.value, fromIndexs, childrenColumnName.value)\n } else if (dir === UP && nextTargetInfo) {\n deleteNestItemData(rawData.value, fromIndexs, childrenColumnName.value)\n addNestItemData(\n rawData.value,\n preTargetInfo?.indexs ? [preTargetInfo!.indexs[0]!] : [],\n childrenColumnName.value,\n rawRecord,\n )\n }\n }\n triggerRef(rawData)\n emit('update:dataSource', rawData.value)\n }\n }\n if (isPromise(dragEnd)) {\n dragEnd\n .then(() => {\n handler()\n })\n .catch(() => {})\n } else {\n handler()\n }\n },\n virtual,\n xVirtual,\n dataRowPosition,\n rawColumns,\n bodyHeight,\n scrollTop,\n scrollLeft,\n supportSticky,\n childrenColumnName,\n bodyScrollWidth,\n baseHeight,\n startIndex,\n data,\n pageData,\n getRecordByKey,\n getIndexsByKey,\n expandType,\n flattenData,\n expandedRowKeys,\n indentSize,\n props,\n bodyWidth,\n scrollTo,\n scrollBarSize,\n leftWidth,\n rightWidth,\n centerWidth,\n showVerticalScrollbar,\n showHorizontalScrollbar,\n getRowKey,\n selection,\n updateSelectedRowKeys: (keys: Key[]) => {\n emit('update:selectedRowKeys', keys)\n },\n locale,\n sorterStates,\n changeSorter,\n changeFilter,\n filterStates,\n onTriggerExpand: (record, key: Key) => {\n let keys: Key[]\n const hasKey = expandedRowKeys.value.has(key)\n if (hasKey) {\n expandedRowKeys.value.delete(key)\n keys = [...expandedRowKeys.value]\n } else {\n keys = [...expandedRowKeys.value, key]\n }\n defaultExpandedRowKeys.value = keys\n emit('update:expandedRowKeys', keys)\n emit('expand', !hasKey, record)\n emit('expandedRowsChange', keys)\n },\n keyEntities,\n pageDataRowKeys,\n pageDataEnableRowKeys,\n checkboxPropsMap,\n mergedRowSelection,\n getPopupContainer,\n allDataRowKeys,\n allDataRootRowKeys,\n dragRowsHandle,\n isMyChildren,\n getKeyByIndexs,\n getRowByFlattenIndex,\n draggingColumnKey,\n dragColumnsHandle,\n onColumnDragEnd: (arg: DragColumnEventInfo) => {\n const { dir, column, targetColumn } = arg\n const dragEnd = props.onColumnDragEnd?.(arg)\n if (dragEnd === false) {\n return\n }\n\n const handler = () => {\n if (column === targetColumn || column.key === targetColumn.key) return\n const index = rawColumns.value.findIndex(\n (col) => col === column || col.key === column.key,\n )\n const targetIndex = rawColumns.value.findIndex(\n (col) => col === targetColumn || col.key === targetColumn.key,\n )\n if (dir === LEFT) {\n rawColumns.value.splice(index, 1)\n rawColumns.value.splice(targetIndex, 0, column)\n } else {\n rawColumns.value.splice(targetIndex + 1, 0, column)\n rawColumns.value.splice(index, 1)\n }\n triggerRef(rawColumns)\n emit('update:columns', rawColumns.value, 'drag')\n }\n\n if (isPromise(dragEnd)) {\n dragEnd\n .then(() => {\n handler()\n })\n .catch(() => {})\n } else {\n handler()\n }\n },\n onColumnDrag: () => {},\n columnDrag: computed(() => props.columnDrag),\n summaryFixed: mergedSummaryFixed,\n realHeaderHeight,\n bottomPaginationHeight,\n pos,\n })\n\n const tabGuardTopRef = ref()\n const tabGuardBottomRef = ref()\n\n const {\n navigationService,\n getSelectedRange,\n clearAllSelectedRange,\n copySelectedRange,\n appendCellToSelectedRange,\n onBodyKeydown,\n } = useProvideRangeStore({\n allColumns: columns.allColumns,\n flattenData,\n rangeSelection: computed(() => props.rangeSelection),\n getRowByFlattenIndex,\n rootRef,\n prefixCls: computed(() => props.prefixCls!),\n allCellProps: cellProps.allCellProps,\n tabGuardTopRef,\n tabGuardBottomRef,\n ensureCellColumnVisible: (cell: RangeCell) => {\n if (!cell.column || cell.column.fixed) return\n const sl = scrollLeft.value\n const pos = columns.getColumnPositionByKey(cell.column.columnKey)\n if (pos) {\n const { width, left } = pos\n const lw = leftWidth.value\n const rw = rightWidth.value\n left - lw < sl\n ? (scrollLeft.value = left - lw)\n : left + width > sl + bodyWidth.value - rw &&\n (scrollLeft.value = left + width - bodyWidth.value + rw)\n }\n },\n ensureCellRowVisible: (cell: RangeCell) => {\n const { rowIndex } = cell\n const st = scrollTop.value\n const row = getRowByFlattenIndex(rowIndex)\n const pos = cal.getRowPositionByKey(row.rowKey)\n const cprops =\n (cellProps.allCellProps.value[row.rowKey]?.[cell.column!.columnKey] || {}).props || {}\n const height = cal.getRowHeight(rowIndex, cprops.rowSpan)\n if (pos !== undefined) {\n updateAnimate()\n if (pos < st) {\n scrollTop.value = pos\n } else {\n if (pos + height > st + bodyHeight.value) {\n scrollTop.value = pos + height - bodyHeight.value\n }\n }\n }\n },\n latestRangeStartCell,\n bodyRef: computed(() => {\n return (bodyRef.value as any)?.bodyRef\n }),\n scrollLeft,\n scrollTop,\n scrollTo,\n showVerticalScrollbar,\n showHorizontalScrollbar,\n getIndexsByKey,\n formatRangeCellText: (parmas) => {\n if (props.formatRangeCellText) {\n return props.formatRangeCellText(parmas)\n } else if (parmas.value) {\n return parmas.value\n }\n return ''\n },\n editCellKeys,\n copyDelimiter: computed(() => props.copyDelimiter),\n })\n\n expose({\n scrollTo,\n scrollLeft,\n scrollTop,\n bodyRef: computed(() => {\n return (bodyRef.value as any)?.bodyRef\n }),\n getSelectedRange,\n clearAllSelectedRange,\n copySelectedRange,\n appendCellToSelectedRange,\n openEditor: (cellInfos: any[]) => {\n openEditor(cellInfos.map((info) => `${info.rowKey} ${info.columnKey}`))\n },\n closeEditor: (cellInfos: any[]) => {\n if (cellInfos) {\n closeEditor(cellInfos.map((info) => `${info.rowKey} ${info.columnKey}`))\n } else {\n closeEditor()\n }\n },\n })\n\n return {\n bodyRef,\n spinProps,\n rowPosition,\n viewportHeight,\n startIndex,\n data,\n watermarkMsg,\n rootStyle,\n rootClass,\n onBodyKeydown,\n watermarkStyle: computed<any>(() => ({\n minWidth: '100px!important',\n minHeight: '40px!important',\n position: 'absolute!important',\n fontSize: '20px!important',\n opacity: '0.8!important',\n bottom: '40px!important',\n right: '40px!important',\n pointerEvents: 'none',\n display: 'block!important',\n zIndex: '999999!important',\n color: '#000000!important',\n margin: '0px!important',\n padding: '0px!important',\n transform: 'unset!important',\n })),\n mergedPagination,\n pos,\n onPaginationChange,\n scrollBarSize,\n scrollTop,\n bodyScrollWidth,\n bodyWidth,\n scrollLeft,\n cal,\n selection,\n locale,\n paginationProps,\n slots,\n mergedScrollX,\n mergedScrollY,\n bodyHeight,\n measureWidthRef,\n flattenData,\n rootRef,\n mergedSummaryFixed,\n handleResize: (e: CustomEvent) => {\n realHeaderHeight.value = e.detail.height\n },\n handlePaginationResize: (e: CustomEvent) => {\n bottomPaginationHeight.value = e.detail.height\n },\n popupContainer,\n handleGuardTopKeydown: (e: KeyboardEvent) => {\n e.keyCode !== KeyCode.TAB ||\n e.shiftKey ||\n (navigationService.getFirstCellToFocus(e.shiftKey), e.preventDefault())\n },\n handleGuardBottomKeydown: (e: KeyboardEvent) => {\n e.keyCode === KeyCode.TAB &&\n e.shiftKey &&\n (navigationService.getLastCellToFocus(e.shiftKey), e.preventDefault())\n },\n tabGuardTopRef,\n tabGuardBottomRef,\n onShowSizeChange,\n customUiCls,\n paginationClass,\n bottomPaginationStyle,\n }\n },\n})\n</script>\n\n<template>\n <TableSlotsContextProvider :value=\"{ ...slots }\">\n <Spin v-bind=\"spinProps\">\n <Pagination\n v-if=\"pos.top\"\n :class=\"`${prefixCls}-pagination ${prefixCls}-pagination-${pos.top} ${customUiCls}`\"\n v-bind=\"paginationProps\"\n @change=\"onPaginationChange\"\n @show-size-change=\"onShowSizeChange\"\n />\n <div\n ref=\"tabGuardTopRef\"\n role=\"presentation\"\n tabindex=\"0\"\n :style=\"{ position: 'absolute', width: '0', height: '0' }\"\n @keydown=\"handleGuardTopKeydown\"\n ></div>\n <div key=\"content\" ref=\"ref\" :class=\"rootClass\" :style=\"rootStyle\">\n <template v-if=\"showHeader\">\n <AutoHeightHeader\n v-if=\"autoHeaderHeight\"\n :prefix-cls=\"prefixCls\"\n :sticky=\"sticky\"\n @resizeheight=\"handleResize\"\n />\n <ProHeader v-else :prefix-cls=\"prefixCls\" :sticky=\"sticky\" @resizeheight=\"handleResize\" />\n </template>\n <ProBody\n ref=\"bodyRef\"\n v-model:bodyScrollWidth=\"bodyScrollWidth\"\n v-model:bodyWidth=\"bodyWidth\"\n v-model:bodyHeight=\"bodyHeight\"\n :prefix-cls=\"prefixCls\"\n :wrap-text=\"wrapText\"\n :scroll-x=\"mergedScrollX\"\n :height=\"mergedScrollY\"\n :summary-fixed=\"mergedSummaryFixed\"\n :summary=\"$slots.summary\"\n :empty-text=\"$slots.emptyText\"\n @keydown=\"onBodyKeydown\"\n />\n </div>\n <div\n ref=\"tabGuardBottomRef\"\n role=\"presentation\"\n tabindex=\"0\"\n :style=\"{ position: 'absolute', width: '0', height: '0' }\"\n @keydown=\"handleGuardBottomKeydown\"\n ></div>\n <div v-if=\"$slots.footer\" key=\"footer\" :class=\"`${prefixCls}-footer`\">\n <slot name=\"footer\" />\n </div>\n <PopupContainer ref=\"popupContainer\" :prefix-cls=\"prefixCls\" />\n <div\n v-if=\"pos.bottom\"\n v-resize:height\n :style=\"bottomPaginationStyle\"\n :class=\"`${prefixCls}-pagination-wrap`\"\n @resizeheight=\"handlePaginationResize\"\n >\n <Pagination\n :class=\"paginationClass\"\n v-bind=\"paginationProps\"\n @change=\"onPaginationChange\"\n @show-size-change=\"onShowSizeChange\"\n />\n </div>\n </Spin>\n <MeasureWidth ref=\"measureWidthRef\" />\n </TableSlotsContextProvider>\n</template>\n"],"names":["_createBlock","_createVNode","_normalizeProps","_guardReactiveProps","_withCtx","_openBlock","_mergeProps","_createCommentVNode","_createElementVNode","_normalizeClass","_normalizeStyle","_createElementBlock","_Fragment","_renderSlot","_withDirectives"],"mappings":";;;;;;;;;;;;;;;;;;0BA4gCEA,eAAA,CAoE4B,oCAAA,EAAA;AAAA,IApEA,KAAA,EAAK,KAAO,IAAA,CAAA,KAAA;AAAK,GAAA,EAAA;AAAA,yBAC3C,MAiEO;AAAA,MAjEPC,eAAA;AAAA,QAiEO,eAAA;AAAA,QAAAC,kBAAA,CAAAC,sBAAA,CAjEO,IAAA,CAAA,SAAS,CAAA,CAAA;AAAA,QAAA;AAAA,UAAA,OAAA,EAAAC,YACrB,MAME;AAAA,YALM,KAAA,GAAA,CAAI,GAAA,IAAAC,eAAA,EADZL,eAAA,CAME,uBANFM,cAAA,CAME;AAAA,cAAA,GAAA,EAAA,CAAA;AAAA,cAJC,KAAA,EAAK,CAAA,EAAK,IAAA,UAAS,CAAA,YAAA,EAAe,IAAA,CAAA,SAAS,CAAA,YAAA,EAAe,IAAA,CAAA,GAAA,CAAI,GAAG,CAAA,CAAA,EAAI,KAAA,WAAW,CAAA;AAAA,aAAA,EACzE,KAAA,eAAA,EAAe;AAAA,cACtB,UAAQ,IAAA,CAAA,kBAAA;AAAA,cACR,kBAAkB,IAAA,CAAA;AAAA,aAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,kBAAA,CAAA,CAAA,IAAAC,sBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,YAErBC,sBAAA;AAAA,cAMO,KAAA;AAAA,cAAA;AAAA,gBALL,GAAA,EAAI,gBAAA;AAAA,gBACJ,IAAA,EAAK,cAAA;AAAA,gBACL,QAAA,EAAS,GAAA;AAAA,gBACR,OAAO,EAAA,QAAA,EAAA,YAAA,KAAA,EAAA,GAAA,EAAA,QAAA,GAAA,EAAA;AAAA,gBACP,SAAA,EAAO,MAAA,CAAA,CAAA,CAAA,KAAA,OAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KAAE,IAAA,CAAA,qBAAA,IAAA,IAAA,CAAA,qBAAA,CAAA,GAAA,IAAA,CAAA;AAAA,eAAA;AAAA;;;;YAEZA,sBAAA;AAAA,cAwBM,KAAA;AAAA,cAAA;AAAA,gBAxBD,GAAA,EAAI,SAAA;AAAA,gBAAU,GAAA,EAAI,KAAA;AAAA,gBAAO,KAAA,EAAKC,kBAAA,CAAE,IAAA,CAAA,SAAS,CAAA;AAAA,gBAAG,KAAA,EAAKC,kBAAA,CAAE,IAAA,CAAA,SAAS;AAAA,eAAA;AAAA;gBAC/C,IAAA,CAAA,UAAA,IAAAL,aAAA,EAAA,EAAhBM,sBAAA;AAAA,kBAQWC,YAAA;AAAA,kBAAA,EAAA,KAAA,CAAA,EAAA;AAAA,kBAAA;AAAA,oBAND,IAAA,sCADRZ,gBAKE,2BAAA,EAAA;AAAA,sBAAA,GAAA,EAAA,CAAA;AAAA,sBAHC,cAAY,IAAA,CAAA,SAAA;AAAA,sBACZ,QAAQ,IAAA,CAAA,MAAA;AAAA,sBACR,gBAAc,IAAA,CAAA;AAAA,qBAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,CAAA,KAAAK,aAAA,EAAA,EAEjBL,eAAA,CAA0F,oBAAA,EAAA;AAAA,sBAAA,GAAA,EAAA,CAAA;AAAA,sBAAvE,cAAY,IAAA,CAAA,SAAA;AAAA,sBAAY,QAAQ,IAAA,CAAA,MAAA;AAAA,sBAAS,gBAAc,IAAA,CAAA;AAAA,uBAAA,IAAA,EAAA,CAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,CAAA;AAAA;;;;gBAE5EC,gBAaE,kBAAA,EAAA;AAAA,kBAZA,GAAA,EAAI,SAAA;AAAA,kBACI,iBAAiB,IAAA,CAAA,eAAA;AAAA,kBAAA,0BAAA,EAAA,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAA,IAAA,CAAA,eAAA,GAAe,MAAA,CAAA;AAAA,kBAChC,WAAW,IAAA,CAAA,SAAA;AAAA,kBAAA,oBAAA,EAAA,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAA,IAAA,CAAA,SAAA,GAAS,MAAA,CAAA;AAAA,kBACpB,YAAY,IAAA,CAAA,UAAA;AAAA,kBAAA,qBAAA,EAAA,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAA,IAAA,CAAA,UAAA,GAAU,MAAA,CAAA;AAAA,kBAC7B,cAAY,IAAA,CAAA,SAAA;AAAA,kBACZ,aAAW,IAAA,CAAA,QAAA;AAAA,kBACX,YAAU,IAAA,CAAA,aAAA;AAAA,kBACV,QAAQ,IAAA,CAAA,aAAA;AAAA,kBACR,iBAAe,IAAA,CAAA,kBAAA;AAAA,kBACf,OAAA,EAAS,KAAA,MAAA,CAAO,OAAA;AAAA,kBAChB,YAAA,EAAY,KAAA,MAAA,CAAO,SAAA;AAAA,kBACnB,WAAS,IAAA,CAAA;AAAA,iBAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,mBAAA,WAAA,EAAA,YAAA,EAAA,YAAA,EAAA,WAAA,EAAA,YAAA,QAAA,EAAA,eAAA,EAAA,SAAA,EAAA,YAAA,EAAA,WAAA,CAAA;AAAA;;;;YAGdO,sBAAA;AAAA,cAMO,KAAA;AAAA,cAAA;AAAA,gBALL,GAAA,EAAI,mBAAA;AAAA,gBACJ,IAAA,EAAK,cAAA;AAAA,gBACL,QAAA,EAAS,GAAA;AAAA,gBACR,OAAO,EAAA,QAAA,EAAA,YAAA,KAAA,EAAA,GAAA,EAAA,QAAA,GAAA,EAAA;AAAA,gBACP,SAAA,EAAO,MAAA,CAAA,CAAA,CAAA,KAAA,OAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KAAE,IAAA,CAAA,wBAAA,IAAA,IAAA,CAAA,wBAAA,CAAA,GAAA,IAAA,CAAA;AAAA,eAAA;AAAA;;;;YAED,IAAA,CAAA,MAAA,CAAO,MAAA,IAAAH,aAAA,EAAA,EAAlBM,sBAAA;AAAA,cAEM,KAAA;AAAA,cAAA;AAAA,gBAFoB,GAAA,EAAI,QAAA;AAAA,gBAAU,KAAA,EAAKF,kBAAA,IAAK,IAAA,CAAA,SAAS,CAAA,OAAA,CAAA;AAAA,eAAA;AAAA;gBACzDI,cAAA,CAAsB,IAAA,CAAA,MAAA,EAAA,QAAA;AAAA,eAAA;AAAA;;;YAExBZ,gBAA+D,yBAAA,EAAA;AAAA,cAA/C,GAAA,EAAI,gBAAA;AAAA,cAAkB,cAAY,IAAA,CAAA;AAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,YAAA,CAAA,CAAA;AAAA,YAE1C,IAAA,CAAA,GAAA,CAAI,MAAA,GAAAa,kBAAA,EAAAT,eAAA,EADZM,sBAAA;AAAA,cAaM,KAAA;AAAA,cAAA;AAAA,gBAAA,GAAA,EAAA,CAAA;AAAA,gBAVH,KAAA,EAAKD,kBAAA,CAAE,IAAA,CAAA,qBAAqB,CAAA;AAAA,gBAC5B,KAAA,EAAKD,kBAAA,IAAK,IAAA,CAAA,SAAS,CAAA,gBAAA,CAAA,CAAA;AAAA,gBACnB,cAAA,EAAY,MAAA,CAAA,CAAA,CAAA,KAAA,OAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KAAE,IAAA,CAAA,sBAAA,IAAA,IAAA,CAAA,sBAAA,CAAA,GAAA,IAAA,CAAA;AAAA,eAAA;AAAA;gBAEfR,eAAA,CAKE,uBALFK,cAAA,CAKE,EAJC,OAAO,IAAA,CAAA,eAAA,EAAe,EACf,IAAA,CAAA,eAAA,EAAe;AAAA,kBACtB,UAAQ,IAAA,CAAA,kBAAA;AAAA,kBACR,kBAAkB,IAAA,CAAA;AAAA,iBAAA,GAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,kBAAA,CAAA;AAAA;;;;0CATZ,QAAM;AAAA,aAAA,CAAA,GAAAC,sBAAA,CAAA,MAAA,EAAA,IAAA;AAAA;;;;;;;MAanBN,eAAA;AAAA,QAAsC,uBAAA;AAAA,QAAA,EAAxB,KAAI,iBAAA,EAAiB;AAAA,QAAA,IAAA;AAAA,QAAA;AAAA;AAAA;AAAA,KAAA,CAAA;AAAA;;;;;;;;"}
|