@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
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
* INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
|
|
26
26
|
* USE OR INABILITY TO USE THIS SOFTWARE.
|
|
27
27
|
*
|
|
28
|
-
* Version: 0.0.0-next-
|
|
28
|
+
* Version: 0.0.0-next-e344f62-20260922 (built at Tue Sep 22 2026 11:19:11 GMT+0000 (Coordinated Universal Time))
|
|
29
29
|
*/
|
|
30
30
|
(function (global, factory) {
|
|
31
31
|
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react'), require('react-dom'), require('handsontable/base'), require('handsontable/renderers/registry'), require('handsontable/editors/registry')) :
|
|
@@ -239,17 +239,17 @@ var bulkComponentContainer = null;
|
|
|
239
239
|
/**
|
|
240
240
|
* Warning message for the `autoRowSize`/`autoColumnSize` compatibility check.
|
|
241
241
|
*/
|
|
242
|
-
var AUTOSIZE_WARNING = 'Your `HotTable` configuration includes `autoRowSize`/`autoColumnSize` options, which are not compatible with
|
|
242
|
+
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.';
|
|
243
243
|
|
|
244
244
|
/**
|
|
245
245
|
* Warning message for the `hot-renderer` obsolete renderer passing method.
|
|
246
246
|
*/
|
|
247
|
-
var OBSOLETE_HOTRENDERER_WARNING = 'Providing a component-based renderer using `hot-renderer`-annotated component is no longer supported.
|
|
247
|
+
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.';
|
|
248
248
|
|
|
249
249
|
/**
|
|
250
250
|
* Warning message for the `hot-editor` obsolete editor passing method.
|
|
251
251
|
*/
|
|
252
|
-
var OBSOLETE_HOTEDITOR_WARNING = 'Providing a component-based editor using `hot-editor`-annotated component is no longer supported.
|
|
252
|
+
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.';
|
|
253
253
|
|
|
254
254
|
/**
|
|
255
255
|
* Warning message for the unexpected children of HotTable component.
|
|
@@ -280,7 +280,7 @@ var EDITOR_PORTAL_HOST_CLASSNAME = 'hot-wrapper-editor-portal-host';
|
|
|
280
280
|
/**
|
|
281
281
|
* Warning when the editor portal host cannot be moved into `rootPortalElement`.
|
|
282
282
|
*/
|
|
283
|
-
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.';
|
|
283
|
+
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.';
|
|
284
284
|
|
|
285
285
|
/**
|
|
286
286
|
* Logs warn to the console if the `console` object is exposed.
|
|
@@ -297,6 +297,7 @@ function warn() {
|
|
|
297
297
|
/**
|
|
298
298
|
* Detect if `hot-renderer` or `hot-editor` is defined, and if so, throw an incompatibility warning.
|
|
299
299
|
*
|
|
300
|
+
* @param {ReactNode} children Component children nodes.
|
|
300
301
|
* @returns {boolean} 'true' if the warning was issued
|
|
301
302
|
*/
|
|
302
303
|
function displayObsoleteRenderersEditorsWarning(children) {
|
|
@@ -348,7 +349,7 @@ function displayAnyChildrenWarning(children) {
|
|
|
348
349
|
* Check the existence of elements of the provided `type` from the `HotColumn` component's children.
|
|
349
350
|
*
|
|
350
351
|
* @param {ReactNode} children HotTable children array.
|
|
351
|
-
* @param {
|
|
352
|
+
* @param {string} type Either `'hot-renderer'` or `'hot-editor'`.
|
|
352
353
|
* @returns {boolean} `true` if the child of that type was found, `false` otherwise.
|
|
353
354
|
*/
|
|
354
355
|
function hasChildElementOfType(children, type) {
|
|
@@ -428,9 +429,10 @@ function createEditorPortal(doc, Editor, portalHost) {
|
|
|
428
429
|
*
|
|
429
430
|
* @param {React.ReactElement} rElement React element to be used as a base for the component.
|
|
430
431
|
* @param {Document} [ownerDocument] The owner document to set the portal up into.
|
|
431
|
-
* @param {
|
|
432
|
+
* @param {string} portalKey The key to be used for the portal.
|
|
432
433
|
* @param {HTMLElement} [cachedContainer] The cached container to be used for the portal.
|
|
433
|
-
* @returns {{portal: ReactPortal, portalContainer: HTMLElement}} An object containing the portal and its
|
|
434
|
+
* @returns {{portal: ReactPortal, portalContainer: HTMLElement}} An object containing the portal and its
|
|
435
|
+
* container.
|
|
434
436
|
*/
|
|
435
437
|
function createPortal(rElement) {
|
|
436
438
|
var ownerDocument = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;
|
|
@@ -462,14 +464,15 @@ function createPortal(rElement) {
|
|
|
462
464
|
* component.
|
|
463
465
|
*
|
|
464
466
|
* @param {HotTableProps} props Object containing the React element props.
|
|
465
|
-
* @param {
|
|
466
|
-
*
|
|
467
|
-
*
|
|
467
|
+
* @param {boolean} randomizeId If set to `true`, the function will randomize the `id` property when no `id` was
|
|
468
|
+
* present in the `prop` object.
|
|
469
|
+
* @returns {{id?: string, className: string, style: CSSProperties}} An object containing the `id`, `className`
|
|
470
|
+
* and `style` keys, representing the corresponding props passed to the component.
|
|
468
471
|
*/
|
|
469
472
|
function getContainerAttributesProps(props) {
|
|
470
473
|
var randomizeId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
471
474
|
return {
|
|
472
|
-
id: props.id || (randomizeId ?
|
|
475
|
+
id: props.id || (randomizeId ? "hot-".concat(Math.random().toString(36).substring(5)) : undefined),
|
|
473
476
|
className: props.className || '',
|
|
474
477
|
style: props.style || {}
|
|
475
478
|
};
|
|
@@ -478,14 +481,28 @@ function getContainerAttributesProps(props) {
|
|
|
478
481
|
/**
|
|
479
482
|
* Checks if the environment that the code runs in is a browser.
|
|
480
483
|
*
|
|
481
|
-
* @returns {boolean}
|
|
484
|
+
* @returns {boolean} `true` when running in a browser environment.
|
|
482
485
|
*/
|
|
483
486
|
function isCSR() {
|
|
484
487
|
return typeof window !== 'undefined';
|
|
485
488
|
}
|
|
489
|
+
|
|
490
|
+
/**
|
|
491
|
+
* Checks whether the value is an object or `null`.
|
|
492
|
+
*
|
|
493
|
+
* @param {unknown} value Value to check.
|
|
494
|
+
* @returns {boolean} `true` when the value is an object.
|
|
495
|
+
*/
|
|
486
496
|
function isObjectLike(value) {
|
|
487
497
|
return _typeof(value) === 'object' && value !== null;
|
|
488
498
|
}
|
|
499
|
+
|
|
500
|
+
/**
|
|
501
|
+
* Checks whether the value is a plain object (an object literal or one created with `Object.create(null)`).
|
|
502
|
+
*
|
|
503
|
+
* @param {unknown} value Value to check.
|
|
504
|
+
* @returns {boolean} `true` when the value is a plain object.
|
|
505
|
+
*/
|
|
489
506
|
function isPlainObject(value) {
|
|
490
507
|
if (!isObjectLike(value)) {
|
|
491
508
|
return false;
|
|
@@ -493,6 +510,13 @@ function isPlainObject(value) {
|
|
|
493
510
|
var prototype = Object.getPrototypeOf(value);
|
|
494
511
|
return prototype === Object.prototype || prototype === null;
|
|
495
512
|
}
|
|
513
|
+
|
|
514
|
+
/**
|
|
515
|
+
* Checks whether the value is an array.
|
|
516
|
+
*
|
|
517
|
+
* @param {unknown} value Value to check.
|
|
518
|
+
* @returns {boolean} `true` when the value is an array.
|
|
519
|
+
*/
|
|
496
520
|
function isArray(value) {
|
|
497
521
|
return Array.isArray(value);
|
|
498
522
|
}
|
|
@@ -539,23 +563,16 @@ function areEquivalentSettingsValue(previousValue, currentValue) {
|
|
|
539
563
|
if (previousKeys.length !== currentKeys.length) {
|
|
540
564
|
return false;
|
|
541
565
|
}
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
return false;
|
|
546
|
-
}
|
|
547
|
-
if (!areEquivalentSettingsValue(previousValue[key], currentValue[key])) {
|
|
548
|
-
return false;
|
|
549
|
-
}
|
|
550
|
-
}
|
|
551
|
-
return true;
|
|
566
|
+
return previousKeys.every(function (key) {
|
|
567
|
+
return Object.prototype.hasOwnProperty.call(currentValue, key) && areEquivalentSettingsValue(previousValue[key], currentValue[key]);
|
|
568
|
+
});
|
|
552
569
|
}
|
|
553
570
|
|
|
554
571
|
/**
|
|
555
572
|
* A variant of useEffect hook that does not trigger on initial mount, only updates
|
|
556
573
|
*
|
|
557
|
-
* @param effect Effect function
|
|
558
|
-
* @param deps Effect dependencies
|
|
574
|
+
* @param {EffectCallback} effect Effect function
|
|
575
|
+
* @param {DependencyList} [deps] Effect dependencies
|
|
559
576
|
*/
|
|
560
577
|
function useUpdateEffect(effect, deps) {
|
|
561
578
|
var notInitialRender = React__default["default"].useRef(false);
|
|
@@ -599,11 +616,13 @@ var SettingsMapper = /*#__PURE__*/function () {
|
|
|
599
616
|
/**
|
|
600
617
|
* Parse component settings into Handsontable-compatible settings.
|
|
601
618
|
*
|
|
602
|
-
* @param {
|
|
603
|
-
* @param {
|
|
619
|
+
* @param {object} properties Object containing properties from the HotTable object.
|
|
620
|
+
* @param {object} additionalSettings Additional settings.
|
|
604
621
|
* @param {boolean} additionalSettings.isInit Flag determining whether the settings are being set during initialization.
|
|
605
622
|
* @param {string[]} additionalSettings.initOnlySettingKeys Array of keys that can be set only during initialization.
|
|
606
|
-
* @
|
|
623
|
+
* @param {HotTableProps} additionalSettings.prevProps The component's props before the current update.
|
|
624
|
+
* @param {Handsontable.GridSettings} additionalSettings.currentSettings The grid's current live settings.
|
|
625
|
+
* @returns {object} Handsontable-compatible settings object.
|
|
607
626
|
*/
|
|
608
627
|
function getSettings(properties) {
|
|
609
628
|
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
@@ -632,11 +651,11 @@ var SettingsMapper = /*#__PURE__*/function () {
|
|
|
632
651
|
return false;
|
|
633
652
|
};
|
|
634
653
|
var newSettings = {};
|
|
635
|
-
|
|
636
|
-
if (key !== 'children' && !shouldSkipProp(key)
|
|
654
|
+
Object.keys(properties).forEach(function (key) {
|
|
655
|
+
if (key !== 'children' && !shouldSkipProp(key)) {
|
|
637
656
|
newSettings[key] = properties[key];
|
|
638
657
|
}
|
|
639
|
-
}
|
|
658
|
+
});
|
|
640
659
|
return newSettings;
|
|
641
660
|
}
|
|
642
661
|
}]);
|
|
@@ -682,7 +701,7 @@ var HotTableContextProvider = function HotTableContextProvider(_ref) {
|
|
|
682
701
|
* overlay tables get separate portal containers for the same cell.
|
|
683
702
|
*
|
|
684
703
|
* @param {HTMLTableCellElement} TD The cell being rendered.
|
|
685
|
-
* @returns {
|
|
704
|
+
* @returns {number} The id of the table the cell belongs to.
|
|
686
705
|
*/
|
|
687
706
|
var getTableId = React.useCallback(function (TD) {
|
|
688
707
|
var _TD$parentElement$par, _TD$parentElement;
|
|
@@ -793,7 +812,7 @@ var HotTableContextProvider = function HotTableContextProvider(_ref) {
|
|
|
793
812
|
/**
|
|
794
813
|
* Exposes the table context object to components
|
|
795
814
|
*
|
|
796
|
-
* @returns HotTableContext
|
|
815
|
+
* @returns {HotTableContextImpl} HotTableContext
|
|
797
816
|
*/
|
|
798
817
|
function useHotTableContext() {
|
|
799
818
|
return React.useContext(HotTableContext);
|
|
@@ -898,8 +917,11 @@ var EditorContext = /*#__PURE__*/React.createContext(undefined);
|
|
|
898
917
|
* Provider of the context that exposes Handsontable-native editor instance and passes hooks object
|
|
899
918
|
* for custom editor components.
|
|
900
919
|
*
|
|
901
|
-
* @param {
|
|
902
|
-
* @param {
|
|
920
|
+
* @param {object} root0 The provider props.
|
|
921
|
+
* @param {Ref} root0.hooksRef Reference for component-based editor overridden hooks object.
|
|
922
|
+
* @param {RefObject} root0.hotCustomEditorInstanceRef Reference to Handsontable-native editor instance.
|
|
923
|
+
* @param {ReactNode} root0.children The provider's children.
|
|
924
|
+
* @returns {ReactElement} The provider component.
|
|
903
925
|
*/
|
|
904
926
|
var EditorContextProvider = function EditorContextProvider(_ref3) {
|
|
905
927
|
var hooksRef = _ref3.hooksRef,
|
|
@@ -914,7 +936,13 @@ var EditorContextProvider = function EditorContextProvider(_ref3) {
|
|
|
914
936
|
};
|
|
915
937
|
/**
|
|
916
938
|
* Applies editor overlay position/dimensions to an element.
|
|
917
|
-
*
|
|
939
|
+
*
|
|
940
|
+
* @param {HTMLElement} el The editor's main element.
|
|
941
|
+
* @param {EditorWithPosition} editor The editor instance.
|
|
942
|
+
* @param {Handsontable.Core} hot The Handsontable instance.
|
|
943
|
+
* @param {Element | null | undefined} td The edited cell's TD element.
|
|
944
|
+
* @returns {boolean} `true` if position was applied, `false` if editor should close (e.g. cell no longer
|
|
945
|
+
* available).
|
|
918
946
|
*/
|
|
919
947
|
function applyEditorPosition(el, editor, hot, td) {
|
|
920
948
|
var _rootWindow$pageXOffs, _rootWindow$pageYOffs;
|
|
@@ -1032,6 +1060,20 @@ function useHotEditor(overriddenHooks, deps) {
|
|
|
1032
1060
|
|
|
1033
1061
|
// EditorComponent props - children typed to work with JSX syntax
|
|
1034
1062
|
|
|
1063
|
+
/**
|
|
1064
|
+
* Component-based editor. Renders the `children` render prop inside the editor's positioned overlay
|
|
1065
|
+
* and wires up its shortcuts and scroll-repositioning.
|
|
1066
|
+
*
|
|
1067
|
+
* @param {object} root0 The component props.
|
|
1068
|
+
* @param {Function} [root0.onPrepare] Called when the editor is prepared for a cell.
|
|
1069
|
+
* @param {Function} [root0.onClose] Called when the editor closes.
|
|
1070
|
+
* @param {Function} [root0.onOpen] Called when the editor opens.
|
|
1071
|
+
* @param {Function} [root0.onFocus] Called when the editor is focused.
|
|
1072
|
+
* @param {EditorRenderProp} [root0.children] Render prop returning the editor's UI.
|
|
1073
|
+
* @param {string} [root0.shortcutsGroup] The shortcuts group name to register under.
|
|
1074
|
+
* @param {Array} [root0.shortcuts] The editor's keyboard shortcuts.
|
|
1075
|
+
* @returns {React.ReactElement} The editor overlay element.
|
|
1076
|
+
*/
|
|
1035
1077
|
function EditorComponent(_ref5) {
|
|
1036
1078
|
var _onPrepare = _ref5.onPrepare,
|
|
1037
1079
|
_onClose = _ref5.onClose,
|
|
@@ -1039,7 +1081,7 @@ function EditorComponent(_ref5) {
|
|
|
1039
1081
|
_onFocus = _ref5.onFocus,
|
|
1040
1082
|
children = _ref5.children,
|
|
1041
1083
|
_ref5$shortcutsGroup = _ref5.shortcutsGroup,
|
|
1042
|
-
shortcutsGroup = _ref5$shortcutsGroup === void 0 ?
|
|
1084
|
+
shortcutsGroup = _ref5$shortcutsGroup === void 0 ? 'custom-editor' : _ref5$shortcutsGroup,
|
|
1043
1085
|
shortcuts = _ref5.shortcuts;
|
|
1044
1086
|
var mainElementRef = React.useRef(null);
|
|
1045
1087
|
var currentValue = React.useRef(undefined);
|
|
@@ -1051,8 +1093,10 @@ function EditorComponent(_ref5) {
|
|
|
1051
1093
|
hotCustomEditorInstanceRef = _ref6.hotCustomEditorInstanceRef;
|
|
1052
1094
|
var registerShortcuts = React.useCallback(function () {
|
|
1053
1095
|
var _hotCustomEditorInsta8, _hotCustomEditorInsta9, _hotCustomEditorInsta0;
|
|
1054
|
-
if (!((_hotCustomEditorInsta8 = hotCustomEditorInstanceRef.current) !== null && _hotCustomEditorInsta8 !== void 0 && _hotCustomEditorInsta8.hot))
|
|
1055
|
-
|
|
1096
|
+
if (!((_hotCustomEditorInsta8 = hotCustomEditorInstanceRef.current) !== null && _hotCustomEditorInsta8 !== void 0 && _hotCustomEditorInsta8.hot)) {
|
|
1097
|
+
return;
|
|
1098
|
+
}
|
|
1099
|
+
(_hotCustomEditorInsta9 = hotCustomEditorInstanceRef.current) === null || _hotCustomEditorInsta9 === void 0 || (_hotCustomEditorInsta9 = _hotCustomEditorInsta9.hot) === null || _hotCustomEditorInsta9 === void 0 || _hotCustomEditorInsta9.getShortcutManager().setActiveContextName('editor');
|
|
1056
1100
|
var shortcutManager = (_hotCustomEditorInsta0 = hotCustomEditorInstanceRef.current) === null || _hotCustomEditorInsta0 === void 0 || (_hotCustomEditorInsta0 = _hotCustomEditorInsta0.hot) === null || _hotCustomEditorInsta0 === void 0 ? void 0 : _hotCustomEditorInsta0.getShortcutManager();
|
|
1057
1101
|
var editorContext = shortcutManager.getContext('editor');
|
|
1058
1102
|
var contextConfig = {
|
|
@@ -1072,25 +1116,31 @@ function EditorComponent(_ref5) {
|
|
|
1072
1116
|
}, event);
|
|
1073
1117
|
}
|
|
1074
1118
|
});
|
|
1075
|
-
}),
|
|
1076
|
-
//@ts-ignore
|
|
1077
|
-
contextConfig);
|
|
1119
|
+
}), contextConfig);
|
|
1078
1120
|
}
|
|
1079
1121
|
}, [shortcuts]);
|
|
1080
1122
|
var unRegisterShortcuts = React.useCallback(function () {
|
|
1081
1123
|
var _hotCustomEditorInsta1, _hotCustomEditorInsta10;
|
|
1082
|
-
if (!((_hotCustomEditorInsta1 = hotCustomEditorInstanceRef.current) !== null && _hotCustomEditorInsta1 !== void 0 && _hotCustomEditorInsta1.hot))
|
|
1124
|
+
if (!((_hotCustomEditorInsta1 = hotCustomEditorInstanceRef.current) !== null && _hotCustomEditorInsta1 !== void 0 && _hotCustomEditorInsta1.hot)) {
|
|
1125
|
+
return;
|
|
1126
|
+
}
|
|
1083
1127
|
var shortcutManager = (_hotCustomEditorInsta10 = hotCustomEditorInstanceRef.current) === null || _hotCustomEditorInsta10 === void 0 || (_hotCustomEditorInsta10 = _hotCustomEditorInsta10.hot) === null || _hotCustomEditorInsta10 === void 0 ? void 0 : _hotCustomEditorInsta10.getShortcutManager();
|
|
1084
|
-
var editorContext = shortcutManager.getContext(
|
|
1128
|
+
var editorContext = shortcutManager.getContext('editor');
|
|
1085
1129
|
editorContext.removeShortcutsByGroup(shortcutsGroup);
|
|
1086
1130
|
}, [shortcuts]);
|
|
1087
1131
|
var refreshDimensions = React.useCallback(function () {
|
|
1088
1132
|
var editor = hotCustomEditorInstanceRef.current;
|
|
1089
1133
|
var el = mainElementRef.current;
|
|
1090
|
-
if (!editor || !el)
|
|
1134
|
+
if (!editor || !el) {
|
|
1135
|
+
return;
|
|
1136
|
+
}
|
|
1091
1137
|
var hot = editor.hot;
|
|
1092
|
-
if (!hot)
|
|
1093
|
-
|
|
1138
|
+
if (!hot) {
|
|
1139
|
+
return;
|
|
1140
|
+
}
|
|
1141
|
+
if (typeof editor.isOpened !== 'function' || !editor.isOpened()) {
|
|
1142
|
+
return;
|
|
1143
|
+
}
|
|
1094
1144
|
if (!applyEditorPosition(el, editor, hot) && typeof editor.close === 'function') {
|
|
1095
1145
|
editor.close();
|
|
1096
1146
|
}
|
|
@@ -1098,23 +1148,31 @@ function EditorComponent(_ref5) {
|
|
|
1098
1148
|
var unRegisterScrollHooks = React.useCallback(function () {
|
|
1099
1149
|
var editor = hotCustomEditorInstanceRef.current;
|
|
1100
1150
|
var hot = editor === null || editor === void 0 ? void 0 : editor.hot;
|
|
1101
|
-
if (!hot || typeof hot.removeHook !== 'function')
|
|
1151
|
+
if (!hot || typeof hot.removeHook !== 'function') {
|
|
1152
|
+
return;
|
|
1153
|
+
}
|
|
1102
1154
|
hot.removeHook('afterScrollHorizontally', refreshDimensions);
|
|
1103
1155
|
hot.removeHook('afterScrollVertically', refreshDimensions);
|
|
1104
1156
|
}, [refreshDimensions]);
|
|
1105
1157
|
var registerScrollHooks = React.useCallback(function () {
|
|
1106
1158
|
var editor = hotCustomEditorInstanceRef.current;
|
|
1107
1159
|
var hot = editor === null || editor === void 0 ? void 0 : editor.hot;
|
|
1108
|
-
if (!hot || typeof hot.addHook !== 'function')
|
|
1160
|
+
if (!hot || typeof hot.addHook !== 'function') {
|
|
1161
|
+
return;
|
|
1162
|
+
}
|
|
1109
1163
|
hot.addHook('afterScrollHorizontally', refreshDimensions);
|
|
1110
1164
|
hot.addHook('afterScrollVertically', refreshDimensions);
|
|
1111
1165
|
}, [refreshDimensions]);
|
|
1112
1166
|
var _useHotEditor = useHotEditor({
|
|
1113
1167
|
onOpen: function onOpen() {
|
|
1114
1168
|
var _hotCustomEditorInsta11;
|
|
1115
|
-
if (!mainElementRef.current)
|
|
1169
|
+
if (!mainElementRef.current) {
|
|
1170
|
+
return;
|
|
1171
|
+
}
|
|
1116
1172
|
var themeName = (_hotCustomEditorInsta11 = hotCustomEditorInstanceRef.current) === null || _hotCustomEditorInsta11 === void 0 ? void 0 : _hotCustomEditorInsta11.hot.getCurrentThemeName();
|
|
1117
|
-
if (themeName)
|
|
1173
|
+
if (themeName) {
|
|
1174
|
+
setThemeClassName(themeName);
|
|
1175
|
+
}
|
|
1118
1176
|
mainElementRef.current.style.display = 'block';
|
|
1119
1177
|
_onOpen === null || _onOpen === void 0 || _onOpen();
|
|
1120
1178
|
var el = mainElementRef.current;
|
|
@@ -1126,7 +1184,9 @@ function EditorComponent(_ref5) {
|
|
|
1126
1184
|
registerScrollHooks();
|
|
1127
1185
|
},
|
|
1128
1186
|
onClose: function onClose() {
|
|
1129
|
-
if (!mainElementRef.current)
|
|
1187
|
+
if (!mainElementRef.current) {
|
|
1188
|
+
return;
|
|
1189
|
+
}
|
|
1130
1190
|
mainElementRef.current.style.display = 'none';
|
|
1131
1191
|
_onClose === null || _onClose === void 0 || _onClose();
|
|
1132
1192
|
unRegisterShortcuts();
|
|
@@ -1205,7 +1265,7 @@ var HotColumn = function HotColumn(props) {
|
|
|
1205
1265
|
/**
|
|
1206
1266
|
* Filter out all the internal properties and return an object with just the Handsontable-related props.
|
|
1207
1267
|
*
|
|
1208
|
-
* @returns {
|
|
1268
|
+
* @returns {object}
|
|
1209
1269
|
*/
|
|
1210
1270
|
var getSettingsProps = function getSettingsProps() {
|
|
1211
1271
|
return Object.keys(props).filter(function (key) {
|
|
@@ -1218,6 +1278,8 @@ var HotColumn = function HotColumn(props) {
|
|
|
1218
1278
|
|
|
1219
1279
|
/**
|
|
1220
1280
|
* Create the column settings based on the data provided to the `HotColumn` component and its child components.
|
|
1281
|
+
*
|
|
1282
|
+
* @returns {object} The column settings object.
|
|
1221
1283
|
*/
|
|
1222
1284
|
var createColumnSettings = function createColumnSettings() {
|
|
1223
1285
|
var columnSettings = SettingsMapper.getSettings(getSettingsProps());
|
|
@@ -1260,21 +1322,7 @@ var HotColumn = function HotColumn(props) {
|
|
|
1260
1322
|
}, editorPortal);
|
|
1261
1323
|
};
|
|
1262
1324
|
|
|
1263
|
-
var version="0.0.0-next-
|
|
1264
|
-
|
|
1265
|
-
/**
|
|
1266
|
-
* Component used to manage the renderer component portals.
|
|
1267
|
-
*/
|
|
1268
|
-
var RenderersPortalManager = /*#__PURE__*/React.forwardRef(function (_, ref) {
|
|
1269
|
-
var _useState = React.useState([]),
|
|
1270
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
1271
|
-
portals = _useState2[0],
|
|
1272
|
-
setPortals = _useState2[1];
|
|
1273
|
-
React.useImperativeHandle(ref, function () {
|
|
1274
|
-
return setPortals;
|
|
1275
|
-
});
|
|
1276
|
-
return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, portals);
|
|
1277
|
-
});
|
|
1325
|
+
var version="0.0.0-next-e344f62-20260922";
|
|
1278
1326
|
|
|
1279
1327
|
function getDefaultExportFromCjs (x) {
|
|
1280
1328
|
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
@@ -1372,6 +1420,20 @@ function requireFactoryWithThrowingShims() {
|
|
|
1372
1420
|
var propTypesExports = propTypes.exports;
|
|
1373
1421
|
var PropTypes = /*@__PURE__*/getDefaultExportFromCjs(propTypesExports);
|
|
1374
1422
|
|
|
1423
|
+
/**
|
|
1424
|
+
* Component used to manage the renderer component portals.
|
|
1425
|
+
*/
|
|
1426
|
+
var RenderersPortalManager = /*#__PURE__*/React.forwardRef(function (_, ref) {
|
|
1427
|
+
var _useState = React.useState([]),
|
|
1428
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
1429
|
+
portals = _useState2[0],
|
|
1430
|
+
setPortals = _useState2[1];
|
|
1431
|
+
React.useImperativeHandle(ref, function () {
|
|
1432
|
+
return setPortals;
|
|
1433
|
+
});
|
|
1434
|
+
return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, portals);
|
|
1435
|
+
});
|
|
1436
|
+
|
|
1375
1437
|
var HotTableInner = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
1376
1438
|
/**
|
|
1377
1439
|
* Reference to the Handsontable instance.
|
|
@@ -1469,16 +1531,18 @@ var HotTableInner = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
1469
1531
|
/**
|
|
1470
1532
|
* Create a new settings object containing the column settings and global editors and renderers.
|
|
1471
1533
|
*
|
|
1534
|
+
* @param {boolean} init `true` when called during the initial mount.
|
|
1535
|
+
* @param {HotTableProps} previousProps The component's props before the current update.
|
|
1472
1536
|
* @returns {Handsontable.GridSettings} New global set of settings for Handsontable.
|
|
1473
1537
|
*/
|
|
1474
1538
|
var createNewGlobalSettings = function createNewGlobalSettings() {
|
|
1475
1539
|
var _getHotInstance;
|
|
1476
1540
|
var init = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
1477
|
-
var
|
|
1541
|
+
var previousProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
1478
1542
|
var liveSettings = !isHotInstanceDestroyed() ? (_getHotInstance = getHotInstance()) === null || _getHotInstance === void 0 ? void 0 : _getHotInstance.getSettings() : undefined;
|
|
1479
1543
|
var initOnlySettingKeys = (liveSettings === null || liveSettings === void 0 ? void 0 : liveSettings._initOnlySettings) || [];
|
|
1480
1544
|
var newSettings = SettingsMapper.getSettings(props, {
|
|
1481
|
-
prevProps:
|
|
1545
|
+
prevProps: previousProps,
|
|
1482
1546
|
isInit: init,
|
|
1483
1547
|
initOnlySettingKeys: initOnlySettingKeys,
|
|
1484
1548
|
currentSettings: liveSettings
|
|
@@ -1505,6 +1569,8 @@ var HotTableInner = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
1505
1569
|
|
|
1506
1570
|
/**
|
|
1507
1571
|
* Detect if `autoRowSize` or `autoColumnSize` is defined, and if so, throw an incompatibility warning.
|
|
1572
|
+
*
|
|
1573
|
+
* @param {Handsontable | null} hotInstance The Handsontable instance to check.
|
|
1508
1574
|
*/
|
|
1509
1575
|
var displayAutoSizeWarning = function displayAutoSizeWarning(hotInstance) {
|
|
1510
1576
|
var _hotInstance$getPlugi, _hotInstance$getPlugi2;
|