@expcat/tigercat-vue 1.2.39 → 1.2.43

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 (213) hide show
  1. package/dist/{chunk-MD7S2A55.js → chunk-5TJI4HOT.js} +2 -2
  2. package/dist/{chunk-FKCZSBM6.js → chunk-7IVLFDZI.js} +17 -3
  3. package/dist/{chunk-5Z2OCSVJ.mjs → chunk-CHDKJDZQ.mjs} +38 -2
  4. package/dist/{chunk-O23S65U3.js → chunk-EWQJGR7E.js} +130 -15
  5. package/dist/{chunk-G7O3G2LI.mjs → chunk-FI2EIJIF.mjs} +1 -1
  6. package/dist/{chunk-YCYS6LAQ.js → chunk-GD2WAN62.js} +2 -2
  7. package/dist/{chunk-OKBZKBFP.mjs → chunk-GFQDHFAX.mjs} +121 -6
  8. package/dist/{chunk-JT2ANXUR.js → chunk-KGDRA475.js} +2 -2
  9. package/dist/{chunk-3KIIMXJC.mjs → chunk-KJ6VISRW.mjs} +1 -1
  10. package/dist/{chunk-SSMSRTEQ.js → chunk-LUAI6VXV.js} +2 -2
  11. package/dist/{chunk-JPZJZFC4.mjs → chunk-M4EP4OVR.mjs} +2 -1
  12. package/dist/{chunk-5BILS3SG.js → chunk-OFTAQ2A4.js} +37 -1
  13. package/dist/{chunk-G44EGPJB.mjs → chunk-PIF4M4TR.mjs} +2 -2
  14. package/dist/{chunk-5BGVVVVD.mjs → chunk-PT4Q7C2A.mjs} +1 -1
  15. package/dist/{chunk-NNFDOVVA.js → chunk-QOMWROWE.js} +2 -1
  16. package/dist/{chunk-FATIMV7O.mjs → chunk-ROMVD7LS.mjs} +1 -1
  17. package/dist/{chunk-NYH6GSP7.mjs → chunk-VKW2O36D.mjs} +17 -3
  18. package/dist/{chunk-CTR462T2.js → chunk-XGO5Q6KK.js} +1 -1
  19. package/dist/components/ActivityFeed.d.mts +6 -6
  20. package/dist/components/ActivityFeed.d.ts +6 -6
  21. package/dist/components/Alert.d.mts +3 -3
  22. package/dist/components/Alert.d.ts +3 -3
  23. package/dist/components/Anchor.d.mts +1 -1
  24. package/dist/components/Anchor.d.ts +1 -1
  25. package/dist/components/AreaChart.d.mts +2 -2
  26. package/dist/components/AreaChart.d.ts +2 -2
  27. package/dist/components/AutoComplete.d.mts +2 -2
  28. package/dist/components/AutoComplete.d.ts +2 -2
  29. package/dist/components/Avatar.d.mts +1 -1
  30. package/dist/components/Avatar.d.ts +1 -1
  31. package/dist/components/Badge.d.mts +3 -3
  32. package/dist/components/Badge.d.ts +3 -3
  33. package/dist/components/BarChart.d.mts +1 -1
  34. package/dist/components/BarChart.d.ts +1 -1
  35. package/dist/components/Breadcrumb.d.mts +2 -2
  36. package/dist/components/Breadcrumb.d.ts +2 -2
  37. package/dist/components/Button.d.mts +3 -3
  38. package/dist/components/Button.d.ts +3 -3
  39. package/dist/components/ButtonGroup.d.mts +1 -1
  40. package/dist/components/ButtonGroup.d.ts +1 -1
  41. package/dist/components/Calendar.d.mts +1 -1
  42. package/dist/components/Calendar.d.ts +1 -1
  43. package/dist/components/Card.d.mts +2 -2
  44. package/dist/components/Card.d.ts +2 -2
  45. package/dist/components/ChartGrid.d.mts +1 -1
  46. package/dist/components/ChartGrid.d.ts +1 -1
  47. package/dist/components/ChatWindow.d.mts +3 -3
  48. package/dist/components/ChatWindow.d.ts +3 -3
  49. package/dist/components/CodeEditor.d.mts +2 -2
  50. package/dist/components/CodeEditor.d.ts +2 -2
  51. package/dist/components/Collapse.d.mts +1 -1
  52. package/dist/components/Collapse.d.ts +1 -1
  53. package/dist/components/CollapsePanel.d.mts +1 -1
  54. package/dist/components/CollapsePanel.d.ts +1 -1
  55. package/dist/components/ColorSwatch.d.mts +1 -1
  56. package/dist/components/ColorSwatch.d.ts +1 -1
  57. package/dist/components/CommentThread.d.mts +2 -2
  58. package/dist/components/CommentThread.d.ts +2 -2
  59. package/dist/components/ConfigProvider.d.mts +1 -1
  60. package/dist/components/ConfigProvider.d.ts +1 -1
  61. package/dist/components/DataTableWithToolbar.d.mts +34 -10
  62. package/dist/components/DataTableWithToolbar.d.ts +34 -10
  63. package/dist/components/DataTableWithToolbar.js +6 -3
  64. package/dist/components/DataTableWithToolbar.mjs +5 -2
  65. package/dist/components/DatePicker.d.mts +2 -2
  66. package/dist/components/DatePicker.d.ts +2 -2
  67. package/dist/components/Descriptions.d.mts +2 -2
  68. package/dist/components/Descriptions.d.ts +2 -2
  69. package/dist/components/DonutChart.d.mts +2 -2
  70. package/dist/components/DonutChart.d.ts +2 -2
  71. package/dist/components/Drawer.d.mts +5 -5
  72. package/dist/components/Drawer.d.ts +5 -5
  73. package/dist/components/Dropdown.d.mts +19 -0
  74. package/dist/components/Dropdown.d.ts +19 -0
  75. package/dist/components/Dropdown.js +2 -2
  76. package/dist/components/Dropdown.mjs +1 -1
  77. package/dist/components/DropdownItem.js +3 -3
  78. package/dist/components/DropdownItem.mjs +2 -2
  79. package/dist/components/DropdownMenu.js +3 -3
  80. package/dist/components/DropdownMenu.mjs +1 -1
  81. package/dist/components/FileManager.d.mts +1 -1
  82. package/dist/components/FileManager.d.ts +1 -1
  83. package/dist/components/FloatButton.d.mts +3 -3
  84. package/dist/components/FloatButton.d.ts +3 -3
  85. package/dist/components/Form.d.mts +1 -1
  86. package/dist/components/Form.d.ts +1 -1
  87. package/dist/components/FormWizard.d.mts +5 -5
  88. package/dist/components/FormWizard.d.ts +5 -5
  89. package/dist/components/FunnelChart.d.mts +1 -1
  90. package/dist/components/FunnelChart.d.ts +1 -1
  91. package/dist/components/Gantt.d.mts +1 -1
  92. package/dist/components/Gantt.d.ts +1 -1
  93. package/dist/components/GaugeChart.d.mts +1 -1
  94. package/dist/components/GaugeChart.d.ts +1 -1
  95. package/dist/components/HeatmapChart.d.mts +2 -2
  96. package/dist/components/HeatmapChart.d.ts +2 -2
  97. package/dist/components/Image.d.mts +2 -2
  98. package/dist/components/Image.d.ts +2 -2
  99. package/dist/components/ImageAnnotation.d.mts +4 -4
  100. package/dist/components/ImageAnnotation.d.ts +4 -4
  101. package/dist/components/InfiniteScroll.d.mts +2 -2
  102. package/dist/components/InfiniteScroll.d.ts +2 -2
  103. package/dist/components/Input.d.mts +4 -4
  104. package/dist/components/Input.d.ts +4 -4
  105. package/dist/components/InputGroup.d.mts +1 -1
  106. package/dist/components/InputGroup.d.ts +1 -1
  107. package/dist/components/InputNumber.d.mts +1 -1
  108. package/dist/components/InputNumber.d.ts +1 -1
  109. package/dist/components/Kanban.d.mts +1 -1
  110. package/dist/components/Kanban.d.ts +1 -1
  111. package/dist/components/LineChart.d.mts +2 -2
  112. package/dist/components/LineChart.d.ts +2 -2
  113. package/dist/components/Link.d.mts +1 -1
  114. package/dist/components/Link.d.ts +1 -1
  115. package/dist/components/List.d.mts +6 -6
  116. package/dist/components/List.d.ts +6 -6
  117. package/dist/components/Loading.d.mts +5 -5
  118. package/dist/components/Loading.d.ts +5 -5
  119. package/dist/components/MarkdownEditor.d.mts +2 -2
  120. package/dist/components/MarkdownEditor.d.ts +2 -2
  121. package/dist/components/Mentions.d.mts +2 -2
  122. package/dist/components/Mentions.d.ts +2 -2
  123. package/dist/components/Menu.d.mts +5 -5
  124. package/dist/components/Menu.d.ts +5 -5
  125. package/dist/components/Modal.d.mts +8 -8
  126. package/dist/components/Modal.d.ts +8 -8
  127. package/dist/components/NotificationCenter.d.mts +5 -5
  128. package/dist/components/NotificationCenter.d.ts +5 -5
  129. package/dist/components/NumberKeyboard.d.mts +2 -2
  130. package/dist/components/NumberKeyboard.d.ts +2 -2
  131. package/dist/components/OrgChart.d.mts +1 -1
  132. package/dist/components/OrgChart.d.ts +1 -1
  133. package/dist/components/Pagination.d.mts +4 -4
  134. package/dist/components/Pagination.d.ts +4 -4
  135. package/dist/components/PieChart.d.mts +2 -2
  136. package/dist/components/PieChart.d.ts +2 -2
  137. package/dist/components/Popconfirm.d.mts +2 -2
  138. package/dist/components/Popconfirm.d.ts +2 -2
  139. package/dist/components/Popconfirm.js +3 -3
  140. package/dist/components/Popconfirm.mjs +2 -2
  141. package/dist/components/Popover.d.mts +1 -1
  142. package/dist/components/Popover.d.ts +1 -1
  143. package/dist/components/Popover.js +3 -3
  144. package/dist/components/Popover.mjs +2 -2
  145. package/dist/components/Progress.d.mts +3 -3
  146. package/dist/components/Progress.d.ts +3 -3
  147. package/dist/components/QRCode.d.mts +1 -1
  148. package/dist/components/QRCode.d.ts +1 -1
  149. package/dist/components/RadarChart.d.mts +2 -2
  150. package/dist/components/RadarChart.d.ts +2 -2
  151. package/dist/components/RichTextEditor.d.mts +1 -1
  152. package/dist/components/RichTextEditor.d.ts +1 -1
  153. package/dist/components/Row.d.mts +1 -1
  154. package/dist/components/Row.d.ts +1 -1
  155. package/dist/components/ScatterChart.d.mts +1 -1
  156. package/dist/components/ScatterChart.d.ts +1 -1
  157. package/dist/components/ScrollSpy.d.mts +2 -2
  158. package/dist/components/ScrollSpy.d.ts +2 -2
  159. package/dist/components/Select.d.mts +1 -1
  160. package/dist/components/Select.d.ts +1 -1
  161. package/dist/components/Signature.d.mts +2 -2
  162. package/dist/components/Signature.d.ts +2 -2
  163. package/dist/components/Skeleton.d.mts +1 -1
  164. package/dist/components/Skeleton.d.ts +1 -1
  165. package/dist/components/Space.d.mts +2 -2
  166. package/dist/components/Space.d.ts +2 -2
  167. package/dist/components/Splitter.d.mts +1 -1
  168. package/dist/components/Splitter.d.ts +1 -1
  169. package/dist/components/Spotlight.d.mts +4 -4
  170. package/dist/components/Spotlight.d.ts +4 -4
  171. package/dist/components/Steps.d.mts +2 -2
  172. package/dist/components/Steps.d.ts +2 -2
  173. package/dist/components/SunburstChart.d.mts +1 -1
  174. package/dist/components/SunburstChart.d.ts +1 -1
  175. package/dist/components/Table.d.mts +25 -5
  176. package/dist/components/Table.d.ts +25 -5
  177. package/dist/components/Table.js +2 -2
  178. package/dist/components/Table.mjs +1 -1
  179. package/dist/components/Tabs.d.mts +2 -2
  180. package/dist/components/Tabs.d.ts +2 -2
  181. package/dist/components/Tag.d.mts +1 -1
  182. package/dist/components/Tag.d.ts +1 -1
  183. package/dist/components/TaskBoard.d.mts +2 -2
  184. package/dist/components/TaskBoard.d.ts +2 -2
  185. package/dist/components/Text.d.mts +3 -3
  186. package/dist/components/Text.d.ts +3 -3
  187. package/dist/components/Textarea.d.mts +1 -1
  188. package/dist/components/Textarea.d.ts +1 -1
  189. package/dist/components/TimePicker.d.mts +3 -3
  190. package/dist/components/TimePicker.d.ts +3 -3
  191. package/dist/components/Timeline.d.mts +3 -3
  192. package/dist/components/Timeline.d.ts +3 -3
  193. package/dist/components/Tooltip.d.mts +1 -1
  194. package/dist/components/Tooltip.d.ts +1 -1
  195. package/dist/components/Tooltip.js +3 -3
  196. package/dist/components/Tooltip.mjs +2 -2
  197. package/dist/components/Tour.d.mts +2 -2
  198. package/dist/components/Tour.d.ts +2 -2
  199. package/dist/components/Tree.d.mts +2 -2
  200. package/dist/components/Tree.d.ts +2 -2
  201. package/dist/components/TreeMapChart.d.mts +1 -1
  202. package/dist/components/TreeMapChart.d.ts +1 -1
  203. package/dist/components/Upload.d.mts +4 -4
  204. package/dist/components/Upload.d.ts +4 -4
  205. package/dist/components/VirtualTable.d.mts +2 -2
  206. package/dist/components/VirtualTable.d.ts +2 -2
  207. package/dist/components/VirtualTable.js +2 -2
  208. package/dist/components/VirtualTable.mjs +1 -1
  209. package/dist/components/Watermark.d.mts +1 -1
  210. package/dist/components/Watermark.d.ts +1 -1
  211. package/dist/index.js +12 -12
  212. package/dist/index.mjs +11 -11
  213. package/package.json +2 -2
