@economic/taco 2.22.2 → 2.24.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/Card/Card.d.ts +1 -0
- package/dist/components/Checkbox/Checkbox.d.ts +2 -0
- package/dist/components/OverflowGroup/OverflowGroup.d.ts +1 -1
- package/dist/components/Provider/Localization.d.ts +4 -0
- package/dist/components/Report/Report.d.ts +2 -0
- package/dist/components/Report/components/Body/Body.d.ts +0 -1
- package/dist/components/Report/components/Body/EmptyStateBody.d.ts +7 -0
- package/dist/components/Report/components/Cell/util.d.ts +1 -1
- package/dist/components/Report/components/Footer/Summary.d.ts +0 -1
- package/dist/components/Report/components/Toolbar/components/Filters/components/Filter.d.ts +2 -2
- package/dist/components/Report/components/Toolbar/components/Filters/components/FilterColumn.d.ts +5 -2
- package/dist/components/Report/types.d.ts +2 -0
- package/dist/components/Report/useReport.d.ts +1 -1
- package/dist/components/Select2/Select2.d.ts +4 -0
- package/dist/components/Select2/components/Trigger.d.ts +1 -0
- package/dist/components/Select2/hooks/useChildren.d.ts +1 -0
- package/dist/components/Table3/components/toolbar/Filter/filters/components/Filter.d.ts +2 -2
- package/dist/components/Table3/components/toolbar/Filter/filters/components/FilterColumn.d.ts +5 -2
- package/dist/components/Truncate/Truncate.d.ts +2 -2
- package/dist/esm/index.css +128 -121
- package/dist/esm/packages/taco/src/components/Button/util.js +8 -8
- package/dist/esm/packages/taco/src/components/Button/util.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Card/Card.js +8 -4
- package/dist/esm/packages/taco/src/components/Card/Card.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Checkbox/Checkbox.js +11 -2
- package/dist/esm/packages/taco/src/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Field/Field.js +4 -15
- package/dist/esm/packages/taco/src/components/Field/Field.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Header/components/PrimaryNavigation.js +2 -2
- package/dist/esm/packages/taco/src/components/Header/components/PrimaryNavigation.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Listbox/ScrollableList.js +1 -1
- package/dist/esm/packages/taco/src/components/OverflowGroup/OverflowGroup.js +13 -6
- package/dist/esm/packages/taco/src/components/OverflowGroup/OverflowGroup.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Provider/Localization.js +5 -1
- package/dist/esm/packages/taco/src/components/Provider/Localization.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/Report.js +11 -13
- package/dist/esm/packages/taco/src/components/Report/Report.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/components/Body/Body.js +1 -2
- package/dist/esm/packages/taco/src/components/Report/components/Body/Body.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/components/Body/EmptyStateBody.js +18 -0
- package/dist/esm/packages/taco/src/components/Report/components/Body/EmptyStateBody.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Report/components/Cell/util.js +6 -2
- package/dist/esm/packages/taco/src/components/Report/components/Cell/util.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/components/Footer/Footer.js +14 -2
- package/dist/esm/packages/taco/src/components/Report/components/Footer/Footer.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/components/Footer/Summary.js +2 -2
- package/dist/esm/packages/taco/src/components/Report/components/Footer/Summary.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/components/Internal/Selection.js +47 -11
- package/dist/esm/packages/taco/src/components/Report/components/Internal/Selection.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/components/Toolbar/components/Filters/ManageFiltersPopover.js +28 -43
- package/dist/esm/packages/taco/src/components/Report/components/Toolbar/components/Filters/ManageFiltersPopover.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/components/Toolbar/components/Filters/components/Filter.js +14 -7
- package/dist/esm/packages/taco/src/components/Report/components/Toolbar/components/Filters/components/Filter.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/components/Toolbar/components/Filters/components/FilterColumn.js +4 -3
- package/dist/esm/packages/taco/src/components/Report/components/Toolbar/components/Filters/components/FilterColumn.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/components/Toolbar/components/Print/Print.js +10 -8
- package/dist/esm/packages/taco/src/components/Report/components/Toolbar/components/Print/Print.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/listeners/useTableRowActiveListener.js +2 -2
- package/dist/esm/packages/taco/src/components/Report/listeners/useTableRowActiveListener.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/styles/useCssGridStylesheet.js +10 -6
- package/dist/esm/packages/taco/src/components/Report/styles/useCssGridStylesheet.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/util/useTableGlobalShortcuts.js +3 -10
- package/dist/esm/packages/taco/src/components/Report/util/useTableGlobalShortcuts.js.map +1 -1
- package/dist/esm/packages/taco/src/components/SearchInput2/SearchInput2.js +2 -1
- package/dist/esm/packages/taco/src/components/SearchInput2/SearchInput2.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/Select2.js +44 -4
- package/dist/esm/packages/taco/src/components/Select2/Select2.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Trigger.js +9 -4
- package/dist/esm/packages/taco/src/components/Select2/components/Trigger.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/hooks/useChildren.js +1 -1
- package/dist/esm/packages/taco/src/components/Select2/hooks/useChildren.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/Table3.js +4 -6
- package/dist/esm/packages/taco/src/components/Table3/Table3.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/EditingCell.js +2 -2
- package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/EditingCell.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Selection.js +66 -14
- 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 +27 -44
- 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 +14 -7
- 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/FilterColumn.js +4 -3
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterColumn.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterComparator.js +1 -1
- 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/PrintButton/PrintButton.js +2 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintButton.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintIFrame.js +2 -1
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintIFrame.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useSettings.js +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useSettingsStateListener.js +3 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useSettingsStateListener.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/useTable.js +10 -3
- package/dist/esm/packages/taco/src/components/Table3/hooks/useTable.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Toast/Toaster.js +4 -3
- package/dist/esm/packages/taco/src/components/Toast/Toaster.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Truncate/Truncate.js +34 -0
- package/dist/esm/packages/taco/src/components/Truncate/Truncate.js.map +1 -0
- package/dist/esm/packages/taco/src/hooks/useLocalStorage.js.map +1 -1
- package/dist/esm/packages/taco/src/index.js +2 -1
- package/dist/esm/packages/taco/src/index.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Button.js +1 -0
- package/dist/esm/packages/taco/src/primitives/Button.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/types.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTablePrinting.js +24 -4
- package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTablePrinting.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTableSettings.js +48 -7
- package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTableSettings.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/listeners/useTableSettingsListener.js +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/listeners/useTableSettingsListener.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/useTable.js +11 -6
- package/dist/esm/packages/taco/src/primitives/Table/useTable/useTable.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/util/columns.js +33 -7
- package/dist/esm/packages/taco/src/primitives/Table/useTable/util/columns.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/util/presets.js +5 -5
- package/dist/esm/packages/taco/src/primitives/Table/useTable/util/presets.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/util/search.js +14 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/util/search.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/util/settings.js +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/util/settings.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableDataLoader.js +127 -3
- package/dist/esm/packages/taco/src/primitives/Table/useTableDataLoader.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/dom.js +12 -3
- package/dist/esm/packages/taco/src/utils/dom.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/hooks/useTruncated.js +4 -4
- package/dist/esm/packages/taco/src/utils/hooks/useTruncated.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/keyboard.js +2 -2
- package/dist/esm/packages/taco/src/utils/keyboard.js.map +1 -1
- package/dist/hooks/useLocalStorage.d.ts +2 -1
- package/dist/index.css +128 -121
- package/dist/index.d.ts +1 -0
- package/dist/primitives/Table/types.d.ts +12 -2
- package/dist/primitives/Table/useTable/features/useTablePrinting.d.ts +10 -3
- package/dist/primitives/Table/useTable/features/useTableSettings.d.ts +2 -2
- package/dist/primitives/Table/useTable/useTable.d.ts +2 -1
- package/dist/primitives/Table/useTable/util/settings.d.ts +0 -1
- package/dist/taco.cjs.development.js +814 -455
- 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/dist/utils/dom.d.ts +3 -1
- package/dist/utils/hooks/useTruncated.d.ts +1 -1
- package/package.json +2 -2
- package/types.json +9339 -9261
- package/dist/components/Report/components/Toolbar/components/Filters/components/Placeholder.d.ts +0 -12
- package/dist/components/Table3/components/toolbar/Filter/filters/components/Placeholder.d.ts +0 -12
- package/dist/esm/packages/taco/src/components/Report/components/Toolbar/components/Filters/components/Placeholder.js +0 -41
- package/dist/esm/packages/taco/src/components/Report/components/Toolbar/components/Filters/components/Placeholder.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/Placeholder.js +0 -41
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/Placeholder.js.map +0 -1
@@ -26,6 +26,7 @@ var HoverCardPrimitive = require('@radix-ui/react-hover-card');
|
|
26
26
|
var DropdownMenuPrimitive = require('@radix-ui/react-dropdown-menu');
|
27
27
|
var RadioGroupPrimitive = require('@radix-ui/react-radio-group');
|
28
28
|
var PrimitiveSwitch = require('@radix-ui/react-switch');
|
29
|
+
var reactPortal = require('@radix-ui/react-portal');
|
29
30
|
var reactTable = require('@tanstack/react-table');
|
30
31
|
var core = require('@dnd-kit/core');
|
31
32
|
var SortablePrimitive = require('@dnd-kit/sortable');
|
@@ -4060,8 +4061,17 @@ function isElementInsideOrTriggeredFromContainer(element, container) {
|
|
4060
4061
|
}
|
4061
4062
|
return !!(container !== null && container !== void 0 && container.contains(element));
|
4062
4063
|
}
|
4063
|
-
function
|
4064
|
-
|
4064
|
+
function isElementInsideOverlay(element) {
|
4065
|
+
return !!(element !== null && element !== void 0 && element.closest('[role=dialog],[role=menu]'));
|
4066
|
+
}
|
4067
|
+
function isSiblingElementInsideSameParentOverlay(element, sibling) {
|
4068
|
+
var _element$closest2;
|
4069
|
+
return !!(element !== null && element !== void 0 && (_element$closest2 = element.closest('[role=dialog],[role=menu]')) !== null && _element$closest2 !== void 0 && _element$closest2.contains(sibling));
|
4070
|
+
}
|
4071
|
+
function isElementInteractive(element) {
|
4072
|
+
if (!element) {
|
4073
|
+
return false;
|
4074
|
+
}
|
4065
4075
|
return ['A', 'BUTTON', 'INPUT', 'TEXTAREA', 'SELECT', 'LABEL', 'OPTION'].includes(element.tagName) && !element.hidden && !element.disabled && !element.readOnly;
|
4066
4076
|
}
|
4067
4077
|
|
@@ -4084,7 +4094,7 @@ function shouldTriggerShortcut(event, key) {
|
|
4084
4094
|
}
|
4085
4095
|
function createShortcutKeyDownHandler(key, handler, stopPropagation = true) {
|
4086
4096
|
return function (event) {
|
4087
|
-
if (event.target !== event.currentTarget &&
|
4097
|
+
if (event.target !== event.currentTarget && isElementInteractive(event.target) && !isPressingMetaKey(event)) {
|
4088
4098
|
return;
|
4089
4099
|
}
|
4090
4100
|
const condition = shouldTriggerShortcut(event, key);
|
@@ -4141,6 +4151,7 @@ const Button = /*#__PURE__*/React.forwardRef(function Button(props, ref) {
|
|
4141
4151
|
});
|
4142
4152
|
const Tag = props.href ? 'a' : 'button';
|
4143
4153
|
return /*#__PURE__*/React.createElement(Tag, Object.assign({}, otherProps, {
|
4154
|
+
href: disabled ? undefined : props.href,
|
4144
4155
|
"aria-disabled": disabled ? 'true' : undefined,
|
4145
4156
|
disabled: disabled,
|
4146
4157
|
target: Tag === 'a' ? target : undefined,
|
@@ -4183,29 +4194,29 @@ const Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(props, ref) {
|
|
4183
4194
|
});
|
4184
4195
|
|
4185
4196
|
const getButtonClasses = () => {
|
4186
|
-
return 'flex-shrink-0 min-h-[theme(spacing.8)] min-w-[theme(spacing.8)] gap-1 h-max leading-5 inline-flex items-center justify-center focus-visible:yt-focus disabled:cursor-not-allowed';
|
4197
|
+
return 'flex-shrink-0 min-h-[theme(spacing.8)] min-w-[theme(spacing.8)] gap-1 h-max leading-5 inline-flex items-center justify-center focus-visible:yt-focus aria-disabled:cursor-not-allowed';
|
4187
4198
|
};
|
4188
4199
|
const getAppearanceClasses = (value, icon = false) => {
|
4189
4200
|
switch (value) {
|
4190
4201
|
case 'primary':
|
4191
|
-
return `wcag-blue-500
|
4202
|
+
return `wcag-blue-500 visited:wcag-blue-500 hover:wcag-blue-700 hover:active:wcag-blue-500 aria-disabled:bg-blue-500/50 aria-disabled:active:bg-blue-500/50`;
|
4192
4203
|
case 'danger':
|
4193
|
-
return `wcag-red-500
|
4204
|
+
return `wcag-red-500 visited:wcag-red-500 hover:wcag-red-700 hover:active:wcag-red-500 aria-disabled:bg-red-500/50 aria-disabled:active:bg-red-500/50`;
|
4194
4205
|
case 'ghost':
|
4195
|
-
return `bg-white border border-blue-500 text-blue-500
|
4206
|
+
return `bg-white border border-blue-500 text-blue-500 visited:text-blue-500 hover:bg-blue-100 hover:text-blue-700 aria-disabled:border-blue-500/50 aria-disabled:text-blue-500/50 aria-disabled:bg-white`;
|
4196
4207
|
case 'discrete':
|
4197
4208
|
{
|
4198
4209
|
if (icon) {
|
4199
|
-
return `bg-transparent text-black
|
4210
|
+
return `bg-transparent text-black visited:text-black hover:bg-[#000]/[0.08] aria-disabled:text-black/30`;
|
4200
4211
|
}
|
4201
|
-
return `bg-transparent text-blue-500
|
4212
|
+
return `bg-transparent text-blue-500 visited:text-blue-500 hover:text-blue-700 aria-disabled:text-blue-500/50`;
|
4202
4213
|
}
|
4203
4214
|
case 'transparent':
|
4204
4215
|
{
|
4205
|
-
return `bg-transparent text-black
|
4216
|
+
return `bg-transparent text-black visited:text-black hover:text-black hover:bg-[#000]/[0.08] aria-disabled:text-black/30 aria-disabled:bg-transparent`;
|
4206
4217
|
}
|
4207
4218
|
default:
|
4208
|
-
return `wcag-grey-200
|
4219
|
+
return `wcag-grey-200 visited:wcag-grey-200 hover:wcag-grey-300 aria-disabled:bg-grey-200/50 aria-disabled:text-black/30`;
|
4209
4220
|
}
|
4210
4221
|
};
|
4211
4222
|
const createButtonWithTooltip = (props, className, ref) => {
|
@@ -4591,7 +4602,11 @@ const defaultLocalisationTexts = {
|
|
4591
4602
|
delete: 'Delete',
|
4592
4603
|
save: 'Save',
|
4593
4604
|
search: 'Search...',
|
4594
|
-
searchOrCreate: 'Search or create...'
|
4605
|
+
searchOrCreate: 'Search or create...',
|
4606
|
+
selectAll: 'Select all',
|
4607
|
+
selectAllResults: 'Select all results',
|
4608
|
+
deselectAll: 'Deselect all',
|
4609
|
+
deselectAllResults: 'Deselect all results'
|
4595
4610
|
},
|
4596
4611
|
toasts: {
|
4597
4612
|
dismiss: 'Dismiss'
|
@@ -4818,6 +4833,49 @@ const Calendar$1 = /*#__PURE__*/React.forwardRef(function Calendar(props, ref) {
|
|
4818
4833
|
})));
|
4819
4834
|
});
|
4820
4835
|
|
4836
|
+
const isElementTruncated = targetElement => {
|
4837
|
+
if (targetElement !== null) {
|
4838
|
+
return targetElement.offsetWidth < targetElement.scrollWidth;
|
4839
|
+
}
|
4840
|
+
return false;
|
4841
|
+
};
|
4842
|
+
const useTruncated = (element, deps = []) => {
|
4843
|
+
const [isTruncated, setIsTruncated] = React__default.useState(isElementTruncated(element));
|
4844
|
+
React__default.useEffect(() => {
|
4845
|
+
setIsTruncated(isElementTruncated(element));
|
4846
|
+
}, [element, ...deps]);
|
4847
|
+
return {
|
4848
|
+
isTruncated
|
4849
|
+
};
|
4850
|
+
};
|
4851
|
+
|
4852
|
+
const Truncate = ({
|
4853
|
+
children,
|
4854
|
+
tooltip
|
4855
|
+
}) => {
|
4856
|
+
const ref = React__default.useRef(null);
|
4857
|
+
const [mounted, setMounted] = React__default.useState(false);
|
4858
|
+
const {
|
4859
|
+
isTruncated
|
4860
|
+
} = useTruncated(ref.current, [mounted]);
|
4861
|
+
React__default.useEffect(() => {
|
4862
|
+
setMounted(true);
|
4863
|
+
return () => setMounted(false);
|
4864
|
+
}, []);
|
4865
|
+
const clonedChildrenWithRef = /*#__PURE__*/React__default.cloneElement(React__default.Children.only(children), {
|
4866
|
+
ref,
|
4867
|
+
className: cn(children.props.className, 'truncate', {
|
4868
|
+
'hover:cursor-pointer': isTruncated
|
4869
|
+
})
|
4870
|
+
});
|
4871
|
+
if (isTruncated) {
|
4872
|
+
return /*#__PURE__*/React__default.createElement(Tooltip, {
|
4873
|
+
title: tooltip
|
4874
|
+
}, clonedChildrenWithRef);
|
4875
|
+
}
|
4876
|
+
return clonedChildrenWithRef;
|
4877
|
+
};
|
4878
|
+
|
4821
4879
|
const Content$2 = /*#__PURE__*/React.forwardRef(function CardContent(externalProps, ref) {
|
4822
4880
|
const {
|
4823
4881
|
noPadding,
|
@@ -4828,6 +4886,7 @@ const Content$2 = /*#__PURE__*/React.forwardRef(function CardContent(externalPro
|
|
4828
4886
|
}, props.className);
|
4829
4887
|
return /*#__PURE__*/React.createElement("div", Object.assign({}, props, {
|
4830
4888
|
className: className,
|
4889
|
+
"data-taco": "card-content",
|
4831
4890
|
ref: ref
|
4832
4891
|
}));
|
4833
4892
|
});
|
@@ -4837,16 +4896,18 @@ const Card = /*#__PURE__*/React.forwardRef(function Card(props, ref) {
|
|
4837
4896
|
menu,
|
4838
4897
|
children
|
4839
4898
|
} = props;
|
4840
|
-
const className = cn('bg-white flex flex-col rounded-xl border border-solid border-radius-[12px] border-grey-300 hover:border-grey-500
|
4899
|
+
const className = cn('bg-white flex flex-col rounded-xl border border-solid border-radius-[12px] border-grey-300 hover:border-grey-500', props.className);
|
4841
4900
|
return /*#__PURE__*/React.createElement("div", {
|
4842
4901
|
className: className,
|
4843
4902
|
"data-taco": "card",
|
4844
4903
|
ref: ref
|
4845
4904
|
}, /*#__PURE__*/React.createElement("div", {
|
4846
4905
|
className: "mx-4 mb-2 mt-4 flex"
|
4847
|
-
}, title && /*#__PURE__*/React.createElement(
|
4848
|
-
|
4849
|
-
},
|
4906
|
+
}, title && ( /*#__PURE__*/React.createElement(Truncate, {
|
4907
|
+
tooltip: title
|
4908
|
+
}, /*#__PURE__*/React.createElement("h4", {
|
4909
|
+
className: "mb-0 flex-grow truncate text-left"
|
4910
|
+
}, title))), menu ? /*#__PURE__*/React.createElement(IconButton, {
|
4850
4911
|
icon: "ellipsis-horizontal",
|
4851
4912
|
appearance: "discrete",
|
4852
4913
|
menu: menu,
|
@@ -4860,12 +4921,52 @@ const useId = nativeId => {
|
|
4860
4921
|
return React__default.useMemo(() => nativeId !== null && nativeId !== void 0 ? nativeId : uuid.v4(), []);
|
4861
4922
|
};
|
4862
4923
|
|
4924
|
+
const Spinner = /*#__PURE__*/React__default.forwardRef(function Spinner(props, ref) {
|
4925
|
+
const {
|
4926
|
+
delay = 350,
|
4927
|
+
label,
|
4928
|
+
...otherProps
|
4929
|
+
} = props;
|
4930
|
+
const [visible, setVisibility] = React__default.useState(!delay);
|
4931
|
+
React__default.useEffect(() => {
|
4932
|
+
let timeout;
|
4933
|
+
if (delay) {
|
4934
|
+
timeout = window.setTimeout(() => setVisibility(true), delay);
|
4935
|
+
}
|
4936
|
+
return () => {
|
4937
|
+
if (timeout) {
|
4938
|
+
clearTimeout(timeout);
|
4939
|
+
}
|
4940
|
+
};
|
4941
|
+
}, [delay]);
|
4942
|
+
if (!visible) {
|
4943
|
+
return null;
|
4944
|
+
}
|
4945
|
+
const className = cn('inline-flex flex-col relative items-center', otherProps.className);
|
4946
|
+
return /*#__PURE__*/React__default.createElement("div", Object.assign({}, otherProps, {
|
4947
|
+
className: className,
|
4948
|
+
"data-taco": "spinner",
|
4949
|
+
ref: ref
|
4950
|
+
}), /*#__PURE__*/React__default.createElement("svg", {
|
4951
|
+
className: "h-10 w-10 animate-[spinnerRotation_2s_linear_infinite]",
|
4952
|
+
viewBox: "0 0 100 100",
|
4953
|
+
xmlns: "http://www.w3.org/2000/svg"
|
4954
|
+
}, /*#__PURE__*/React__default.createElement("circle", {
|
4955
|
+
cx: "50",
|
4956
|
+
cy: "50",
|
4957
|
+
r: "45"
|
4958
|
+
})), label && /*#__PURE__*/React__default.createElement("span", {
|
4959
|
+
className: "mt-4"
|
4960
|
+
}, label));
|
4961
|
+
});
|
4962
|
+
|
4863
4963
|
const Checkbox = /*#__PURE__*/React.forwardRef(function Checkbox(props, ref) {
|
4864
4964
|
const {
|
4865
4965
|
checked,
|
4866
4966
|
indeterminate,
|
4867
4967
|
invalid,
|
4868
4968
|
label,
|
4969
|
+
loading,
|
4869
4970
|
onChange,
|
4870
4971
|
...otherProps
|
4871
4972
|
} = props;
|
@@ -4896,6 +4997,11 @@ const Checkbox = /*#__PURE__*/React.forwardRef(function Checkbox(props, ref) {
|
|
4896
4997
|
event.currentTarget.click();
|
4897
4998
|
}
|
4898
4999
|
};
|
5000
|
+
const spinnerClassname = cn(
|
5001
|
+
//Spinner is slightly bigger then 'line' and 'tick' icons, so making it 2px smaller from each side
|
5002
|
+
"m-0.5 !h-[calc(100%-theme('spacing.1'))] !w-[calc(100%-theme('spacing.1'))]", {
|
5003
|
+
'text-blue-500': !checked && !indeterminate
|
5004
|
+
});
|
4899
5005
|
const element = /*#__PURE__*/React.createElement(CheckboxPrimitive.Root, Object.assign({}, otherProps, labelledByProps, {
|
4900
5006
|
"aria-invalid": invalid ? 'true' : undefined,
|
4901
5007
|
"data-taco": "checkbox",
|
@@ -4904,12 +5010,14 @@ const Checkbox = /*#__PURE__*/React.forwardRef(function Checkbox(props, ref) {
|
|
4904
5010
|
onCheckedChange: handleChange,
|
4905
5011
|
onKeyDown: handleKeyDown,
|
4906
5012
|
ref: ref
|
4907
|
-
}), /*#__PURE__*/React.createElement(
|
5013
|
+
}), loading ? ( /*#__PURE__*/React.createElement(Spinner, {
|
5014
|
+
className: spinnerClassname
|
5015
|
+
})) : ( /*#__PURE__*/React.createElement(CheckboxPrimitive.Indicator, {
|
4908
5016
|
className: "flex h-full w-full"
|
4909
5017
|
}, /*#__PURE__*/React.createElement(Icon, {
|
4910
5018
|
name: indeterminate ? 'line' : 'tick',
|
4911
5019
|
className: "!h-full !w-full"
|
4912
|
-
})));
|
5020
|
+
}))));
|
4913
5021
|
if (label) {
|
4914
5022
|
const labelContainerClassName = cn('flex items-center cursor-pointer gap-2', {
|
4915
5023
|
'cursor-not-allowed text-grey-300': props.disabled
|
@@ -5208,45 +5316,6 @@ const useListScrollTo = (internalRef, itemRefs) => {
|
|
5208
5316
|
};
|
5209
5317
|
};
|
5210
5318
|
|
5211
|
-
const Spinner = /*#__PURE__*/React__default.forwardRef(function Spinner(props, ref) {
|
5212
|
-
const {
|
5213
|
-
delay = 350,
|
5214
|
-
label,
|
5215
|
-
...otherProps
|
5216
|
-
} = props;
|
5217
|
-
const [visible, setVisibility] = React__default.useState(!delay);
|
5218
|
-
React__default.useEffect(() => {
|
5219
|
-
let timeout;
|
5220
|
-
if (delay) {
|
5221
|
-
timeout = window.setTimeout(() => setVisibility(true), delay);
|
5222
|
-
}
|
5223
|
-
return () => {
|
5224
|
-
if (timeout) {
|
5225
|
-
clearTimeout(timeout);
|
5226
|
-
}
|
5227
|
-
};
|
5228
|
-
}, [delay]);
|
5229
|
-
if (!visible) {
|
5230
|
-
return null;
|
5231
|
-
}
|
5232
|
-
const className = cn('inline-flex flex-col relative items-center', otherProps.className);
|
5233
|
-
return /*#__PURE__*/React__default.createElement("div", Object.assign({}, otherProps, {
|
5234
|
-
className: className,
|
5235
|
-
"data-taco": "spinner",
|
5236
|
-
ref: ref
|
5237
|
-
}), /*#__PURE__*/React__default.createElement("svg", {
|
5238
|
-
className: "h-10 w-10 animate-[spinnerRotation_2s_linear_infinite]",
|
5239
|
-
viewBox: "0 0 100 100",
|
5240
|
-
xmlns: "http://www.w3.org/2000/svg"
|
5241
|
-
}, /*#__PURE__*/React__default.createElement("circle", {
|
5242
|
-
cx: "50",
|
5243
|
-
cy: "50",
|
5244
|
-
r: "45"
|
5245
|
-
})), label && /*#__PURE__*/React__default.createElement("span", {
|
5246
|
-
className: "mt-4"
|
5247
|
-
}, label));
|
5248
|
-
});
|
5249
|
-
|
5250
5319
|
const getId = (id, value) => `${id}_${value}`;
|
5251
5320
|
const getNextEnabledItem = (event, data, index) => {
|
5252
5321
|
const nextIndex = getNextIndexFromKey(event.key, data.length, index);
|
@@ -7001,30 +7070,8 @@ Drawer.Close = Close$3;
|
|
7001
7070
|
Drawer.Actions = Actions;
|
7002
7071
|
Drawer.Outlet = Outlet;
|
7003
7072
|
|
7004
|
-
const isTruncated = targetElement => {
|
7005
|
-
if (targetElement !== null) {
|
7006
|
-
return targetElement.offsetWidth < targetElement.scrollWidth;
|
7007
|
-
}
|
7008
|
-
return false;
|
7009
|
-
};
|
7010
|
-
const useTruncated = (element, deps = []) => {
|
7011
|
-
const [truncated, setTruncated] = React__default.useState(isTruncated(element));
|
7012
|
-
React__default.useEffect(() => {
|
7013
|
-
setTruncated(isTruncated(element));
|
7014
|
-
}, [element, ...deps]);
|
7015
|
-
return {
|
7016
|
-
truncated
|
7017
|
-
};
|
7018
|
-
};
|
7019
|
-
|
7020
7073
|
const Field = /*#__PURE__*/React.forwardRef(function Field(props, ref) {
|
7021
|
-
const [showTooltip, setShowTooltip] = React.useState(false);
|
7022
7074
|
const messageRef = React.useRef(null);
|
7023
|
-
React.useEffect(() => {
|
7024
|
-
// refs are null on the first render so setting showTooltip state forces the rerender to see if message is
|
7025
|
-
// truncated or not
|
7026
|
-
setShowTooltip(true);
|
7027
|
-
}, []);
|
7028
7075
|
const {
|
7029
7076
|
disabled,
|
7030
7077
|
children,
|
@@ -7042,16 +7089,12 @@ const Field = /*#__PURE__*/React.forwardRef(function Field(props, ref) {
|
|
7042
7089
|
'text-yellow-700': warning && !invalid,
|
7043
7090
|
'opacity-50': disabled
|
7044
7091
|
});
|
7045
|
-
const {
|
7046
|
-
truncated: isMessageTrucated
|
7047
|
-
} = useTruncated(messageRef.current, [message, showTooltip]);
|
7048
7092
|
return /*#__PURE__*/React.createElement("label", Object.assign({}, otherProps, {
|
7049
7093
|
className: className,
|
7050
7094
|
"data-taco": "label",
|
7051
7095
|
ref: ref
|
7052
|
-
}), children, message && ( /*#__PURE__*/React.createElement(
|
7053
|
-
|
7054
|
-
hide: !isMessageTrucated
|
7096
|
+
}), children, message && ( /*#__PURE__*/React.createElement(Truncate, {
|
7097
|
+
tooltip: message
|
7055
7098
|
}, /*#__PURE__*/React.createElement("span", {
|
7056
7099
|
className: messageClassName,
|
7057
7100
|
ref: messageRef,
|
@@ -8421,8 +8464,9 @@ const sanitizeButtonPropsForMenuItem = (button, index) => {
|
|
8421
8464
|
};
|
8422
8465
|
const DEFAULT_OFFSET = 32 + 8;
|
8423
8466
|
const OverflowGroup = /*#__PURE__*/React__default.forwardRef(function OverflowGroup(props, ref) {
|
8467
|
+
var _moreButton;
|
8424
8468
|
const {
|
8425
|
-
moreButton
|
8469
|
+
moreButton,
|
8426
8470
|
...attributes
|
8427
8471
|
} = props;
|
8428
8472
|
const internalRef = useMergedRef(ref);
|
@@ -8432,12 +8476,17 @@ const OverflowGroup = /*#__PURE__*/React__default.forwardRef(function OverflowGr
|
|
8432
8476
|
var _el$getBoundingClient;
|
8433
8477
|
return setButtonWidth(el === null || el === void 0 ? void 0 : (_el$getBoundingClient = el.getBoundingClientRect()) === null || _el$getBoundingClient === void 0 ? void 0 : _el$getBoundingClient.width);
|
8434
8478
|
}, []);
|
8435
|
-
const
|
8436
|
-
|
8437
|
-
});
|
8479
|
+
const {
|
8480
|
+
texts
|
8481
|
+
} = useLocalization();
|
8438
8482
|
const intersectedChildIndex = useIntersectionObserver(internalRef, buttonWidth);
|
8439
8483
|
const children = React__default.Children.toArray(props.children);
|
8440
8484
|
const hiddenChildren = intersectedChildIndex !== undefined ? children.slice(intersectedChildIndex) : [];
|
8485
|
+
const hiddenChildrenCount = hiddenChildren.length;
|
8486
|
+
const moreButtonText = hiddenChildrenCount ? `${hiddenChildrenCount} ${texts.header.more}` : '';
|
8487
|
+
const MoreButton = (_moreButton = moreButton === null || moreButton === void 0 ? void 0 : moreButton(moreButtonText)) !== null && _moreButton !== void 0 ? _moreButton : /*#__PURE__*/React__default.createElement(IconButton, {
|
8488
|
+
icon: "more"
|
8489
|
+
});
|
8441
8490
|
const className = cn('flex overflow-hidden', props.className);
|
8442
8491
|
return /*#__PURE__*/React__default.createElement("div", Object.assign({}, attributes, {
|
8443
8492
|
className: className,
|
@@ -8448,8 +8497,8 @@ const OverflowGroup = /*#__PURE__*/React__default.forwardRef(function OverflowGr
|
|
8448
8497
|
visible: intersectedChildIndex === undefined || index < intersectedChildIndex,
|
8449
8498
|
'invisible order-[100] pointer-events-none': intersectedChildIndex !== undefined && index >= intersectedChildIndex
|
8450
8499
|
})
|
8451
|
-
})), hiddenChildren.length ? /*#__PURE__*/React__default.cloneElement(
|
8452
|
-
className: cn('sticky right-0 order-[99]',
|
8500
|
+
})), hiddenChildren.length ? /*#__PURE__*/React__default.cloneElement(MoreButton, {
|
8501
|
+
className: cn('sticky right-0 order-[99]', MoreButton.props.className),
|
8453
8502
|
'data-observer-ignore': true,
|
8454
8503
|
menu: menuProps => ( /*#__PURE__*/React__default.createElement(Menu$1, Object.assign({}, menuProps), /*#__PURE__*/React__default.createElement(Menu$1.Content, null, hiddenChildren.map(sanitizeButtonPropsForMenuItem)))),
|
8455
8504
|
ref: buttonRefCallback
|
@@ -9141,9 +9190,9 @@ const ToastProvider = ({
|
|
9141
9190
|
}, []);
|
9142
9191
|
return /*#__PURE__*/React.createElement(ToastContext.Provider, Object.assign({}, props, {
|
9143
9192
|
value: toaster
|
9144
|
-
}), children, /*#__PURE__*/React.createElement("div", {
|
9193
|
+
}), children, /*#__PURE__*/React.createElement(reactPortal.Portal, null, /*#__PURE__*/React.createElement("div", {
|
9145
9194
|
id: "yt-toast__container",
|
9146
|
-
className: "pointer-events-all absolute bottom-0 right-0
|
9195
|
+
className: "pointer-events-all absolute !left-auto bottom-0 right-0 z-[1000] mb-4 mr-4 flex max-w-md flex-col items-end justify-end",
|
9147
9196
|
role: "log"
|
9148
9197
|
}, /*#__PURE__*/React.createElement(framerMotion.AnimatePresence, {
|
9149
9198
|
initial: false
|
@@ -9173,7 +9222,7 @@ const ToastProvider = ({
|
|
9173
9222
|
}
|
9174
9223
|
}, /*#__PURE__*/React.createElement(Toast, Object.assign({}, toast, {
|
9175
9224
|
onClose: () => handleClose(toast.id)
|
9176
|
-
}))))))));
|
9225
|
+
})))))))));
|
9177
9226
|
};
|
9178
9227
|
const useToast = () => React.useContext(ToastContext);
|
9179
9228
|
|
@@ -9251,13 +9300,32 @@ function getCellValueAsString(value, dataType) {
|
|
9251
9300
|
}
|
9252
9301
|
return String(value);
|
9253
9302
|
}
|
9303
|
+
function orderColumn(column, {
|
9304
|
+
orderingDisabled,
|
9305
|
+
orderingEnabled
|
9306
|
+
}) {
|
9307
|
+
const groupedColumn = column;
|
9308
|
+
if (Array.isArray(groupedColumn.columns) && groupedColumn.columns.length > 0) {
|
9309
|
+
groupedColumn.columns.forEach(subcolumn => orderColumn(subcolumn, {
|
9310
|
+
orderingDisabled,
|
9311
|
+
orderingEnabled
|
9312
|
+
}));
|
9313
|
+
} else {
|
9314
|
+
var _column$meta;
|
9315
|
+
if ((_column$meta = column.meta) !== null && _column$meta !== void 0 && _column$meta.enableOrdering) {
|
9316
|
+
orderingEnabled.push(column.id);
|
9317
|
+
} else {
|
9318
|
+
orderingDisabled.push(column.id);
|
9319
|
+
}
|
9320
|
+
}
|
9321
|
+
}
|
9254
9322
|
// ordering
|
9255
9323
|
function ensureOrdering(columns, settingsOrder, internalColumnsPinnedToTheRight = ['__actions']) {
|
9256
9324
|
// internal columns come with a defined order
|
9257
9325
|
const internalColumns = columns.filter(column => isInternalColumn(column.id) && !internalColumnsPinnedToTheRight.includes(String(column.id))).map(column => column.id);
|
9258
9326
|
// columns with ordering disabled should be moved to the front
|
9259
9327
|
const orderingDisabled = [];
|
9260
|
-
|
9328
|
+
let orderingEnabled = [];
|
9261
9329
|
let orderedColumns = columns;
|
9262
9330
|
// if settings is defined, make sure the columns that are actual children are sorted by it
|
9263
9331
|
if (Array.isArray(settingsOrder)) {
|
@@ -9266,16 +9334,23 @@ function ensureOrdering(columns, settingsOrder, internalColumnsPinnedToTheRight
|
|
9266
9334
|
(a, b) => (settingsOrder.indexOf(a.id) >>> 0) - (settingsOrder.indexOf(b.id) >>> 0));
|
9267
9335
|
}
|
9268
9336
|
orderedColumns.forEach(column => {
|
9269
|
-
var _column$meta;
|
9270
9337
|
if (isInternalColumn(column.id)) {
|
9271
9338
|
return;
|
9272
9339
|
}
|
9273
|
-
|
9274
|
-
|
9275
|
-
|
9276
|
-
|
9277
|
-
}
|
9340
|
+
orderColumn(column, {
|
9341
|
+
orderingDisabled,
|
9342
|
+
orderingEnabled
|
9343
|
+
});
|
9278
9344
|
});
|
9345
|
+
if (settingsOrder && settingsOrder.length > 0) {
|
9346
|
+
orderingEnabled = orderingEnabled.reduce((acc, column) => {
|
9347
|
+
const index = settingsOrder.indexOf(column);
|
9348
|
+
if (index > -1) {
|
9349
|
+
acc[index] = column;
|
9350
|
+
}
|
9351
|
+
return acc;
|
9352
|
+
}, []).filter(column => !!column);
|
9353
|
+
}
|
9279
9354
|
const order = [...internalColumns, ...orderingDisabled, ...orderingEnabled];
|
9280
9355
|
// actions should always be last, enforce that
|
9281
9356
|
internalColumnsPinnedToTheRight.forEach(id => {
|
@@ -9726,7 +9801,7 @@ const DEFAULT_PRESET = {
|
|
9726
9801
|
enableRowClick: false,
|
9727
9802
|
enableRowGoto: false,
|
9728
9803
|
enableRowHeight: false,
|
9729
|
-
|
9804
|
+
enableSaveSettings: false
|
9730
9805
|
};
|
9731
9806
|
const presets = {
|
9732
9807
|
lite: {
|
@@ -9750,7 +9825,7 @@ const presets = {
|
|
9750
9825
|
enableRowClick: true,
|
9751
9826
|
enableRowGoto: true,
|
9752
9827
|
enableRowHeight: false,
|
9753
|
-
|
9828
|
+
enableSaveSettings: true
|
9754
9829
|
},
|
9755
9830
|
complex: {
|
9756
9831
|
// react-table built-in
|
@@ -9773,11 +9848,11 @@ const presets = {
|
|
9773
9848
|
enableRowClick: true,
|
9774
9849
|
enableRowGoto: true,
|
9775
9850
|
enableRowHeight: true,
|
9776
|
-
|
9851
|
+
enableSaveSettings: true
|
9777
9852
|
}
|
9778
9853
|
};
|
9779
9854
|
function useTableFeaturePreset(props) {
|
9780
|
-
var _props$enableRowActio, _props$enableRowClick, _props$enableRowGoto, _props$enableRowExpan, _props$enableRowSelec, _props$enableRowSelec2, _props$enableFilterin, _props$enableSearch, _props$enableSorting, _props$enableColumnFr, _props$enableColumnHi, _props$enableColumnRe, _props$enableColumnOr, _props$enableFontSize, _props$enableFooter, _props$enablePrinting, _props$enableRowActiv, _props$rowActions2, _props$enableRowHeigh, _props$
|
9855
|
+
var _props$enableRowActio, _props$enableRowClick, _props$enableRowGoto, _props$enableRowExpan, _props$enableRowSelec, _props$enableRowSelec2, _props$enableFilterin, _props$enableSearch, _props$enableSorting, _props$enableColumnFr, _props$enableColumnHi, _props$enableColumnRe, _props$enableColumnOr, _props$enableFontSize, _props$enableFooter, _props$enablePrinting, _props$enableRowActiv, _props$rowActions2, _props$enableRowHeigh, _props$enableSaveSett;
|
9781
9856
|
const presetOptions = props.preset ? presets[props.preset] : DEFAULT_PRESET;
|
9782
9857
|
const enableRowActions = (_props$enableRowActio = props.enableRowActions) !== null && _props$enableRowActio !== void 0 ? _props$enableRowActio : presetOptions.enableRowActions;
|
9783
9858
|
const enableRowClick = (_props$enableRowClick = props.enableRowClick) !== null && _props$enableRowClick !== void 0 ? _props$enableRowClick : presetOptions.enableRowClick;
|
@@ -9828,7 +9903,7 @@ function useTableFeaturePreset(props) {
|
|
9828
9903
|
enableRowClick: enableRowClick && !!props.onRowClick,
|
9829
9904
|
enableRowGoto: enableRowGoto && !!props.onRowGoto,
|
9830
9905
|
enableRowHeight: (_props$enableRowHeigh = props.enableRowHeight) !== null && _props$enableRowHeigh !== void 0 ? _props$enableRowHeigh : presetOptions.enableRowHeight,
|
9831
|
-
|
9906
|
+
enableSaveSettings: (_props$enableSaveSett = props.enableSaveSettings) !== null && _props$enableSaveSett !== void 0 ? _props$enableSaveSett : presetOptions.enableSaveSettings
|
9832
9907
|
};
|
9833
9908
|
}
|
9834
9909
|
|
@@ -9870,17 +9945,79 @@ function useTableFontSize(isEnabled = false, defaultFontSize = 'medium') {
|
|
9870
9945
|
};
|
9871
9946
|
}
|
9872
9947
|
|
9873
|
-
function
|
9948
|
+
function useTacoSettings() {
|
9949
|
+
return React__default.useContext(TacoContext);
|
9950
|
+
}
|
9951
|
+
|
9952
|
+
const useLocalStorage = (key, initialValue) => {
|
9953
|
+
const [state, setState] = React__default.useState(() => {
|
9954
|
+
if (!key) {
|
9955
|
+
return initialValue;
|
9956
|
+
}
|
9957
|
+
try {
|
9958
|
+
const localStorageValue = localStorage.getItem(key);
|
9959
|
+
if (typeof localStorageValue !== 'string') {
|
9960
|
+
localStorage.setItem(key, JSON.stringify(initialValue));
|
9961
|
+
return initialValue;
|
9962
|
+
} else {
|
9963
|
+
return JSON.parse(localStorageValue || 'null');
|
9964
|
+
}
|
9965
|
+
} catch {
|
9966
|
+
// If user is in private mode or has storage restriction
|
9967
|
+
// localStorage can throw. JSON.parse and JSON.stringify
|
9968
|
+
// can throw, too.
|
9969
|
+
return initialValue;
|
9970
|
+
}
|
9971
|
+
});
|
9972
|
+
React__default.useEffect(() => {
|
9973
|
+
if (!key) {
|
9974
|
+
return;
|
9975
|
+
}
|
9976
|
+
try {
|
9977
|
+
const serializedState = JSON.stringify(state);
|
9978
|
+
localStorage.setItem(key, serializedState);
|
9979
|
+
} catch {
|
9980
|
+
// If user is in private mode or has storage restriction
|
9981
|
+
// localStorage can throw. Also JSON.stringify can throw.
|
9982
|
+
}
|
9983
|
+
}, [key, state]);
|
9984
|
+
const clear = () => {
|
9985
|
+
if (key) {
|
9986
|
+
localStorage.removeItem(key);
|
9987
|
+
}
|
9988
|
+
};
|
9989
|
+
return [state, setState, clear];
|
9990
|
+
};
|
9991
|
+
|
9992
|
+
function useTablePrinting(isEnabled = false, tableId) {
|
9874
9993
|
const [isPrinting, setIsPrinting] = React__default.useState(false);
|
9875
|
-
const [
|
9994
|
+
const [settings, setSetting] = useTablePrintingSettings(tableId);
|
9876
9995
|
return {
|
9877
9996
|
isEnabled,
|
9878
9997
|
isPrinting,
|
9879
9998
|
setIsPrinting,
|
9880
|
-
|
9881
|
-
|
9999
|
+
settings,
|
10000
|
+
setSetting
|
9882
10001
|
};
|
9883
10002
|
}
|
10003
|
+
const DEFAULT_PRINT_SETTINGS = {
|
10004
|
+
size: 'A4',
|
10005
|
+
orientation: 'portrait',
|
10006
|
+
allRows: true,
|
10007
|
+
splitGroups: true
|
10008
|
+
};
|
10009
|
+
function useTablePrintingSettings(tableId) {
|
10010
|
+
const tacoSettings = useTacoSettings();
|
10011
|
+
const uniqueId = `taco.${tacoSettings.uniqueUserIdentifier}.table.${tableId}.print.settings`;
|
10012
|
+
const [persistedSettings, setPersistedSettings] = useLocalStorage(uniqueId, DEFAULT_PRINT_SETTINGS);
|
10013
|
+
function setSetting(key, value) {
|
10014
|
+
setPersistedSettings(currentSettings => ({
|
10015
|
+
...currentSettings,
|
10016
|
+
[key]: value
|
10017
|
+
}));
|
10018
|
+
}
|
10019
|
+
return [persistedSettings, setSetting];
|
10020
|
+
}
|
9884
10021
|
|
9885
10022
|
const DEFAULT_ROW_ACTIONS_LENGTH = 4;
|
9886
10023
|
function useTableRowActions(isEnabled = false, rowActions, rowActionsLength = DEFAULT_ROW_ACTIONS_LENGTH) {
|
@@ -10140,6 +10277,130 @@ function _finallyRethrows(body, finalizer) {
|
|
10140
10277
|
}
|
10141
10278
|
|
10142
10279
|
const DEFAULT_PAGE_SIZE = 100;
|
10280
|
+
function useTableDataLoader(fetch, fetchAll, options = {
|
10281
|
+
pageSize: DEFAULT_PAGE_SIZE
|
10282
|
+
}) {
|
10283
|
+
const {
|
10284
|
+
pageSize
|
10285
|
+
} = options;
|
10286
|
+
// track the data length, we don't know it until the first request
|
10287
|
+
const length = React__default.useRef(undefined);
|
10288
|
+
// data will be filled after the first request, then we'll update values in place
|
10289
|
+
const [data, setData] = React__default.useState([]);
|
10290
|
+
// track which pages have been loaded to dedupe requests
|
10291
|
+
const _pendingPageRequests = React__default.useRef({});
|
10292
|
+
const _lastUsedSorting = React__default.useRef([]);
|
10293
|
+
const _lastUsedFilters = React__default.useRef([]);
|
10294
|
+
const _lastUsedSearch = React__default.useRef();
|
10295
|
+
const _forceReset = React__default.useRef(false);
|
10296
|
+
const loadPage = function (pageIndex, sorting, filters, search) {
|
10297
|
+
try {
|
10298
|
+
let reset = false;
|
10299
|
+
// sorting or filters changed, reset everything
|
10300
|
+
if (_forceReset.current || search !== _lastUsedSearch.current || JSON.stringify(sorting) !== JSON.stringify(_lastUsedSorting.current) || JSON.stringify(filters) !== JSON.stringify(_lastUsedFilters.current)) {
|
10301
|
+
_pendingPageRequests.current = {};
|
10302
|
+
// nuke the dataset so that we "start again" after sorting
|
10303
|
+
reset = true;
|
10304
|
+
}
|
10305
|
+
if (_pendingPageRequests.current[pageIndex]) {
|
10306
|
+
// if page is already loaded/loading, abort, otherwise mark it as loading
|
10307
|
+
return Promise.resolve();
|
10308
|
+
} else {
|
10309
|
+
_pendingPageRequests.current[pageIndex] = true;
|
10310
|
+
}
|
10311
|
+
_forceReset.current = false;
|
10312
|
+
// set the sorting so we can track if it changed between loads
|
10313
|
+
_lastUsedSorting.current = sorting;
|
10314
|
+
// set the filters so we can track if it changed between loads
|
10315
|
+
_lastUsedFilters.current = filters;
|
10316
|
+
// set the search so we can track if it changed between loads
|
10317
|
+
_lastUsedSearch.current = search;
|
10318
|
+
const _temp = _finallyRethrows(function () {
|
10319
|
+
return _catch(function () {
|
10320
|
+
return Promise.resolve(fetch(pageIndex, pageSize, sorting, filters, search)).then(function (response) {
|
10321
|
+
// update state, here we do some "magic" to support "load in place"
|
10322
|
+
setData(currentData => {
|
10323
|
+
let nextData;
|
10324
|
+
// reset table state if:
|
10325
|
+
// - the length isn't set at all (first load)
|
10326
|
+
// - the client length and server length are different (the data changed)
|
10327
|
+
if (reset || length.current !== response.length) {
|
10328
|
+
length.current = response.length;
|
10329
|
+
nextData = Array(length.current).fill(undefined);
|
10330
|
+
} else {
|
10331
|
+
nextData = [...currentData];
|
10332
|
+
}
|
10333
|
+
const startIndex = pageIndex * pageSize;
|
10334
|
+
nextData.splice(startIndex, pageSize, ...response.data);
|
10335
|
+
return nextData;
|
10336
|
+
});
|
10337
|
+
});
|
10338
|
+
}, function () {});
|
10339
|
+
}, function (_wasThrown, _result) {
|
10340
|
+
_pendingPageRequests.current[pageIndex] = false;
|
10341
|
+
if (_wasThrown) throw _result;
|
10342
|
+
return _result;
|
10343
|
+
});
|
10344
|
+
return Promise.resolve(_temp && _temp.then ? _temp.then(function () {}) : void 0);
|
10345
|
+
} catch (e) {
|
10346
|
+
return Promise.reject(e);
|
10347
|
+
}
|
10348
|
+
};
|
10349
|
+
const loadAll = function (sorting, filters, search) {
|
10350
|
+
try {
|
10351
|
+
const _temp2 = _catch(function () {
|
10352
|
+
return Promise.resolve(fetchAll(sorting, filters, search)).then(function (response) {
|
10353
|
+
length.current = response.length;
|
10354
|
+
setData(() => {
|
10355
|
+
let nextData;
|
10356
|
+
if (response.data.length !== response.length) {
|
10357
|
+
nextData = Array(response.length).fill(undefined);
|
10358
|
+
nextData.splice(0, response.data.length, ...response.data);
|
10359
|
+
} else {
|
10360
|
+
nextData = [...response.data];
|
10361
|
+
}
|
10362
|
+
return nextData;
|
10363
|
+
});
|
10364
|
+
});
|
10365
|
+
}, function () {});
|
10366
|
+
return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
|
10367
|
+
} catch (e) {
|
10368
|
+
return Promise.reject(e);
|
10369
|
+
}
|
10370
|
+
};
|
10371
|
+
const invalidate = function () {
|
10372
|
+
try {
|
10373
|
+
_forceReset.current = true;
|
10374
|
+
return loadPage(0, _lastUsedSorting.current, _lastUsedFilters.current, _lastUsedSearch.current);
|
10375
|
+
} catch (e) {
|
10376
|
+
return Promise.reject(e);
|
10377
|
+
}
|
10378
|
+
};
|
10379
|
+
// we reset the page to 0 whenever sorting, filtering or search changes
|
10380
|
+
const handleSort = function (sorting) {
|
10381
|
+
try {
|
10382
|
+
return loadPage(0, sorting, _lastUsedFilters.current, _lastUsedSearch.current);
|
10383
|
+
} catch (e) {
|
10384
|
+
return Promise.reject(e);
|
10385
|
+
}
|
10386
|
+
};
|
10387
|
+
const handleFilter = function (filters) {
|
10388
|
+
try {
|
10389
|
+
return loadPage(0, _lastUsedSorting.current, filters, _lastUsedSearch.current);
|
10390
|
+
} catch (e) {
|
10391
|
+
return Promise.reject(e);
|
10392
|
+
}
|
10393
|
+
};
|
10394
|
+
return [{
|
10395
|
+
data,
|
10396
|
+
length: length.current,
|
10397
|
+
loadAll,
|
10398
|
+
loadPage,
|
10399
|
+
onChangeFilter: handleFilter,
|
10400
|
+
onChangeSort: handleSort,
|
10401
|
+
pageSize
|
10402
|
+
}, invalidate];
|
10403
|
+
}
|
10143
10404
|
|
10144
10405
|
function useTableServerLoading(loadPage, loadAll, pageSize = DEFAULT_PAGE_SIZE) {
|
10145
10406
|
const isEnabled = !!loadPage && !!loadAll;
|
@@ -10186,71 +10447,68 @@ function useTableServerLoading(loadPage, loadAll, pageSize = DEFAULT_PAGE_SIZE)
|
|
10186
10447
|
};
|
10187
10448
|
}
|
10188
10449
|
|
10189
|
-
const
|
10190
|
-
|
10191
|
-
|
10192
|
-
|
10193
|
-
|
10194
|
-
|
10195
|
-
|
10196
|
-
|
10197
|
-
|
10198
|
-
|
10199
|
-
} else {
|
10200
|
-
return JSON.parse(localStorageValue || 'null');
|
10201
|
-
}
|
10202
|
-
} catch {
|
10203
|
-
// If user is in private mode or has storage restriction
|
10204
|
-
// localStorage can throw. JSON.parse and JSON.stringify
|
10205
|
-
// can throw, too.
|
10206
|
-
return initialValue;
|
10207
|
-
}
|
10208
|
-
});
|
10209
|
-
React__default.useEffect(() => {
|
10210
|
-
if (!key) {
|
10211
|
-
return;
|
10212
|
-
}
|
10213
|
-
try {
|
10214
|
-
const serializedState = JSON.stringify(state);
|
10215
|
-
localStorage.setItem(key, serializedState);
|
10216
|
-
} catch {
|
10217
|
-
// If user is in private mode or has storage restriction
|
10218
|
-
// localStorage can throw. Also JSON.stringify can throw.
|
10219
|
-
}
|
10220
|
-
}, [key, state]);
|
10221
|
-
const clear = () => {
|
10222
|
-
if (key) {
|
10223
|
-
localStorage.removeItem(key);
|
10224
|
-
}
|
10225
|
-
};
|
10226
|
-
return [state, setState, clear];
|
10450
|
+
const DEFAULT_ENABLED_OPTIONS = {
|
10451
|
+
columnOrder: true,
|
10452
|
+
columnPinning: true,
|
10453
|
+
columnSizing: true,
|
10454
|
+
columnVisibility: true,
|
10455
|
+
excludeUnmatchedRecordsInSearch: true,
|
10456
|
+
fontSize: true,
|
10457
|
+
grouping: true,
|
10458
|
+
rowHeight: true,
|
10459
|
+
sorting: true
|
10227
10460
|
};
|
10228
|
-
|
10229
|
-
function useTacoSettings() {
|
10230
|
-
return React__default.useContext(TacoContext);
|
10231
|
-
}
|
10232
|
-
|
10233
10461
|
function useUniqueTableId(tableId) {
|
10234
10462
|
const tacoSettings = useTacoSettings();
|
10235
10463
|
return `taco.${tacoSettings.uniqueUserIdentifier}.table.${tableId}.settings`;
|
10236
10464
|
}
|
10465
|
+
function useEnabledSettings(isEnabled) {
|
10466
|
+
return React__default.useMemo(() => {
|
10467
|
+
if (isEnabled === false) {
|
10468
|
+
return [Object.keys(DEFAULT_ENABLED_OPTIONS).reduce((o, key) => ({
|
10469
|
+
...o,
|
10470
|
+
[key]: false
|
10471
|
+
}), {}), false];
|
10472
|
+
} else if (isEnabled === true) {
|
10473
|
+
return [DEFAULT_ENABLED_OPTIONS, true];
|
10474
|
+
}
|
10475
|
+
const options = {
|
10476
|
+
...DEFAULT_ENABLED_OPTIONS,
|
10477
|
+
...isEnabled
|
10478
|
+
};
|
10479
|
+
return [options, Object.values(options).some(o => o === true)];
|
10480
|
+
}, [isEnabled]);
|
10481
|
+
}
|
10237
10482
|
function useTableSettings(isEnabled = false, id, defaultSettings = {}, onChangeSettings) {
|
10238
10483
|
const uniqueId = useUniqueTableId(id);
|
10239
|
-
const [
|
10484
|
+
const [enabledSettings, hasSomeEnabledSettings] = useEnabledSettings(isEnabled);
|
10485
|
+
const [persistedSettings, _setPersistedSettings] = useLocalStorage(hasSomeEnabledSettings ? uniqueId : undefined, removeDisabledSettings(defaultSettings, enabledSettings));
|
10240
10486
|
const setPersistedSettings = React__default.useCallback(value => {
|
10241
|
-
if (!
|
10487
|
+
if (!hasSomeEnabledSettings) {
|
10242
10488
|
return;
|
10243
10489
|
}
|
10244
|
-
|
10490
|
+
const sanitizedSettings = removeDisabledSettings(value, enabledSettings);
|
10491
|
+
_setPersistedSettings(sanitizedSettings);
|
10245
10492
|
if (typeof onChangeSettings === 'function') {
|
10246
|
-
onChangeSettings(
|
10493
|
+
onChangeSettings(sanitizedSettings);
|
10247
10494
|
}
|
10248
|
-
}, [
|
10249
|
-
if (!
|
10495
|
+
}, [hasSomeEnabledSettings, onChangeSettings, JSON.stringify(enabledSettings)]);
|
10496
|
+
if (!hasSomeEnabledSettings) {
|
10250
10497
|
return [defaultSettings, () => undefined];
|
10251
10498
|
}
|
10252
10499
|
return [persistedSettings, setPersistedSettings];
|
10253
10500
|
}
|
10501
|
+
function removeDisabledSettings(settings, enabledSettings) {
|
10502
|
+
const sanitizedSettings = {
|
10503
|
+
...settings
|
10504
|
+
};
|
10505
|
+
Object.keys(enabledSettings).forEach(setting => {
|
10506
|
+
if (!enabledSettings[setting]) {
|
10507
|
+
delete sanitizedSettings[setting];
|
10508
|
+
}
|
10509
|
+
});
|
10510
|
+
return sanitizedSettings;
|
10511
|
+
}
|
10254
10512
|
|
10255
10513
|
// augments useEffect to not run on the initial mount
|
10256
10514
|
function useLazyEffect(effect, deps) {
|
@@ -10357,12 +10615,25 @@ function resetHighlightedColumnIndexes(value, table) {
|
|
10357
10615
|
if (value) {
|
10358
10616
|
const indexes = [];
|
10359
10617
|
const columns = table.getVisibleLeafColumns();
|
10618
|
+
const rowGrouping = table.getState().grouping;
|
10360
10619
|
table.getRowModel().rows.forEach((row, rowIndex) => {
|
10361
10620
|
columns.forEach((column, columnIndex) => {
|
10362
10621
|
try {
|
10363
|
-
|
10622
|
+
let allowSearch = true;
|
10623
|
+
if (rowGrouping !== null && rowGrouping !== void 0 && rowGrouping.length) {
|
10624
|
+
// if it's the grouped row, only allow search of the grouped column - because that's all that's visible
|
10625
|
+
if (row.getIsGrouped()) {
|
10626
|
+
allowSearch = column.getIsGrouped();
|
10627
|
+
}
|
10628
|
+
// otherwise for other rows, don't search the grouped column - because it isn't visible
|
10629
|
+
else if (rowGrouping.includes(column.id)) {
|
10630
|
+
allowSearch = false;
|
10631
|
+
}
|
10632
|
+
}
|
10633
|
+
if (column.getIsVisible() && column.columnDef.enableGlobalFilter && allowSearch) {
|
10364
10634
|
var _row$original, _column$columnDef$met;
|
10365
10635
|
const cellValue = getCellValueAsString((_row$original = row.original) === null || _row$original === void 0 ? void 0 : _row$original[column.id], (_column$columnDef$met = column.columnDef.meta) === null || _column$columnDef$met === void 0 ? void 0 : _column$columnDef$met.dataType);
|
10636
|
+
// indexes don't map to sorted data
|
10366
10637
|
if (cellValue !== undefined && isWeakContains(cellValue, value)) {
|
10367
10638
|
indexes.push([rowIndex, columnIndex]);
|
10368
10639
|
}
|
@@ -10413,7 +10684,6 @@ function getSettings(table) {
|
|
10413
10684
|
fontSize: meta.fontSize.isEnabled ? meta.fontSize.size : undefined,
|
10414
10685
|
grouping: table.options.enableGrouping ? state.grouping : undefined,
|
10415
10686
|
rowHeight: meta.rowHeight.isEnabled ? meta.rowHeight.height : undefined,
|
10416
|
-
showWarningWhenPrintingLargeDataset: meta.printing.isWarningVisibleForLargeDatasets,
|
10417
10687
|
//searchQuery: table.options.enableGlobalFilter ? state.globalFilter : undefined,
|
10418
10688
|
sorting: state.sorting
|
10419
10689
|
};
|
@@ -10435,7 +10705,7 @@ function useTableSettingsListener(table, onChangeSettings) {
|
|
10435
10705
|
//state.columnFilters,
|
10436
10706
|
state.columnOrder, state.columnPinning, state.columnSizing, state.columnVisibility,
|
10437
10707
|
// @ts-expect-error: fixing type issue while report and table3 TableMeta definitions live in parallel
|
10438
|
-
meta.search.excludeUnmatchedResults, meta.fontSize.size, state.grouping, meta.rowHeight.height,
|
10708
|
+
meta.search.excludeUnmatchedResults, meta.fontSize.size, state.grouping, meta.rowHeight.height,
|
10439
10709
|
//state.globalFilter,
|
10440
10710
|
state.sorting]);
|
10441
10711
|
}
|
@@ -10525,17 +10795,19 @@ function useTableRef(table, ref) {
|
|
10525
10795
|
}
|
10526
10796
|
|
10527
10797
|
function useTable(props, ref, meta, internalColumns) {
|
10528
|
-
var _props$length, _instance$options$met;
|
10798
|
+
var _props$data, _props$length, _instance$options$met;
|
10799
|
+
// CSS.escape would be best here, but it doesn't seem to work very well
|
10800
|
+
const safeId = props.id.replace('.', '_');
|
10529
10801
|
// configure table options, merging props with presets
|
10530
10802
|
const options = useTableFeaturePreset(props);
|
10531
10803
|
// load any persisted table settings and merge them with any defaults
|
10532
|
-
const [settings, setSettings] = useTableSettings(options.
|
10804
|
+
const [settings, setSettings] = useTableSettings(options.enableSaveSettings, safeId, props.defaultSettings, props.onChangeSettings);
|
10533
10805
|
// configure common custom features
|
10534
10806
|
const columnFreezing = useTableColumnFreezing(options.enableColumnFreezing);
|
10535
10807
|
const columnOrdering = useTableColumnOrdering(options.enableColumnOrdering);
|
10536
10808
|
const fontSize = useTableFontSize(options.enableFontSize, settings.fontSize);
|
10537
10809
|
const footer = useTableFooter(options.enableFooter);
|
10538
|
-
const printing = useTablePrinting(options.enablePrinting,
|
10810
|
+
const printing = useTablePrinting(options.enablePrinting, safeId);
|
10539
10811
|
const rowActive = useTableRowActive(options.enableRowActive, props.defaultRowActiveIndex);
|
10540
10812
|
const rowActions = useTableRowActions(options.enableRowActions, props.rowActions, props.rowActionsLength);
|
10541
10813
|
const rowClick = useTableRowClick(options.enableRowClick, props.onRowClick);
|
@@ -10554,10 +10826,13 @@ function useTable(props, ref, meta, internalColumns) {
|
|
10554
10826
|
} = mapTableChildrenToColumns(props, settings, options, internalColumns);
|
10555
10827
|
// configure initial table state
|
10556
10828
|
const initialState = useReactTableInitialState(props, columns, settings, defaultState);
|
10829
|
+
// ensure data is always valid
|
10830
|
+
const data = (_props$data = props.data) !== null && _props$data !== void 0 ? _props$data : [];
|
10831
|
+
const length = (_props$length = props.length) !== null && _props$length !== void 0 ? _props$length : data.length;
|
10557
10832
|
// create a react-table instance
|
10558
10833
|
// @ts-expect-error: fixing type issue while report and table3 TableMeta definitions live in parallel
|
10559
10834
|
const instance = reactTable.useReactTable({
|
10560
|
-
data
|
10835
|
+
data,
|
10561
10836
|
columns,
|
10562
10837
|
// configure initial table state
|
10563
10838
|
initialState,
|
@@ -10573,7 +10848,7 @@ function useTable(props, ref, meta, internalColumns) {
|
|
10573
10848
|
columnOrdering,
|
10574
10849
|
fontSize,
|
10575
10850
|
footer,
|
10576
|
-
|
10851
|
+
length,
|
10577
10852
|
printing,
|
10578
10853
|
rowActions,
|
10579
10854
|
rowActive,
|
@@ -10601,8 +10876,8 @@ function useTable(props, ref, meta, internalColumns) {
|
|
10601
10876
|
// configure ref with reset functions
|
10602
10877
|
useTableRef(instance, ref);
|
10603
10878
|
return {
|
10879
|
+
id: safeId,
|
10604
10880
|
instance,
|
10605
|
-
length: (_props$length = props.length) !== null && _props$length !== void 0 ? _props$length : props.data.length,
|
10606
10881
|
meta: (_instance$options$met = instance.options.meta) !== null && _instance$options$met !== void 0 ? _instance$options$met : {},
|
10607
10882
|
state: instance.getState()
|
10608
10883
|
};
|
@@ -10782,6 +11057,7 @@ function Header$3(context) {
|
|
10782
11057
|
key: String(`${isAllRowsSelected}_${isSomeRowsSelected}`),
|
10783
11058
|
checked: isAllRowsSelected,
|
10784
11059
|
indeterminate: isSomeRowsSelected,
|
11060
|
+
loading: tableMeta.server.loadAllStatus === TableServerLoadAllState.Loading,
|
10785
11061
|
onChange: handleChange
|
10786
11062
|
}));
|
10787
11063
|
}
|
@@ -10801,6 +11077,9 @@ function Cell$2(context) {
|
|
10801
11077
|
row,
|
10802
11078
|
table
|
10803
11079
|
} = context;
|
11080
|
+
const {
|
11081
|
+
rowIndex
|
11082
|
+
} = React__default.useContext(RowContext);
|
10804
11083
|
const tableMeta = table.options.meta;
|
10805
11084
|
if (table.options.enableGrouping && (_table$getState$group = table.getState().grouping) !== null && _table$getState$group !== void 0 && _table$getState$group.length && !row.getIsGrouped()) {
|
10806
11085
|
return null;
|
@@ -10808,18 +11087,48 @@ function Cell$2(context) {
|
|
10808
11087
|
const isSelected = row.getIsGrouped() ? row.getIsAllSubRowsSelected() : row.getIsSelected();
|
10809
11088
|
const title = isSelected ? texts.table3.columns.select.deselect : texts.table3.columns.select.select;
|
10810
11089
|
if (table.options.enableMultiRowSelection) {
|
10811
|
-
const handleClick = event
|
10812
|
-
|
10813
|
-
|
10814
|
-
|
10815
|
-
|
10816
|
-
|
10817
|
-
const
|
10818
|
-
|
10819
|
-
|
10820
|
-
|
11090
|
+
const handleClick = function (event) {
|
11091
|
+
try {
|
11092
|
+
function _temp7() {
|
11093
|
+
tableMeta.rowSelection.lastSelectedRowIndex.current = row.index;
|
11094
|
+
}
|
11095
|
+
event.stopPropagation();
|
11096
|
+
const _temp6 = function () {
|
11097
|
+
if (row.getIsGrouped()) {
|
11098
|
+
row.subRows.forEach(row => row.toggleSelected());
|
11099
|
+
} else {
|
11100
|
+
const _temp5 = function () {
|
11101
|
+
if (event.shiftKey) {
|
11102
|
+
var _tableMeta$rowSelecti;
|
11103
|
+
function _temp4() {
|
11104
|
+
table.setRowSelection(currentRowSelection => ({
|
11105
|
+
...currentRowSelection,
|
11106
|
+
...selectedRows.reduce((state, row) => ({
|
11107
|
+
...state,
|
11108
|
+
[row.id]: true
|
11109
|
+
}), {})
|
11110
|
+
}));
|
11111
|
+
}
|
11112
|
+
const [fromIndex, toIndex] = toggleBetween((_tableMeta$rowSelecti = tableMeta.rowSelection.lastSelectedRowIndex.current) !== null && _tableMeta$rowSelecti !== void 0 ? _tableMeta$rowSelecti : 0, rowIndex);
|
11113
|
+
const selectedRows = table.getRowModel().rows.slice(fromIndex, toIndex + 1);
|
11114
|
+
const _temp3 = function () {
|
11115
|
+
if (tableMeta.server.loadAllIfNeeded && selectedRows.some(row => row.original === undefined)) {
|
11116
|
+
// don't pass the search query because we need all data - not filtered data
|
11117
|
+
return Promise.resolve(tableMeta.server.loadAllIfNeeded(table.getState().sorting, table.getState().columnFilters, undefined)).then(function () {});
|
11118
|
+
}
|
11119
|
+
}();
|
11120
|
+
return _temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3);
|
11121
|
+
} else {
|
11122
|
+
row.toggleSelected();
|
11123
|
+
}
|
11124
|
+
}();
|
11125
|
+
if (_temp5 && _temp5.then) return _temp5.then(function () {});
|
11126
|
+
}
|
11127
|
+
}();
|
11128
|
+
return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(_temp7) : _temp7(_temp6));
|
11129
|
+
} catch (e) {
|
11130
|
+
return Promise.reject(e);
|
10821
11131
|
}
|
10822
|
-
tableMeta.rowSelection.lastSelectedRowIndex.current = row.index;
|
10823
11132
|
};
|
10824
11133
|
return /*#__PURE__*/React__default.createElement(Tooltip, {
|
10825
11134
|
title: /*#__PURE__*/React__default.createElement(React__default.Fragment, null, title, /*#__PURE__*/React__default.createElement(Shortcut, {
|
@@ -10862,7 +11171,7 @@ function useTableRowActiveListener(table, tableRef) {
|
|
10862
11171
|
const activeRow = (_tableRef$current$que = (_tableRef$current = tableRef.current) === null || _tableRef$current === void 0 ? void 0 : _tableRef$current.querySelector('tbody tr[data-row-active="true"]')) !== null && _tableRef$current$que !== void 0 ? _tableRef$current$que : null;
|
10863
11172
|
// if the focused element, or it's parent if it's portalled, aren't in the row, then focus the row
|
10864
11173
|
// this ensures the next tab press starts at the row
|
10865
|
-
if (!isElementInsideOrTriggeredFromContainer(document.activeElement, activeRow) && !
|
11174
|
+
if (!isElementInsideOrTriggeredFromContainer(document.activeElement, activeRow) && !isElementInteractive(document.activeElement)) {
|
10866
11175
|
var _activeRow$focus;
|
10867
11176
|
activeRow === null || activeRow === void 0 ? void 0 : (_activeRow$focus = activeRow.focus) === null || _activeRow$focus === void 0 ? void 0 : _activeRow$focus.call(activeRow, {
|
10868
11177
|
preventScroll: true
|
@@ -11444,7 +11753,6 @@ function useAugmentedFocusManager() {
|
|
11444
11753
|
function Body(props) {
|
11445
11754
|
const {
|
11446
11755
|
enableArrowKeyFocusing = false,
|
11447
|
-
length,
|
11448
11756
|
table,
|
11449
11757
|
...attributes
|
11450
11758
|
} = props;
|
@@ -11459,7 +11767,7 @@ function Body(props) {
|
|
11459
11767
|
}
|
11460
11768
|
if (tableMeta.rowActive.rowActiveIndex !== undefined) {
|
11461
11769
|
const isFirstRow = tableMeta.rowActive.rowActiveIndex === 0;
|
11462
|
-
const isLastRow = tableMeta.rowActive.rowActiveIndex === length - 1;
|
11770
|
+
const isLastRow = tableMeta.rowActive.rowActiveIndex === tableMeta.length - 1;
|
11463
11771
|
if (event.key === 'Tab' || enableArrowKeyFocusing && (event.key === 'ArrowLeft' || event.key === 'ArrowRight')) {
|
11464
11772
|
tableMeta.rowActive.setHoverStatePaused(true);
|
11465
11773
|
const focusedElement = event.shiftKey || event.key === 'ArrowLeft' ? focusManager.focusPrevious() : focusManager.focusNext();
|
@@ -11497,45 +11805,16 @@ function Body(props) {
|
|
11497
11805
|
}));
|
11498
11806
|
}
|
11499
11807
|
|
11500
|
-
function Footer$3(header) {
|
11501
|
-
return /*#__PURE__*/React__default.createElement(MemoedFooter, {
|
11502
|
-
key: header.id,
|
11503
|
-
footer: header
|
11504
|
-
});
|
11505
|
-
}
|
11506
|
-
const MemoedFooter = /*#__PURE__*/React__default.memo(function MemoedFooter(props) {
|
11507
|
-
var _footer$subHeaders, _footer$subHeaders$fi;
|
11508
|
-
const {
|
11509
|
-
footer
|
11510
|
-
} = props;
|
11511
|
-
const columnMeta = footer.column.columnDef.meta;
|
11512
|
-
// getIsPinned returns true for split header groups, even if the split group has no pinned sub headers
|
11513
|
-
const isHeaderGroup = !!((_footer$subHeaders = footer.subHeaders) !== null && _footer$subHeaders !== void 0 && _footer$subHeaders.length);
|
11514
|
-
const isPinned = isHeaderGroup ? (_footer$subHeaders$fi = footer.subHeaders.find(x => x.column.getIsPinned())) === null || _footer$subHeaders$fi === void 0 ? void 0 : _footer$subHeaders$fi.column.getIsPinned() : footer.column.getIsPinned();
|
11515
|
-
const style = {};
|
11516
|
-
if (isPinned) {
|
11517
|
-
// pinned columns should be offset from either the left or right
|
11518
|
-
style[isPinned] = `${footer.column.getStart(isPinned) - 1}px`;
|
11519
|
-
}
|
11520
|
-
return /*#__PURE__*/React__default.createElement("td", {
|
11521
|
-
key: footer.id,
|
11522
|
-
"data-cell-align": columnMeta.align,
|
11523
|
-
"data-cell-id": footer.id,
|
11524
|
-
"data-cell-pinned": isPinned ? isPinned : undefined,
|
11525
|
-
style: style
|
11526
|
-
}, footer.isPlaceholder ? null : reactTable.flexRender(footer.column.columnDef.footer, footer.getContext()));
|
11527
|
-
});
|
11528
|
-
|
11529
11808
|
function Summary(props) {
|
11530
11809
|
var _table$getState$colum;
|
11531
11810
|
const {
|
11532
|
-
length,
|
11533
11811
|
table
|
11534
11812
|
} = props;
|
11535
11813
|
const {
|
11536
11814
|
locale,
|
11537
11815
|
texts
|
11538
11816
|
} = useLocalization();
|
11817
|
+
const length = table.options.meta.length;
|
11539
11818
|
const currentLength = table.getRowModel().rows.length;
|
11540
11819
|
let label;
|
11541
11820
|
let count;
|
@@ -11555,11 +11834,51 @@ function Summary(props) {
|
|
11555
11834
|
count = /*#__PURE__*/React__default.createElement("strong", null, new Intl.NumberFormat(locale).format(length));
|
11556
11835
|
}
|
11557
11836
|
return /*#__PURE__*/React__default.createElement("div", {
|
11558
|
-
className: "
|
11837
|
+
className: "sticky left-0 z-20 flex h-full w-fit items-center whitespace-nowrap bg-white pr-1 shadow-[12px_0px_6px_white]",
|
11559
11838
|
"data-taco": "table2-footer-summary"
|
11560
11839
|
}, label, "\u00A0", count);
|
11561
11840
|
}
|
11562
11841
|
|
11842
|
+
function Footer$3(header) {
|
11843
|
+
return /*#__PURE__*/React__default.createElement(MemoedFooter, {
|
11844
|
+
key: header.id,
|
11845
|
+
footer: header
|
11846
|
+
});
|
11847
|
+
}
|
11848
|
+
const MemoedFooter = /*#__PURE__*/React__default.memo(function MemoedFooter(props) {
|
11849
|
+
var _footer$subHeaders, _footer$subHeaders$fi;
|
11850
|
+
const {
|
11851
|
+
footer
|
11852
|
+
} = props;
|
11853
|
+
const columnMeta = footer.column.columnDef.meta;
|
11854
|
+
// getIsPinned returns true for split header groups, even if the split group has no pinned sub headers
|
11855
|
+
const isHeaderGroup = !!((_footer$subHeaders = footer.subHeaders) !== null && _footer$subHeaders !== void 0 && _footer$subHeaders.length);
|
11856
|
+
const isPinned = isHeaderGroup ? (_footer$subHeaders$fi = footer.subHeaders.find(x => x.column.getIsPinned())) === null || _footer$subHeaders$fi === void 0 ? void 0 : _footer$subHeaders$fi.column.getIsPinned() : footer.column.getIsPinned();
|
11857
|
+
const style = {};
|
11858
|
+
if (isPinned) {
|
11859
|
+
// pinned columns should be offset from either the left or right
|
11860
|
+
style[isPinned] = `${footer.column.getStart(isPinned) - 1}px`;
|
11861
|
+
}
|
11862
|
+
let content;
|
11863
|
+
let align;
|
11864
|
+
if (footer.index === 0) {
|
11865
|
+
align = 'left';
|
11866
|
+
content = /*#__PURE__*/React__default.createElement(Summary, {
|
11867
|
+
table: footer.getContext().table
|
11868
|
+
});
|
11869
|
+
} else {
|
11870
|
+
align = columnMeta.align;
|
11871
|
+
content = footer.isPlaceholder ? null : reactTable.flexRender(footer.column.columnDef.footer, footer.getContext());
|
11872
|
+
}
|
11873
|
+
return /*#__PURE__*/React__default.createElement("td", {
|
11874
|
+
key: footer.id,
|
11875
|
+
"data-cell-align": align,
|
11876
|
+
"data-cell-id": footer.id,
|
11877
|
+
"data-cell-pinned": isPinned ? isPinned : undefined,
|
11878
|
+
style: style
|
11879
|
+
}, content);
|
11880
|
+
});
|
11881
|
+
|
11563
11882
|
const SearchInput2 = /*#__PURE__*/React__default.forwardRef(function SearchInput2(props, ref) {
|
11564
11883
|
var _attributes$ariaLabe, _attributes$placehold;
|
11565
11884
|
const {
|
@@ -11630,6 +11949,7 @@ const SearchInput2 = /*#__PURE__*/React__default.forwardRef(function SearchInput
|
|
11630
11949
|
}
|
11631
11950
|
if (event.key === 'Escape') {
|
11632
11951
|
handleClear();
|
11952
|
+
event.stopPropagation();
|
11633
11953
|
return;
|
11634
11954
|
}
|
11635
11955
|
};
|
@@ -12865,6 +13185,7 @@ const Button$2 = /*#__PURE__*/React__default.forwardRef(function Select2TriggerB
|
|
12865
13185
|
children,
|
12866
13186
|
onClick,
|
12867
13187
|
tabIndex = 0,
|
13188
|
+
fontSize,
|
12868
13189
|
...otherProps
|
12869
13190
|
} = props;
|
12870
13191
|
const {
|
@@ -12874,14 +13195,17 @@ const Button$2 = /*#__PURE__*/React__default.forwardRef(function Select2TriggerB
|
|
12874
13195
|
open,
|
12875
13196
|
readOnly
|
12876
13197
|
} = useSelect2Context();
|
12877
|
-
const className = cn('cursor-pointer
|
13198
|
+
const className = cn('cursor-pointer px-1.5 h-fit', getInputClasses({
|
12878
13199
|
...props,
|
12879
13200
|
disabled,
|
12880
13201
|
highlighted,
|
12881
13202
|
invalid,
|
12882
13203
|
readOnly
|
12883
|
-
}).replace('w-full', ''), {
|
12884
|
-
'w-full': !((_props$className = props.className) !== null && _props$className !== void 0 && _props$className.includes('w-'))
|
13204
|
+
}).replace('w-full', '').replace('px-2', ''), {
|
13205
|
+
'w-full': !((_props$className = props.className) !== null && _props$className !== void 0 && _props$className.includes('w-')),
|
13206
|
+
'text-xs': fontSize === exports.FontSizes.small,
|
13207
|
+
'text-sm': fontSize === exports.FontSizes.medium,
|
13208
|
+
'text-base': fontSize === exports.FontSizes.large
|
12885
13209
|
}, props.className);
|
12886
13210
|
const handleClick = event => {
|
12887
13211
|
if (disabled || readOnly) {
|
@@ -12975,7 +13299,7 @@ const Multiple = /*#__PURE__*/React__default.forwardRef(function Select2TriggerM
|
|
12975
13299
|
className
|
12976
13300
|
} = buttonProps;
|
12977
13301
|
if (open) {
|
12978
|
-
className = cn('!absolute z-20', buttonProps.className);
|
13302
|
+
className = cn('!absolute z-20 !h-fit', buttonProps.className);
|
12979
13303
|
content = /*#__PURE__*/React__default.createElement(ScrollArea, {
|
12980
13304
|
className: "my-1 flex max-h-[5.5rem] flex-col"
|
12981
13305
|
}, /*#__PURE__*/React__default.createElement("div", {
|
@@ -13519,7 +13843,39 @@ const Select2 = /*#__PURE__*/React__default.forwardRef(function Select2(props, r
|
|
13519
13843
|
(_internalRef$current = internalRef.current) === null || _internalRef$current === void 0 ? void 0 : _internalRef$current.focus();
|
13520
13844
|
}
|
13521
13845
|
};
|
13522
|
-
const
|
13846
|
+
const selectOptions = searchQuery === '' ? flattenedChildren.map(child => child.key) : filteredChildren.map(child => isGroup(child) ? Array.isArray(child.props.children) && child.props.children.map(subChild => subChild.key) : child.key).flatMap(c => c) || [];
|
13847
|
+
const areAllSelected = Array.isArray(value) && selectOptions.every(option => value.includes(option));
|
13848
|
+
const selectAllText = React__default.useMemo(() => {
|
13849
|
+
if (searchQuery === '') {
|
13850
|
+
if (areAllSelected) {
|
13851
|
+
return texts.select2.deselectAll;
|
13852
|
+
} else {
|
13853
|
+
return texts.select2.selectAll;
|
13854
|
+
}
|
13855
|
+
} else if (areAllSelected) {
|
13856
|
+
return texts.select2.deselectAllResults;
|
13857
|
+
} else {
|
13858
|
+
return texts.select2.selectAllResults;
|
13859
|
+
}
|
13860
|
+
}, [areAllSelected, searchQuery]);
|
13861
|
+
const selectAll = () => {
|
13862
|
+
if (!Array.isArray(value) || value.length === 0) {
|
13863
|
+
setValue(selectOptions);
|
13864
|
+
} else {
|
13865
|
+
selectOptions.forEach(child => {
|
13866
|
+
!value.includes(child) && setValue(child);
|
13867
|
+
});
|
13868
|
+
}
|
13869
|
+
};
|
13870
|
+
const deselectAll = () => {
|
13871
|
+
if (searchQuery === '') {
|
13872
|
+
setValue([]);
|
13873
|
+
} else {
|
13874
|
+
const nextValue = Array.isArray(value) && value.filter(subValue => !selectOptions.includes(subValue));
|
13875
|
+
setValue(nextValue);
|
13876
|
+
}
|
13877
|
+
};
|
13878
|
+
const className = cn('border-grey-300 rounded border bg-white py-1.5 shadow-md outline-none"', createCollectionClassName());
|
13523
13879
|
return /*#__PURE__*/React__default.createElement(Select2Context.Provider, {
|
13524
13880
|
value: context
|
13525
13881
|
}, /*#__PURE__*/React__default.createElement(PopoverPrimitive.Root, {
|
@@ -13542,6 +13898,7 @@ const Select2 = /*#__PURE__*/React__default.forwardRef(function Select2(props, r
|
|
13542
13898
|
onBlur: handleBlur,
|
13543
13899
|
onKeyDown: handleKeyDown,
|
13544
13900
|
ref: internalRef,
|
13901
|
+
fontSize: fontSize,
|
13545
13902
|
placeholder: placeholder
|
13546
13903
|
}), flattenedChildren)), /*#__PURE__*/React__default.createElement(PopoverPrimitive.Portal, null, /*#__PURE__*/React__default.createElement(PopoverPrimitive.Content, {
|
13547
13904
|
asChild: true,
|
@@ -13558,11 +13915,17 @@ const Select2 = /*#__PURE__*/React__default.forwardRef(function Select2(props, r
|
|
13558
13915
|
style: {
|
13559
13916
|
minWidth: dimensions !== null && dimensions !== void 0 && dimensions.width ? `${dimensions.width}px` : undefined
|
13560
13917
|
}
|
13561
|
-
}, flattenedChildren.length > 0 || onCreate ? ( /*#__PURE__*/React__default.createElement(Search$2, {
|
13918
|
+
}, flattenedChildren.length > 0 || onCreate ? ( /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Search$2, {
|
13562
13919
|
placeholder: onCreate ? texts.select2.searchOrCreate : texts.select2.search,
|
13563
13920
|
ref: searchRef,
|
13564
13921
|
onTabKeyPress: () => setTabTriggeredClose(true)
|
13565
|
-
})
|
13922
|
+
}), multiple && selectOptions.length > 1 && ( /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Button$1, {
|
13923
|
+
className: "!justify-start",
|
13924
|
+
appearance: "discrete",
|
13925
|
+
onClick: areAllSelected ? deselectAll : selectAll
|
13926
|
+
}, selectAllText), /*#__PURE__*/React__default.createElement("div", {
|
13927
|
+
className: "border-grey-300 mx-3 rounded border-t"
|
13928
|
+
}))))) : null, flattenedChildren.length <= 0 ? ( /*#__PURE__*/React__default.createElement("div", {
|
13566
13929
|
className: "text-grey-700 -mt-0.5 flex h-8 items-center px-2",
|
13567
13930
|
role: "presentation"
|
13568
13931
|
}, "No results found...")) : ( /*#__PURE__*/React__default.createElement(Root$1, {
|
@@ -13709,6 +14072,12 @@ function Print$1(props) {
|
|
13709
14072
|
const lastScrollTopRef = React__default.useRef();
|
13710
14073
|
const toast = useToast();
|
13711
14074
|
const tableMeta = table.options.meta;
|
14075
|
+
const {
|
14076
|
+
allRows,
|
14077
|
+
orientation,
|
14078
|
+
size,
|
14079
|
+
splitGroups
|
14080
|
+
} = tableMeta.printing.settings;
|
13712
14081
|
const togglePrinting = React__default.useCallback(enabled => {
|
13713
14082
|
tableMeta.printing.setIsPrinting(enabled);
|
13714
14083
|
if (tableRef.current) {
|
@@ -13766,10 +14135,6 @@ function Print$1(props) {
|
|
13766
14135
|
return Promise.reject(e);
|
13767
14136
|
}
|
13768
14137
|
};
|
13769
|
-
const [orientation, setOrientation] = React__default.useState('portrait');
|
13770
|
-
const [size, setSize] = React__default.useState('A4');
|
13771
|
-
const [allRows, setAllRows] = React__default.useState(true);
|
13772
|
-
const [splitGroups, setSplitGroups] = React__default.useState(true);
|
13773
14138
|
const printStyle = [`@page { size: ${size} ${orientation}; }`];
|
13774
14139
|
if (!allRows) {
|
13775
14140
|
printStyle.push(`table[data-taco='report']#${tableId} tr:not([data-row-selected="true"]) { display: none; }`);
|
@@ -13795,13 +14160,13 @@ function Print$1(props) {
|
|
13795
14160
|
table: table,
|
13796
14161
|
onAccept: print,
|
13797
14162
|
orientation: orientation,
|
13798
|
-
setOrientation:
|
14163
|
+
setOrientation: value => tableMeta.printing.setSetting('orientation', value),
|
13799
14164
|
size: size,
|
13800
|
-
setSize:
|
14165
|
+
setSize: value => tableMeta.printing.setSetting('size', value),
|
13801
14166
|
allRows: allRows,
|
13802
|
-
setAllRows:
|
14167
|
+
setAllRows: value => tableMeta.printing.setSetting('allRows', value),
|
13803
14168
|
splitGroups: splitGroups,
|
13804
|
-
setSplitGroups:
|
14169
|
+
setSplitGroups: value => tableMeta.printing.setSetting('splitGroups', value)
|
13805
14170
|
}))),
|
13806
14171
|
ref: ref,
|
13807
14172
|
shortcut: shortcut,
|
@@ -13830,7 +14195,7 @@ function sortByHeader(a, b) {
|
|
13830
14195
|
return (_a$columnDef$meta = a.columnDef.meta) === null || _a$columnDef$meta === void 0 ? void 0 : (_a$columnDef$meta$hea = _a$columnDef$meta.header) === null || _a$columnDef$meta$hea === void 0 ? void 0 : (_a$columnDef$meta$hea2 = _a$columnDef$meta$hea.localeCompare) === null || _a$columnDef$meta$hea2 === void 0 ? void 0 : _a$columnDef$meta$hea2.call(_a$columnDef$meta$hea, (_b$columnDef$meta = b.columnDef.meta) === null || _b$columnDef$meta === void 0 ? void 0 : _b$columnDef$meta.header);
|
13831
14196
|
}
|
13832
14197
|
|
13833
|
-
|
14198
|
+
const FilterColumn = /*#__PURE__*/React__default.forwardRef((props, ref) => {
|
13834
14199
|
const {
|
13835
14200
|
allColumns,
|
13836
14201
|
filters,
|
@@ -13850,7 +14215,8 @@ function FilterColumn(props) {
|
|
13850
14215
|
warning: warning,
|
13851
14216
|
className: "min-h-[theme(spacing.8)]"
|
13852
14217
|
}, /*#__PURE__*/React__default.createElement(Select2, Object.assign({}, attributes, {
|
13853
|
-
|
14218
|
+
ref: ref,
|
14219
|
+
className: "focus:yt-focus !w-32 flex-shrink-0 ",
|
13854
14220
|
emptyValue: null,
|
13855
14221
|
onChange: handleChange,
|
13856
14222
|
value: value
|
@@ -13868,7 +14234,7 @@ function FilterColumn(props) {
|
|
13868
14234
|
disabled: column.id !== value && (!column.getCanFilter() || !!filters.find(f => f.id === column.id))
|
13869
14235
|
}, ((_column$columnDef$met = column.columnDef.meta) === null || _column$columnDef$met === void 0 ? void 0 : _column$columnDef$met.header) + (column.parent ? ` (${(_column$parent = column.parent) === null || _column$parent === void 0 ? void 0 : (_column$parent$column = _column$parent.columnDef.meta) === null || _column$parent$column === void 0 ? void 0 : _column$parent$column.header})` : ''));
|
13870
14236
|
}))));
|
13871
|
-
}
|
14237
|
+
});
|
13872
14238
|
|
13873
14239
|
function FilterComparator(props) {
|
13874
14240
|
const {
|
@@ -14095,6 +14461,7 @@ function Filter$1(props) {
|
|
14095
14461
|
texts
|
14096
14462
|
} = useLocalization();
|
14097
14463
|
const column = allColumns.find(c => c.id === filter.id);
|
14464
|
+
const ref = React__default.useRef(null);
|
14098
14465
|
const {
|
14099
14466
|
id,
|
14100
14467
|
value: {
|
@@ -14113,7 +14480,7 @@ function Filter$1(props) {
|
|
14113
14480
|
comparator: TableFilterComparator.Contains,
|
14114
14481
|
value: undefined
|
14115
14482
|
};
|
14116
|
-
handleChange(
|
14483
|
+
handleChange(position, {
|
14117
14484
|
id: columnId,
|
14118
14485
|
value
|
14119
14486
|
});
|
@@ -14123,7 +14490,7 @@ function Filter$1(props) {
|
|
14123
14490
|
if (comparator === TableFilterComparator.IsEmpty || comparator === TableFilterComparator.IsNotEmpty) {
|
14124
14491
|
nextValue = undefined;
|
14125
14492
|
}
|
14126
|
-
handleChange(
|
14493
|
+
handleChange(position, {
|
14127
14494
|
id,
|
14128
14495
|
value: {
|
14129
14496
|
comparator,
|
@@ -14132,7 +14499,7 @@ function Filter$1(props) {
|
|
14132
14499
|
});
|
14133
14500
|
};
|
14134
14501
|
const handleChangeValue = value => {
|
14135
|
-
handleChange(
|
14502
|
+
handleChange(position, {
|
14136
14503
|
id,
|
14137
14504
|
value: {
|
14138
14505
|
...filter.value,
|
@@ -14140,7 +14507,12 @@ function Filter$1(props) {
|
|
14140
14507
|
}
|
14141
14508
|
});
|
14142
14509
|
};
|
14143
|
-
const handleRemove = () => onRemove(
|
14510
|
+
const handleRemove = () => onRemove === null || onRemove === void 0 ? void 0 : onRemove(position);
|
14511
|
+
React__default.useEffect(() => {
|
14512
|
+
if (ref.current && !id) {
|
14513
|
+
ref.current.focus(); // after adding a new filter placeholder, we want to focus it right way.
|
14514
|
+
}
|
14515
|
+
}, [id]);
|
14144
14516
|
return /*#__PURE__*/React__default.createElement("div", {
|
14145
14517
|
className: "flex items-start gap-2"
|
14146
14518
|
}, /*#__PURE__*/React__default.createElement("div", {
|
@@ -14149,7 +14521,8 @@ function Filter$1(props) {
|
|
14149
14521
|
allColumns: allColumns,
|
14150
14522
|
filters: filters,
|
14151
14523
|
onChange: handleChangeColumn,
|
14152
|
-
value: id
|
14524
|
+
value: id,
|
14525
|
+
ref: ref
|
14153
14526
|
}), /*#__PURE__*/React__default.createElement(FilterComparator, {
|
14154
14527
|
column: column,
|
14155
14528
|
onChange: handleChangeComparator,
|
@@ -14159,46 +14532,21 @@ function Filter$1(props) {
|
|
14159
14532
|
comparator: comparator,
|
14160
14533
|
onChange: handleChangeValue,
|
14161
14534
|
value: value
|
14162
|
-
}), /*#__PURE__*/React__default.createElement(IconButton, {
|
14535
|
+
}), onRemove ? /*#__PURE__*/React__default.createElement(IconButton, {
|
14163
14536
|
appearance: "discrete",
|
14164
14537
|
className: "ml-auto",
|
14165
14538
|
icon: "close",
|
14166
14539
|
onClick: handleRemove
|
14167
|
-
}));
|
14168
|
-
}
|
14169
|
-
|
14170
|
-
function Placeholder(props) {
|
14171
|
-
const {
|
14172
|
-
allColumns,
|
14173
|
-
filters,
|
14174
|
-
onCreate: handleCreate,
|
14175
|
-
onRemove: handleRemove,
|
14176
|
-
position
|
14177
|
-
} = props;
|
14178
|
-
const {
|
14179
|
-
texts
|
14180
|
-
} = useLocalization();
|
14181
|
-
return /*#__PURE__*/React__default.createElement("div", {
|
14182
|
-
className: "flex items-start gap-2"
|
14183
|
-
}, /*#__PURE__*/React__default.createElement("div", {
|
14184
|
-
className: "flex min-h-[theme(spacing.8)] w-14 flex-shrink-0 items-center justify-end pr-2 text-right"
|
14185
|
-
}, position > 0 ? texts.table3.filters.conditions.and : texts.table3.filters.conditions.where), /*#__PURE__*/React__default.createElement(FilterColumn, {
|
14186
|
-
allColumns: allColumns,
|
14187
|
-
filters: filters,
|
14188
|
-
onChange: handleCreate,
|
14189
|
-
value: null
|
14190
|
-
}), /*#__PURE__*/React__default.createElement(FilterComparator, null), /*#__PURE__*/React__default.createElement(Input, {
|
14191
|
-
"aria-label": texts.table3.filters.emptyFilter.value,
|
14192
|
-
className: "flex-grow",
|
14193
|
-
disabled: true,
|
14194
|
-
value: texts.table3.filters.emptyFilter.value
|
14195
|
-
}), handleRemove ? /*#__PURE__*/React__default.createElement(IconButton, {
|
14196
|
-
appearance: "discrete",
|
14197
|
-
icon: "close",
|
14198
|
-
onClick: handleRemove
|
14199
14540
|
}) : null);
|
14200
14541
|
}
|
14201
14542
|
|
14543
|
+
const placeholderFilter = {
|
14544
|
+
id: '',
|
14545
|
+
value: {
|
14546
|
+
comparator: TableFilterComparator.Contains,
|
14547
|
+
value: undefined
|
14548
|
+
}
|
14549
|
+
};
|
14202
14550
|
function ManageFiltersPopover(props) {
|
14203
14551
|
const {
|
14204
14552
|
length,
|
@@ -14212,52 +14560,40 @@ function ManageFiltersPopover(props) {
|
|
14212
14560
|
const allColumns = table.getAllLeafColumns().filter(column => !isInternalColumn(column.id)).sort(sortByHeader);
|
14213
14561
|
const appliedFilters = table.getState().columnFilters;
|
14214
14562
|
// state, since we "apply" filters - our filter values have a special shape, so we force to our type
|
14215
|
-
const [filters, setFilters] = React__default.useState(
|
14216
|
-
const [placeholderCount, setPlaceholderCount] = React__default.useState(1);
|
14563
|
+
const [filters, setFilters] = React__default.useState(appliedFilters.length ? appliedFilters : [placeholderFilter]);
|
14217
14564
|
// filters might reset from the outside
|
14218
14565
|
React__default.useEffect(() => {
|
14219
14566
|
if (appliedFilters.length === 0) {
|
14220
|
-
setFilters([]);
|
14221
|
-
setPlaceholderCount(1);
|
14567
|
+
setFilters([placeholderFilter]);
|
14222
14568
|
}
|
14223
14569
|
}, [appliedFilters]);
|
14224
14570
|
// filters
|
14225
|
-
const handleChangeFilter = (
|
14571
|
+
const handleChangeFilter = (position, filter) => {
|
14226
14572
|
setFilters(currentFilters => {
|
14227
|
-
|
14228
|
-
|
14229
|
-
|
14573
|
+
return currentFilters.map((current, index) => {
|
14574
|
+
if (index === position) {
|
14575
|
+
return filter;
|
14576
|
+
}
|
14577
|
+
return current;
|
14578
|
+
});
|
14230
14579
|
});
|
14231
14580
|
};
|
14232
|
-
const handleRemoveFilter =
|
14233
|
-
if (filters.length === 1
|
14234
|
-
|
14581
|
+
const handleRemoveFilter = position => {
|
14582
|
+
if (filters.length === 1) {
|
14583
|
+
setFilters([placeholderFilter]);
|
14584
|
+
return;
|
14235
14585
|
}
|
14236
|
-
setFilters(currentFilters => currentFilters.filter(
|
14237
|
-
};
|
14238
|
-
// placeholders
|
14239
|
-
const handleCreateFilterFromPlaceholder = columnId => {
|
14240
|
-
setFilters(currentFilters => [...currentFilters, {
|
14241
|
-
id: columnId,
|
14242
|
-
value: {
|
14243
|
-
comparator: TableFilterComparator.Contains,
|
14244
|
-
value: undefined
|
14245
|
-
}
|
14246
|
-
}]);
|
14247
|
-
handleRemovePlaceholder();
|
14586
|
+
setFilters(currentFilters => currentFilters.filter((_, index) => index !== position));
|
14248
14587
|
};
|
14249
|
-
const
|
14250
|
-
|
14251
|
-
};
|
14252
|
-
const handleRemovePlaceholder = () => {
|
14253
|
-
setPlaceholderCount(count => count - 1);
|
14588
|
+
const handleCreate = () => {
|
14589
|
+
setFilters(filters.concat(placeholderFilter));
|
14254
14590
|
};
|
14255
14591
|
//
|
14256
14592
|
const handleApply = () => {
|
14257
14593
|
table.setColumnFilters(() => {
|
14258
14594
|
const newFilters = filters.filter(f => {
|
14259
14595
|
var _allColumns$find, _allColumns$find$colu;
|
14260
|
-
if (f.id === null) {
|
14596
|
+
if (f.id === null || f.id === '') {
|
14261
14597
|
return false;
|
14262
14598
|
}
|
14263
14599
|
const controlRenderer = (_allColumns$find = allColumns.find(c => c.id === f.id)) === null || _allColumns$find === void 0 ? void 0 : (_allColumns$find$colu = _allColumns$find.columnDef.meta) === null || _allColumns$find$colu === void 0 ? void 0 : _allColumns$find$colu.control;
|
@@ -14271,12 +14607,10 @@ function ManageFiltersPopover(props) {
|
|
14271
14607
|
};
|
14272
14608
|
const handleClear = () => {
|
14273
14609
|
table.resetColumnFilters();
|
14274
|
-
setFilters([]);
|
14275
|
-
setPlaceholderCount(1);
|
14610
|
+
setFilters([placeholderFilter]);
|
14276
14611
|
};
|
14277
14612
|
const handleClose = () => {
|
14278
|
-
setFilters(appliedFilters);
|
14279
|
-
setPlaceholderCount(appliedFilters.length ? 0 : 1);
|
14613
|
+
setFilters(appliedFilters.length === 0 ? [placeholderFilter] : appliedFilters);
|
14280
14614
|
};
|
14281
14615
|
return /*#__PURE__*/React__default.createElement(Popover, Object.assign({}, popoverProps, {
|
14282
14616
|
onChange: handleClose
|
@@ -14299,19 +14633,12 @@ function ManageFiltersPopover(props) {
|
|
14299
14633
|
filters: filters,
|
14300
14634
|
position: index,
|
14301
14635
|
onChange: handleChangeFilter,
|
14302
|
-
onRemove: handleRemoveFilter
|
14303
|
-
}))), [...Array(placeholderCount)].map((_, index) => ( /*#__PURE__*/React__default.createElement(Placeholder, {
|
14304
|
-
key: `placeholder_${index}`,
|
14305
|
-
allColumns: allColumns,
|
14306
|
-
filters: filters,
|
14307
|
-
position: filters.length + index,
|
14308
|
-
onCreate: handleCreateFilterFromPlaceholder,
|
14309
|
-
onRemove: placeholderCount > 1 || filters.length > 0 ? handleRemovePlaceholder : undefined
|
14636
|
+
onRemove: filters.length > 0 && filters.some(f => f.id) || filters.length > 1 ? handleRemoveFilter : undefined
|
14310
14637
|
}))), /*#__PURE__*/React__default.createElement("div", {
|
14311
14638
|
className: "justify-start"
|
14312
14639
|
}, /*#__PURE__*/React__default.createElement(Button$1, {
|
14313
14640
|
appearance: "discrete",
|
14314
|
-
onClick:
|
14641
|
+
onClick: handleCreate
|
14315
14642
|
}, "+ ", texts.table3.filters.buttons.addFilter))), /*#__PURE__*/React__default.createElement(Group, {
|
14316
14643
|
className: "ml-auto"
|
14317
14644
|
}, /*#__PURE__*/React__default.createElement(Popover.Close, null, /*#__PURE__*/React__default.createElement(Button$1, null, "Cancel")), /*#__PURE__*/React__default.createElement(Button$1, {
|
@@ -14420,7 +14747,8 @@ function useCssGridStylesheet(tableId, table, fontSize) {
|
|
14420
14747
|
const allVisibleColumns = table.getVisibleLeafColumns();
|
14421
14748
|
const columnSizing = table.getState().columnSizing;
|
14422
14749
|
const globalMinSize = getCellMinWidth(fontSize);
|
14423
|
-
|
14750
|
+
// header body ?footer
|
14751
|
+
const gridTemplateRows = table.getRowModel().rows.length ? 'min-content 1fr min-content' : 'min-content 1fr';
|
14424
14752
|
return React__default.useMemo(() => {
|
14425
14753
|
let printGridTemplateColumns = '';
|
14426
14754
|
const printHiddenColumns = [];
|
@@ -14438,12 +14766,15 @@ function useCssGridStylesheet(tableId, table, fontSize) {
|
|
14438
14766
|
size = `minmax(${minWidth}px, auto)`;
|
14439
14767
|
} else if (width !== undefined) {
|
14440
14768
|
const isLastColumn = index === allVisibleColumns.length - 1;
|
14441
|
-
if (isLastColumn) {
|
14442
|
-
size = `minmax(${minSize}px, auto)`;
|
14443
|
-
} else if (width === 'grow' || Number.isNaN(width)) {
|
14769
|
+
if (width === 'grow' || Number.isNaN(width) && !isLastColumn) {
|
14444
14770
|
size = `minmax(${minSize}px, 1fr)`;
|
14445
14771
|
} else {
|
14446
|
-
|
14772
|
+
const minWidth = width < minSize ? minSize : width;
|
14773
|
+
if (isLastColumn) {
|
14774
|
+
size = `minmax(${minWidth}px, auto)`;
|
14775
|
+
} else {
|
14776
|
+
size = `${minWidth}px`;
|
14777
|
+
}
|
14447
14778
|
}
|
14448
14779
|
} else {
|
14449
14780
|
size = `minmax(${minSize}px, auto)`;
|
@@ -14460,7 +14791,7 @@ function useCssGridStylesheet(tableId, table, fontSize) {
|
|
14460
14791
|
// we have to be specific so that nested tables don't inherit the same css
|
14461
14792
|
const hiddenColumns = printHiddenColumns.map(id => `table[data-taco='report']#${tableId} > thead > tr > th[data-cell-id='${id}']\n,table[data-taco='report']#${tableId} > tbody > tr > td[data-cell-id='${id}']\n`).join(',');
|
14462
14793
|
return `table[data-taco='report']#${tableId} { grid-template-columns: ${gridTemplateColumns}; grid-template-rows: ${gridTemplateRows}; }
|
14463
|
-
@media print { table[data-taco='report']#${tableId} { grid-template-columns: ${printGridTemplateColumns}; } ${hiddenColumns} { display: none; } }`;
|
14794
|
+
@media print { table[data-taco='report']#${tableId} { grid-template-columns: ${printGridTemplateColumns}; } ${hiddenColumns ? `${hiddenColumns} { display: none; }` : ''} }`;
|
14464
14795
|
}, [allVisibleColumns, columnSizing, globalMinSize, tableMeta.rowActions.rowActionsLength]);
|
14465
14796
|
}
|
14466
14797
|
|
@@ -14658,7 +14989,10 @@ function getCellAttributes(cell, isHighlighted) {
|
|
14658
14989
|
}
|
14659
14990
|
return attributes;
|
14660
14991
|
}
|
14661
|
-
function useSearchHighlighting(cell,
|
14992
|
+
function useSearchHighlighting(cell, cellIndex, ref) {
|
14993
|
+
const {
|
14994
|
+
rowIndex
|
14995
|
+
} = React__default.useContext(RowContext);
|
14662
14996
|
const context = cell.getContext();
|
14663
14997
|
const tableMeta = context.table.options.meta;
|
14664
14998
|
const columnMeta = cell.column.columnDef.meta;
|
@@ -14674,7 +15008,7 @@ function useSearchHighlighting(cell, index, ref) {
|
|
14674
15008
|
return undefined;
|
14675
15009
|
}
|
14676
15010
|
const [rowActiveIndex, currentColumnIndex] = tableMeta.search.highlightedColumnIndexes[tableMeta.search.currentHighlightColumnIndex];
|
14677
|
-
if (rowActiveIndex ===
|
15011
|
+
if (rowActiveIndex === rowIndex && currentColumnIndex === cellIndex) {
|
14678
15012
|
return 'current';
|
14679
15013
|
}
|
14680
15014
|
return true;
|
@@ -15067,16 +15401,8 @@ function useTableGlobalShortcuts(table, tableRef, scrollToIndex) {
|
|
15067
15401
|
const rows = table.getRowModel().rows;
|
15068
15402
|
React__default.useEffect(() => {
|
15069
15403
|
const handleKeyDown = event => {
|
15070
|
-
const
|
15071
|
-
|
15072
|
-
//const eventOriginatedFromCombobox = !!target.closest('[role="combobox"]');
|
15073
|
-
// Don't trigger global shortcuts on the table if event originated from a combobox or if table is
|
15074
|
-
// outside the dialog
|
15075
|
-
if (
|
15076
|
-
//eventOriginatedFromCombobox ||
|
15077
|
-
dialog && !(dialog !== null && dialog !== void 0 && dialog.contains(tableRef.current))
|
15078
|
-
// || tableMeta.shortcutsState.isPaused
|
15079
|
-
) {
|
15404
|
+
const trigger = event.target;
|
15405
|
+
if (isElementInsideOverlay(trigger) && !isSiblingElementInsideSameParentOverlay(trigger, tableRef.current) || isElementInteractive(trigger) && !isElementInsideOrTriggeredFromContainer(trigger, tableRef.current)) {
|
15080
15406
|
return;
|
15081
15407
|
}
|
15082
15408
|
tableMeta.rowActive.handleKeyDown(event, rows.length, scrollToIndex, tableRef);
|
@@ -15097,6 +15423,20 @@ function useTableGlobalShortcuts(table, tableRef, scrollToIndex) {
|
|
15097
15423
|
[tableRef.current, tableMeta.rowActive.rowActiveIndex, scrollToIndex]);
|
15098
15424
|
}
|
15099
15425
|
|
15426
|
+
function EmptyStateBody(props) {
|
15427
|
+
const {
|
15428
|
+
emptyState: Placeholder = null,
|
15429
|
+
...attributes
|
15430
|
+
} = props;
|
15431
|
+
return /*#__PURE__*/React__default.createElement("tbody", Object.assign({}, attributes, {
|
15432
|
+
className: "!auto-rows-fr"
|
15433
|
+
}), /*#__PURE__*/React__default.createElement("tr", {
|
15434
|
+
className: "!auto-rows-fr"
|
15435
|
+
}, /*#__PURE__*/React__default.createElement("td", {
|
15436
|
+
className: "col-span-full !border-0 !p-0 hover:!bg-white"
|
15437
|
+
}, Placeholder ? /*#__PURE__*/React__default.createElement(Placeholder, null) : null)));
|
15438
|
+
}
|
15439
|
+
|
15100
15440
|
function Column$1(_) {
|
15101
15441
|
return null;
|
15102
15442
|
}
|
@@ -15104,28 +15444,28 @@ function Group$3(_) {
|
|
15104
15444
|
return null;
|
15105
15445
|
}
|
15106
15446
|
const Report$1 = /*#__PURE__*/fixedForwardRef(function Report(props, ref) {
|
15107
|
-
var _report$state$groupin;
|
15447
|
+
var _report$state$groupin, _renderer$rows;
|
15108
15448
|
const tableRef = useMergedRef(ref);
|
15109
15449
|
const report = useReport(props, tableRef);
|
15110
15450
|
const renderer = useTableRenderer(report.instance, tableRef, props.defaultRowActiveIndex);
|
15111
|
-
const stylesheet = useStylesheet(
|
15451
|
+
const stylesheet = useStylesheet(report.id, report.instance);
|
15112
15452
|
useTableGlobalShortcuts(report.instance, tableRef, renderer.scrollToIndex);
|
15113
15453
|
const handleFocus = report.meta.rowActive.rowActiveIndex === undefined ? event => {
|
15114
|
-
report.meta.rowActive.handleFocus(event, report.length, renderer.scrollToIndex);
|
15454
|
+
report.meta.rowActive.handleFocus(event, report.meta.length, renderer.scrollToIndex);
|
15115
15455
|
} : undefined;
|
15116
15456
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, stylesheet, /*#__PURE__*/React__default.createElement(Toolbar, {
|
15117
15457
|
customSettings: props.customSettings,
|
15118
15458
|
left: props.toolbarLeft,
|
15119
|
-
length: report.length,
|
15459
|
+
length: report.meta.length,
|
15120
15460
|
right: props.toolbarRight,
|
15121
15461
|
scrollToIndex: renderer.scrollToIndex,
|
15122
15462
|
table: report.instance,
|
15123
|
-
tableId:
|
15463
|
+
tableId: report.id,
|
15124
15464
|
tableRef: tableRef
|
15125
15465
|
}), props.toolbarPanel ? /*#__PURE__*/React__default.createElement("div", {
|
15126
15466
|
className: "mb-4"
|
15127
15467
|
}, props.toolbarPanel) : undefined, /*#__PURE__*/React__default.createElement(focus.FocusScope, null, /*#__PURE__*/React__default.createElement("table", {
|
15128
|
-
id:
|
15468
|
+
id: report.id,
|
15129
15469
|
"data-taco": "report",
|
15130
15470
|
"data-table-font-size": report.meta.fontSize.size,
|
15131
15471
|
"data-table-horizontally-scrolled": report.meta.columnFreezing.isHorizontallyScrolled ? true : undefined,
|
@@ -15139,14 +15479,12 @@ const Report$1 = /*#__PURE__*/fixedForwardRef(function Report(props, ref) {
|
|
15139
15479
|
tabIndex: -1
|
15140
15480
|
}, /*#__PURE__*/React__default.createElement("thead", null, report.instance.getHeaderGroups().map(headerGroup => ( /*#__PURE__*/React__default.createElement("tr", {
|
15141
15481
|
key: headerGroup.id
|
15142
|
-
}, headerGroup.headers.map(Header$4))))), /*#__PURE__*/React__default.createElement(Body, {
|
15143
|
-
length: report.length,
|
15482
|
+
}, headerGroup.headers.map(Header$4))))), (_renderer$rows = renderer.rows) !== null && _renderer$rows !== void 0 && _renderer$rows.length ? ( /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Body, {
|
15144
15483
|
table: report.instance,
|
15145
15484
|
style: renderer.style
|
15146
|
-
}, renderer.rows), report.meta.footer.isEnabled ? ( /*#__PURE__*/React__default.createElement("tfoot", null, /*#__PURE__*/React__default.createElement("tr", null, report.instance.getFooterGroups()[0].headers.map(Footer$3)))) : null)
|
15147
|
-
|
15148
|
-
|
15149
|
-
}) : null));
|
15485
|
+
}, renderer.rows), report.meta.footer.isEnabled ? ( /*#__PURE__*/React__default.createElement("tfoot", null, /*#__PURE__*/React__default.createElement("tr", null, report.instance.getFooterGroups()[0].headers.map(Footer$3)))) : null)) : ( /*#__PURE__*/React__default.createElement(EmptyStateBody, {
|
15486
|
+
emptyState: props.emptyState
|
15487
|
+
})))));
|
15150
15488
|
});
|
15151
15489
|
Report$1.Column = Column$1;
|
15152
15490
|
Report$1.Group = Group$3;
|
@@ -17757,7 +18095,9 @@ function useSettingsStateListener(table, onChangeSettings) {
|
|
17757
18095
|
// @ts-expect-error: fixing type issue while report and table3 TableMeta definitions live in parallel
|
17758
18096
|
meta.columnFreezing.frozenColumnIndex, state.columnOrder, state.columnSizing, state.columnVisibility,
|
17759
18097
|
// @ts-expect-error: fixing type issue while report and table3 TableMeta definitions live in parallel
|
17760
|
-
meta.search.excludeUnmatchedResults, meta.fontSize.size, meta.rowHeight.height,
|
18098
|
+
meta.search.excludeUnmatchedResults, meta.fontSize.size, meta.rowHeight.height,
|
18099
|
+
// @ts-expect-error: fixing type issue while report and table3 TableMeta definitions live in parallel
|
18100
|
+
meta.printing.isWarningVisibleForLargeDatasets, state.sorting]);
|
17761
18101
|
}
|
17762
18102
|
|
17763
18103
|
var Table3FilterComparator;
|
@@ -19172,7 +19512,7 @@ function EditingCell(props) {
|
|
19172
19512
|
}));
|
19173
19513
|
}
|
19174
19514
|
const MemoedEditingCell = /*#__PURE__*/React__default.memo(function MemoedEditingCell(props) {
|
19175
|
-
var _tableMeta$editing$ge, _tableMeta$editing$ro, _rows$tableMeta$rowAc, _column$columnDef$met;
|
19515
|
+
var _tableMeta$editing$ge, _tableMeta$editing$ro, _rows$tableMeta$rowAc, _column$columnDef$met, _column$columnDef$met2;
|
19176
19516
|
const {
|
19177
19517
|
cell,
|
19178
19518
|
column,
|
@@ -19307,7 +19647,7 @@ const MemoedEditingCell = /*#__PURE__*/React__default.memo(function MemoedEditin
|
|
19307
19647
|
}));
|
19308
19648
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, moveReason !== null && mountNode && !error ? ( /*#__PURE__*/React__default.createElement(Indicator, {
|
19309
19649
|
reason: moveReason,
|
19310
|
-
columnName: String(
|
19650
|
+
columnName: String((_column$columnDef$met2 = column.columnDef.meta) === null || _column$columnDef$met2 === void 0 ? void 0 : _column$columnDef$met2.header),
|
19311
19651
|
mountNode: mountNode,
|
19312
19652
|
validationErrors: []
|
19313
19653
|
})) : null, /*#__PURE__*/React__default.createElement("div", {
|
@@ -19436,6 +19776,25 @@ function Header$6(context) {
|
|
19436
19776
|
const isAllRowsSelected = context.table.getIsAllRowsSelected();
|
19437
19777
|
const isSomeRowsSelected = context.table.getIsSomeRowsSelected();
|
19438
19778
|
const title = isAllRowsSelected ? texts.table3.columns.select.deselectAll : texts.table3.columns.select.selectAll;
|
19779
|
+
const tableMeta = context.table.options.meta;
|
19780
|
+
const isServerloading = tableMeta.server.loadAllStatus === TableServerLoadAllState.Loading;
|
19781
|
+
const isLoadingAll = isAllRowsSelected && isServerloading;
|
19782
|
+
const isLoadingPreviousRows = tableMeta.rowSelection.lastSelectedRowIndex !== undefined && isServerloading;
|
19783
|
+
const toggleSelectAll = function () {
|
19784
|
+
try {
|
19785
|
+
const _temp = function () {
|
19786
|
+
if (!isServerloading) {
|
19787
|
+
var _tableMeta$server, _tableMeta$server$loa;
|
19788
|
+
return Promise.resolve((_tableMeta$server = tableMeta.server) === null || _tableMeta$server === void 0 ? void 0 : (_tableMeta$server$loa = _tableMeta$server.loadAllIfNeeded) === null || _tableMeta$server$loa === void 0 ? void 0 : _tableMeta$server$loa.call(_tableMeta$server, context.table.getState().sorting, context.table.getState().columnFilters, undefined)).then(function () {
|
19789
|
+
context.table.toggleAllRowsSelected(!isAllRowsSelected);
|
19790
|
+
});
|
19791
|
+
}
|
19792
|
+
}();
|
19793
|
+
return Promise.resolve(_temp && _temp.then ? _temp.then(function () {}) : void 0);
|
19794
|
+
} catch (e) {
|
19795
|
+
return Promise.reject(e);
|
19796
|
+
}
|
19797
|
+
};
|
19439
19798
|
return /*#__PURE__*/React__default.createElement(Header$5, Object.assign({}, context), /*#__PURE__*/React__default.createElement(Tooltip, {
|
19440
19799
|
title: title
|
19441
19800
|
}, /*#__PURE__*/React__default.createElement(Checkbox, {
|
@@ -19444,8 +19803,9 @@ function Header$6(context) {
|
|
19444
19803
|
key: String(`${isAllRowsSelected}_${isSomeRowsSelected}`),
|
19445
19804
|
checked: isAllRowsSelected,
|
19446
19805
|
indeterminate: isSomeRowsSelected,
|
19447
|
-
onChange:
|
19448
|
-
tabIndex: -1
|
19806
|
+
onChange: toggleSelectAll,
|
19807
|
+
tabIndex: -1,
|
19808
|
+
loading: isLoadingAll || isLoadingPreviousRows
|
19449
19809
|
})));
|
19450
19810
|
} else {
|
19451
19811
|
return /*#__PURE__*/React__default.createElement(Header$5, Object.assign({}, context));
|
@@ -19467,18 +19827,49 @@ const Cell$7 = /*#__PURE__*/React__default.memo(function MemoedCell(context) {
|
|
19467
19827
|
const isActiveRow = tableMeta.rowActive.rowActiveIndex === rowIndex;
|
19468
19828
|
const isSelected = context.row.getIsSelected();
|
19469
19829
|
const title = isSelected ? texts.table3.columns.select.deselect : texts.table3.columns.select.select;
|
19470
|
-
|
19471
|
-
|
19472
|
-
|
19473
|
-
|
19474
|
-
var _tableMeta$rowSelecti;
|
19475
|
-
const [fromIndex, toIndex] = toggleBetween$2((_tableMeta$rowSelecti = tableMeta.rowSelection.lastSelectedRowIndex.current) !== null && _tableMeta$rowSelecti !== void 0 ? _tableMeta$rowSelecti : 0, rowIndex);
|
19476
|
-
context.table.getRowModel().rows.slice(fromIndex, toIndex + 1).forEach(row => row.toggleSelected(true));
|
19477
|
-
} else {
|
19478
|
-
context.row.toggleSelected();
|
19830
|
+
const handleCheckboxClick = function (event) {
|
19831
|
+
try {
|
19832
|
+
function _temp5() {
|
19833
|
+
tableMeta.rowSelection.lastSelectedRowIndex.current = rowIndex;
|
19479
19834
|
}
|
19480
|
-
|
19481
|
-
|
19835
|
+
event.stopPropagation();
|
19836
|
+
const _temp4 = function () {
|
19837
|
+
if (event.shiftKey) {
|
19838
|
+
var _tableMeta$rowSelecti;
|
19839
|
+
function _temp3() {
|
19840
|
+
const currentlySelected = context.table.getSelectedRowModel().rows;
|
19841
|
+
// concat currently selected with selection range and get rid of duplicates using "Set".
|
19842
|
+
// converting allSelected array into updater object: {[row.id]: true}
|
19843
|
+
const allSelected = [...new Set(currentlySelected.concat(selectionRangeRows))];
|
19844
|
+
const updater = allSelected.reduce((obj, row) => Object.assign(obj, {
|
19845
|
+
[row.id]: true
|
19846
|
+
}), {});
|
19847
|
+
context.table.setRowSelection(updater);
|
19848
|
+
}
|
19849
|
+
const [fromIndex, toIndex] = toggleBetween$2((_tableMeta$rowSelecti = tableMeta.rowSelection.lastSelectedRowIndex.current) !== null && _tableMeta$rowSelecti !== void 0 ? _tableMeta$rowSelecti : 0, rowIndex);
|
19850
|
+
const selectionRangeRows = context.table.getRowModel().rows.slice(fromIndex, toIndex + 1);
|
19851
|
+
// Table data loader filling-in all the rest of unloaded items with the undefined values,
|
19852
|
+
// so we can easily check if at least one of the rows in the selection range is undefined,
|
19853
|
+
// then it means that we need to call load all.
|
19854
|
+
const hasUndefinedRows = selectionRangeRows.some(row => row.original === undefined);
|
19855
|
+
const _temp2 = function () {
|
19856
|
+
if (hasUndefinedRows) {
|
19857
|
+
var _tableMeta$server2, _tableMeta$server2$lo;
|
19858
|
+
// We don't need to await and freeze UI
|
19859
|
+
return Promise.resolve((_tableMeta$server2 = tableMeta.server) === null || _tableMeta$server2 === void 0 ? void 0 : (_tableMeta$server2$lo = _tableMeta$server2.loadAllIfNeeded) === null || _tableMeta$server2$lo === void 0 ? void 0 : _tableMeta$server2$lo.call(_tableMeta$server2, context.table.getState().sorting, context.table.getState().columnFilters, undefined)).then(function () {});
|
19860
|
+
}
|
19861
|
+
}();
|
19862
|
+
return _temp2 && _temp2.then ? _temp2.then(_temp3) : _temp3(_temp2);
|
19863
|
+
} else {
|
19864
|
+
context.row.toggleSelected();
|
19865
|
+
}
|
19866
|
+
}();
|
19867
|
+
return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp5) : _temp5(_temp4));
|
19868
|
+
} catch (e) {
|
19869
|
+
return Promise.reject(e);
|
19870
|
+
}
|
19871
|
+
};
|
19872
|
+
if (context.table.options.enableMultiRowSelection) {
|
19482
19873
|
return /*#__PURE__*/React__default.createElement(DisplayCell$1, Object.assign({}, context), /*#__PURE__*/React__default.createElement(Tooltip, {
|
19483
19874
|
title: /*#__PURE__*/React__default.createElement(React__default.Fragment, null, title, /*#__PURE__*/React__default.createElement(Shortcut, {
|
19484
19875
|
className: "ml-2",
|
@@ -19488,7 +19879,7 @@ const Cell$7 = /*#__PURE__*/React__default.memo(function MemoedCell(context) {
|
|
19488
19879
|
"aria-label": title,
|
19489
19880
|
className: "!mt-0",
|
19490
19881
|
checked: isSelected,
|
19491
|
-
onClick:
|
19882
|
+
onClick: handleCheckboxClick,
|
19492
19883
|
// this is necessary to remove console spam from eslint
|
19493
19884
|
onChange: () => false,
|
19494
19885
|
tabIndex: isActiveRow ? 0 : -1
|
@@ -20180,7 +20571,7 @@ function usePauseShortcuts() {
|
|
20180
20571
|
}
|
20181
20572
|
|
20182
20573
|
function useTable$2(props, ref) {
|
20183
|
-
var _settings$columnFreez, _props$length;
|
20574
|
+
var _settings$columnFreez, _props$data, _ref, _props$length, _props$data2;
|
20184
20575
|
// load any persisted table settings and merge them with any defaults
|
20185
20576
|
const [settings, setSettings] = useSettings(props.id, props.defaultSettings, props.onChangeSettings);
|
20186
20577
|
// configure table3 options
|
@@ -20204,6 +20595,12 @@ function useTable$2(props, ref) {
|
|
20204
20595
|
// haven't migrated load all/server loading yet
|
20205
20596
|
const search = useSearch(options.enableSearch, settings.excludeUnmatchedRecordsInSearch);
|
20206
20597
|
const shortcutsState = usePauseShortcuts();
|
20598
|
+
React__default.useEffect(() => {
|
20599
|
+
// Needed for DataDog
|
20600
|
+
if (!Array.isArray(props.data)) {
|
20601
|
+
console.error('Table3 data value is not an array');
|
20602
|
+
}
|
20603
|
+
}, []);
|
20207
20604
|
// custom features - shared/migrated
|
20208
20605
|
const columnOrdering = useTableColumnOrdering(options.enableColumnOrdering);
|
20209
20606
|
const fontSize = useTableFontSize(options.enableFontSize, settings.fontSize);
|
@@ -20256,7 +20653,8 @@ function useTable$2(props, ref) {
|
|
20256
20653
|
};
|
20257
20654
|
};
|
20258
20655
|
const table = reactTable.useReactTable({
|
20259
|
-
|
20656
|
+
// We need to fallback to an empty array, to avoid table crash in the client
|
20657
|
+
data: (_props$data = props.data) !== null && _props$data !== void 0 ? _props$data : [],
|
20260
20658
|
columns,
|
20261
20659
|
getCoreRowModel: reactTable.getCoreRowModel(),
|
20262
20660
|
initialState,
|
@@ -20300,7 +20698,7 @@ function useTable$2(props, ref) {
|
|
20300
20698
|
useTableSortingListener(table, props.onSort);
|
20301
20699
|
return {
|
20302
20700
|
table,
|
20303
|
-
length: (_props$length = props.length) !== null && _props$length !== void 0 ? _props$length : props.data.length
|
20701
|
+
length: (_ref = (_props$length = props.length) !== null && _props$length !== void 0 ? _props$length : (_props$data2 = props.data) === null || _props$data2 === void 0 ? void 0 : _props$data2.length) !== null && _ref !== void 0 ? _ref : 0
|
20304
20702
|
};
|
20305
20703
|
}
|
20306
20704
|
function configureReactTableOptions$1(props, options) {
|
@@ -20784,7 +21182,7 @@ function resetHighlightedColumnIndexes$1(enabled, value, table) {
|
|
20784
21182
|
return firstRowIndex;
|
20785
21183
|
}
|
20786
21184
|
|
20787
|
-
|
21185
|
+
const FilterColumn$1 = /*#__PURE__*/React__default.forwardRef((props, ref) => {
|
20788
21186
|
const {
|
20789
21187
|
allColumns,
|
20790
21188
|
filters,
|
@@ -20804,7 +21202,8 @@ function FilterColumn$1(props) {
|
|
20804
21202
|
warning: warning,
|
20805
21203
|
className: "min-h-[theme(spacing.8)]"
|
20806
21204
|
}, /*#__PURE__*/React__default.createElement(Select2, Object.assign({}, attributes, {
|
20807
|
-
|
21205
|
+
ref: ref,
|
21206
|
+
className: "focus:yt-focus !w-32 flex-shrink-0",
|
20808
21207
|
emptyValue: null,
|
20809
21208
|
onChange: handleChange,
|
20810
21209
|
value: value
|
@@ -20822,7 +21221,7 @@ function FilterColumn$1(props) {
|
|
20822
21221
|
disabled: column.id !== value && (!column.getCanFilter() || !!filters.find(f => f.id === column.id))
|
20823
21222
|
}, ((_column$columnDef$met = column.columnDef.meta) === null || _column$columnDef$met === void 0 ? void 0 : _column$columnDef$met.header) + (column.parent ? ` (${(_column$parent = column.parent) === null || _column$parent === void 0 ? void 0 : (_column$parent$column = _column$parent.columnDef.meta) === null || _column$parent$column === void 0 ? void 0 : _column$parent$column.header})` : ''));
|
20824
21223
|
}))));
|
20825
|
-
}
|
21224
|
+
});
|
20826
21225
|
|
20827
21226
|
function FilterComparator$1(props) {
|
20828
21227
|
const {
|
@@ -20841,7 +21240,7 @@ function FilterComparator$1(props) {
|
|
20841
21240
|
}
|
20842
21241
|
}, [validComparators]);
|
20843
21242
|
return /*#__PURE__*/React__default.createElement(Select2, Object.assign({}, attributes, {
|
20844
|
-
className: "!w-32 flex-shrink-0",
|
21243
|
+
className: "focus:yt-focus !w-32 flex-shrink-0",
|
20845
21244
|
disabled: !column,
|
20846
21245
|
onChange: handleChange,
|
20847
21246
|
value: value
|
@@ -20928,38 +21327,6 @@ function getComparatorText$1(comparator, texts, column) {
|
|
20928
21327
|
}
|
20929
21328
|
}
|
20930
21329
|
|
20931
|
-
function Placeholder$1(props) {
|
20932
|
-
const {
|
20933
|
-
allColumns,
|
20934
|
-
filters,
|
20935
|
-
onCreate: handleCreate,
|
20936
|
-
onRemove: handleRemove,
|
20937
|
-
position
|
20938
|
-
} = props;
|
20939
|
-
const {
|
20940
|
-
texts
|
20941
|
-
} = useLocalization();
|
20942
|
-
return /*#__PURE__*/React__default.createElement("div", {
|
20943
|
-
className: "flex items-start gap-2"
|
20944
|
-
}, /*#__PURE__*/React__default.createElement("div", {
|
20945
|
-
className: "flex min-h-[theme(spacing.8)] w-14 flex-shrink-0 items-center justify-end pr-2 text-right"
|
20946
|
-
}, position > 0 ? texts.table3.filters.conditions.and : texts.table3.filters.conditions.where), /*#__PURE__*/React__default.createElement(FilterColumn$1, {
|
20947
|
-
allColumns: allColumns,
|
20948
|
-
filters: filters,
|
20949
|
-
onChange: handleCreate,
|
20950
|
-
value: null
|
20951
|
-
}), /*#__PURE__*/React__default.createElement(FilterComparator$1, null), /*#__PURE__*/React__default.createElement(Input, {
|
20952
|
-
"aria-label": texts.table3.filters.emptyFilter.value,
|
20953
|
-
className: "flex-grow",
|
20954
|
-
disabled: true,
|
20955
|
-
value: texts.table3.filters.emptyFilter.value
|
20956
|
-
}), handleRemove ? /*#__PURE__*/React__default.createElement(IconButton, {
|
20957
|
-
appearance: "discrete",
|
20958
|
-
icon: "close",
|
20959
|
-
onClick: handleRemove
|
20960
|
-
}) : null);
|
20961
|
-
}
|
20962
|
-
|
20963
21330
|
function FilterValue$1(props) {
|
20964
21331
|
const {
|
20965
21332
|
column,
|
@@ -21080,6 +21447,7 @@ function Filter$2(props) {
|
|
21080
21447
|
texts
|
21081
21448
|
} = useLocalization();
|
21082
21449
|
const column = allColumns.find(c => c.id === filter.id);
|
21450
|
+
const ref = React__default.useRef(null);
|
21083
21451
|
const {
|
21084
21452
|
id,
|
21085
21453
|
value: {
|
@@ -21098,7 +21466,7 @@ function Filter$2(props) {
|
|
21098
21466
|
comparator: null,
|
21099
21467
|
value: null
|
21100
21468
|
};
|
21101
|
-
handleChange(
|
21469
|
+
handleChange(position, {
|
21102
21470
|
id: columnId,
|
21103
21471
|
value
|
21104
21472
|
});
|
@@ -21108,7 +21476,7 @@ function Filter$2(props) {
|
|
21108
21476
|
if (comparator === Table3FilterComparator.IsEmpty || comparator === Table3FilterComparator.IsNotEmpty) {
|
21109
21477
|
nextValue = undefined;
|
21110
21478
|
}
|
21111
|
-
handleChange(
|
21479
|
+
handleChange(position, {
|
21112
21480
|
id,
|
21113
21481
|
value: {
|
21114
21482
|
comparator,
|
@@ -21117,7 +21485,7 @@ function Filter$2(props) {
|
|
21117
21485
|
});
|
21118
21486
|
};
|
21119
21487
|
const handleChangeValue = value => {
|
21120
|
-
handleChange(
|
21488
|
+
handleChange(position, {
|
21121
21489
|
id,
|
21122
21490
|
value: {
|
21123
21491
|
...filter.value,
|
@@ -21125,7 +21493,12 @@ function Filter$2(props) {
|
|
21125
21493
|
}
|
21126
21494
|
});
|
21127
21495
|
};
|
21128
|
-
const handleRemove = () => onRemove(
|
21496
|
+
const handleRemove = () => onRemove === null || onRemove === void 0 ? void 0 : onRemove(position);
|
21497
|
+
React__default.useEffect(() => {
|
21498
|
+
if (ref.current && !id) {
|
21499
|
+
ref.current.focus(); // after adding a new filter placeholder, we want to focus it right way.
|
21500
|
+
}
|
21501
|
+
}, [id]);
|
21129
21502
|
return /*#__PURE__*/React__default.createElement("div", {
|
21130
21503
|
className: "flex items-start gap-2"
|
21131
21504
|
}, /*#__PURE__*/React__default.createElement("div", {
|
@@ -21134,7 +21507,8 @@ function Filter$2(props) {
|
|
21134
21507
|
allColumns: allColumns,
|
21135
21508
|
filters: filters,
|
21136
21509
|
onChange: handleChangeColumn,
|
21137
|
-
value: id
|
21510
|
+
value: id,
|
21511
|
+
ref: ref
|
21138
21512
|
}), /*#__PURE__*/React__default.createElement(FilterComparator$1, {
|
21139
21513
|
column: column,
|
21140
21514
|
onChange: handleChangeComparator,
|
@@ -21144,18 +21518,25 @@ function Filter$2(props) {
|
|
21144
21518
|
comparator: comparator,
|
21145
21519
|
onChange: handleChangeValue,
|
21146
21520
|
value: value
|
21147
|
-
}), /*#__PURE__*/React__default.createElement(IconButton, {
|
21521
|
+
}), onRemove ? /*#__PURE__*/React__default.createElement(IconButton, {
|
21148
21522
|
appearance: "discrete",
|
21149
21523
|
className: "ml-auto",
|
21150
21524
|
icon: "close",
|
21151
21525
|
onClick: handleRemove
|
21152
|
-
}));
|
21526
|
+
}) : null);
|
21153
21527
|
}
|
21154
21528
|
|
21155
21529
|
function sortByHeader$1(a, b) {
|
21156
21530
|
var _a$columnDef$meta, _a$columnDef$meta$hea, _a$columnDef$meta$hea2, _b$columnDef$meta;
|
21157
21531
|
return (_a$columnDef$meta = a.columnDef.meta) === null || _a$columnDef$meta === void 0 ? void 0 : (_a$columnDef$meta$hea = _a$columnDef$meta.header) === null || _a$columnDef$meta$hea === void 0 ? void 0 : (_a$columnDef$meta$hea2 = _a$columnDef$meta$hea.localeCompare) === null || _a$columnDef$meta$hea2 === void 0 ? void 0 : _a$columnDef$meta$hea2.call(_a$columnDef$meta$hea, (_b$columnDef$meta = b.columnDef.meta) === null || _b$columnDef$meta === void 0 ? void 0 : _b$columnDef$meta.header);
|
21158
21532
|
}
|
21533
|
+
const placeholderFilter$1 = {
|
21534
|
+
id: null,
|
21535
|
+
value: {
|
21536
|
+
comparator: Table3FilterComparator.Contains,
|
21537
|
+
value: undefined
|
21538
|
+
}
|
21539
|
+
};
|
21159
21540
|
function FiltersButton(props) {
|
21160
21541
|
const {
|
21161
21542
|
total,
|
@@ -21175,41 +21556,28 @@ function FiltersButton(props) {
|
|
21175
21556
|
shift: true
|
21176
21557
|
};
|
21177
21558
|
// state, since we "apply" filters
|
21178
|
-
const [filters, setFilters] = React__default.useState(appliedFilters);
|
21179
|
-
const [placeholderCount, setPlaceholderCount] = React__default.useState(1);
|
21559
|
+
const [filters, setFilters] = React__default.useState(appliedFilters.length ? appliedFilters : [placeholderFilter$1]);
|
21180
21560
|
// filters
|
21181
|
-
const handleChangeFilter = (
|
21561
|
+
const handleChangeFilter = (position, filter) => {
|
21182
21562
|
setFilters(currentFilters => {
|
21183
|
-
|
21184
|
-
|
21185
|
-
|
21186
|
-
|
21563
|
+
return currentFilters.map((current, index) => {
|
21564
|
+
if (index === position) {
|
21565
|
+
return filter;
|
21566
|
+
}
|
21567
|
+
return current;
|
21568
|
+
});
|
21187
21569
|
});
|
21188
21570
|
};
|
21189
|
-
const handleRemoveFilter =
|
21190
|
-
if (filters.length === 1
|
21191
|
-
|
21571
|
+
const handleRemoveFilter = position => {
|
21572
|
+
if (filters.length === 1) {
|
21573
|
+
setFilters([placeholderFilter$1]);
|
21574
|
+
return;
|
21192
21575
|
}
|
21193
|
-
setFilters(currentFilters => currentFilters.filter(
|
21194
|
-
};
|
21195
|
-
// placeholders
|
21196
|
-
const handleCreateFilterFromPlaceholder = columnId => {
|
21197
|
-
setFilters(currentFilters => [...currentFilters, {
|
21198
|
-
id: columnId,
|
21199
|
-
value: {
|
21200
|
-
comparator: Table3FilterComparator.Contains,
|
21201
|
-
value: undefined
|
21202
|
-
}
|
21203
|
-
}]);
|
21204
|
-
handleRemovePlaceholder();
|
21205
|
-
};
|
21206
|
-
const handleCreatePlaceholder = () => {
|
21207
|
-
setPlaceholderCount(count => count + 1);
|
21576
|
+
setFilters(currentFilters => currentFilters.filter((_, index) => index !== position));
|
21208
21577
|
};
|
21209
|
-
const
|
21210
|
-
|
21578
|
+
const handleCreateNew = () => {
|
21579
|
+
setFilters(filters.concat(placeholderFilter$1));
|
21211
21580
|
};
|
21212
|
-
//
|
21213
21581
|
const handleApply = () => {
|
21214
21582
|
table.setColumnFilters(() => {
|
21215
21583
|
const newFilters = filters.filter(f => {
|
@@ -21229,20 +21597,17 @@ function FiltersButton(props) {
|
|
21229
21597
|
};
|
21230
21598
|
const handleClear = () => {
|
21231
21599
|
table.resetColumnFilters();
|
21232
|
-
setFilters([]);
|
21233
|
-
setPlaceholderCount(1);
|
21600
|
+
setFilters([placeholderFilter$1]);
|
21234
21601
|
};
|
21235
21602
|
const handleClose = React__default.useCallback(open => {
|
21236
21603
|
if (!open) {
|
21237
|
-
setFilters(appliedFilters);
|
21238
|
-
setPlaceholderCount(appliedFilters.length === 0 ? 1 : 0);
|
21604
|
+
setFilters(appliedFilters.length === 0 ? [placeholderFilter$1] : appliedFilters);
|
21239
21605
|
}
|
21240
21606
|
}, [appliedFilters]);
|
21241
21607
|
// Because filters can be reset from outside
|
21242
21608
|
React__default.useEffect(() => {
|
21243
21609
|
if (appliedFilters.length === 0) {
|
21244
|
-
setFilters([]);
|
21245
|
-
setPlaceholderCount(1);
|
21610
|
+
setFilters([placeholderFilter$1]);
|
21246
21611
|
}
|
21247
21612
|
}, [appliedFilters]);
|
21248
21613
|
const buttonProps = {
|
@@ -21272,19 +21637,12 @@ function FiltersButton(props) {
|
|
21272
21637
|
filters: filters,
|
21273
21638
|
position: index,
|
21274
21639
|
onChange: handleChangeFilter,
|
21275
|
-
onRemove: handleRemoveFilter
|
21276
|
-
}))), [...Array(placeholderCount)].map((_, index) => ( /*#__PURE__*/React__default.createElement(Placeholder$1, {
|
21277
|
-
key: `placeholder_${index}`,
|
21278
|
-
allColumns: allColumns,
|
21279
|
-
filters: filters,
|
21280
|
-
position: filters.length + index,
|
21281
|
-
onCreate: handleCreateFilterFromPlaceholder,
|
21282
|
-
onRemove: placeholderCount > 1 || filters.length > 0 ? handleRemovePlaceholder : undefined
|
21640
|
+
onRemove: filters.length > 0 && filters.some(f => f.id) || filters.length > 1 ? handleRemoveFilter : undefined
|
21283
21641
|
}))), /*#__PURE__*/React__default.createElement("div", {
|
21284
21642
|
className: "justify-start"
|
21285
21643
|
}, /*#__PURE__*/React__default.createElement(Button$1, {
|
21286
21644
|
appearance: "discrete",
|
21287
|
-
onClick:
|
21645
|
+
onClick: handleCreateNew
|
21288
21646
|
}, "+ ", texts.table3.filters.buttons.addFilter))), /*#__PURE__*/React__default.createElement(Group, {
|
21289
21647
|
className: "ml-auto"
|
21290
21648
|
}, /*#__PURE__*/React__default.createElement(Popover.Close, null, /*#__PURE__*/React__default.createElement(Button$1, null, "Cancel")), /*#__PURE__*/React__default.createElement(Button$1, {
|
@@ -21634,6 +21992,7 @@ function PrintButton(props) {
|
|
21634
21992
|
const buttonRef = React__default.useRef(null);
|
21635
21993
|
const tableMeta = table.options.meta;
|
21636
21994
|
const state = table.getState();
|
21995
|
+
// @ts-expect-error: fixing type issue while report and table3 TableMeta definitions live in parallel
|
21637
21996
|
const {
|
21638
21997
|
isWarningVisibleForLargeDatasets
|
21639
21998
|
} = tableMeta.printing;
|
@@ -21812,6 +22171,7 @@ function PrintButton(props) {
|
|
21812
22171
|
onAccept: handleWarningDialogAccept,
|
21813
22172
|
onClose: handleWarningDialogClose,
|
21814
22173
|
onCancel: handleWarningDialogCancel,
|
22174
|
+
// @ts-expect-error: fixing type issue while report and table3 TableMeta definitions live in parallel
|
21815
22175
|
onVisibilityChange: tableMeta.printing.setIsWarningVisibleForLargeDatasets
|
21816
22176
|
}));
|
21817
22177
|
}
|
@@ -22521,13 +22881,10 @@ const Table$1 = /*#__PURE__*/fixedForwardRef(function Table3(props, ref) {
|
|
22521
22881
|
}, []);
|
22522
22882
|
React__default.useEffect(() => {
|
22523
22883
|
const handleKeyDown = event => {
|
22524
|
-
const
|
22525
|
-
const dialog = target.closest('[role="dialog"]');
|
22884
|
+
const trigger = event.target;
|
22526
22885
|
// Select2 also have combobox role to align with W3C guidelines
|
22527
|
-
const eventOriginatedFromCombobox = !!
|
22528
|
-
|
22529
|
-
// outside the dialog
|
22530
|
-
if (eventOriginatedFromCombobox || dialog && !(dialog !== null && dialog !== void 0 && dialog.contains(internalRef.current)) || tableMeta.shortcutsState.isPaused) {
|
22886
|
+
const eventOriginatedFromCombobox = !!trigger.closest('[role="combobox"]:not([data-taco="Select2"])');
|
22887
|
+
if (tableMeta.shortcutsState.isPaused || isElementInsideOverlay(trigger) && !isSiblingElementInsideSameParentOverlay(trigger, internalRef.current) || isElementInteractive(trigger) && !isElementInsideOrTriggeredFromContainer(trigger, internalRef.current) || eventOriginatedFromCombobox) {
|
22531
22888
|
return;
|
22532
22889
|
}
|
22533
22890
|
const rows = table.getRowModel().rows;
|
@@ -23039,9 +23396,9 @@ const PrimaryNavigation = /*#__PURE__*/React__default.forwardRef(function Primar
|
|
23039
23396
|
} = useLocalization();
|
23040
23397
|
const internalRef = useMergedRef(ref);
|
23041
23398
|
const className = cn('flex h-full w-full flex-grow items-center overflow-hidden active:outline-none relative', props.className);
|
23042
|
-
const moreButton = /*#__PURE__*/React__default.createElement(Button$1, {
|
23399
|
+
const moreButton = () => ( /*#__PURE__*/React__default.createElement(Button$1, {
|
23043
23400
|
className: cn(getLinkClasses(), '!bg-transparent aria-expanded:!bg-white/[.08]')
|
23044
|
-
}, texts.header.more);
|
23401
|
+
}, texts.header.more));
|
23045
23402
|
return /*#__PURE__*/React__default.createElement("nav", Object.assign({}, props, {
|
23046
23403
|
className: className,
|
23047
23404
|
ref: internalRef
|
@@ -23651,6 +24008,7 @@ exports.Card = Card;
|
|
23651
24008
|
exports.Checkbox = Checkbox;
|
23652
24009
|
exports.CollectionPrimitive = Collection;
|
23653
24010
|
exports.Combobox = Combobox;
|
24011
|
+
exports.DEFAULT_PAGE_SIZE = DEFAULT_PAGE_SIZE;
|
23654
24012
|
exports.Datepicker = Datepicker;
|
23655
24013
|
exports.Dialog = Dialog;
|
23656
24014
|
exports.Drawer = Drawer;
|
@@ -23739,6 +24097,7 @@ exports.useOnClickOutside = useOnClickOutside;
|
|
23739
24097
|
exports.usePagination = usePagination;
|
23740
24098
|
exports.useRadioGroup = useRadioGroup;
|
23741
24099
|
exports.useTable3DataLoader = useTable3DataLoader;
|
24100
|
+
exports.useTableDataLoader = useTableDataLoader;
|
23742
24101
|
exports.useTableRowCreation = useTableRowCreation;
|
23743
24102
|
exports.useToast = useToast;
|
23744
24103
|
//# sourceMappingURL=taco.cjs.development.js.map
|