@handsontable/react 0.0.0-next-51d3397-20231211 → 0.0.0-next-e2b07e5-20231213

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.
@@ -1 +1 @@
1
- {"version":3,"file":"react-handsontable.min.js","sources":["../src/helpers.tsx","../src/settingsMapper.ts","../src/hotColumn.tsx","../src/renderersPortalManager.tsx","../../../node_modules/react-is/cjs/react-is.production.min.js","../../../node_modules/react-is/index.js","../../../node_modules/object-assign/index.js","../../../node_modules/prop-types/factoryWithThrowingShims.js","../../../node_modules/prop-types/lib/has.js","../../../node_modules/prop-types/index.js","../../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../src/hotTable.tsx","../src/baseEditorComponent.tsx"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport {\n EditorScopeIdentifier,\n HotEditorCache,\n HotEditorElement\n} from './types';\n\nlet bulkComponentContainer = null;\nlet hasIdWarningBeenPrinted = false;\n\n/**\n * Warning message for the `autoRowSize`/`autoColumnSize` compatibility check.\n */\nexport const AUTOSIZE_WARNING = 'Your `HotTable` configuration includes `autoRowSize`/`autoColumnSize` options, which are not compatible with ' +\n ' the component-based renderers`. Disable `autoRowSize` and `autoColumnSize` to prevent row and column misalignment.';\n\n/**\n * Message for the warning thrown if the Handsontable instance has been destroyed.\n */\nexport const HOT_DESTROYED_WARNING = 'The Handsontable instance bound to this component was destroyed and cannot be' +\n ' used properly.';\n\n/**\n * String identifier for the global-scoped editor components.\n */\nexport const GLOBAL_EDITOR_SCOPE = 'global';\n\n/**\n * Default classname given to the wrapper container.\n */\nexport const DEFAULT_CLASSNAME = 'hot-wrapper-editor-container';\n\n/**\n * Logs warn to the console if the `console` object is exposed.\n *\n * @param {...*} args Values which will be logged.\n */\nexport function warn(...args) {\n if (typeof console !== 'undefined') {\n console.warn(...args);\n }\n}\n\n/**\n * Filter out and return elements of the provided `type` from the `HotColumn` component's children.\n *\n * @param {React.ReactNode} children HotTable children array.\n * @param {String} type Either `'hot-renderer'` or `'hot-editor'`.\n * @returns {Object|null} A child (React node) or `null`, if no child of that type was found.\n */\nexport function getChildElementByType(children: React.ReactNode, type: string): React.ReactElement | null {\n const childrenArray: React.ReactNode[] = React.Children.toArray(children);\n const childrenCount: number = React.Children.count(children);\n let wantedChild: React.ReactNode | null = null;\n\n if (childrenCount !== 0) {\n if (childrenCount === 1 && (childrenArray[0] as React.ReactElement).props[type]) {\n wantedChild = childrenArray[0];\n\n } else {\n wantedChild = childrenArray.find((child) => {\n return (child as React.ReactElement).props[type] !== void 0;\n });\n }\n }\n\n return (wantedChild as React.ReactElement) || null;\n}\n\n/**\n * Get the reference to the original editor class.\n *\n * @param {React.ReactElement} editorElement React element of the editor class.\n * @returns {Function} Original class of the editor component.\n */\nexport function getOriginalEditorClass(editorElement: HotEditorElement) {\n if (!editorElement) {\n return null;\n }\n\n return editorElement.type.WrappedComponent ? editorElement.type.WrappedComponent : editorElement.type;\n}\n\n/**\n * Create an editor portal.\n *\n * @param {Document} doc Document to be used.\n * @param {React.ReactElement} editorElement Editor's element.\n * @returns {React.ReactPortal} The portal for the editor.\n */\nexport function createEditorPortal(doc: Document, editorElement: HotEditorElement): React.ReactPortal | null {\n if (typeof doc === 'undefined' || editorElement === null) {\n return null;\n }\n\n const containerProps = getContainerAttributesProps(editorElement.props, false);\n\n containerProps.className = `${DEFAULT_CLASSNAME} ${containerProps.className}`;\n\n return ReactDOM.createPortal(\n <div {...containerProps}>\n {editorElement}\n </div>\n , doc.body);\n}\n\n/**\n * Get an editor element extended with an instance-emitting method.\n *\n * @param {React.ReactNode} children Component children.\n * @param {Map} editorCache Component's editor cache.\n * @param {EditorScopeIdentifier} [editorColumnScope] The editor scope (column index or a 'global' string). Defaults to\n * 'global'.\n * @returns {React.ReactElement} An editor element containing the additional methods.\n */\nexport function getExtendedEditorElement(children: React.ReactNode, editorCache: HotEditorCache, editorColumnScope: EditorScopeIdentifier = GLOBAL_EDITOR_SCOPE): React.ReactElement | null {\n const editorElement = getChildElementByType(children, 'hot-editor');\n const editorClass = getOriginalEditorClass(editorElement);\n\n if (!editorElement) {\n return null;\n }\n\n return React.cloneElement(editorElement, {\n emitEditorInstance: (editorInstance, editorColumnScope) => {\n if (!editorCache.get(editorClass)) {\n editorCache.set(editorClass, new Map());\n }\n\n const cacheEntry = editorCache.get(editorClass);\n\n cacheEntry.set(editorColumnScope ?? GLOBAL_EDITOR_SCOPE, editorInstance);\n },\n editorColumnScope,\n isEditor: true\n } as object);\n}\n\n/**\n * Create a react component and render it to an external DOM done.\n *\n * @param {React.ReactElement} rElement React element to be used as a base for the component.\n * @param {Object} props Props to be passed to the cloned element.\n * @param {Document} [ownerDocument] The owner document to set the portal up into.\n * @returns {{portal: React.ReactPortal, portalContainer: HTMLElement}} An object containing the portal and its container.\n */\nexport function createPortal(rElement: React.ReactElement, props, ownerDocument: Document = document): {\n portal: React.ReactPortal,\n portalContainer: HTMLElement\n} {\n if (!ownerDocument) {\n ownerDocument = document;\n }\n\n if (!bulkComponentContainer) {\n bulkComponentContainer = ownerDocument.createDocumentFragment();\n }\n\n const portalContainer = ownerDocument.createElement('DIV');\n bulkComponentContainer.appendChild(portalContainer);\n\n const extendedRendererElement = React.cloneElement(rElement, {\n key: `${props.row}-${props.col}`,\n ...props\n });\n\n return {\n portal: ReactDOM.createPortal(extendedRendererElement, portalContainer, `${props.row}-${props.col}-${Math.random()}`),\n portalContainer\n };\n}\n\n/**\n * Get an object containing the `id`, `className` and `style` keys, representing the corresponding props passed to the\n * component.\n *\n * @param {Object} props Object containing the react element props.\n * @param {Boolean} randomizeId If set to `true`, the function will randomize the `id` property when no `id` was present in the `prop` object.\n * @returns An object containing the `id`, `className` and `style` keys, representing the corresponding props passed to the\n * component.\n */\nexport function getContainerAttributesProps(props, randomizeId: boolean = true): {id: string, className: string, style: object} {\n if (!hasIdWarningBeenPrinted && !props.id && randomizeId) {\n hasIdWarningBeenPrinted = true;\n warn('You have to provide an `id` property for the `HotTable` component.');\n }\n\n return {\n id: props.id || (randomizeId ? 'hot-' + Math.random().toString(36).substring(5) : void 0),\n className: props.className || '',\n style: props.style || {},\n };\n}\n\n/**\n * Checks if the environment that the code runs in is a browser.\n *\n * @returns {boolean}\n */\nexport function isCSR(): boolean {\n return typeof window !== 'undefined';\n}\n","import Handsontable from 'handsontable/base';\nimport { HotTableProps } from './types';\n\nexport class SettingsMapper {\n /**\n * Parse component settings into Handosntable-compatible settings.\n *\n * @param {Object} properties Object containing properties from the HotTable object.\n * @returns {Object} Handsontable-compatible settings object.\n */\n static getSettings(properties: HotTableProps): Handsontable.GridSettings {\n let newSettings: Handsontable.GridSettings = {};\n\n if (properties.settings) {\n let settings = properties.settings;\n for (const key in settings) {\n if (settings.hasOwnProperty(key)) {\n newSettings[key] = settings[key];\n }\n }\n }\n\n for (const key in properties) {\n if (key !== 'settings' && key !== 'children' && properties.hasOwnProperty(key)) {\n newSettings[key] = properties[key];\n }\n }\n\n return newSettings;\n }\n}\n","import React from 'react';\nimport { HotTableProps, HotColumnProps } from './types';\nimport {\n createEditorPortal,\n getExtendedEditorElement,\n} from './helpers';\nimport { SettingsMapper } from './settingsMapper';\nimport Handsontable from 'handsontable/base';\n\nclass HotColumn extends React.Component<HotColumnProps, {}> {\n internalProps: string[];\n columnSettings: Handsontable.ColumnSettings;\n\n /**\n * Filter out all the internal properties and return an object with just the Handsontable-related props.\n *\n * @returns {Object}\n */\n getSettingsProps(): HotTableProps {\n this.internalProps = ['_componentRendererColumns', '_emitColumnSettings', '_columnIndex', '_getChildElementByType', '_getRendererWrapper',\n '_getEditorClass', '_getEditorCache', '_getOwnerDocument', 'hot-renderer', 'hot-editor', 'children'];\n\n return Object.keys(this.props)\n .filter(key => {\n return !this.internalProps.includes(key);\n })\n .reduce((obj, key) => {\n obj[key] = this.props[key];\n\n return obj;\n }, {});\n }\n\n /**\n * Get the editor element for the current column.\n *\n * @returns {React.ReactElement} React editor component element.\n */\n getLocalEditorElement(): React.ReactElement | null {\n return getExtendedEditorElement(this.props.children, this.props._getEditorCache(), this.props._columnIndex);\n }\n\n /**\n * Create the column settings based on the data provided to the `HotColumn` component and it's child components.\n */\n createColumnSettings(): void {\n const rendererElement = this.props._getChildElementByType(this.props.children, 'hot-renderer');\n const editorElement = this.getLocalEditorElement();\n\n this.columnSettings = SettingsMapper.getSettings(this.getSettingsProps()) as unknown as Handsontable.ColumnSettings;\n\n if (rendererElement !== null) {\n this.columnSettings.renderer = this.props._getRendererWrapper(rendererElement);\n this.props._componentRendererColumns.set(this.props._columnIndex, true);\n }\n\n if (editorElement !== null) {\n this.columnSettings.editor = this.props._getEditorClass(editorElement, this.props._columnIndex);\n }\n }\n\n /**\n * Emit the column settings to the parent using a prop passed from the parent.\n */\n emitColumnSettings(): void {\n this.props._emitColumnSettings(this.columnSettings, this.props._columnIndex);\n }\n\n /*\n ---------------------------------------\n ------- React lifecycle methods -------\n ---------------------------------------\n */\n\n /**\n * Logic performed after the mounting of the HotColumn component.\n */\n componentDidMount(): void {\n this.createColumnSettings();\n this.emitColumnSettings();\n }\n\n /**\n * Logic performed after the updating of the HotColumn component.\n */\n componentDidUpdate(): void {\n this.createColumnSettings();\n this.emitColumnSettings();\n }\n\n /**\n * Render the portals of the editors, if there are any.\n *\n * @returns {React.ReactElement}\n */\n render(): React.ReactElement {\n const ownerDocument = this.props._getOwnerDocument();\n const editorPortal = createEditorPortal(ownerDocument, this.getLocalEditorElement());\n\n return (\n <React.Fragment>\n {editorPortal}\n </React.Fragment>\n )\n }\n}\n\nexport { HotColumn };\n","import React from 'react';\n\n/**\n * Component class used to manage the renderer component portals.\n */\nexport class RenderersPortalManager extends React.Component<{}, { portals?: React.ReactPortal[] }> {\n state = {\n portals: []\n };\n\n render() {\n return (\n <React.Fragment>\n {this.state.portals}\n </React.Fragment>\n )\n }\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","import React from 'react';\nimport Handsontable from 'handsontable/base';\nimport { SettingsMapper } from './settingsMapper';\nimport { RenderersPortalManager } from './renderersPortalManager';\nimport { HotColumn } from './hotColumn';\nimport * as packageJson from '../package.json';\nimport {\n HotTableProps,\n HotEditorElement,\n HotEditorCache,\n EditorScopeIdentifier\n} from './types';\nimport {\n HOT_DESTROYED_WARNING,\n AUTOSIZE_WARNING,\n GLOBAL_EDITOR_SCOPE,\n createEditorPortal,\n createPortal,\n getChildElementByType,\n getContainerAttributesProps,\n getExtendedEditorElement,\n getOriginalEditorClass,\n isCSR,\n warn\n} from './helpers';\nimport PropTypes from 'prop-types';\n\n/**\n * A Handsontable-ReactJS wrapper.\n *\n * To implement, use the `HotTable` tag with properties corresponding to Handsontable options.\n * For example:\n *\n * ```js\n * <HotTable id=\"hot\" data={dataObject} contextMenu={true} colHeaders={true} width={600} height={300} stretchH=\"all\" />\n *\n * // is analogous to\n * let hot = new Handsontable(document.getElementById('hot'), {\n * data: dataObject,\n * contextMenu: true,\n * colHeaders: true,\n * width: 600\n * height: 300\n * });\n *\n * ```\n *\n * @class HotTable\n */\nclass HotTable extends React.Component<HotTableProps, {}> {\n /**\n * The `id` of the main Handsontable DOM element.\n *\n * @type {String}\n */\n id: string = null;\n /**\n * Reference to the Handsontable instance.\n *\n * @private\n * @type {Object}\n */\n __hotInstance: Handsontable | null = null;\n /**\n * Reference to the main Handsontable DOM element.\n *\n * @type {HTMLElement}\n */\n hotElementRef: HTMLElement = null;\n /**\n * Class name added to the component DOM element.\n *\n * @type {String}\n */\n className: string;\n /**\n * Style object passed to the component.\n *\n * @type {React.CSSProperties}\n */\n style: React.CSSProperties;\n\n /**\n * Array of object containing the column settings.\n *\n * @type {Array}\n */\n columnSettings: Handsontable.ColumnSettings[] = [];\n\n /**\n * Component used to manage the renderer portals.\n *\n * @type {React.Component}\n */\n renderersPortalManager: RenderersPortalManager = null;\n\n /**\n * Array containing the portals cashed to be rendered in bulk after Handsontable's render cycle.\n */\n portalCacheArray: React.ReactPortal[] = [];\n\n /**\n * The rendered cells cache.\n *\n * @private\n * @type {Map}\n */\n private renderedCellCache: Map<string, HTMLTableCellElement> = new Map();\n\n /**\n * Editor cache.\n *\n * @private\n * @type {Map}\n */\n private editorCache: HotEditorCache = new Map();\n\n /**\n * Map with column indexes (or a string = 'global') as keys, and booleans as values. Each key represents a component-based editor\n * declared for the used column index, or a global one, if the key is the `global` string.\n *\n * @private\n * @type {Map}\n */\n private componentRendererColumns: Map<number | string, boolean> = new Map();\n\n /**\n * Package version getter.\n *\n * @returns The version number of the package.\n */\n static get version(): string {\n return (packageJson as any).version;\n }\n\n /**\n * Getter for the property storing the Handsontable instance.\n */\n get hotInstance(): Handsontable | null {\n if (!this.__hotInstance || (this.__hotInstance && !this.__hotInstance.isDestroyed)) {\n\n // Will return the Handsontable instance or `null` if it's not yet been created.\n return this.__hotInstance;\n\n } else {\n console.warn(HOT_DESTROYED_WARNING);\n\n return null;\n }\n }\n\n /**\n * Setter for the property storing the Handsontable instance.\n * @param {Handsontable} hotInstance The Handsontable instance.\n */\n set hotInstance(hotInstance) {\n this.__hotInstance = hotInstance;\n }\n\n /**\n * Prop types to be checked at runtime.\n */\n static propTypes: object = {\n style: PropTypes.object,\n id: PropTypes.string,\n className: PropTypes.string\n };\n\n /**\n * Get the rendered table cell cache.\n *\n * @returns {Map}\n */\n getRenderedCellCache(): Map<string, HTMLTableCellElement> {\n return this.renderedCellCache;\n }\n\n /**\n * Get the editor cache and return it.\n *\n * @returns {Map}\n */\n getEditorCache(): HotEditorCache {\n return this.editorCache;\n }\n\n /**\n * Clear both the editor and the renderer cache.\n */\n clearCache(): void {\n this.getRenderedCellCache().clear();\n this.componentRendererColumns.clear();\n }\n\n /**\n * Get the `Document` object corresponding to the main component element.\n *\n * @returns The `Document` object used by the component.\n */\n getOwnerDocument(): Document | null {\n if (isCSR()) {\n return this.hotElementRef ? this.hotElementRef.ownerDocument : document;\n }\n\n return null;\n }\n\n /**\n * Set the reference to the main Handsontable DOM element.\n *\n * @param {HTMLElement} element The main Handsontable DOM element.\n */\n private setHotElementRef(element: HTMLElement): void {\n this.hotElementRef = element;\n }\n\n /**\n * Return a renderer wrapper function for the provided renderer component.\n *\n * @param {React.ReactElement} rendererElement React renderer component.\n * @returns {Handsontable.renderers.Base} The Handsontable rendering function.\n */\n getRendererWrapper(rendererElement: React.ReactElement): typeof Handsontable.renderers.BaseRenderer | any {\n const hotTableComponent = this;\n\n return function (instance, TD, row, col, prop, value, cellProperties) {\n const renderedCellCache = hotTableComponent.getRenderedCellCache();\n\n if (renderedCellCache.has(`${row}-${col}`)) {\n TD.innerHTML = renderedCellCache.get(`${row}-${col}`).innerHTML;\n }\n\n if (TD && !TD.getAttribute('ghost-table')) {\n\n const {portal, portalContainer} = createPortal(rendererElement, {\n TD,\n row,\n col,\n prop,\n value,\n cellProperties,\n isRenderer: true\n }, TD.ownerDocument);\n\n while (TD.firstChild) {\n TD.removeChild(TD.firstChild);\n }\n\n TD.appendChild(portalContainer);\n\n hotTableComponent.portalCacheArray.push(portal);\n }\n\n renderedCellCache.set(`${row}-${col}`, TD);\n\n return TD;\n };\n }\n\n /**\n * Create a fresh class to be used as an editor, based on the provided editor React element.\n *\n * @param {React.ReactElement} editorElement React editor component.\n * @param {string|number} [editorColumnScope] The editor scope (column index or a 'global' string). Defaults to\n * 'global'.\n * @returns {Function} A class to be passed to the Handsontable editor settings.\n */\n getEditorClass(editorElement: HotEditorElement, editorColumnScope: EditorScopeIdentifier = GLOBAL_EDITOR_SCOPE): typeof Handsontable.editors.BaseEditor {\n const editorClass = getOriginalEditorClass(editorElement);\n const cachedComponent = this.getEditorCache().get(editorClass)?.get(editorColumnScope);\n\n return this.makeEditorClass(cachedComponent);\n }\n\n /**\n * Create a class to be passed to the Handsontable's settings.\n *\n * @param {React.ReactElement} editorComponent React editor component.\n * @returns {Function} A class to be passed to the Handsontable editor settings.\n */\n makeEditorClass(editorComponent: React.Component): typeof Handsontable.editors.BaseEditor {\n const customEditorClass = class CustomEditor extends Handsontable.editors.BaseEditor implements Handsontable.editors.BaseEditor {\n editorComponent: React.Component;\n\n constructor(hotInstance) {\n super(hotInstance);\n\n (editorComponent as any).hotCustomEditorInstance = this;\n\n this.editorComponent = editorComponent;\n }\n\n focus() {\n }\n\n getValue() {\n }\n\n setValue() {\n }\n\n open() {\n }\n\n close() {\n }\n } as any;\n\n // Fill with the rest of the BaseEditor methods\n Object.getOwnPropertyNames(Handsontable.editors.BaseEditor.prototype).forEach(propName => {\n if (propName === 'constructor') {\n return;\n }\n\n customEditorClass.prototype[propName] = function (...args) {\n return editorComponent[propName].call(editorComponent, ...args);\n }\n });\n\n return customEditorClass;\n }\n\n /**\n * Get the renderer element for the entire HotTable instance.\n *\n * @returns {React.ReactElement} React renderer component element.\n */\n getGlobalRendererElement(): React.ReactElement {\n return getChildElementByType(this.props.children, 'hot-renderer');\n }\n\n /**\n * Get the editor element for the entire HotTable instance.\n *\n * @param {React.ReactNode} [children] Children of the HotTable instance. Defaults to `this.props.children`.\n * @returns {React.ReactElement} React editor component element.\n */\n getGlobalEditorElement(): HotEditorElement | null {\n return getExtendedEditorElement(this.props.children, this.getEditorCache());\n }\n\n /**\n * Create a new settings object containing the column settings and global editors and renderers.\n *\n * @returns {Handsontable.GridSettings} New global set of settings for Handsontable.\n */\n createNewGlobalSettings(): Handsontable.GridSettings {\n const newSettings = SettingsMapper.getSettings(this.props);\n const globalRendererNode = this.getGlobalRendererElement();\n const globalEditorNode = this.getGlobalEditorElement();\n\n newSettings.columns = this.columnSettings.length ? this.columnSettings : newSettings.columns;\n\n if (globalEditorNode) {\n newSettings.editor = this.getEditorClass(globalEditorNode, GLOBAL_EDITOR_SCOPE);\n\n } else {\n newSettings.editor = this.props.editor || (this.props.settings ? this.props.settings.editor : void 0);\n }\n\n if (globalRendererNode) {\n newSettings.renderer = this.getRendererWrapper(globalRendererNode);\n this.componentRendererColumns.set('global', true);\n\n } else {\n newSettings.renderer = this.props.renderer || (this.props.settings ? this.props.settings.renderer : void 0);\n }\n\n return newSettings;\n }\n\n /**\n * Detect if `autoRowSize` or `autoColumnSize` is defined, and if so, throw an incompatibility warning.\n *\n * @param {Handsontable.GridSettings} newGlobalSettings New global settings passed as Handsontable config.\n */\n displayAutoSizeWarning(newGlobalSettings: Handsontable.GridSettings): void {\n if (\n this.hotInstance &&\n (\n this.hotInstance.getPlugin('autoRowSize')?.enabled ||\n this.hotInstance.getPlugin('autoColumnSize')?.enabled\n )\n ) {\n if (this.componentRendererColumns.size > 0) {\n warn(AUTOSIZE_WARNING);\n }\n }\n }\n\n /**\n * Sets the column settings based on information received from HotColumn.\n *\n * @param {HotTableProps} columnSettings Column settings object.\n * @param {Number} columnIndex Column index.\n */\n setHotColumnSettings(columnSettings: Handsontable.ColumnSettings, columnIndex: number): void {\n this.columnSettings[columnIndex] = columnSettings;\n }\n\n /**\n * Handsontable's `beforeViewRender` hook callback.\n */\n handsontableBeforeViewRender(): void {\n this.getRenderedCellCache().clear();\n }\n\n /**\n * Handsontable's `afterViewRender` hook callback.\n */\n handsontableAfterViewRender(): void {\n this.renderersPortalManager.setState({\n portals: [...this.portalCacheArray]\n }, () => {\n this.portalCacheArray = [];\n });\n }\n\n /**\n * Call the `updateSettings` method for the Handsontable instance.\n *\n * @param {Object} newSettings The settings object.\n */\n private updateHot(newSettings: Handsontable.GridSettings): void {\n if (this.hotInstance) {\n this.hotInstance.updateSettings(newSettings, false);\n }\n }\n\n /**\n * Set the renderers portal manager ref.\n *\n * @param {React.ReactComponent} pmComponent The PortalManager component.\n */\n private setRenderersPortalManagerRef(pmComponent: RenderersPortalManager): void {\n this.renderersPortalManager = pmComponent;\n }\n\n /*\n ---------------------------------------\n ------- React lifecycle methods -------\n ---------------------------------------\n */\n\n /**\n * Initialize Handsontable after the component has mounted.\n */\n componentDidMount(): void {\n const newGlobalSettings = this.createNewGlobalSettings();\n\n this.hotInstance = new Handsontable.Core(this.hotElementRef, newGlobalSettings);\n\n this.hotInstance.addHook('beforeViewRender', () => this.handsontableBeforeViewRender());\n this.hotInstance.addHook('afterViewRender', () => this.handsontableAfterViewRender());\n\n // `init` missing in Handsontable's type definitions.\n (this.hotInstance as any).init();\n\n this.displayAutoSizeWarning(newGlobalSettings);\n }\n\n /**\n * Logic performed after the component update.\n */\n componentDidUpdate(): void {\n this.clearCache();\n\n const newGlobalSettings = this.createNewGlobalSettings();\n\n this.updateHot(newGlobalSettings);\n this.displayAutoSizeWarning(newGlobalSettings);\n }\n\n /**\n * Destroy the Handsontable instance when the parent component unmounts.\n */\n componentWillUnmount(): void {\n this.clearCache();\n\n if (this.hotInstance) {\n this.hotInstance.destroy();\n }\n }\n\n /**\n * Render the component.\n */\n render(): React.ReactElement {\n const isHotColumn = (childNode: any) => childNode.type === HotColumn;\n const children = React.Children.toArray(this.props.children);\n\n // clone the HotColumn nodes and extend them with the callbacks\n const hotColumnClones = children\n .filter((childNode: any) => isHotColumn(childNode))\n .map((childNode: React.ReactElement, columnIndex: number) => {\n return React.cloneElement(childNode, {\n _componentRendererColumns: this.componentRendererColumns,\n _emitColumnSettings: this.setHotColumnSettings.bind(this),\n _columnIndex: columnIndex,\n _getChildElementByType: getChildElementByType.bind(this),\n _getRendererWrapper: this.getRendererWrapper.bind(this),\n _getEditorClass: this.getEditorClass.bind(this),\n _getOwnerDocument: this.getOwnerDocument.bind(this),\n _getEditorCache: this.getEditorCache.bind(this),\n children: childNode.props.children\n } as object);\n });\n\n const containerProps = getContainerAttributesProps(this.props);\n const editorPortal = createEditorPortal(this.getOwnerDocument(), this.getGlobalEditorElement());\n\n return (\n <React.Fragment>\n <div ref={this.setHotElementRef.bind(this)} {...containerProps}>\n {hotColumnClones}\n </div>\n <RenderersPortalManager ref={this.setRenderersPortalManagerRef.bind(this)} />\n {editorPortal}\n </React.Fragment>\n )\n }\n}\n\nexport default HotTable;\nexport { HotTable };\n","import React from 'react';\nimport Handsontable from 'handsontable/base';\nimport { EditorScopeIdentifier, HotEditorProps } from './types';\n\ninterface BaseEditorProps extends HotEditorProps {\n editorColumnScope?: EditorScopeIdentifier;\n emitEditorInstance?: (editor: BaseEditorComponent, column: EditorScopeIdentifier) => void,\n}\n\nclass BaseEditorComponent<P = {}, S = {}, SS = any> extends React.Component<P & BaseEditorProps, S, SS> implements Handsontable.editors.BaseEditor {\n name = 'BaseEditorComponent';\n instance = null;\n row = null;\n col = null;\n prop = null;\n TD = null;\n originalValue = null;\n cellProperties = null;\n state = null;\n hotInstance = null;\n hotCustomEditorInstance = null;\n hot = null;\n\n componentDidMount() {\n if (this.props.emitEditorInstance) {\n this.props.emitEditorInstance(this, this.props.editorColumnScope);\n }\n }\n\n componentDidUpdate() {\n if (this.props.emitEditorInstance) {\n this.props.emitEditorInstance(this, this.props.editorColumnScope);\n }\n }\n\n // BaseEditor methods:\n private _fireCallbacks(...args) {\n (Handsontable.editors.BaseEditor.prototype as any)._fireCallbacks.call(this.hotCustomEditorInstance, ...args);\n }\n\n beginEditing(...args) {\n return Handsontable.editors.BaseEditor.prototype.beginEditing.call(this.hotCustomEditorInstance, ...args);\n }\n\n cancelChanges(...args) {\n return Handsontable.editors.BaseEditor.prototype.cancelChanges.call(this.hotCustomEditorInstance, ...args);\n }\n\n checkEditorSection(...args) {\n return Handsontable.editors.BaseEditor.prototype.checkEditorSection.call(this.hotCustomEditorInstance, ...args);\n }\n\n close(...args) {\n return Handsontable.editors.BaseEditor.prototype.close.call(this.hotCustomEditorInstance, ...args);\n }\n\n discardEditor(...args) {\n return Handsontable.editors.BaseEditor.prototype.discardEditor.call(this.hotCustomEditorInstance, ...args);\n }\n\n enableFullEditMode(...args) {\n return Handsontable.editors.BaseEditor.prototype.enableFullEditMode.call(this.hotCustomEditorInstance, ...args);\n }\n\n extend(...args) {\n return Handsontable.editors.BaseEditor.prototype.extend.call(this.hotCustomEditorInstance, ...args);\n }\n\n finishEditing(...args) {\n return Handsontable.editors.BaseEditor.prototype.finishEditing.call(this.hotCustomEditorInstance, ...args);\n }\n\n focus(...args) {\n return Handsontable.editors.BaseEditor.prototype.focus.call(this.hotCustomEditorInstance, ...args);\n }\n\n getValue(...args) {\n return Handsontable.editors.BaseEditor.prototype.getValue.call(this.hotCustomEditorInstance, ...args);\n }\n\n init(...args) {\n return Handsontable.editors.BaseEditor.prototype.init.call(this.hotCustomEditorInstance, ...args);\n }\n\n isInFullEditMode(...args) {\n return Handsontable.editors.BaseEditor.prototype.isInFullEditMode.call(this.hotCustomEditorInstance, ...args);\n }\n\n isOpened(...args) {\n return Handsontable.editors.BaseEditor.prototype.isOpened.call(this.hotCustomEditorInstance, ...args);\n }\n\n isWaiting(...args) {\n return Handsontable.editors.BaseEditor.prototype.isWaiting.call(this.hotCustomEditorInstance, ...args);\n }\n\n open(...args) {\n return Handsontable.editors.BaseEditor.prototype.open.call(this.hotCustomEditorInstance, ...args);\n }\n\n prepare(row, col, prop, TD, originalValue, cellProperties) {\n this.hotInstance = cellProperties.instance;\n this.row = row;\n this.col = col;\n this.prop = prop;\n this.TD = TD;\n this.originalValue = originalValue;\n this.cellProperties = cellProperties;\n\n return Handsontable.editors.BaseEditor.prototype.prepare.call(this.hotCustomEditorInstance, row, col, prop, TD, originalValue, cellProperties);\n }\n\n saveValue(...args) {\n return Handsontable.editors.BaseEditor.prototype.saveValue.call(this.hotCustomEditorInstance, ...args);\n }\n\n setValue(...args) {\n return Handsontable.editors.BaseEditor.prototype.setValue.call(this.hotCustomEditorInstance, ...args);\n }\n\n addHook(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).addHook.call(this.hotCustomEditorInstance, ...args);\n }\n\n removeHooksByKey(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).removeHooksByKey.call(this.hotCustomEditorInstance, ...args);\n }\n\n clearHooks(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).clearHooks.call(this.hotCustomEditorInstance, ...args);\n }\n\n getEditedCell(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).getEditedCell.call(this.hotCustomEditorInstance, ...args);\n }\n\n getEditedCellRect(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).getEditedCellRect.call(this.hotCustomEditorInstance, ...args);\n }\n\n getEditedCellsZIndex(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).getEditedCellsZIndex.call(this.hotCustomEditorInstance, ...args);\n }\n}\n\nexport default BaseEditorComponent;\nexport { BaseEditorComponent };\n"],"names":["bulkComponentContainer","hasIdWarningBeenPrinted","GLOBAL_EDITOR_SCOPE","warn","_console","console","apply","arguments","getChildElementByType","children","type","childrenArray","React","Children","toArray","childrenCount","count","wantedChild","props","find","child","getOriginalEditorClass","editorElement","WrappedComponent","createEditorPortal","doc","containerProps","getContainerAttributesProps","className","concat","ReactDOM","createPortal","body","getExtendedEditorElement","editorCache","editorColumnScope","editorClass","cloneElement","emitEditorInstance","editorInstance","get","set","Map","isEditor","rElement","ownerDocument","document","createDocumentFragment","portalContainer","createElement","appendChild","extendedRendererElement","_objectSpread","key","row","col","portal","Math","random","randomizeId","id","toString","substring","style","SettingsMapper","_classCallCheck","_createClass","value","properties","newSettings","settings","hasOwnProperty","HotColumn","_React$Component","_inherits","_super","_createSuper","this","_this","internalProps","Object","keys","filter","includes","reduce","obj","_getEditorCache","_columnIndex","rendererElement","_getChildElementByType","getLocalEditorElement","columnSettings","getSettings","getSettingsProps","renderer","_getRendererWrapper","_componentRendererColumns","editor","_getEditorClass","_emitColumnSettings","createColumnSettings","emitColumnSettings","editorPortal","_getOwnerDocument","Fragment","Component","RenderersPortalManager","state","portals","b","Symbol","c","d","e","f","g","h","k","l","m","n","p","q","r","t","v","w","x","y","z","a","_typeof","u","$$typeof","A","module","exports","require$$0","assign","test1","String","getOwnPropertyNames","test2","i","fromCharCode","order2","map","join","test3","split","forEach","letter","err","shouldUseNative","emptyFunction","emptyFunctionWithReset","Function","call","bind","prototype","resetWarningCache","shim","propName","componentName","location","propFullName","secret","Error","name","getShim","isRequired","ReactPropTypes","array","bigint","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","require$$2","HotTable","__hotInstance","hotElementRef","renderersPortalManager","portalCacheArray","renderedCellCache","componentRendererColumns","isDestroyed","hotInstance","getRenderedCellCache","clear","window","hotTableComponent","instance","TD","prop","cellProperties","has","innerHTML","getAttribute","_createPortal","isRenderer","firstChild","removeChild","push","_this$getEditorCache$","length","undefined","cachedComponent","getEditorCache","makeEditorClass","editorComponent","customEditorClass","_Handsontable$editors","CustomEditor","_super2","_this2","hotCustomEditorInstance","_assertThisInitialized","Handsontable","editors","BaseEditor","_editorComponent$prop","_len","args","Array","_key","globalRendererNode","getGlobalRendererElement","globalEditorNode","getGlobalEditorElement","columns","getEditorClass","getRendererWrapper","newGlobalSettings","_this$hotInstance$get","_this$hotInstance$get2","getPlugin","enabled","size","columnIndex","_this3","setState","_toConsumableArray","updateSettings","pmComponent","_this4","createNewGlobalSettings","Core","addHook","handsontableBeforeViewRender","handsontableAfterViewRender","init","displayAutoSizeWarning","clearCache","updateHot","destroy","_this5","hotColumnClones","childNode","isHotColumn","setHotColumnSettings","getOwnerDocument","ref","setHotElementRef","setRenderersPortalManagerRef","propTypes","BaseEditorComponent","originalValue","hot","_fireCallbacks","_Handsontable$editors2","_len2","_key2","beginEditing","_Handsontable$editors3","_len3","_key3","cancelChanges","_Handsontable$editors4","_len4","_key4","checkEditorSection","_Handsontable$editors5","_len5","_key5","close","_Handsontable$editors6","_len6","_key6","discardEditor","_Handsontable$editors7","_len7","_key7","enableFullEditMode","_Handsontable$editors8","_len8","_key8","extend","_Handsontable$editors9","_len9","_key9","finishEditing","_Handsontable$editors10","_len10","_key10","focus","_Handsontable$editors11","_len11","_key11","getValue","_Handsontable$editors12","_len12","_key12","_Handsontable$editors13","_len13","_key13","isInFullEditMode","_Handsontable$editors14","_len14","_key14","isOpened","_Handsontable$editors15","_len15","_key15","isWaiting","_Handsontable$editors16","_len16","_key16","open","prepare","_Handsontable$editors17","_len17","_key17","saveValue","_Handsontable$editors18","_len18","_key18","setValue","_Handsontable$editors19","_len19","_key19","_Handsontable$editors20","_len20","_key20","removeHooksByKey","_Handsontable$editors21","_len21","_key21","clearHooks","_Handsontable$editors22","_len22","_key22","getEditedCell","_Handsontable$editors23","_len23","_key23","getEditedCellRect","_Handsontable$editors24","_len24","_key24","getEditedCellsZIndex"],"mappings":"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"}
1
+ {"version":3,"file":"react-handsontable.min.js","sources":["../src/helpers.tsx","../src/settingsMapper.ts","../src/hotColumn.tsx","../src/renderersPortalManager.tsx","../../../node_modules/react-is/cjs/react-is.production.min.js","../../../node_modules/react-is/index.js","../../../node_modules/object-assign/index.js","../../../node_modules/prop-types/factoryWithThrowingShims.js","../../../node_modules/prop-types/lib/has.js","../../../node_modules/prop-types/index.js","../../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../src/hotTable.tsx","../src/baseEditorComponent.tsx"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport {\n EditorScopeIdentifier,\n HotEditorCache,\n HotEditorElement\n} from './types';\n\nlet bulkComponentContainer = null;\n\n/**\n * Warning message for the `autoRowSize`/`autoColumnSize` compatibility check.\n */\nexport const AUTOSIZE_WARNING = 'Your `HotTable` configuration includes `autoRowSize`/`autoColumnSize` options, which are not compatible with ' +\n ' the component-based renderers`. Disable `autoRowSize` and `autoColumnSize` to prevent row and column misalignment.';\n\n/**\n * Message for the warning thrown if the Handsontable instance has been destroyed.\n */\nexport const HOT_DESTROYED_WARNING = 'The Handsontable instance bound to this component was destroyed and cannot be' +\n ' used properly.';\n\n/**\n * String identifier for the global-scoped editor components.\n */\nexport const GLOBAL_EDITOR_SCOPE = 'global';\n\n/**\n * Default classname given to the wrapper container.\n */\nexport const DEFAULT_CLASSNAME = 'hot-wrapper-editor-container';\n\n/**\n * Logs warn to the console if the `console` object is exposed.\n *\n * @param {...*} args Values which will be logged.\n */\nexport function warn(...args) {\n if (typeof console !== 'undefined') {\n console.warn(...args);\n }\n}\n\n/**\n * Filter out and return elements of the provided `type` from the `HotColumn` component's children.\n *\n * @param {React.ReactNode} children HotTable children array.\n * @param {String} type Either `'hot-renderer'` or `'hot-editor'`.\n * @returns {Object|null} A child (React node) or `null`, if no child of that type was found.\n */\nexport function getChildElementByType(children: React.ReactNode, type: string): React.ReactElement | null {\n const childrenArray: React.ReactNode[] = React.Children.toArray(children);\n const childrenCount: number = React.Children.count(children);\n let wantedChild: React.ReactNode | null = null;\n\n if (childrenCount !== 0) {\n if (childrenCount === 1 && (childrenArray[0] as React.ReactElement).props[type]) {\n wantedChild = childrenArray[0];\n\n } else {\n wantedChild = childrenArray.find((child) => {\n return (child as React.ReactElement).props[type] !== void 0;\n });\n }\n }\n\n return (wantedChild as React.ReactElement) || null;\n}\n\n/**\n * Get the reference to the original editor class.\n *\n * @param {React.ReactElement} editorElement React element of the editor class.\n * @returns {Function} Original class of the editor component.\n */\nexport function getOriginalEditorClass(editorElement: HotEditorElement) {\n if (!editorElement) {\n return null;\n }\n\n return editorElement.type.WrappedComponent ? editorElement.type.WrappedComponent : editorElement.type;\n}\n\n/**\n * Create an editor portal.\n *\n * @param {Document} [doc] Document to be used.\n * @param {React.ReactElement} editorElement Editor's element.\n * @returns {React.ReactPortal} The portal for the editor.\n */\nexport function createEditorPortal(doc: Document = document, editorElement: HotEditorElement): React.ReactPortal | null {\n if (editorElement === null) {\n return null;\n }\n\n const containerProps = getContainerAttributesProps(editorElement.props, false);\n\n containerProps.className = `${DEFAULT_CLASSNAME} ${containerProps.className}`;\n\n return ReactDOM.createPortal(\n <div {...containerProps}>\n {editorElement}\n </div>\n , doc.body);\n}\n\n/**\n * Get an editor element extended with an instance-emitting method.\n *\n * @param {React.ReactNode} children Component children.\n * @param {Map} editorCache Component's editor cache.\n * @param {EditorScopeIdentifier} [editorColumnScope] The editor scope (column index or a 'global' string). Defaults to\n * 'global'.\n * @returns {React.ReactElement} An editor element containing the additional methods.\n */\nexport function getExtendedEditorElement(children: React.ReactNode, editorCache: HotEditorCache, editorColumnScope: EditorScopeIdentifier = GLOBAL_EDITOR_SCOPE): React.ReactElement | null {\n const editorElement = getChildElementByType(children, 'hot-editor');\n const editorClass = getOriginalEditorClass(editorElement);\n\n if (!editorElement) {\n return null;\n }\n\n return React.cloneElement(editorElement, {\n emitEditorInstance: (editorInstance, editorColumnScope) => {\n if (!editorCache.get(editorClass)) {\n editorCache.set(editorClass, new Map());\n }\n\n const cacheEntry = editorCache.get(editorClass);\n\n cacheEntry.set(editorColumnScope ?? GLOBAL_EDITOR_SCOPE, editorInstance);\n },\n editorColumnScope,\n isEditor: true\n } as object);\n}\n\n/**\n * Create a react component and render it to an external DOM done.\n *\n * @param {React.ReactElement} rElement React element to be used as a base for the component.\n * @param {Object} props Props to be passed to the cloned element.\n * @param {Document} [ownerDocument] The owner document to set the portal up into.\n * @returns {{portal: React.ReactPortal, portalContainer: HTMLElement}} An object containing the portal and its container.\n */\nexport function createPortal(rElement: React.ReactElement, props, ownerDocument: Document = document): {\n portal: React.ReactPortal,\n portalContainer: HTMLElement\n} {\n if (!ownerDocument) {\n ownerDocument = document;\n }\n\n if (!bulkComponentContainer) {\n bulkComponentContainer = ownerDocument.createDocumentFragment();\n }\n\n const portalContainer = ownerDocument.createElement('DIV');\n bulkComponentContainer.appendChild(portalContainer);\n\n const extendedRendererElement = React.cloneElement(rElement, {\n key: `${props.row}-${props.col}`,\n ...props\n });\n\n return {\n portal: ReactDOM.createPortal(extendedRendererElement, portalContainer, `${props.row}-${props.col}-${Math.random()}`),\n portalContainer\n };\n}\n\n/**\n * Get an object containing the `id`, `className` and `style` keys, representing the corresponding props passed to the\n * component.\n *\n * @param {Object} props Object containing the react element props.\n * @param {Boolean} randomizeId If set to `true`, the function will randomize the `id` property when no `id` was present in the `prop` object.\n * @returns An object containing the `id`, `className` and `style` keys, representing the corresponding props passed to the\n * component.\n */\nexport function getContainerAttributesProps(props, randomizeId: boolean = true): {id: string, className: string, style: object} {\n return {\n id: props.id || (randomizeId ? 'hot-' + Math.random().toString(36).substring(5) : void 0),\n className: props.className || '',\n style: props.style || {},\n }\n}\n","import Handsontable from 'handsontable/base';\nimport { HotTableProps } from './types';\n\nexport class SettingsMapper {\n /**\n * Parse component settings into Handosntable-compatible settings.\n *\n * @param {Object} properties Object containing properties from the HotTable object.\n * @returns {Object} Handsontable-compatible settings object.\n */\n static getSettings(properties: HotTableProps): Handsontable.GridSettings {\n let newSettings: Handsontable.GridSettings = {};\n\n if (properties.settings) {\n let settings = properties.settings;\n for (const key in settings) {\n if (settings.hasOwnProperty(key)) {\n newSettings[key] = settings[key];\n }\n }\n }\n\n for (const key in properties) {\n if (key !== 'settings' && key !== 'children' && properties.hasOwnProperty(key)) {\n newSettings[key] = properties[key];\n }\n }\n\n return newSettings;\n }\n}\n","import React from 'react';\nimport { HotTableProps, HotColumnProps } from './types';\nimport {\n createEditorPortal,\n getExtendedEditorElement,\n} from './helpers';\nimport { SettingsMapper } from './settingsMapper';\nimport Handsontable from 'handsontable/base';\n\nclass HotColumn extends React.Component<HotColumnProps, {}> {\n internalProps: string[];\n columnSettings: Handsontable.ColumnSettings;\n\n /**\n * Filter out all the internal properties and return an object with just the Handsontable-related props.\n *\n * @returns {Object}\n */\n getSettingsProps(): HotTableProps {\n this.internalProps = ['_componentRendererColumns', '_emitColumnSettings', '_columnIndex', '_getChildElementByType', '_getRendererWrapper',\n '_getEditorClass', '_getEditorCache', '_getOwnerDocument', 'hot-renderer', 'hot-editor', 'children'];\n\n return Object.keys(this.props)\n .filter(key => {\n return !this.internalProps.includes(key);\n })\n .reduce((obj, key) => {\n obj[key] = this.props[key];\n\n return obj;\n }, {});\n }\n\n /**\n * Get the editor element for the current column.\n *\n * @returns {React.ReactElement} React editor component element.\n */\n getLocalEditorElement(): React.ReactElement | null {\n return getExtendedEditorElement(this.props.children, this.props._getEditorCache(), this.props._columnIndex);\n }\n\n /**\n * Create the column settings based on the data provided to the `HotColumn` component and it's child components.\n */\n createColumnSettings(): void {\n const rendererElement = this.props._getChildElementByType(this.props.children, 'hot-renderer');\n const editorElement = this.getLocalEditorElement();\n\n this.columnSettings = SettingsMapper.getSettings(this.getSettingsProps()) as unknown as Handsontable.ColumnSettings;\n\n if (rendererElement !== null) {\n this.columnSettings.renderer = this.props._getRendererWrapper(rendererElement);\n this.props._componentRendererColumns.set(this.props._columnIndex, true);\n }\n\n if (editorElement !== null) {\n this.columnSettings.editor = this.props._getEditorClass(editorElement, this.props._columnIndex);\n }\n }\n\n /**\n * Emit the column settings to the parent using a prop passed from the parent.\n */\n emitColumnSettings(): void {\n this.props._emitColumnSettings(this.columnSettings, this.props._columnIndex);\n }\n\n /*\n ---------------------------------------\n ------- React lifecycle methods -------\n ---------------------------------------\n */\n\n /**\n * Logic performed after the mounting of the HotColumn component.\n */\n componentDidMount(): void {\n this.createColumnSettings();\n this.emitColumnSettings();\n }\n\n /**\n * Logic performed after the updating of the HotColumn component.\n */\n componentDidUpdate(): void {\n this.createColumnSettings();\n this.emitColumnSettings();\n }\n\n /**\n * Render the portals of the editors, if there are any.\n *\n * @returns {React.ReactElement}\n */\n render(): React.ReactElement {\n const ownerDocument = this.props._getOwnerDocument();\n const editorPortal = createEditorPortal(ownerDocument, this.getLocalEditorElement());\n\n return (\n <React.Fragment>\n {editorPortal}\n </React.Fragment>\n )\n }\n}\n\nexport { HotColumn };\n","import React from 'react';\n\n/**\n * Component class used to manage the renderer component portals.\n */\nexport class RenderersPortalManager extends React.Component<{}, { portals?: React.ReactPortal[] }> {\n state = {\n portals: []\n };\n\n render() {\n return (\n <React.Fragment>\n {this.state.portals}\n </React.Fragment>\n )\n }\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","import React from 'react';\nimport Handsontable from 'handsontable/base';\nimport { SettingsMapper } from './settingsMapper';\nimport { RenderersPortalManager } from './renderersPortalManager';\nimport { HotColumn } from './hotColumn';\nimport * as packageJson from '../package.json';\nimport {\n HotTableProps,\n HotEditorElement,\n HotEditorCache,\n EditorScopeIdentifier\n} from './types';\nimport {\n HOT_DESTROYED_WARNING,\n AUTOSIZE_WARNING,\n GLOBAL_EDITOR_SCOPE,\n createEditorPortal,\n createPortal,\n getChildElementByType,\n getContainerAttributesProps,\n getExtendedEditorElement,\n getOriginalEditorClass,\n warn\n} from './helpers';\nimport PropTypes from 'prop-types';\n\n/**\n * A Handsontable-ReactJS wrapper.\n *\n * To implement, use the `HotTable` tag with properties corresponding to Handsontable options.\n * For example:\n *\n * ```js\n * <HotTable id=\"hot\" data={dataObject} contextMenu={true} colHeaders={true} width={600} height={300} stretchH=\"all\" />\n *\n * // is analogous to\n * let hot = new Handsontable(document.getElementById('hot'), {\n * data: dataObject,\n * contextMenu: true,\n * colHeaders: true,\n * width: 600\n * height: 300\n * });\n *\n * ```\n *\n * @class HotTable\n */\nclass HotTable extends React.Component<HotTableProps, {}> {\n /**\n * The `id` of the main Handsontable DOM element.\n *\n * @type {String}\n */\n id: string = null;\n /**\n * Reference to the Handsontable instance.\n *\n * @private\n * @type {Object}\n */\n __hotInstance: Handsontable | null = null;\n /**\n * Reference to the main Handsontable DOM element.\n *\n * @type {HTMLElement}\n */\n hotElementRef: HTMLElement = null;\n /**\n * Class name added to the component DOM element.\n *\n * @type {String}\n */\n className: string;\n /**\n * Style object passed to the component.\n *\n * @type {React.CSSProperties}\n */\n style: React.CSSProperties;\n\n /**\n * Array of object containing the column settings.\n *\n * @type {Array}\n */\n columnSettings: Handsontable.ColumnSettings[] = [];\n\n /**\n * Component used to manage the renderer portals.\n *\n * @type {React.Component}\n */\n renderersPortalManager: RenderersPortalManager = null;\n\n /**\n * Array containing the portals cashed to be rendered in bulk after Handsontable's render cycle.\n */\n portalCacheArray: React.ReactPortal[] = [];\n\n /**\n * The rendered cells cache.\n *\n * @private\n * @type {Map}\n */\n private renderedCellCache: Map<string, HTMLTableCellElement> = new Map();\n\n /**\n * Editor cache.\n *\n * @private\n * @type {Map}\n */\n private editorCache: HotEditorCache = new Map();\n\n /**\n * Map with column indexes (or a string = 'global') as keys, and booleans as values. Each key represents a component-based editor\n * declared for the used column index, or a global one, if the key is the `global` string.\n *\n * @private\n * @type {Map}\n */\n private componentRendererColumns: Map<number | string, boolean> = new Map();\n\n /**\n * Package version getter.\n *\n * @returns The version number of the package.\n */\n static get version(): string {\n return (packageJson as any).version;\n }\n\n /**\n * Getter for the property storing the Handsontable instance.\n */\n get hotInstance(): Handsontable | null {\n if (!this.__hotInstance || (this.__hotInstance && !this.__hotInstance.isDestroyed)) {\n\n // Will return the Handsontable instance or `null` if it's not yet been created.\n return this.__hotInstance;\n\n } else {\n console.warn(HOT_DESTROYED_WARNING);\n\n return null;\n }\n }\n\n /**\n * Setter for the property storing the Handsontable instance.\n * @param {Handsontable} hotInstance The Handsontable instance.\n */\n set hotInstance(hotInstance) {\n this.__hotInstance = hotInstance;\n }\n\n /**\n * Prop types to be checked at runtime.\n */\n static propTypes: object = {\n style: PropTypes.object,\n id: PropTypes.string,\n className: PropTypes.string\n };\n\n /**\n * Get the rendered table cell cache.\n *\n * @returns {Map}\n */\n getRenderedCellCache(): Map<string, HTMLTableCellElement> {\n return this.renderedCellCache;\n }\n\n /**\n * Get the editor cache and return it.\n *\n * @returns {Map}\n */\n getEditorCache(): HotEditorCache {\n return this.editorCache;\n }\n\n /**\n * Clear both the editor and the renderer cache.\n */\n clearCache(): void {\n this.getRenderedCellCache().clear();\n this.componentRendererColumns.clear();\n }\n\n /**\n * Get the `Document` object corresponding to the main component element.\n *\n * @returns The `Document` object used by the component.\n */\n getOwnerDocument() {\n return this.hotElementRef ? this.hotElementRef.ownerDocument : document;\n }\n\n /**\n * Set the reference to the main Handsontable DOM element.\n *\n * @param {HTMLElement} element The main Handsontable DOM element.\n */\n private setHotElementRef(element: HTMLElement): void {\n this.hotElementRef = element;\n }\n\n /**\n * Return a renderer wrapper function for the provided renderer component.\n *\n * @param {React.ReactElement} rendererElement React renderer component.\n * @returns {Handsontable.renderers.Base} The Handsontable rendering function.\n */\n getRendererWrapper(rendererElement: React.ReactElement): typeof Handsontable.renderers.BaseRenderer | any {\n const hotTableComponent = this;\n\n return function (instance, TD, row, col, prop, value, cellProperties) {\n const renderedCellCache = hotTableComponent.getRenderedCellCache();\n\n if (renderedCellCache.has(`${row}-${col}`)) {\n TD.innerHTML = renderedCellCache.get(`${row}-${col}`).innerHTML;\n }\n\n if (TD && !TD.getAttribute('ghost-table')) {\n\n const {portal, portalContainer} = createPortal(rendererElement, {\n TD,\n row,\n col,\n prop,\n value,\n cellProperties,\n isRenderer: true\n }, TD.ownerDocument);\n\n while (TD.firstChild) {\n TD.removeChild(TD.firstChild);\n }\n\n TD.appendChild(portalContainer);\n\n hotTableComponent.portalCacheArray.push(portal);\n }\n\n renderedCellCache.set(`${row}-${col}`, TD);\n\n return TD;\n };\n }\n\n /**\n * Create a fresh class to be used as an editor, based on the provided editor React element.\n *\n * @param {React.ReactElement} editorElement React editor component.\n * @param {string|number} [editorColumnScope] The editor scope (column index or a 'global' string). Defaults to\n * 'global'.\n * @returns {Function} A class to be passed to the Handsontable editor settings.\n */\n getEditorClass(editorElement: HotEditorElement, editorColumnScope: EditorScopeIdentifier = GLOBAL_EDITOR_SCOPE): typeof Handsontable.editors.BaseEditor {\n const editorClass = getOriginalEditorClass(editorElement);\n const cachedComponent = this.getEditorCache().get(editorClass)?.get(editorColumnScope);\n\n return this.makeEditorClass(cachedComponent);\n }\n\n /**\n * Create a class to be passed to the Handsontable's settings.\n *\n * @param {React.ReactElement} editorComponent React editor component.\n * @returns {Function} A class to be passed to the Handsontable editor settings.\n */\n makeEditorClass(editorComponent: React.Component): typeof Handsontable.editors.BaseEditor {\n const customEditorClass = class CustomEditor extends Handsontable.editors.BaseEditor implements Handsontable.editors.BaseEditor {\n editorComponent: React.Component;\n\n constructor(hotInstance) {\n super(hotInstance);\n\n (editorComponent as any).hotCustomEditorInstance = this;\n\n this.editorComponent = editorComponent;\n }\n\n focus() {\n }\n\n getValue() {\n }\n\n setValue() {\n }\n\n open() {\n }\n\n close() {\n }\n } as any;\n\n // Fill with the rest of the BaseEditor methods\n Object.getOwnPropertyNames(Handsontable.editors.BaseEditor.prototype).forEach(propName => {\n if (propName === 'constructor') {\n return;\n }\n\n customEditorClass.prototype[propName] = function (...args) {\n return editorComponent[propName].call(editorComponent, ...args);\n }\n });\n\n return customEditorClass;\n }\n\n /**\n * Get the renderer element for the entire HotTable instance.\n *\n * @returns {React.ReactElement} React renderer component element.\n */\n getGlobalRendererElement(): React.ReactElement {\n return getChildElementByType(this.props.children, 'hot-renderer');\n }\n\n /**\n * Get the editor element for the entire HotTable instance.\n *\n * @param {React.ReactNode} [children] Children of the HotTable instance. Defaults to `this.props.children`.\n * @returns {React.ReactElement} React editor component element.\n */\n getGlobalEditorElement(): HotEditorElement | null {\n return getExtendedEditorElement(this.props.children, this.getEditorCache());\n }\n\n /**\n * Create a new settings object containing the column settings and global editors and renderers.\n *\n * @returns {Handsontable.GridSettings} New global set of settings for Handsontable.\n */\n createNewGlobalSettings(): Handsontable.GridSettings {\n const newSettings = SettingsMapper.getSettings(this.props);\n const globalRendererNode = this.getGlobalRendererElement();\n const globalEditorNode = this.getGlobalEditorElement();\n\n newSettings.columns = this.columnSettings.length ? this.columnSettings : newSettings.columns;\n\n if (globalEditorNode) {\n newSettings.editor = this.getEditorClass(globalEditorNode, GLOBAL_EDITOR_SCOPE);\n\n } else {\n newSettings.editor = this.props.editor || (this.props.settings ? this.props.settings.editor : void 0);\n }\n\n if (globalRendererNode) {\n newSettings.renderer = this.getRendererWrapper(globalRendererNode);\n this.componentRendererColumns.set('global', true);\n\n } else {\n newSettings.renderer = this.props.renderer || (this.props.settings ? this.props.settings.renderer : void 0);\n }\n\n return newSettings;\n }\n\n /**\n * Detect if `autoRowSize` or `autoColumnSize` is defined, and if so, throw an incompatibility warning.\n *\n * @param {Handsontable.GridSettings} newGlobalSettings New global settings passed as Handsontable config.\n */\n displayAutoSizeWarning(newGlobalSettings: Handsontable.GridSettings): void {\n if (\n this.hotInstance &&\n (\n this.hotInstance.getPlugin('autoRowSize')?.enabled ||\n this.hotInstance.getPlugin('autoColumnSize')?.enabled\n )\n ) {\n if (this.componentRendererColumns.size > 0) {\n warn(AUTOSIZE_WARNING);\n }\n }\n }\n\n /**\n * Sets the column settings based on information received from HotColumn.\n *\n * @param {HotTableProps} columnSettings Column settings object.\n * @param {Number} columnIndex Column index.\n */\n setHotColumnSettings(columnSettings: Handsontable.ColumnSettings, columnIndex: number): void {\n this.columnSettings[columnIndex] = columnSettings;\n }\n\n /**\n * Handsontable's `beforeViewRender` hook callback.\n */\n handsontableBeforeViewRender(): void {\n this.getRenderedCellCache().clear();\n }\n\n /**\n * Handsontable's `afterViewRender` hook callback.\n */\n handsontableAfterViewRender(): void {\n this.renderersPortalManager.setState({\n portals: [...this.portalCacheArray]\n }, () => {\n this.portalCacheArray = [];\n });\n }\n\n /**\n * Call the `updateSettings` method for the Handsontable instance.\n *\n * @param {Object} newSettings The settings object.\n */\n private updateHot(newSettings: Handsontable.GridSettings): void {\n if (this.hotInstance) {\n this.hotInstance.updateSettings(newSettings, false);\n }\n }\n\n /**\n * Set the renderers portal manager ref.\n *\n * @param {React.ReactComponent} pmComponent The PortalManager component.\n */\n private setRenderersPortalManagerRef(pmComponent: RenderersPortalManager): void {\n this.renderersPortalManager = pmComponent;\n }\n\n /*\n ---------------------------------------\n ------- React lifecycle methods -------\n ---------------------------------------\n */\n\n /**\n * Initialize Handsontable after the component has mounted.\n */\n componentDidMount(): void {\n const newGlobalSettings = this.createNewGlobalSettings();\n\n this.hotInstance = new Handsontable.Core(this.hotElementRef, newGlobalSettings);\n\n this.hotInstance.addHook('beforeViewRender', () => this.handsontableBeforeViewRender());\n this.hotInstance.addHook('afterViewRender', () => this.handsontableAfterViewRender());\n\n // `init` missing in Handsontable's type definitions.\n (this.hotInstance as any).init();\n\n this.displayAutoSizeWarning(newGlobalSettings);\n }\n\n /**\n * Logic performed after the component update.\n */\n componentDidUpdate(): void {\n this.clearCache();\n\n const newGlobalSettings = this.createNewGlobalSettings();\n\n this.updateHot(newGlobalSettings);\n this.displayAutoSizeWarning(newGlobalSettings);\n }\n\n /**\n * Destroy the Handsontable instance when the parent component unmounts.\n */\n componentWillUnmount(): void {\n this.clearCache();\n\n if (this.hotInstance) {\n this.hotInstance.destroy();\n }\n }\n\n /**\n * Render the component.\n */\n render(): React.ReactElement {\n const containerProps = getContainerAttributesProps(this.props);\n const isHotColumn = (childNode: any) => childNode.type === HotColumn;\n const children = React.Children.toArray(this.props.children);\n\n // clone the HotColumn nodes and extend them with the callbacks\n const hotColumnClones = children\n .filter((childNode: any) => isHotColumn(childNode))\n .map((childNode: React.ReactElement, columnIndex: number) => {\n return React.cloneElement(childNode, {\n _componentRendererColumns: this.componentRendererColumns,\n _emitColumnSettings: this.setHotColumnSettings.bind(this),\n _columnIndex: columnIndex,\n _getChildElementByType: getChildElementByType.bind(this),\n _getRendererWrapper: this.getRendererWrapper.bind(this),\n _getEditorClass: this.getEditorClass.bind(this),\n _getOwnerDocument: this.getOwnerDocument.bind(this),\n _getEditorCache: this.getEditorCache.bind(this),\n children: childNode.props.children\n } as object);\n });\n\n const editorPortal = createEditorPortal(this.getOwnerDocument(), this.getGlobalEditorElement());\n\n return (\n <React.Fragment>\n <div ref={this.setHotElementRef.bind(this)} {...containerProps}>\n {hotColumnClones}\n </div>\n <RenderersPortalManager ref={this.setRenderersPortalManagerRef.bind(this)} />\n {editorPortal}\n </React.Fragment>\n )\n }\n}\n\nexport default HotTable;\nexport { HotTable };\n","import React from 'react';\nimport Handsontable from 'handsontable/base';\nimport { EditorScopeIdentifier, HotEditorProps } from './types';\n\ninterface BaseEditorProps extends HotEditorProps {\n editorColumnScope?: EditorScopeIdentifier;\n emitEditorInstance?: (editor: BaseEditorComponent, column: EditorScopeIdentifier) => void,\n}\n\nclass BaseEditorComponent<P = {}, S = {}, SS = any> extends React.Component<P & BaseEditorProps, S, SS> implements Handsontable.editors.BaseEditor {\n name = 'BaseEditorComponent';\n instance = null;\n row = null;\n col = null;\n prop = null;\n TD = null;\n originalValue = null;\n cellProperties = null;\n state = null;\n hotInstance = null;\n hotCustomEditorInstance = null;\n hot = null;\n\n componentDidMount() {\n if (this.props.emitEditorInstance) {\n this.props.emitEditorInstance(this, this.props.editorColumnScope);\n }\n }\n\n componentDidUpdate() {\n if (this.props.emitEditorInstance) {\n this.props.emitEditorInstance(this, this.props.editorColumnScope);\n }\n }\n\n // BaseEditor methods:\n private _fireCallbacks(...args) {\n (Handsontable.editors.BaseEditor.prototype as any)._fireCallbacks.call(this.hotCustomEditorInstance, ...args);\n }\n\n beginEditing(...args) {\n return Handsontable.editors.BaseEditor.prototype.beginEditing.call(this.hotCustomEditorInstance, ...args);\n }\n\n cancelChanges(...args) {\n return Handsontable.editors.BaseEditor.prototype.cancelChanges.call(this.hotCustomEditorInstance, ...args);\n }\n\n checkEditorSection(...args) {\n return Handsontable.editors.BaseEditor.prototype.checkEditorSection.call(this.hotCustomEditorInstance, ...args);\n }\n\n close(...args) {\n return Handsontable.editors.BaseEditor.prototype.close.call(this.hotCustomEditorInstance, ...args);\n }\n\n discardEditor(...args) {\n return Handsontable.editors.BaseEditor.prototype.discardEditor.call(this.hotCustomEditorInstance, ...args);\n }\n\n enableFullEditMode(...args) {\n return Handsontable.editors.BaseEditor.prototype.enableFullEditMode.call(this.hotCustomEditorInstance, ...args);\n }\n\n extend(...args) {\n return Handsontable.editors.BaseEditor.prototype.extend.call(this.hotCustomEditorInstance, ...args);\n }\n\n finishEditing(...args) {\n return Handsontable.editors.BaseEditor.prototype.finishEditing.call(this.hotCustomEditorInstance, ...args);\n }\n\n focus(...args) {\n return Handsontable.editors.BaseEditor.prototype.focus.call(this.hotCustomEditorInstance, ...args);\n }\n\n getValue(...args) {\n return Handsontable.editors.BaseEditor.prototype.getValue.call(this.hotCustomEditorInstance, ...args);\n }\n\n init(...args) {\n return Handsontable.editors.BaseEditor.prototype.init.call(this.hotCustomEditorInstance, ...args);\n }\n\n isInFullEditMode(...args) {\n return Handsontable.editors.BaseEditor.prototype.isInFullEditMode.call(this.hotCustomEditorInstance, ...args);\n }\n\n isOpened(...args) {\n return Handsontable.editors.BaseEditor.prototype.isOpened.call(this.hotCustomEditorInstance, ...args);\n }\n\n isWaiting(...args) {\n return Handsontable.editors.BaseEditor.prototype.isWaiting.call(this.hotCustomEditorInstance, ...args);\n }\n\n open(...args) {\n return Handsontable.editors.BaseEditor.prototype.open.call(this.hotCustomEditorInstance, ...args);\n }\n\n prepare(row, col, prop, TD, originalValue, cellProperties) {\n this.hotInstance = cellProperties.instance;\n this.row = row;\n this.col = col;\n this.prop = prop;\n this.TD = TD;\n this.originalValue = originalValue;\n this.cellProperties = cellProperties;\n\n return Handsontable.editors.BaseEditor.prototype.prepare.call(this.hotCustomEditorInstance, row, col, prop, TD, originalValue, cellProperties);\n }\n\n saveValue(...args) {\n return Handsontable.editors.BaseEditor.prototype.saveValue.call(this.hotCustomEditorInstance, ...args);\n }\n\n setValue(...args) {\n return Handsontable.editors.BaseEditor.prototype.setValue.call(this.hotCustomEditorInstance, ...args);\n }\n\n addHook(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).addHook.call(this.hotCustomEditorInstance, ...args);\n }\n\n removeHooksByKey(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).removeHooksByKey.call(this.hotCustomEditorInstance, ...args);\n }\n\n clearHooks(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).clearHooks.call(this.hotCustomEditorInstance, ...args);\n }\n\n getEditedCell(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).getEditedCell.call(this.hotCustomEditorInstance, ...args);\n }\n\n getEditedCellRect(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).getEditedCellRect.call(this.hotCustomEditorInstance, ...args);\n }\n\n getEditedCellsZIndex(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).getEditedCellsZIndex.call(this.hotCustomEditorInstance, ...args);\n }\n}\n\nexport default BaseEditorComponent;\nexport { BaseEditorComponent };\n"],"names":["bulkComponentContainer","GLOBAL_EDITOR_SCOPE","getChildElementByType","children","type","childrenArray","React","Children","toArray","childrenCount","count","wantedChild","props","find","child","getOriginalEditorClass","editorElement","WrappedComponent","createEditorPortal","doc","arguments","length","undefined","document","containerProps","getContainerAttributesProps","className","concat","ReactDOM","createPortal","body","getExtendedEditorElement","editorCache","editorColumnScope","editorClass","cloneElement","emitEditorInstance","editorInstance","get","set","Map","isEditor","rElement","ownerDocument","createDocumentFragment","portalContainer","createElement","appendChild","extendedRendererElement","_objectSpread","key","row","col","portal","Math","random","id","toString","substring","style","SettingsMapper","_classCallCheck","_createClass","value","properties","newSettings","settings","hasOwnProperty","HotColumn","_React$Component","_inherits","_super","_createSuper","apply","this","_this","internalProps","Object","keys","filter","includes","reduce","obj","_getEditorCache","_columnIndex","rendererElement","_getChildElementByType","getLocalEditorElement","columnSettings","getSettings","getSettingsProps","renderer","_getRendererWrapper","_componentRendererColumns","editor","_getEditorClass","_emitColumnSettings","createColumnSettings","emitColumnSettings","editorPortal","_getOwnerDocument","Fragment","Component","RenderersPortalManager","state","portals","b","Symbol","c","d","e","f","g","h","k","l","m","n","p","q","r","t","v","w","x","y","z","a","_typeof","u","$$typeof","A","module","exports","require$$0","assign","test1","String","getOwnPropertyNames","test2","i","fromCharCode","order2","map","join","test3","split","forEach","letter","err","shouldUseNative","emptyFunction","emptyFunctionWithReset","Function","call","bind","prototype","resetWarningCache","shim","propName","componentName","location","propFullName","secret","Error","name","getShim","isRequired","ReactPropTypes","array","bigint","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","require$$2","HotTable","__hotInstance","hotElementRef","renderersPortalManager","portalCacheArray","renderedCellCache","componentRendererColumns","isDestroyed","console","warn","hotInstance","getRenderedCellCache","clear","hotTableComponent","instance","TD","prop","cellProperties","has","innerHTML","getAttribute","_createPortal","isRenderer","firstChild","removeChild","push","_this$getEditorCache$","cachedComponent","getEditorCache","makeEditorClass","editorComponent","customEditorClass","_Handsontable$editors","CustomEditor","_super2","_this2","hotCustomEditorInstance","_assertThisInitialized","Handsontable","editors","BaseEditor","_editorComponent$prop","_len","args","Array","_key","globalRendererNode","getGlobalRendererElement","globalEditorNode","getGlobalEditorElement","columns","getEditorClass","getRendererWrapper","newGlobalSettings","_this$hotInstance$get","_this$hotInstance$get2","getPlugin","enabled","size","_console","columnIndex","_this3","setState","_toConsumableArray","updateSettings","pmComponent","_this4","createNewGlobalSettings","Core","addHook","handsontableBeforeViewRender","handsontableAfterViewRender","init","displayAutoSizeWarning","clearCache","updateHot","destroy","_this5","hotColumnClones","childNode","isHotColumn","setHotColumnSettings","getOwnerDocument","ref","setHotElementRef","setRenderersPortalManagerRef","propTypes","BaseEditorComponent","originalValue","hot","_fireCallbacks","_Handsontable$editors2","_len2","_key2","beginEditing","_Handsontable$editors3","_len3","_key3","cancelChanges","_Handsontable$editors4","_len4","_key4","checkEditorSection","_Handsontable$editors5","_len5","_key5","close","_Handsontable$editors6","_len6","_key6","discardEditor","_Handsontable$editors7","_len7","_key7","enableFullEditMode","_Handsontable$editors8","_len8","_key8","extend","_Handsontable$editors9","_len9","_key9","finishEditing","_Handsontable$editors10","_len10","_key10","focus","_Handsontable$editors11","_len11","_key11","getValue","_Handsontable$editors12","_len12","_key12","_Handsontable$editors13","_len13","_key13","isInFullEditMode","_Handsontable$editors14","_len14","_key14","isOpened","_Handsontable$editors15","_len15","_key15","isWaiting","_Handsontable$editors16","_len16","_key16","open","prepare","_Handsontable$editors17","_len17","_key17","saveValue","_Handsontable$editors18","_len18","_key18","setValue","_Handsontable$editors19","_len19","_key19","_Handsontable$editors20","_len20","_key20","removeHooksByKey","_Handsontable$editors21","_len21","_key21","clearHooks","_Handsontable$editors22","_len22","_key22","getEditedCell","_Handsontable$editors23","_len23","_key23","getEditedCellRect","_Handsontable$editors24","_len24","_key24","getEditedCellsZIndex"],"mappings":"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"}
@@ -177,7 +177,6 @@ function _toPropertyKey(arg) {
177
177
  }
178
178
 
179
179
  var bulkComponentContainer = null;
180
- var hasIdWarningBeenPrinted = false;
181
180
  /**
182
181
  * Warning message for the `autoRowSize`/`autoColumnSize` compatibility check.
183
182
  */
@@ -242,12 +241,14 @@ function getOriginalEditorClass(editorElement) {
242
241
  /**
243
242
  * Create an editor portal.
244
243
  *
245
- * @param {Document} doc Document to be used.
244
+ * @param {Document} [doc] Document to be used.
246
245
  * @param {React.ReactElement} editorElement Editor's element.
247
246
  * @returns {React.ReactPortal} The portal for the editor.
248
247
  */
249
- function createEditorPortal(doc, editorElement) {
250
- if (typeof doc === 'undefined' || editorElement === null) {
248
+ function createEditorPortal() {
249
+ var doc = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;
250
+ var editorElement = arguments.length > 1 ? arguments[1] : undefined;
251
+ if (editorElement === null) {
251
252
  return null;
252
253
  }
253
254
  var containerProps = getContainerAttributesProps(editorElement.props, false);
@@ -319,24 +320,12 @@ function createPortal(rElement, props) {
319
320
  */
320
321
  function getContainerAttributesProps(props) {
321
322
  var randomizeId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
322
- if (!hasIdWarningBeenPrinted && !props.id && randomizeId) {
323
- hasIdWarningBeenPrinted = true;
324
- warn('You have to provide an `id` property for the `HotTable` component.');
325
- }
326
323
  return {
327
324
  id: props.id || (randomizeId ? 'hot-' + Math.random().toString(36).substring(5) : void 0),
328
325
  className: props.className || '',
329
326
  style: props.style || {}
330
327
  };
331
328
  }
332
- /**
333
- * Checks if the environment that the code runs in is a browser.
334
- *
335
- * @returns {boolean}
336
- */
337
- function isCSR() {
338
- return typeof window !== 'undefined';
339
- }
340
329
 
341
330
  var SettingsMapper = /*#__PURE__*/function () {
342
331
  function SettingsMapper() {
@@ -495,7 +484,7 @@ var RenderersPortalManager = /*#__PURE__*/function (_React$Component) {
495
484
  return RenderersPortalManager;
496
485
  }(React.Component);
497
486
 
498
- var version="0.0.0-next-51d3397-20231211";
487
+ var version="0.0.0-next-e2b07e5-20231213";
499
488
 
500
489
  function createCommonjsModule(fn, module) {
501
490
  return module = { exports: {} }, fn(module, module.exports), module.exports;
@@ -1768,10 +1757,7 @@ var HotTable = /*#__PURE__*/function (_React$Component) {
1768
1757
  }, {
1769
1758
  key: "getOwnerDocument",
1770
1759
  value: function getOwnerDocument() {
1771
- if (isCSR()) {
1772
- return this.hotElementRef ? this.hotElementRef.ownerDocument : document;
1773
- }
1774
- return null;
1760
+ return this.hotElementRef ? this.hotElementRef.ownerDocument : document;
1775
1761
  }
1776
1762
  /**
1777
1763
  * Set the reference to the main Handsontable DOM element.
@@ -2058,6 +2044,7 @@ var HotTable = /*#__PURE__*/function (_React$Component) {
2058
2044
  key: "render",
2059
2045
  value: function render() {
2060
2046
  var _this5 = this;
2047
+ var containerProps = getContainerAttributesProps(this.props);
2061
2048
  var isHotColumn = function isHotColumn(childNode) {
2062
2049
  return childNode.type === HotColumn;
2063
2050
  };
@@ -2078,7 +2065,6 @@ var HotTable = /*#__PURE__*/function (_React$Component) {
2078
2065
  children: childNode.props.children
2079
2066
  });
2080
2067
  });
2081
- var containerProps = getContainerAttributesProps(this.props);
2082
2068
  var editorPortal = createEditorPortal(this.getOwnerDocument(), this.getGlobalEditorElement());
2083
2069
  return React.createElement(React.Fragment, null, React.createElement("div", Object.assign({
2084
2070
  ref: this.setHotElementRef.bind(this)
package/helpers.d.ts CHANGED
@@ -40,7 +40,7 @@ export declare function getOriginalEditorClass(editorElement: HotEditorElement):
40
40
  /**
41
41
  * Create an editor portal.
42
42
  *
43
- * @param {Document} doc Document to be used.
43
+ * @param {Document} [doc] Document to be used.
44
44
  * @param {React.ReactElement} editorElement Editor's element.
45
45
  * @returns {React.ReactPortal} The portal for the editor.
46
46
  */
@@ -81,9 +81,3 @@ export declare function getContainerAttributesProps(props: any, randomizeId?: bo
81
81
  className: string;
82
82
  style: object;
83
83
  };
84
- /**
85
- * Checks if the environment that the code runs in is a browser.
86
- *
87
- * @returns {boolean}
88
- */
89
- export declare function isCSR(): boolean;
package/hotTable.d.ts CHANGED
@@ -134,7 +134,7 @@ declare class HotTable extends React.Component<HotTableProps, {}> {
134
134
  *
135
135
  * @returns The `Document` object used by the component.
136
136
  */
137
- getOwnerDocument(): Document | null;
137
+ getOwnerDocument(): Document;
138
138
  /**
139
139
  * Set the reference to the main Handsontable DOM element.
140
140
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@handsontable/react",
3
- "version": "0.0.0-next-51d3397-20231211",
3
+ "version": "0.0.0-next-e2b07e5-20231213",
4
4
  "description": "Best Data Grid for React with Spreadsheet Look and Feel.",
5
5
  "author": "Handsoncode <hello@handsoncode.net> (https://handsoncode.net)",
6
6
  "homepage": "https://handsontable.com",
@@ -67,7 +67,7 @@
67
67
  "babel-core": "^7.0.0-bridge.0",
68
68
  "cpy-cli": "^3.1.1",
69
69
  "cross-env": "^7.0.3",
70
- "handsontable": "0.0.0-next-51d3397-20231211",
70
+ "handsontable": "0.0.0-next-e2b07e5-20231213",
71
71
  "jest": "^25.1.0",
72
72
  "prop-types": "^15.7.2",
73
73
  "react-dom": "^16.10.2",
@@ -88,7 +88,7 @@
88
88
  "uglify-js": "^3.4.9"
89
89
  },
90
90
  "peerDependencies": {
91
- "handsontable": "0.0.0-next-51d3397-20231211"
91
+ "handsontable": "0.0.0-next-e2b07e5-20231213"
92
92
  },
93
93
  "scripts": {
94
94
  "build": "npm run clean && npm run build:commonjs && npm run build:es && npm run build:umd && npm run build:min",