@economic/taco 2.22.2 → 2.24.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|