@handsontable/react 15.0.0 → 15.1.0-next-dfdf994-20250206

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/prop-types/index.js","../../../node_modules/prop-types/factoryWithThrowingShims.js","../../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../src/hotTableClass.tsx","../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, 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 * @param {String} portalKey The key to be used for the portal.\n * @param {HTMLElement} [cachedContainer] The cached container to be used for the portal.\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, portalKey: string, cachedContainer?: HTMLElement): {\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 = cachedContainer ?? 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, portalKey),\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) : undefined),\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 Handsontable-compatible settings.\n *\n * @param {Object} properties Object containing properties from the HotTable object.\n * @param {Object} additionalSettings Additional settings.\n * @param {boolean} additionalSettings.isInit Flag determining whether the settings are being set during initialization.\n * @param {string[]} additionalSettings.initOnlySettingKeys Array of keys that can be set only during initialization.\n * @returns {Object} Handsontable-compatible settings object.\n */\n static getSettings(\n properties: HotTableProps,\n {\n prevProps = {},\n isInit = false,\n initOnlySettingKeys = []\n }: {\n prevProps?: HotTableProps;\n isInit?: boolean;\n initOnlySettingKeys?: Array<keyof Handsontable.GridSettings>\n } = {}): Handsontable.GridSettings {\n const shouldSkipProp = (key: keyof Handsontable.GridSettings) => {\n // Omit settings that can be set only during initialization and are intentionally modified.\n if (!isInit && initOnlySettingKeys.includes(key)) {\n return prevProps[key] === properties[key];\n }\n return false;\n };\n let newSettings: Handsontable.GridSettings = {};\n\n if (properties.settings) {\n let settings = properties.settings;\n for (const key in settings) {\n if (\n settings.hasOwnProperty(key)\n &&\n !shouldSkipProp(key as keyof Handsontable.GridSettings)\n ) {\n newSettings[key] = settings[key];\n }\n }\n }\n\n for (const key in properties) {\n if (\n key !== 'settings' &&\n key !== 'children' &&\n !shouldSkipProp(key as keyof Handsontable.GridSettings) &&\n properties.hasOwnProperty(key)\n ) {\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","/**\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 = 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","/**\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';\nimport { getRenderer } from 'handsontable/renderers/registry';\nimport { getEditor } from 'handsontable/editors/registry';\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 HotTableCB\n */\nclass HotTableClass 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 * Map that stores React portals.\n * @type {Map<string, React.ReactPortal>}\n */\n portalCache: Map<string, React.ReactPortal> = new Map();\n\n /**\n * Portal Container Cache\n *\n * @private\n * @type {Map}\n */\n private portalContainerCache: Map<string, HTMLElement> = new Map();\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 * Returns `true` if the `hotInstance` exists, but was destroyed.\n *\n * @private\n * @returns {boolean}\n */\n _isHotInstanceDestroyed(): boolean {\n return this.__hotInstance && this.__hotInstance.isDestroyed;\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 Portal Container Cache\n *\n * @returns {Map}\n */\n getPortalContainerCache(): Map<string, HTMLElement> {\n return this.portalContainerCache;\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 {\n const hotTableComponent = this;\n\n return function __internalRenderer(instance, TD, row, col, prop, value, cellProperties) {\n const renderedCellCache = hotTableComponent.getRenderedCellCache();\n const portalContainerCache = hotTableComponent.getPortalContainerCache()\n const key = `${row}-${col}`;\n\n // Handsontable.Core type is missing guid\n const instanceGuid = (instance as unknown as { guid: string }).guid;\n\n const portalContainerKey = `${instanceGuid}-${key}`\n const portalKey = `${key}-${instanceGuid}`\n\n if (renderedCellCache.has(key)) {\n TD.innerHTML = renderedCellCache.get(key).innerHTML;\n }\n\n if (TD && !TD.getAttribute('ghost-table')) {\n const cachedPortal = hotTableComponent.portalCache.get(portalKey);\n const cachedPortalContainer = portalContainerCache.get(portalContainerKey);\n\n while (TD.firstChild) {\n TD.removeChild(TD.firstChild);\n }\n\n // if portal already exists, do not recreate\n if (cachedPortal && cachedPortalContainer) {\n TD.appendChild(cachedPortalContainer);\n } else {\n const { portal, portalContainer } = createPortal(rendererElement, {\n TD,\n row,\n col,\n prop,\n value,\n cellProperties,\n isRenderer: true\n }, TD.ownerDocument, portalKey, cachedPortalContainer);\n\n portalContainerCache.set(portalContainerKey, portalContainer)\n TD.appendChild(portalContainer);\n\n hotTableComponent.portalCache.set(portalKey, portal);\n }\n }\n\n renderedCellCache.set(key, TD);\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 * @param {boolean} [init=false] `true` if called on Handsontable initialization.\n * @param {HotTableProps} [prevProps] The previous properties object.\n * @returns {Handsontable.GridSettings} New global set of settings for Handsontable.\n */\n createNewGlobalSettings(init: boolean = false, prevProps: HotTableProps = {}): Handsontable.GridSettings {\n const initOnlySettingKeys = !this._isHotInstanceDestroyed() ? // Needed for React's double-rendering.\n ((this.hotInstance?.getSettings() as any)?._initOnlySettings || []) :\n [];\n const newSettings = SettingsMapper.getSettings(this.props, {\n prevProps,\n isInit: init,\n initOnlySettingKeys\n });\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 } else {\n if (this.props.editor || this.props.settings?.editor) {\n newSettings.editor = this.props.editor || this.props.settings.editor;\n } else {\n newSettings.editor = getEditor('text');\n }\n }\n\n if (globalRendererNode) {\n newSettings.renderer = this.getRendererWrapper(globalRendererNode);\n this.componentRendererColumns.set('global', true);\n } else {\n if (this.props.renderer || this.props.settings?.renderer) {\n newSettings.renderer = this.props.renderer || this.props.settings.renderer;\n } else {\n newSettings.renderer = getRenderer('text');\n }\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.portalCache.clear();\n this.getRenderedCellCache().clear();\n }\n\n /**\n * Handsontable's `afterViewRender` hook callback.\n */\n handsontableAfterViewRender(): void {\n this.renderersPortalManager.setState({\n portals: [...this.portalCache.values()]\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(true);\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(prevProps): void {\n this.clearCache();\n\n const newGlobalSettings = this.createNewGlobalSettings(false, prevProps);\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 HotTableClass;\nexport { HotTableClass };\n","import React, { ForwardRefExoticComponent, RefAttributes } from 'react';\nimport { HotTableClass } from './hotTableClass';\nimport { HotTableProps } from './types';\n\ninterface Version {\n version?: string;\n}\n\ntype HotTable = ForwardRefExoticComponent<HotTableProps & RefAttributes<HotTableClass>> & Version;\n\n// Use global React variable for `forwardRef` access (React 16 support)\nconst HotTable: HotTable = React.forwardRef<HotTableClass, HotTableProps>(({ children, ...props }, ref) => {\n const generatedId = typeof React.useId === 'function' ? React.useId() : undefined;\n const componentId = props.id ?? generatedId;\n\n return (\n <HotTableClass id={componentId} {...props} ref={ref}>\n {children}\n </HotTableClass>\n );\n})\n\nHotTable.version = HotTableClass.version;\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","containerProps","getContainerAttributesProps","className","concat","ReactDOM","createPortal","body","getExtendedEditorElement","editorCache","editorColumnScope","editorClass","cloneElement","emitEditorInstance","editorInstance","get","set","Map","isEditor","rElement","ownerDocument","arguments","length","undefined","document","portalKey","cachedContainer","createDocumentFragment","portalContainer","createElement","appendChild","extendedRendererElement","_objectSpread","key","row","col","portal","id","Math","random","toString","substring","style","SettingsMapper","_createClass","_classCallCheck","value","properties","_ref","_ref$prevProps","prevProps","_ref$isInit","isInit","_ref$initOnlySettingK","initOnlySettingKeys","shouldSkipProp","includes","newSettings","settings","hasOwnProperty","HotColumn","_React$Component","_callSuper","this","_inherits","_this","internalProps","Object","keys","filter","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","propTypesModule","exports","ReactPropTypesSecret","ReactPropTypesSecret_1","emptyFunction","emptyFunctionWithReset","resetWarningCache","factoryWithThrowingShims","shim","propName","componentName","location","propFullName","secret","err","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","HotTableClass","__hotInstance","hotElementRef","renderersPortalManager","portalCache","portalContainerCache","renderedCellCache","componentRendererColumns","isDestroyed","console","warn","hotInstance","getRenderedCellCache","clear","window","hotTableComponent","instance","TD","prop","cellProperties","getPortalContainerCache","instanceGuid","guid","portalContainerKey","has","innerHTML","getAttribute","cachedPortal","cachedPortalContainer","firstChild","removeChild","_createPortal","isRenderer","_this$getEditorCache$","cachedComponent","getEditorCache","makeEditorClass","editorComponent","customEditorClass","_Handsontable$editors","CustomEditor","_this2","hotCustomEditorInstance","Handsontable","editors","BaseEditor","getOwnPropertyNames","prototype","forEach","_editorComponent$prop","_len","args","Array","_key","call","apply","_this$hotInstance","_this$props$settings","_this$props$settings2","init","_isHotInstanceDestroyed","_initOnlySettings","globalRendererNode","getGlobalRendererElement","globalEditorNode","getGlobalEditorElement","columns","getEditorClass","getEditor","getRendererWrapper","getRenderer","newGlobalSettings","_this$hotInstance$get","_this$hotInstance$get2","getPlugin","enabled","size","_console","columnIndex","setState","_toConsumableArray","values","updateSettings","pmComponent","_this3","createNewGlobalSettings","Core","addHook","handsontableBeforeViewRender","handsontableAfterViewRender","displayAutoSizeWarning","clearCache","updateHot","destroy","_this4","hotColumnClones","childNode","isHotColumn","map","setHotColumnSettings","bind","getOwnerDocument","assign","ref","setHotElementRef","setRenderersPortalManagerRef","propTypes","HotTable","forwardRef","_props$id","_objectWithoutProperties","_excluded","generatedId","useId","componentId","version","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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","x_google_ignoreList":[4,5,6]}
1
+ {"version":3,"file":"react-handsontable.min.js","sources":["../src/helpers.tsx","../src/settingsMapper.ts","../src/hotColumn.tsx","../src/renderersPortalManager.tsx","../../../node_modules/prop-types/index.js","../../../node_modules/prop-types/factoryWithThrowingShims.js","../../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../src/hotTableClass.tsx","../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, 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 * @param {String} portalKey The key to be used for the portal.\n * @param {HTMLElement} [cachedContainer] The cached container to be used for the portal.\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, portalKey: string, cachedContainer?: HTMLElement): {\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 = cachedContainer ?? 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, portalKey),\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) : undefined),\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 Handsontable-compatible settings.\n *\n * @param {Object} properties Object containing properties from the HotTable object.\n * @param {Object} additionalSettings Additional settings.\n * @param {boolean} additionalSettings.isInit Flag determining whether the settings are being set during initialization.\n * @param {string[]} additionalSettings.initOnlySettingKeys Array of keys that can be set only during initialization.\n * @returns {Object} Handsontable-compatible settings object.\n */\n static getSettings(\n properties: HotTableProps,\n {\n prevProps = {},\n isInit = false,\n initOnlySettingKeys = []\n }: {\n prevProps?: HotTableProps;\n isInit?: boolean;\n initOnlySettingKeys?: Array<keyof Handsontable.GridSettings>\n } = {}): Handsontable.GridSettings {\n const shouldSkipProp = (key: keyof Handsontable.GridSettings) => {\n // Omit settings that can be set only during initialization and are intentionally modified.\n if (!isInit && initOnlySettingKeys.includes(key)) {\n return prevProps[key] === properties[key];\n }\n return false;\n };\n let newSettings: Handsontable.GridSettings = {};\n\n if (properties.settings) {\n let settings = properties.settings;\n for (const key in settings) {\n if (\n settings.hasOwnProperty(key)\n &&\n !shouldSkipProp(key as keyof Handsontable.GridSettings)\n ) {\n newSettings[key] = settings[key];\n }\n }\n }\n\n for (const key in properties) {\n if (\n key !== 'settings' &&\n key !== 'children' &&\n !shouldSkipProp(key as keyof Handsontable.GridSettings) &&\n properties.hasOwnProperty(key)\n ) {\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","/**\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 = 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","/**\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';\nimport { getRenderer } from 'handsontable/renderers/registry';\nimport { getEditor } from 'handsontable/editors/registry';\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 HotTableCB\n */\nclass HotTableClass 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 * Map that stores React portals.\n * @type {Map<string, React.ReactPortal>}\n */\n portalCache: Map<string, React.ReactPortal> = new Map();\n\n /**\n * Portal Container Cache\n *\n * @private\n * @type {Map}\n */\n private portalContainerCache: Map<string, HTMLElement> = new Map();\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 * Returns `true` if the `hotInstance` exists, but was destroyed.\n *\n * @private\n * @returns {boolean}\n */\n _isHotInstanceDestroyed(): boolean {\n return this.__hotInstance && this.__hotInstance.isDestroyed;\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 Portal Container Cache\n *\n * @returns {Map}\n */\n getPortalContainerCache(): Map<string, HTMLElement> {\n return this.portalContainerCache;\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 {\n const hotTableComponent = this;\n\n return function __internalRenderer(instance, TD, row, col, prop, value, cellProperties) {\n const renderedCellCache = hotTableComponent.getRenderedCellCache();\n const portalContainerCache = hotTableComponent.getPortalContainerCache()\n const key = `${row}-${col}`;\n\n // Handsontable.Core type is missing guid\n const instanceGuid = (instance as unknown as { guid: string }).guid;\n\n const portalContainerKey = `${instanceGuid}-${key}`\n const portalKey = `${key}-${instanceGuid}`\n\n if (renderedCellCache.has(key)) {\n TD.innerHTML = renderedCellCache.get(key).innerHTML;\n }\n\n if (TD && !TD.getAttribute('ghost-table')) {\n const cachedPortal = hotTableComponent.portalCache.get(portalKey);\n const cachedPortalContainer = portalContainerCache.get(portalContainerKey);\n\n while (TD.firstChild) {\n TD.removeChild(TD.firstChild);\n }\n\n // if portal already exists, do not recreate\n if (cachedPortal && cachedPortalContainer) {\n TD.appendChild(cachedPortalContainer);\n } else {\n const { portal, portalContainer } = createPortal(rendererElement, {\n TD,\n row,\n col,\n prop,\n value,\n cellProperties,\n isRenderer: true\n }, TD.ownerDocument, portalKey, cachedPortalContainer);\n\n portalContainerCache.set(portalContainerKey, portalContainer)\n TD.appendChild(portalContainer);\n\n hotTableComponent.portalCache.set(portalKey, portal);\n }\n }\n\n renderedCellCache.set(key, TD);\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 * @param {boolean} [init=false] `true` if called on Handsontable initialization.\n * @param {HotTableProps} [prevProps] The previous properties object.\n * @returns {Handsontable.GridSettings} New global set of settings for Handsontable.\n */\n createNewGlobalSettings(init: boolean = false, prevProps: HotTableProps = {}): Handsontable.GridSettings {\n const initOnlySettingKeys = !this._isHotInstanceDestroyed() ? // Needed for React's double-rendering.\n ((this.hotInstance?.getSettings() as any)?._initOnlySettings || []) :\n [];\n const newSettings = SettingsMapper.getSettings(this.props, {\n prevProps,\n isInit: init,\n initOnlySettingKeys\n });\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 } else {\n if (this.props.editor || this.props.settings?.editor) {\n newSettings.editor = this.props.editor || this.props.settings.editor;\n } else {\n newSettings.editor = getEditor('text');\n }\n }\n\n if (globalRendererNode) {\n newSettings.renderer = this.getRendererWrapper(globalRendererNode);\n this.componentRendererColumns.set('global', true);\n } else {\n if (this.props.renderer || this.props.settings?.renderer) {\n newSettings.renderer = this.props.renderer || this.props.settings.renderer;\n } else {\n newSettings.renderer = getRenderer('text');\n }\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.portalCache.clear();\n this.getRenderedCellCache().clear();\n }\n\n /**\n * Handsontable's `afterViewRender` hook callback.\n */\n handsontableAfterViewRender(): void {\n this.renderersPortalManager.setState({\n portals: [...this.portalCache.values()]\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(true);\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(prevProps): void {\n this.clearCache();\n\n const newGlobalSettings = this.createNewGlobalSettings(false, prevProps);\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 HotTableClass;\nexport { HotTableClass };\n","import React, { ForwardRefExoticComponent, RefAttributes } from 'react';\nimport { HotTableClass } from './hotTableClass';\nimport { HotTableProps } from './types';\n\ninterface Version {\n version?: string;\n}\n\ntype HotTable = ForwardRefExoticComponent<HotTableProps & RefAttributes<HotTableClass>> & Version;\n\n// Use global React variable for `forwardRef` access (React 16 support)\nconst HotTable: HotTable = React.forwardRef<HotTableClass, HotTableProps>(({ children, ...props }, ref) => {\n const generatedId = typeof React.useId === 'function' ? React.useId() : undefined;\n const componentId = props.id ?? generatedId;\n\n return (\n <HotTableClass id={componentId} {...props} ref={ref}>\n {children}\n </HotTableClass>\n );\n})\n\nHotTable.version = HotTableClass.version;\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","undefined","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","arguments","length","document","portalKey","cachedContainer","createDocumentFragment","portalContainer","createElement","appendChild","extendedRendererElement","_objectSpread","key","row","col","portal","id","Math","random","toString","substring","style","SettingsMapper","_createClass","_classCallCheck","value","properties","_ref","_ref$prevProps","prevProps","_ref$isInit","isInit","_ref$initOnlySettingK","initOnlySettingKeys","shouldSkipProp","includes","newSettings","settings","hasOwnProperty","HotColumn","_React$Component","_callSuper","this","_inherits","_this","internalProps","Object","keys","filter","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","propTypesModule","exports","ReactPropTypesSecret","ReactPropTypesSecret_1","emptyFunction","emptyFunctionWithReset","resetWarningCache","factoryWithThrowingShims","shim","propName","componentName","location","propFullName","secret","err","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","HotTableClass","__hotInstance","hotElementRef","renderersPortalManager","portalCache","portalContainerCache","renderedCellCache","componentRendererColumns","isDestroyed","console","warn","hotInstance","getRenderedCellCache","clear","window","hotTableComponent","instance","TD","prop","cellProperties","getPortalContainerCache","instanceGuid","guid","portalContainerKey","has","innerHTML","getAttribute","cachedPortal","cachedPortalContainer","firstChild","removeChild","_createPortal","isRenderer","_this$getEditorCache$","cachedComponent","getEditorCache","makeEditorClass","editorComponent","customEditorClass","_Handsontable$editors","CustomEditor","_this2","hotCustomEditorInstance","Handsontable","editors","BaseEditor","getOwnPropertyNames","prototype","forEach","_editorComponent$prop","_len","args","Array","_key","call","apply","_this$hotInstance","_this$props$settings","_this$props$settings2","init","_isHotInstanceDestroyed","_initOnlySettings","globalRendererNode","getGlobalRendererElement","globalEditorNode","getGlobalEditorElement","columns","getEditorClass","getEditor","getRendererWrapper","getRenderer","newGlobalSettings","_this$hotInstance$get","_this$hotInstance$get2","getPlugin","enabled","size","_console","columnIndex","setState","_toConsumableArray","values","updateSettings","pmComponent","_this3","createNewGlobalSettings","Core","addHook","handsontableBeforeViewRender","handsontableAfterViewRender","displayAutoSizeWarning","clearCache","updateHot","destroy","_this4","hotColumnClones","childNode","isHotColumn","map","setHotColumnSettings","bind","getOwnerDocument","assign","ref","setHotElementRef","setRenderersPortalManagerRef","propTypes","HotTable","forwardRef","_props$id","_objectWithoutProperties","_excluded","generatedId","useId","componentId","version","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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","x_google_ignoreList":[4,5,6]}
@@ -13,7 +13,7 @@ function _arrayWithoutHoles(r) {
13
13
  if (Array.isArray(r)) return _arrayLikeToArray(r);
14
14
  }
15
15
  function _assertThisInitialized(e) {
16
- if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
16
+ if (undefined === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
17
17
  return e;
18
18
  }
19
19
  function _callSuper(t, o, e) {
@@ -25,20 +25,20 @@ function _classCallCheck(a, n) {
25
25
  function _defineProperties(e, r) {
26
26
  for (var t = 0; t < r.length; t++) {
27
27
  var o = r[t];
28
- o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);
28
+ o.enumerable = o.enumerable || false, o.configurable = true, "value" in o && (o.writable = true), Object.defineProperty(e, _toPropertyKey(o.key), o);
29
29
  }
30
30
  }
31
31
  function _createClass(e, r, t) {
32
32
  return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", {
33
- writable: !1
33
+ writable: false
34
34
  }), e;
35
35
  }
36
36
  function _defineProperty(e, r, t) {
37
37
  return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
38
38
  value: t,
39
- enumerable: !0,
40
- configurable: !0,
41
- writable: !0
39
+ enumerable: true,
40
+ configurable: true,
41
+ writable: true
42
42
  }) : e[r] = t, e;
43
43
  }
44
44
  function _getPrototypeOf(t) {
@@ -51,11 +51,11 @@ function _inherits(t, e) {
51
51
  t.prototype = Object.create(e && e.prototype, {
52
52
  constructor: {
53
53
  value: t,
54
- writable: !0,
55
- configurable: !0
54
+ writable: true,
55
+ configurable: true
56
56
  }
57
57
  }), Object.defineProperty(t, "prototype", {
58
- writable: !1
58
+ writable: false
59
59
  }), e && _setPrototypeOf(t, e);
60
60
  }
61
61
  function _isNativeReflectConstruct() {
@@ -85,7 +85,7 @@ function ownKeys(e, r) {
85
85
  function _objectSpread2(e) {
86
86
  for (var r = 1; r < arguments.length; r++) {
87
87
  var t = null != arguments[r] ? arguments[r] : {};
88
- r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {
88
+ r % 2 ? ownKeys(Object(t), true).forEach(function (r) {
89
89
  _defineProperty(e, r, t[r]);
90
90
  }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {
91
91
  Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
@@ -99,8 +99,8 @@ function _objectWithoutProperties(e, t) {
99
99
  r,
100
100
  i = _objectWithoutPropertiesLoose(e, t);
101
101
  if (Object.getOwnPropertySymbols) {
102
- var s = Object.getOwnPropertySymbols(e);
103
- for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
102
+ var n = Object.getOwnPropertySymbols(e);
103
+ for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
104
104
  }
105
105
  return i;
106
106
  }
@@ -108,14 +108,14 @@ function _objectWithoutPropertiesLoose(r, e) {
108
108
  if (null == r) return {};
109
109
  var t = {};
110
110
  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
111
- if (e.includes(n)) continue;
111
+ if (-1 !== e.indexOf(n)) continue;
112
112
  t[n] = r[n];
113
113
  }
114
114
  return t;
115
115
  }
116
116
  function _possibleConstructorReturn(t, e) {
117
117
  if (e && ("object" == typeof e || "function" == typeof e)) return e;
118
- if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined");
118
+ if (undefined !== e) throw new TypeError("Derived constructors may only return object or undefined");
119
119
  return _assertThisInitialized(t);
120
120
  }
121
121
  function _setPrototypeOf(t, e) {
@@ -129,7 +129,7 @@ function _toConsumableArray(r) {
129
129
  function _toPrimitive(t, r) {
130
130
  if ("object" != typeof t || !t) return t;
131
131
  var e = t[Symbol.toPrimitive];
132
- if (void 0 !== e) {
132
+ if (undefined !== e) {
133
133
  var i = e.call(t, r);
134
134
  if ("object" != typeof i) return i;
135
135
  throw new TypeError("@@toPrimitive must return a primitive value.");
@@ -153,7 +153,7 @@ function _unsupportedIterableToArray(r, a) {
153
153
  if (r) {
154
154
  if ("string" == typeof r) return _arrayLikeToArray(r, a);
155
155
  var t = {}.toString.call(r).slice(8, -1);
156
- return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
156
+ return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : undefined;
157
157
  }
158
158
  }
159
159
 
@@ -201,7 +201,7 @@ function getChildElementByType(children, type) {
201
201
  wantedChild = childrenArray[0];
202
202
  } else {
203
203
  wantedChild = childrenArray.find(function (child) {
204
- return child.props[type] !== void 0;
204
+ return child.props[type] !== undefined;
205
205
  });
206
206
  }
207
207
  }
@@ -256,7 +256,7 @@ function getExtendedEditorElement(children, editorCache) {
256
256
  editorCache.set(editorClass, new Map());
257
257
  }
258
258
  var cacheEntry = editorCache.get(editorClass);
259
- cacheEntry.set(editorColumnScope !== null && editorColumnScope !== void 0 ? editorColumnScope : GLOBAL_EDITOR_SCOPE, editorInstance);
259
+ cacheEntry.set(editorColumnScope !== null && editorColumnScope !== undefined ? editorColumnScope : GLOBAL_EDITOR_SCOPE, editorInstance);
260
260
  },
261
261
  editorColumnScope: editorColumnScope,
262
262
  isEditor: true
@@ -282,7 +282,7 @@ function createPortal(rElement, props) {
282
282
  if (!bulkComponentContainer) {
283
283
  bulkComponentContainer = ownerDocument.createDocumentFragment();
284
284
  }
285
- var portalContainer = cachedContainer !== null && cachedContainer !== void 0 ? cachedContainer : ownerDocument.createElement('DIV');
285
+ var portalContainer = cachedContainer !== null && cachedContainer !== undefined ? cachedContainer : ownerDocument.createElement('DIV');
286
286
  bulkComponentContainer.appendChild(portalContainer);
287
287
  var extendedRendererElement = React.cloneElement(rElement, _objectSpread2({
288
288
  key: "".concat(props.row, "-").concat(props.col)
@@ -337,11 +337,11 @@ var SettingsMapper = /*#__PURE__*/function () {
337
337
  function getSettings(properties) {
338
338
  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
339
339
  _ref$prevProps = _ref.prevProps,
340
- prevProps = _ref$prevProps === void 0 ? {} : _ref$prevProps,
340
+ prevProps = _ref$prevProps === undefined ? {} : _ref$prevProps,
341
341
  _ref$isInit = _ref.isInit,
342
- isInit = _ref$isInit === void 0 ? false : _ref$isInit,
342
+ isInit = _ref$isInit === undefined ? false : _ref$isInit,
343
343
  _ref$initOnlySettingK = _ref.initOnlySettingKeys,
344
- initOnlySettingKeys = _ref$initOnlySettingK === void 0 ? [] : _ref$initOnlySettingK;
344
+ initOnlySettingKeys = _ref$initOnlySettingK === undefined ? [] : _ref$initOnlySettingK;
345
345
  var shouldSkipProp = function shouldSkipProp(key) {
346
346
  // Omit settings that can be set only during initialization and are intentionally modified.
347
347
  if (!isInit && initOnlySettingKeys.includes(key)) {
@@ -487,7 +487,7 @@ var RenderersPortalManager = /*#__PURE__*/function (_React$Component) {
487
487
  }]);
488
488
  }(React.Component);
489
489
 
490
- var version="15.0.0";
490
+ var version="15.1.0-next-dfdf994-20250206";
491
491
 
492
492
  function getDefaultExportFromCjs (x) {
493
493
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
@@ -1311,7 +1311,7 @@ function requireFactoryWithTypeCheckers() {
1311
1311
  }
1312
1312
  function createUnionTypeChecker(arrayOfTypeCheckers) {
1313
1313
  if (!Array.isArray(arrayOfTypeCheckers)) {
1314
- process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;
1314
+ process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : undefined;
1315
1315
  return emptyFunctionThatReturnsNull;
1316
1316
  }
1317
1317
  for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
@@ -1873,7 +1873,7 @@ var HotTableClass = /*#__PURE__*/function (_React$Component) {
1873
1873
  var _this$getEditorCache$;
1874
1874
  var editorColumnScope = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : GLOBAL_EDITOR_SCOPE;
1875
1875
  var editorClass = getOriginalEditorClass(editorElement);
1876
- var cachedComponent = (_this$getEditorCache$ = this.getEditorCache().get(editorClass)) === null || _this$getEditorCache$ === void 0 ? void 0 : _this$getEditorCache$.get(editorColumnScope);
1876
+ var cachedComponent = (_this$getEditorCache$ = this.getEditorCache().get(editorClass)) === null || _this$getEditorCache$ === undefined ? undefined : _this$getEditorCache$.get(editorColumnScope);
1877
1877
  return this.makeEditorClass(cachedComponent);
1878
1878
  }
1879
1879
  /**
@@ -1963,7 +1963,7 @@ var HotTableClass = /*#__PURE__*/function (_React$Component) {
1963
1963
  var prevProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1964
1964
  var initOnlySettingKeys = !this._isHotInstanceDestroyed() ?
1965
1965
  // Needed for React's double-rendering.
1966
- ((_this$hotInstance = this.hotInstance) === null || _this$hotInstance === void 0 || (_this$hotInstance = _this$hotInstance.getSettings()) === null || _this$hotInstance === void 0 ? void 0 : _this$hotInstance._initOnlySettings) || [] : [];
1966
+ ((_this$hotInstance = this.hotInstance) === null || _this$hotInstance === undefined || (_this$hotInstance = _this$hotInstance.getSettings()) === null || _this$hotInstance === undefined ? undefined : _this$hotInstance._initOnlySettings) || [] : [];
1967
1967
  var newSettings = SettingsMapper.getSettings(this.props, {
1968
1968
  prevProps: prevProps,
1969
1969
  isInit: init,
@@ -1976,7 +1976,7 @@ var HotTableClass = /*#__PURE__*/function (_React$Component) {
1976
1976
  newSettings.editor = this.getEditorClass(globalEditorNode, GLOBAL_EDITOR_SCOPE);
1977
1977
  } else {
1978
1978
  var _this$props$settings;
1979
- if (this.props.editor || (_this$props$settings = this.props.settings) !== null && _this$props$settings !== void 0 && _this$props$settings.editor) {
1979
+ if (this.props.editor || (_this$props$settings = this.props.settings) !== null && _this$props$settings !== undefined && _this$props$settings.editor) {
1980
1980
  newSettings.editor = this.props.editor || this.props.settings.editor;
1981
1981
  } else {
1982
1982
  newSettings.editor = getEditor('text');
@@ -1987,7 +1987,7 @@ var HotTableClass = /*#__PURE__*/function (_React$Component) {
1987
1987
  this.componentRendererColumns.set('global', true);
1988
1988
  } else {
1989
1989
  var _this$props$settings2;
1990
- if (this.props.renderer || (_this$props$settings2 = this.props.settings) !== null && _this$props$settings2 !== void 0 && _this$props$settings2.renderer) {
1990
+ if (this.props.renderer || (_this$props$settings2 = this.props.settings) !== null && _this$props$settings2 !== undefined && _this$props$settings2.renderer) {
1991
1991
  newSettings.renderer = this.props.renderer || this.props.settings.renderer;
1992
1992
  } else {
1993
1993
  newSettings.renderer = getRenderer('text');
@@ -2004,7 +2004,7 @@ var HotTableClass = /*#__PURE__*/function (_React$Component) {
2004
2004
  key: "displayAutoSizeWarning",
2005
2005
  value: function displayAutoSizeWarning(newGlobalSettings) {
2006
2006
  var _this$hotInstance$get, _this$hotInstance$get2;
2007
- if (this.hotInstance && ((_this$hotInstance$get = this.hotInstance.getPlugin('autoRowSize')) !== null && _this$hotInstance$get !== void 0 && _this$hotInstance$get.enabled || (_this$hotInstance$get2 = this.hotInstance.getPlugin('autoColumnSize')) !== null && _this$hotInstance$get2 !== void 0 && _this$hotInstance$get2.enabled)) {
2007
+ if (this.hotInstance && ((_this$hotInstance$get = this.hotInstance.getPlugin('autoRowSize')) !== null && _this$hotInstance$get !== undefined && _this$hotInstance$get.enabled || (_this$hotInstance$get2 = this.hotInstance.getPlugin('autoColumnSize')) !== null && _this$hotInstance$get2 !== undefined && _this$hotInstance$get2.enabled)) {
2008
2008
  if (this.componentRendererColumns.size > 0) {
2009
2009
  warn(AUTOSIZE_WARNING);
2010
2010
  }
@@ -2166,7 +2166,7 @@ var HotTable = React.forwardRef(function (_ref, ref) {
2166
2166
  var children = _ref.children,
2167
2167
  props = _objectWithoutProperties(_ref, _excluded);
2168
2168
  var generatedId = typeof React.useId === 'function' ? React.useId() : undefined;
2169
- var componentId = (_props$id = props.id) !== null && _props$id !== void 0 ? _props$id : generatedId;
2169
+ var componentId = (_props$id = props.id) !== null && _props$id !== undefined ? _props$id : generatedId;
2170
2170
  return React.createElement(HotTableClass, Object.assign({
2171
2171
  id: componentId
2172
2172
  }, props, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@handsontable/react",
3
- "version": "15.0.0",
3
+ "version": "15.1.0-next-dfdf994-20250206",
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",
@@ -72,7 +72,7 @@
72
72
  "@types/react-dom": "^18.2.0",
73
73
  "@types/react-redux": "^7.1.7",
74
74
  "cross-env": "^7.0.3",
75
- "handsontable": "^15.0.0",
75
+ "handsontable": "15.1.0-next-dfdf994-20250206",
76
76
  "jest": "^29.7.0",
77
77
  "prop-types": "^15.7.2",
78
78
  "react": "^18.2.0",
@@ -87,7 +87,7 @@
87
87
  "uglify-js": "^3.4.9"
88
88
  },
89
89
  "peerDependencies": {
90
- "handsontable": ">=15.0.0"
90
+ "handsontable": "15.1.0-next-dfdf994-20250206"
91
91
  },
92
92
  "scripts": {
93
93
  "build": "npm run clean && npm run build:commonjs && npm run build:es && npm run build:umd && npm run build:min",