@expcat/tigercat-react 1.2.39 → 1.2.41

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 (43) hide show
  1. package/dist/{chunk-JDJFSO2D.mjs → chunk-2VE2CP7E.mjs} +102 -8
  2. package/dist/{chunk-LJDILPI6.js → chunk-36I5APFX.js} +2 -2
  3. package/dist/{chunk-C3NKZZQQ.js → chunk-AE2QE2C6.js} +2 -2
  4. package/dist/{chunk-ZDEOTMXP.mjs → chunk-C44WSDEY.mjs} +2 -1
  5. package/dist/{chunk-3LCISRAV.js → chunk-JIFSUUGA.js} +2 -1
  6. package/dist/{chunk-AKZY7QYA.js → chunk-JLQBG5XU.js} +23 -17
  7. package/dist/{chunk-FZX7USS4.js → chunk-LHBE3N3U.js} +124 -30
  8. package/dist/{chunk-XU4TF2YA.js → chunk-LYYL2JMP.js} +2 -2
  9. package/dist/{chunk-LJARWKJT.mjs → chunk-MV54EEKO.mjs} +1 -1
  10. package/dist/{chunk-AT2GRD6F.js → chunk-OBY4FYRZ.js} +2 -2
  11. package/dist/{chunk-TAYQDWXN.mjs → chunk-TANTMMR7.mjs} +1 -1
  12. package/dist/{chunk-WVTUGFWO.mjs → chunk-TYZNV54N.mjs} +23 -17
  13. package/dist/{chunk-TSZKBVTA.mjs → chunk-WYGO6XC7.mjs} +35 -4
  14. package/dist/{chunk-M36PT6BS.js → chunk-XUETAIF3.js} +76 -45
  15. package/dist/{chunk-PCPAMUAE.mjs → chunk-ZDS5WL22.mjs} +1 -1
  16. package/dist/{chunk-73OAHAPC.mjs → chunk-ZL44XLSB.mjs} +1 -1
  17. package/dist/components/DataTableWithToolbar.d.mts +2 -2
  18. package/dist/components/DataTableWithToolbar.d.ts +2 -2
  19. package/dist/components/DataTableWithToolbar.js +6 -3
  20. package/dist/components/DataTableWithToolbar.mjs +5 -2
  21. package/dist/components/Dropdown.js +2 -2
  22. package/dist/components/Dropdown.mjs +1 -1
  23. package/dist/components/DropdownItem.js +3 -3
  24. package/dist/components/DropdownItem.mjs +2 -2
  25. package/dist/components/DropdownMenu.js +2 -2
  26. package/dist/components/DropdownMenu.mjs +1 -1
  27. package/dist/components/Popconfirm.js +3 -3
  28. package/dist/components/Popconfirm.mjs +2 -2
  29. package/dist/components/Popover.js +3 -3
  30. package/dist/components/Popover.mjs +2 -2
  31. package/dist/components/Table.d.mts +2 -2
  32. package/dist/components/Table.d.ts +2 -2
  33. package/dist/components/Table.js +2 -2
  34. package/dist/components/Table.mjs +1 -1
  35. package/dist/components/Tooltip.js +3 -3
  36. package/dist/components/Tooltip.mjs +2 -2
  37. package/dist/index.d.mts +1 -1
  38. package/dist/index.d.ts +1 -1
  39. package/dist/index.js +11 -11
  40. package/dist/index.mjs +10 -10
  41. package/dist/{types-mtq1tZJd.d.mts → types-CHmCMNEM.d.mts} +1 -0
  42. package/dist/{types-mtq1tZJd.d.ts → types-CHmCMNEM.d.ts} +1 -0
  43. package/package.json +2 -2
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunk3LCISRAVjs = require('./chunk-3LCISRAV.js');
3
+ var _chunkJIFSUUGAjs = require('./chunk-JIFSUUGA.js');
4
4
 
5
5
 
6
6
  var _chunkSTTQ5LXXjs = require('./chunk-STTQ5LXX.js');
