@koi-design/uxd-ui 14.0.35 → 14.0.37

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.
Files changed (62) hide show
  1. package/es/components/Menu/MenuItem.mjs +1 -1
  2. package/es/components/Menu/MenuItem.mjs.map +1 -1
  3. package/es/components/Table/BaseTable.vue.d.ts +10 -0
  4. package/es/components/Table/BodyTable.vue.d.ts +10 -0
  5. package/es/components/Table/HeadTable.vue.d.ts +10 -0
  6. package/es/components/Table/Table.mjs +2 -0
  7. package/es/components/Table/Table.mjs.map +1 -1
  8. package/es/components/Table/Table.type.d.ts +1 -0
  9. package/es/components/Table/Table.type.mjs.map +1 -1
  10. package/es/components/Table/Table.vue.d.ts +20 -0
  11. package/es/components/Table/TableBox.vue.d.ts +20 -0
  12. package/es/components/Table/hooks/useFilterSortPage.d.ts +1 -0
  13. package/es/components/Table/hooks/useFilterSortPage.mjs +5 -0
  14. package/es/components/Table/hooks/useFilterSortPage.mjs.map +1 -1
  15. package/es/components/Table/tableUnits/FilterDropdown.mjs +6 -1
  16. package/es/components/Table/tableUnits/FilterDropdown.mjs.map +1 -1
  17. package/es/components/Table/tableUnits/FilterDropdown.vue.d.ts +9 -0
  18. package/es/components/Table/tableUnits/TableHeader.vue.d.ts +10 -0
  19. package/es/components/Table/tableUnits/TableHeaderRow.mjs +4 -1
  20. package/es/components/Table/tableUnits/TableHeaderRow.mjs.map +1 -1
  21. package/es/components/Table/tableUnits/TableHeaderRow.vue.d.ts +10 -0
  22. package/lib/components/Menu/MenuItem.js +1 -1
  23. package/lib/components/Menu/MenuItem.js.map +1 -1
  24. package/lib/components/Table/BaseTable.vue.d.ts +10 -0
  25. package/lib/components/Table/BodyTable.vue.d.ts +10 -0
  26. package/lib/components/Table/HeadTable.vue.d.ts +10 -0
  27. package/lib/components/Table/Table.js +2 -0
  28. package/lib/components/Table/Table.js.map +1 -1
  29. package/lib/components/Table/Table.type.d.ts +1 -0
  30. package/lib/components/Table/Table.type.js.map +1 -1
  31. package/lib/components/Table/Table.vue.d.ts +20 -0
  32. package/lib/components/Table/TableBox.vue.d.ts +20 -0
  33. package/lib/components/Table/hooks/useFilterSortPage.d.ts +1 -0
  34. package/lib/components/Table/hooks/useFilterSortPage.js +5 -0
  35. package/lib/components/Table/hooks/useFilterSortPage.js.map +1 -1
  36. package/lib/components/Table/tableUnits/FilterDropdown.js +6 -1
  37. package/lib/components/Table/tableUnits/FilterDropdown.js.map +1 -1
  38. package/lib/components/Table/tableUnits/FilterDropdown.vue.d.ts +9 -0
  39. package/lib/components/Table/tableUnits/TableHeader.vue.d.ts +10 -0
  40. package/lib/components/Table/tableUnits/TableHeaderRow.js +4 -1
  41. package/lib/components/Table/tableUnits/TableHeaderRow.js.map +1 -1
  42. package/lib/components/Table/tableUnits/TableHeaderRow.vue.d.ts +10 -0
  43. package/package.json +1 -1
  44. package/styles/components/table/index.css +1 -1
  45. package/styles/components/table/index.less +18 -2
  46. package/styles/components/table/var.less +1 -0
  47. package/styles/index.css +1 -1
  48. package/types/components/Table/BaseTable.vue.d.ts +10 -0
  49. package/types/components/Table/BodyTable.vue.d.ts +10 -0
  50. package/types/components/Table/HeadTable.vue.d.ts +10 -0
  51. package/types/components/Table/Table.type.d.ts +1 -0
  52. package/types/components/Table/Table.vue.d.ts +20 -0
  53. package/types/components/Table/TableBox.vue.d.ts +20 -0
  54. package/types/components/Table/hooks/useFilterSortPage.d.ts +1 -0
  55. package/types/components/Table/tableUnits/FilterDropdown.vue.d.ts +9 -0
  56. package/types/components/Table/tableUnits/TableHeader.vue.d.ts +10 -0
  57. package/types/components/Table/tableUnits/TableHeaderRow.vue.d.ts +10 -0
  58. package/uxd-ui.css +1 -1
  59. package/uxd-ui.esm.min.mjs +7 -7
  60. package/uxd-ui.esm.mjs +19 -4
  61. package/uxd-ui.umd.js +19 -4
  62. package/uxd-ui.umd.min.js +7 -7