@@ -1,15 +1,21 @@
1
1
  import {
2
2
  Table
3
- } from "./chunk-5Z2OCSVJ.mjs";
3
+ } from "./chunk-CHDKJDZQ.mjs";
4
4
  import {
5
5
  Select
6
6
  } from "./chunk-PYT5DTQQ.mjs";
7
+ import {
8
+ Popover
9
+ } from "./chunk-PT4Q7C2A.mjs";
7
10
  import {
8
11
  useTigerConfig
9
12
  } from "./chunk-VG6E4NX6.mjs";
10
13
  import {
11
14
  Input
12
15
  } from "./chunk-2WJADO6O.mjs";
16
+ import {
17
+ Checkbox
18
+ } from "./chunk-2BNQGU7E.mjs";
13
19
  import {
14
20
  Button
15
21
  } from "./chunk-PO5GVU4Q.mjs";
@@ -49,6 +55,14 @@ var DataTableWithToolbar = defineComponent({
49
55
  type: Array,
50
56
  default: () => []
51
57
  },
58
+ hiddenColumnKeys: {
59
+ type: Array,
60
+ default: void 0
61
+ },
62
+ defaultHiddenColumnKeys: {
63
+ type: Array,
64
+ default: void 0
65
+ },
52
66
  sort: {
53
67
  type: Object,
54
68
  default: void 0
@@ -153,11 +167,16 @@ var DataTableWithToolbar = defineComponent({
153
167
  "bulk-action": (_action, _keys) => true,
154
168
  "selection-change": (_keys) => true,
155
169
  "page-change": (_current, _pageSize) => true,
156
- "page-size-change": (_current, _pageSize) => true
170
+ "page-size-change": (_current, _pageSize) => true,
171
+ "update:hiddenColumnKeys": (_hiddenKeys) => true,
172
+ "hidden-columns-change": (_hiddenKeys) => true
157
173
  },
158
174
  setup(props, { attrs, emit }) {
159
175
  const config = useTigerConfig();
160
176
  const internalSearch = ref(props.toolbar?.defaultSearchValue ?? "");
177
+ const internalHiddenKeys = ref(
178
+ props.defaultHiddenColumnKeys ?? props.hiddenColumnKeys ?? []
179
+ );
161
180
  const internalFilters = ref({});
162
181
  const previousPageSize = ref(
163
182
  props.pagination && typeof props.pagination === "object" ? props.pagination.pageSize ?? props.pagination.defaultPageSize ?? 10 : void 0
@@ -209,6 +228,14 @@ var DataTableWithToolbar = defineComponent({
209
228
  }
210
229
  }
211
230
  );
231
+ watch(
232
+ () => props.hiddenColumnKeys,
233
+ (nextValue) => {
234
+ if (nextValue !== void 0) {
235
+ internalHiddenKeys.value = nextValue;
236
+ }
237
+ }
238
+ );
212
239
  watch(
213
240
  () => props.toolbar?.filters,
214
241
  (filters) => {
@@ -241,6 +268,19 @@ var DataTableWithToolbar = defineComponent({
241
268
  });
242
269
  const hasFilters = computed(() => Boolean(props.toolbar?.filters?.length));
243
270
  const hasBulkActions = computed(() => Boolean(props.toolbar?.bulkActions?.length));
271
+ const hasColumnSettings = computed(() => Boolean(props.toolbar?.showColumnSettings));
272
+ const resolvedHiddenKeys = computed(() => props.hiddenColumnKeys ?? internalHiddenKeys.value);
273
+ const handleHiddenColumnsChange = (nextHiddenKeys) => {
274
+ if (props.hiddenColumnKeys === void 0) {
275
+ internalHiddenKeys.value = nextHiddenKeys;
276
+ }
277
+ emit("update:hiddenColumnKeys", nextHiddenKeys);
278
+ emit("hidden-columns-change", nextHiddenKeys);
279
+ };
280
+ const handleToggleColumnVisibility = (columnKey, visible) => {
281
+ const nextHiddenKeys = visible ? resolvedHiddenKeys.value.filter((key) => key !== columnKey) : [...resolvedHiddenKeys.value, columnKey];
282
+ handleHiddenColumnsChange(nextHiddenKeys);
283
+ };
244
284
  const canSearch = computed(() => Boolean(vnodeProps.onSearch));
245
285
  const selectedKeys = computed(
246
286
  () => props.toolbar?.selectedKeys ?? props.rowSelection?.selectedRowKeys ?? []
@@ -248,7 +288,9 @@ var DataTableWithToolbar = defineComponent({
248
288
  const selectedCount = computed(
249
289
  () => props.toolbar?.selectedCount !== void 0 ? props.toolbar.selectedCount : selectedKeys.value.length
250
290
  );
251
- const bulkLabel = computed(() => props.toolbar?.bulkActionsLabel ?? tableLabels.value.selectedText);
291
+ const bulkLabel = computed(
292
+ () => props.toolbar?.bulkActionsLabel ?? tableLabels.value.selectedText
293
+ );
252
294
  const wrapperClasses = computed(
253
295
  () => classNames(
254
296
  "tiger-data-table-with-toolbar flex flex-col",
@@ -295,8 +337,75 @@ var DataTableWithToolbar = defineComponent({
295
337
  }
296
338
  previousPageSize.value = pageSize;
297
339
  };
340
+ const renderColumnSettings = () => {
341
+ const lockedKeys = new Set(props.toolbar?.columnSettings?.lockedColumnKeys ?? []);
342
+ const panelTitle = props.toolbar?.columnSettings?.title ?? tableLabels.value.columnSettingsText;
343
+ return h(
344
+ Popover,
345
+ {
346
+ trigger: "click",
347
+ placement: "bottom-end"
348
+ },
349
+ {
350
+ default: () => h(
351
+ Button,
352
+ {
353
+ size: "sm",
354
+ variant: "outline",
355
+ class: "shrink-0 px-2",
356
+ "aria-label": tableLabels.value.columnSettingsAriaLabel
357
+ },
358
+ {
359
+ default: () => h(
360
+ "svg",
361
+ {
362
+ class: "w-3.5 h-3.5",
363
+ fill: "none",
364
+ stroke: "currentColor",
365
+ "stroke-width": "2",
366
+ viewBox: "0 0 24 24",
367
+ "aria-hidden": "true"
368
+ },
369
+ [
370
+ h("path", {
371
+ "stroke-linecap": "round",
372
+ "stroke-linejoin": "round",
373
+ d: "M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"
374
+ }),
375
+ h("path", {
376
+ "stroke-linecap": "round",
377
+ "stroke-linejoin": "round",
378
+ d: "M15 12a3 3 0 11-6 0 3 3 0 016 0z"
379
+ })
380
+ ]
381
+ )
382
+ }
383
+ ),
384
+ title: () => panelTitle,
385
+ content: () => h(
386
+ "div",
387
+ { class: "flex flex-col gap-2 min-w-[160px]" },
388
+ props.columns.map((column) => {
389
+ const locked = lockedKeys.has(column.key) || column.hideable === false;
390
+ return h(
391
+ Checkbox,
392
+ {
393
+ key: column.key,
394
+ size: "sm",
395
+ modelValue: !resolvedHiddenKeys.value.includes(column.key),
396
+ disabled: locked,
397
+ "onUpdate:modelValue": (checked) => handleToggleColumnVisibility(column.key, checked)
398
+ },
399
+ { default: () => column.title }
400
+ );
401
+ })
402
+ )
403
+ }
404
+ );
405
+ };
298
406
  const renderToolbar = () => {
299
- if (!hasSearch.value && !hasFilters.value && !hasBulkActions.value) return null;
407
+ if (!hasSearch.value && !hasFilters.value && !hasBulkActions.value && !hasColumnSettings.value)
408
+ return null;
300
409
  const leftNodes = [];
301
410
  if (hasSearch.value) {
302
411
  const showButton = props.toolbar?.showSearchButton ?? true;
@@ -349,7 +458,9 @@ var DataTableWithToolbar = defineComponent({
349
458
  onClick: handleSearchSubmit,
350
459
  disabled: !canSearch.value
351
460
  },
352
- { default: () => props.toolbar?.searchButtonText ?? tableLabels.value.searchButtonText }
461
+ {
462
+ default: () => props.toolbar?.searchButtonText ?? tableLabels.value.searchButtonText
463
+ }
353
464
  ) : null
354
465
  ]
355
466
  )
@@ -433,7 +544,10 @@ var DataTableWithToolbar = defineComponent({
433
544
  "div",
434
545
  { class: "flex items-center gap-2.5 flex-wrap ml-auto shrink-0" },
435
546
  bulkChildren
436
- ) : null
547
+ ) : null,
548
+ hasColumnSettings.value ? h("div", { class: classNames("shrink-0", !hasBulkActions.value && "ml-auto") }, [
549
+ renderColumnSettings()
550
+ ]) : null
437
551
  ]
438
552
  );
439
553
  };
@@ -444,6 +558,7 @@ var DataTableWithToolbar = defineComponent({
444
558
  columns: props.columns,
445
559
  columnLockable: props.columnLockable,
446
560
  dataSource: props.dataSource,
561
+ hiddenColumnKeys: resolvedHiddenKeys.value,
447
562
  ...props.sort !== void 0 ? { sort: props.sort } : {},
448
563
  ...props.defaultSort !== void 0 ? { defaultSort: props.defaultSort } : {},
449
564
  ...props.filters !== void 0 ? { filters: props.filters } : {},
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunkNNFDOVVAjs = require('./chunk-NNFDOVVA.js');
3
+ var _chunkQOMWROWEjs = require('./chunk-QOMWROWE.js');
4
4
 
5
5
 
6
6
  var _chunkEQW6IUHGjs = require('./chunk-EQW6IUHG.js');
@@ -48,7 +48,7 @@ var Tooltip = _vue.defineComponent.call(void 0, {
48
48
  floatingRef,
49
49
  floatingStyles,
50
50
  triggerHandlers
51
- } = _chunkNNFDOVVAjs.useFloatingPopup.call(void 0, { props, emit });
51
+ } = _chunkQOMWROWEjs.useFloatingPopup.call(void 0, { props, emit });
52
52
  const tooltipId = createTooltipId();
53
53
  const containerClasses = _vue.computed.call(void 0,
54
54
  () => _tigercatcore.classNames.call(void 0, _tigercatcore.getTooltipContainerClasses.call(void 0, ), props.className, _tigercatcore.coerceClassValue.call(void 0, attrsRecord.class))
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  useFloatingPopup
3
- } from "./chunk-JPZJZFC4.mjs";
3
+ } from "./chunk-M4EP4OVR.mjs";
4
4
  import {
5
5
  renderVueBodyTeleport
6
6
  } from "./chunk-BDTPFPSB.mjs";
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunkNNFDOVVAjs = require('./chunk-NNFDOVVA.js');
3
+ var _chunkQOMWROWEjs = require('./chunk-QOMWROWE.js');
4
4
 
5
5
 
6
6
  var _chunkEQW6IUHGjs = require('./chunk-EQW6IUHG.js');
@@ -54,7 +54,7 @@ var Popover = _vue.defineComponent.call(void 0, {
54
54
  floatingRef,
55
55
  floatingStyles,
56
56
  triggerHandlers
57
- } = _chunkNNFDOVVAjs.useFloatingPopup.call(void 0, { props, emit });
57
+ } = _chunkQOMWROWEjs.useFloatingPopup.call(void 0, { props, emit });
58
58
  const popoverId = createPopoverId();
59
59
  const titleId = `${popoverId}-title`;
60
60
  const contentId = `${popoverId}-content`;
@@ -8,6 +8,7 @@ import {
8
8
  import { computed, ref, watch, onBeforeUnmount } from "vue";
9
9
  import {
10
10
  getTransformOrigin,
11
+ FLOATING_OVERLAY_Z_INDEX,
11
12
  buildTriggerHandlerMap,
12
13
  restoreFocus
13
14
  } from "@expcat/tigercat-core";
@@ -95,7 +96,7 @@ function useFloatingPopup(options) {
95
96
  left: `${x.value}px`,
96
97
  top: `${y.value}px`,
97
98
  transformOrigin: getTransformOrigin(actualPlacement.value),
98
- zIndex: 1e3
99
+ zIndex: FLOATING_OVERLAY_Z_INDEX
99
100
  }));
100
101
  const handleToggle = () => {
101
102
  if (!props.disabled) setVisible(!currentVisible.value);
@@ -63,6 +63,14 @@ var tableProps = {
63
63
  type: Array,
64
64
  default: () => []
65
65
  },
66
+ hiddenColumnKeys: {
67
+ type: Array,
68
+ default: void 0
69
+ },
70
+ defaultHiddenColumnKeys: {
71
+ type: Array,
72
+ default: void 0
73
+ },
66
74
  sort: {
67
75
  type: Object
68
76
  },
@@ -184,6 +192,8 @@ var tableEmits = [
184
192
  "selection-change",
185
193
  "sort-change",
186
194
  "filter-change",
195
+ "update:hiddenColumnKeys",
196
+ "hidden-columns-change",
187
197
  "page-change",
188
198
  "expand-change",
189
199
  "cell-change",
@@ -206,15 +216,20 @@ var tableEmits = [
206
216
 
207
217
 
208
218
 
219
+
209
220
  function useTableState(props, emit, measuredColumnWidths) {
210
221
  const paginationConfig = _vue.computed.call(void 0, () => {
211
222
  return props.pagination !== false && typeof props.pagination === "object" ? props.pagination : null;
212
223
  });
213
224
  const isSortControlled = _vue.computed.call(void 0, () => props.sort !== void 0);
225
+ const isHiddenColumnsControlled = _vue.computed.call(void 0, () => props.hiddenColumnKeys !== void 0);
214
226
  const isFiltersControlled = _vue.computed.call(void 0, () => props.filters !== void 0);
215
227
  const isSelectionControlled = _vue.computed.call(void 0, () => _optionalChain([props, 'access', _ => _.rowSelection, 'optionalAccess', _2 => _2.selectedRowKeys]) !== void 0);
216
228
  const isExpandControlled = _vue.computed.call(void 0, () => _optionalChain([props, 'access', _3 => _3.expandable, 'optionalAccess', _4 => _4.expandedRowKeys]) !== void 0);
217
229
  const uncontrolledSortState = _vue.ref.call(void 0, _nullishCoalesce(props.defaultSort, () => ( { key: null, direction: null })));
230
+ const uncontrolledHiddenColumnKeys = _vue.ref.call(void 0,
231
+ _nullishCoalesce(_nullishCoalesce(props.defaultHiddenColumnKeys, () => ( props.hiddenColumnKeys)), () => ( []))
232
+ );
218
233
  const uncontrolledFilterState = _vue.ref.call(void 0, _nullishCoalesce(props.defaultFilters, () => ( {})));
219
234
  const uncontrolledCurrentPage = _vue.ref.call(void 0,
220
235
  _nullishCoalesce(_nullishCoalesce(_optionalChain([paginationConfig, 'access', _5 => _5.value, 'optionalAccess', _6 => _6.defaultCurrent]), () => ( _optionalChain([paginationConfig, 'access', _7 => _7.value, 'optionalAccess', _8 => _8.current]))), () => ( 1))
@@ -229,6 +244,9 @@ function useTableState(props, emit, measuredColumnWidths) {
229
244
  _nullishCoalesce(_nullishCoalesce(_optionalChain([props, 'access', _17 => _17.expandable, 'optionalAccess', _18 => _18.defaultExpandedRowKeys]), () => ( _optionalChain([props, 'access', _19 => _19.expandable, 'optionalAccess', _20 => _20.expandedRowKeys]))), () => ( []))
230
245
  );
231
246
  const sortState = _vue.computed.call(void 0, () => _nullishCoalesce(props.sort, () => ( uncontrolledSortState.value)));
247
+ const hiddenColumnKeys = _vue.computed.call(void 0,
248
+ () => _nullishCoalesce(props.hiddenColumnKeys, () => ( uncontrolledHiddenColumnKeys.value))
249
+ );
232
250
  const filterState = _vue.computed.call(void 0, () => _nullishCoalesce(props.filters, () => ( uncontrolledFilterState.value)));
233
251
  const currentPage = _vue.computed.call(void 0, () => {
234
252
  return _nullishCoalesce(_optionalChain([paginationConfig, 'access', _21 => _21.value, 'optionalAccess', _22 => _22.current]), () => ( uncontrolledCurrentPage.value));
@@ -258,6 +276,14 @@ function useTableState(props, emit, measuredColumnWidths) {
258
276
  }
259
277
  }
260
278
  );
279
+ _vue.watch.call(void 0,
280
+ () => props.hiddenColumnKeys,
281
+ (next) => {
282
+ if (next !== void 0) {
283
+ uncontrolledHiddenColumnKeys.value = next;
284
+ }
285
+ }
286
+ );
261
287
  _vue.watch.call(void 0,
262
288
  () => _optionalChain([paginationConfig, 'access', _29 => _29.value, 'optionalAccess', _30 => _30.current]),
263
289
  (next) => {
@@ -292,13 +318,14 @@ function useTableState(props, emit, measuredColumnWidths) {
292
318
  );
293
319
  const fixedOverrides = _vue.ref.call(void 0, {});
294
320
  const displayColumns = _vue.computed.call(void 0, () => {
295
- return props.columns.map((column) => {
321
+ const mapped = props.columns.map((column) => {
296
322
  const hasOverride = column.key in fixedOverrides.value;
297
323
  return {
298
324
  ...column,
299
325
  fixed: hasOverride ? fixedOverrides.value[column.key] : column.fixed
300
326
  };
301
327
  });
328
+ return _tigercatcore.filterHiddenColumns.call(void 0, mapped, hiddenColumnKeys.value);
302
329
  });
303
330
  const fixedColumnsInfo = _vue.computed.call(void 0, () => {
304
331
  return _tigercatcore.getFixedColumnOffsets.call(void 0, displayColumns.value, measuredColumnWidths.value);
@@ -310,6 +337,13 @@ function useTableState(props, emit, measuredColumnWidths) {
310
337
  }
311
338
  return map;
312
339
  });
340
+ function handleSetHiddenColumns(hiddenKeys) {
341
+ if (!isHiddenColumnsControlled.value) {
342
+ uncontrolledHiddenColumnKeys.value = hiddenKeys;
343
+ }
344
+ emit("update:hiddenColumnKeys", hiddenKeys);
345
+ emit("hidden-columns-change", hiddenKeys);
346
+ }
313
347
  function toggleColumnLock(columnKey) {
314
348
  const original = _optionalChain([props, 'access', _37 => _37.columns, 'access', _38 => _38.find, 'call', _39 => _39((c) => c.key === columnKey), 'optionalAccess', _40 => _40.fixed]);
315
349
  const hasOverride = columnKey in fixedOverrides.value;
@@ -579,12 +613,14 @@ function useTableState(props, emit, measuredColumnWidths) {
579
613
  filterState,
580
614
  currentPage,
581
615
  currentPageSize,
616
+ hiddenColumnKeys,
582
617
  selectedRowKeys,
583
618
  expandedRowKeys,
584
619
  editingCell,
585
620
  editingValue,
586
621
  virtualScrollTop,
587
622
  toggleColumnLock,
623
+ handleSetHiddenColumns,
588
624
  handleSetSort,
589
625
  handleSort,
590
626
  handleFilter,
@@ -16,7 +16,7 @@ import {
16
16
  virtualTableCellClasses,
17
17
  virtualTableEmptyClasses,
18
18
  virtualTableLoadingClasses,
19
- virtualTableRowSelectedClasses
19
+ virtualTableFixedCellSelectedClasses
20
20
  } from "@expcat/tigercat-core";
21
21
  var VirtualTable = defineComponent({
22
22
  name: "TigerVirtualTable",
@@ -130,7 +130,7 @@ var VirtualTable = defineComponent({
130
130
  selected: isSelected,
131
131
  hoverable: true,
132
132
  fixedInfo: fi,
133
- selectedClassName: virtualTableRowSelectedClasses
133
+ selectedClassName: virtualTableFixedCellSelectedClasses
134
134
  })
135
135
  ),
136
136
  style: getVirtualTableFixedCellStyle(col.key, fi)
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  useFloatingPopup
3
- } from "./chunk-JPZJZFC4.mjs";
3
+ } from "./chunk-M4EP4OVR.mjs";
4
4
  import {
5
5
  renderVueBodyTeleport
6
6
  } from "./chunk-BDTPFPSB.mjs";
@@ -10,6 +10,7 @@ var _vue = require('vue');
10
10
 
11
11
 
12
12
 
13
+
13
14
  var _tigercatcore = require('@expcat/tigercat-core');
14
15
  function useFloatingPopup(options) {
15
16
  const { props, emit, multiTrigger = true } = options;
@@ -95,7 +96,7 @@ function useFloatingPopup(options) {
95
96
  left: `${x.value}px`,
96
97
  top: `${y.value}px`,
97
98
  transformOrigin: _tigercatcore.getTransformOrigin.call(void 0, actualPlacement.value),
98
- zIndex: 1e3
99
+ zIndex: _tigercatcore.FLOATING_OVERLAY_Z_INDEX
99
100
  }));
100
101
  const handleToggle = () => {
101
102
  if (!props.disabled) setVisible(!currentVisible.value);
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  DropdownContextKey
3
- } from "./chunk-NYH6GSP7.mjs";
3
+ } from "./chunk-VKW2O36D.mjs";
4
4
 
5
5
  // src/components/DropdownItem.ts
6
6
  import { defineComponent, inject, computed, h } from "vue";
@@ -1,4 +1,5 @@
1
1
  import {
2
+ renderVueBodyTeleport,
2
3
  useVueClickOutside,
3
4
  useVueEscapeKey,
4
5
  useVueFloating
@@ -27,6 +28,7 @@ import {
27
28
  getDropdownMenuClasses,
28
29
  getTransformOrigin,
29
30
  injectDropdownStyles,
31
+ FLOATING_OVERLAY_Z_INDEX,
30
32
  DROPDOWN_CHEVRON_PATH,
31
33
  DROPDOWN_ENTER_CLASS,
32
34
  handleMenuNavigation,
@@ -147,6 +149,15 @@ var Dropdown = defineComponent({
147
149
  type: Boolean,
148
150
  default: true
149
151
  },
152
+ /**
153
+ * Render the menu into document.body (Teleport) so it is not clipped or
154
+ * covered by overflow/sticky ancestors (e.g. fixed table columns).
155
+ * @default true
156
+ */
157
+ portal: {
158
+ type: Boolean,
159
+ default: true
160
+ },
150
161
  /**
151
162
  * Additional CSS classes
152
163
  */
@@ -239,7 +250,7 @@ var Dropdown = defineComponent({
239
250
  if (enabled) {
240
251
  cleanupClickOutside = useVueClickOutside({
241
252
  enabled: currentVisible,
242
- containerRef,
253
+ refs: [containerRef, floatingRef],
243
254
  onOutsideClick: () => setVisible(false),
244
255
  defer: true
245
256
  });
@@ -277,11 +288,12 @@ var Dropdown = defineComponent({
277
288
  );
278
289
  const mergedStyle = computed(() => mergeStyleValues(attrsStyle, props.style));
279
290
  const triggerClasses = computed(() => getDropdownTriggerClasses(props.disabled));
280
- const menuWrapperClasses = classNames("absolute z-50", DROPDOWN_ENTER_CLASS);
291
+ const menuWrapperClasses = classNames("absolute", DROPDOWN_ENTER_CLASS);
281
292
  const menuWrapperStyles = computed(() => ({
282
293
  position: "absolute",
283
294
  left: `${x.value}px`,
284
295
  top: `${y.value}px`,
296
+ zIndex: FLOATING_OVERLAY_Z_INDEX,
285
297
  transformOrigin: getTransformOrigin(currentPlacement.value)
286
298
  }));
287
299
  provide(DropdownContextKey, {
@@ -329,12 +341,13 @@ var Dropdown = defineComponent({
329
341
  },
330
342
  [triggerNode, chevronNode]
331
343
  ) : null;
332
- const menu = menuNode ? h(
344
+ const menuWrapper = menuNode ? h(
333
345
  "div",
334
346
  {
335
347
  ref: floatingRef,
336
348
  class: menuWrapperClasses,
337
349
  style: menuWrapperStyles.value,
350
+ "data-tiger-dropdown-menu": "",
338
351
  onMouseenter: handleMouseEnter,
339
352
  onMouseleave: handleMouseLeave,
340
353
  onKeydown: handleMenuKeyDown,
@@ -342,6 +355,7 @@ var Dropdown = defineComponent({
342
355
  },
343
356
  [cloneVNode(menuNode, { id: menuId })]
344
357
  ) : null;
358
+ const menu = menuWrapper ? renderVueBodyTeleport(menuWrapper, !props.portal) : null;
345
359
  const {
346
360
  class: _class,
347
361
  style: _style,
@@ -130,7 +130,7 @@ var VirtualTable = _vue.defineComponent.call(void 0, {
130
130
  selected: isSelected,
131
131
  hoverable: true,
132
132
  fixedInfo: fi,
133
- selectedClassName: _tigercatcore.virtualTableRowSelectedClasses
133
+ selectedClassName: _tigercatcore.virtualTableFixedCellSelectedClasses
134
134
  })
135
135
  ),
136
136
  style: _tigercatcore.getVirtualTableFixedCellStyle.call(void 0, col.key, fi)
@@ -107,18 +107,18 @@ declare const ActivityFeed: vue.DefineComponent<vue.ExtractPropTypes<{
107
107
  default: undefined;
108
108
  };
109
109
  }>> & Readonly<{}>, {
110
+ loadingText: string;
111
+ emptyText: string;
112
+ className: string;
113
+ style: Record<string, string | number>;
114
+ loading: boolean;
115
+ groupBy: (item: ActivityItem) => string;
110
116
  items: ActivityItem[];
111
117
  groups: ActivityGroup[];
112
- groupBy: (item: ActivityItem) => string;
113
118
  groupOrder: string[];
114
- loading: boolean;
115
- loadingText: string;
116
- emptyText: string;
117
119
  showAvatar: boolean;
118
120
  showTime: boolean;
119
121
  showGroupTitle: boolean;
120
- className: string;
121
- style: Record<string, string | number>;
122
122
  }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
123
123
 
124
124
  export { ActivityFeed, type VueActivityFeedProps, ActivityFeed as default };
@@ -107,18 +107,18 @@ declare const ActivityFeed: vue.DefineComponent<vue.ExtractPropTypes<{
107
107
  default: undefined;
108
108
  };
109
109
  }>> & Readonly<{}>, {
110
+ loadingText: string;
111
+ emptyText: string;
112
+ className: string;
113
+ style: Record<string, string | number>;
114
+ loading: boolean;
115
+ groupBy: (item: ActivityItem) => string;
110
116
  items: ActivityItem[];
111
117
  groups: ActivityGroup[];
112
- groupBy: (item: ActivityItem) => string;
113
118
  groupOrder: string[];
114
- loading: boolean;
115
- loadingText: string;
116
- emptyText: string;
117
119
  showAvatar: boolean;
118
120
  showTime: boolean;
119
121
  showGroupTitle: boolean;
120
- className: string;
121
- style: Record<string, string | number>;
122
122
  }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
123
123
 
124
124
  export { ActivityFeed, type VueActivityFeedProps, ActivityFeed as default };
@@ -204,14 +204,14 @@ declare const Alert: vue.DefineComponent<vue.ExtractPropTypes<{
204
204
  }>> & Readonly<{
205
205
  onClose?: ((...args: any[]) => any) | undefined;
206
206
  }>, {
207
+ type: AlertType;
208
+ closeAriaLabel: string;
207
209
  size: AlertSize;
208
210
  className: string;
209
211
  style: Record<string, string | number>;
210
- type: AlertType;
211
212
  title: string;
212
- closable: boolean;
213
- closeAriaLabel: string;
214
213
  description: string;
214
+ closable: boolean;
215
215
  showIcon: boolean;
216
216
  duration: number;
217
217
  banner: boolean;
@@ -204,14 +204,14 @@ declare const Alert: vue.DefineComponent<vue.ExtractPropTypes<{
204
204
  }>> & Readonly<{
205
205
  onClose?: ((...args: any[]) => any) | undefined;
206
206
  }>, {
207
+ type: AlertType;
208
+ closeAriaLabel: string;
207
209
  size: AlertSize;
208
210
  className: string;
209
211
  style: Record<string, string | number>;
210
- type: AlertType;
211
212
  title: string;
212
- closable: boolean;
213
- closeAriaLabel: string;
214
213
  description: string;
214
+ closable: boolean;
215
215
  showIcon: boolean;
216
216
  duration: number;
217
217
  banner: boolean;
@@ -236,9 +236,9 @@ declare const Anchor: vue.DefineComponent<vue.ExtractPropTypes<{
236
236
  onChange?: ((...args: any[]) => any) | undefined;
237
237
  onClick?: ((...args: any[]) => any) | undefined;
238
238
  }>, {
239
+ direction: AnchorDirection;
239
240
  className: string;
240
241
  style: Record<string, unknown>;
241
- direction: AnchorDirection;
242
242
  offsetTop: number;
243
243
  targetOffset: number;
244
244
  bounds: number;
@@ -236,9 +236,9 @@ declare const Anchor: vue.DefineComponent<vue.ExtractPropTypes<{
236
236
  onChange?: ((...args: any[]) => any) | undefined;
237
237
  onClick?: ((...args: any[]) => any) | undefined;
238
238
  }>, {
239
+ direction: AnchorDirection;
239
240
  className: string;
240
241
  style: Record<string, unknown>;
241
- direction: AnchorDirection;
242
242
  offsetTop: number;
243
243
  targetOffset: number;
244
244
  bounds: number;
@@ -403,12 +403,12 @@ declare const AreaChart: vue.DefineComponent<vue.ExtractPropTypes<{
403
403
  "onSeries-click"?: ((...args: any[]) => any) | undefined;
404
404
  "onSeries-hover"?: ((...args: any[]) => any) | undefined;
405
405
  }>, {
406
- hoverable: boolean;
407
- strokeWidth: number;
408
406
  width: number;
409
407
  height: number;
410
408
  padding: ChartPadding;
411
409
  gradient: boolean;
410
+ hoverable: boolean;
411
+ strokeWidth: number;
412
412
  fillOpacity: number;
413
413
  selectable: boolean;
414
414
  xTicks: number;
@@ -403,12 +403,12 @@ declare const AreaChart: vue.DefineComponent<vue.ExtractPropTypes<{
403
403
  "onSeries-click"?: ((...args: any[]) => any) | undefined;
404
404
  "onSeries-hover"?: ((...args: any[]) => any) | undefined;
405
405
  }>, {
406
- hoverable: boolean;
407
- strokeWidth: number;
408
406
  width: number;
409
407
  height: number;
410
408
  padding: ChartPadding;
411
409
  gradient: boolean;
410
+ hoverable: boolean;
411
+ strokeWidth: number;
412
412
  fillOpacity: number;
413
413
  selectable: boolean;
414
414
  xTicks: number;