@@ -34,7 +34,7 @@ var Tooltip = ({
34
34
  if (!tooltipIdRef.current) tooltipIdRef.current = createTooltipId();
35
35
  const tooltipId = tooltipIdRef.current;
36
36
  const describedBy = content != null ? tooltipId : void 0;
37
- const { currentVisible, containerRef, triggerRef, floatingRef, floatingStyles, triggerHandlers } = _chunk3LCISRAVjs.usePopup.call(void 0, { open, defaultOpen, disabled, trigger, placement, offset, onOpenChange });
37
+ const { currentVisible, containerRef, triggerRef, floatingRef, floatingStyles, triggerHandlers } = _chunkJIFSUUGAjs.usePopup.call(void 0, { open, defaultOpen, disabled, trigger, placement, offset, onOpenChange });
38
38
  const containerClasses = _react.useMemo.call(void 0,
39
39
  () => _tigercatcore.classNames.call(void 0, _tigercatcore.getTooltipContainerClasses.call(void 0, ), className),
40
40
  [className]
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  usePopup
3
- } from "./chunk-ZDEOTMXP.mjs";
3
+ } from "./chunk-C44WSDEY.mjs";
4
4
  import {
5
5
  renderBodyPortal
6
6
  } from "./chunk-SEWNVIHH.mjs";
@@ -1,4 +1,5 @@
1
1
  import {
2
+ renderBodyPortal,
2
3
  useClickOutside,
3
4
  useEscapeKey,
4
5
  useFloating
@@ -22,6 +23,7 @@ import {
22
23
  getDropdownMenuClasses,
23
24
  getTransformOrigin,
24
25
  injectDropdownStyles,
26
+ FLOATING_OVERLAY_Z_INDEX,
25
27
  DROPDOWN_CHEVRON_PATH,
26
28
  DROPDOWN_ENTER_CLASS,
27
29
  handleMenuNavigation,
@@ -50,6 +52,7 @@ var Dropdown = ({
50
52
  defaultOpen = false,
51
53
  closeOnClick = true,
52
54
  showArrow = true,
55
+ portal = true,
53
56
  className,
54
57
  style,
55
58
  onOpenChange,
@@ -125,7 +128,7 @@ var Dropdown = ({
125
128
  }, []);
126
129
  useClickOutside({
127
130
  enabled: trigger === "click" && visible,
128
- refs: [containerRef],
131
+ refs: [containerRef, floatingRef],
129
132
  onOutsideClick: () => setVisible(false)
130
133
  });
131
134
  useEscapeKey({
@@ -151,12 +154,13 @@ var Dropdown = ({
151
154
  [className]
152
155
  );
153
156
  const triggerClasses = useMemo(() => getDropdownTriggerClasses(disabled), [disabled]);
154
- const menuWrapperClasses = classNames("absolute z-50", DROPDOWN_ENTER_CLASS);
157
+ const menuWrapperClasses = classNames("absolute", DROPDOWN_ENTER_CLASS);
155
158
  const menuWrapperStyles = useMemo(
156
159
  () => ({
157
160
  position: "absolute",
158
161
  left: x,
159
162
  top: y,
163
+ zIndex: FLOATING_OVERLAY_Z_INDEX,
160
164
  transformOrigin: getTransformOrigin(placement)
161
165
  }),
162
166
  [x, y, placement]
@@ -195,6 +199,22 @@ var Dropdown = ({
195
199
  children: /* @__PURE__ */ jsx("path", { d: DROPDOWN_CHEVRON_PATH })
196
200
  }
197
201
  ) : null;
202
+ const menuWrapperNode = /* @__PURE__ */ jsx(
203
+ "div",
204
+ {
205
+ ref: floatingRef,
206
+ className: menuWrapperClasses,
207
+ style: menuWrapperStyles,
208
+ hidden: !visible,
209
+ "data-tiger-dropdown-menu": "",
210
+ onMouseEnter: handleMouseEnter,
211
+ onMouseLeave: handleMouseLeave,
212
+ onKeyDown: handleMenuKeyDown,
213
+ children: menuElement && React.isValidElement(menuElement) ? React.cloneElement(menuElement, {
214
+ id: menuId
215
+ }) : menuElement
216
+ }
217
+ );
198
218
  return /* @__PURE__ */ jsx(DropdownContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxs("div", { ref: containerRef, className: containerClasses, style, ...divProps, children: [
199
219
  /* @__PURE__ */ jsxs(
200
220
  "div",
@@ -213,21 +233,7 @@ var Dropdown = ({
213
233
  ]
214
234
  }
215
235
  ),
216
- /* @__PURE__ */ jsx(
217
- "div",
218
- {
219
- ref: floatingRef,
220
- className: menuWrapperClasses,
221
- style: menuWrapperStyles,
222
- hidden: !visible,
223
- onMouseEnter: handleMouseEnter,
224
- onMouseLeave: handleMouseLeave,
225
- onKeyDown: handleMenuKeyDown,
226
- children: menuElement && React.isValidElement(menuElement) ? React.cloneElement(menuElement, {
227
- id: menuId
228
- }) : menuElement
229
- }
230
- )
236
+ portal ? renderBodyPortal(menuWrapperNode) : menuWrapperNode
231
237
  ] }) });
232
238
  };
233
239
 
@@ -115,13 +115,16 @@ import {
115
115
  createTableRowKeyCache,
116
116
  filterDataAdvanced,
117
117
  groupDataByColumn,
118
- getFixedColumnOffsets
118
+ getFixedColumnOffsets,
119
+ filterHiddenColumns
119
120
  } from "@expcat/tigercat-core";
120
121
  import { exportTableData, downloadTableExport } from "@expcat/tigercat-core";
121
122
  function useTableState(input) {
122
123
  const {
123
124
  columns,
124
125
  dataSource,
126
+ hiddenColumnKeys,
127
+ defaultHiddenColumnKeys,
125
128
  sort,
126
129
  defaultSort,
127
130
  filters,
@@ -143,6 +146,7 @@ function useTableState(input) {
143
146
  onSelectionChange,
144
147
  onSortChange,
145
148
  onFilterChange,
149
+ onHiddenColumnsChange,
146
150
  onPageChange,
147
151
  onExpandChange,
148
152
  onCellChange,
@@ -152,6 +156,7 @@ function useTableState(input) {
152
156
  } = input;
153
157
  const isSortControlled = sort !== void 0;
154
158
  const isFiltersControlled = filters !== void 0;
159
+ const isHiddenColumnsControlled = hiddenColumnKeys !== void 0;
155
160
  const paginationConfig = pagination !== false && typeof pagination === "object" ? pagination : null;
156
161
  const isCurrentPageControlled = paginationConfig?.current !== void 0;
157
162
  const isPageSizeControlled = paginationConfig?.pageSize !== void 0;
@@ -160,6 +165,9 @@ function useTableState(input) {
160
165
  const [uncontrolledSortState, setUncontrolledSortState] = useState(
161
166
  defaultSort ?? { key: null, direction: null }
162
167
  );
168
+ const [uncontrolledHiddenColumnKeys, setUncontrolledHiddenColumnKeys] = useState(
169
+ defaultHiddenColumnKeys ?? hiddenColumnKeys ?? []
170
+ );
163
171
  const [uncontrolledFilterState, setUncontrolledFilterState] = useState(
164
172
  defaultFilters ?? {}
165
173
  );
@@ -172,6 +180,7 @@ function useTableState(input) {
172
180
  const [uncontrolledSelectedRowKeys, setUncontrolledSelectedRowKeys] = useState(rowSelection?.defaultSelectedRowKeys ?? rowSelection?.selectedRowKeys ?? []);
173
181
  const [uncontrolledExpandedRowKeys, setUncontrolledExpandedRowKeys] = useState(expandable?.defaultExpandedRowKeys ?? expandable?.expandedRowKeys ?? []);
174
182
  const sortState = isSortControlled ? sort : uncontrolledSortState;
183
+ const effectiveHiddenColumnKeys = isHiddenColumnsControlled ? hiddenColumnKeys : uncontrolledHiddenColumnKeys;
175
184
  const filterState = isFiltersControlled ? filters : uncontrolledFilterState;
176
185
  const currentPage = isCurrentPageControlled ? paginationConfig.current : uncontrolledCurrentPage;
177
186
  const currentPageSize = isPageSizeControlled ? paginationConfig.pageSize : uncontrolledCurrentPageSize;
@@ -202,6 +211,11 @@ function useTableState(input) {
202
211
  setUncontrolledSelectedRowKeys(rowSelection?.selectedRowKeys ?? []);
203
212
  }
204
213
  }, [isSelectionControlled, rowSelection?.selectedRowKeys]);
214
+ useEffect(() => {
215
+ if (isHiddenColumnsControlled && hiddenColumnKeys) {
216
+ setUncontrolledHiddenColumnKeys(hiddenColumnKeys);
217
+ }
218
+ }, [isHiddenColumnsControlled, hiddenColumnKeys]);
205
219
  useEffect(() => {
206
220
  if (isExpandControlled) {
207
221
  setUncontrolledExpandedRowKeys(expandable?.expandedRowKeys ?? []);
@@ -209,14 +223,15 @@ function useTableState(input) {
209
223
  }, [isExpandControlled, expandable?.expandedRowKeys]);
210
224
  const [fixedOverrides, setFixedOverrides] = useState({});
211
225
  const displayColumns = useMemo(() => {
212
- return columns.map((column) => {
226
+ const mapped = columns.map((column) => {
213
227
  const hasOverride = Object.prototype.hasOwnProperty.call(fixedOverrides, column.key);
214
228
  return {
215
229
  ...column,
216
230
  fixed: hasOverride ? fixedOverrides[column.key] : column.fixed
217
231
  };
218
232
  });
219
- }, [columns, fixedOverrides]);
233
+ return filterHiddenColumns(mapped, effectiveHiddenColumnKeys);
234
+ }, [columns, fixedOverrides, effectiveHiddenColumnKeys]);
220
235
  const totalColumnCount = useMemo(() => {
221
236
  let count = displayColumns.length;
222
237
  if (rowSelection && rowSelection.showCheckbox !== false) count++;
@@ -234,6 +249,12 @@ function useTableState(input) {
234
249
  () => getFixedColumnOffsets(displayColumns, measuredColumnWidths),
235
250
  [displayColumns, measuredColumnWidths]
236
251
  );
252
+ function handleSetHiddenColumns(hiddenKeys) {
253
+ if (!isHiddenColumnsControlled) {
254
+ setUncontrolledHiddenColumnKeys(hiddenKeys);
255
+ }
256
+ onHiddenColumnsChange?.(hiddenKeys);
257
+ }
237
258
  function toggleColumnLock(columnKey) {
238
259
  setFixedOverrides((prev) => {
239
260
  const original = columns.find((c) => c.key === columnKey)?.fixed;
@@ -477,10 +498,12 @@ function useTableState(input) {
477
498
  sortState,
478
499
  currentPage,
479
500
  currentPageSize,
501
+ hiddenColumnKeys: effectiveHiddenColumnKeys,
480
502
  editingCell,
481
503
  editingValue,
482
504
  setEditingValue,
483
505
  toggleColumnLock,
506
+ handleSetHiddenColumns,
484
507
  handleSort,
485
508
  handleFilter,
486
509
  handlePageChange,
@@ -938,6 +961,8 @@ function Table({
938
961
  columns,
939
962
  columnLockable = false,
940
963
  dataSource = [],
964
+ hiddenColumnKeys,
965
+ defaultHiddenColumnKeys,
941
966
  sort,
942
967
  defaultSort,
943
968
  filters,
@@ -992,6 +1017,7 @@ function Table({
992
1017
  onSelectionChange,
993
1018
  onSortChange,
994
1019
  onFilterChange,
1020
+ onHiddenColumnsChange,
995
1021
  onPageChange,
996
1022
  onExpandChange,
997
1023
  onCellChange,
@@ -1021,7 +1047,9 @@ function Table({
1021
1047
  () => tableLocaleInput ? getImmediateTigerLocale(tableLocaleInput) : void 0,
1022
1048
  [tableLocaleInput]
1023
1049
  );
1024
- const [resolvedTableLocale, setResolvedTableLocale] = useState2(immediateTableLocale);
1050
+ const [resolvedTableLocale, setResolvedTableLocale] = useState2(
1051
+ immediateTableLocale
1052
+ );
1025
1053
  useEffect2(() => {
1026
1054
  let active = true;
1027
1055
  setResolvedPaginationLocale(immediatePaginationLocale);
@@ -1069,6 +1097,8 @@ function Table({
1069
1097
  const ctx = useTableState({
1070
1098
  columns,
1071
1099
  dataSource,
1100
+ hiddenColumnKeys,
1101
+ defaultHiddenColumnKeys,
1072
1102
  sort,
1073
1103
  defaultSort,
1074
1104
  filters,
@@ -1090,6 +1120,7 @@ function Table({
1090
1120
  onSelectionChange,
1091
1121
  onSortChange,
1092
1122
  onFilterChange,
1123
+ onHiddenColumnsChange,
1093
1124
  onPageChange,
1094
1125
  onExpandChange,
1095
1126
  onCellChange,