@@ -30,7 +30,7 @@ const _sfc_main = defineComponent({
30
30
  warning("cannot find menu parent Component ,OR! the menu mode is error");
31
31
  }
32
32
  const eventKey = computed(() => {
33
- if (props.name) {
33
+ if (props.name !== void 0) {
34
34
  return props.name;
35
35
  }
36
36
  guid += 1;
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItem.mjs","sources":["../../../../src/components/Menu/MenuItem.vue"],"sourcesContent":["<template>\n <UTooltip :title=\"title\" :disabled=\"!showTooltip\" placement=\"right\" :class=\"`${prefixCls}-trigger`\">\n <li\n role=\"menuitem\"\n :class=\"[\n prefixCls,\n {\n [`${prefixCls}-selected`]: isSelected,\n [`${prefixCls}-disabled`]: disabled\n }\n ]\"\n :style=\"style\"\n :data-color=\"color\"\n v-bind=\"$attrs\"\n @click=\"onClick\"\n >\n <slot>{{ title }}</slot>\n </li>\n </UTooltip>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, computed, watch, ref } from 'vue';\nimport type { CSSProperties } from 'vue';\nimport UTooltip from '@uxd-ui/components/Tooltip';\nimport warn from '../../utils/warn';\nimport { isFunction } from '../../utils/isValid';\nimport { menuItemProps, menuItemEmits, type MenuEvent, type MenuStore, type ParentMenu } from './Menu.type';\n\nlet guid = -1;\n\nexport default defineComponent({\n name: 'UMenuItem',\n components: {\n UTooltip\n },\n inheritAttrs: false,\n props: menuItemProps,\n emits: menuItemEmits,\n setup(props, { emit, attrs }) {\n const {\n selectedKeys,\n mode,\n rootPrefixCls,\n updateKeyPath,\n // inlineIndent,\n collapsed\n } = inject<MenuStore>('menuStore', {} as MenuStore);\n const { fireMenuClick, fireMenuDeselect, fireMenuSelect } = inject<MenuEvent>('menuEvent', {} as MenuEvent);\n const parentMenu = inject<ParentMenu>('parentMenu', {} as ParentMenu);\n const prefixCls = computed(() => `${rootPrefixCls.value}-item`);\n const level = parentMenu.isRootMenu ? 1 : (parentMenu.level as number) + 1;\n\n if (mode === undefined) {\n warn('cannot find menu parent Component ,OR! the menu mode is error');\n }\n const eventKey = computed(() => {\n if (props.name) {\n return props.name;\n }\n guid += 1;\n return `${guid}$MenuItem`;\n });\n\n const isSelected = ref(false);\n\n watch(\n selectedKeys,\n () => {\n const selected = selectedKeys.value.includes(eventKey.value);\n if (parentMenu.setSubMenuSelected) {\n parentMenu.setSubMenuSelected(eventKey.value, selected);\n }\n isSelected.value = selected;\n },\n { immediate: true }\n );\n\n const style = computed<CSSProperties>(() => {\n const attrStyle: CSSProperties = attrs.style ? (attrs.style as CSSProperties) : ({} as CSSProperties);\n if (mode.value === 'inline') {\n return {\n // paddingLeft: `${inlineIndent.value * level}px`,\n ...attrStyle\n };\n }\n return { ...attrStyle };\n });\n\n const showTooltip = computed(() => {\n if (collapsed.value) {\n return props.title !== undefined && !props.disabled && level === 1;\n }\n return false;\n });\n\n const onClick = () => {\n if (props.disabled) {\n return;\n }\n const key = eventKey.value;\n updateKeyPath(key, 'item');\n if (parentMenu.fireSubmenuClick && isFunction(parentMenu.fireSubmenuClick)) {\n parentMenu.fireSubmenuClick();\n }\n const _event = {\n key,\n item: {}\n };\n fireMenuClick && isFunction(fireMenuClick) && fireMenuClick(_event);\n if (isSelected.value) {\n fireMenuDeselect && isFunction(fireMenuDeselect) && fireMenuDeselect(_event);\n } else {\n fireMenuSelect && isFunction(fireMenuSelect) && fireMenuSelect(_event);\n }\n emit('click', _event);\n };\n\n return {\n prefixCls,\n rootPrefixCls,\n showTooltip,\n isSelected,\n style,\n onClick\n };\n }\n});\n</script>\n"],"names":["_createBlock","_normalizeClass","_createElementVNode","_mergeProps","_renderSlot"],"mappings":";;;;;;;AA6BA,IAAI,OAAO;AAEX,MAAK,YAAa,gBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV;AAAA;AACF,EACA,cAAc;AAAA,EACd,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM,OAAO,EAAE,MAAM,SAAS;UACtB;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA,QACE,OAAkB,aAAa,EAAe;UAC5C,EAAE,eAAe,kBAAkB,mBAAmB,OAAkB,aAAa,EAAe;UACpG,aAAa,OAAmB,cAAc,EAAgB;UAC9D,YAAY,SAAS,MAAM,GAAG,cAAc,YAAY;UACxD,QAAQ,WAAW,aAAa,IAAK,WAAW,QAAmB;QAErE,SAAS,QAAW;cACjB,+DAA+D;AAAA;UAEhE,WAAW,SAAS,MAAM;UAC1B,MAAM,MAAM;eACP,MAAM;AAAA;cAEP;aACD,GAAG;AAAA,KACX;UAEK,aAAa,IAAI,KAAK;;MAG1B;AAAA,MACA,MAAM;cACE,WAAW,aAAa,MAAM,SAAS,SAAS,KAAK;YACvD,WAAW,oBAAoB;qBACtB,mBAAmB,SAAS,OAAO,QAAQ;AAAA;mBAE7C,QAAQ;AAAA;AACrB,MACA,EAAE,WAAW;AAAK;UAGd,QAAQ,SAAwB,MAAM;YACpC,YAA2B,MAAM,QAAS,MAAM,QAA2B;UAC7E,KAAK,UAAU,UAAU;eACpB;AAAA,UAEL,GAAG;AAAA;AACL;aAEK,EAAE,GAAG;AAAU,KACvB;UAEK,cAAc,SAAS,MAAM;UAC7B,UAAU,OAAO;eACZ,MAAM,UAAU,UAAa,CAAC,MAAM,YAAY,UAAU;AAAA;aAE5D;AAAA,KACR;UAEK,UAAU,MAAM;UAChB,MAAM,UAAU;;;YAGd,MAAM,SAAS;oBACP,KAAK,MAAM;UACrB,WAAW,oBAAoB,WAAW,WAAW,gBAAgB,GAAG;mBAC/D;AAAiB;YAExB,SAAS;AAAA,QACb;AAAA,QACA,MAAM;AAAC;uBAEQ,WAAW,aAAa,KAAK,cAAc,MAAM;UAC9D,WAAW,OAAO;4BACA,WAAW,gBAAgB,KAAK,iBAAiB,MAAM;AAAA,aACtE;0BACa,WAAW,cAAc,KAAK,eAAe,MAAM;AAAA;WAElE,SAAS,MAAM;AAAA;WAGf;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AACF;AAEJ,CAAC;;;;sBA9HCA,YAiBW;IAjBA,OAAO;IAAQ,UAAQ,CAAG;IAAa,WAAU;AAAA,IAAS,OAAKC,kBAAK,wBAAS;AAAA;qBACtF,MAeK;AAAA,MAfLC,mBAeK,MAfLC,WAeK;AAAA,QAdH,MAAK;AAAA,QACJ,OAAK;AAAA,UAAY;;gBAAmC,4BAAuB;gBAA0B,4BAAuB;;;QAO5H,OAAO;QACP,cAAY;SACL,aAAM;AAAA,QACb,SAAK,uCAAE;;QAERC,WAAwB,4BAAxB,MAAwB;AAAA,0CAAf,UAAK;;;;;;;;;;;"}
1
+ {"version":3,"file":"MenuItem.mjs","sources":["../../../../src/components/Menu/MenuItem.vue"],"sourcesContent":["<template>\n <UTooltip :title=\"title\" :disabled=\"!showTooltip\" placement=\"right\" :class=\"`${prefixCls}-trigger`\">\n <li\n role=\"menuitem\"\n :class=\"[\n prefixCls,\n {\n [`${prefixCls}-selected`]: isSelected,\n [`${prefixCls}-disabled`]: disabled\n }\n ]\"\n :style=\"style\"\n :data-color=\"color\"\n v-bind=\"$attrs\"\n @click=\"onClick\"\n >\n <slot>{{ title }}</slot>\n </li>\n </UTooltip>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, computed, watch, ref } from 'vue';\nimport type { CSSProperties } from 'vue';\nimport UTooltip from '@uxd-ui/components/Tooltip';\nimport warn from '../../utils/warn';\nimport { isFunction } from '../../utils/isValid';\nimport { menuItemProps, menuItemEmits, type MenuEvent, type MenuStore, type ParentMenu } from './Menu.type';\n\nlet guid = -1;\n\nexport default defineComponent({\n name: 'UMenuItem',\n components: {\n UTooltip\n },\n inheritAttrs: false,\n props: menuItemProps,\n emits: menuItemEmits,\n setup(props, { emit, attrs }) {\n const {\n selectedKeys,\n mode,\n rootPrefixCls,\n updateKeyPath,\n // inlineIndent,\n collapsed\n } = inject<MenuStore>('menuStore', {} as MenuStore);\n const { fireMenuClick, fireMenuDeselect, fireMenuSelect } = inject<MenuEvent>('menuEvent', {} as MenuEvent);\n const parentMenu = inject<ParentMenu>('parentMenu', {} as ParentMenu);\n const prefixCls = computed(() => `${rootPrefixCls.value}-item`);\n const level = parentMenu.isRootMenu ? 1 : (parentMenu.level as number) + 1;\n\n if (mode === undefined) {\n warn('cannot find menu parent Component ,OR! the menu mode is error');\n }\n const eventKey = computed(() => {\n if (props.name !== undefined) {\n return props.name;\n }\n guid += 1;\n return `${guid}$MenuItem`;\n });\n\n const isSelected = ref(false);\n\n watch(\n selectedKeys,\n () => {\n const selected = selectedKeys.value.includes(eventKey.value);\n if (parentMenu.setSubMenuSelected) {\n parentMenu.setSubMenuSelected(eventKey.value, selected);\n }\n isSelected.value = selected;\n },\n { immediate: true }\n );\n\n const style = computed<CSSProperties>(() => {\n const attrStyle: CSSProperties = attrs.style ? (attrs.style as CSSProperties) : ({} as CSSProperties);\n if (mode.value === 'inline') {\n return {\n // paddingLeft: `${inlineIndent.value * level}px`,\n ...attrStyle\n };\n }\n return { ...attrStyle };\n });\n\n const showTooltip = computed(() => {\n if (collapsed.value) {\n return props.title !== undefined && !props.disabled && level === 1;\n }\n return false;\n });\n\n const onClick = () => {\n if (props.disabled) {\n return;\n }\n const key = eventKey.value;\n updateKeyPath(key, 'item');\n if (parentMenu.fireSubmenuClick && isFunction(parentMenu.fireSubmenuClick)) {\n parentMenu.fireSubmenuClick();\n }\n const _event = {\n key,\n item: {}\n };\n fireMenuClick && isFunction(fireMenuClick) && fireMenuClick(_event);\n if (isSelected.value) {\n fireMenuDeselect && isFunction(fireMenuDeselect) && fireMenuDeselect(_event);\n } else {\n fireMenuSelect && isFunction(fireMenuSelect) && fireMenuSelect(_event);\n }\n emit('click', _event);\n };\n\n return {\n prefixCls,\n rootPrefixCls,\n showTooltip,\n isSelected,\n style,\n onClick\n };\n }\n});\n</script>\n"],"names":["_createBlock","_normalizeClass","_createElementVNode","_mergeProps","_renderSlot"],"mappings":";;;;;;;AA6BA,IAAI,OAAO;AAEX,MAAK,YAAa,gBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV;AAAA;AACF,EACA,cAAc;AAAA,EACd,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM,OAAO,EAAE,MAAM,SAAS;UACtB;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA,QACE,OAAkB,aAAa,EAAe;UAC5C,EAAE,eAAe,kBAAkB,mBAAmB,OAAkB,aAAa,EAAe;UACpG,aAAa,OAAmB,cAAc,EAAgB;UAC9D,YAAY,SAAS,MAAM,GAAG,cAAc,YAAY;UACxD,QAAQ,WAAW,aAAa,IAAK,WAAW,QAAmB;QAErE,SAAS,QAAW;cACjB,+DAA+D;AAAA;UAEhE,WAAW,SAAS,MAAM;UAC1B,MAAM,SAAS,QAAW;eACrB,MAAM;AAAA;cAEP;aACD,GAAG;AAAA,KACX;UAEK,aAAa,IAAI,KAAK;;MAG1B;AAAA,MACA,MAAM;cACE,WAAW,aAAa,MAAM,SAAS,SAAS,KAAK;YACvD,WAAW,oBAAoB;qBACtB,mBAAmB,SAAS,OAAO,QAAQ;AAAA;mBAE7C,QAAQ;AAAA;AACrB,MACA,EAAE,WAAW;AAAK;UAGd,QAAQ,SAAwB,MAAM;YACpC,YAA2B,MAAM,QAAS,MAAM,QAA2B;UAC7E,KAAK,UAAU,UAAU;eACpB;AAAA,UAEL,GAAG;AAAA;AACL;aAEK,EAAE,GAAG;AAAU,KACvB;UAEK,cAAc,SAAS,MAAM;UAC7B,UAAU,OAAO;eACZ,MAAM,UAAU,UAAa,CAAC,MAAM,YAAY,UAAU;AAAA;aAE5D;AAAA,KACR;UAEK,UAAU,MAAM;UAChB,MAAM,UAAU;;;YAGd,MAAM,SAAS;oBACP,KAAK,MAAM;UACrB,WAAW,oBAAoB,WAAW,WAAW,gBAAgB,GAAG;mBAC/D;AAAiB;YAExB,SAAS;AAAA,QACb;AAAA,QACA,MAAM;AAAC;uBAEQ,WAAW,aAAa,KAAK,cAAc,MAAM;UAC9D,WAAW,OAAO;4BACA,WAAW,gBAAgB,KAAK,iBAAiB,MAAM;AAAA,aACtE;0BACa,WAAW,cAAc,KAAK,eAAe,MAAM;AAAA;WAElE,SAAS,MAAM;AAAA;WAGf;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AACF;AAEJ,CAAC;;;;sBA9HCA,YAiBW;IAjBA,OAAO;IAAQ,UAAQ,CAAG;IAAa,WAAU;AAAA,IAAS,OAAKC,kBAAK,wBAAS;AAAA;qBACtF,MAeK;AAAA,MAfLC,mBAeK,MAfLC,WAeK;AAAA,QAdH,MAAK;AAAA,QACJ,OAAK;AAAA,UAAY;;gBAAmC,4BAAuB;gBAA0B,4BAAuB;;;QAO5H,OAAO;QACP,cAAY;SACL,aAAM;AAAA,QACb,SAAK,uCAAE;;QAERC,WAAwB,4BAAxB,MAAwB;AAAA,0CAAf,UAAK;;;;;;;;;;;"}
@@ -143,6 +143,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
143
143
  isSortColumn: (column: InnerColumn) => boolean;
144
144
  isAscend: (column: InnerColumn) => boolean;
145
145
  isDescend: (column: InnerColumn) => boolean;
146
+ isFiltered: (column: InnerColumn) => boolean;
146
147
  hasAscend: (column: InnerColumn) => boolean;
147
148
  hasDescend: (column: InnerColumn) => boolean;
148
149
  handleSorterClick: (column: InnerColumn) => void;
@@ -175,6 +176,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
175
176
  type: PropType<import("../locale/default").TableLocal>;
176
177
  required: true;
177
178
  };
179
+ active: {
180
+ type: BooleanConstructor;
181
+ default: boolean;
182
+ };
178
183
  }>, {
179
184
  prefixCls: import("vue").ComputedRef<string>;
180
185
  dropdownPrefixCls: import("vue").ComputedRef<string>;
@@ -198,9 +203,14 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
198
203
  type: PropType<import("../locale/default").TableLocal>;
199
204
  required: true;
200
205
  };
206
+ active: {
207
+ type: BooleanConstructor;
208
+ default: boolean;
209
+ };
201
210
  }>> & Readonly<{
202
211
  onSelect?: (...args: any[]) => any;
203
212
  }>, {
213
+ active: boolean;
204
214
  selectedKeys: (string | number)[];
205
215
  }, {}, {
206
216
  Dropdown: {
@@ -162,6 +162,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
162
162
  isSortColumn: (column: InnerColumn) => boolean;
163
163
  isAscend: (column: InnerColumn) => boolean;
164
164
  isDescend: (column: InnerColumn) => boolean;
165
+ isFiltered: (column: InnerColumn) => boolean;
165
166
  hasAscend: (column: InnerColumn) => boolean;
166
167
  hasDescend: (column: InnerColumn) => boolean;
167
168
  handleSorterClick: (column: InnerColumn) => void;
@@ -194,6 +195,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
194
195
  type: PropType<import("../locale/default").TableLocal>;
195
196
  required: true;
196
197
  };
198
+ active: {
199
+ type: BooleanConstructor;
200
+ default: boolean;
201
+ };
197
202
  }>, {
198
203
  prefixCls: import("vue").ComputedRef<string>;
199
204
  dropdownPrefixCls: import("vue").ComputedRef<string>;
@@ -217,9 +222,14 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
217
222
  type: PropType<import("../locale/default").TableLocal>;
218
223
  required: true;
219
224
  };
225
+ active: {
226
+ type: BooleanConstructor;
227
+ default: boolean;
228
+ };
220
229
  }>> & Readonly<{
221
230
  onSelect?: (...args: any[]) => any;
222
231
  }>, {
232
+ active: boolean;
223
233
  selectedKeys: (string | number)[];
224
234
  }, {}, {
225
235
  Dropdown: {
@@ -159,6 +159,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
159
159
  isSortColumn: (column: InnerColumn) => boolean;
160
160
  isAscend: (column: InnerColumn) => boolean;
161
161
  isDescend: (column: InnerColumn) => boolean;
162
+ isFiltered: (column: InnerColumn) => boolean;
162
163
  hasAscend: (column: InnerColumn) => boolean;
163
164
  hasDescend: (column: InnerColumn) => boolean;
164
165
  handleSorterClick: (column: InnerColumn) => void;
@@ -191,6 +192,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
191
192
  type: PropType<import("../locale/default").TableLocal>;
192
193
  required: true;
193
194
  };
195
+ active: {
196
+ type: BooleanConstructor;
197
+ default: boolean;
198
+ };
194
199
  }>, {
195
200
  prefixCls: import("vue").ComputedRef<string>;
196
201
  dropdownPrefixCls: import("vue").ComputedRef<string>;
@@ -214,9 +219,14 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
214
219
  type: PropType<import("../locale/default").TableLocal>;
215
220
  required: true;
216
221
  };
