@handsontable/react-wrapper 0.0.0-next-0e9b178-20260922 → 0.0.0-next-e344f62-20260922
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/commonjs/react-handsontable.js +135 -69
- package/dist/react-handsontable.js +136 -70
- package/dist/react-handsontable.js.map +1 -1
- package/dist/react-handsontable.min.js +2 -2
- package/dist/react-handsontable.min.js.map +1 -1
- package/es/react-handsontable.mjs +135 -69
- package/helpers.d.ts +12 -9
- package/hotEditor.d.ts +20 -3
- package/hotTableContext.d.ts +3 -3
- package/package.json +8 -3
- package/settingsMapper.d.ts +5 -3
|
@@ -214,17 +214,17 @@ var bulkComponentContainer = null;
|
|
|
214
214
|
/**
|
|
215
215
|
* Warning message for the `autoRowSize`/`autoColumnSize` compatibility check.
|
|
216
216
|
*/
|
|
217
|
-
var AUTOSIZE_WARNING = 'Your `HotTable` configuration includes `autoRowSize`/`autoColumnSize` options, which are not compatible with
|
|
217
|
+
var AUTOSIZE_WARNING = 'Your `HotTable` configuration includes `autoRowSize`/`autoColumnSize` options, ' + 'which are not compatible with the component-based renderers. Disable `autoRowSize` and `autoColumnSize` to ' + 'prevent row and column misalignment.';
|
|
218
218
|
|
|
219
219
|
/**
|
|
220
220
|
* Warning message for the `hot-renderer` obsolete renderer passing method.
|
|
221
221
|
*/
|
|
222
|
-
var OBSOLETE_HOTRENDERER_WARNING = 'Providing a component-based renderer using `hot-renderer`-annotated component is no longer supported.
|
|
222
|
+
var OBSOLETE_HOTRENDERER_WARNING = 'Providing a component-based renderer using `hot-renderer`-annotated ' + 'component is no longer supported. Pass your component using `renderer` prop of the `HotTable` or `HotColumn` ' + 'component instead.';
|
|
223
223
|
|
|
224
224
|
/**
|
|
225
225
|
* Warning message for the `hot-editor` obsolete editor passing method.
|
|
226
226
|
*/
|
|
227
|
-
var OBSOLETE_HOTEDITOR_WARNING = 'Providing a component-based editor using `hot-editor`-annotated component is no longer supported.
|
|
227
|
+
var OBSOLETE_HOTEDITOR_WARNING = 'Providing a component-based editor using `hot-editor`-annotated ' + 'component is no longer supported. Pass your component using `editor` prop of the `HotTable` or `HotColumn` ' + 'component instead.';
|
|
228
228
|
|
|
229
229
|
/**
|
|
230
230
|
* Warning message for the unexpected children of HotTable component.
|
|
@@ -255,7 +255,7 @@ var EDITOR_PORTAL_HOST_CLASSNAME = 'hot-wrapper-editor-portal-host';
|
|
|
255
255
|
/**
|
|
256
256
|
* Warning when the editor portal host cannot be moved into `rootPortalElement`.
|
|
257
257
|
*/
|
|
258
|
-
var MISSING_ROOT_PORTAL_WARNING = 'The React editor portal host could not be attached to `rootPortalElement`. The editor stays on `document.body` and clicks on it may fail to commit.';
|
|
258
|
+
var MISSING_ROOT_PORTAL_WARNING = 'The React editor portal host could not be attached to ' + '`rootPortalElement`. The editor stays on `document.body` and clicks on it may fail to commit.';
|
|
259
259
|
|
|
260
260
|
/**
|
|
261
261
|
* Logs warn to the console if the `console` object is exposed.
|
|
@@ -272,6 +272,7 @@ function warn() {
|
|
|
272
272
|
/**
|
|
273
273
|
* Detect if `hot-renderer` or `hot-editor` is defined, and if so, throw an incompatibility warning.
|
|
274
274
|
*
|
|
275
|
+
* @param {ReactNode} children Component children nodes.
|
|
275
276
|
* @returns {boolean} 'true' if the warning was issued
|
|
276
277
|
*/
|
|
277
278
|
function displayObsoleteRenderersEditorsWarning(children) {
|
|
@@ -323,7 +324,7 @@ function displayAnyChildrenWarning(children) {
|
|
|
323
324
|
* Check the existence of elements of the provided `type` from the `HotColumn` component's children.
|
|
324
325
|
*
|
|
325
326
|
* @param {ReactNode} children HotTable children array.
|
|
326
|
-
* @param {
|
|
327
|
+
* @param {string} type Either `'hot-renderer'` or `'hot-editor'`.
|
|
327
328
|
* @returns {boolean} `true` if the child of that type was found, `false` otherwise.
|
|
328
329
|
*/
|
|
329
330
|
function hasChildElementOfType(children, type) {
|
|
@@ -403,9 +404,10 @@ function createEditorPortal(doc, Editor, portalHost) {
|
|
|
403
404
|
*
|
|
404
405
|
* @param {React.ReactElement} rElement React element to be used as a base for the component.
|
|
405
406
|
* @param {Document} [ownerDocument] The owner document to set the portal up into.
|
|
406
|
-
* @param {
|
|
407
|
+
* @param {string} portalKey The key to be used for the portal.
|
|
407
408
|
* @param {HTMLElement} [cachedContainer] The cached container to be used for the portal.
|
|
408
|
-
* @returns {{portal: ReactPortal, portalContainer: HTMLElement}} An object containing the portal and its
|
|
409
|
+
* @returns {{portal: ReactPortal, portalContainer: HTMLElement}} An object containing the portal and its
|
|
410
|
+
* container.
|
|
409
411
|
*/
|
|
410
412
|
function createPortal(rElement) {
|
|
411
413
|
var ownerDocument = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;
|
|
@@ -437,14 +439,15 @@ function createPortal(rElement) {
|
|
|
437
439
|
* component.
|
|
438
440
|
*
|
|
439
441
|
* @param {HotTableProps} props Object containing the React element props.
|
|
440
|
-
* @param {
|
|
441
|
-
*
|
|
442
|
-
*
|
|
442
|
+
* @param {boolean} randomizeId If set to `true`, the function will randomize the `id` property when no `id` was
|
|
443
|
+
* present in the `prop` object.
|
|
444
|
+
* @returns {{id?: string, className: string, style: CSSProperties}} An object containing the `id`, `className`
|
|
445
|
+
* and `style` keys, representing the corresponding props passed to the component.
|
|
443
446
|
*/
|
|
444
447
|
function getContainerAttributesProps(props) {
|
|
445
448
|
var randomizeId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
446
449
|
return {
|
|
447
|
-
id: props.id || (randomizeId ?
|
|
450
|
+
id: props.id || (randomizeId ? "hot-".concat(Math.random().toString(36).substring(5)) : undefined),
|
|
448
451
|
className: props.className || '',
|
|
449
452
|
style: props.style || {}
|
|
450
453
|
};
|
|
@@ -453,14 +456,28 @@ function getContainerAttributesProps(props) {
|
|
|
453
456
|
/**
|
|
454
457
|
* Checks if the environment that the code runs in is a browser.
|
|
455
458
|
*
|
|
456
|
-
* @returns {boolean}
|
|
459
|
+
* @returns {boolean} `true` when running in a browser environment.
|
|
457
460
|
*/
|
|
458
461
|
function isCSR() {
|
|
459
462
|
return typeof window !== 'undefined';
|
|
460
463
|
}
|
|
464
|
+
|
|
465
|
+
/**
|
|
466
|
+
* Checks whether the value is an object or `null`.
|
|
467
|
+
*
|
|
468
|
+
* @param {unknown} value Value to check.
|
|
469
|
+
* @returns {boolean} `true` when the value is an object.
|
|
470
|
+
*/
|
|
461
471
|
function isObjectLike(value) {
|
|
462
472
|
return _typeof(value) === 'object' && value !== null;
|
|
463
473
|
}
|
|
474
|
+
|
|
475
|
+
/**
|
|
476
|
+
* Checks whether the value is a plain object (an object literal or one created with `Object.create(null)`).
|
|
477
|
+
*
|
|
478
|
+
* @param {unknown} value Value to check.
|
|
479
|
+
* @returns {boolean} `true` when the value is a plain object.
|
|
480
|
+
*/
|
|
464
481
|
function isPlainObject(value) {
|
|
465
482
|
if (!isObjectLike(value)) {
|
|
466
483
|
return false;
|
|
@@ -468,6 +485,13 @@ function isPlainObject(value) {
|
|
|
468
485
|
var prototype = Object.getPrototypeOf(value);
|
|
469
486
|
return prototype === Object.prototype || prototype === null;
|
|
470
487
|
}
|
|
488
|
+
|
|
489
|
+
/**
|
|
490
|
+
* Checks whether the value is an array.
|
|
491
|
+
*
|
|
492
|
+
* @param {unknown} value Value to check.
|
|
493
|
+
* @returns {boolean} `true` when the value is an array.
|
|
494
|
+
*/
|
|
471
495
|
function isArray(value) {
|
|
472
496
|
return Array.isArray(value);
|
|
473
497
|
}
|
|
@@ -514,23 +538,16 @@ function areEquivalentSettingsValue(previousValue, currentValue) {
|
|
|
514
538
|
if (previousKeys.length !== currentKeys.length) {
|
|
515
539
|
return false;
|
|
516
540
|
}
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
return false;
|
|
521
|
-
}
|
|
522
|
-
if (!areEquivalentSettingsValue(previousValue[key], currentValue[key])) {
|
|
523
|
-
return false;
|
|
524
|
-
}
|
|
525
|
-
}
|
|
526
|
-
return true;
|
|
541
|
+
return previousKeys.every(function (key) {
|
|
542
|
+
return Object.prototype.hasOwnProperty.call(currentValue, key) && areEquivalentSettingsValue(previousValue[key], currentValue[key]);
|
|
543
|
+
});
|
|
527
544
|
}
|
|
528
545
|
|
|
529
546
|
/**
|
|
530
547
|
* A variant of useEffect hook that does not trigger on initial mount, only updates
|
|
531
548
|
*
|
|
532
|
-
* @param effect Effect function
|
|
533
|
-
* @param deps Effect dependencies
|
|
549
|
+
* @param {EffectCallback} effect Effect function
|
|
550
|
+
* @param {DependencyList} [deps] Effect dependencies
|
|
534
551
|
*/
|
|
535
552
|
function useUpdateEffect(effect, deps) {
|
|
536
553
|
var notInitialRender = React__default["default"].useRef(false);
|
|
@@ -574,11 +591,13 @@ var SettingsMapper = /*#__PURE__*/function () {
|
|
|
574
591
|
/**
|
|
575
592
|
* Parse component settings into Handsontable-compatible settings.
|
|
576
593
|
*
|
|
577
|
-
* @param {
|
|
578
|
-
* @param {
|
|
594
|
+
* @param {object} properties Object containing properties from the HotTable object.
|
|
595
|
+
* @param {object} additionalSettings Additional settings.
|
|
579
596
|
* @param {boolean} additionalSettings.isInit Flag determining whether the settings are being set during initialization.
|
|
580
597
|
* @param {string[]} additionalSettings.initOnlySettingKeys Array of keys that can be set only during initialization.
|
|
581
|
-
* @
|
|
598
|
+
* @param {HotTableProps} additionalSettings.prevProps The component's props before the current update.
|
|
599
|
+
* @param {Handsontable.GridSettings} additionalSettings.currentSettings The grid's current live settings.
|
|
600
|
+
* @returns {object} Handsontable-compatible settings object.
|
|
582
601
|
*/
|
|
583
602
|
function getSettings(properties) {
|
|
584
603
|
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
@@ -607,11 +626,11 @@ var SettingsMapper = /*#__PURE__*/function () {
|
|
|
607
626
|
return false;
|
|
608
627
|
};
|
|
609
628
|
var newSettings = {};
|
|
610
|
-
|
|
611
|
-
if (key !== 'children' && !shouldSkipProp(key)
|
|
629
|
+
Object.keys(properties).forEach(function (key) {
|
|
630
|
+
if (key !== 'children' && !shouldSkipProp(key)) {
|
|
612
631
|
newSettings[key] = properties[key];
|
|
613
632
|
}
|
|
614
|
-
}
|
|
633
|
+
});
|
|
615
634
|
return newSettings;
|
|
616
635
|
}
|
|
617
636
|
}]);
|
|
@@ -657,7 +676,7 @@ var HotTableContextProvider = function HotTableContextProvider(_ref) {
|
|
|
657
676
|
* overlay tables get separate portal containers for the same cell.
|
|
658
677
|
*
|
|
659
678
|
* @param {HTMLTableCellElement} TD The cell being rendered.
|
|
660
|
-
* @returns {
|
|
679
|
+
* @returns {number} The id of the table the cell belongs to.
|
|
661
680
|
*/
|
|
662
681
|
var getTableId = React.useCallback(function (TD) {
|
|
663
682
|
var _TD$parentElement$par, _TD$parentElement;
|
|
@@ -768,7 +787,7 @@ var HotTableContextProvider = function HotTableContextProvider(_ref) {
|
|
|
768
787
|
/**
|
|
769
788
|
* Exposes the table context object to components
|
|
770
789
|
*
|
|
771
|
-
* @returns HotTableContext
|
|
790
|
+
* @returns {HotTableContextImpl} HotTableContext
|
|
772
791
|
*/
|
|
773
792
|
function useHotTableContext() {
|
|
774
793
|
return React.useContext(HotTableContext);
|
|
@@ -873,8 +892,11 @@ var EditorContext = /*#__PURE__*/React.createContext(undefined);
|
|
|
873
892
|
* Provider of the context that exposes Handsontable-native editor instance and passes hooks object
|
|
874
893
|
* for custom editor components.
|
|
875
894
|
*
|
|
876
|
-
* @param {
|
|
877
|
-
* @param {
|
|
895
|
+
* @param {object} root0 The provider props.
|
|
896
|
+
* @param {Ref} root0.hooksRef Reference for component-based editor overridden hooks object.
|
|
897
|
+
* @param {RefObject} root0.hotCustomEditorInstanceRef Reference to Handsontable-native editor instance.
|
|
898
|
+
* @param {ReactNode} root0.children The provider's children.
|
|
899
|
+
* @returns {ReactElement} The provider component.
|
|
878
900
|
*/
|
|
879
901
|
var EditorContextProvider = function EditorContextProvider(_ref3) {
|
|
880
902
|
var hooksRef = _ref3.hooksRef,
|
|
@@ -889,7 +911,13 @@ var EditorContextProvider = function EditorContextProvider(_ref3) {
|
|
|
889
911
|
};
|
|
890
912
|
/**
|
|
891
913
|
* Applies editor overlay position/dimensions to an element.
|
|
892
|
-
*
|
|
914
|
+
*
|
|
915
|
+
* @param {HTMLElement} el The editor's main element.
|
|
916
|
+
* @param {EditorWithPosition} editor The editor instance.
|
|
917
|
+
* @param {Handsontable.Core} hot The Handsontable instance.
|
|
918
|
+
* @param {Element | null | undefined} td The edited cell's TD element.
|
|
919
|
+
* @returns {boolean} `true` if position was applied, `false` if editor should close (e.g. cell no longer
|
|
920
|
+
* available).
|
|
893
921
|
*/
|
|
894
922
|
function applyEditorPosition(el, editor, hot, td) {
|
|
895
923
|
var _rootWindow$pageXOffs, _rootWindow$pageYOffs;
|
|
@@ -1007,6 +1035,20 @@ function useHotEditor(overriddenHooks, deps) {
|
|
|
1007
1035
|
|
|
1008
1036
|
// EditorComponent props - children typed to work with JSX syntax
|
|
1009
1037
|
|
|
1038
|
+
/**
|
|
1039
|
+
* Component-based editor. Renders the `children` render prop inside the editor's positioned overlay
|
|
1040
|
+
* and wires up its shortcuts and scroll-repositioning.
|
|
1041
|
+
*
|
|
1042
|
+
* @param {object} root0 The component props.
|
|
1043
|
+
* @param {Function} [root0.onPrepare] Called when the editor is prepared for a cell.
|
|
1044
|
+
* @param {Function} [root0.onClose] Called when the editor closes.
|
|
1045
|
+
* @param {Function} [root0.onOpen] Called when the editor opens.
|
|
1046
|
+
* @param {Function} [root0.onFocus] Called when the editor is focused.
|
|
1047
|
+
* @param {EditorRenderProp} [root0.children] Render prop returning the editor's UI.
|
|
1048
|
+
* @param {string} [root0.shortcutsGroup] The shortcuts group name to register under.
|
|
1049
|
+
* @param {Array} [root0.shortcuts] The editor's keyboard shortcuts.
|
|
1050
|
+
* @returns {React.ReactElement} The editor overlay element.
|
|
1051
|
+
*/
|
|
1010
1052
|
function EditorComponent(_ref5) {
|
|
1011
1053
|
var _onPrepare = _ref5.onPrepare,
|
|
1012
1054
|
_onClose = _ref5.onClose,
|
|
@@ -1014,7 +1056,7 @@ function EditorComponent(_ref5) {
|
|
|
1014
1056
|
_onFocus = _ref5.onFocus,
|
|
1015
1057
|
children = _ref5.children,
|
|
1016
1058
|
_ref5$shortcutsGroup = _ref5.shortcutsGroup,
|
|
1017
|
-
shortcutsGroup = _ref5$shortcutsGroup === void 0 ?
|
|
1059
|
+
shortcutsGroup = _ref5$shortcutsGroup === void 0 ? 'custom-editor' : _ref5$shortcutsGroup,
|
|
1018
1060
|
shortcuts = _ref5.shortcuts;
|
|
1019
1061
|
var mainElementRef = React.useRef(null);
|
|
1020
1062
|
var currentValue = React.useRef(undefined);
|
|
@@ -1026,8 +1068,10 @@ function EditorComponent(_ref5) {
|
|
|
1026
1068
|
hotCustomEditorInstanceRef = _ref6.hotCustomEditorInstanceRef;
|
|
1027
1069
|
var registerShortcuts = React.useCallback(function () {
|
|
1028
1070
|
var _hotCustomEditorInsta8, _hotCustomEditorInsta9, _hotCustomEditorInsta0;
|
|
1029
|
-
if (!((_hotCustomEditorInsta8 = hotCustomEditorInstanceRef.current) !== null && _hotCustomEditorInsta8 !== void 0 && _hotCustomEditorInsta8.hot))
|
|
1030
|
-
|
|
1071
|
+
if (!((_hotCustomEditorInsta8 = hotCustomEditorInstanceRef.current) !== null && _hotCustomEditorInsta8 !== void 0 && _hotCustomEditorInsta8.hot)) {
|
|
1072
|
+
return;
|
|
1073
|
+
}
|
|
1074
|
+
(_hotCustomEditorInsta9 = hotCustomEditorInstanceRef.current) === null || _hotCustomEditorInsta9 === void 0 || (_hotCustomEditorInsta9 = _hotCustomEditorInsta9.hot) === null || _hotCustomEditorInsta9 === void 0 || _hotCustomEditorInsta9.getShortcutManager().setActiveContextName('editor');
|
|
1031
1075
|
var shortcutManager = (_hotCustomEditorInsta0 = hotCustomEditorInstanceRef.current) === null || _hotCustomEditorInsta0 === void 0 || (_hotCustomEditorInsta0 = _hotCustomEditorInsta0.hot) === null || _hotCustomEditorInsta0 === void 0 ? void 0 : _hotCustomEditorInsta0.getShortcutManager();
|
|
1032
1076
|
var editorContext = shortcutManager.getContext('editor');
|
|
1033
1077
|
var contextConfig = {
|
|
@@ -1047,25 +1091,31 @@ function EditorComponent(_ref5) {
|
|
|
1047
1091
|
}, event);
|
|
1048
1092
|
}
|
|
1049
1093
|
});
|
|
1050
|
-
}),
|
|
1051
|
-
//@ts-ignore
|
|
1052
|
-
contextConfig);
|
|
1094
|
+
}), contextConfig);
|
|
1053
1095
|
}
|
|
1054
1096
|
}, [shortcuts]);
|
|
1055
1097
|
var unRegisterShortcuts = React.useCallback(function () {
|
|
1056
1098
|
var _hotCustomEditorInsta1, _hotCustomEditorInsta10;
|
|
1057
|
-
if (!((_hotCustomEditorInsta1 = hotCustomEditorInstanceRef.current) !== null && _hotCustomEditorInsta1 !== void 0 && _hotCustomEditorInsta1.hot))
|
|
1099
|
+
if (!((_hotCustomEditorInsta1 = hotCustomEditorInstanceRef.current) !== null && _hotCustomEditorInsta1 !== void 0 && _hotCustomEditorInsta1.hot)) {
|
|
1100
|
+
return;
|
|
1101
|
+
}
|
|
1058
1102
|
var shortcutManager = (_hotCustomEditorInsta10 = hotCustomEditorInstanceRef.current) === null || _hotCustomEditorInsta10 === void 0 || (_hotCustomEditorInsta10 = _hotCustomEditorInsta10.hot) === null || _hotCustomEditorInsta10 === void 0 ? void 0 : _hotCustomEditorInsta10.getShortcutManager();
|
|
1059
|
-
var editorContext = shortcutManager.getContext(
|
|
1103
|
+
var editorContext = shortcutManager.getContext('editor');
|
|
1060
1104
|
editorContext.removeShortcutsByGroup(shortcutsGroup);
|
|
1061
1105
|
}, [shortcuts]);
|
|
1062
1106
|
var refreshDimensions = React.useCallback(function () {
|
|
1063
1107
|
var editor = hotCustomEditorInstanceRef.current;
|
|
1064
1108
|
var el = mainElementRef.current;
|
|
1065
|
-
if (!editor || !el)
|
|
1109
|
+
if (!editor || !el) {
|
|
1110
|
+
return;
|
|
1111
|
+
}
|
|
1066
1112
|
var hot = editor.hot;
|
|
1067
|
-
if (!hot)
|
|
1068
|
-
|
|
1113
|
+
if (!hot) {
|
|
1114
|
+
return;
|
|
1115
|
+
}
|
|
1116
|
+
if (typeof editor.isOpened !== 'function' || !editor.isOpened()) {
|
|
1117
|
+
return;
|
|
1118
|
+
}
|
|
1069
1119
|
if (!applyEditorPosition(el, editor, hot) && typeof editor.close === 'function') {
|
|
1070
1120
|
editor.close();
|
|
1071
1121
|
}
|
|
@@ -1073,23 +1123,31 @@ function EditorComponent(_ref5) {
|
|
|
1073
1123
|
var unRegisterScrollHooks = React.useCallback(function () {
|
|
1074
1124
|
var editor = hotCustomEditorInstanceRef.current;
|
|
1075
1125
|
var hot = editor === null || editor === void 0 ? void 0 : editor.hot;
|
|
1076
|
-
if (!hot || typeof hot.removeHook !== 'function')
|
|
1126
|
+
if (!hot || typeof hot.removeHook !== 'function') {
|
|
1127
|
+
return;
|
|
1128
|
+
}
|
|
1077
1129
|
hot.removeHook('afterScrollHorizontally', refreshDimensions);
|
|
1078
1130
|
hot.removeHook('afterScrollVertically', refreshDimensions);
|
|
1079
1131
|
}, [refreshDimensions]);
|
|
1080
1132
|
var registerScrollHooks = React.useCallback(function () {
|
|
1081
1133
|
var editor = hotCustomEditorInstanceRef.current;
|
|
1082
1134
|
var hot = editor === null || editor === void 0 ? void 0 : editor.hot;
|
|
1083
|
-
if (!hot || typeof hot.addHook !== 'function')
|
|
1135
|
+
if (!hot || typeof hot.addHook !== 'function') {
|
|
1136
|
+
return;
|
|
1137
|
+
}
|
|
1084
1138
|
hot.addHook('afterScrollHorizontally', refreshDimensions);
|
|
1085
1139
|
hot.addHook('afterScrollVertically', refreshDimensions);
|
|
1086
1140
|
}, [refreshDimensions]);
|
|
1087
1141
|
var _useHotEditor = useHotEditor({
|
|
1088
1142
|
onOpen: function onOpen() {
|
|
1089
1143
|
var _hotCustomEditorInsta11;
|
|
1090
|
-
if (!mainElementRef.current)
|
|
1144
|
+
if (!mainElementRef.current) {
|
|
1145
|
+
return;
|
|
1146
|
+
}
|
|
1091
1147
|
var themeName = (_hotCustomEditorInsta11 = hotCustomEditorInstanceRef.current) === null || _hotCustomEditorInsta11 === void 0 ? void 0 : _hotCustomEditorInsta11.hot.getCurrentThemeName();
|
|
1092
|
-
if (themeName)
|
|
1148
|
+
if (themeName) {
|
|
1149
|
+
setThemeClassName(themeName);
|
|
1150
|
+
}
|
|
1093
1151
|
mainElementRef.current.style.display = 'block';
|
|
1094
1152
|
_onOpen === null || _onOpen === void 0 || _onOpen();
|
|
1095
1153
|
var el = mainElementRef.current;
|
|
@@ -1101,7 +1159,9 @@ function EditorComponent(_ref5) {
|
|
|
1101
1159
|
registerScrollHooks();
|
|
1102
1160
|
},
|
|
1103
1161
|
onClose: function onClose() {
|
|
1104
|
-
if (!mainElementRef.current)
|
|
1162
|
+
if (!mainElementRef.current) {
|
|
1163
|
+
return;
|
|
1164
|
+
}
|
|
1105
1165
|
mainElementRef.current.style.display = 'none';
|
|
1106
1166
|
_onClose === null || _onClose === void 0 || _onClose();
|
|
1107
1167
|
unRegisterShortcuts();
|
|
@@ -1180,7 +1240,7 @@ var HotColumn = function HotColumn(props) {
|
|
|
1180
1240
|
/**
|
|
1181
1241
|
* Filter out all the internal properties and return an object with just the Handsontable-related props.
|
|
1182
1242
|
*
|
|
1183
|
-
* @returns {
|
|
1243
|
+
* @returns {object}
|
|
1184
1244
|
*/
|
|
1185
1245
|
var getSettingsProps = function getSettingsProps() {
|
|
1186
1246
|
return Object.keys(props).filter(function (key) {
|
|
@@ -1193,6 +1253,8 @@ var HotColumn = function HotColumn(props) {
|
|
|
1193
1253
|
|
|
1194
1254
|
/**
|
|
1195
1255
|
* Create the column settings based on the data provided to the `HotColumn` component and its child components.
|
|
1256
|
+
*
|
|
1257
|
+
* @returns {object} The column settings object.
|
|
1196
1258
|
*/
|
|
1197
1259
|
var createColumnSettings = function createColumnSettings() {
|
|
1198
1260
|
var columnSettings = SettingsMapper.getSettings(getSettingsProps());
|
|
@@ -1235,21 +1297,7 @@ var HotColumn = function HotColumn(props) {
|
|
|
1235
1297
|
}, editorPortal);
|
|
1236
1298
|
};
|
|
1237
1299
|
|
|
1238
|
-
var version="0.0.0-next-
|
|
1239
|
-
|
|
1240
|
-
/**
|
|
1241
|
-
* Component used to manage the renderer component portals.
|
|
1242
|
-
*/
|
|
1243
|
-
var RenderersPortalManager = /*#__PURE__*/React.forwardRef(function (_, ref) {
|
|
1244
|
-
var _useState = React.useState([]),
|
|
1245
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
1246
|
-
portals = _useState2[0],
|
|
1247
|
-
setPortals = _useState2[1];
|
|
1248
|
-
React.useImperativeHandle(ref, function () {
|
|
1249
|
-
return setPortals;
|
|
1250
|
-
});
|
|
1251
|
-
return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, portals);
|
|
1252
|
-
});
|
|
1300
|
+
var version="0.0.0-next-e344f62-20260922";
|
|
1253
1301
|
|
|
1254
1302
|
function getDefaultExportFromCjs (x) {
|
|
1255
1303
|
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
@@ -2374,6 +2422,20 @@ if (process.env.NODE_ENV !== 'production') {
|
|
|
2374
2422
|
var propTypesExports = propTypes.exports;
|
|
2375
2423
|
var PropTypes = /*@__PURE__*/getDefaultExportFromCjs(propTypesExports);
|
|
2376
2424
|
|
|
2425
|
+
/**
|
|
2426
|
+
* Component used to manage the renderer component portals.
|
|
2427
|
+
*/
|
|
2428
|
+
var RenderersPortalManager = /*#__PURE__*/React.forwardRef(function (_, ref) {
|
|
2429
|
+
var _useState = React.useState([]),
|
|
2430
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
2431
|
+
portals = _useState2[0],
|
|
2432
|
+
setPortals = _useState2[1];
|
|
2433
|
+
React.useImperativeHandle(ref, function () {
|
|
2434
|
+
return setPortals;
|
|
2435
|
+
});
|
|
2436
|
+
return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, portals);
|
|
2437
|
+
});
|
|
2438
|
+
|
|
2377
2439
|
var HotTableInner = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
2378
2440
|
/**
|
|
2379
2441
|
* Reference to the Handsontable instance.
|
|
@@ -2471,16 +2533,18 @@ var HotTableInner = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
2471
2533
|
/**
|
|
2472
2534
|
* Create a new settings object containing the column settings and global editors and renderers.
|
|
2473
2535
|
*
|
|
2536
|
+
* @param {boolean} init `true` when called during the initial mount.
|
|
2537
|
+
* @param {HotTableProps} previousProps The component's props before the current update.
|
|
2474
2538
|
* @returns {Handsontable.GridSettings} New global set of settings for Handsontable.
|
|
2475
2539
|
*/
|
|
2476
2540
|
var createNewGlobalSettings = function createNewGlobalSettings() {
|
|
2477
2541
|
var _getHotInstance;
|
|
2478
2542
|
var init = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
2479
|
-
var
|
|
2543
|
+
var previousProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
2480
2544
|
var liveSettings = !isHotInstanceDestroyed() ? (_getHotInstance = getHotInstance()) === null || _getHotInstance === void 0 ? void 0 : _getHotInstance.getSettings() : undefined;
|
|
2481
2545
|
var initOnlySettingKeys = (liveSettings === null || liveSettings === void 0 ? void 0 : liveSettings._initOnlySettings) || [];
|
|
2482
2546
|
var newSettings = SettingsMapper.getSettings(props, {
|
|
2483
|
-
prevProps:
|
|
2547
|
+
prevProps: previousProps,
|
|
2484
2548
|
isInit: init,
|
|
2485
2549
|
initOnlySettingKeys: initOnlySettingKeys,
|
|
2486
2550
|
currentSettings: liveSettings
|
|
@@ -2507,6 +2571,8 @@ var HotTableInner = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
2507
2571
|
|
|
2508
2572
|
/**
|
|
2509
2573
|
* Detect if `autoRowSize` or `autoColumnSize` is defined, and if so, throw an incompatibility warning.
|
|
2574
|
+
*
|
|
2575
|
+
* @param {Handsontable | null} hotInstance The Handsontable instance to check.
|
|
2510
2576
|
*/
|
|
2511
2577
|
var displayAutoSizeWarning = function displayAutoSizeWarning(hotInstance) {
|
|
2512
2578
|
var _hotInstance$getPlugi, _hotInstance$getPlugi2;
|