@economic/taco 2.45.0-alpha.7 → 2.45.0-alpha.9
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/components/Alert/Alert.d.ts +1 -1
- package/dist/components/Icon/components/Experiment.d.ts +3 -0
- package/dist/components/Icon/components/index.d.ts +1 -1
- package/dist/components/Input/Input.d.ts +1 -1
- package/dist/components/Menu/components/Item.d.ts +1 -1
- package/dist/components/Menu/components/Link.d.ts +1 -1
- package/dist/components/Navigation2/components/Link.d.ts +1 -1
- package/dist/components/Select2/components/Option.d.ts +2 -2
- package/dist/components/Select2/components/Search.d.ts +1 -1
- package/dist/components/Table3/features/useEditingState.d.ts +1 -1
- package/dist/components/Table3/features/useTableEditing.d.ts +2 -2
- package/dist/components/Tag/Tag.d.ts +1 -1
- package/dist/esm/index.css +10 -2
- package/dist/esm/packages/taco/src/components/Alert/Alert.js +2 -0
- package/dist/esm/packages/taco/src/components/Alert/Alert.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Banner/util.js +5 -0
- package/dist/esm/packages/taco/src/components/Banner/util.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Combobox/useCombobox.js +3 -1
- package/dist/esm/packages/taco/src/components/Combobox/useCombobox.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js +1 -0
- package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Icon/components/Experiment.js +20 -0
- package/dist/esm/packages/taco/src/components/Icon/components/Experiment.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Icon/components/index.js +2 -0
- package/dist/esm/packages/taco/src/components/Icon/components/index.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Menu/components/Content.js +1 -1
- package/dist/esm/packages/taco/src/components/Menu/components/Content.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingControlCell.js +10 -4
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingControlCell.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Editing/Alert.js +3 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Editing/Alert.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/features/useEditingState.js +16 -8
- package/dist/esm/packages/taco/src/components/Table3/features/useEditingState.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/features/useTableEditing.js +47 -30
- package/dist/esm/packages/taco/src/components/Table3/features/useTableEditing.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/listeners/useTableEditingListener.js +5 -8
- package/dist/esm/packages/taco/src/components/Table3/listeners/useTableEditingListener.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/useTable3.js +3 -4
- package/dist/esm/packages/taco/src/components/Table3/useTable3.js.map +1 -1
- package/dist/esm/packages/taco/src/hooks/useGlobalKeyDown.js +2 -2
- package/dist/esm/packages/taco/src/hooks/useGlobalKeyDown.js.map +1 -1
- package/dist/esm/packages/taco/src/hooks/useLazyEffect.js +1 -1
- package/dist/esm/packages/taco/src/hooks/useLazyEffect.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/BubbleSelect.js +1 -1
- package/dist/esm/packages/taco/src/primitives/BubbleSelect.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Button.js +1 -6
- package/dist/esm/packages/taco/src/primitives/Button.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Body/EmptyStateBody.js +9 -2
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Body/EmptyStateBody.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableServerLoading.js +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableServerLoading.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableFontSizeListener.js +2 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableFontSizeListener.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/dataTypes.js +6 -2
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/dataTypes.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/search.js +7 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/search.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/setup.js +8 -3
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/setup.js.map +1 -1
- package/dist/esm/packages/taco/src/types.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/dom.js +12 -1
- package/dist/esm/packages/taco/src/utils/dom.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/keyboard.js +5 -2
- package/dist/esm/packages/taco/src/utils/keyboard.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/tailwind.js +2 -0
- package/dist/esm/packages/taco/src/utils/tailwind.js.map +1 -1
- package/dist/hooks/useGlobalKeyDown.d.ts +1 -1
- package/dist/index.css +10 -2
- package/dist/primitives/Table/useTableManager/util/dataTypes.d.ts +1 -1
- package/dist/taco.cjs.development.js +170 -79
- 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/types.d.ts +1 -1
- package/dist/utils/keyboard.d.ts +1 -1
- package/package.json +2 -2
@@ -45,6 +45,7 @@ var compact = _interopDefault(require('lodash/compact'));
|
|
45
45
|
var pullAt = _interopDefault(require('lodash/pullAt'));
|
46
46
|
var omit = _interopDefault(require('lodash/omit'));
|
47
47
|
var setWith = _interopDefault(require('lodash/setWith'));
|
48
|
+
var _ = _interopDefault(require('lodash'));
|
48
49
|
var TabsPrimitive = require('@radix-ui/react-tabs');
|
49
50
|
var Joyride = require('react-joyride');
|
50
51
|
var Joyride__default = _interopDefault(Joyride);
|
@@ -59,6 +60,8 @@ const getColorByState = state => {
|
|
59
60
|
return 'yellow';
|
60
61
|
case 'error':
|
61
62
|
return 'red';
|
63
|
+
case 'experiment':
|
64
|
+
return 'purple';
|
62
65
|
case 'success':
|
63
66
|
return 'green';
|
64
67
|
default:
|
@@ -1615,6 +1618,22 @@ function IconExpenses(props, svgRef) {
|
|
1615
1618
|
}
|
1616
1619
|
var Expenses = /*#__PURE__*/React.forwardRef(IconExpenses);
|
1617
1620
|
|
1621
|
+
function IconExperiment(props, svgRef) {
|
1622
|
+
return /*#__PURE__*/React.createElement("svg", Object.assign({
|
1623
|
+
fill: "none",
|
1624
|
+
xmlns: "http://www.w3.org/2000/svg",
|
1625
|
+
viewBox: "0 0 20 20",
|
1626
|
+
ref: svgRef
|
1627
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
1628
|
+
fillRule: "evenodd",
|
1629
|
+
clipRule: "evenodd",
|
1630
|
+
d: "M8.962 9.26V5.313h2.843V9.28c0 .376.796 1.24 1.049 1.511L14.5 12.5c-.507.218-3.166-1.19-4.341-.211C7.159 14.789 6 13 6.5 12c.316-.632 2.462-1.803 2.462-2.74zm.24-4.469a.762.762 0 00-.752.772v3.696a.61.61 0 01-.177.43l-2.592 2.6c-.911.913-.281 2.502.992 2.502h7.154c1.25 0 1.89-1.538 1.027-2.466l-2.446-2.63a.61.61 0 01-.162-.415V5.563a.762.762 0 00-.752-.772H9.202z",
|
1631
|
+
fill: "currentColor",
|
1632
|
+
stroke: "currentColor"
|
1633
|
+
}));
|
1634
|
+
}
|
1635
|
+
var Experiment = /*#__PURE__*/React.forwardRef(IconExperiment);
|
1636
|
+
|
1618
1637
|
function IconExportToExcel(props, svgRef) {
|
1619
1638
|
return /*#__PURE__*/React.createElement("svg", Object.assign({
|
1620
1639
|
xmlns: "http://www.w3.org/2000/svg",
|
@@ -3672,6 +3691,7 @@ const icons = {
|
|
3672
3691
|
envelope: Envelope,
|
3673
3692
|
'expand-view': ExpandView,
|
3674
3693
|
expenses: Expenses,
|
3694
|
+
experiment: Experiment,
|
3675
3695
|
'export-to-excel': ExportToExcel,
|
3676
3696
|
'export-to-pdf': ExportToPdf,
|
3677
3697
|
export: Export,
|
@@ -3879,6 +3899,8 @@ const getIconName = state => {
|
|
3879
3899
|
return 'warning';
|
3880
3900
|
case 'error':
|
3881
3901
|
return 'close';
|
3902
|
+
case 'experiment':
|
3903
|
+
return 'experiment';
|
3882
3904
|
case 'success':
|
3883
3905
|
return 'tick';
|
3884
3906
|
default:
|
@@ -4214,6 +4236,11 @@ const getBannerIcon = type => {
|
|
4214
4236
|
icon: "close",
|
4215
4237
|
color: "red"
|
4216
4238
|
});
|
4239
|
+
case 'experiment':
|
4240
|
+
return /*#__PURE__*/React__default.createElement(BadgeIcon, {
|
4241
|
+
icon: "experiment",
|
4242
|
+
color: "purple"
|
4243
|
+
});
|
4217
4244
|
case 'warning':
|
4218
4245
|
return /*#__PURE__*/React__default.createElement(BadgeIcon, {
|
4219
4246
|
icon: "warning",
|
@@ -4306,6 +4333,9 @@ function isElementTriggeredFromContainer(element, container) {
|
|
4306
4333
|
return true;
|
4307
4334
|
}
|
4308
4335
|
const elementInDocument = document.querySelector(escapedSelector);
|
4336
|
+
if (elementInDocument === container) {
|
4337
|
+
return true;
|
4338
|
+
}
|
4309
4339
|
// if the element does exist, see if it is itself connected to somethng that was triggered from the container
|
4310
4340
|
if (elementInDocument) {
|
4311
4341
|
return isElementTriggeredFromContainer(elementInDocument, container);
|
@@ -4328,7 +4358,15 @@ function isElementInteractive(element) {
|
|
4328
4358
|
if (!element) {
|
4329
4359
|
return false;
|
4330
4360
|
}
|
4331
|
-
|
4361
|
+
const interactiveElements = ['A', 'BUTTON', 'INPUT', 'TEXTAREA', 'SELECT', 'LABEL', 'OPTION'];
|
4362
|
+
const isInteractive = interactiveElements.includes(element.tagName) && !element.hidden && !element.disabled && !element.readOnly;
|
4363
|
+
// sometimes buttons contain content like an icon, and we can't rely on pointer events being disabled
|
4364
|
+
// so search for a focusable parent
|
4365
|
+
if (!isInteractive) {
|
4366
|
+
const focusableParent = element.closest(FOCUSABLE_ELEMENTS.join(','));
|
4367
|
+
return focusableParent ? interactiveElements.includes(focusableParent.tagName) : false;
|
4368
|
+
}
|
4369
|
+
return isInteractive;
|
4332
4370
|
}
|
4333
4371
|
function isElementInsideTable3OrReport(element) {
|
4334
4372
|
return !!(element !== null && element !== void 0 && element.closest('[data-taco^=table]'));
|
@@ -4359,9 +4397,12 @@ function shouldTriggerShortcut(event, key) {
|
|
4359
4397
|
}
|
4360
4398
|
return event.key.toLowerCase() === keyOptions.key.toLowerCase();
|
4361
4399
|
}
|
4362
|
-
function createShortcutKeyDownHandler(key, handler, stopPropagation = true) {
|
4400
|
+
function createShortcutKeyDownHandler(key, handler, stopPropagation = true, element) {
|
4363
4401
|
return function (event) {
|
4364
|
-
|
4402
|
+
const dialog = document.querySelector('[role="dialog"]');
|
4403
|
+
const isOutsideDialog = element && dialog && !dialog.contains(element);
|
4404
|
+
if (event.target !== event.currentTarget && isElementInteractive(event.target) && !isPressingMetaKey(event) || isOutsideDialog // Avoid triggering shortcut if dialog is open and element is outside the dialog
|
4405
|
+
) {
|
4365
4406
|
return;
|
4366
4407
|
}
|
4367
4408
|
const condition = shouldTriggerShortcut(event, key);
|
@@ -4382,11 +4423,11 @@ const isMacOs = () => {
|
|
4382
4423
|
return (_window = window) === null || _window === void 0 ? void 0 : _window.navigator.userAgent.includes('Mac');
|
4383
4424
|
};
|
4384
4425
|
|
4385
|
-
const useGlobalKeyDown = (shortcut, handler) => {
|
4426
|
+
const useGlobalKeyDown = (shortcut, handler, element) => {
|
4386
4427
|
React__default.useEffect(() => {
|
4387
4428
|
let handleKeyDown;
|
4388
4429
|
if (shortcut) {
|
4389
|
-
handleKeyDown = createShortcutKeyDownHandler(shortcut, handler, false);
|
4430
|
+
handleKeyDown = createShortcutKeyDownHandler(shortcut, handler, false, element);
|
4390
4431
|
document.addEventListener('keydown', handleKeyDown);
|
4391
4432
|
}
|
4392
4433
|
return () => {
|
@@ -4409,13 +4450,8 @@ const Button = /*#__PURE__*/React.forwardRef(function Button(props, ref) {
|
|
4409
4450
|
useGlobalKeyDown(shortcut, event => {
|
4410
4451
|
var _internalRef$current;
|
4411
4452
|
event === null || event === void 0 ? void 0 : event.preventDefault();
|
4412
|
-
const dialog = document.querySelector('[role="dialog"]');
|
4413
|
-
// Don't trigger the click on the button if it is outside of the dialog
|
4414
|
-
if (dialog && !(dialog !== null && dialog !== void 0 && dialog.contains(internalRef.current))) {
|
4415
|
-
return;
|
4416
|
-
}
|
4417
4453
|
(_internalRef$current = internalRef.current) === null || _internalRef$current === void 0 ? void 0 : _internalRef$current.click();
|
4418
|
-
});
|
4454
|
+
}, internalRef.current);
|
4419
4455
|
const Tag = props.href ? 'a' : 'button';
|
4420
4456
|
return /*#__PURE__*/React.createElement(Tag, Object.assign({}, otherProps, {
|
4421
4457
|
href: disabled ? undefined : props.href,
|
@@ -6042,7 +6078,9 @@ const useCombobox = ({
|
|
6042
6078
|
const isComboboxChangeEvent = event => {
|
6043
6079
|
return !event.isTrusted; // this makes sure we only take our own custom event, and not the browser default blur on tab.
|
6044
6080
|
};
|
6045
|
-
if (
|
6081
|
+
// Only trigger onChange if this is our custom event (not a browser blur event)
|
6082
|
+
// or if the input was cleared.
|
6083
|
+
if (isComboboxChangeEvent(event) || event.target.value === '' && !inline) {
|
6046
6084
|
onChange(event);
|
6047
6085
|
}
|
6048
6086
|
}
|
@@ -6385,6 +6423,7 @@ const useDatepicker = ({
|
|
6385
6423
|
setInternalValue(event.target.value);
|
6386
6424
|
};
|
6387
6425
|
const handleChange = date => {
|
6426
|
+
// Update both the input value and calendar view date when selecting a date
|
6388
6427
|
setInputValueByRef(inputRef.current, format(date, formatting.date), 'focusout');
|
6389
6428
|
};
|
6390
6429
|
const handleKeyDown = event => {
|
@@ -8299,7 +8338,7 @@ const Content$8 = /*#__PURE__*/React.forwardRef(function MenuContent(props, ref)
|
|
8299
8338
|
var _childrenRefs$current, _childrenRefs$current2;
|
8300
8339
|
return (_childrenRefs$current = childrenRefs.current[index]) === null || _childrenRefs$current === void 0 ? void 0 : (_childrenRefs$current2 = _childrenRefs$current.current) === null || _childrenRefs$current2 === void 0 ? void 0 : _childrenRefs$current2.click();
|
8301
8340
|
}, 1);
|
8302
|
-
}));
|
8341
|
+
}, true, childrenRefs.current[index].current));
|
8303
8342
|
}
|
8304
8343
|
});
|
8305
8344
|
shortcuts.forEach(handler => document.addEventListener('keydown', handler));
|
@@ -9950,9 +9989,13 @@ const dataTypes = {
|
|
9950
9989
|
if (value === undefined) {
|
9951
9990
|
return '';
|
9952
9991
|
}
|
9953
|
-
|
9992
|
+
const formatter = new Intl.NumberFormat(options === null || options === void 0 ? void 0 : (_options$localization2 = options.localization) === null || _options$localization2 === void 0 ? void 0 : _options$localization2.locale, {
|
9954
9993
|
minimumFractionDigits: 2
|
9955
|
-
})
|
9994
|
+
});
|
9995
|
+
const decimalSeperator = formatter.format(1.1).substring(1, 2);
|
9996
|
+
const localisedValue = formatter.format(Number(value));
|
9997
|
+
const localisedValueWithoutThousandsSeperator = decimalSeperator === '.' ? localisedValue.replace(',', '') : localisedValue.replace('.', '');
|
9998
|
+
return [localisedValue, localisedValueWithoutThousandsSeperator];
|
9956
9999
|
}
|
9957
10000
|
}
|
9958
10001
|
};
|
@@ -10100,7 +10143,13 @@ function isMatched(searchQuery, cellValue, dataType, localization) {
|
|
10100
10143
|
const cellDisplayValue = dataTypeProperties.getDisplayValue(cellValue, {
|
10101
10144
|
localization
|
10102
10145
|
});
|
10103
|
-
if (
|
10146
|
+
if (Array.isArray(cellDisplayValue)) {
|
10147
|
+
for (const displayValue of cellDisplayValue) {
|
10148
|
+
if (isWeakContains(displayValue, searchQuery)) {
|
10149
|
+
return true;
|
10150
|
+
}
|
10151
|
+
}
|
10152
|
+
} else if (cellDisplayValue !== undefined && isWeakContains(cellDisplayValue, searchQuery)) {
|
10104
10153
|
return true;
|
10105
10154
|
}
|
10106
10155
|
}
|
@@ -10398,10 +10447,15 @@ function processChildren(child, columns, defaultSizing, defaultSorting, defaultV
|
|
10398
10447
|
column.cell = info => renderer(info.getValue(), info.row.original);
|
10399
10448
|
} else if (dataTypeProperties.getDisplayValue) {
|
10400
10449
|
const dataTypeRenderer = value => {
|
10401
|
-
var _dataTypeProperties$g
|
10402
|
-
|
10450
|
+
var _dataTypeProperties$g;
|
10451
|
+
const displayValue = (_dataTypeProperties$g = dataTypeProperties.getDisplayValue) === null || _dataTypeProperties$g === void 0 ? void 0 : _dataTypeProperties$g.call(dataTypeProperties, value, {
|
10403
10452
|
localization
|
10404
|
-
})
|
10453
|
+
});
|
10454
|
+
if (Array.isArray(displayValue)) {
|
10455
|
+
var _displayValue$;
|
10456
|
+
return (_displayValue$ = displayValue[0]) !== null && _displayValue$ !== void 0 ? _displayValue$ : value;
|
10457
|
+
}
|
10458
|
+
return displayValue !== null && displayValue !== void 0 ? displayValue : value;
|
10405
10459
|
};
|
10406
10460
|
column.cell = info => dataTypeRenderer(info.getValue());
|
10407
10461
|
column.meta.renderer = dataTypeRenderer;
|
@@ -11453,6 +11507,7 @@ function useTableServerLoading(loadPage, loadAll, pageSize = DEFAULT_PAGE_SIZE)
|
|
11453
11507
|
const _temp = function () {
|
11454
11508
|
if (typeof loadPage === 'function') {
|
11455
11509
|
return Promise.resolve(loadPage(...args)).then(function () {
|
11510
|
+
setLoadedStatus(exports.TableServerLoadAllState.Incomplete);
|
11456
11511
|
setReady(true);
|
11457
11512
|
});
|
11458
11513
|
}
|
@@ -11573,7 +11628,7 @@ function useLazyEffect(effect, deps) {
|
|
11573
11628
|
const readyRef = React__default.useRef(false);
|
11574
11629
|
React__default.useEffect(() => {
|
11575
11630
|
if (readyRef.current) {
|
11576
|
-
effect();
|
11631
|
+
return effect();
|
11577
11632
|
} else {
|
11578
11633
|
readyRef.current = true;
|
11579
11634
|
}
|
@@ -11615,7 +11670,8 @@ function useTableFontSizeListener(table) {
|
|
11615
11670
|
table.setColumnSizing(sizes => {
|
11616
11671
|
return Object.fromEntries(Object.entries(sizes).map(([columnName, prevColumnSize]) => {
|
11617
11672
|
var _column$columnDef$min;
|
11618
|
-
|
11673
|
+
// table.getColumn(columName) throw error in strict dev mode. Related thread: https://github.com/TanStack/table/discussions/5505
|
11674
|
+
const column = table.getAllColumns().find(x => x.id === columnName);
|
11619
11675
|
if (isInternalColumn(columnName)) {
|
11620
11676
|
var _column$getSize;
|
11621
11677
|
return [columnName, (_column$getSize = column === null || column === void 0 ? void 0 : column.getSize()) !== null && _column$getSize !== void 0 ? _column$getSize : prevColumnSize];
|
@@ -13936,22 +13992,29 @@ const MemoedFooter = /*#__PURE__*/React__default.memo(function MemoedFooter(prop
|
|
13936
13992
|
});
|
13937
13993
|
|
13938
13994
|
function EmptyStateBody(props) {
|
13995
|
+
var _ref$current, _ref$current$parentNo;
|
13939
13996
|
const {
|
13940
13997
|
emptyState: Placeholder,
|
13941
13998
|
isReady,
|
13942
13999
|
reason,
|
13943
14000
|
...attributes
|
13944
14001
|
} = props;
|
14002
|
+
const ref = React__default.useRef(null);
|
13945
14003
|
if (!isReady) {
|
13946
14004
|
return /*#__PURE__*/React__default.createElement("tbody", Object.assign({}, attributes, {
|
13947
14005
|
className: "!auto-rows-fr"
|
13948
14006
|
}));
|
13949
14007
|
}
|
13950
14008
|
return /*#__PURE__*/React__default.createElement("tbody", Object.assign({}, attributes, {
|
13951
|
-
|
14009
|
+
ref: ref,
|
14010
|
+
className: "!auto-rows-fr",
|
14011
|
+
"data-taco": "empty-state"
|
13952
14012
|
}), /*#__PURE__*/React__default.createElement("tr", {
|
13953
|
-
className: "!auto-rows-fr"
|
14013
|
+
className: "!auto-rows-fr "
|
13954
14014
|
}, /*#__PURE__*/React__default.createElement("td", {
|
14015
|
+
style: {
|
14016
|
+
maxWidth: ref === null || ref === void 0 ? void 0 : (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : (_ref$current$parentNo = _ref$current.parentNode) === null || _ref$current$parentNo === void 0 ? void 0 : _ref$current$parentNo.clientWidth
|
14017
|
+
},
|
13955
14018
|
className: "col-span-full !border-0 !p-0 hover:!bg-white"
|
13956
14019
|
}, Placeholder ? /*#__PURE__*/React__default.createElement(Placeholder, {
|
13957
14020
|
reason: reason
|
@@ -15631,7 +15694,7 @@ const BubbleSelect = props => {
|
|
15631
15694
|
if (prevValue !== value && setValue) {
|
15632
15695
|
if (Array.isArray(value)) {
|
15633
15696
|
value.forEach(v => {
|
15634
|
-
const option = select.querySelector(`option[value='${v}']`);
|
15697
|
+
const option = select.querySelector(`option[value='${CSS.escape(v)}']`);
|
15635
15698
|
if (option) {
|
15636
15699
|
option.selected = true;
|
15637
15700
|
}
|
@@ -18657,16 +18720,13 @@ function isTableScrolled(ref) {
|
|
18657
18720
|
function useTableEditingListener(table, tableRef, scrollToIndex) {
|
18658
18721
|
const tableMeta = table.options.meta;
|
18659
18722
|
const localization = useLocalization();
|
18660
|
-
// save when the row changes
|
18661
|
-
// store the last row active index, otherwise everytime tableMeta.editing.saveChanges changes the hook runs again
|
18662
|
-
const lastRowActiveIndexRef = React__default.useRef(tableMeta.rowActive.rowActiveIndex);
|
18663
18723
|
useLazyEffect(() => {
|
18664
|
-
|
18665
|
-
|
18666
|
-
|
18667
|
-
tableMeta.editing.saveChanges(table);
|
18724
|
+
return () => {
|
18725
|
+
if (tableMeta.editing.isEditing && tableMeta.rowActive.rowActiveIndex !== undefined) {
|
18726
|
+
var _table$getRowModel$ro;
|
18727
|
+
tableMeta.editing.saveChanges(table, (_table$getRowModel$ro = table.getRowModel().rows[tableMeta.rowActive.rowActiveIndex]) === null || _table$getRowModel$ro === void 0 ? void 0 : _table$getRowModel$ro.id);
|
18668
18728
|
}
|
18669
|
-
}
|
18729
|
+
};
|
18670
18730
|
}, [tableMeta.rowActive.rowActiveIndex]);
|
18671
18731
|
// show a warning if the user navigates away without triggering save, such as using the browser back/forward button
|
18672
18732
|
const hasChanges = tableMeta.editing.hasChanges();
|
@@ -18881,6 +18941,7 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
18881
18941
|
const _temp9 = _forOf(Object.keys(changes), function (rowId) {
|
18882
18942
|
const status = getRowStatus(rowId);
|
18883
18943
|
return _catch(function () {
|
18944
|
+
var _changes$rowId;
|
18884
18945
|
function _temp8(_result) {
|
18885
18946
|
return _exit ? _result : Promise.resolve(handleSave(changeSet)).then(function () {
|
18886
18947
|
// cleanup changes, we don't need them after saving
|
@@ -18892,14 +18953,15 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
18892
18953
|
}, DELAY_BEFORE_REMOVING_SAVE_STATUS);
|
18893
18954
|
});
|
18894
18955
|
}
|
18956
|
+
const rowChanges = (_changes$rowId = changes[rowId]) !== null && _changes$rowId !== void 0 ? _changes$rowId : {};
|
18895
18957
|
// don't try to save if - already saving, or there are known errors
|
18896
|
-
if (status === 'saving' || status === 'errored') {
|
18958
|
+
if (!Object.keys(rowChanges).length || status === 'saving' || status === 'errored') {
|
18897
18959
|
return;
|
18898
18960
|
}
|
18899
18961
|
setRowStatus(rowId, 'saving');
|
18900
18962
|
const changeSet = {
|
18901
18963
|
...state.changes.originals[rowId],
|
18902
|
-
...
|
18964
|
+
...rowChanges
|
18903
18965
|
};
|
18904
18966
|
// if we had to create a temporary id, delete it first - it's our data, not theirs
|
18905
18967
|
if (isTemporaryRow(changeSet[rowIdentityAccessor])) {
|
@@ -18962,7 +19024,7 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
18962
19024
|
return Promise.reject(e);
|
18963
19025
|
}
|
18964
19026
|
};
|
18965
|
-
const onCellChanged = function (cell, rowIndex, shouldRunUpdaters = true) {
|
19027
|
+
const onCellChanged = function (cell, rowIndex, nextValue, shouldRunUpdaters = true) {
|
18966
19028
|
try {
|
18967
19029
|
function _temp6() {
|
18968
19030
|
var _state$changes$errors11;
|
@@ -19004,7 +19066,7 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
19004
19066
|
}
|
19005
19067
|
// create a projection of the next state, so we can act against it
|
19006
19068
|
const nextChanges = {
|
19007
|
-
...
|
19069
|
+
...changes,
|
19008
19070
|
...updatesForOtherCells
|
19009
19071
|
};
|
19010
19072
|
const nextMoveReasons = {
|
@@ -19013,10 +19075,11 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
19013
19075
|
const nextCellErrors = {
|
19014
19076
|
...((_state$changes$errors11 = state.changes.errors[cell.row.id]) === null || _state$changes$errors11 === void 0 ? void 0 : _state$changes$errors11.cells)
|
19015
19077
|
};
|
19016
|
-
// run validation
|
19078
|
+
// run validation - if there are changes, and if there is an original stored
|
19017
19079
|
let validationErrors = {};
|
19018
19080
|
const _temp3 = function () {
|
19019
|
-
if (validator) {
|
19081
|
+
if (validator && Object.keys(nextChanges).length && state.changes.originals[cell.row.id]) {
|
19082
|
+
// merge with the original so we get a full row
|
19020
19083
|
const nextRowValue = {
|
19021
19084
|
...state.changes.originals[cell.row.id],
|
19022
19085
|
...changes,
|
@@ -19029,8 +19092,13 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
19029
19092
|
}();
|
19030
19093
|
return _temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3);
|
19031
19094
|
}
|
19032
|
-
const changes =
|
19033
|
-
|
19095
|
+
const changes = nextValue !== undefined ? {
|
19096
|
+
...state.changes.rows[cell.row.id],
|
19097
|
+
[cell.column.id]: nextValue
|
19098
|
+
} : {
|
19099
|
+
...state.changes.rows[cell.row.id]
|
19100
|
+
};
|
19101
|
+
if (!Object.keys(changes).length) {
|
19034
19102
|
return Promise.resolve();
|
19035
19103
|
}
|
19036
19104
|
let updatesForOtherCells = {};
|
@@ -19242,32 +19310,46 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
19242
19310
|
function useTableEditing(isEnabled = false, handleSave, handleChange, handleCreate, rowIdentityAccessor, validator) {
|
19243
19311
|
const createRow = function (table, scrollToIndex, row) {
|
19244
19312
|
try {
|
19245
|
-
|
19246
|
-
|
19247
|
-
|
19248
|
-
const tableMeta = table.options.meta;
|
19249
|
-
return Promise.resolve(tableMeta.editing.saveChanges(table)).then(function (saved) {
|
19250
|
-
if (!saved) {
|
19251
|
-
return;
|
19252
|
-
}
|
19313
|
+
let _exit = false;
|
19314
|
+
function _temp2(_result) {
|
19315
|
+
if (_exit) return _result;
|
19253
19316
|
const changeset = row !== null && row !== void 0 ? row : handleCreate();
|
19254
19317
|
try {
|
19255
19318
|
if (changeset) {
|
19256
|
-
const
|
19257
|
-
|
19258
|
-
|
19259
|
-
|
19260
|
-
|
19261
|
-
|
19262
|
-
|
19263
|
-
|
19264
|
-
|
19319
|
+
const newRowId = pendingChangesFns.insertTemporaryRow(changeset);
|
19320
|
+
// reset before changing row otherwise the cell changes and validation might run
|
19321
|
+
setLastFocusedCellIndex(undefined);
|
19322
|
+
// set the active row to the new row before toggling editing on
|
19323
|
+
const temporaryRows = tableMeta.editing.temporaryRows;
|
19324
|
+
const nextRowIndex = temporaryRows.length ? tableMeta.length + 1 : tableMeta.length;
|
19325
|
+
tableMeta.rowActive.setRowActiveIndex(nextRowIndex);
|
19326
|
+
// wait until set states have run
|
19327
|
+
requestAnimationFrame(() => {
|
19328
|
+
toggleEditing(true, table, scrollToIndex, false);
|
19329
|
+
_.delay(() => {
|
19330
|
+
requestAnimationFrame(() => table.getRow(newRowId).pin('bottom'));
|
19331
|
+
}, 350);
|
19265
19332
|
});
|
19266
19333
|
}
|
19267
19334
|
} catch (error) {
|
19268
19335
|
console.error(error);
|
19269
19336
|
}
|
19270
|
-
}
|
19337
|
+
}
|
19338
|
+
if (!handleCreate) {
|
19339
|
+
return Promise.resolve();
|
19340
|
+
}
|
19341
|
+
const tableMeta = table.options.meta;
|
19342
|
+
const _temp = function () {
|
19343
|
+
if (tableMeta.rowActive.rowActiveIndex !== undefined) {
|
19344
|
+
var _table$getRowModel$ro2;
|
19345
|
+
return Promise.resolve(tableMeta.editing.saveChanges(table, (_table$getRowModel$ro2 = table.getRowModel().rows[tableMeta.rowActive.rowActiveIndex]) === null || _table$getRowModel$ro2 === void 0 ? void 0 : _table$getRowModel$ro2.id)).then(function (saved) {
|
19346
|
+
if (!saved) {
|
19347
|
+
_exit = true;
|
19348
|
+
}
|
19349
|
+
});
|
19350
|
+
}
|
19351
|
+
}();
|
19352
|
+
return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
|
19271
19353
|
} catch (e) {
|
19272
19354
|
return Promise.reject(e);
|
19273
19355
|
}
|
@@ -19281,24 +19363,26 @@ function useTableEditing(isEnabled = false, handleSave, handleChange, handleCrea
|
|
19281
19363
|
// store the last focused cell, so that up/down arrow key navigation remains in the same column
|
19282
19364
|
const [lastFocusedCellIndex, setLastFocusedCellIndex] = React__default.useState(undefined);
|
19283
19365
|
const pendingChangesFns = usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, validator);
|
19284
|
-
function toggleEditing(enabled, table, scrollToIndex) {
|
19285
|
-
|
19286
|
-
if (
|
19287
|
-
|
19288
|
-
|
19366
|
+
function toggleEditing(enabled, table, scrollToIndex, doSave = true) {
|
19367
|
+
const tableMeta = table.options.meta;
|
19368
|
+
if (enabled) {
|
19369
|
+
var _tableMeta$rowActive$, _table$getRowModel$ro;
|
19370
|
+
const index = (_tableMeta$rowActive$ = tableMeta.rowActive.rowActiveIndex) !== null && _tableMeta$rowActive$ !== void 0 ? _tableMeta$rowActive$ : 0;
|
19371
|
+
if (tableMeta.rowActive.rowActiveIndex === undefined) {
|
19372
|
+
tableMeta.rowActive.setRowActiveIndex(index);
|
19373
|
+
}
|
19374
|
+
if (!isTemporaryRow((_table$getRowModel$ro = table.getRowModel().rows[index]) === null || _table$getRowModel$ro === void 0 ? void 0 : _table$getRowModel$ro.id)) {
|
19375
|
+
scrollToIndex(index);
|
19376
|
+
}
|
19377
|
+
} else if (!enabled) {
|
19289
19378
|
// reset detailed mode
|
19290
19379
|
toggleDetailedMode(false);
|
19291
19380
|
// reset the last index back to the first focusable element, when editing gets turned off
|
19292
19381
|
setLastFocusedCellIndex(undefined);
|
19293
19382
|
}
|
19294
|
-
const tableMeta = table.options.meta;
|
19295
|
-
const index = (_tableMeta$rowActive$ = tableMeta.rowActive.rowActiveIndex) !== null && _tableMeta$rowActive$ !== void 0 ? _tableMeta$rowActive$ : 0;
|
19296
|
-
if (tableMeta.rowActive.rowActiveIndex === undefined) {
|
19297
|
-
tableMeta.rowActive.setRowActiveIndex(index);
|
19298
|
-
}
|
19299
19383
|
setEditing(enabled);
|
19300
|
-
if (
|
19301
|
-
|
19384
|
+
if (doSave) {
|
19385
|
+
pendingChangesFns.saveChanges(table);
|
19302
19386
|
}
|
19303
19387
|
}
|
19304
19388
|
return {
|
@@ -19570,20 +19654,26 @@ function EditingControlCell(props) {
|
|
19570
19654
|
if (nextValue !== value) {
|
19571
19655
|
tableMeta.editing.setCellValue(cell, nextValue);
|
19572
19656
|
if (hasNonTextControl) {
|
19573
|
-
tableMeta.editing.onCellChanged(cell, rowIndex);
|
19657
|
+
requestAnimationFrame(() => tableMeta.editing.onCellChanged(cell, rowIndex, nextValue));
|
19574
19658
|
}
|
19575
19659
|
}
|
19576
19660
|
};
|
19577
|
-
|
19661
|
+
function blur() {
|
19578
19662
|
tableMeta.editing.toggleDetailedMode(false);
|
19579
|
-
tableMeta.editing.onCellChanged(cell, rowIndex, !hasNonTextControl);
|
19663
|
+
tableMeta.editing.onCellChanged(cell, rowIndex, undefined, !hasNonTextControl);
|
19664
|
+
}
|
19665
|
+
const handleBlur = event => {
|
19666
|
+
if (isElementInsideOrTriggeredFromContainer(event.relatedTarget, event.currentTarget)) {
|
19667
|
+
return;
|
19668
|
+
}
|
19669
|
+
blur();
|
19580
19670
|
};
|
19581
19671
|
// ensure that blur runs when the cell gets unmounted (when vertically arrow key navigating)
|
19582
19672
|
React__default.useEffect(() => {
|
19583
19673
|
const ref = cellRef.current;
|
19584
19674
|
return () => {
|
19585
19675
|
if (document.activeElement === ref || isElementInsideOrTriggeredFromContainer(document.activeElement, ref)) {
|
19586
|
-
|
19676
|
+
blur();
|
19587
19677
|
}
|
19588
19678
|
};
|
19589
19679
|
}, []);
|
@@ -20007,14 +20097,13 @@ function useTable3(props, ref) {
|
|
20007
20097
|
hasChanges: editing.hasChanges(rowId),
|
20008
20098
|
hasErrors: editing.hasRowErrors(rowId),
|
20009
20099
|
onDiscard: () => {
|
20100
|
+
editing.discardChanges(rowId, table);
|
20010
20101
|
if (editing.temporaryRows.length) {
|
20011
|
-
|
20012
|
-
setTimeout(() => {
|
20102
|
+
requestAnimationFrame(() => {
|
20013
20103
|
var _editing$createRowBut;
|
20014
20104
|
return (_editing$createRowBut = editing.createRowButtonRef.current) === null || _editing$createRowBut === void 0 ? void 0 : _editing$createRowBut.focus();
|
20015
|
-
}
|
20105
|
+
});
|
20016
20106
|
}
|
20017
|
-
editing.discardChanges(rowId, table);
|
20018
20107
|
},
|
20019
20108
|
onEditingSave: function () {
|
20020
20109
|
try {
|
@@ -20080,7 +20169,9 @@ function Alert$1(props) {
|
|
20080
20169
|
// generate links to each invalid row, to go into the error message
|
20081
20170
|
const links = [];
|
20082
20171
|
const visibleColumns = table.getVisibleFlatColumns().map(c => c.id);
|
20083
|
-
const rowIdentityColumn = tableMeta.rowIdentityAccessor && visibleColumns.includes(String(tableMeta.rowIdentityAccessor)) ?
|
20172
|
+
const rowIdentityColumn = tableMeta.rowIdentityAccessor && visibleColumns.includes(String(tableMeta.rowIdentityAccessor)) ?
|
20173
|
+
// table.getColumn(columName) throw error in strict dev mode. Related thread: https://github.com/TanStack/table/discussions/5505
|
20174
|
+
table.getAllColumns().find(x => x.id === String(tableMeta.rowIdentityAccessor)) : undefined;
|
20084
20175
|
pendingChangesWithErrors.forEach((pendingChangeWithError, index) => {
|
20085
20176
|
// if appropriate, concatenate the item with the text "and"
|
20086
20177
|
if (pendingChangesWithErrors.length > 1 && index === pendingChangesWithErrors.length - 1) {
|