222
+ active: {
223
+ type: BooleanConstructor;
224
+ default: boolean;
225
+ };
217
226
  }>> & Readonly<{
218
227
  onSelect?: (...args: any[]) => any;
219
228
  }>, {
229
+ active: boolean;
220
230
  selectedKeys: (string | number)[];
221
231
  }, {}, {
222
232
  Dropdown: {
@@ -49,6 +49,7 @@ const _sfc_main = defineComponent({
49
49
  isSortColumn,
50
50
  isAscend,
51
51
  isDescend,
52
+ isFiltered,
52
53
  hasAscend,
53
54
  hasDescend,
54
55
  toggleSortOrder,
@@ -233,6 +234,7 @@ const _sfc_main = defineComponent({
233
234
  isSortColumn,
234
235
  isAscend,
235
236
  isDescend,
237
+ isFiltered,
236
238
  hasAscend,
237
239
  hasDescend,
238
240
  toggleSortOrder,
@@ -1 +1 @@
1
- {"version":3,"file":"Table.mjs","sources":["../../../../src/components/Table/Table.vue"],"sourcesContent":["<template>\n <ResizeObserver @resize=\"debouncedHandleResize\">\n <div :class=\"[`${prefixCls}-wrapper`]\">\n <div\n v-if=\"showPagination && pagination && (pagination.position === 'top' || pagination.position === 'both')\"\n :class=\"{\n [`${prefixCls}-pagination`]: true,\n [`${prefixCls}-pagination-top`]: true,\n [`${prefixCls}-pagination-right`]: pagination && pagination.align === 'right'\n }\"\n >\n <Pagination v-bind=\"paginationOptions\" :total=\"computedPageTotal\" @change=\"handlePageChange\" @page-size-change=\"handlePageSizeChange\" />\n </div>\n <div\n :ref=\"saveRef('table')\"\n :class=\"[\n prefixCls,\n `${prefixCls}-${size}`,\n {\n [`${prefixCls}-${variant}`]: !isBorder,\n [`${prefixCls}-border`]: !!isBorder,\n [`${prefixCls}-radius`]: variant !== 'ghost' && !border && radius,\n [`${prefixCls}-empty`]: !data.length,\n [`${prefixCls}-without-column-header`]: !showHeader,\n [`${prefixCls}-fixed-header`]: !!maxHeight,\n [`${prefixCls}-scroll-position-left`]: scrollPosition === 'left' || scrollPosition === 'both',\n [`${prefixCls}-scroll-position-right`]: scrollPosition === 'right' || scrollPosition === 'both',\n [`${prefixCls}-dragging`]: showResizeLine,\n [`${prefixCls}-stripe`]: stripe\n }\n ]\"\n >\n <div v-if=\"$slots.title\" :class=\"`${prefixCls}-title`\">\n <slot name=\"title\" />\n </div>\n <div :class=\"`${prefixCls}-content`\">\n <TableBox :columns=\"updatedColumns\" @head-scroll=\"handleBodyScrollX\" @body-scroll=\"handleBodyScroll\" />\n <div v-if=\"!currentDatas.length\" :class=\"`${prefixCls}-placeholder`\">\n <slot name=\"empty\">\n {{ emptyText }}\n </slot>\n </div>\n </div>\n <div v-show=\"showResizeLine\" :ref=\"saveRef('resizeLine')\" :class=\"`${prefixCls}-resize-line`\" />\n <Spin v-if=\"loadingType === 'spinner'\" fix :loading=\"loading\" />\n </div>\n <div v-if=\"$slots.footer\" :class=\"`${prefixCls}-footer`\">\n <slot name=\"footer\" />\n </div>\n <div\n v-if=\"showPagination && ((pagination && pagination.position !== 'top') || !pagination)\"\n :class=\"{\n [`${prefixCls}-pagination`]: true,\n [`${prefixCls}-pagination-bottom`]: true,\n [`${prefixCls}-pagination-right`]: pagination && pagination.align === 'right'\n }\"\n >\n <Pagination v-bind=\"paginationOptions\" :total=\"computedPageTotal\" @change=\"handlePageChange\" @page-size-change=\"handlePageSizeChange\" />\n </div>\n </div>\n </ResizeObserver>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, provide, reactive, toRefs, ref, onMounted, nextTick, onBeforeUnmount, onUpdated, watch } from 'vue';\nimport Spin from '@uxd-ui/components/Spin';\nimport Pagination from '@uxd-ui/components/Pagination';\nimport { debounce } from '../../utils/tools';\n// import Container from '../base/Container';\nimport TableBox from './TableBox.vue';\nimport useGlobalConfig from '../base/hooks/useGlobalConfig';\nimport ResizeObserver from '../base/ResizeObserver';\nimport useUpdateColumns from './hooks/useUpdateColumns';\nimport useUpdateDatas from './hooks/useUpdateDatas';\nimport useTableResize from './hooks/useTableResize';\nimport useExpander from './hooks/useExpander';\nimport useSelection from './hooks/useSelection';\nimport useDraggable from './hooks/useDraggable';\nimport useFilterSortPage from './hooks/useFilterSortPage';\nimport { tableProps, tableEmits, type SaveRef, type TableRefs, type TableColumn, type InnerColumn } from './Table.type';\n\nexport default defineComponent({\n name: 'UTable',\n components: {\n TableBox,\n Spin,\n Pagination,\n ResizeObserver\n },\n props: tableProps,\n emits: tableEmits,\n setup(props, { slots, emit }) {\n const { prefixCls, config: globalConfig } = useGlobalConfig('table');\n const showResizeLine = ref(false);\n const tableRefs = reactive({} as TableRefs);\n const saveRef: SaveRef = (key: string) => {\n return (el: any) => {\n tableRefs[key] = el;\n };\n };\n\n const locale = computed(() => {\n return { ...globalConfig.locale.table, ...props.locale };\n });\n\n const isBorder = computed(() => {\n const b = props.variant === 'border' || props.border;\n return b;\n });\n\n // ============ datas ===============\n const { updatedDatas } = useUpdateDatas(props);\n\n // ============= sort & fitler =============\n const {\n hasAction,\n hasSorters,\n hasFilters,\n isSortColumn,\n isAscend,\n isDescend,\n hasAscend,\n hasDescend,\n toggleSortOrder,\n setColumnFilter,\n currentDatas,\n paginationOptions,\n computedPageTotal,\n handlePageChange,\n handlePageSizeChange\n } = useFilterSortPage(props, updatedDatas, emit);\n\n // ================ draggable ====================\n const { setRowRefs, draggableColumn } = useDraggable(props, tableRefs);\n\n // ================ expander ====================\n const {\n expandedRowKeys,\n showChildrenRowKeys,\n handleExpandChange,\n isRowExpanded,\n expandedRowRender,\n isTreeTable,\n expandColumn,\n expandIconColumnIndex\n } = useExpander(props, slots, currentDatas, emit);\n\n const { selectionColumn } = useSelection(props, updatedDatas, currentDatas, prefixCls, locale);\n\n // ============ columns ===============\n const { updatedColumns, isColumnFixed, isLeftFixed, isRightFixed, leftColumns, rightColumns } = useUpdateColumns(props, slots, {\n draggableColumn,\n expandColumn,\n selectionColumn\n });\n\n // ============ resize ==============\n // #region\n const {\n // sizesMap,\n handleResize,\n isScrollX,\n // fixedHeadRowsHeight,\n // fixedBodyRowsHeight,\n scrollPosition,\n // syncFixedTableRowHeight,\n setScrollPositionClass,\n resetScrollX,\n tableWidth,\n resizeColumns,\n clearResizeTimer,\n setResizeWidth,\n syncColumnWidth,\n columnWidths\n } = useTableResize(updatedColumns, tableRefs, prefixCls, isColumnFixed, props);\n\n const debouncedHandleResize = debounce(handleResize, 150);\n\n onMounted(() => {\n nextTick(() => {\n setTimeout(() => {\n handleResize();\n resetScrollX();\n }, 0);\n });\n });\n\n onUpdated(() => {\n nextTick(() => {\n handleResize();\n });\n });\n\n onBeforeUnmount(() => {\n if (debouncedHandleResize) {\n debouncedHandleResize.cancel();\n }\n clearResizeTimer();\n });\n // #endregion\n\n // ============ scroll ===============\n // #region\n const scrollable = computed(() => {\n return props.maxHeight || isScrollX.value || isColumnFixed.value;\n });\n\n let lastScrollLeft = 0;\n const handleBodyScrollX = (e: any) => {\n if (e.currentTarget !== e.target) {\n return;\n }\n\n const { target } = e;\n const { bodyTable, headTable } = tableRefs;\n\n if (target.scrollLeft !== lastScrollLeft && isScrollX.value) {\n if (target === (bodyTable as any).wrapRef && headTable) {\n (headTable as any).setScrollLeft(target.scrollLeft);\n } else if (target === (headTable as any)?.wrapRef && bodyTable) {\n (bodyTable as any).setScrollLeft(target.scrollLeft);\n }\n setScrollPositionClass();\n }\n lastScrollLeft = target.scrollLeft;\n };\n\n const handleBodyScroll = (e: any) => {\n handleBodyScrollX(e);\n };\n\n watch(\n () => props.data,\n (val) => {\n if (val.length === 0 && isScrollX.value) {\n nextTick(() => {\n resetScrollX();\n });\n }\n }\n );\n // #endregion\n // ============ empty ================\n const emptyText = computed(() => {\n return props.data.length ? locale.value.notFoundText : locale.value.noDataText;\n });\n\n // ===========row hover & event ================\n // #region\n const currentHoverKey = ref(null);\n const onRowMouseEnter = (data: Record<string, any>, index: number, e: Event) => {\n emit('row-mouseenter', data, index, e);\n };\n const onRowMouseLeave = (data: Record<string, any>, index: number, e: Event) => {\n emit('row-mouseleave', data, index, e);\n };\n const onRowClick = (data: Record<string, any>, index: number, e: Event) => {\n emit('row-click', data, index, e);\n };\n const onRowDoubleClick = (data: Record<string, any>, index: number, e: Event) => {\n emit('row-doubleclick', data, index, e);\n };\n const onRowContextMenu = (data: Record<string, any>, index: number, e: Event) => {\n emit('row-contextmenu', data, index, e);\n };\n // #endregion\n\n // ============= other event =================\n // #region\n const onHeaderCellClick = (column: TableColumn, e: Event) => {\n emit('header-click', column, e);\n };\n\n const handleColumnResize = (columnWidth: number, changeWidth: number, column: InnerColumn, event: Event) => {\n emit('column-resize', columnWidth, changeWidth, column, event);\n };\n // #endregion\n\n // ============= provide =================\n\n const { showHeader, maxHeight, expandIcon, rowClassName, indentSize, showSummary, disabledHover, expandIndent, headerSticky, loading, width } =\n toRefs(props);\n\n provide('tableContext', {\n prefixCls,\n locale,\n data: currentDatas,\n saveRef,\n tableRefs,\n showResizeLine,\n props: {\n showHeader,\n maxHeight,\n expandIcon,\n rowClassName,\n indentSize,\n emptyText,\n showSummary,\n disabledHover,\n expandIndent,\n headerSticky,\n loading,\n width\n },\n slots,\n expand: {\n expandedRowRender,\n expandedRowKeys,\n showChildrenRowKeys,\n isRowExpanded,\n expandIconColumnIndex,\n handleExpandChange,\n isTreeTable\n },\n size: {\n tableWidth,\n // sizesMap,\n resizeColumns,\n isScrollX,\n setResizeWidth,\n handleColumnResize,\n debouncedHandleResize,\n syncColumnWidth,\n columnWidths\n },\n fixed: {\n isColumnFixed,\n currentHoverKey\n },\n draggable: {\n setRowRefs\n },\n rowEvents: {\n onRowMouseEnter,\n onRowMouseLeave,\n onRowClick,\n onRowDoubleClick,\n onRowContextMenu\n },\n headerEvents: {\n onHeaderCellClick\n },\n filterAndSorter: {\n hasAction,\n hasSorters,\n hasFilters,\n isSortColumn,\n isAscend,\n isDescend,\n hasAscend,\n hasDescend,\n toggleSortOrder,\n setColumnFilter\n },\n pagination: paginationOptions\n });\n return {\n prefixCls,\n saveRef,\n showResizeLine,\n updatedColumns,\n currentDatas,\n paginationOptions,\n computedPageTotal,\n isBorder,\n isLeftFixed,\n leftColumns,\n isRightFixed,\n rightColumns,\n scrollable,\n scrollPosition,\n handleBodyScroll,\n handleBodyScrollX,\n emptyText,\n debouncedHandleResize,\n handlePageChange,\n handlePageSizeChange\n };\n }\n});\n</script>\n"],"names":["Spin","Pagination","useFilterSortPage","_createBlock","_createElementVNode","_normalizeClass","_createElementBlock","_createVNode","_mergeProps","_renderSlot"],"mappings":"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"}
1
+ {"version":3,"file":"Table.mjs","sources":["../../../../src/components/Table/Table.vue"],"sourcesContent":["<template>\n <ResizeObserver @resize=\"debouncedHandleResize\">\n <div :class=\"[`${prefixCls}-wrapper`]\">\n <div\n v-if=\"showPagination && pagination && (pagination.position === 'top' || pagination.position === 'both')\"\n :class=\"{\n [`${prefixCls}-pagination`]: true,\n [`${prefixCls}-pagination-top`]: true,\n [`${prefixCls}-pagination-right`]: pagination && pagination.align === 'right'\n }\"\n >\n <Pagination v-bind=\"paginationOptions\" :total=\"computedPageTotal\" @change=\"handlePageChange\" @page-size-change=\"handlePageSizeChange\" />\n </div>\n <div\n :ref=\"saveRef('table')\"\n :class=\"[\n prefixCls,\n `${prefixCls}-${size}`,\n {\n [`${prefixCls}-${variant}`]: !isBorder,\n [`${prefixCls}-border`]: !!isBorder,\n [`${prefixCls}-radius`]: variant !== 'ghost' && !border && radius,\n [`${prefixCls}-empty`]: !data.length,\n [`${prefixCls}-without-column-header`]: !showHeader,\n [`${prefixCls}-fixed-header`]: !!maxHeight,\n [`${prefixCls}-scroll-position-left`]: scrollPosition === 'left' || scrollPosition === 'both',\n [`${prefixCls}-scroll-position-right`]: scrollPosition === 'right' || scrollPosition === 'both',\n [`${prefixCls}-dragging`]: showResizeLine,\n [`${prefixCls}-stripe`]: stripe\n }\n ]\"\n >\n <div v-if=\"$slots.title\" :class=\"`${prefixCls}-title`\">\n <slot name=\"title\" />\n </div>\n <div :class=\"`${prefixCls}-content`\">\n <TableBox :columns=\"updatedColumns\" @head-scroll=\"handleBodyScrollX\" @body-scroll=\"handleBodyScroll\" />\n <div v-if=\"!currentDatas.length\" :class=\"`${prefixCls}-placeholder`\">\n <slot name=\"empty\">\n {{ emptyText }}\n </slot>\n </div>\n </div>\n <div v-show=\"showResizeLine\" :ref=\"saveRef('resizeLine')\" :class=\"`${prefixCls}-resize-line`\" />\n <Spin v-if=\"loadingType === 'spinner'\" fix :loading=\"loading\" />\n </div>\n <div v-if=\"$slots.footer\" :class=\"`${prefixCls}-footer`\">\n <slot name=\"footer\" />\n </div>\n <div\n v-if=\"showPagination && ((pagination && pagination.position !== 'top') || !pagination)\"\n :class=\"{\n [`${prefixCls}-pagination`]: true,\n [`${prefixCls}-pagination-bottom`]: true,\n [`${prefixCls}-pagination-right`]: pagination && pagination.align === 'right'\n }\"\n >\n <Pagination v-bind=\"paginationOptions\" :total=\"computedPageTotal\" @change=\"handlePageChange\" @page-size-change=\"handlePageSizeChange\" />\n </div>\n </div>\n </ResizeObserver>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, provide, reactive, toRefs, ref, onMounted, nextTick, onBeforeUnmount, onUpdated, watch } from 'vue';\nimport Spin from '@uxd-ui/components/Spin';\nimport Pagination from '@uxd-ui/components/Pagination';\nimport { debounce } from '../../utils/tools';\n// import Container from '../base/Container';\nimport TableBox from './TableBox.vue';\nimport useGlobalConfig from '../base/hooks/useGlobalConfig';\nimport ResizeObserver from '../base/ResizeObserver';\nimport useUpdateColumns from './hooks/useUpdateColumns';\nimport useUpdateDatas from './hooks/useUpdateDatas';\nimport useTableResize from './hooks/useTableResize';\nimport useExpander from './hooks/useExpander';\nimport useSelection from './hooks/useSelection';\nimport useDraggable from './hooks/useDraggable';\nimport useFilterSortPage from './hooks/useFilterSortPage';\nimport { tableProps, tableEmits, type SaveRef, type TableRefs, type TableColumn, type InnerColumn } from './Table.type';\n\nexport default defineComponent({\n name: 'UTable',\n components: {\n TableBox,\n Spin,\n Pagination,\n ResizeObserver\n },\n props: tableProps,\n emits: tableEmits,\n setup(props, { slots, emit }) {\n const { prefixCls, config: globalConfig } = useGlobalConfig('table');\n const showResizeLine = ref(false);\n const tableRefs = reactive({} as TableRefs);\n const saveRef: SaveRef = (key: string) => {\n return (el: any) => {\n tableRefs[key] = el;\n };\n };\n\n const locale = computed(() => {\n return { ...globalConfig.locale.table, ...props.locale };\n });\n\n const isBorder = computed(() => {\n const b = props.variant === 'border' || props.border;\n return b;\n });\n\n // ============ datas ===============\n const { updatedDatas } = useUpdateDatas(props);\n\n // ============= sort & fitler =============\n const {\n hasAction,\n hasSorters,\n hasFilters,\n isSortColumn,\n isAscend,\n isDescend,\n isFiltered,\n hasAscend,\n hasDescend,\n toggleSortOrder,\n setColumnFilter,\n currentDatas,\n paginationOptions,\n computedPageTotal,\n handlePageChange,\n handlePageSizeChange\n } = useFilterSortPage(props, updatedDatas, emit);\n\n // ================ draggable ====================\n const { setRowRefs, draggableColumn } = useDraggable(props, tableRefs);\n\n // ================ expander ====================\n const {\n expandedRowKeys,\n showChildrenRowKeys,\n handleExpandChange,\n isRowExpanded,\n expandedRowRender,\n isTreeTable,\n expandColumn,\n expandIconColumnIndex\n } = useExpander(props, slots, currentDatas, emit);\n\n const { selectionColumn } = useSelection(props, updatedDatas, currentDatas, prefixCls, locale);\n\n // ============ columns ===============\n const { updatedColumns, isColumnFixed, isLeftFixed, isRightFixed, leftColumns, rightColumns } = useUpdateColumns(props, slots, {\n draggableColumn,\n expandColumn,\n selectionColumn\n });\n\n // ============ resize ==============\n // #region\n const {\n // sizesMap,\n handleResize,\n isScrollX,\n // fixedHeadRowsHeight,\n // fixedBodyRowsHeight,\n scrollPosition,\n // syncFixedTableRowHeight,\n setScrollPositionClass,\n resetScrollX,\n tableWidth,\n resizeColumns,\n clearResizeTimer,\n setResizeWidth,\n syncColumnWidth,\n columnWidths\n } = useTableResize(updatedColumns, tableRefs, prefixCls, isColumnFixed, props);\n\n const debouncedHandleResize = debounce(handleResize, 150);\n\n onMounted(() => {\n nextTick(() => {\n setTimeout(() => {\n handleResize();\n resetScrollX();\n }, 0);\n });\n });\n\n onUpdated(() => {\n nextTick(() => {\n handleResize();\n });\n });\n\n onBeforeUnmount(() => {\n if (debouncedHandleResize) {\n debouncedHandleResize.cancel();\n }\n clearResizeTimer();\n });\n // #endregion\n\n // ============ scroll ===============\n // #region\n const scrollable = computed(() => {\n return props.maxHeight || isScrollX.value || isColumnFixed.value;\n });\n\n let lastScrollLeft = 0;\n const handleBodyScrollX = (e: any) => {\n if (e.currentTarget !== e.target) {\n return;\n }\n\n const { target } = e;\n const { bodyTable, headTable } = tableRefs;\n\n if (target.scrollLeft !== lastScrollLeft && isScrollX.value) {\n if (target === (bodyTable as any).wrapRef && headTable) {\n (headTable as any).setScrollLeft(target.scrollLeft);\n } else if (target === (headTable as any)?.wrapRef && bodyTable) {\n (bodyTable as any).setScrollLeft(target.scrollLeft);\n }\n setScrollPositionClass();\n }\n lastScrollLeft = target.scrollLeft;\n };\n\n const handleBodyScroll = (e: any) => {\n handleBodyScrollX(e);\n };\n\n watch(\n () => props.data,\n (val) => {\n if (val.length === 0 && isScrollX.value) {\n nextTick(() => {\n resetScrollX();\n });\n }\n }\n );\n // #endregion\n // ============ empty ================\n const emptyText = computed(() => {\n return props.data.length ? locale.value.notFoundText : locale.value.noDataText;\n });\n\n // ===========row hover & event ================\n // #region\n const currentHoverKey = ref(null);\n const onRowMouseEnter = (data: Record<string, any>, index: number, e: Event) => {\n emit('row-mouseenter', data, index, e);\n };\n const onRowMouseLeave = (data: Record<string, any>, index: number, e: Event) => {\n emit('row-mouseleave', data, index, e);\n };\n const onRowClick = (data: Record<string, any>, index: number, e: Event) => {\n emit('row-click', data, index, e);\n };\n const onRowDoubleClick = (data: Record<string, any>, index: number, e: Event) => {\n emit('row-doubleclick', data, index, e);\n };\n const onRowContextMenu = (data: Record<string, any>, index: number, e: Event) => {\n emit('row-contextmenu', data, index, e);\n };\n // #endregion\n\n // ============= other event =================\n // #region\n const onHeaderCellClick = (column: TableColumn, e: Event) => {\n emit('header-click', column, e);\n };\n\n const handleColumnResize = (columnWidth: number, changeWidth: number, column: InnerColumn, event: Event) => {\n emit('column-resize', columnWidth, changeWidth, column, event);\n };\n // #endregion\n\n // ============= provide =================\n\n const { showHeader, maxHeight, expandIcon, rowClassName, indentSize, showSummary, disabledHover, expandIndent, headerSticky, loading, width } =\n toRefs(props);\n\n provide('tableContext', {\n prefixCls,\n locale,\n data: currentDatas,\n saveRef,\n tableRefs,\n showResizeLine,\n props: {\n showHeader,\n maxHeight,\n expandIcon,\n rowClassName,\n indentSize,\n emptyText,\n showSummary,\n disabledHover,\n expandIndent,\n headerSticky,\n loading,\n width\n },\n slots,\n expand: {\n expandedRowRender,\n expandedRowKeys,\n showChildrenRowKeys,\n isRowExpanded,\n expandIconColumnIndex,\n handleExpandChange,\n isTreeTable\n },\n size: {\n tableWidth,\n // sizesMap,\n resizeColumns,\n isScrollX,\n setResizeWidth,\n handleColumnResize,\n debouncedHandleResize,\n syncColumnWidth,\n columnWidths\n },\n fixed: {\n isColumnFixed,\n currentHoverKey\n },\n draggable: {\n setRowRefs\n },\n rowEvents: {\n onRowMouseEnter,\n onRowMouseLeave,\n onRowClick,\n onRowDoubleClick,\n onRowContextMenu\n },\n headerEvents: {\n onHeaderCellClick\n },\n filterAndSorter: {\n hasAction,\n hasSorters,\n hasFilters,\n isSortColumn,\n isAscend,\n isDescend,\n isFiltered,\n hasAscend,\n hasDescend,\n toggleSortOrder,\n setColumnFilter\n },\n pagination: paginationOptions\n });\n return {\n prefixCls,\n saveRef,\n showResizeLine,\n updatedColumns,\n currentDatas,\n paginationOptions,\n computedPageTotal,\n isBorder,\n isLeftFixed,\n leftColumns,\n isRightFixed,\n rightColumns,\n scrollable,\n scrollPosition,\n handleBodyScroll,\n handleBodyScrollX,\n emptyText,\n debouncedHandleResize,\n handlePageChange,\n handlePageSizeChange\n };\n }\n});\n</script>\n"],"names":["Spin","Pagination","useFilterSortPage","_createBlock","_createElementVNode","_normalizeClass","_createElementBlock","_createVNode","_mergeProps","_renderSlot"],"mappings":"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"}
@@ -326,6 +326,7 @@ export interface TableContext {
326
326
  isSortColumn: (column: InnerColumn) => boolean;
327
327
  isAscend: (column: InnerColumn) => boolean;
328
328
  isDescend: (column: InnerColumn) => boolean;
329
+ isFiltered: (column: InnerColumn) => boolean;
329
330
  hasAscend: (column: InnerColumn) => boolean;
330
331
  hasDescend: (column: InnerColumn) => boolean;
331
332
  toggleSortOrder: (column: InnerColumn) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"Table.type.mjs","sources":["../../../../src/components/Table/Table.type.ts"],"sourcesContent":["import type { Component, ComputedRef, CSSProperties, ExtractPropTypes, PropType, Ref, Slot, Slots, VNodeChild } from 'vue';\nimport type { JSX } from 'vue/jsx-runtime';\nimport { normalSizeMap } from '../../utils/globalType';\nimport { oneOf } from '../../utils/propsValidators';\nimport type { EmitFn, NormalSizeMap } from '../../utils/globalType';\nimport type { TableLocal } from '../locale/default';\nimport type { PaginationProps } from '../Pagination/Pagination.type';\nimport type Table from './Table.vue';\nimport type { RowData } from './hooks/useDraggable';\n\nexport type ColumnFixed = boolean | 'left' | 'right';\nexport type ColumnAlign = 'left' | 'right' | 'center';\nexport type ColumnSortOrder = 'ascend' | 'descend';\nexport type ColumnSortFn = (a: any, b: any) => number;\nexport interface ColumnFilter {\n label: string;\n value: string | number;\n}\nexport type ColumnFilterFn = (value: string | number, row: any) => boolean;\nexport interface ColumnSlotParams {\n row: any;\n index: number;\n rowKey: string | number;\n pagination: Partial<PaginationProps>;\n column: InnerColumn;\n}\n\nexport interface TableColProps {\n width: string;\n key: string;\n fixed: boolean;\n minWidth: string;\n resizeWidth: string;\n className: string;\n}\n\nexport interface ColumnFilterSlotParams {\n selectedKeys: (string | number)[];\n setSelectedKeys: (keys: (string | number)[]) => void;\n confirm: () => void;\n column: InnerColumn;\n}\n\nexport interface TableColumnSkeleton {\n type: 'circle' | 'rect' | 'text' | 'p' | 'image';\n style: CSSProperties;\n}\nexport interface TableColumn {\n key: string;\n title?: string;\n dataIndex?: string;\n width?: number | string;\n minWidth?: number;\n children?: TableColumn[];\n fixed?: ColumnFixed;\n align?: ColumnAlign;\n ellipsis?: boolean;\n sortable?: boolean | 'custom';\n sortOrder?: ColumnSortOrder;\n sortDirections?: ColumnSortOrder[];\n sortFn?: ColumnSortFn;\n filterable?: boolean;\n filters?: ColumnFilter[];\n filterFn?: ColumnFilterFn;\n filterIcon?: string | Component;\n filterIconStyle?: CSSProperties;\n filterMultiple?: boolean;\n filteredValue?: (string | number)[];\n onFilterDropdownVisibleChange?: (visible: boolean) => void;\n slot?: string;\n titleSlot?: string;\n filterSlot?: string;\n render?: (param: ColumnSlotParams) => VNodeChild | JSX.Element;\n titleRender?: (column: TableColumn) => VNodeChild | JSX.Element;\n filterRender?: (param: ColumnFilterSlotParams) => VNodeChild | JSX.Element;\n resizable?: boolean;\n customCell?: (row: any, index: number) => Record<string, any>;\n className?: string;\n hideSummary?: boolean;\n summarySlot?: string;\n summaryRender?: (sum?: number) => VNodeChild | JSX.Element;\n customSummaryCell?: () => Record<string, any>;\n autoSummary?: boolean;\n tips?: string;\n skeleton?: TableColumnSkeleton[];\n\n // draggable?: boolean;\n // handleDragStart?: (event: MouseEvent, param: ColumnSlotParams) => void;\n // render?: (param: ColumnSlotParams, handleDragStart?: (event: MouseEvent, DragParam: ColumnSlotParams) => void) => VNodeChild | JSX.Element;\n}\n\nexport interface InnerColumn extends TableColumn {\n _index?: number;\n rowSpan?: number;\n colSpan?: number;\n children?: InnerColumn[];\n type?: string;\n summaryRender?: (sum?: number) => VNodeChild | JSX.Element;\n left?: number;\n right?: number;\n lastLeft?: boolean;\n firstRight?: boolean;\n _isRightEdge?: boolean;\n}\n\nexport type SelectionType = 'checkbox' | 'radio';\nexport interface SelectionMenu {\n key: string;\n text: string;\n onSelect?: (rows: any[]) => void;\n}\nexport interface SelectionConfig {\n selectedKeys: (string | number)[] | undefined;\n type?: SelectionType;\n setSelectionProps?: (row: any, index: any) => Record<string, any>;\n selectionMenus?: SelectionMenu[];\n hideDefaultMenus?: boolean;\n onChange?: (keys: (string | number)[], selectedRows: any[]) => void;\n onSelect?: (data: any, checked: boolean, selectedRows: any[], event: any) => void;\n onSelectMultiple?: (checked: boolean, selectedRows: any[], changeRows: any[]) => void;\n onSelectAll?: (checked: boolean, selectedRows: any[], changeRows: any[]) => void;\n onSelectInvert?: (keys: (string | number)[]) => void;\n columnWidth?: number;\n fixed?: ColumnFixed;\n showCheckAll?: boolean;\n}\n\nexport interface DraggableConfig {\n fixed?: ColumnFixed;\n onDragDrop: (sourceRowKey: string | number, targetRowKey: string | number) => void;\n}\n\nexport type PaginationPosition = 'top' | 'bottom' | 'both' | undefined;\nexport type PaginationAlign = 'left' | 'right' | undefined;\nexport interface PaginationConfig extends Partial<PaginationProps> {\n position: PaginationPosition;\n align: PaginationAlign;\n}\n\nexport interface InnerDataItem {\n _index: number;\n _key: string | number;\n _isSkeleton?: boolean;\n dataRef: Record<string, any>;\n children?: InnerColumn[];\n}\n\nexport type RowClassName = (row: Record<string, any>, index: number) => string;\nexport type GetRowKey = (row: Record<string, any>, index: number) => string | number;\n\nexport const tableProps = {\n data: {\n type: Array as PropType<Record<string, any>[]>,\n default: () => [] as Record<string, any>[]\n },\n columns: {\n type: Array as PropType<TableColumn[]>,\n default: () => [] as TableColumn[]\n },\n border: {\n type: Boolean,\n default: false\n },\n showHeader: {\n type: Boolean,\n default: true\n },\n width: {\n type: [Number, String]\n },\n maxHeight: {\n type: [Number, String]\n },\n loading: {\n type: Boolean,\n default: false\n },\n size: {\n type: String as PropType<NormalSizeMap>,\n default: 'default',\n validator: oneOf(normalSizeMap)\n },\n disabledHover: {\n type: Boolean,\n default: false\n },\n rowKey: {\n type: [Function, String] as PropType<string | GetRowKey>,\n default: 'key'\n },\n rowClassName: {\n type: Function as PropType<RowClassName>\n },\n expandIcon: {\n type: String\n },\n defaultExpandAllRows: {\n type: Boolean,\n default: false\n },\n expandedRowKeys: {\n type: Array as PropType<string[]>\n },\n treeIconColumnIndex: {\n type: Number\n },\n defaultShowAllChildren: {\n type: Boolean,\n default: false\n },\n showChildrenRowKeys: {\n type: Array as PropType<string[]>\n },\n indentSize: {\n type: Number,\n default: 20\n },\n selection: {\n type: Object as PropType<SelectionConfig>\n },\n locale: {\n type: Object as PropType<TableLocal>\n },\n stripe: {\n type: Boolean,\n default: false\n },\n showPagination: {\n type: Boolean,\n default: false\n },\n pagination: {\n type: Object as PropType<PaginationConfig>\n },\n showSummary: {\n type: Boolean,\n default: false\n },\n expandFix: {\n type: Boolean,\n default: false\n },\n expandIndent: {\n type: Boolean,\n default: true\n },\n draggable: {\n type: Object as PropType<DraggableConfig>\n },\n headerSticky: {\n type: Number,\n default: undefined as undefined\n },\n variant: {\n type: String as PropType<'surface' | 'ghost' | 'border'>,\n default: 'ghost'\n },\n radius: {\n type: Boolean,\n default: false\n },\n loadingType: {\n type: String as PropType<'spinner' | 'skeleton'>,\n default: 'spinner'\n },\n skeletonRows: {\n type: Number,\n default: 3\n }\n};\nexport type TableProps = ExtractPropTypes<typeof tableProps>;\n\nexport type SaveRef = (key: string) => (el: any) => void;\nexport type TableRefs = Record<string, any>;\nexport interface ExpandParams {\n row: any;\n rowKey: string | number;\n async?: boolean;\n done?: () => void;\n tree?: boolean;\n}\nexport interface TableContext {\n prefixCls: ComputedRef<string>;\n locale: ComputedRef<TableLocal>;\n data: ComputedRef<InnerDataItem[]>;\n saveRef: SaveRef;\n tableRefs: TableRefs;\n showResizeLine: Ref<boolean>;\n props: {\n showHeader: Ref<boolean>;\n maxHeight: Ref<string | number | undefined>;\n expandIcon: Ref<string | undefined>;\n rowClassName: Ref<RowClassName>;\n indentSize: Ref<number>;\n emptyText: ComputedRef<string>;\n showSummary: Ref<boolean>;\n disabledHover: Ref<boolean>;\n expandIndent: Ref<boolean>;\n headerSticky: Ref<number | undefined>;\n loading: Ref<boolean>;\n width: Ref<string | number | undefined>;\n };\n slots: Slots;\n expand: {\n expandedRowRender: ComputedRef<Slot | undefined>;\n expandedRowKeys: Ref<(string | number)[]>;\n showChildrenRowKeys: Ref<(string | number)[]>;\n isRowExpanded: (rowKey: string | number, tree: boolean) => boolean;\n expandIconColumnIndex: ComputedRef<number>;\n handleExpandChange: ({ row, rowKey, async, done, tree }: ExpandParams, e: Event) => void;\n isTreeTable: ComputedRef<boolean>;\n };\n size: {\n tableWidth: Ref<number>;\n resizeColumns: Ref<InnerColumn[]>;\n columnWidths: Ref<Record<string, number>>;\n syncColumnWidth: (width: number, column: InnerColumn) => void;\n // sizesMap: Record<string, number>;\n isScrollX: ComputedRef<boolean>;\n setResizeWidth: (column: InnerColumn, width: number) => void;\n handleColumnResize: (columnWidth: number, changeWidth: number, column: InnerColumn, event: Event) => void;\n debouncedHandleResize: any;\n };\n fixed: {\n isColumnFixed: ComputedRef<boolean>;\n currentHoverKey: Ref<string | number | null>;\n };\n draggable: {\n setRowRefs: (val: RowData) => void;\n };\n rowEvents: {\n onRowMouseEnter: (data: Record<string, any>, index: number, e: Event) => void;\n onRowMouseLeave: (data: Record<string, any>, index: number, e: Event) => void;\n onRowClick: (data: Record<string, any>, index: number, e: Event) => void;\n onRowDoubleClick: (data: Record<string, any>, index: number, e: Event) => void;\n onRowContextMenu: (data: Record<string, any>, index: number, e: Event) => void;\n };\n headerEvents: {\n onHeaderCellClick: (column: InnerColumn, e: any) => void;\n };\n filterAndSorter: {\n hasAction: (column: InnerColumn) => boolean;\n hasSorters: (column: InnerColumn) => boolean;\n hasFilters: (column: InnerColumn) => boolean;\n isSortColumn: (column: InnerColumn) => boolean;\n isAscend: (column: InnerColumn) => boolean;\n isDescend: (column: InnerColumn) => boolean;\n hasAscend: (column: InnerColumn) => boolean;\n hasDescend: (column: InnerColumn) => boolean;\n toggleSortOrder: (column: InnerColumn) => void;\n setColumnFilter: (column: InnerColumn, selectedKeys: (string | number)[]) => void;\n };\n isSummary: boolean;\n pagination: PaginationProps;\n}\n\nconst rowEmitFn = (data: Record<string, any>, index: number, e: Event) => typeof data === 'object' && typeof index === 'number' && e instanceof Event;\nexport const tableEmits = {\n 'row-mouseenter': rowEmitFn,\n 'row-mouseleave': rowEmitFn,\n 'row-click': rowEmitFn,\n 'row-doubleclick': rowEmitFn,\n 'row-contextmenu': rowEmitFn,\n 'header-click': (column: TableColumn, e: Event) => typeof column === 'object' && e instanceof Event,\n 'column-resize': (columnWidth: number, changeWidth: number, column: InnerColumn, event: Event) =>\n typeof columnWidth === 'number' && typeof changeWidth === 'number' && typeof column === 'object' && event instanceof Event,\n expand: (expanded: boolean, row: Record<string, any>, type: string) =>\n typeof expanded === 'boolean' && typeof row === 'object' && typeof type === 'string',\n 'async-expand': (row: any, done: (() => void) | undefined, keys: (string | number)[]) =>\n typeof row === 'object' && Array.isArray(keys) && typeof done === 'function',\n change: (\n pagination: PaginationProps,\n sort: { column: TableColumn | null; order: ColumnSortOrder | null },\n filter: Record<string, (string | number)[]> | null\n ) => !(pagination === null && sort === null && filter === null)\n};\n\nexport type TableEmits = typeof tableEmits;\nexport type TableEmit = EmitFn<TableEmits>;\nexport type TableInstanceType = InstanceType<typeof Table>;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Table.type.mjs","sources":["../../../../src/components/Table/Table.type.ts"],"sourcesContent":["import type { Component, ComputedRef, CSSProperties, ExtractPropTypes, PropType, Ref, Slot, Slots, VNodeChild } from 'vue';\nimport type { JSX } from 'vue/jsx-runtime';\nimport { normalSizeMap } from '../../utils/globalType';\nimport { oneOf } from '../../utils/propsValidators';\nimport type { EmitFn, NormalSizeMap } from '../../utils/globalType';\nimport type { TableLocal } from '../locale/default';\nimport type { PaginationProps } from '../Pagination/Pagination.type';\nimport type Table from './Table.vue';\nimport type { RowData } from './hooks/useDraggable';\n\nexport type ColumnFixed = boolean | 'left' | 'right';\nexport type ColumnAlign = 'left' | 'right' | 'center';\nexport type ColumnSortOrder = 'ascend' | 'descend';\nexport type ColumnSortFn = (a: any, b: any) => number;\nexport interface ColumnFilter {\n label: string;\n value: string | number;\n}\nexport type ColumnFilterFn = (value: string | number, row: any) => boolean;\nexport interface ColumnSlotParams {\n row: any;\n index: number;\n rowKey: string | number;\n pagination: Partial<PaginationProps>;\n column: InnerColumn;\n}\n\nexport interface TableColProps {\n width: string;\n key: string;\n fixed: boolean;\n minWidth: string;\n resizeWidth: string;\n className: string;\n}\n\nexport interface ColumnFilterSlotParams {\n selectedKeys: (string | number)[];\n setSelectedKeys: (keys: (string | number)[]) => void;\n confirm: () => void;\n column: InnerColumn;\n}\n\nexport interface TableColumnSkeleton {\n type: 'circle' | 'rect' | 'text' | 'p' | 'image';\n style: CSSProperties;\n}\nexport interface TableColumn {\n key: string;\n title?: string;\n dataIndex?: string;\n width?: number | string;\n minWidth?: number;\n children?: TableColumn[];\n fixed?: ColumnFixed;\n align?: ColumnAlign;\n ellipsis?: boolean;\n sortable?: boolean | 'custom';\n sortOrder?: ColumnSortOrder;\n sortDirections?: ColumnSortOrder[];\n sortFn?: ColumnSortFn;\n filterable?: boolean;\n filters?: ColumnFilter[];\n filterFn?: ColumnFilterFn;\n filterIcon?: string | Component;\n filterIconStyle?: CSSProperties;\n filterMultiple?: boolean;\n filteredValue?: (string | number)[];\n onFilterDropdownVisibleChange?: (visible: boolean) => void;\n slot?: string;\n titleSlot?: string;\n filterSlot?: string;\n render?: (param: ColumnSlotParams) => VNodeChild | JSX.Element;\n titleRender?: (column: TableColumn) => VNodeChild | JSX.Element;\n filterRender?: (param: ColumnFilterSlotParams) => VNodeChild | JSX.Element;\n resizable?: boolean;\n customCell?: (row: any, index: number) => Record<string, any>;\n className?: string;\n hideSummary?: boolean;\n summarySlot?: string;\n summaryRender?: (sum?: number) => VNodeChild | JSX.Element;\n customSummaryCell?: () => Record<string, any>;\n autoSummary?: boolean;\n tips?: string;\n skeleton?: TableColumnSkeleton[];\n\n // draggable?: boolean;\n // handleDragStart?: (event: MouseEvent, param: ColumnSlotParams) => void;\n // render?: (param: ColumnSlotParams, handleDragStart?: (event: MouseEvent, DragParam: ColumnSlotParams) => void) => VNodeChild | JSX.Element;\n}\n\nexport interface InnerColumn extends TableColumn {\n _index?: number;\n rowSpan?: number;\n colSpan?: number;\n children?: InnerColumn[];\n type?: string;\n summaryRender?: (sum?: number) => VNodeChild | JSX.Element;\n left?: number;\n right?: number;\n lastLeft?: boolean;\n firstRight?: boolean;\n _isRightEdge?: boolean;\n}\n\nexport type SelectionType = 'checkbox' | 'radio';\nexport interface SelectionMenu {\n key: string;\n text: string;\n onSelect?: (rows: any[]) => void;\n}\nexport interface SelectionConfig {\n selectedKeys: (string | number)[] | undefined;\n type?: SelectionType;\n setSelectionProps?: (row: any, index: any) => Record<string, any>;\n selectionMenus?: SelectionMenu[];\n hideDefaultMenus?: boolean;\n onChange?: (keys: (string | number)[], selectedRows: any[]) => void;\n onSelect?: (data: any, checked: boolean, selectedRows: any[], event: any) => void;\n onSelectMultiple?: (checked: boolean, selectedRows: any[], changeRows: any[]) => void;\n onSelectAll?: (checked: boolean, selectedRows: any[], changeRows: any[]) => void;\n onSelectInvert?: (keys: (string | number)[]) => void;\n columnWidth?: number;\n fixed?: ColumnFixed;\n showCheckAll?: boolean;\n}\n\nexport interface DraggableConfig {\n fixed?: ColumnFixed;\n onDragDrop: (sourceRowKey: string | number, targetRowKey: string | number) => void;\n}\n\nexport type PaginationPosition = 'top' | 'bottom' | 'both' | undefined;\nexport type PaginationAlign = 'left' | 'right' | undefined;\nexport interface PaginationConfig extends Partial<PaginationProps> {\n position: PaginationPosition;\n align: PaginationAlign;\n}\n\nexport interface InnerDataItem {\n _index: number;\n _key: string | number;\n _isSkeleton?: boolean;\n dataRef: Record<string, any>;\n children?: InnerColumn[];\n}\n\nexport type RowClassName = (row: Record<string, any>, index: number) => string;\nexport type GetRowKey = (row: Record<string, any>, index: number) => string | number;\n\nexport const tableProps = {\n data: {\n type: Array as PropType<Record<string, any>[]>,\n default: () => [] as Record<string, any>[]\n },\n columns: {\n type: Array as PropType<TableColumn[]>,\n default: () => [] as TableColumn[]\n },\n border: {\n type: Boolean,\n default: false\n },\n showHeader: {\n type: Boolean,\n default: true\n },\n width: {\n type: [Number, String]\n },\n maxHeight: {\n type: [Number, String]\n },\n loading: {\n type: Boolean,\n default: false\n },\n size: {\n type: String as PropType<NormalSizeMap>,\n default: 'default',\n validator: oneOf(normalSizeMap)\n },\n disabledHover: {\n type: Boolean,\n default: false\n },\n rowKey: {\n type: [Function, String] as PropType<string | GetRowKey>,\n default: 'key'\n },\n rowClassName: {\n type: Function as PropType<RowClassName>\n },\n expandIcon: {\n type: String\n },\n defaultExpandAllRows: {\n type: Boolean,\n default: false\n },\n expandedRowKeys: {\n type: Array as PropType<string[]>\n },\n treeIconColumnIndex: {\n type: Number\n },\n defaultShowAllChildren: {\n type: Boolean,\n default: false\n },\n showChildrenRowKeys: {\n type: Array as PropType<string[]>\n },\n indentSize: {\n type: Number,\n default: 20\n },\n selection: {\n type: Object as PropType<SelectionConfig>\n },\n locale: {\n type: Object as PropType<TableLocal>\n },\n stripe: {\n type: Boolean,\n default: false\n },\n showPagination: {\n type: Boolean,\n default: false\n },\n pagination: {\n type: Object as PropType<PaginationConfig>\n },\n showSummary: {\n type: Boolean,\n default: false\n },\n expandFix: {\n type: Boolean,\n default: false\n },\n expandIndent: {\n type: Boolean,\n default: true\n },\n draggable: {\n type: Object as PropType<DraggableConfig>\n },\n headerSticky: {\n type: Number,\n default: undefined as undefined\n },\n variant: {\n type: String as PropType<'surface' | 'ghost' | 'border'>,\n default: 'ghost'\n },\n radius: {\n type: Boolean,\n default: false\n },\n loadingType: {\n type: String as PropType<'spinner' | 'skeleton'>,\n default: 'spinner'\n },\n skeletonRows: {\n type: Number,\n default: 3\n }\n};\nexport type TableProps = ExtractPropTypes<typeof tableProps>;\n\nexport type SaveRef = (key: string) => (el: any) => void;\nexport type TableRefs = Record<string, any>;\nexport interface ExpandParams {\n row: any;\n rowKey: string | number;\n async?: boolean;\n done?: () => void;\n tree?: boolean;\n}\nexport interface TableContext {\n prefixCls: ComputedRef<string>;\n locale: ComputedRef<TableLocal>;\n data: ComputedRef<InnerDataItem[]>;\n saveRef: SaveRef;\n tableRefs: TableRefs;\n showResizeLine: Ref<boolean>;\n props: {\n showHeader: Ref<boolean>;\n maxHeight: Ref<string | number | undefined>;\n expandIcon: Ref<string | undefined>;\n rowClassName: Ref<RowClassName>;\n indentSize: Ref<number>;\n emptyText: ComputedRef<string>;\n showSummary: Ref<boolean>;\n disabledHover: Ref<boolean>;\n expandIndent: Ref<boolean>;\n headerSticky: Ref<number | undefined>;\n loading: Ref<boolean>;\n width: Ref<string | number | undefined>;\n };\n slots: Slots;\n expand: {\n expandedRowRender: ComputedRef<Slot | undefined>;\n expandedRowKeys: Ref<(string | number)[]>;\n showChildrenRowKeys: Ref<(string | number)[]>;\n isRowExpanded: (rowKey: string | number, tree: boolean) => boolean;\n expandIconColumnIndex: ComputedRef<number>;\n handleExpandChange: ({ row, rowKey, async, done, tree }: ExpandParams, e: Event) => void;\n isTreeTable: ComputedRef<boolean>;\n };\n size: {\n tableWidth: Ref<number>;\n resizeColumns: Ref<InnerColumn[]>;\n columnWidths: Ref<Record<string, number>>;\n syncColumnWidth: (width: number, column: InnerColumn) => void;\n // sizesMap: Record<string, number>;\n isScrollX: ComputedRef<boolean>;\n setResizeWidth: (column: InnerColumn, width: number) => void;\n handleColumnResize: (columnWidth: number, changeWidth: number, column: InnerColumn, event: Event) => void;\n debouncedHandleResize: any;\n };\n fixed: {\n isColumnFixed: ComputedRef<boolean>;\n currentHoverKey: Ref<string | number | null>;\n };\n draggable: {\n setRowRefs: (val: RowData) => void;\n };\n rowEvents: {\n onRowMouseEnter: (data: Record<string, any>, index: number, e: Event) => void;\n onRowMouseLeave: (data: Record<string, any>, index: number, e: Event) => void;\n onRowClick: (data: Record<string, any>, index: number, e: Event) => void;\n onRowDoubleClick: (data: Record<string, any>, index: number, e: Event) => void;\n onRowContextMenu: (data: Record<string, any>, index: number, e: Event) => void;\n };\n headerEvents: {\n onHeaderCellClick: (column: InnerColumn, e: any) => void;\n };\n filterAndSorter: {\n hasAction: (column: InnerColumn) => boolean;\n hasSorters: (column: InnerColumn) => boolean;\n hasFilters: (column: InnerColumn) => boolean;\n isSortColumn: (column: InnerColumn) => boolean;\n isAscend: (column: InnerColumn) => boolean;\n isDescend: (column: InnerColumn) => boolean;\n isFiltered: (column: InnerColumn) => boolean;\n hasAscend: (column: InnerColumn) => boolean;\n hasDescend: (column: InnerColumn) => boolean;\n toggleSortOrder: (column: InnerColumn) => void;\n setColumnFilter: (column: InnerColumn, selectedKeys: (string | number)[]) => void;\n };\n isSummary: boolean;\n pagination: PaginationProps;\n}\n\nconst rowEmitFn = (data: Record<string, any>, index: number, e: Event) => typeof data === 'object' && typeof index === 'number' && e instanceof Event;\nexport const tableEmits = {\n 'row-mouseenter': rowEmitFn,\n 'row-mouseleave': rowEmitFn,\n 'row-click': rowEmitFn,\n 'row-doubleclick': rowEmitFn,\n 'row-contextmenu': rowEmitFn,\n 'header-click': (column: TableColumn, e: Event) => typeof column === 'object' && e instanceof Event,\n 'column-resize': (columnWidth: number, changeWidth: number, column: InnerColumn, event: Event) =>\n typeof columnWidth === 'number' && typeof changeWidth === 'number' && typeof column === 'object' && event instanceof Event,\n expand: (expanded: boolean, row: Record<string, any>, type: string) =>\n typeof expanded === 'boolean' && typeof row === 'object' && typeof type === 'string',\n 'async-expand': (row: any, done: (() => void) | undefined, keys: (string | number)[]) =>\n typeof row === 'object' && Array.isArray(keys) && typeof done === 'function',\n change: (\n pagination: PaginationProps,\n sort: { column: TableColumn | null; order: ColumnSortOrder | null },\n filter: Record<string, (string | number)[]> | null\n ) => !(pagination === null && sort === null && filter === null)\n};\n\nexport type TableEmits = typeof tableEmits;\nexport type TableEmit = EmitFn<TableEmits>;\nexport type TableInstanceType = InstanceType<typeof Table>;\n"],"names":[],"mappings":"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"}
@@ -513,6 +513,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
513
513
  isSortColumn: (column: InnerColumn) => boolean;
514
514
  isAscend: (column: InnerColumn) => boolean;
515
515
  isDescend: (column: InnerColumn) => boolean;
516
+ isFiltered: (column: InnerColumn) => boolean;
516
517
  hasAscend: (column: InnerColumn) => boolean;
517
518
  hasDescend: (column: InnerColumn) => boolean;
518
519
  handleSorterClick: (column: InnerColumn) => void;
@@ -545,6 +546,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
545
546
  type: import("vue").PropType<import("../locale/default").TableLocal>;
546
547
  required: true;
547
548
  };
549
+ active: {
550
+ type: BooleanConstructor;
551
+ default: boolean;
552
+ };
548
553
  }>, {
549
554
  prefixCls: import("vue").ComputedRef<string>;
550
555
  dropdownPrefixCls: import("vue").ComputedRef<string>;
@@ -568,9 +573,14 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
568
573
  type: import("vue").PropType<import("../locale/default").TableLocal>;
569
574
  required: true;
570
575
  };
576
+ active: {
577
+ type: BooleanConstructor;
578
+ default: boolean;
579
+ };
571
580
  }>> & Readonly<{
572
581
  onSelect?: (...args: any[]) => any;
573
582
  }>, {
583
+ active: boolean;
574
584
  selectedKeys: (string | number)[];
575
585
  }, {}, {
576
586
  Dropdown: {
@@ -7443,6 +7453,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
7443
7453
  isSortColumn: (column: InnerColumn) => boolean;
7444
7454
  isAscend: (column: InnerColumn) => boolean;
7445
7455
  isDescend: (column: InnerColumn) => boolean;
7456
+ isFiltered: (column: InnerColumn) => boolean;
7446
7457
  hasAscend: (column: InnerColumn) => boolean;
7447
7458
  hasDescend: (column: InnerColumn) => boolean;
7448
7459
  handleSorterClick: (column: InnerColumn) => void;
@@ -7475,6 +7486,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
7475
7486
  type: import("vue").PropType<import("../locale/default").TableLocal>;
7476
7487
  required: true;
7477
7488
  };
7489
+ active: {
7490
+ type: BooleanConstructor;
7491
+ default: boolean;
7492
+ };
7478
7493
  }>, {
7479
7494
  prefixCls: import("vue").ComputedRef<string>;
7480
7495
  dropdownPrefixCls: import("vue").ComputedRef<string>;
@@ -7498,9 +7513,14 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
7498
7513
  type: import("vue").PropType<import("../locale/default").TableLocal>;
7499
7514
  required: true;
7500
7515
  };
7516
+ active: {
7517
+ type: BooleanConstructor;
7518
+ default: boolean;
7519
+ };
7501
7520
  }>> & Readonly<{
7502
7521
  onSelect?: (...args: any[]) => any;
7503
7522
  }>, {
7523
+ active: boolean;
7504
7524
  selectedKeys: (string | number)[];
7505
7525
  }, {}, {
7506
7526
  Dropdown: {
@@ -176,6 +176,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
176
176
  isSortColumn: (column: import("./Table.type").InnerColumn) => boolean;
177
177
  isAscend: (column: import("./Table.type").InnerColumn) => boolean;
178
178
  isDescend: (column: import("./Table.type").InnerColumn) => boolean;
179
+ isFiltered: (column: import("./Table.type").InnerColumn) => boolean;
179
180
  hasAscend: (column: import("./Table.type").InnerColumn) => boolean;
180
181
  hasDescend: (column: import("./Table.type").InnerColumn) => boolean;
181
182
  handleSorterClick: (column: import("./Table.type").InnerColumn) => void;
@@ -208,6 +209,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
208
209
  type: PropType<import("../locale/default").TableLocal>;
209
210
  required: true;
210
211
  };
212
+ active: {
213
+ type: BooleanConstructor;
214
+ default: boolean;
215
+ };
211
216
  }>, {
212
217
  prefixCls: import("vue").ComputedRef<string>;
213
218
  dropdownPrefixCls: import("vue").ComputedRef<string>;
@@ -231,9 +236,14 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
231
236
  type: PropType<import("../locale/default").TableLocal>;
232
237
  required: true;
233
238
  };
239
+ active: {
240
+ type: BooleanConstructor;
241
+ default: boolean;
242
+ };
234
243
  }>> & Readonly<{
235
244
  onSelect?: (...args: any[]) => any;
236
245
  }>, {
246
+ active: boolean;
237
247
  selectedKeys: (string | number)[];
238
248
  }, {}, {
239
249
  Dropdown: {
@@ -7106,6 +7116,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
7106
7116
  isSortColumn: (column: import("./Table.type").InnerColumn) => boolean;
7107
7117
  isAscend: (column: import("./Table.type").InnerColumn) => boolean;
7108
7118
  isDescend: (column: import("./Table.type").InnerColumn) => boolean;
7119
+ isFiltered: (column: import("./Table.type").InnerColumn) => boolean;
7109
7120
  hasAscend: (column: import("./Table.type").InnerColumn) => boolean;
7110
7121
  hasDescend: (column: import("./Table.type").InnerColumn) => boolean;
7111
7122
  handleSorterClick: (column: import("./Table.type").InnerColumn) => void;
@@ -7138,6 +7149,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
7138
7149
  type: PropType<import("../locale/default").TableLocal>;
7139
7150
  required: true;
7140
7151
  };
7152
+ active: {
7153
+ type: BooleanConstructor;
7154
+ default: boolean;
7155
+ };
7141
7156
  }>, {
7142
7157
  prefixCls: import("vue").ComputedRef<string>;
7143
7158
  dropdownPrefixCls: import("vue").ComputedRef<string>;
@@ -7161,9 +7176,14 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
7161
7176
  type: PropType<import("../locale/default").TableLocal>;
7162
7177
  required: true;
7163
7178
  };
7179
+ active: {
7180
+ type: BooleanConstructor;
7181
+ default: boolean;
7182
+ };
7164
7183
  }>> & Readonly<{
7165
7184
  onSelect?: (...args: any[]) => any;
7166
7185
  }>, {
7186
+ active: boolean;
7167
7187
  selectedKeys: (string | number)[];
7168
7188
  }, {}, {
7169
7189
  Dropdown: {
@@ -7,6 +7,7 @@ export default function useFilterAndSort(props: TableProps, updatedDatas: Comput
7
7
  isSortColumn: (column: InnerColumn) => boolean;
8
8
  isAscend: (column: InnerColumn) => boolean;
9
9
  isDescend: (column: InnerColumn) => boolean;
10
+ isFiltered: (column: InnerColumn) => boolean;
10
11
  hasAscend: (column: InnerColumn) => boolean;
11
12
  hasDescend: (column: InnerColumn) => boolean;
12
13
  toggleSortOrder: (column: InnerColumn) => void;
@@ -115,6 +115,10 @@ function useFilterAndSort(props, updatedDatas, emit) {
115
115
  };
116
116
  emit("change", paginationOptions, { column: currentSortColumn.value, order: currentSortOrder.value }, currentFilters.value);
117
117
  };
118
+ const isFiltered = (column) => {
119
+ var _a;
120
+ return hasFilters(column) && ((_a = currentFilters.value) == null ? void 0 : _a[getColumnKey(column)]) !== void 0;
121
+ };
118
122
  const hasAction = (column) => {
119
123
  return hasSorters(column) || hasFilters(column);
120
124
  };
@@ -210,6 +214,7 @@ function useFilterAndSort(props, updatedDatas, emit) {
210
214
  isSortColumn,
211
215
  isAscend,
212
216
  isDescend,
217
+ isFiltered,
213
218
  hasAscend,
214
219
  hasDescend,
215
220
  toggleSortOrder,
@@ -1 +1 @@
1
- {"version":3,"file":"useFilterSortPage.mjs","sources":["../../../../../src/components/Table/hooks/useFilterSortPage.ts"],"sourcesContent":["import { computed, ref, watch, reactive } from 'vue';\nimport type { ComputedRef } from 'vue';\nimport { flatFilter, shallowequal, treeMap, treeSort } from '../../../utils/tools';\nimport type { PaginationProps } from '../../Pagination/Pagination.type';\nimport type { ColumnSortOrder, InnerColumn, InnerDataItem, TableColumn, TableEmit, TableProps } from '../Table.type';\nimport { getColumnKey } from '../utils';\n\nconst isSameColumn = (a: any, b: any) => {\n if (a && b && a.key && a.key === b.key) {\n return true;\n }\n return a === b || shallowequal(a, b);\n};\n\nexport default function useFilterAndSort(props: TableProps, updatedDatas: ComputedRef<InnerDataItem[]>, emit: TableEmit) {\n const currentSortColumn = ref<TableColumn | null>(null);\n const currentSortOrder = ref<ColumnSortOrder | null>(null);\n const currentFilters = ref<Record<string, (string | number)[]> | null>(null);\n const paginationOptions = reactive({} as PaginationProps);\n const sortDirections = ['ascend', 'descend'] as ColumnSortOrder[];\n const getDefaultSort = () => {\n const rst = flatFilter(props.columns, (column) => {\n return !!column.sortOrder && !column.children;\n });\n if (rst.length > 0) {\n currentSortColumn.value = rst[0];\n currentSortOrder.value = rst[0].sortOrder || null;\n }\n };\n\n const getDefaultFilters = () => {\n const rst = {} as Record<string, any>;\n let index = 0;\n treeMap(props.columns, (column) => {\n const colKey = getColumnKey(column, index);\n index += 1;\n if (column.filteredValue !== undefined && !column.children) {\n rst[colKey] = column.filteredValue;\n }\n });\n currentFilters.value = rst;\n };\n\n const restSortColumn = () => {\n currentSortColumn.value = null;\n currentSortOrder.value = null;\n currentFilters.value = null;\n };\n\n watch(\n computed(() => props.columns),\n () => {\n restSortColumn();\n getDefaultSort();\n getDefaultFilters();\n },\n { immediate: true }\n );\n\n // =========== sort ============\n // #region\n const hasSorters = (column: InnerColumn) => {\n return column.sortable && !column.children;\n };\n\n const isSortColumn = (column: InnerColumn) => {\n if (!column || !currentSortColumn.value) {\n return false;\n }\n return isSameColumn(column, currentSortColumn.value);\n };\n\n const isAscend = (column: InnerColumn) => {\n return isSortColumn(column) && currentSortOrder.value === 'ascend';\n };\n\n const isDescend = (column: InnerColumn) => {\n return isSortColumn(column) && currentSortOrder.value === 'descend';\n };\n\n const getSortDirections = (column: InnerColumn) => {\n return column.sortDirections || sortDirections;\n };\n\n const hasAscend = (column: InnerColumn) => {\n return getSortDirections(column).indexOf('ascend') !== -1;\n };\n\n const hasDescend = (column: InnerColumn) => {\n return getSortDirections(column).indexOf('descend') !== -1;\n };\n\n const toggleSortOrder = (column: InnerColumn) => {\n const directions = column.sortDirections || sortDirections;\n let newSortOrder;\n if (isSortColumn(column) && currentSortOrder.value !== null) {\n const index = directions.indexOf(currentSortOrder.value) + 1;\n newSortOrder = index === directions.length ? null : directions[index];\n } else {\n newSortOrder = directions[0];\n }\n currentSortOrder.value = newSortOrder;\n currentSortColumn.value = column;\n\n emit('change', paginationOptions, { column: currentSortColumn.value, order: currentSortOrder.value }, currentFilters.value);\n };\n\n const getSorterFn = () => {\n const sortOrder = currentSortOrder.value;\n const sortColumn = currentSortColumn.value;\n if (!sortOrder || !sortColumn || sortColumn.sortable === 'custom') {\n return;\n }\n return (a: any, b: any) => {\n if (sortColumn.sortFn) {\n const rst = sortColumn.sortFn(a.dataRef, b.dataRef);\n return sortOrder === 'descend' ? -rst : rst;\n }\n const key = sortColumn.dataIndex || sortColumn.key;\n if (sortOrder === 'ascend') {\n return a.dataRef[key] > b.dataRef[key] ? 1 : -1;\n }\n return a.dataRef[key] < b.dataRef[key] ? 1 : -1;\n };\n };\n\n // #endregion\n\n // ================= filter ======================\n // #region\n\n const hasFilters = (column: InnerColumn) => {\n return column.filterable && !column.children;\n };\n\n const setColumnFilter = (column: InnerColumn, selectedKeys: (string | number)[]) => {\n const colKey = getColumnKey(column);\n currentFilters.value = {\n ...currentFilters.value,\n [colKey]: selectedKeys\n };\n emit('change', paginationOptions, { column: currentSortColumn.value, order: currentSortOrder.value }, currentFilters.value);\n };\n\n // #endregion\n\n const hasAction = (column: InnerColumn) => {\n return hasSorters(column) || hasFilters(column);\n };\n\n const findColumn = (key: string) => {\n let column: TableColumn | undefined;\n let index = 0;\n let find = false;\n treeMap<TableColumn, void>(props.columns, (node: TableColumn) => {\n if (find) {\n return;\n }\n const colKey = getColumnKey(node, index);\n index += 1;\n if (colKey === key) {\n column = node;\n find = true;\n }\n });\n return column;\n };\n\n const filteredDatas = computed(() => {\n let data = updatedDatas.value || [];\n const sorterFn = getSorterFn();\n\n if (sorterFn) {\n data = treeSort([...data], sorterFn);\n }\n\n const filters = currentFilters.value;\n if (filters) {\n Object.keys(filters).forEach((colKey) => {\n const column = findColumn(colKey);\n if (!column) {\n return;\n }\n const values = filters[colKey] || [];\n\n if (values.length === 0) {\n return;\n }\n const { filterFn } = column;\n if (filterFn) {\n data = data.filter((row) => {\n return values.some((v) => filterFn(v, row.dataRef));\n });\n }\n });\n }\n return data;\n });\n\n // ================= pagination ==================\n\n watch(\n () => props.pagination,\n () => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { position, align, pageSize, current, ...restProps } = props.pagination || {};\n paginationOptions.pageSize = pageSize || 10;\n paginationOptions.current = current || 1;\n\n Object.keys(restProps).forEach((key) => {\n (paginationOptions as any)[key] = (restProps as any)[key];\n });\n },\n { immediate: true, deep: true }\n );\n\n const getPageTotal = (total: number) => {\n const { current, pageSize } = paginationOptions;\n if ((current - 1) * pageSize >= total) {\n return Math.floor((total - 1) / pageSize) + 1;\n }\n return current;\n };\n\n const computedPageTotal = computed(() => {\n return paginationOptions.total || filteredDatas.value.length;\n });\n\n const currentDatas = computed(() => {\n if (props.showPagination) {\n const { pageSize } = paginationOptions;\n const current = getPageTotal(computedPageTotal.value);\n\n if (filteredDatas.value.length > pageSize) {\n return filteredDatas.value.slice((current - 1) * pageSize, current * pageSize);\n }\n }\n return filteredDatas.value;\n });\n\n const handlePageChange = (page: number) => {\n paginationOptions.current = page;\n emit('change', paginationOptions, { column: currentSortColumn.value, order: currentSortOrder.value }, currentFilters.value);\n };\n\n const handlePageSizeChange = (size: number, current: number) => {\n paginationOptions.pageSize = size;\n paginationOptions.current = current;\n emit('change', paginationOptions, { column: currentSortColumn.value, order: currentSortOrder.value }, currentFilters.value);\n };\n\n return {\n hasAction,\n hasSorters,\n hasFilters,\n isSortColumn,\n isAscend,\n isDescend,\n hasAscend,\n hasDescend,\n toggleSortOrder,\n setColumnFilter,\n currentDatas,\n paginationOptions,\n computedPageTotal,\n handlePageChange,\n handlePageSizeChange\n };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useFilterSortPage.mjs","sources":["../../../../../src/components/Table/hooks/useFilterSortPage.ts"],"sourcesContent":["import { computed, ref, watch, reactive } from 'vue';\nimport type { ComputedRef } from 'vue';\nimport { flatFilter, shallowequal, treeMap, treeSort } from '../../../utils/tools';\nimport type { PaginationProps } from '../../Pagination/Pagination.type';\nimport type { ColumnSortOrder, InnerColumn, InnerDataItem, TableColumn, TableEmit, TableProps } from '../Table.type';\nimport { getColumnKey } from '../utils';\n\nconst isSameColumn = (a: any, b: any) => {\n if (a && b && a.key && a.key === b.key) {\n return true;\n }\n return a === b || shallowequal(a, b);\n};\n\nexport default function useFilterAndSort(props: TableProps, updatedDatas: ComputedRef<InnerDataItem[]>, emit: TableEmit) {\n const currentSortColumn = ref<TableColumn | null>(null);\n const currentSortOrder = ref<ColumnSortOrder | null>(null);\n const currentFilters = ref<Record<string, (string | number)[]> | null>(null);\n const paginationOptions = reactive({} as PaginationProps);\n const sortDirections = ['ascend', 'descend'] as ColumnSortOrder[];\n const getDefaultSort = () => {\n const rst = flatFilter(props.columns, (column) => {\n return !!column.sortOrder && !column.children;\n });\n if (rst.length > 0) {\n currentSortColumn.value = rst[0];\n currentSortOrder.value = rst[0].sortOrder || null;\n }\n };\n\n const getDefaultFilters = () => {\n const rst = {} as Record<string, any>;\n let index = 0;\n treeMap(props.columns, (column) => {\n const colKey = getColumnKey(column, index);\n index += 1;\n if (column.filteredValue !== undefined && !column.children) {\n rst[colKey] = column.filteredValue;\n }\n });\n currentFilters.value = rst;\n };\n\n const restSortColumn = () => {\n currentSortColumn.value = null;\n currentSortOrder.value = null;\n currentFilters.value = null;\n };\n\n watch(\n computed(() => props.columns),\n () => {\n restSortColumn();\n getDefaultSort();\n getDefaultFilters();\n },\n { immediate: true }\n );\n\n // =========== sort ============\n // #region\n const hasSorters = (column: InnerColumn) => {\n return column.sortable && !column.children;\n };\n\n const isSortColumn = (column: InnerColumn) => {\n if (!column || !currentSortColumn.value) {\n return false;\n }\n return isSameColumn(column, currentSortColumn.value);\n };\n\n const isAscend = (column: InnerColumn) => {\n return isSortColumn(column) && currentSortOrder.value === 'ascend';\n };\n\n const isDescend = (column: InnerColumn) => {\n return isSortColumn(column) && currentSortOrder.value === 'descend';\n };\n\n const getSortDirections = (column: InnerColumn) => {\n return column.sortDirections || sortDirections;\n };\n\n const hasAscend = (column: InnerColumn) => {\n return getSortDirections(column).indexOf('ascend') !== -1;\n };\n\n const hasDescend = (column: InnerColumn) => {\n return getSortDirections(column).indexOf('descend') !== -1;\n };\n\n const toggleSortOrder = (column: InnerColumn) => {\n const directions = column.sortDirections || sortDirections;\n let newSortOrder;\n if (isSortColumn(column) && currentSortOrder.value !== null) {\n const index = directions.indexOf(currentSortOrder.value) + 1;\n newSortOrder = index === directions.length ? null : directions[index];\n } else {\n newSortOrder = directions[0];\n }\n currentSortOrder.value = newSortOrder;\n currentSortColumn.value = column;\n\n emit('change', paginationOptions, { column: currentSortColumn.value, order: currentSortOrder.value }, currentFilters.value);\n };\n\n const getSorterFn = () => {\n const sortOrder = currentSortOrder.value;\n const sortColumn = currentSortColumn.value;\n if (!sortOrder || !sortColumn || sortColumn.sortable === 'custom') {\n return;\n }\n return (a: any, b: any) => {\n if (sortColumn.sortFn) {\n const rst = sortColumn.sortFn(a.dataRef, b.dataRef);\n return sortOrder === 'descend' ? -rst : rst;\n }\n const key = sortColumn.dataIndex || sortColumn.key;\n if (sortOrder === 'ascend') {\n return a.dataRef[key] > b.dataRef[key] ? 1 : -1;\n }\n return a.dataRef[key] < b.dataRef[key] ? 1 : -1;\n };\n };\n\n // #endregion\n\n // ================= filter ======================\n // #region\n\n const hasFilters = (column: InnerColumn) => {\n return column.filterable && !column.children;\n };\n\n const setColumnFilter = (column: InnerColumn, selectedKeys: (string | number)[]) => {\n const colKey = getColumnKey(column);\n currentFilters.value = {\n ...currentFilters.value,\n [colKey]: selectedKeys\n };\n emit('change', paginationOptions, { column: currentSortColumn.value, order: currentSortOrder.value }, currentFilters.value);\n };\n\n const isFiltered = (column: InnerColumn) => {\n return hasFilters(column) && currentFilters.value?.[getColumnKey(column)] !== undefined;\n };\n\n // #endregion\n\n const hasAction = (column: InnerColumn) => {\n return hasSorters(column) || hasFilters(column);\n };\n\n const findColumn = (key: string) => {\n let column: TableColumn | undefined;\n let index = 0;\n let find = false;\n treeMap<TableColumn, void>(props.columns, (node: TableColumn) => {\n if (find) {\n return;\n }\n const colKey = getColumnKey(node, index);\n index += 1;\n if (colKey === key) {\n column = node;\n find = true;\n }\n });\n return column;\n };\n\n const filteredDatas = computed(() => {\n let data = updatedDatas.value || [];\n const sorterFn = getSorterFn();\n\n if (sorterFn) {\n data = treeSort([...data], sorterFn);\n }\n\n const filters = currentFilters.value;\n if (filters) {\n Object.keys(filters).forEach((colKey) => {\n const column = findColumn(colKey);\n if (!column) {\n return;\n }\n const values = filters[colKey] || [];\n\n if (values.length === 0) {\n return;\n }\n const { filterFn } = column;\n if (filterFn) {\n data = data.filter((row) => {\n return values.some((v) => filterFn(v, row.dataRef));\n });\n }\n });\n }\n return data;\n });\n\n // ================= pagination ==================\n\n watch(\n () => props.pagination,\n () => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { position, align, pageSize, current, ...restProps } = props.pagination || {};\n paginationOptions.pageSize = pageSize || 10;\n paginationOptions.current = current || 1;\n\n Object.keys(restProps).forEach((key) => {\n (paginationOptions as any)[key] = (restProps as any)[key];\n });\n },\n { immediate: true, deep: true }\n );\n\n const getPageTotal = (total: number) => {\n const { current, pageSize } = paginationOptions;\n if ((current - 1) * pageSize >= total) {\n return Math.floor((total - 1) / pageSize) + 1;\n }\n return current;\n };\n\n const computedPageTotal = computed(() => {\n return paginationOptions.total || filteredDatas.value.length;\n });\n\n const currentDatas = computed(() => {\n if (props.showPagination) {\n const { pageSize } = paginationOptions;\n const current = getPageTotal(computedPageTotal.value);\n\n if (filteredDatas.value.length > pageSize) {\n return filteredDatas.value.slice((current - 1) * pageSize, current * pageSize);\n }\n }\n return filteredDatas.value;\n });\n\n const handlePageChange = (page: number) => {\n paginationOptions.current = page;\n emit('change', paginationOptions, { column: currentSortColumn.value, order: currentSortOrder.value }, currentFilters.value);\n };\n\n const handlePageSizeChange = (size: number, current: number) => {\n paginationOptions.pageSize = size;\n paginationOptions.current = current;\n emit('change', paginationOptions, { column: currentSortColumn.value, order: currentSortOrder.value }, currentFilters.value);\n };\n\n return {\n hasAction,\n hasSorters,\n hasFilters,\n isSortColumn,\n isAscend,\n isDescend,\n isFiltered,\n hasAscend,\n hasDescend,\n toggleSortOrder,\n setColumnFilter,\n currentDatas,\n paginationOptions,\n computedPageTotal,\n handlePageChange,\n handlePageSizeChange\n };\n}\n"],"names":[],"mappings":"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"}
@@ -32,6 +32,10 @@ const _sfc_main = defineComponent({
32
32
  locale: {
33
33
  type: Object,
34
34
  required: true
35
+ },
36
+ active: {
37
+ type: Boolean,
38
+ default: false
35
39
  }
36
40
  },
37
41
  emits: ["select"],
@@ -188,7 +192,8 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
188
192
  class: normalizeClass([
189
193
  `${_ctx.prefixCls}-icon`,
190
194
  {
191
- [`${_ctx.prefixCls}-open`]: !!_ctx.stateVisible
195
+ [`${_ctx.prefixCls}-open`]: !!_ctx.stateVisible,
196
+ [`${_ctx.prefixCls}-active`]: _ctx.active
192
197
  }
193
198
  ]),
194
199
  onClick: _cache[0] || (_cache[0] = withModifiers(() => {