@economic/taco 2.2.5 → 2.4.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/components/Header/components/Agreement/types.d.ts +1 -1
- package/dist/components/Icon/components/PaymentPaid.d.ts +3 -0
- package/dist/components/Icon/components/PaymentUnpaid.d.ts +3 -0
- package/dist/components/Menu/Context.d.ts +2 -0
- package/dist/components/Menu/components/Item.d.ts +3 -2
- package/dist/components/Provider/Localization.d.ts +12 -0
- package/dist/components/Provider/Provider.d.ts +6 -1
- package/dist/components/Table2/types.d.ts +1 -1
- package/dist/components/Table3/Table3.d.ts +1 -1
- package/dist/components/Table3/components/toolbar/Filter/filters/components/Filter.d.ts +1 -2
- package/dist/components/Table3/components/toolbar/Filter/filters/components/FilterComparator.d.ts +4 -4
- package/dist/components/Table3/components/toolbar/Filter/filters/components/FilterValue.d.ts +1 -1
- package/dist/components/Table3/hooks/features/useColumnFreezing.d.ts +2 -1
- package/dist/components/Table3/hooks/features/useSettings.d.ts +2 -0
- package/dist/components/Table3/hooks/listeners/useSettingsStateListener.d.ts +2 -2
- package/dist/components/Table3/hooks/useTable.d.ts +2 -1
- package/dist/components/Table3/types.d.ts +24 -12
- package/dist/esm/packages/taco/src/components/Menu/Context.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Menu/Menu.js +1 -0
- package/dist/esm/packages/taco/src/components/Menu/Menu.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Menu/components/Content.js +32 -2
- package/dist/esm/packages/taco/src/components/Menu/components/Content.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Menu/components/Item.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Provider/Localization.js +13 -1
- package/dist/esm/packages/taco/src/components/Provider/Localization.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Provider/Provider.js +11 -4
- package/dist/esm/packages/taco/src/components/Provider/Provider.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/Select2.js +1 -1
- package/dist/esm/packages/taco/src/components/Select2/Select2.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Edit.js +13 -4
- package/dist/esm/packages/taco/src/components/Select2/components/Edit.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Search.js +7 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Search.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Shortcut/Shortcut.js +1 -1
- package/dist/esm/packages/taco/src/components/Shortcut/Shortcut.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/types.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/Table3.js +2 -1
- package/dist/esm/packages/taco/src/components/Table3/Table3.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/DisplayCell.js +2 -2
- package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/DisplayCell.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Menu.js +4 -19
- package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Menu.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Selection.js +8 -2
- package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Selection.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/Filters.js +4 -2
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/Filters.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/Filter.js +2 -24
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/Filter.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterComparator.js +68 -17
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterComparator.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterValue.js +31 -2
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterValue.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/Placeholder.js +1 -5
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/Placeholder.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintIFrame.js +18 -25
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintIFrame.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/hooks/useParentStylesheets.js +5 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/hooks/useParentStylesheets.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Search.js +3 -3
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Search.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Toolbar.js +6 -2
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Toolbar.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useColumnFreezing.js +20 -16
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useColumnFreezing.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useSettings.js +18 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useSettings.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useSettingsStateListener.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/useConvertChildrenToColumns.js +2 -4
- package/dist/esm/packages/taco/src/components/Table3/hooks/useConvertChildrenToColumns.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/useTable.js +18 -12
- package/dist/esm/packages/taco/src/components/Table3/hooks/useTable.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/types.js +7 -5
- package/dist/esm/packages/taco/src/components/Table3/types.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/util/filtering.js +24 -6
- package/dist/esm/packages/taco/src/components/Table3/util/filtering.js.map +1 -1
- package/dist/esm/packages/taco/src/hooks/useLocalStorage.js +34 -0
- package/dist/esm/packages/taco/src/hooks/useLocalStorage.js.map +1 -0
- package/dist/esm/packages/taco/src/hooks/useTacoSettings.js +9 -0
- package/dist/esm/packages/taco/src/hooks/useTacoSettings.js.map +1 -0
- package/dist/esm/packages/taco/src/index.js +1 -1
- package/dist/hooks/useLocalStorage.d.ts +1 -0
- package/dist/hooks/useTacoSettings.d.ts +1 -0
- package/dist/taco.cjs.development.js +367 -183
- package/dist/taco.cjs.development.js.map +1 -1
- package/dist/taco.cjs.production.min.js +1 -1
- package/dist/taco.cjs.production.min.js.map +1 -1
- package/package.json +2 -2
- package/types.json +11451 -10602
- package/dist/components/Table3/components/toolbar/Filter/filters/components/Comparator.d.ts +0 -11
@@ -4182,7 +4182,16 @@ const defaultLocalisationTexts = {
|
|
4182
4182
|
isNoneOf: 'Is none of',
|
4183
4183
|
isAllOf: 'Is all of',
|
4184
4184
|
isEmpty: 'Is empty',
|
4185
|
-
isNotEmpty: 'Is not empty'
|
4185
|
+
isNotEmpty: 'Is not empty',
|
4186
|
+
isBefore: 'Is before',
|
4187
|
+
isAfter: 'Is after',
|
4188
|
+
isOnOrBefore: 'Is on or before',
|
4189
|
+
isOnOrAfter: 'Is on or after',
|
4190
|
+
isLessThanOrEqualTo: 'Is less than or equal to',
|
4191
|
+
isGreaterThanOrEqualTo: 'Is greater than or equal to',
|
4192
|
+
hasAnyOf: 'Has any of',
|
4193
|
+
hasAllOf: 'Has all of',
|
4194
|
+
hasNoneOf: 'Has none of'
|
4186
4195
|
},
|
4187
4196
|
conditions: {
|
4188
4197
|
and: 'And',
|
@@ -4249,6 +4258,9 @@ const defaultLocalisationTexts = {
|
|
4249
4258
|
selectAllRows: 'Select all rows',
|
4250
4259
|
expandRow: 'Expand current row',
|
4251
4260
|
collapseRow: 'Collapse current row'
|
4261
|
+
},
|
4262
|
+
otherOptions: {
|
4263
|
+
tooltip: 'Other options'
|
4252
4264
|
}
|
4253
4265
|
},
|
4254
4266
|
searchInput: {
|
@@ -7228,6 +7240,35 @@ const Content$8 = /*#__PURE__*/React.forwardRef(function MenuContent(props, ref)
|
|
7228
7240
|
...otherProps
|
7229
7241
|
} = props;
|
7230
7242
|
const className = cn('border border-transparent rounded block outline-none p-1 yt-shadow wcag-white', props.className);
|
7243
|
+
// attach refs to each child
|
7244
|
+
const childrenRefs = React.useRef([]);
|
7245
|
+
const childrenWithRefs = React.Children.toArray(props.children).filter(child => !!child) // remove falsey children
|
7246
|
+
.map((child, index) => {
|
7247
|
+
childrenRefs.current[index] = /*#__PURE__*/React.createRef();
|
7248
|
+
return /*#__PURE__*/React.cloneElement(child, {
|
7249
|
+
ref: childrenRefs.current[index]
|
7250
|
+
});
|
7251
|
+
});
|
7252
|
+
// register any shortcuts attached to children
|
7253
|
+
React.useEffect(() => {
|
7254
|
+
const shortcuts = [];
|
7255
|
+
childrenWithRefs.forEach((child, index) => {
|
7256
|
+
if (child.props.shortcut) {
|
7257
|
+
shortcuts.push(createShortcutKeyDownHandler(child.props.shortcut, event => {
|
7258
|
+
event.preventDefault();
|
7259
|
+
menu === null || menu === void 0 ? void 0 : menu.open();
|
7260
|
+
setTimeout(() => {
|
7261
|
+
var _childrenRefs$current, _childrenRefs$current2;
|
7262
|
+
return (_childrenRefs$current = childrenRefs.current[index]) === null || _childrenRefs$current === void 0 ? void 0 : (_childrenRefs$current2 = _childrenRefs$current.current) === null || _childrenRefs$current2 === void 0 ? void 0 : _childrenRefs$current2.click();
|
7263
|
+
}, 1);
|
7264
|
+
}));
|
7265
|
+
}
|
7266
|
+
});
|
7267
|
+
shortcuts.forEach(handler => document.addEventListener('keydown', handler));
|
7268
|
+
return () => {
|
7269
|
+
shortcuts.forEach(handler => document.removeEventListener('keydown', handler));
|
7270
|
+
};
|
7271
|
+
}, []);
|
7231
7272
|
return /*#__PURE__*/React.createElement(DropdownMenuPrimitive.Portal, null, /*#__PURE__*/React.createElement(DropdownMenuPrimitive.Content, Object.assign({}, otherProps, {
|
7232
7273
|
align: align,
|
7233
7274
|
className: className,
|
@@ -7238,7 +7279,7 @@ const Content$8 = /*#__PURE__*/React.forwardRef(function MenuContent(props, ref)
|
|
7238
7279
|
minWidth: menu === null || menu === void 0 ? void 0 : menu.minWidth
|
7239
7280
|
},
|
7240
7281
|
ref: internalRef
|
7241
|
-
}),
|
7282
|
+
}), childrenWithRefs));
|
7242
7283
|
});
|
7243
7284
|
|
7244
7285
|
const replaceWithShortform = key => {
|
@@ -7249,7 +7290,7 @@ const replaceWithShortform = key => {
|
|
7249
7290
|
return 'Del';
|
7250
7291
|
case 'Space':
|
7251
7292
|
case ' ':
|
7252
|
-
return '
|
7293
|
+
return 'Space';
|
7253
7294
|
case 'ArrowLeft':
|
7254
7295
|
return '◄';
|
7255
7296
|
case 'ArrowRight':
|
@@ -7663,6 +7704,7 @@ const Menu$1 = /*#__PURE__*/React.forwardRef(function Menu(externalProps, ref) {
|
|
7663
7704
|
registerIndentation: () => setIndented(true),
|
7664
7705
|
minWidth,
|
7665
7706
|
setMinWidth: width => setMinWidth(width),
|
7707
|
+
open: () => setOpen(true),
|
7666
7708
|
close: () => setOpen(false)
|
7667
7709
|
}), [indented, minWidth]);
|
7668
7710
|
return /*#__PURE__*/React.createElement(MenuContext.Provider, {
|
@@ -8724,14 +8766,21 @@ const ToastProvider = ({
|
|
8724
8766
|
};
|
8725
8767
|
const useToast = () => React.useContext(ToastContext);
|
8726
8768
|
|
8769
|
+
const TacoContext = /*#__PURE__*/React.createContext({
|
8770
|
+
uniqueUserIdentifier: ''
|
8771
|
+
});
|
8727
8772
|
const Provider = props => {
|
8728
8773
|
const {
|
8729
8774
|
children,
|
8730
|
-
localization
|
8775
|
+
localization,
|
8776
|
+
settings
|
8731
8777
|
} = props;
|
8778
|
+
const context = React.useMemo(() => settings, [JSON.stringify(settings)]);
|
8732
8779
|
return /*#__PURE__*/React.createElement(LocalizationProvider, {
|
8733
8780
|
localization: localization
|
8734
|
-
}, /*#__PURE__*/React.createElement(
|
8781
|
+
}, /*#__PURE__*/React.createElement(TacoContext.Provider, {
|
8782
|
+
value: context
|
8783
|
+
}, /*#__PURE__*/React.createElement(TooltipPrimitive.Provider, null, /*#__PURE__*/React.createElement(ToastProvider, null, children))));
|
8735
8784
|
};
|
8736
8785
|
|
8737
8786
|
const SearchInput = /*#__PURE__*/React.forwardRef(function SearchInput({
|
@@ -9468,16 +9517,25 @@ const EditPopover = props => {
|
|
9468
9517
|
setColor(initialColor);
|
9469
9518
|
};
|
9470
9519
|
const preventKeyDownPropagation = event => {
|
9471
|
-
|
9520
|
+
// Need to allow 'Escape', 'Tab', 'Shift + Tab' to support default focus and close behaviour of Radix Popover.
|
9521
|
+
if (event.key === 'Escape' || event.key === 'Tab' || event.key === 'Tab' && event.shiftKey) {
|
9522
|
+
return;
|
9523
|
+
} else {
|
9472
9524
|
event.stopPropagation();
|
9473
9525
|
}
|
9474
9526
|
};
|
9475
|
-
|
9476
|
-
|
9477
|
-
|
9527
|
+
const popoverContentKeyDown = event => {
|
9528
|
+
// Need to stop propagation of 'Tab', 'Shift + Tab' keys out of Popover content,
|
9529
|
+
// to avoid 'Tab' key execution on Option component and closing the dropdown.
|
9530
|
+
if (event.key === 'Tab' || event.key === 'Tab' && event.shiftKey) {
|
9531
|
+
event.stopPropagation();
|
9532
|
+
}
|
9533
|
+
};
|
9534
|
+
return /*#__PURE__*/React__default.createElement(Popover, Object.assign({}, popoverProps), /*#__PURE__*/React__default.createElement(Popover.Content, {
|
9478
9535
|
onCloseAutoFocus: handleCloseAutoFocus,
|
9479
9536
|
onInteractOutside: handleInteractOutside,
|
9480
9537
|
onClick: event => event.stopPropagation(),
|
9538
|
+
onKeyDown: popoverContentKeyDown,
|
9481
9539
|
placement: "right",
|
9482
9540
|
tabIndex: -1,
|
9483
9541
|
className: "focus:!shadow-none"
|
@@ -9984,7 +10042,8 @@ const Search$1 = /*#__PURE__*/React__default.forwardRef(function ListboxSearch(p
|
|
9984
10042
|
searchQuery,
|
9985
10043
|
setSearchQuery,
|
9986
10044
|
setValidationError,
|
9987
|
-
validationError
|
10045
|
+
validationError,
|
10046
|
+
setOpen
|
9988
10047
|
} = useSelect2Context();
|
9989
10048
|
const handleChange = event => {
|
9990
10049
|
if (validationError) {
|
@@ -9997,6 +10056,11 @@ const Search$1 = /*#__PURE__*/React__default.forwardRef(function ListboxSearch(p
|
|
9997
10056
|
if (event.key === ' ') {
|
9998
10057
|
return;
|
9999
10058
|
}
|
10059
|
+
// Select2 should close dropdown and receive focus, when user press Tab while searching (UX requirement to support better keyboard navigation)
|
10060
|
+
if (event.key === 'Tab') {
|
10061
|
+
setOpen(false);
|
10062
|
+
return;
|
10063
|
+
}
|
10000
10064
|
if (isAriaSelectionKey(event) || event.key === 'ArrowDown' || event.key === 'ArrowUp') {
|
10001
10065
|
var _listboxRef$current;
|
10002
10066
|
event.preventDefault();
|
@@ -10287,7 +10351,7 @@ const Select2 = /*#__PURE__*/React__default.forwardRef(function Select2(props, r
|
|
10287
10351
|
var _listboxRef$current;
|
10288
10352
|
if (open) {
|
10289
10353
|
event.preventDefault();
|
10290
|
-
} else if (event.key === 'ArrowDown') {
|
10354
|
+
} else if (!event.ctrlKey && !event.metaKey && (event.key === 'ArrowDown' || /^[a-z0-9]$/i.test(event.key))) {
|
10291
10355
|
setOpen(true);
|
10292
10356
|
}
|
10293
10357
|
// the focus should always remain on the input, so we forward events on to the listbox
|
@@ -15695,20 +15759,6 @@ function isMenuAvailable(table, header) {
|
|
15695
15759
|
const tableMeta = table.options.meta;
|
15696
15760
|
return !!((_header$column$column = header.column.columnDef.meta) !== null && _header$column$column !== void 0 && _header$column$column.menu) || !!tableMeta.columnFreezing.isEnabled || !!table.options.enableHiding && !!header.column.getCanHide() || isGotoAvailable(table, header);
|
15697
15761
|
}
|
15698
|
-
function getInitialFrozenIndex(table) {
|
15699
|
-
const tableMeta = table.options.meta;
|
15700
|
-
let index = 0;
|
15701
|
-
if (tableMeta.rowDrag.isEnabled) {
|
15702
|
-
index++;
|
15703
|
-
}
|
15704
|
-
if (table.options.enableRowSelection) {
|
15705
|
-
index++;
|
15706
|
-
}
|
15707
|
-
if (table.options.enableExpanding) {
|
15708
|
-
index++;
|
15709
|
-
}
|
15710
|
-
return index;
|
15711
|
-
}
|
15712
15762
|
function Menu$3(props) {
|
15713
15763
|
const {
|
15714
15764
|
canFreeze,
|
@@ -15770,7 +15820,8 @@ function Menu$3(props) {
|
|
15770
15820
|
if (handleGoto) {
|
15771
15821
|
menuItems.push( /*#__PURE__*/React__default.createElement(Menu$1.Item, {
|
15772
15822
|
icon: "move",
|
15773
|
-
onClick: () => setPopover('goto')
|
15823
|
+
onClick: () => setPopover('goto'),
|
15824
|
+
shortcut: "g"
|
15774
15825
|
}, texts.table3.columns.menu.gotoRow, "..."));
|
15775
15826
|
}
|
15776
15827
|
if (canHide) {
|
@@ -15782,10 +15833,8 @@ function Menu$3(props) {
|
|
15782
15833
|
}, texts.table3.columns.menu.hideColumn));
|
15783
15834
|
}
|
15784
15835
|
if (canFreeze) {
|
15785
|
-
const
|
15786
|
-
|
15787
|
-
};
|
15788
|
-
const frozenIndex = index - getInitialFrozenIndex(table);
|
15836
|
+
const frozenIndex = index - tableMeta.columnFreezing.frozenInternalColumnCount;
|
15837
|
+
const handleClick = () => tableMeta.columnFreezing.setFrozenColumnIndex(frozenIndex);
|
15789
15838
|
menuItems.push( /*#__PURE__*/React__default.createElement(Menu$1.Item, {
|
15790
15839
|
icon: "column-freeze",
|
15791
15840
|
onClick: handleClick
|
@@ -16069,10 +16118,10 @@ function DisplayCell(props) {
|
|
16069
16118
|
}, [row.original, props.children, value]);
|
16070
16119
|
const memoedHighlight = React__default.useMemo(() => {
|
16071
16120
|
var _tableMeta$search$que;
|
16072
|
-
if (!tableMeta.search.isHighlightingEnabled) {
|
16121
|
+
if (!tableMeta.search.isHighlightingEnabled || !columnMeta.enableSearch) {
|
16073
16122
|
return false;
|
16074
16123
|
}
|
16075
|
-
if ((_tableMeta$search$que = tableMeta.search.query) !== null && _tableMeta$search$que !== void 0 && _tableMeta$search$que.length
|
16124
|
+
if ((_tableMeta$search$que = tableMeta.search.query) !== null && _tableMeta$search$que !== void 0 && _tableMeta$search$que.length) {
|
16076
16125
|
return isCellHighlighted(tableMeta.search.query, value, memoedProps.children);
|
16077
16126
|
}
|
16078
16127
|
return false;
|
@@ -16603,11 +16652,13 @@ var Table3FilterComparator;
|
|
16603
16652
|
Table3FilterComparator[Table3FilterComparator["IsGreaterThan"] = 4] = "IsGreaterThan";
|
16604
16653
|
Table3FilterComparator[Table3FilterComparator["IsLessThan"] = 5] = "IsLessThan";
|
16605
16654
|
Table3FilterComparator[Table3FilterComparator["IsBetween"] = 6] = "IsBetween";
|
16606
|
-
Table3FilterComparator[Table3FilterComparator["
|
16607
|
-
Table3FilterComparator[Table3FilterComparator["
|
16608
|
-
Table3FilterComparator[Table3FilterComparator["
|
16609
|
-
Table3FilterComparator[Table3FilterComparator["
|
16610
|
-
Table3FilterComparator[Table3FilterComparator["
|
16655
|
+
Table3FilterComparator[Table3FilterComparator["IsEmpty"] = 7] = "IsEmpty";
|
16656
|
+
Table3FilterComparator[Table3FilterComparator["IsNotEmpty"] = 8] = "IsNotEmpty";
|
16657
|
+
Table3FilterComparator[Table3FilterComparator["IsLessThanOrEqualTo"] = 9] = "IsLessThanOrEqualTo";
|
16658
|
+
Table3FilterComparator[Table3FilterComparator["IsGreaterThanOrEqualTo"] = 10] = "IsGreaterThanOrEqualTo";
|
16659
|
+
Table3FilterComparator[Table3FilterComparator["HasAnyOf"] = 11] = "HasAnyOf";
|
16660
|
+
Table3FilterComparator[Table3FilterComparator["HasAllOf"] = 12] = "HasAllOf";
|
16661
|
+
Table3FilterComparator[Table3FilterComparator["HasNoneOf"] = 13] = "HasNoneOf";
|
16611
16662
|
})(Table3FilterComparator || (Table3FilterComparator = {}));
|
16612
16663
|
|
16613
16664
|
const toLowerCase$1 = value => String(value !== null && value !== void 0 ? value : '').toLocaleLowerCase();
|
@@ -16669,6 +16720,24 @@ function columnFilterFn$1(value, filter) {
|
|
16669
16720
|
return !isNaN(valueAsNumber) && filter.value !== undefined && valueAsNumber < filter.value;
|
16670
16721
|
}
|
16671
16722
|
}
|
16723
|
+
case Table3FilterComparator.IsLessThanOrEqualTo:
|
16724
|
+
{
|
16725
|
+
if (dateFns.isDate(value)) {
|
16726
|
+
return dateFns.isDate(filter.value) && (dateFns.isBefore(value, filter.value) || dateFns.isEqual(value, filter.value));
|
16727
|
+
} else {
|
16728
|
+
const valueAsNumber = parseInt(value);
|
16729
|
+
return !isNaN(valueAsNumber) && filter.value !== undefined && valueAsNumber <= filter.value;
|
16730
|
+
}
|
16731
|
+
}
|
16732
|
+
case Table3FilterComparator.IsGreaterThanOrEqualTo:
|
16733
|
+
{
|
16734
|
+
if (dateFns.isDate(value)) {
|
16735
|
+
return dateFns.isDate(filter.value) && (dateFns.isAfter(value, filter.value) || dateFns.isEqual(value, filter.value));
|
16736
|
+
} else {
|
16737
|
+
const valueAsNumber = parseInt(value);
|
16738
|
+
return !isNaN(valueAsNumber) && filter.value !== undefined && valueAsNumber >= filter.value;
|
16739
|
+
}
|
16740
|
+
}
|
16672
16741
|
case Table3FilterComparator.IsBetween:
|
16673
16742
|
{
|
16674
16743
|
const [fromValue, toValue] = filter.value;
|
@@ -16692,11 +16761,11 @@ function columnFilterFn$1(value, filter) {
|
|
16692
16761
|
return true;
|
16693
16762
|
}
|
16694
16763
|
}
|
16695
|
-
case Table3FilterComparator.
|
16696
|
-
return Array.isArray(filter.value) ? filter.value.includes(
|
16697
|
-
case Table3FilterComparator.
|
16698
|
-
return Array.isArray(filter.value) ? filter.value.includes(
|
16699
|
-
case Table3FilterComparator.
|
16764
|
+
case Table3FilterComparator.HasAnyOf:
|
16765
|
+
return Array.isArray(filter.value) && Array.isArray(value) ? filter.value.some(item => value.includes(item)) : false;
|
16766
|
+
case Table3FilterComparator.HasNoneOf:
|
16767
|
+
return Array.isArray(filter.value) && Array.isArray(value) ? filter.value.every(item => value.includes(item) === false) : false;
|
16768
|
+
case Table3FilterComparator.HasAllOf:
|
16700
16769
|
return Array.isArray(filter.value) && Array.isArray(value) ? filter.value.filter(v => value.includes(v)).length === filter.value.length : false;
|
16701
16770
|
}
|
16702
16771
|
return false;
|
@@ -16744,8 +16813,8 @@ function useCurrentRowListener(table) {
|
|
16744
16813
|
}, [rows.length]);
|
16745
16814
|
}
|
16746
16815
|
|
16747
|
-
function
|
16748
|
-
let index =
|
16816
|
+
function getFrozenInternalColumnCount(options) {
|
16817
|
+
let index = 0;
|
16749
16818
|
if (options.enableRowDrag) {
|
16750
16819
|
index++;
|
16751
16820
|
}
|
@@ -16755,7 +16824,7 @@ function getDefaultFrozenIndex(options, defaultFrozenIndex = -1) {
|
|
16755
16824
|
if (options.enableRowExpansion) {
|
16756
16825
|
index++;
|
16757
16826
|
}
|
16758
|
-
return index
|
16827
|
+
return index;
|
16759
16828
|
}
|
16760
16829
|
/*
|
16761
16830
|
Because of the desired behaviour of column freezing we use custom state and just an index.
|
@@ -16763,7 +16832,7 @@ If a frozen column is, for example, hidden, then the desired behaviour is that t
|
|
16763
16832
|
If this behaviour were different we would just use the native column pinning functionality
|
16764
16833
|
*/
|
16765
16834
|
function useColumnFreezing(defaultFrozenIndex, options) {
|
16766
|
-
const [frozenColumnIndex, _setFrozenColumnIndex] = React__default.useState(
|
16835
|
+
const [frozenColumnIndex, _setFrozenColumnIndex] = React__default.useState(() => defaultFrozenIndex);
|
16767
16836
|
const [horizontallyScrolled, setHorizontallyScrolled] = React__default.useState(false);
|
16768
16837
|
const onScroll = event => {
|
16769
16838
|
if (event.currentTarget.scrollLeft > 0 && !horizontallyScrolled) {
|
@@ -16772,11 +16841,13 @@ function useColumnFreezing(defaultFrozenIndex, options) {
|
|
16772
16841
|
setHorizontallyScrolled(false);
|
16773
16842
|
}
|
16774
16843
|
};
|
16775
|
-
const
|
16776
|
-
|
16777
|
-
|
16844
|
+
const frozenInternalColumnCount = React__default.useMemo(() => getFrozenInternalColumnCount(options), []);
|
16845
|
+
// we must set a value when undefined is explicitly set, otherwise nothing is saved to settings
|
16846
|
+
// and the next time the table loads it will fall back to the initial value even though the user changed it
|
16847
|
+
const setFrozenColumnIndex = index => _setFrozenColumnIndex(index !== null && index !== void 0 ? index : -1);
|
16778
16848
|
return {
|
16779
16849
|
isEnabled: options.enableColumnFreezing,
|
16850
|
+
frozenInternalColumnCount,
|
16780
16851
|
frozenColumnIndex,
|
16781
16852
|
setFrozenColumnIndex,
|
16782
16853
|
horizontallyScrolled,
|
@@ -16784,6 +16855,7 @@ function useColumnFreezing(defaultFrozenIndex, options) {
|
|
16784
16855
|
};
|
16785
16856
|
}
|
16786
16857
|
function useColumnFreezingStyle(tableId, table) {
|
16858
|
+
var _tableMeta$columnFree;
|
16787
16859
|
const {
|
16788
16860
|
columnOrder,
|
16789
16861
|
columnSizing,
|
@@ -16791,9 +16863,10 @@ function useColumnFreezingStyle(tableId, table) {
|
|
16791
16863
|
columnVisibility
|
16792
16864
|
} = table.getState();
|
16793
16865
|
const tableMeta = table.options.meta;
|
16866
|
+
const frozenColumnIndex = ((_tableMeta$columnFree = tableMeta.columnFreezing.frozenColumnIndex) !== null && _tableMeta$columnFree !== void 0 ? _tableMeta$columnFree : -1) + tableMeta.columnFreezing.frozenInternalColumnCount;
|
16794
16867
|
const style = React__default.useMemo(() => {
|
16795
|
-
if (tableMeta.columnFreezing.isEnabled &&
|
16796
|
-
const visibleFrozenColumns = table.getVisibleLeafColumns().slice(0,
|
16868
|
+
if (tableMeta.columnFreezing.isEnabled && frozenColumnIndex !== undefined) {
|
16869
|
+
const visibleFrozenColumns = table.getVisibleLeafColumns().slice(0, frozenColumnIndex + 1).map(column => column.id);
|
16797
16870
|
// if all frozen columns haven't had their size set yet, then abort
|
16798
16871
|
if (visibleFrozenColumns.every(id => columnSizing[id] === undefined)) {
|
16799
16872
|
return undefined;
|
@@ -16803,26 +16876,26 @@ function useColumnFreezingStyle(tableId, table) {
|
|
16803
16876
|
offsets[columnId] = offset;
|
16804
16877
|
return offset + columnSizing[columnId];
|
16805
16878
|
}, 0);
|
16806
|
-
const styles = [Object.values(offsets).map((offset, index) => `#${tableId} [role="row"] > :nth-child(${index + 1}) { left: ${offset}px }`).join('\n'), `#${tableId} [role="row"] > :not(:nth-child(n+${
|
16879
|
+
const styles = [Object.values(offsets).map((offset, index) => `#${tableId} [role="row"] > :nth-child(${index + 1}) { left: ${offset}px }`).join('\n'), `#${tableId} [role="row"] > :not(:nth-child(n+${frozenColumnIndex + 2})) {
|
16807
16880
|
position: sticky;
|
16808
|
-
z-index: 20;
|
16809
|
-
}`, `#${tableId}[data-horizontally-scrolled="true"] [role="row"] > :nth-child(${
|
16881
|
+
z-index: 20;
|
16882
|
+
}`, `#${tableId}[data-horizontally-scrolled="true"] [role="row"] > :nth-child(${frozenColumnIndex + 1}) {
|
16810
16883
|
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), 6px 0px 6px rgb(0 0 0/8%), 1px 0px 0px #DDDDDD;
|
16811
16884
|
}`];
|
16812
|
-
const columnId = visibleFrozenColumns[
|
16885
|
+
const columnId = visibleFrozenColumns[frozenColumnIndex];
|
16813
16886
|
// frozenColumnIndex could not be in the visible frozen column so it is important to check if columnId
|
16814
16887
|
// exists before checking if it is internal.
|
16815
16888
|
//
|
16816
16889
|
// only add a border to the edge column if it isn't an internal column
|
16817
16890
|
if (columnId && !isInternalColumn$1(columnId)) {
|
16818
|
-
styles.push(`#${tableId}[data-horizontally-scrolled="false"] [role="row"] > :nth-child(${
|
16891
|
+
styles.push(`#${tableId}[data-horizontally-scrolled="false"] [role="row"] > :nth-child(${frozenColumnIndex + 1}) {
|
16819
16892
|
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), 1px 0px 0px #DDDDDD;
|
16820
16893
|
}`);
|
16821
16894
|
}
|
16822
16895
|
return styles.join('\n');
|
16823
16896
|
}
|
16824
16897
|
return undefined;
|
16825
|
-
}, [columnOrder, columnSizing, columnSizingInfo, columnVisibility, tableMeta.columnFreezing.isEnabled,
|
16898
|
+
}, [columnOrder, columnSizing, columnSizingInfo, columnVisibility, tableMeta.columnFreezing.isEnabled, frozenColumnIndex]);
|
16826
16899
|
return style;
|
16827
16900
|
}
|
16828
16901
|
|
@@ -17662,7 +17735,12 @@ const Cell$4 = /*#__PURE__*/React__default.memo(function MemoedCell(context) {
|
|
17662
17735
|
}
|
17663
17736
|
tableMeta.rowSelection.lastSelectedRowIndex.current = rowIndex;
|
17664
17737
|
};
|
17665
|
-
return /*#__PURE__*/React__default.createElement(DisplayCell, Object.assign({}, context), /*#__PURE__*/React__default.createElement(
|
17738
|
+
return /*#__PURE__*/React__default.createElement(DisplayCell, Object.assign({}, context), /*#__PURE__*/React__default.createElement(Tooltip, {
|
17739
|
+
title: /*#__PURE__*/React__default.createElement(React__default.Fragment, null, title, /*#__PURE__*/React__default.createElement(Shortcut, {
|
17740
|
+
className: "ml-2",
|
17741
|
+
keys: "Space"
|
17742
|
+
}))
|
17743
|
+
}, /*#__PURE__*/React__default.createElement(Checkbox, {
|
17666
17744
|
"aria-label": title,
|
17667
17745
|
className: "!mt-0",
|
17668
17746
|
checked: isSelected,
|
@@ -17670,7 +17748,7 @@ const Cell$4 = /*#__PURE__*/React__default.memo(function MemoedCell(context) {
|
|
17670
17748
|
// this is necessary to remove console spam from eslint
|
17671
17749
|
onChange: () => false,
|
17672
17750
|
tabIndex: isCurrentRow ? 0 : -1
|
17673
|
-
}));
|
17751
|
+
})));
|
17674
17752
|
} else {
|
17675
17753
|
const className = cn('!mt-0', getRadioClassnames());
|
17676
17754
|
const handleClick = event => {
|
@@ -17897,7 +17975,7 @@ function getSortingFn$1(dataType, customFnOrBuiltIn) {
|
|
17897
17975
|
return customFnOrBuiltIn;
|
17898
17976
|
}
|
17899
17977
|
// some times we alias based on the type
|
17900
|
-
if (dataType && dataType !== 'boolean') {
|
17978
|
+
if (dataType && dataType !== 'boolean' && dataType !== 'number') {
|
17901
17979
|
return dataType;
|
17902
17980
|
}
|
17903
17981
|
// otherwise fall back to auto
|
@@ -17952,11 +18030,9 @@ function useConvertChildrenToColumns(props, options, editing) {
|
|
17952
18030
|
control: child.props.control,
|
17953
18031
|
dataType: child.props.dataType,
|
17954
18032
|
enableOrdering: (_child$props$enableOr = child.props.enableOrdering) !== null && _child$props$enableOr !== void 0 ? _child$props$enableOr : true,
|
17955
|
-
// react-table global filtering only samples from row 0 in a dataset for filtering and this
|
17956
|
-
// leads to some columns being disabled if, e.g., a column in row 0 has an undefined value
|
17957
|
-
// so we do not use the native enableGlobalFilter property and instead use our own enableSearch
|
17958
18033
|
enableSearch: (_child$props$enableSe = child.props.enableSearch) !== null && _child$props$enableSe !== void 0 ? _child$props$enableSe : true,
|
17959
18034
|
enableTruncate: (_child$props$enableTr = child.props.enableTruncate) !== null && _child$props$enableTr !== void 0 ? _child$props$enableTr : false,
|
18035
|
+
filters: child.props.filters,
|
17960
18036
|
footer: child.props.footer,
|
17961
18037
|
header: child.props.header,
|
17962
18038
|
headerClassName: child.props.headerClassName,
|
@@ -18114,8 +18190,54 @@ function useRowActions$1(actionsForRow, actionsForRowLength = ACTIONS_ON_ROW_LEN
|
|
18114
18190
|
};
|
18115
18191
|
}
|
18116
18192
|
|
18193
|
+
const useLocalStorage = (key, initialValue) => {
|
18194
|
+
const [state, setState] = React__default.useState(() => {
|
18195
|
+
try {
|
18196
|
+
const localStorageValue = localStorage.getItem(key);
|
18197
|
+
if (typeof localStorageValue !== 'string') {
|
18198
|
+
localStorage.setItem(key, JSON.stringify(initialValue));
|
18199
|
+
return initialValue;
|
18200
|
+
} else {
|
18201
|
+
return JSON.parse(localStorageValue || 'null');
|
18202
|
+
}
|
18203
|
+
} catch {
|
18204
|
+
// If user is in private mode or has storage restriction
|
18205
|
+
// localStorage can throw. JSON.parse and JSON.stringify
|
18206
|
+
// can throw, too.
|
18207
|
+
return initialValue;
|
18208
|
+
}
|
18209
|
+
});
|
18210
|
+
React__default.useEffect(() => {
|
18211
|
+
try {
|
18212
|
+
const serializedState = JSON.stringify(state);
|
18213
|
+
localStorage.setItem(key, serializedState);
|
18214
|
+
} catch {
|
18215
|
+
// If user is in private mode or has storage restriction
|
18216
|
+
// localStorage can throw. Also JSON.stringify can throw.
|
18217
|
+
}
|
18218
|
+
}, [key, state]);
|
18219
|
+
const clear = () => localStorage.removeItem(key);
|
18220
|
+
return [state, setState, clear];
|
18221
|
+
};
|
18222
|
+
|
18223
|
+
function useTacoSettings() {
|
18224
|
+
return React__default.useContext(TacoContext);
|
18225
|
+
}
|
18226
|
+
|
18227
|
+
function useSettings(id, defaultSettings = {}, onChangeSettings) {
|
18228
|
+
const tacoSettings = useTacoSettings();
|
18229
|
+
const uniqueId = `taco.${tacoSettings.uniqueUserIdentifier}.table3.${id}.settings`;
|
18230
|
+
const [persistedSettings, setPersistedSettings] = useLocalStorage(uniqueId, defaultSettings);
|
18231
|
+
return React__default.useMemo(() => {
|
18232
|
+
if (onChangeSettings) {
|
18233
|
+
return [defaultSettings, onChangeSettings];
|
18234
|
+
}
|
18235
|
+
return [persistedSettings, setPersistedSettings];
|
18236
|
+
}, []);
|
18237
|
+
}
|
18238
|
+
|
18117
18239
|
function useTable$2(props) {
|
18118
|
-
var _ref,
|
18240
|
+
var _ref, _defaultSettings$colu, _defaultSettings$rowH, _props$length;
|
18119
18241
|
// options
|
18120
18242
|
const options = useTablePreset(props);
|
18121
18243
|
const tableOptions = {
|
@@ -18153,6 +18275,10 @@ function useTable$2(props) {
|
|
18153
18275
|
return false;
|
18154
18276
|
};
|
18155
18277
|
tableOptions.getFilteredRowModel = reactTable$1.getFilteredRowModel();
|
18278
|
+
tableOptions.getColumnCanGlobalFilter = column => {
|
18279
|
+
var _column$columnDef$met;
|
18280
|
+
return (_column$columnDef$met = column.columnDef.meta.enableSearch) !== null && _column$columnDef$met !== void 0 ? _column$columnDef$met : true;
|
18281
|
+
};
|
18156
18282
|
}
|
18157
18283
|
// sorting
|
18158
18284
|
if (options.enableSorting) {
|
@@ -18163,24 +18289,25 @@ function useTable$2(props) {
|
|
18163
18289
|
tableOptions.getSortedRowModel = reactTable$1.getSortedRowModel();
|
18164
18290
|
}
|
18165
18291
|
}
|
18292
|
+
const [defaultSettings, setSettings] = useSettings(props.id, props.defaultSettings, props.onChangeSettings);
|
18166
18293
|
// custom features
|
18167
18294
|
const columnFreezing = useColumnFreezing( // temporarily see if deprecated frozenColumnCount is there
|
18168
|
-
(_ref = (
|
18295
|
+
(_ref = (_defaultSettings$colu = defaultSettings.columnFreezingIndex) !== null && _defaultSettings$colu !== void 0 ? _defaultSettings$colu : defaultSettings === null || defaultSettings === void 0 ? void 0 : defaultSettings.frozenColumnCount) !== null && _ref !== void 0 ? _ref : props.defaultColumnFreezingIndex, options);
|
18169
18296
|
const columnOrdering = useColumnOrdering(options);
|
18170
18297
|
const currentRow = useCurrentRow(props.defaultCurrentRowIndex);
|
18171
18298
|
const editing = useEditing(options.enableEditing, props.onSave);
|
18172
|
-
const fontSize = useFontSize(options.enableFontSize,
|
18299
|
+
const fontSize = useFontSize(options.enableFontSize, defaultSettings.fontSize);
|
18173
18300
|
const hoverState = usePauseHoverState();
|
18174
|
-
const printing = usePrinting(options.enablePrinting, props.loadAll,
|
18301
|
+
const printing = usePrinting(options.enablePrinting, props.loadAll, defaultSettings.showWarningWhenPrintingLargeDataset);
|
18175
18302
|
const rowActions = useRowActions$1(props.actionsForRow, props.actionsForRowLength);
|
18176
18303
|
const rowClick = useRowClick(props.onRowClick);
|
18177
18304
|
const rowDrag = useRowDrag(options.enableRowDrag);
|
18178
18305
|
const rowDrop = useRowDrop(options.enableRowDrop, props.onRowDrop);
|
18179
18306
|
const rowGoto = useRowGoto(options.enableRowGoto, props.onRowGoto);
|
18180
18307
|
const rowHeight = useRowHeight(options.enableRowHeight, // temporarily see if deprecated rowDensity is there
|
18181
|
-
(
|
18308
|
+
(_defaultSettings$rowH = defaultSettings.rowHeight) !== null && _defaultSettings$rowH !== void 0 ? _defaultSettings$rowH : defaultSettings === null || defaultSettings === void 0 ? void 0 : defaultSettings.rowDensity);
|
18182
18309
|
const rowSelection = useRowSelection();
|
18183
|
-
const search = useSearch(options.enableSearch,
|
18310
|
+
const search = useSearch(options.enableSearch, defaultSettings.excludeUnmatchedRecordsInSearch, props.loadAll);
|
18184
18311
|
// columns
|
18185
18312
|
const {
|
18186
18313
|
columns,
|
@@ -18190,13 +18317,13 @@ function useTable$2(props) {
|
|
18190
18317
|
} = useConvertChildrenToColumns(props, options, editing);
|
18191
18318
|
// built-in features
|
18192
18319
|
const initialState = React__default.useMemo(() => {
|
18193
|
-
var
|
18320
|
+
var _defaultSettings$colu2, _defaultSettings$colu3;
|
18194
18321
|
const sanitizeSortedColumns = column => columns.find(definedColumn => definedColumn.id === column.id);
|
18195
18322
|
return {
|
18196
|
-
columnOrder: ensureOrdering$1(columns,
|
18197
|
-
columnSizing: (
|
18198
|
-
columnVisibility: (
|
18199
|
-
sorting:
|
18323
|
+
columnOrder: ensureOrdering$1(columns, defaultSettings.columnOrder),
|
18324
|
+
columnSizing: (_defaultSettings$colu2 = defaultSettings.columnSizing) !== null && _defaultSettings$colu2 !== void 0 ? _defaultSettings$colu2 : defaultColumnSizing,
|
18325
|
+
columnVisibility: (_defaultSettings$colu3 = defaultSettings.columnVisibility) !== null && _defaultSettings$colu3 !== void 0 ? _defaultSettings$colu3 : defaultColumnVisibility,
|
18326
|
+
sorting: defaultSettings.sorting ? defaultSettings.sorting.filter(sanitizeSortedColumns) : defaultSorting
|
18200
18327
|
};
|
18201
18328
|
}, []);
|
18202
18329
|
const table = reactTable$1.useReactTable({
|
@@ -18230,7 +18357,7 @@ function useTable$2(props) {
|
|
18230
18357
|
useEditingStateListener(table);
|
18231
18358
|
useFilteringStateListener(table, props.onFilter);
|
18232
18359
|
useRowSelectionListener$1(table, props.onRowSelect);
|
18233
|
-
useSettingsStateListener$1(table,
|
18360
|
+
useSettingsStateListener$1(table, setSettings);
|
18234
18361
|
useShortcutsListener(table, props.shortcuts);
|
18235
18362
|
useServerLoadingListener(table, props.loadPage);
|
18236
18363
|
useSortingStateListener(table, props.onSort);
|
@@ -18808,12 +18935,12 @@ function resetHighlightedColumnIndexes(enabled, value, table) {
|
|
18808
18935
|
table.getRowModel().rows.forEach((row, rowIndex) => {
|
18809
18936
|
columns.forEach((column, columnIndex) => {
|
18810
18937
|
try {
|
18811
|
-
var _column$columnDef$met,
|
18812
|
-
if (
|
18938
|
+
var _format, _column$columnDef$met, _format2;
|
18939
|
+
if (row.original && globalFilterFn$1(
|
18813
18940
|
// if it's a date, format it first
|
18814
18941
|
dateFns.isDate(row.original[column.id]) ? (_format = format(row.original[column.id])) !== null && _format !== void 0 ? _format : '' :
|
18815
18942
|
// if its marked as a date but isn't a date, try to format it
|
18816
|
-
column.columnDef.meta.dataType === 'datetime' ? (_format2 = format(parseFromISOString(row.original[column.id]))) !== null && _format2 !== void 0 ? _format2 : '' :
|
18943
|
+
((_column$columnDef$met = column.columnDef.meta) === null || _column$columnDef$met === void 0 ? void 0 : _column$columnDef$met.dataType) === 'datetime' ? (_format2 = format(parseFromISOString(row.original[column.id]))) !== null && _format2 !== void 0 ? _format2 : '' :
|
18817
18944
|
// otherwise just string compare
|
18818
18945
|
String(row.original[column.id]), value)) {
|
18819
18946
|
indexes.push([rowIndex, columnIndex]);
|
@@ -18865,29 +18992,74 @@ function FilterColumn(props) {
|
|
18865
18992
|
|
18866
18993
|
function FilterComparator(props) {
|
18867
18994
|
const {
|
18995
|
+
column,
|
18868
18996
|
onChange: handleChange,
|
18869
18997
|
value,
|
18870
|
-
validComparators,
|
18871
18998
|
...attributes
|
18872
18999
|
} = props;
|
18873
19000
|
const {
|
18874
19001
|
texts
|
18875
19002
|
} = useLocalization();
|
19003
|
+
const validComparators = guessComparatorsBasedOnControl$1(column);
|
18876
19004
|
React__default.useEffect(() => {
|
18877
|
-
if (value === undefined) {
|
19005
|
+
if (value === undefined || !validComparators.includes(value)) {
|
18878
19006
|
handleChange === null || handleChange === void 0 ? void 0 : handleChange(validComparators[0]);
|
18879
19007
|
}
|
18880
|
-
}, []);
|
19008
|
+
}, [validComparators]);
|
18881
19009
|
return /*#__PURE__*/React__default.createElement(Select2, Object.assign({}, attributes, {
|
18882
19010
|
className: "!w-32 flex-shrink-0",
|
19011
|
+
disabled: !column,
|
18883
19012
|
onChange: handleChange,
|
18884
19013
|
value: value
|
18885
|
-
}), validComparators.map(
|
18886
|
-
key:
|
18887
|
-
value:
|
18888
|
-
}, getComparatorText$1(
|
19014
|
+
}), validComparators.map(comparator => /*#__PURE__*/React__default.createElement(Select2.Option, {
|
19015
|
+
key: comparator,
|
19016
|
+
value: comparator
|
19017
|
+
}, getComparatorText$1(comparator, texts, column))));
|
18889
19018
|
}
|
18890
|
-
|
19019
|
+
function guessComparatorsBasedOnControl$1(column) {
|
19020
|
+
var _column$columnDef$met;
|
19021
|
+
const columnMeta = (_column$columnDef$met = column === null || column === void 0 ? void 0 : column.columnDef.meta) !== null && _column$columnDef$met !== void 0 ? _column$columnDef$met : {};
|
19022
|
+
if (Array.isArray(columnMeta.filters)) {
|
19023
|
+
return columnMeta.filters;
|
19024
|
+
}
|
19025
|
+
if (typeof columnMeta.control === 'function') {
|
19026
|
+
const renderedControl = columnMeta.control({
|
19027
|
+
onBlur: () => undefined,
|
19028
|
+
onFocus: () => undefined,
|
19029
|
+
setValue: () => undefined,
|
19030
|
+
value: undefined,
|
19031
|
+
disabled: false,
|
19032
|
+
readOnly: false,
|
19033
|
+
ref: undefined
|
19034
|
+
});
|
19035
|
+
if ( /*#__PURE__*/React__default.isValidElement(renderedControl)) {
|
19036
|
+
const {
|
19037
|
+
props,
|
19038
|
+
type
|
19039
|
+
} = renderedControl;
|
19040
|
+
if (type.displayName === 'Select2') {
|
19041
|
+
if (props.multiple) {
|
19042
|
+
return [Table3FilterComparator.HasAnyOf, Table3FilterComparator.HasAllOf, Table3FilterComparator.IsEqualTo, Table3FilterComparator.HasNoneOf, Table3FilterComparator.IsEmpty, Table3FilterComparator.IsNotEmpty];
|
19043
|
+
}
|
19044
|
+
return [Table3FilterComparator.IsEqualTo, Table3FilterComparator.IsNotEqualTo, Table3FilterComparator.IsEmpty, Table3FilterComparator.IsNotEmpty];
|
19045
|
+
}
|
19046
|
+
}
|
19047
|
+
}
|
19048
|
+
// @ts-expect-error -- we ignore it because it conflicts with Table2 also overridding ColumnMeta
|
19049
|
+
if (columnMeta.dataType === 'number') {
|
19050
|
+
return [Table3FilterComparator.IsEqualTo, Table3FilterComparator.IsNotEqualTo, Table3FilterComparator.IsGreaterThan, Table3FilterComparator.IsLessThan, Table3FilterComparator.IsBetween, Table3FilterComparator.IsEmpty, Table3FilterComparator.IsNotEmpty];
|
19051
|
+
}
|
19052
|
+
if (columnMeta.control === 'datepicker' || columnMeta.dataType === 'datetime') {
|
19053
|
+
return [Table3FilterComparator.IsEqualTo, Table3FilterComparator.IsNotEqualTo, Table3FilterComparator.IsBetween, Table3FilterComparator.IsLessThan, Table3FilterComparator.IsGreaterThan, Table3FilterComparator.IsEmpty, Table3FilterComparator.IsNotEmpty, Table3FilterComparator.IsLessThanOrEqualTo, Table3FilterComparator.IsGreaterThanOrEqualTo];
|
19054
|
+
}
|
19055
|
+
if (columnMeta.control === 'switch') {
|
19056
|
+
return [Table3FilterComparator.IsEqualTo];
|
19057
|
+
}
|
19058
|
+
return [Table3FilterComparator.Contains, Table3FilterComparator.DoesNotContain, Table3FilterComparator.IsEqualTo, Table3FilterComparator.IsNotEqualTo, Table3FilterComparator.IsEmpty, Table3FilterComparator.IsNotEmpty];
|
19059
|
+
}
|
19060
|
+
function getComparatorText$1(comparator, texts, column) {
|
19061
|
+
var _column$columnDef, _column$columnDef$met2;
|
19062
|
+
const isDate = (column === null || column === void 0 ? void 0 : (_column$columnDef = column.columnDef) === null || _column$columnDef === void 0 ? void 0 : (_column$columnDef$met2 = _column$columnDef.meta) === null || _column$columnDef$met2 === void 0 ? void 0 : _column$columnDef$met2.control) === 'datepicker';
|
18891
19063
|
switch (comparator) {
|
18892
19064
|
case Table3FilterComparator.Contains:
|
18893
19065
|
return texts.table3.filters.comparators.contains;
|
@@ -18898,23 +19070,61 @@ const getComparatorText$1 = (comparator, texts) => {
|
|
18898
19070
|
case Table3FilterComparator.IsNotEqualTo:
|
18899
19071
|
return texts.table3.filters.comparators.isNotEqualTo;
|
18900
19072
|
case Table3FilterComparator.IsGreaterThan:
|
18901
|
-
return texts.table3.filters.comparators.isGreaterThan;
|
19073
|
+
return isDate ? texts.table3.filters.comparators.isAfter : texts.table3.filters.comparators.isGreaterThan;
|
18902
19074
|
case Table3FilterComparator.IsLessThan:
|
18903
|
-
return texts.table3.filters.comparators.isLessThan;
|
19075
|
+
return isDate ? texts.table3.filters.comparators.isBefore : texts.table3.filters.comparators.isLessThan;
|
18904
19076
|
case Table3FilterComparator.IsBetween:
|
18905
19077
|
return texts.table3.filters.comparators.isBetween;
|
18906
|
-
case Table3FilterComparator.IsOneOf:
|
18907
|
-
return texts.table3.filters.comparators.isOneOf;
|
18908
|
-
case Table3FilterComparator.IsNoneOf:
|
18909
|
-
return texts.table3.filters.comparators.isNoneOf;
|
18910
|
-
case Table3FilterComparator.IsAllOf:
|
18911
|
-
return texts.table3.filters.comparators.isAllOf;
|
18912
19078
|
case Table3FilterComparator.IsEmpty:
|
18913
19079
|
return texts.table3.filters.comparators.isEmpty;
|
18914
19080
|
case Table3FilterComparator.IsNotEmpty:
|
18915
19081
|
return texts.table3.filters.comparators.isNotEmpty;
|
19082
|
+
case Table3FilterComparator.IsLessThanOrEqualTo:
|
19083
|
+
return isDate ? texts.table3.filters.comparators.isOnOrBefore : texts.table3.filters.comparators.isLessThanOrEqualTo;
|
19084
|
+
case Table3FilterComparator.IsGreaterThanOrEqualTo:
|
19085
|
+
return isDate ? texts.table3.filters.comparators.isOnOrAfter : texts.table3.filters.comparators.isGreaterThanOrEqualTo;
|
19086
|
+
case Table3FilterComparator.HasAnyOf:
|
19087
|
+
return texts.table3.filters.comparators.hasAnyOf;
|
19088
|
+
case Table3FilterComparator.HasAllOf:
|
19089
|
+
return texts.table3.filters.comparators.hasAllOf;
|
19090
|
+
case Table3FilterComparator.HasNoneOf:
|
19091
|
+
return texts.table3.filters.comparators.hasNoneOf;
|
19092
|
+
default:
|
19093
|
+
return '';
|
18916
19094
|
}
|
18917
|
-
}
|
19095
|
+
}
|
19096
|
+
|
19097
|
+
function Placeholder(props) {
|
19098
|
+
const {
|
19099
|
+
allColumns,
|
19100
|
+
filters,
|
19101
|
+
onCreate: handleCreate,
|
19102
|
+
onRemove: handleRemove,
|
19103
|
+
position
|
19104
|
+
} = props;
|
19105
|
+
const {
|
19106
|
+
texts
|
19107
|
+
} = useLocalization();
|
19108
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
19109
|
+
className: "flex gap-2"
|
19110
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
19111
|
+
className: "flex w-14 flex-shrink-0 items-center justify-end pr-2 text-right"
|
19112
|
+
}, position > 0 ? texts.table3.filters.conditions.and : texts.table3.filters.conditions.where), /*#__PURE__*/React__default.createElement(FilterColumn, {
|
19113
|
+
allColumns: allColumns,
|
19114
|
+
filters: filters,
|
19115
|
+
onChange: handleCreate,
|
19116
|
+
value: null
|
19117
|
+
}), /*#__PURE__*/React__default.createElement(FilterComparator, null), /*#__PURE__*/React__default.createElement(Input, {
|
19118
|
+
"aria-label": texts.table3.filters.emptyFilter.value,
|
19119
|
+
className: "flex-grow",
|
19120
|
+
disabled: true,
|
19121
|
+
value: texts.table3.filters.emptyFilter.value
|
19122
|
+
}), handleRemove ? /*#__PURE__*/React__default.createElement(IconButton, {
|
19123
|
+
appearance: "discrete",
|
19124
|
+
icon: "close",
|
19125
|
+
onClick: handleRemove
|
19126
|
+
}) : null);
|
19127
|
+
}
|
18918
19128
|
|
18919
19129
|
function FilterValue(props) {
|
18920
19130
|
const {
|
@@ -18923,6 +19133,9 @@ function FilterValue(props) {
|
|
18923
19133
|
onChange: handleChange,
|
18924
19134
|
value
|
18925
19135
|
} = props;
|
19136
|
+
const {
|
19137
|
+
texts
|
19138
|
+
} = useLocalization();
|
18926
19139
|
if (comparator === Table3FilterComparator.IsEmpty || comparator === Table3FilterComparator.IsNotEmpty) {
|
18927
19140
|
return null;
|
18928
19141
|
}
|
@@ -18930,6 +19143,14 @@ function FilterValue(props) {
|
|
18930
19143
|
var _column$columnDef$met;
|
18931
19144
|
const fromValue = Array.isArray(value) ? value[0] : undefined;
|
18932
19145
|
const toValue = Array.isArray(value) ? value[1] : undefined;
|
19146
|
+
if (column === undefined) {
|
19147
|
+
return /*#__PURE__*/React__default.createElement(Input, {
|
19148
|
+
"aria-label": texts.table3.filters.emptyFilter.value,
|
19149
|
+
className: "flex-grow",
|
19150
|
+
disabled: true,
|
19151
|
+
value: texts.table3.filters.emptyFilter.value
|
19152
|
+
});
|
19153
|
+
}
|
18933
19154
|
if (((_column$columnDef$met = column.columnDef.meta) === null || _column$columnDef$met === void 0 ? void 0 : _column$columnDef$met.dataType) === 'datetime') {
|
18934
19155
|
return /*#__PURE__*/React__default.createElement("div", {
|
18935
19156
|
className: "flex flex-grow items-center gap-2"
|
@@ -18958,6 +19179,7 @@ function FilterValue(props) {
|
|
18958
19179
|
}));
|
18959
19180
|
}
|
18960
19181
|
return /*#__PURE__*/React__default.createElement(Control$1, {
|
19182
|
+
comparator: comparator,
|
18961
19183
|
column: column,
|
18962
19184
|
onChange: handleChange,
|
18963
19185
|
value: value
|
@@ -18967,12 +19189,18 @@ function Control$1(props) {
|
|
18967
19189
|
var _column$columnDef$met2, _column$columnDef$met3;
|
18968
19190
|
const {
|
18969
19191
|
column,
|
19192
|
+
comparator,
|
18970
19193
|
onChange,
|
18971
19194
|
value,
|
18972
19195
|
...attributes
|
18973
19196
|
} = props;
|
18974
19197
|
const controlRenderer = (_column$columnDef$met2 = column.columnDef.meta) === null || _column$columnDef$met2 === void 0 ? void 0 : _column$columnDef$met2.control;
|
18975
19198
|
const dataType = (_column$columnDef$met3 = column.columnDef.meta) === null || _column$columnDef$met3 === void 0 ? void 0 : _column$columnDef$met3.dataType;
|
19199
|
+
React.useEffect(() => {
|
19200
|
+
if (controlRenderer === 'switch') {
|
19201
|
+
onChange(false);
|
19202
|
+
}
|
19203
|
+
}, []);
|
18976
19204
|
if (typeof controlRenderer === 'function') {
|
18977
19205
|
return controlRenderer({
|
18978
19206
|
...attributes,
|
@@ -18984,11 +19212,19 @@ function Control$1(props) {
|
|
18984
19212
|
onChange: event => onChange(event.detail),
|
18985
19213
|
value: value
|
18986
19214
|
}));
|
18987
|
-
} else if (controlRenderer === 'switch'
|
19215
|
+
} else if (controlRenderer === 'switch') {
|
18988
19216
|
return /*#__PURE__*/React__default.createElement(Switch, Object.assign({}, attributes, {
|
19217
|
+
className: "m-1.5",
|
18989
19218
|
checked: Boolean(value),
|
18990
19219
|
onChange: onChange
|
18991
19220
|
}));
|
19221
|
+
} else if ((controlRenderer === 'input' || controlRenderer === undefined) && dataType === 'number') {
|
19222
|
+
return /*#__PURE__*/React__default.createElement(Input, Object.assign({}, attributes, {
|
19223
|
+
className: cn(getInputAppearanceClassnames(), 'flex-grow'),
|
19224
|
+
type: "number",
|
19225
|
+
onChange: event => onChange(event.target.valueAsNumber),
|
19226
|
+
value: String(value !== null && value !== void 0 ? value : '')
|
19227
|
+
}));
|
18992
19228
|
}
|
18993
19229
|
return /*#__PURE__*/React__default.createElement(Input, Object.assign({}, attributes, {
|
18994
19230
|
className: "flex-grow",
|
@@ -19056,8 +19292,8 @@ function Filter$1(props) {
|
|
19056
19292
|
onChange: handleChangeColumn,
|
19057
19293
|
value: id
|
19058
19294
|
}), /*#__PURE__*/React__default.createElement(FilterComparator, {
|
19295
|
+
column: column,
|
19059
19296
|
onChange: handleChangeComparator,
|
19060
|
-
validComparators: guessComparatorsBasedOnControl$1(),
|
19061
19297
|
value: comparator
|
19062
19298
|
}), /*#__PURE__*/React__default.createElement(FilterValue, {
|
19063
19299
|
column: column,
|
@@ -19071,63 +19307,6 @@ function Filter$1(props) {
|
|
19071
19307
|
onClick: handleRemove
|
19072
19308
|
}));
|
19073
19309
|
}
|
19074
|
-
function guessComparatorsBasedOnControl$1(instance, control) {
|
19075
|
-
if ( /*#__PURE__*/React__default.isValidElement(instance)) {
|
19076
|
-
const {
|
19077
|
-
props,
|
19078
|
-
type
|
19079
|
-
} = instance;
|
19080
|
-
if (type.displayName === 'Select2') {
|
19081
|
-
if (props.multiple) {
|
19082
|
-
return [Table3FilterComparator.IsOneOf, Table3FilterComparator.IsNoneOf, Table3FilterComparator.IsAllOf];
|
19083
|
-
}
|
19084
|
-
return [Table3FilterComparator.IsEqualTo, Table3FilterComparator.IsNotEqualTo];
|
19085
|
-
}
|
19086
|
-
}
|
19087
|
-
switch (control) {
|
19088
|
-
case 'datepicker':
|
19089
|
-
return [Table3FilterComparator.IsEqualTo, Table3FilterComparator.IsNotEqualTo, Table3FilterComparator.IsGreaterThan, Table3FilterComparator.IsLessThan, Table3FilterComparator.IsBetween];
|
19090
|
-
case 'switch':
|
19091
|
-
return [Table3FilterComparator.IsEqualTo];
|
19092
|
-
default:
|
19093
|
-
return [Table3FilterComparator.Contains, Table3FilterComparator.DoesNotContain, Table3FilterComparator.IsEqualTo, Table3FilterComparator.IsNotEqualTo, Table3FilterComparator.IsEmpty, Table3FilterComparator.IsNotEmpty, Table3FilterComparator.IsGreaterThan, Table3FilterComparator.IsLessThan, Table3FilterComparator.IsBetween];
|
19094
|
-
}
|
19095
|
-
}
|
19096
|
-
|
19097
|
-
function Placeholder(props) {
|
19098
|
-
const {
|
19099
|
-
allColumns,
|
19100
|
-
filters,
|
19101
|
-
onCreate: handleCreate,
|
19102
|
-
onRemove: handleRemove,
|
19103
|
-
position
|
19104
|
-
} = props;
|
19105
|
-
const {
|
19106
|
-
texts
|
19107
|
-
} = useLocalization();
|
19108
|
-
return /*#__PURE__*/React__default.createElement("div", {
|
19109
|
-
className: "flex gap-2"
|
19110
|
-
}, /*#__PURE__*/React__default.createElement("div", {
|
19111
|
-
className: "flex w-14 flex-shrink-0 items-center justify-end pr-2 text-right"
|
19112
|
-
}, position > 0 ? texts.table3.filters.conditions.and : texts.table3.filters.conditions.where), /*#__PURE__*/React__default.createElement(FilterColumn, {
|
19113
|
-
allColumns: allColumns,
|
19114
|
-
filters: filters,
|
19115
|
-
onChange: handleCreate,
|
19116
|
-
value: null
|
19117
|
-
}), /*#__PURE__*/React__default.createElement(FilterComparator, {
|
19118
|
-
disabled: true,
|
19119
|
-
validComparators: guessComparatorsBasedOnControl$1()
|
19120
|
-
}), /*#__PURE__*/React__default.createElement(Input, {
|
19121
|
-
"aria-label": texts.table3.filters.emptyFilter.value,
|
19122
|
-
className: "flex-grow",
|
19123
|
-
disabled: true,
|
19124
|
-
value: texts.table3.filters.emptyFilter.value
|
19125
|
-
}), handleRemove ? /*#__PURE__*/React__default.createElement(IconButton, {
|
19126
|
-
appearance: "discrete",
|
19127
|
-
icon: "close",
|
19128
|
-
onClick: handleRemove
|
19129
|
-
}) : null);
|
19130
|
-
}
|
19131
19310
|
|
19132
19311
|
function sortByHeader(a, b) {
|
19133
19312
|
var _a$columnDef$meta, _a$columnDef$meta$hea, _a$columnDef$meta$hea2, _b$columnDef$meta;
|
@@ -19191,7 +19370,9 @@ function Filters(props) {
|
|
19191
19370
|
//
|
19192
19371
|
const handleApply = () => {
|
19193
19372
|
table.setColumnFilters(filters.filter(f => {
|
19194
|
-
|
19373
|
+
var _allColumns$find$colu;
|
19374
|
+
const controlRenderer = (_allColumns$find$colu = allColumns.find(c => c.id === f.id).columnDef.meta) === null || _allColumns$find$colu === void 0 ? void 0 : _allColumns$find$colu.control;
|
19375
|
+
if (f.value.comparator === Table3FilterComparator.IsEmpty || f.value.comparator === Table3FilterComparator.IsNotEmpty || controlRenderer === 'switch') {
|
19195
19376
|
return true;
|
19196
19377
|
}
|
19197
19378
|
return !!f.value.value;
|
@@ -19396,6 +19577,11 @@ const PRINT_STYLES = `
|
|
19396
19577
|
width: auto !important;
|
19397
19578
|
}
|
19398
19579
|
|
19580
|
+
#root {
|
19581
|
+
/* chrome sometimes crops the bottom content of page and this padding will make sure that we see the whole content*/
|
19582
|
+
padding-bottom: 20px;
|
19583
|
+
}
|
19584
|
+
|
19399
19585
|
[role="table"] {
|
19400
19586
|
border-width: 0 !important;
|
19401
19587
|
overflow-y: hidden !important;
|
@@ -19476,30 +19662,9 @@ function PrintIFrame({
|
|
19476
19662
|
}) {
|
19477
19663
|
const [contentRef, setContentRef] = React__default.useState(null);
|
19478
19664
|
const [mountNode, setMountNode] = React__default.useState(null);
|
19665
|
+
const isFirefoxBrowser = React__default.useMemo(() => navigator.userAgent.toLowerCase().includes('firefox'), []);
|
19479
19666
|
const iframeWindow = contentRef === null || contentRef === void 0 ? void 0 : contentRef.contentWindow;
|
19480
19667
|
const stylesReady = useParentStylesheets(iframeWindow);
|
19481
|
-
// Adds print events to the iframe window.
|
19482
|
-
React__default.useEffect(() => {
|
19483
|
-
if (iframeWindow === null || iframeWindow === undefined) {
|
19484
|
-
return;
|
19485
|
-
}
|
19486
|
-
// Add print events to the window
|
19487
|
-
if (onAfterPrint) {
|
19488
|
-
iframeWindow.addEventListener('afterprint', onAfterPrint);
|
19489
|
-
}
|
19490
|
-
if (onBeforePrint) {
|
19491
|
-
iframeWindow.addEventListener('beforeprint', onBeforePrint);
|
19492
|
-
}
|
19493
|
-
return () => {
|
19494
|
-
// Remove print events from the window
|
19495
|
-
if (onAfterPrint) {
|
19496
|
-
iframeWindow.removeEventListener('afterprint', onAfterPrint);
|
19497
|
-
}
|
19498
|
-
if (onBeforePrint) {
|
19499
|
-
iframeWindow.removeEventListener('beforeprint', onBeforePrint);
|
19500
|
-
}
|
19501
|
-
};
|
19502
|
-
}, [iframeWindow]);
|
19503
19668
|
// Calls print method when table has loaded in the iframe.
|
19504
19669
|
React__default.useEffect(() => {
|
19505
19670
|
let intervalId;
|
@@ -19510,7 +19675,8 @@ function PrintIFrame({
|
|
19510
19675
|
intervalId = setInterval(function () {
|
19511
19676
|
try {
|
19512
19677
|
const tableWrapper = mountNode;
|
19513
|
-
const
|
19678
|
+
const table = tableWrapper.querySelector('[role="table"]');
|
19679
|
+
const hasTableRendered = !!table;
|
19514
19680
|
if (hasTableRendered && intervalId) {
|
19515
19681
|
var _contentRef$contentWi;
|
19516
19682
|
clearInterval(intervalId);
|
@@ -19519,6 +19685,12 @@ function PrintIFrame({
|
|
19519
19685
|
// Bug - Even though onBeforePrint is called before printing, the execution doesn't finish before
|
19520
19686
|
// the print dialog shows up, which results into having a visible loading toast.
|
19521
19687
|
onBeforePrint === null || onBeforePrint === void 0 ? void 0 : onBeforePrint();
|
19688
|
+
// By adding height to the tableWrapper, we make sure the content below absolutely positioned table
|
19689
|
+
// doesn't hide
|
19690
|
+
if (isFirefoxBrowser) {
|
19691
|
+
const tableHeight = `${table.offsetHeight}px`;
|
19692
|
+
tableWrapper.style.height = tableHeight;
|
19693
|
+
}
|
19522
19694
|
contentRef === null || contentRef === void 0 ? void 0 : (_contentRef$contentWi = contentRef.contentWindow) === null || _contentRef$contentWi === void 0 ? void 0 : _contentRef$contentWi.print();
|
19523
19695
|
// Calling the onAfterPrint method here as a fallback to do the cleanup, as certain browsers,
|
19524
19696
|
// like Safari, do not trigger the beforeprint or afterprint events when a confirmation dialog
|
@@ -19557,6 +19729,11 @@ function PrintIFrame({
|
|
19557
19729
|
tableWrapper.setAttribute('data-role', 'table-wrapper');
|
19558
19730
|
// Adding h-fit class makes sure that table is rendered with the whole content.
|
19559
19731
|
tableWrapper.classList.add('h-fit');
|
19732
|
+
tableWrapper.classList.add('[&>[role="table"]]:!h-fit');
|
19733
|
+
if (isFirefoxBrowser) {
|
19734
|
+
// Fix for firefox bug which adds page-long whitespace between page's top content and table
|
19735
|
+
tableWrapper.classList.add('[&>[role="table"]]:!absolute');
|
19736
|
+
}
|
19560
19737
|
// Safari print preview assigns no width to the table when w-screen class is used.
|
19561
19738
|
// By assigning table a big static width and hiding the horizontal scrollbar, the table on chrome
|
19562
19739
|
// and safari will always take full page width.
|
@@ -19603,10 +19780,12 @@ function PrintIFrame({
|
|
19603
19780
|
};
|
19604
19781
|
// -top-60 -left-60 styles make sure that iframe is added outside of the viewport
|
19605
19782
|
return /*#__PURE__*/React__default.createElement("iframe", {
|
19606
|
-
ref: setContentRef,
|
19607
19783
|
className: "fixed -left-60 -top-60 !h-0 !w-0",
|
19608
19784
|
frameBorder: "0",
|
19609
|
-
|
19785
|
+
ref: setContentRef,
|
19786
|
+
scrolling: "no",
|
19787
|
+
// Temporary fix to support printing in firefox: Find another solution while upgrading React
|
19788
|
+
src: "javascript:void(0);"
|
19610
19789
|
}, mountNode && stylesReady ? /*#__PURE__*/ReactDOM.createPortal( /*#__PURE__*/React__default.createElement(Table3, Object.assign({}, printTableProps)), mountNode) : null);
|
19611
19790
|
}
|
19612
19791
|
|
@@ -19836,7 +20015,10 @@ function Toolbar(props) {
|
|
19836
20015
|
}) : null, tableMeta.printing.isEnabled ? /*#__PURE__*/React__default.createElement(PrintButton, {
|
19837
20016
|
table: table,
|
19838
20017
|
tableProps: tableProps
|
19839
|
-
}) : null, right, isMoreVisible(props) ? /*#__PURE__*/React__default.createElement(
|
20018
|
+
}) : null, right, isMoreVisible(props) ? /*#__PURE__*/React__default.createElement(Tooltip, {
|
20019
|
+
title: texts.table3.otherOptions.tooltip
|
20020
|
+
}, /*#__PURE__*/React__default.createElement(IconButton, {
|
20021
|
+
"aria-label": texts.table3.otherOptions.tooltip,
|
19840
20022
|
icon: "more",
|
19841
20023
|
menu: menuProps => /*#__PURE__*/React__default.createElement(Menu$1, Object.assign({}, menuProps), /*#__PURE__*/React__default.createElement(Menu$1.Content, {
|
19842
20024
|
align: "end"
|
@@ -19851,7 +20033,7 @@ function Toolbar(props) {
|
|
19851
20033
|
table: table
|
19852
20034
|
})
|
19853
20035
|
}, texts.table3.fontSize.tooltip) : null))
|
19854
|
-
}) : null, tableMeta.search.isEnabled ? /*#__PURE__*/React__default.createElement(Search$3, {
|
20036
|
+
})) : null, tableMeta.search.isEnabled ? /*#__PURE__*/React__default.createElement(Search$3, {
|
19855
20037
|
scrollToIndex: scrollToIndex,
|
19856
20038
|
table: table
|
19857
20039
|
}) : null));
|
@@ -20222,9 +20404,10 @@ const Table$1 = /*#__PURE__*/fixedForwardRef(function Table3(props, ref) {
|
|
20222
20404
|
}, EmptyState ? /*#__PURE__*/React__default.createElement(EmptyState, null) : null)));
|
20223
20405
|
});
|
20224
20406
|
const Table3 = /*#__PURE__*/fixedForwardRef(function Table3(props, ref) {
|
20407
|
+
const stringifiedChildren = String(props.children);
|
20225
20408
|
// we force a remount (using key) when the child columns change because there are too many places to add children as an effect
|
20226
20409
|
// this is cheaper from a complexity perspective, and probably performance wise as well
|
20227
|
-
const key = React__default.useMemo(() => String('tableKey_' +
|
20410
|
+
const key = React__default.useMemo(() => String('tableKey_' + stringifiedChildren), [stringifiedChildren]);
|
20228
20411
|
return /*#__PURE__*/React__default.createElement(Table$1, Object.assign({}, props, {
|
20229
20412
|
key: key,
|
20230
20413
|
ref: ref
|
@@ -21269,6 +21452,7 @@ exports.Table = Table;
|
|
21269
21452
|
exports.Table2 = Table2;
|
21270
21453
|
exports.Table3 = Table3;
|
21271
21454
|
exports.Tabs = Tabs;
|
21455
|
+
exports.TacoContext = TacoContext;
|
21272
21456
|
exports.Tag = Tag$1;
|
21273
21457
|
exports.Textarea = Textarea;
|
21274
21458
|
exports.Title = Title$3;
|