@economic/taco 2.3.0 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Header/components/Agreement/types.d.ts +1 -1
- 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/components/Edit.js +12 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Edit.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 +358 -178
- 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 +11325 -10524
- 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,7 +9517,17 @@ 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 {
|
|
9524
|
+
event.stopPropagation();
|
|
9525
|
+
}
|
|
9526
|
+
};
|
|
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) {
|
|
9472
9531
|
event.stopPropagation();
|
|
9473
9532
|
}
|
|
9474
9533
|
};
|
|
@@ -9476,6 +9535,7 @@ const EditPopover = props => {
|
|
|
9476
9535
|
onCloseAutoFocus: handleCloseAutoFocus,
|
|
9477
9536
|
onInteractOutside: handleInteractOutside,
|
|
9478
9537
|
onClick: event => event.stopPropagation(),
|
|
9538
|
+
onKeyDown: popoverContentKeyDown,
|
|
9479
9539
|
placement: "right",
|
|
9480
9540
|
tabIndex: -1,
|
|
9481
9541
|
className: "focus:!shadow-none"
|
|
@@ -15699,20 +15759,6 @@ function isMenuAvailable(table, header) {
|
|
|
15699
15759
|
const tableMeta = table.options.meta;
|
|
15700
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);
|
|
15701
15761
|
}
|
|
15702
|
-
function getInitialFrozenIndex(table) {
|
|
15703
|
-
const tableMeta = table.options.meta;
|
|
15704
|
-
let index = 0;
|
|
15705
|
-
if (tableMeta.rowDrag.isEnabled) {
|
|
15706
|
-
index++;
|
|
15707
|
-
}
|
|
15708
|
-
if (table.options.enableRowSelection) {
|
|
15709
|
-
index++;
|
|
15710
|
-
}
|
|
15711
|
-
if (table.options.enableExpanding) {
|
|
15712
|
-
index++;
|
|
15713
|
-
}
|
|
15714
|
-
return index;
|
|
15715
|
-
}
|
|
15716
15762
|
function Menu$3(props) {
|
|
15717
15763
|
const {
|
|
15718
15764
|
canFreeze,
|
|
@@ -15774,7 +15820,8 @@ function Menu$3(props) {
|
|
|
15774
15820
|
if (handleGoto) {
|
|
15775
15821
|
menuItems.push( /*#__PURE__*/React__default.createElement(Menu$1.Item, {
|
|
15776
15822
|
icon: "move",
|
|
15777
|
-
onClick: () => setPopover('goto')
|
|
15823
|
+
onClick: () => setPopover('goto'),
|
|
15824
|
+
shortcut: "g"
|
|
15778
15825
|
}, texts.table3.columns.menu.gotoRow, "..."));
|
|
15779
15826
|
}
|
|
15780
15827
|
if (canHide) {
|
|
@@ -15786,10 +15833,8 @@ function Menu$3(props) {
|
|
|
15786
15833
|
}, texts.table3.columns.menu.hideColumn));
|
|
15787
15834
|
}
|
|
15788
15835
|
if (canFreeze) {
|
|
15789
|
-
const
|
|
15790
|
-
|
|
15791
|
-
};
|
|
15792
|
-
const frozenIndex = index - getInitialFrozenIndex(table);
|
|
15836
|
+
const frozenIndex = index - tableMeta.columnFreezing.frozenInternalColumnCount;
|
|
15837
|
+
const handleClick = () => tableMeta.columnFreezing.setFrozenColumnIndex(frozenIndex);
|
|
15793
15838
|
menuItems.push( /*#__PURE__*/React__default.createElement(Menu$1.Item, {
|
|
15794
15839
|
icon: "column-freeze",
|
|
15795
15840
|
onClick: handleClick
|
|
@@ -16073,10 +16118,10 @@ function DisplayCell(props) {
|
|
|
16073
16118
|
}, [row.original, props.children, value]);
|
|
16074
16119
|
const memoedHighlight = React__default.useMemo(() => {
|
|
16075
16120
|
var _tableMeta$search$que;
|
|
16076
|
-
if (!tableMeta.search.isHighlightingEnabled) {
|
|
16121
|
+
if (!tableMeta.search.isHighlightingEnabled || !columnMeta.enableSearch) {
|
|
16077
16122
|
return false;
|
|
16078
16123
|
}
|
|
16079
|
-
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) {
|
|
16080
16125
|
return isCellHighlighted(tableMeta.search.query, value, memoedProps.children);
|
|
16081
16126
|
}
|
|
16082
16127
|
return false;
|
|
@@ -16607,11 +16652,13 @@ var Table3FilterComparator;
|
|
|
16607
16652
|
Table3FilterComparator[Table3FilterComparator["IsGreaterThan"] = 4] = "IsGreaterThan";
|
|
16608
16653
|
Table3FilterComparator[Table3FilterComparator["IsLessThan"] = 5] = "IsLessThan";
|
|
16609
16654
|
Table3FilterComparator[Table3FilterComparator["IsBetween"] = 6] = "IsBetween";
|
|
16610
|
-
Table3FilterComparator[Table3FilterComparator["
|
|
16611
|
-
Table3FilterComparator[Table3FilterComparator["
|
|
16612
|
-
Table3FilterComparator[Table3FilterComparator["
|
|
16613
|
-
Table3FilterComparator[Table3FilterComparator["
|
|
16614
|
-
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";
|
|
16615
16662
|
})(Table3FilterComparator || (Table3FilterComparator = {}));
|
|
16616
16663
|
|
|
16617
16664
|
const toLowerCase$1 = value => String(value !== null && value !== void 0 ? value : '').toLocaleLowerCase();
|
|
@@ -16673,6 +16720,24 @@ function columnFilterFn$1(value, filter) {
|
|
|
16673
16720
|
return !isNaN(valueAsNumber) && filter.value !== undefined && valueAsNumber < filter.value;
|
|
16674
16721
|
}
|
|
16675
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
|
+
}
|
|
16676
16741
|
case Table3FilterComparator.IsBetween:
|
|
16677
16742
|
{
|
|
16678
16743
|
const [fromValue, toValue] = filter.value;
|
|
@@ -16696,11 +16761,11 @@ function columnFilterFn$1(value, filter) {
|
|
|
16696
16761
|
return true;
|
|
16697
16762
|
}
|
|
16698
16763
|
}
|
|
16699
|
-
case Table3FilterComparator.
|
|
16700
|
-
return Array.isArray(filter.value) ? filter.value.includes(
|
|
16701
|
-
case Table3FilterComparator.
|
|
16702
|
-
return Array.isArray(filter.value) ? filter.value.includes(
|
|
16703
|
-
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:
|
|
16704
16769
|
return Array.isArray(filter.value) && Array.isArray(value) ? filter.value.filter(v => value.includes(v)).length === filter.value.length : false;
|
|
16705
16770
|
}
|
|
16706
16771
|
return false;
|
|
@@ -16748,8 +16813,8 @@ function useCurrentRowListener(table) {
|
|
|
16748
16813
|
}, [rows.length]);
|
|
16749
16814
|
}
|
|
16750
16815
|
|
|
16751
|
-
function
|
|
16752
|
-
let index =
|
|
16816
|
+
function getFrozenInternalColumnCount(options) {
|
|
16817
|
+
let index = 0;
|
|
16753
16818
|
if (options.enableRowDrag) {
|
|
16754
16819
|
index++;
|
|
16755
16820
|
}
|
|
@@ -16759,7 +16824,7 @@ function getDefaultFrozenIndex(options, defaultFrozenIndex = -1) {
|
|
|
16759
16824
|
if (options.enableRowExpansion) {
|
|
16760
16825
|
index++;
|
|
16761
16826
|
}
|
|
16762
|
-
return index
|
|
16827
|
+
return index;
|
|
16763
16828
|
}
|
|
16764
16829
|
/*
|
|
16765
16830
|
Because of the desired behaviour of column freezing we use custom state and just an index.
|
|
@@ -16767,7 +16832,7 @@ If a frozen column is, for example, hidden, then the desired behaviour is that t
|
|
|
16767
16832
|
If this behaviour were different we would just use the native column pinning functionality
|
|
16768
16833
|
*/
|
|
16769
16834
|
function useColumnFreezing(defaultFrozenIndex, options) {
|
|
16770
|
-
const [frozenColumnIndex, _setFrozenColumnIndex] = React__default.useState(
|
|
16835
|
+
const [frozenColumnIndex, _setFrozenColumnIndex] = React__default.useState(() => defaultFrozenIndex);
|
|
16771
16836
|
const [horizontallyScrolled, setHorizontallyScrolled] = React__default.useState(false);
|
|
16772
16837
|
const onScroll = event => {
|
|
16773
16838
|
if (event.currentTarget.scrollLeft > 0 && !horizontallyScrolled) {
|
|
@@ -16776,11 +16841,13 @@ function useColumnFreezing(defaultFrozenIndex, options) {
|
|
|
16776
16841
|
setHorizontallyScrolled(false);
|
|
16777
16842
|
}
|
|
16778
16843
|
};
|
|
16779
|
-
const
|
|
16780
|
-
|
|
16781
|
-
|
|
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);
|
|
16782
16848
|
return {
|
|
16783
16849
|
isEnabled: options.enableColumnFreezing,
|
|
16850
|
+
frozenInternalColumnCount,
|
|
16784
16851
|
frozenColumnIndex,
|
|
16785
16852
|
setFrozenColumnIndex,
|
|
16786
16853
|
horizontallyScrolled,
|
|
@@ -16788,6 +16855,7 @@ function useColumnFreezing(defaultFrozenIndex, options) {
|
|
|
16788
16855
|
};
|
|
16789
16856
|
}
|
|
16790
16857
|
function useColumnFreezingStyle(tableId, table) {
|
|
16858
|
+
var _tableMeta$columnFree;
|
|
16791
16859
|
const {
|
|
16792
16860
|
columnOrder,
|
|
16793
16861
|
columnSizing,
|
|
@@ -16795,9 +16863,10 @@ function useColumnFreezingStyle(tableId, table) {
|
|
|
16795
16863
|
columnVisibility
|
|
16796
16864
|
} = table.getState();
|
|
16797
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;
|
|
16798
16867
|
const style = React__default.useMemo(() => {
|
|
16799
|
-
if (tableMeta.columnFreezing.isEnabled &&
|
|
16800
|
-
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);
|
|
16801
16870
|
// if all frozen columns haven't had their size set yet, then abort
|
|
16802
16871
|
if (visibleFrozenColumns.every(id => columnSizing[id] === undefined)) {
|
|
16803
16872
|
return undefined;
|
|
@@ -16807,26 +16876,26 @@ function useColumnFreezingStyle(tableId, table) {
|
|
|
16807
16876
|
offsets[columnId] = offset;
|
|
16808
16877
|
return offset + columnSizing[columnId];
|
|
16809
16878
|
}, 0);
|
|
16810
|
-
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})) {
|
|
16811
16880
|
position: sticky;
|
|
16812
|
-
z-index: 20;
|
|
16813
|
-
}`, `#${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}) {
|
|
16814
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;
|
|
16815
16884
|
}`];
|
|
16816
|
-
const columnId = visibleFrozenColumns[
|
|
16885
|
+
const columnId = visibleFrozenColumns[frozenColumnIndex];
|
|
16817
16886
|
// frozenColumnIndex could not be in the visible frozen column so it is important to check if columnId
|
|
16818
16887
|
// exists before checking if it is internal.
|
|
16819
16888
|
//
|
|
16820
16889
|
// only add a border to the edge column if it isn't an internal column
|
|
16821
16890
|
if (columnId && !isInternalColumn$1(columnId)) {
|
|
16822
|
-
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}) {
|
|
16823
16892
|
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), 1px 0px 0px #DDDDDD;
|
|
16824
16893
|
}`);
|
|
16825
16894
|
}
|
|
16826
16895
|
return styles.join('\n');
|
|
16827
16896
|
}
|
|
16828
16897
|
return undefined;
|
|
16829
|
-
}, [columnOrder, columnSizing, columnSizingInfo, columnVisibility, tableMeta.columnFreezing.isEnabled,
|
|
16898
|
+
}, [columnOrder, columnSizing, columnSizingInfo, columnVisibility, tableMeta.columnFreezing.isEnabled, frozenColumnIndex]);
|
|
16830
16899
|
return style;
|
|
16831
16900
|
}
|
|
16832
16901
|
|
|
@@ -17666,7 +17735,12 @@ const Cell$4 = /*#__PURE__*/React__default.memo(function MemoedCell(context) {
|
|
|
17666
17735
|
}
|
|
17667
17736
|
tableMeta.rowSelection.lastSelectedRowIndex.current = rowIndex;
|
|
17668
17737
|
};
|
|
17669
|
-
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, {
|
|
17670
17744
|
"aria-label": title,
|
|
17671
17745
|
className: "!mt-0",
|
|
17672
17746
|
checked: isSelected,
|
|
@@ -17674,7 +17748,7 @@ const Cell$4 = /*#__PURE__*/React__default.memo(function MemoedCell(context) {
|
|
|
17674
17748
|
// this is necessary to remove console spam from eslint
|
|
17675
17749
|
onChange: () => false,
|
|
17676
17750
|
tabIndex: isCurrentRow ? 0 : -1
|
|
17677
|
-
}));
|
|
17751
|
+
})));
|
|
17678
17752
|
} else {
|
|
17679
17753
|
const className = cn('!mt-0', getRadioClassnames());
|
|
17680
17754
|
const handleClick = event => {
|
|
@@ -17901,7 +17975,7 @@ function getSortingFn$1(dataType, customFnOrBuiltIn) {
|
|
|
17901
17975
|
return customFnOrBuiltIn;
|
|
17902
17976
|
}
|
|
17903
17977
|
// some times we alias based on the type
|
|
17904
|
-
if (dataType && dataType !== 'boolean') {
|
|
17978
|
+
if (dataType && dataType !== 'boolean' && dataType !== 'number') {
|
|
17905
17979
|
return dataType;
|
|
17906
17980
|
}
|
|
17907
17981
|
// otherwise fall back to auto
|
|
@@ -17956,11 +18030,9 @@ function useConvertChildrenToColumns(props, options, editing) {
|
|
|
17956
18030
|
control: child.props.control,
|
|
17957
18031
|
dataType: child.props.dataType,
|
|
17958
18032
|
enableOrdering: (_child$props$enableOr = child.props.enableOrdering) !== null && _child$props$enableOr !== void 0 ? _child$props$enableOr : true,
|
|
17959
|
-
// react-table global filtering only samples from row 0 in a dataset for filtering and this
|
|
17960
|
-
// leads to some columns being disabled if, e.g., a column in row 0 has an undefined value
|
|
17961
|
-
// so we do not use the native enableGlobalFilter property and instead use our own enableSearch
|
|
17962
18033
|
enableSearch: (_child$props$enableSe = child.props.enableSearch) !== null && _child$props$enableSe !== void 0 ? _child$props$enableSe : true,
|
|
17963
18034
|
enableTruncate: (_child$props$enableTr = child.props.enableTruncate) !== null && _child$props$enableTr !== void 0 ? _child$props$enableTr : false,
|
|
18035
|
+
filters: child.props.filters,
|
|
17964
18036
|
footer: child.props.footer,
|
|
17965
18037
|
header: child.props.header,
|
|
17966
18038
|
headerClassName: child.props.headerClassName,
|
|
@@ -18118,8 +18190,54 @@ function useRowActions$1(actionsForRow, actionsForRowLength = ACTIONS_ON_ROW_LEN
|
|
|
18118
18190
|
};
|
|
18119
18191
|
}
|
|
18120
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
|
+
|
|
18121
18239
|
function useTable$2(props) {
|
|
18122
|
-
var _ref,
|
|
18240
|
+
var _ref, _defaultSettings$colu, _defaultSettings$rowH, _props$length;
|
|
18123
18241
|
// options
|
|
18124
18242
|
const options = useTablePreset(props);
|
|
18125
18243
|
const tableOptions = {
|
|
@@ -18157,6 +18275,10 @@ function useTable$2(props) {
|
|
|
18157
18275
|
return false;
|
|
18158
18276
|
};
|
|
18159
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
|
+
};
|
|
18160
18282
|
}
|
|
18161
18283
|
// sorting
|
|
18162
18284
|
if (options.enableSorting) {
|
|
@@ -18167,24 +18289,25 @@ function useTable$2(props) {
|
|
|
18167
18289
|
tableOptions.getSortedRowModel = reactTable$1.getSortedRowModel();
|
|
18168
18290
|
}
|
|
18169
18291
|
}
|
|
18292
|
+
const [defaultSettings, setSettings] = useSettings(props.id, props.defaultSettings, props.onChangeSettings);
|
|
18170
18293
|
// custom features
|
|
18171
18294
|
const columnFreezing = useColumnFreezing( // temporarily see if deprecated frozenColumnCount is there
|
|
18172
|
-
(_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);
|
|
18173
18296
|
const columnOrdering = useColumnOrdering(options);
|
|
18174
18297
|
const currentRow = useCurrentRow(props.defaultCurrentRowIndex);
|
|
18175
18298
|
const editing = useEditing(options.enableEditing, props.onSave);
|
|
18176
|
-
const fontSize = useFontSize(options.enableFontSize,
|
|
18299
|
+
const fontSize = useFontSize(options.enableFontSize, defaultSettings.fontSize);
|
|
18177
18300
|
const hoverState = usePauseHoverState();
|
|
18178
|
-
const printing = usePrinting(options.enablePrinting, props.loadAll,
|
|
18301
|
+
const printing = usePrinting(options.enablePrinting, props.loadAll, defaultSettings.showWarningWhenPrintingLargeDataset);
|
|
18179
18302
|
const rowActions = useRowActions$1(props.actionsForRow, props.actionsForRowLength);
|
|
18180
18303
|
const rowClick = useRowClick(props.onRowClick);
|
|
18181
18304
|
const rowDrag = useRowDrag(options.enableRowDrag);
|
|
18182
18305
|
const rowDrop = useRowDrop(options.enableRowDrop, props.onRowDrop);
|
|
18183
18306
|
const rowGoto = useRowGoto(options.enableRowGoto, props.onRowGoto);
|
|
18184
18307
|
const rowHeight = useRowHeight(options.enableRowHeight, // temporarily see if deprecated rowDensity is there
|
|
18185
|
-
(
|
|
18308
|
+
(_defaultSettings$rowH = defaultSettings.rowHeight) !== null && _defaultSettings$rowH !== void 0 ? _defaultSettings$rowH : defaultSettings === null || defaultSettings === void 0 ? void 0 : defaultSettings.rowDensity);
|
|
18186
18309
|
const rowSelection = useRowSelection();
|
|
18187
|
-
const search = useSearch(options.enableSearch,
|
|
18310
|
+
const search = useSearch(options.enableSearch, defaultSettings.excludeUnmatchedRecordsInSearch, props.loadAll);
|
|
18188
18311
|
// columns
|
|
18189
18312
|
const {
|
|
18190
18313
|
columns,
|
|
@@ -18194,13 +18317,13 @@ function useTable$2(props) {
|
|
|
18194
18317
|
} = useConvertChildrenToColumns(props, options, editing);
|
|
18195
18318
|
// built-in features
|
|
18196
18319
|
const initialState = React__default.useMemo(() => {
|
|
18197
|
-
var
|
|
18320
|
+
var _defaultSettings$colu2, _defaultSettings$colu3;
|
|
18198
18321
|
const sanitizeSortedColumns = column => columns.find(definedColumn => definedColumn.id === column.id);
|
|
18199
18322
|
return {
|
|
18200
|
-
columnOrder: ensureOrdering$1(columns,
|
|
18201
|
-
columnSizing: (
|
|
18202
|
-
columnVisibility: (
|
|
18203
|
-
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
|
|
18204
18327
|
};
|
|
18205
18328
|
}, []);
|
|
18206
18329
|
const table = reactTable$1.useReactTable({
|
|
@@ -18234,7 +18357,7 @@ function useTable$2(props) {
|
|
|
18234
18357
|
useEditingStateListener(table);
|
|
18235
18358
|
useFilteringStateListener(table, props.onFilter);
|
|
18236
18359
|
useRowSelectionListener$1(table, props.onRowSelect);
|
|
18237
|
-
useSettingsStateListener$1(table,
|
|
18360
|
+
useSettingsStateListener$1(table, setSettings);
|
|
18238
18361
|
useShortcutsListener(table, props.shortcuts);
|
|
18239
18362
|
useServerLoadingListener(table, props.loadPage);
|
|
18240
18363
|
useSortingStateListener(table, props.onSort);
|
|
@@ -18812,12 +18935,12 @@ function resetHighlightedColumnIndexes(enabled, value, table) {
|
|
|
18812
18935
|
table.getRowModel().rows.forEach((row, rowIndex) => {
|
|
18813
18936
|
columns.forEach((column, columnIndex) => {
|
|
18814
18937
|
try {
|
|
18815
|
-
var _column$columnDef$met,
|
|
18816
|
-
if (
|
|
18938
|
+
var _format, _column$columnDef$met, _format2;
|
|
18939
|
+
if (row.original && globalFilterFn$1(
|
|
18817
18940
|
// if it's a date, format it first
|
|
18818
18941
|
dateFns.isDate(row.original[column.id]) ? (_format = format(row.original[column.id])) !== null && _format !== void 0 ? _format : '' :
|
|
18819
18942
|
// if its marked as a date but isn't a date, try to format it
|
|
18820
|
-
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 : '' :
|
|
18821
18944
|
// otherwise just string compare
|
|
18822
18945
|
String(row.original[column.id]), value)) {
|
|
18823
18946
|
indexes.push([rowIndex, columnIndex]);
|
|
@@ -18869,29 +18992,74 @@ function FilterColumn(props) {
|
|
|
18869
18992
|
|
|
18870
18993
|
function FilterComparator(props) {
|
|
18871
18994
|
const {
|
|
18995
|
+
column,
|
|
18872
18996
|
onChange: handleChange,
|
|
18873
18997
|
value,
|
|
18874
|
-
validComparators,
|
|
18875
18998
|
...attributes
|
|
18876
18999
|
} = props;
|
|
18877
19000
|
const {
|
|
18878
19001
|
texts
|
|
18879
19002
|
} = useLocalization();
|
|
19003
|
+
const validComparators = guessComparatorsBasedOnControl$1(column);
|
|
18880
19004
|
React__default.useEffect(() => {
|
|
18881
|
-
if (value === undefined) {
|
|
19005
|
+
if (value === undefined || !validComparators.includes(value)) {
|
|
18882
19006
|
handleChange === null || handleChange === void 0 ? void 0 : handleChange(validComparators[0]);
|
|
18883
19007
|
}
|
|
18884
|
-
}, []);
|
|
19008
|
+
}, [validComparators]);
|
|
18885
19009
|
return /*#__PURE__*/React__default.createElement(Select2, Object.assign({}, attributes, {
|
|
18886
19010
|
className: "!w-32 flex-shrink-0",
|
|
19011
|
+
disabled: !column,
|
|
18887
19012
|
onChange: handleChange,
|
|
18888
19013
|
value: value
|
|
18889
|
-
}), validComparators.map(
|
|
18890
|
-
key:
|
|
18891
|
-
value:
|
|
18892
|
-
}, getComparatorText$1(
|
|
19014
|
+
}), validComparators.map(comparator => /*#__PURE__*/React__default.createElement(Select2.Option, {
|
|
19015
|
+
key: comparator,
|
|
19016
|
+
value: comparator
|
|
19017
|
+
}, getComparatorText$1(comparator, texts, column))));
|
|
19018
|
+
}
|
|
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];
|
|
18893
19059
|
}
|
|
18894
|
-
|
|
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';
|
|
18895
19063
|
switch (comparator) {
|
|
18896
19064
|
case Table3FilterComparator.Contains:
|
|
18897
19065
|
return texts.table3.filters.comparators.contains;
|
|
@@ -18902,23 +19070,61 @@ const getComparatorText$1 = (comparator, texts) => {
|
|
|
18902
19070
|
case Table3FilterComparator.IsNotEqualTo:
|
|
18903
19071
|
return texts.table3.filters.comparators.isNotEqualTo;
|
|
18904
19072
|
case Table3FilterComparator.IsGreaterThan:
|
|
18905
|
-
return texts.table3.filters.comparators.isGreaterThan;
|
|
19073
|
+
return isDate ? texts.table3.filters.comparators.isAfter : texts.table3.filters.comparators.isGreaterThan;
|
|
18906
19074
|
case Table3FilterComparator.IsLessThan:
|
|
18907
|
-
return texts.table3.filters.comparators.isLessThan;
|
|
19075
|
+
return isDate ? texts.table3.filters.comparators.isBefore : texts.table3.filters.comparators.isLessThan;
|
|
18908
19076
|
case Table3FilterComparator.IsBetween:
|
|
18909
19077
|
return texts.table3.filters.comparators.isBetween;
|
|
18910
|
-
case Table3FilterComparator.IsOneOf:
|
|
18911
|
-
return texts.table3.filters.comparators.isOneOf;
|
|
18912
|
-
case Table3FilterComparator.IsNoneOf:
|
|
18913
|
-
return texts.table3.filters.comparators.isNoneOf;
|
|
18914
|
-
case Table3FilterComparator.IsAllOf:
|
|
18915
|
-
return texts.table3.filters.comparators.isAllOf;
|
|
18916
19078
|
case Table3FilterComparator.IsEmpty:
|
|
18917
19079
|
return texts.table3.filters.comparators.isEmpty;
|
|
18918
19080
|
case Table3FilterComparator.IsNotEmpty:
|
|
18919
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 '';
|
|
18920
19094
|
}
|
|
18921
|
-
}
|
|
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
|
+
}
|
|
18922
19128
|
|
|
18923
19129
|
function FilterValue(props) {
|
|
18924
19130
|
const {
|
|
@@ -18927,6 +19133,9 @@ function FilterValue(props) {
|
|
|
18927
19133
|
onChange: handleChange,
|
|
18928
19134
|
value
|
|
18929
19135
|
} = props;
|
|
19136
|
+
const {
|
|
19137
|
+
texts
|
|
19138
|
+
} = useLocalization();
|
|
18930
19139
|
if (comparator === Table3FilterComparator.IsEmpty || comparator === Table3FilterComparator.IsNotEmpty) {
|
|
18931
19140
|
return null;
|
|
18932
19141
|
}
|
|
@@ -18934,6 +19143,14 @@ function FilterValue(props) {
|
|
|
18934
19143
|
var _column$columnDef$met;
|
|
18935
19144
|
const fromValue = Array.isArray(value) ? value[0] : undefined;
|
|
18936
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
|
+
}
|
|
18937
19154
|
if (((_column$columnDef$met = column.columnDef.meta) === null || _column$columnDef$met === void 0 ? void 0 : _column$columnDef$met.dataType) === 'datetime') {
|
|
18938
19155
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
18939
19156
|
className: "flex flex-grow items-center gap-2"
|
|
@@ -18962,6 +19179,7 @@ function FilterValue(props) {
|
|
|
18962
19179
|
}));
|
|
18963
19180
|
}
|
|
18964
19181
|
return /*#__PURE__*/React__default.createElement(Control$1, {
|
|
19182
|
+
comparator: comparator,
|
|
18965
19183
|
column: column,
|
|
18966
19184
|
onChange: handleChange,
|
|
18967
19185
|
value: value
|
|
@@ -18971,12 +19189,18 @@ function Control$1(props) {
|
|
|
18971
19189
|
var _column$columnDef$met2, _column$columnDef$met3;
|
|
18972
19190
|
const {
|
|
18973
19191
|
column,
|
|
19192
|
+
comparator,
|
|
18974
19193
|
onChange,
|
|
18975
19194
|
value,
|
|
18976
19195
|
...attributes
|
|
18977
19196
|
} = props;
|
|
18978
19197
|
const controlRenderer = (_column$columnDef$met2 = column.columnDef.meta) === null || _column$columnDef$met2 === void 0 ? void 0 : _column$columnDef$met2.control;
|
|
18979
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
|
+
}, []);
|
|
18980
19204
|
if (typeof controlRenderer === 'function') {
|
|
18981
19205
|
return controlRenderer({
|
|
18982
19206
|
...attributes,
|
|
@@ -18988,11 +19212,19 @@ function Control$1(props) {
|
|
|
18988
19212
|
onChange: event => onChange(event.detail),
|
|
18989
19213
|
value: value
|
|
18990
19214
|
}));
|
|
18991
|
-
} else if (controlRenderer === 'switch'
|
|
19215
|
+
} else if (controlRenderer === 'switch') {
|
|
18992
19216
|
return /*#__PURE__*/React__default.createElement(Switch, Object.assign({}, attributes, {
|
|
19217
|
+
className: "m-1.5",
|
|
18993
19218
|
checked: Boolean(value),
|
|
18994
19219
|
onChange: onChange
|
|
18995
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
|
+
}));
|
|
18996
19228
|
}
|
|
18997
19229
|
return /*#__PURE__*/React__default.createElement(Input, Object.assign({}, attributes, {
|
|
18998
19230
|
className: "flex-grow",
|
|
@@ -19060,8 +19292,8 @@ function Filter$1(props) {
|
|
|
19060
19292
|
onChange: handleChangeColumn,
|
|
19061
19293
|
value: id
|
|
19062
19294
|
}), /*#__PURE__*/React__default.createElement(FilterComparator, {
|
|
19295
|
+
column: column,
|
|
19063
19296
|
onChange: handleChangeComparator,
|
|
19064
|
-
validComparators: guessComparatorsBasedOnControl$1(),
|
|
19065
19297
|
value: comparator
|
|
19066
19298
|
}), /*#__PURE__*/React__default.createElement(FilterValue, {
|
|
19067
19299
|
column: column,
|
|
@@ -19075,63 +19307,6 @@ function Filter$1(props) {
|
|
|
19075
19307
|
onClick: handleRemove
|
|
19076
19308
|
}));
|
|
19077
19309
|
}
|
|
19078
|
-
function guessComparatorsBasedOnControl$1(instance, control) {
|
|
19079
|
-
if ( /*#__PURE__*/React__default.isValidElement(instance)) {
|
|
19080
|
-
const {
|
|
19081
|
-
props,
|
|
19082
|
-
type
|
|
19083
|
-
} = instance;
|
|
19084
|
-
if (type.displayName === 'Select2') {
|
|
19085
|
-
if (props.multiple) {
|
|
19086
|
-
return [Table3FilterComparator.IsOneOf, Table3FilterComparator.IsNoneOf, Table3FilterComparator.IsAllOf];
|
|
19087
|
-
}
|
|
19088
|
-
return [Table3FilterComparator.IsEqualTo, Table3FilterComparator.IsNotEqualTo];
|
|
19089
|
-
}
|
|
19090
|
-
}
|
|
19091
|
-
switch (control) {
|
|
19092
|
-
case 'datepicker':
|
|
19093
|
-
return [Table3FilterComparator.IsEqualTo, Table3FilterComparator.IsNotEqualTo, Table3FilterComparator.IsGreaterThan, Table3FilterComparator.IsLessThan, Table3FilterComparator.IsBetween];
|
|
19094
|
-
case 'switch':
|
|
19095
|
-
return [Table3FilterComparator.IsEqualTo];
|
|
19096
|
-
default:
|
|
19097
|
-
return [Table3FilterComparator.Contains, Table3FilterComparator.DoesNotContain, Table3FilterComparator.IsEqualTo, Table3FilterComparator.IsNotEqualTo, Table3FilterComparator.IsEmpty, Table3FilterComparator.IsNotEmpty, Table3FilterComparator.IsGreaterThan, Table3FilterComparator.IsLessThan, Table3FilterComparator.IsBetween];
|
|
19098
|
-
}
|
|
19099
|
-
}
|
|
19100
|
-
|
|
19101
|
-
function Placeholder(props) {
|
|
19102
|
-
const {
|
|
19103
|
-
allColumns,
|
|
19104
|
-
filters,
|
|
19105
|
-
onCreate: handleCreate,
|
|
19106
|
-
onRemove: handleRemove,
|
|
19107
|
-
position
|
|
19108
|
-
} = props;
|
|
19109
|
-
const {
|
|
19110
|
-
texts
|
|
19111
|
-
} = useLocalization();
|
|
19112
|
-
return /*#__PURE__*/React__default.createElement("div", {
|
|
19113
|
-
className: "flex gap-2"
|
|
19114
|
-
}, /*#__PURE__*/React__default.createElement("div", {
|
|
19115
|
-
className: "flex w-14 flex-shrink-0 items-center justify-end pr-2 text-right"
|
|
19116
|
-
}, position > 0 ? texts.table3.filters.conditions.and : texts.table3.filters.conditions.where), /*#__PURE__*/React__default.createElement(FilterColumn, {
|
|
19117
|
-
allColumns: allColumns,
|
|
19118
|
-
filters: filters,
|
|
19119
|
-
onChange: handleCreate,
|
|
19120
|
-
value: null
|
|
19121
|
-
}), /*#__PURE__*/React__default.createElement(FilterComparator, {
|
|
19122
|
-
disabled: true,
|
|
19123
|
-
validComparators: guessComparatorsBasedOnControl$1()
|
|
19124
|
-
}), /*#__PURE__*/React__default.createElement(Input, {
|
|
19125
|
-
"aria-label": texts.table3.filters.emptyFilter.value,
|
|
19126
|
-
className: "flex-grow",
|
|
19127
|
-
disabled: true,
|
|
19128
|
-
value: texts.table3.filters.emptyFilter.value
|
|
19129
|
-
}), handleRemove ? /*#__PURE__*/React__default.createElement(IconButton, {
|
|
19130
|
-
appearance: "discrete",
|
|
19131
|
-
icon: "close",
|
|
19132
|
-
onClick: handleRemove
|
|
19133
|
-
}) : null);
|
|
19134
|
-
}
|
|
19135
19310
|
|
|
19136
19311
|
function sortByHeader(a, b) {
|
|
19137
19312
|
var _a$columnDef$meta, _a$columnDef$meta$hea, _a$columnDef$meta$hea2, _b$columnDef$meta;
|
|
@@ -19195,7 +19370,9 @@ function Filters(props) {
|
|
|
19195
19370
|
//
|
|
19196
19371
|
const handleApply = () => {
|
|
19197
19372
|
table.setColumnFilters(filters.filter(f => {
|
|
19198
|
-
|
|
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') {
|
|
19199
19376
|
return true;
|
|
19200
19377
|
}
|
|
19201
19378
|
return !!f.value.value;
|
|
@@ -19400,6 +19577,11 @@ const PRINT_STYLES = `
|
|
|
19400
19577
|
width: auto !important;
|
|
19401
19578
|
}
|
|
19402
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
|
+
|
|
19403
19585
|
[role="table"] {
|
|
19404
19586
|
border-width: 0 !important;
|
|
19405
19587
|
overflow-y: hidden !important;
|
|
@@ -19480,30 +19662,9 @@ function PrintIFrame({
|
|
|
19480
19662
|
}) {
|
|
19481
19663
|
const [contentRef, setContentRef] = React__default.useState(null);
|
|
19482
19664
|
const [mountNode, setMountNode] = React__default.useState(null);
|
|
19665
|
+
const isFirefoxBrowser = React__default.useMemo(() => navigator.userAgent.toLowerCase().includes('firefox'), []);
|
|
19483
19666
|
const iframeWindow = contentRef === null || contentRef === void 0 ? void 0 : contentRef.contentWindow;
|
|
19484
19667
|
const stylesReady = useParentStylesheets(iframeWindow);
|
|
19485
|
-
// Adds print events to the iframe window.
|
|
19486
|
-
React__default.useEffect(() => {
|
|
19487
|
-
if (iframeWindow === null || iframeWindow === undefined) {
|
|
19488
|
-
return;
|
|
19489
|
-
}
|
|
19490
|
-
// Add print events to the window
|
|
19491
|
-
if (onAfterPrint) {
|
|
19492
|
-
iframeWindow.addEventListener('afterprint', onAfterPrint);
|
|
19493
|
-
}
|
|
19494
|
-
if (onBeforePrint) {
|
|
19495
|
-
iframeWindow.addEventListener('beforeprint', onBeforePrint);
|
|
19496
|
-
}
|
|
19497
|
-
return () => {
|
|
19498
|
-
// Remove print events from the window
|
|
19499
|
-
if (onAfterPrint) {
|
|
19500
|
-
iframeWindow.removeEventListener('afterprint', onAfterPrint);
|
|
19501
|
-
}
|
|
19502
|
-
if (onBeforePrint) {
|
|
19503
|
-
iframeWindow.removeEventListener('beforeprint', onBeforePrint);
|
|
19504
|
-
}
|
|
19505
|
-
};
|
|
19506
|
-
}, [iframeWindow]);
|
|
19507
19668
|
// Calls print method when table has loaded in the iframe.
|
|
19508
19669
|
React__default.useEffect(() => {
|
|
19509
19670
|
let intervalId;
|
|
@@ -19514,7 +19675,8 @@ function PrintIFrame({
|
|
|
19514
19675
|
intervalId = setInterval(function () {
|
|
19515
19676
|
try {
|
|
19516
19677
|
const tableWrapper = mountNode;
|
|
19517
|
-
const
|
|
19678
|
+
const table = tableWrapper.querySelector('[role="table"]');
|
|
19679
|
+
const hasTableRendered = !!table;
|
|
19518
19680
|
if (hasTableRendered && intervalId) {
|
|
19519
19681
|
var _contentRef$contentWi;
|
|
19520
19682
|
clearInterval(intervalId);
|
|
@@ -19523,6 +19685,12 @@ function PrintIFrame({
|
|
|
19523
19685
|
// Bug - Even though onBeforePrint is called before printing, the execution doesn't finish before
|
|
19524
19686
|
// the print dialog shows up, which results into having a visible loading toast.
|
|
19525
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
|
+
}
|
|
19526
19694
|
contentRef === null || contentRef === void 0 ? void 0 : (_contentRef$contentWi = contentRef.contentWindow) === null || _contentRef$contentWi === void 0 ? void 0 : _contentRef$contentWi.print();
|
|
19527
19695
|
// Calling the onAfterPrint method here as a fallback to do the cleanup, as certain browsers,
|
|
19528
19696
|
// like Safari, do not trigger the beforeprint or afterprint events when a confirmation dialog
|
|
@@ -19561,6 +19729,11 @@ function PrintIFrame({
|
|
|
19561
19729
|
tableWrapper.setAttribute('data-role', 'table-wrapper');
|
|
19562
19730
|
// Adding h-fit class makes sure that table is rendered with the whole content.
|
|
19563
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
|
+
}
|
|
19564
19737
|
// Safari print preview assigns no width to the table when w-screen class is used.
|
|
19565
19738
|
// By assigning table a big static width and hiding the horizontal scrollbar, the table on chrome
|
|
19566
19739
|
// and safari will always take full page width.
|
|
@@ -19607,10 +19780,12 @@ function PrintIFrame({
|
|
|
19607
19780
|
};
|
|
19608
19781
|
// -top-60 -left-60 styles make sure that iframe is added outside of the viewport
|
|
19609
19782
|
return /*#__PURE__*/React__default.createElement("iframe", {
|
|
19610
|
-
ref: setContentRef,
|
|
19611
19783
|
className: "fixed -left-60 -top-60 !h-0 !w-0",
|
|
19612
19784
|
frameBorder: "0",
|
|
19613
|
-
|
|
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);"
|
|
19614
19789
|
}, mountNode && stylesReady ? /*#__PURE__*/ReactDOM.createPortal( /*#__PURE__*/React__default.createElement(Table3, Object.assign({}, printTableProps)), mountNode) : null);
|
|
19615
19790
|
}
|
|
19616
19791
|
|
|
@@ -19840,7 +20015,10 @@ function Toolbar(props) {
|
|
|
19840
20015
|
}) : null, tableMeta.printing.isEnabled ? /*#__PURE__*/React__default.createElement(PrintButton, {
|
|
19841
20016
|
table: table,
|
|
19842
20017
|
tableProps: tableProps
|
|
19843
|
-
}) : 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,
|
|
19844
20022
|
icon: "more",
|
|
19845
20023
|
menu: menuProps => /*#__PURE__*/React__default.createElement(Menu$1, Object.assign({}, menuProps), /*#__PURE__*/React__default.createElement(Menu$1.Content, {
|
|
19846
20024
|
align: "end"
|
|
@@ -19855,7 +20033,7 @@ function Toolbar(props) {
|
|
|
19855
20033
|
table: table
|
|
19856
20034
|
})
|
|
19857
20035
|
}, texts.table3.fontSize.tooltip) : null))
|
|
19858
|
-
}) : null, tableMeta.search.isEnabled ? /*#__PURE__*/React__default.createElement(Search$3, {
|
|
20036
|
+
})) : null, tableMeta.search.isEnabled ? /*#__PURE__*/React__default.createElement(Search$3, {
|
|
19859
20037
|
scrollToIndex: scrollToIndex,
|
|
19860
20038
|
table: table
|
|
19861
20039
|
}) : null));
|
|
@@ -20226,9 +20404,10 @@ const Table$1 = /*#__PURE__*/fixedForwardRef(function Table3(props, ref) {
|
|
|
20226
20404
|
}, EmptyState ? /*#__PURE__*/React__default.createElement(EmptyState, null) : null)));
|
|
20227
20405
|
});
|
|
20228
20406
|
const Table3 = /*#__PURE__*/fixedForwardRef(function Table3(props, ref) {
|
|
20407
|
+
const stringifiedChildren = String(props.children);
|
|
20229
20408
|
// we force a remount (using key) when the child columns change because there are too many places to add children as an effect
|
|
20230
20409
|
// this is cheaper from a complexity perspective, and probably performance wise as well
|
|
20231
|
-
const key = React__default.useMemo(() => String('tableKey_' +
|
|
20410
|
+
const key = React__default.useMemo(() => String('tableKey_' + stringifiedChildren), [stringifiedChildren]);
|
|
20232
20411
|
return /*#__PURE__*/React__default.createElement(Table$1, Object.assign({}, props, {
|
|
20233
20412
|
key: key,
|
|
20234
20413
|
ref: ref
|
|
@@ -21273,6 +21452,7 @@ exports.Table = Table;
|
|
|
21273
21452
|
exports.Table2 = Table2;
|
|
21274
21453
|
exports.Table3 = Table3;
|
|
21275
21454
|
exports.Tabs = Tabs;
|
|
21455
|
+
exports.TacoContext = TacoContext;
|
|
21276
21456
|
exports.Tag = Tag$1;
|
|
21277
21457
|
exports.Textarea = Textarea;
|
|
21278
21458
|
exports.Title = Title$3;
|