@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.
@@ -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 ' + ' the component-based renderers`. Disable `autoRowSize` and `autoColumnSize` to prevent row and column misalignment.';
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. ' + 'Pass your component using `renderer` prop of the `HotTable` or `HotColumn` component instead.';
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. ' + 'Pass your component using `editor` prop of the `HotTable` or `HotColumn` component instead.';
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 {String} type Either `'hot-renderer'` or `'hot-editor'`.
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 {String} portalKey The key to be used for the portal.
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 container.
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 {Boolean} randomizeId If set to `true`, the function will randomize the `id` property when no `id` was present in the `prop` object.
441
- * @returns An object containing the `id`, `className` and `style` keys, representing the corresponding props passed to the
442
- * component.
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 ? 'hot-' + Math.random().toString(36).substring(5) : undefined),
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
- for (var _i = 0, _previousKeys = previousKeys; _i < _previousKeys.length; _i++) {
518
- var key = _previousKeys[_i];
519
- if (!Object.prototype.hasOwnProperty.call(currentValue, key)) {
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 {Object} properties Object containing properties from the HotTable object.
578
- * @param {Object} additionalSettings Additional settings.
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
- * @returns {Object} Handsontable-compatible settings object.
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
- for (var key in properties) {
611
- if (key !== 'children' && !shouldSkipProp(key) && properties.hasOwnProperty(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 {Number} The id of the table the cell belongs to.
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 {Ref} hooksRef Reference for component-based editor overridden hooks object.
877
- * @param {RefObject} hotCustomEditorInstanceRef Reference to Handsontable-native editor instance.
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
- * @returns true if position was applied, false if editor should close (e.g. cell no longer available).
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 ? "custom-editor" : _ref5$shortcutsGroup,
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)) return;
1030
- (_hotCustomEditorInsta9 = hotCustomEditorInstanceRef.current) === null || _hotCustomEditorInsta9 === void 0 || (_hotCustomEditorInsta9 = _hotCustomEditorInsta9.hot) === null || _hotCustomEditorInsta9 === void 0 || _hotCustomEditorInsta9.getShortcutManager().setActiveContextName("editor");
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)) return;
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("editor");
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) return;
1109
+ if (!editor || !el) {
1110
+ return;
1111
+ }
1066
1112
  var hot = editor.hot;
1067
- if (!hot) return;
1068
- if (typeof editor.isOpened !== 'function' || !editor.isOpened()) return;
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') return;
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') return;
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) return;
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) setThemeClassName(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) return;
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 {Object}
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-0e9b178-20260922";
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 prevProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
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: 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;