@handsontable/react-wrapper 0.0.0-next-5b14d3c-20241107 → 0.0.0-next-4b40c99-20241108
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.
@@ -25,7 +25,7 @@
|
|
25
25
|
* INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
|
26
26
|
* USE OR INABILITY TO USE THIS SOFTWARE.
|
27
27
|
*
|
28
|
-
* Version: 0.0.0-next-
|
28
|
+
* Version: 0.0.0-next-4b40c99-20241108 (built at Fri Nov 08 2024 11:21:28 GMT+0000 (Coordinated Universal Time))
|
29
29
|
*/
|
30
30
|
(function (global, factory) {
|
31
31
|
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react'), require('react-dom'), require('handsontable/base'), require('handsontable/renderers/registry'), require('handsontable/editors/registry')) :
|
@@ -779,7 +779,7 @@ var HotColumn = function HotColumn(props) {
|
|
779
779
|
}, editorPortal);
|
780
780
|
};
|
781
781
|
|
782
|
-
var version="0.0.0-next-
|
782
|
+
var version="0.0.0-next-4b40c99-20241108";
|
783
783
|
|
784
784
|
/**
|
785
785
|
* Component used to manage the renderer component portals.
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"react-handsontable.js","sources":["../src/helpers.tsx","../src/settingsMapper.ts","../src/hotTableContext.tsx","../src/hotColumnContext.tsx","../src/hotEditor.tsx","../src/hotColumn.tsx","../src/renderersPortalManager.tsx","../../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../../node_modules/prop-types/factoryWithThrowingShims.js","../../../node_modules/prop-types/index.js","../src/hotTableInner.tsx","../src/hotTable.tsx"],"sourcesContent":["import React, {\n ComponentType,\n CSSProperties,\n DependencyList,\n EffectCallback,\n ReactNode,\n ReactPortal,\n useEffect,\n} from 'react';\nimport ReactDOM from 'react-dom';\nimport { HotTableProps } from './types';\n\nlet bulkComponentContainer: DocumentFragment | null = 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 * Warning message for the `hot-renderer` obsolete renderer passing method.\n */\nexport const OBSOLETE_HOTRENDERER_WARNING = 'Providing a component-based renderer using `hot-renderer`-annotated component is no longer supported. ' +\n 'Pass your component using `renderer` prop of the `HotTable` or `HotColumn` component instead.';\n\n/**\n * Warning message for the `hot-editor` obsolete editor passing method.\n */\nexport const OBSOLETE_HOTEDITOR_WARNING = 'Providing a component-based editor using `hot-editor`-annotated component is no longer supported. ' +\n 'Pass your component using `editor` prop of the `HotTable` or `HotColumn` component instead.';\n\n/**\n * Warning message for the unexpected children of HotTable component.\n */\nexport const UNEXPECTED_HOTTABLE_CHILDREN_WARNING = 'Unexpected children nodes found in HotTable component. ' +\n 'Only HotColumn components are allowed.';\n\n/**\n * Warning message for the unexpected children of HotColumn component.\n */\nexport const UNEXPECTED_HOTCOLUMN_CHILDREN_WARNING = 'Unexpected children nodes found in HotColumn component. ' +\n 'HotColumn components do not support any children.';\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 * 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: any[]) {\n if (typeof console !== 'undefined') {\n console.warn(...args);\n }\n}\n\n/**\n * Detect if `hot-renderer` or `hot-editor` is defined, and if so, throw an incompatibility warning.\n *\n * @returns {boolean} 'true' if the warning was issued\n */\nexport function displayObsoleteRenderersEditorsWarning(children: ReactNode): boolean {\n if (hasChildElementOfType(children, 'hot-renderer')) {\n warn(OBSOLETE_HOTRENDERER_WARNING);\n return true;\n }\n if (hasChildElementOfType(children, 'hot-editor')) {\n warn(OBSOLETE_HOTEDITOR_WARNING);\n return true;\n }\n\n return false\n}\n\n/**\n * Detect if children of specified type are defined, and if so, throw an incompatibility warning.\n *\n * @param {ReactNode} children Component children nodes\n * @param {ComponentType} Component Component type to check\n * @returns {boolean} 'true' if the warning was issued\n */\nexport function displayChildrenOfTypeWarning(children: ReactNode, Component: ComponentType): boolean {\n const childrenArray: ReactNode[] = React.Children.toArray(children);\n\n if (childrenArray.some((child) => (child as React.ReactElement).type !== Component)) {\n warn(UNEXPECTED_HOTTABLE_CHILDREN_WARNING);\n return true;\n }\n\n return false\n}\n\n/**\n * Detect if children is defined, and if so, throw an incompatibility warning.\n *\n * @param {ReactNode} children Component children nodes\n * @returns {boolean} 'true' if the warning was issued\n */\nexport function displayAnyChildrenWarning(children: ReactNode): boolean {\n const childrenArray: ReactNode[] = React.Children.toArray(children);\n\n if (childrenArray.length) {\n warn(UNEXPECTED_HOTCOLUMN_CHILDREN_WARNING);\n return true;\n }\n\n return false\n}\n\n/**\n * Check the existence of elements of the provided `type` from the `HotColumn` component's children.\n *\n * @param {ReactNode} children HotTable children array.\n * @param {String} type Either `'hot-renderer'` or `'hot-editor'`.\n * @returns {boolean} `true` if the child of that type was found, `false` otherwise.\n */\nfunction hasChildElementOfType(children: ReactNode, type: 'hot-renderer' | 'hot-editor'): boolean {\n const childrenArray: ReactNode[] = React.Children.toArray(children);\n\n return childrenArray.some((child) => {\n return (child as React.ReactElement).props[type] !== void 0;\n });\n}\n\n/**\n * Create an editor portal.\n *\n * @param {Document} doc Document to be used.\n * @param {ComponentType} Editor Editor component or render function.\n * @returns {ReactPortal} The portal for the editor.\n */\nexport function createEditorPortal(doc: Document | null, Editor: HotTableProps['editor'] | undefined): ReactPortal | null {\n if (!doc || !Editor) {\n return null;\n }\n\n const editorElement = <Editor />;\n const containerProps = getContainerAttributesProps({}, 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 * Render a cell component to an external DOM node.\n *\n * @param {React.ReactElement} rElement React element to be used as a base for the component.\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: ReactPortal, portalContainer: HTMLElement}} An object containing the portal and its container.\n */\nexport function createPortal(rElement: React.ReactElement, ownerDocument: Document | null = document, portalKey: string, cachedContainer?: HTMLElement): {\n portal: 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 return {\n portal: ReactDOM.createPortal(rElement, 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 {HotTableProps} 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: HotTableProps, randomizeId: boolean = true): {id?: string, className: string, style: CSSProperties} {\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\n/**\n * A variant of useEffect hook that does not trigger on initial mount, only updates\n *\n * @param effect Effect function\n * @param deps Effect dependencies\n */\nexport function useUpdateEffect(effect: EffectCallback, deps?: DependencyList): void {\n const notInitialRender = React.useRef(false);\n\n useEffect(() => {\n if (notInitialRender.current) {\n return effect();\n } else {\n notInitialRender.current = true;\n }\n }, deps);\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 for (const key in properties) {\n if (\n key !== 'children' &&\n !shouldSkipProp(key as keyof Handsontable.GridSettings) &&\n properties.hasOwnProperty(key)\n ) {\n (newSettings as any)[key] = properties[key as keyof HotTableProps];\n }\n }\n\n return newSettings;\n }\n}\n","import Handsontable from 'handsontable/base';\nimport React, {\n ComponentType,\n FC,\n PropsWithChildren,\n ReactPortal,\n createContext,\n useCallback,\n useRef,\n useMemo,\n useContext,\n} from 'react';\nimport { ScopeIdentifier, HotRendererProps } from './types'\nimport { createPortal } from './helpers'\nimport { RenderersPortalManagerRef } from './renderersPortalManager'\n\nexport interface HotTableContextImpl {\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 readonly componentRendererColumns: Map<ScopeIdentifier, boolean>;\n\n /**\n * Array of object containing the column settings.\n */\n readonly columnsSettings: Handsontable.ColumnSettings[];\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 readonly emitColumnSettings: (columnSettings: Handsontable.ColumnSettings, columnIndex: number) => void;\n\n /**\n * Return a renderer wrapper function for the provided renderer component.\n *\n * @param {ComponentType<HotRendererProps>} Renderer React renderer component.\n * @returns {Handsontable.renderers.BaseRenderer} The Handsontable rendering function.\n */\n readonly getRendererWrapper: (Renderer: ComponentType<HotRendererProps>) => typeof Handsontable.renderers.BaseRenderer;\n\n /**\n * Clears portals cache.\n */\n readonly clearPortalCache: () => void;\n\n /**\n * Clears rendered cells cache.\n */\n readonly clearRenderedCellCache: () => void;\n\n /**\n * Set the renderers portal manager dispatch function.\n *\n * @param {RenderersPortalManagerRef} pm The PortalManager dispatch function.\n */\n readonly setRenderersPortalManagerRef: (pm: RenderersPortalManagerRef) => void;\n\n /**\n * Puts cell portals into portal manager and purges portals cache.\n */\n readonly pushCellPortalsIntoPortalManager: () => void;\n}\n\nconst HotTableContext = createContext<HotTableContextImpl | undefined>(undefined);\n\nconst HotTableContextProvider: FC<PropsWithChildren> = ({ children }) => {\n const columnsSettings = useRef<Handsontable.ColumnSettings[]>([]);\n\n const setHotColumnSettings = useCallback((columnSettings: Handsontable.ColumnSettings, columnIndex: number) => {\n columnsSettings.current[columnIndex] = columnSettings;\n }, [])\n\n const componentRendererColumns = useRef<Map<number | 'global', boolean>>(new Map());\n const renderedCellCache = useRef<Map<string, HTMLTableCellElement>>(new Map());\n const clearRenderedCellCache = useCallback(() => renderedCellCache.current.clear(), []);\n const portalCache = useRef<Map<string, ReactPortal>>(new Map());\n const clearPortalCache = useCallback(() => portalCache.current.clear(), []);\n const portalContainerCache = useRef<Map<string, HTMLElement>>(new Map());\n\n const getRendererWrapper = useCallback((Renderer: ComponentType<HotRendererProps>): typeof Handsontable.renderers.BaseRenderer => {\n return function __internalRenderer(instance, TD, row, col, prop, value, cellProperties) {\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.current.has(key)) {\n TD.innerHTML = renderedCellCache.current.get(key)!.innerHTML;\n }\n\n if (TD && !TD.getAttribute('ghost-table')) {\n const cachedPortal = portalCache.current.get(portalKey);\n const cachedPortalContainer = portalContainerCache.current.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 rendererElement = (\n <Renderer instance={instance}\n TD={TD}\n row={row}\n col={col}\n prop={prop}\n value={value}\n cellProperties={cellProperties}/>\n );\n\n const {portal, portalContainer} = createPortal(rendererElement, TD.ownerDocument, portalKey, cachedPortalContainer);\n\n portalContainerCache.current.set(portalContainerKey, portalContainer);\n TD.appendChild(portalContainer);\n\n portalCache.current.set(portalKey, portal);\n }\n }\n\n renderedCellCache.current.set(`${row}-${col}`, TD);\n return TD;\n };\n }, []);\n\n const renderersPortalManager = useRef<RenderersPortalManagerRef>(() => undefined);\n\n const setRenderersPortalManagerRef = useCallback((pmComponent: RenderersPortalManagerRef) => {\n renderersPortalManager.current = pmComponent;\n }, []);\n\n const pushCellPortalsIntoPortalManager = useCallback(() => {\n renderersPortalManager.current!([...portalCache.current.values()]);\n }, []);\n\n const contextImpl: HotTableContextImpl = useMemo(() => ({\n componentRendererColumns: componentRendererColumns.current,\n columnsSettings: columnsSettings.current,\n emitColumnSettings: setHotColumnSettings,\n getRendererWrapper,\n clearPortalCache,\n clearRenderedCellCache,\n setRenderersPortalManagerRef,\n pushCellPortalsIntoPortalManager\n }), [setHotColumnSettings, getRendererWrapper, clearRenderedCellCache, setRenderersPortalManagerRef, pushCellPortalsIntoPortalManager]);\n\n return (\n <HotTableContext.Provider value={contextImpl}>{children}</HotTableContext.Provider>\n );\n};\n\n/**\n * Exposes the table context object to components\n *\n * @returns HotTableContext\n */\nfunction useHotTableContext(): HotTableContextImpl {\n return useContext(HotTableContext)!;\n}\n\nexport { HotTableContextProvider, useHotTableContext };\n","import React, {\n FC,\n PropsWithChildren,\n createContext,\n useContext,\n useMemo,\n} from 'react';\n\nexport interface HotColumnContextImpl {\n /**\n * Column index within a HotTable.\n */\n readonly columnIndex: number;\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 readonly getOwnerDocument: () => Document | null;\n}\n\nconst HotColumnContext = createContext<HotColumnContextImpl | undefined>(undefined);\n\nconst HotColumnContextProvider: FC<PropsWithChildren<HotColumnContextImpl>> = ({ columnIndex, getOwnerDocument, children }) => {\n\n const contextImpl: HotColumnContextImpl = useMemo(() => ({\n columnIndex,\n getOwnerDocument\n }), [columnIndex, getOwnerDocument]);\n\n return (\n <HotColumnContext.Provider value={contextImpl}>{children}</HotColumnContext.Provider>\n );\n};\n\nconst useHotColumnContext = () => useContext(HotColumnContext)!;\n\nexport { useHotColumnContext, HotColumnContextProvider };\n","import React, {\n DependencyList,\n FC,\n MutableRefObject,\n ReactNode,\n Ref,\n RefObject,\n createContext,\n useContext,\n useDeferredValue,\n useImperativeHandle,\n useMemo,\n useState,\n} from 'react';\nimport Handsontable from 'handsontable/base';\nimport { HotEditorHooks, UseHotEditorImpl } from './types';\n\ntype HookPropName = keyof Handsontable.editors.BaseEditor | 'constructor';\n\nconst AbstractMethods: (keyof Handsontable.editors.BaseEditor)[] = [\n 'close',\n 'focus',\n 'open',\n];\nconst ExcludedMethods: (keyof Handsontable.editors.BaseEditor)[] = [\n 'getValue',\n 'setValue',\n];\n\nconst MethodsMap: Partial<\n Record<keyof Handsontable.editors.BaseEditor, keyof HotEditorHooks>\n> = {\n open: 'onOpen',\n close: 'onClose',\n prepare: 'onPrepare',\n focus: 'onFocus',\n};\n\n/**\n * Create a class to be passed to the Handsontable's settings.\n *\n * @param {RefObject<HotEditorHooks>} hooksRef Reference to component-based editor overridden hooks object.\n * @param {RefObject} instanceRef Reference to Handsontable-native custom editor class instance.\n * @returns {Function} A class to be passed to the Handsontable editor settings.\n */\nexport function makeEditorClass(\n hooksRef: MutableRefObject<HotEditorHooks | null>,\n instanceRef: MutableRefObject<Handsontable.editors.BaseEditor | null>\n): typeof Handsontable.editors.BaseEditor {\n return class CustomEditor\n extends Handsontable.editors.BaseEditor\n implements Handsontable.editors.BaseEditor\n {\n private value: any;\n\n constructor(hotInstance: Handsontable.Core) {\n super(hotInstance);\n instanceRef.current = this;\n\n (\n Object.getOwnPropertyNames(\n Handsontable.editors.BaseEditor.prototype\n ) as HookPropName[]\n ).forEach((propName) => {\n if (propName === 'constructor' || ExcludedMethods.includes(propName)) {\n return;\n }\n\n const baseMethod = Handsontable.editors.BaseEditor.prototype[propName];\n (CustomEditor.prototype as any)[propName] = function (\n this: CustomEditor,\n ...args: any[]\n ) {\n let result;\n\n if (!AbstractMethods.includes(propName)) {\n result = baseMethod.call(this, ...args); // call super\n }\n\n if (\n MethodsMap[propName] &&\n hooksRef.current?.[MethodsMap[propName]!]\n ) {\n result = (hooksRef.current[MethodsMap[propName]!] as any).call(\n this,\n ...args\n );\n }\n\n return result;\n }.bind(this);\n });\n }\n\n focus() {}\n\n getValue() {\n return this.value;\n }\n\n setValue(newValue: any) {\n this.value = newValue;\n }\n\n open() {}\n\n close() {}\n };\n}\n\ninterface EditorContextType {\n hooksRef: Ref<HotEditorHooks>;\n hotCustomEditorInstanceRef: RefObject<Handsontable.editors.BaseEditor>;\n}\n\n/**\n * Context to provide Handsontable-native custom editor class instance to overridden hooks object.\n */\nconst EditorContext = createContext<EditorContextType | undefined>(\n undefined\n);\n\ninterface EditorContextProviderProps {\n hooksRef: Ref<HotEditorHooks>;\n hotCustomEditorInstanceRef: RefObject<Handsontable.editors.BaseEditor>;\n children: ReactNode;\n}\n\n/**\n * Provider of the context that exposes Handsontable-native editor instance and passes hooks object\n * for custom editor components.\n *\n * @param {Ref} hooksRef Reference for component-based editor overridden hooks object.\n * @param {RefObject} hotCustomEditorInstanceRef Reference to Handsontable-native editor instance.\n */\nexport const EditorContextProvider: FC<EditorContextProviderProps> = ({\n hooksRef,\n hotCustomEditorInstanceRef,\n children,\n}) => {\n return (\n <EditorContext.Provider value={{ hooksRef, hotCustomEditorInstanceRef }}>\n {children}\n </EditorContext.Provider>\n );\n};\n\n/**\n * Hook that allows encapsulating custom behaviours of component-based editor by customizing passed ref with overridden hooks object.\n *\n * @param {HotEditorHooks} overriddenHooks Overrides specific for the custom editor.\n * @param {DependencyList} deps Overridden hooks object React dependency list.\n * @returns {UseHotEditorImpl} Editor API methods\n */\nexport function useHotEditor<T>(\n overriddenHooks?: HotEditorHooks,\n deps?: DependencyList\n): UseHotEditorImpl<T> {\n const { hooksRef, hotCustomEditorInstanceRef } =\n useContext(EditorContext)!;\n const [rerenderTrigger, setRerenderTrigger] = useState(0);\n const [editorValue, setEditorValue] = useState<T>();\n\n // return a deferred value that allows for optimizing performance by delaying the update of a value until the next render.\n const deferredValue = useDeferredValue(editorValue);\n\n useImperativeHandle(\n hooksRef,\n () => ({\n ...overriddenHooks,\n onOpen() {\n setEditorValue(hotCustomEditorInstanceRef.current?.getValue());\n overriddenHooks?.onOpen?.();\n setRerenderTrigger((t) => t + 1);\n },\n }),\n deps\n );\n\n return useMemo(\n () => ({\n get value(): T | undefined {\n return deferredValue;\n },\n setValue(newValue) {\n setEditorValue(newValue);\n hotCustomEditorInstanceRef.current?.setValue(newValue);\n },\n get isOpen() {\n return hotCustomEditorInstanceRef.current?.isOpened() ?? false;\n },\n finishEditing() {\n hotCustomEditorInstanceRef.current?.finishEditing();\n },\n get row() {\n return hotCustomEditorInstanceRef.current?.row;\n },\n get col() {\n return hotCustomEditorInstanceRef.current?.col;\n },\n }),\n [rerenderTrigger, hotCustomEditorInstanceRef, deferredValue]\n );\n}\n","import React, {\n FC,\n ReactElement,\n useEffect,\n useRef,\n} from 'react';\nimport { HotTableProps, HotColumnProps, HotEditorHooks } from './types';\nimport {\n createEditorPortal,\n displayAnyChildrenWarning,\n displayObsoleteRenderersEditorsWarning\n} from './helpers';\nimport { SettingsMapper } from './settingsMapper';\nimport Handsontable from 'handsontable/base';\nimport { useHotTableContext } from './hotTableContext'\nimport { useHotColumnContext } from './hotColumnContext'\nimport { EditorContextProvider, makeEditorClass } from './hotEditor';\n\nconst isHotColumn = (childNode: any): childNode is ReactElement => childNode.type === HotColumn;\n\nconst internalProps = ['_columnIndex', '_getOwnerDocument', 'children'];\n\nconst HotColumn: FC<HotColumnProps> = (props) => {\n const { componentRendererColumns, emitColumnSettings, getRendererWrapper } = useHotTableContext();\n const { columnIndex, getOwnerDocument } = useHotColumnContext();\n\n /**\n * Reference to component-based editor overridden hooks object.\n */\n const localEditorHooksRef = useRef<HotEditorHooks | null>(null);\n\n /**\n * Reference to HOT-native custom editor class instance.\n */\n const localEditorClassInstance = useRef<Handsontable.editors.BaseEditor | null>(null);\n\n /**\n * Logic performed after mounting & updating of the HotColumn component.\n */\n useEffect(() => {\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 const getSettingsProps = (): HotTableProps => {\n return Object.keys(props)\n .filter(key => !internalProps.includes(key))\n .reduce<HotTableProps>((obj, key) => {\n (obj as any)[key] = props[key];\n return obj;\n }, {});\n };\n\n /**\n * Create the column settings based on the data provided to the `HotColumn` component and its child components.\n */\n const createColumnSettings = (): Handsontable.ColumnSettings => {\n const columnSettings = SettingsMapper.getSettings(getSettingsProps()) as unknown as Handsontable.ColumnSettings;\n\n if (props.renderer) {\n columnSettings.renderer = getRendererWrapper(props.renderer);\n componentRendererColumns.set(columnIndex, true);\n } else if (props.hotRenderer) {\n columnSettings.renderer = props.hotRenderer;\n }\n\n if (props.editor) {\n columnSettings.editor = makeEditorClass(localEditorHooksRef, localEditorClassInstance);\n } else if (props.hotEditor) {\n columnSettings.editor = props.hotEditor;\n }\n\n return columnSettings\n };\n\n const columnSettings = createColumnSettings();\n emitColumnSettings(columnSettings, columnIndex);\n\n if (!displayObsoleteRenderersEditorsWarning(props.children)) {\n displayAnyChildrenWarning(props.children);\n }\n });\n\n const editorPortal = createEditorPortal(getOwnerDocument(), props.editor);\n\n /**\n * Render the portals of the editors, if there are any.\n *\n * @returns {ReactElement}\n */\n return (\n <EditorContextProvider hooksRef={localEditorHooksRef}\n hotCustomEditorInstanceRef={localEditorClassInstance}>\n {editorPortal}\n </EditorContextProvider>\n )\n}\n\nexport { HotColumn, isHotColumn };\n","import React, {\n Dispatch,\n ReactPortal,\n forwardRef,\n Fragment,\n useImperativeHandle,\n useState,\n} from 'react';\n\nexport type RenderersPortalManagerRef = Dispatch<ReactPortal[]>;\n\n/**\n * Component used to manage the renderer component portals.\n */\nexport const RenderersPortalManager = forwardRef<RenderersPortalManagerRef, {}>((_, ref) => {\n const [portals, setPortals] = useState<ReactPortal[]>([]);\n useImperativeHandle(ref, () => setPortals);\n\n return (\n <Fragment>\n {portals}\n </Fragment>\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\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\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\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","import React, {\n Children,\n Fragment,\n useEffect,\n useCallback,\n useImperativeHandle,\n useRef,\n forwardRef\n} from 'react';\nimport Handsontable from 'handsontable/base';\nimport { SettingsMapper } from './settingsMapper';\nimport { RenderersPortalManager } from './renderersPortalManager';\nimport { HotColumn, isHotColumn } from './hotColumn';\nimport { HotEditorHooks, HotTableProps, HotTableRef } from './types';\nimport {\n HOT_DESTROYED_WARNING,\n AUTOSIZE_WARNING,\n createEditorPortal,\n getContainerAttributesProps,\n isCSR,\n warn,\n displayObsoleteRenderersEditorsWarning,\n useUpdateEffect,\n displayChildrenOfTypeWarning\n} from './helpers';\nimport PropTypes from 'prop-types';\nimport { getRenderer } from 'handsontable/renderers/registry';\nimport { getEditor } from 'handsontable/editors/registry';\nimport { useHotTableContext } from './hotTableContext'\nimport { HotColumnContextProvider } from './hotColumnContext'\nimport { EditorContextProvider, makeEditorClass } from './hotEditor';\n\nconst HotTableInner = forwardRef<\n HotTableRef,\n HotTableProps\n>((props, ref) => {\n\n /**\n * Reference to the Handsontable instance.\n */\n const __hotInstance = useRef<Handsontable | null>(null);\n\n /**\n * Reference to the main Handsontable DOM element.\n */\n const hotElementRef = useRef<HTMLDivElement>(null);\n\n /**\n * Reference to component-based editor overridden hooks object.\n */\n const globalEditorHooksRef = useRef<HotEditorHooks | null>(null);\n\n /**\n * Reference to HOT-native custom editor class instance.\n */\n const globalEditorClassInstance = useRef<Handsontable.editors.BaseEditor | null>(null);\n\n /**\n * Reference to the previous props object.\n */\n const prevProps = useRef<HotTableProps>();\n\n /**\n * HotTable context exposing helper functions.\n */\n const context = useHotTableContext();\n\n /**\n * Getter for the property storing the Handsontable instance.\n */\n const getHotInstance = useCallback((): Handsontable | null => {\n if (!__hotInstance.current || !__hotInstance.current.isDestroyed) {\n\n // Will return the Handsontable instance or `null` if it's not yet been created.\n return __hotInstance.current;\n\n } else {\n console.warn(HOT_DESTROYED_WARNING);\n\n return null;\n }\n }, [__hotInstance]);\n\n const isHotInstanceDestroyed = useCallback((): boolean => {\n return !__hotInstance.current || __hotInstance.current.isDestroyed;\n }, [__hotInstance]);\n\n /**\n * Clear both the editor and the renderer cache.\n */\n const clearCache = useCallback((): void => {\n context.clearRenderedCellCache();\n context.componentRendererColumns.clear();\n }, [context]);\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 const getOwnerDocument = useCallback((): Document | null => {\n if (isCSR()) {\n return hotElementRef.current ? hotElementRef.current.ownerDocument : document;\n }\n\n return null;\n }, [hotElementRef]);\n\n /**\n * Create a new settings object containing the column settings and global editors and renderers.\n *\n * @returns {Handsontable.GridSettings} New global set of settings for Handsontable.\n */\n const createNewGlobalSettings = (init: boolean = false, prevProps: HotTableProps = {}): Handsontable.GridSettings => {\n const initOnlySettingKeys = !isHotInstanceDestroyed() ? // Needed for React's double-rendering.\n ((getHotInstance()?.getSettings() as any)?._initOnlySettings || []) :\n [];\n const newSettings = SettingsMapper.getSettings(\n props, {\n prevProps,\n isInit: init,\n initOnlySettingKeys\n }\n );\n\n newSettings.columns = context.columnsSettings.length ? context.columnsSettings : newSettings.columns;\n\n if (props.renderer) {\n newSettings.renderer = context.getRendererWrapper(props.renderer);\n context.componentRendererColumns.set('global', true);\n } else {\n newSettings.renderer = props.hotRenderer || getRenderer('text');\n }\n\n if (props.editor) {\n newSettings.editor = makeEditorClass(globalEditorHooksRef, globalEditorClassInstance);\n } else {\n newSettings.editor = props.hotEditor || getEditor('text');\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 const displayAutoSizeWarning = (hotInstance: Handsontable | null): void => {\n if (\n hotInstance &&\n (\n hotInstance.getPlugin('autoRowSize')?.enabled ||\n hotInstance.getPlugin('autoColumnSize')?.enabled\n )\n ) {\n if (context.componentRendererColumns.size > 0) {\n warn(AUTOSIZE_WARNING);\n }\n }\n };\n\n /**\n * Initialize Handsontable after the component has mounted.\n */\n useEffect(() => {\n const newGlobalSettings = createNewGlobalSettings(true);\n\n // Update prevProps with the current props\n prevProps.current = props;\n\n __hotInstance.current = new Handsontable.Core(hotElementRef.current!, newGlobalSettings);\n\n /**\n * Handsontable's `beforeViewRender` hook callback.\n */\n __hotInstance.current.addHook('beforeViewRender', () => {\n context.clearPortalCache();\n context.clearRenderedCellCache();\n });\n\n /**\n * Handsontable's `afterViewRender` hook callback.\n */\n __hotInstance.current.addHook('afterViewRender', () => {\n context.pushCellPortalsIntoPortalManager();\n });\n\n __hotInstance.current.init();\n\n displayAutoSizeWarning(__hotInstance.current);\n\n if (!displayObsoleteRenderersEditorsWarning(props.children)) {\n displayChildrenOfTypeWarning(props.children, HotColumn);\n }\n\n /**\n * Destroy the Handsontable instance when the parent component unmounts.\n */\n return () => {\n clearCache();\n getHotInstance()?.destroy();\n }\n }, []);\n\n /**\n * Logic performed after the component update.\n */\n useUpdateEffect((): void => {\n clearCache();\n\n const hotInstance = getHotInstance();\n\n const newGlobalSettings = createNewGlobalSettings(false, prevProps.current);\n\n // Update prevProps with the current props\n prevProps.current = props;\n\n hotInstance?.updateSettings(newGlobalSettings, false);\n\n displayAutoSizeWarning(hotInstance);\n displayObsoleteRenderersEditorsWarning(props.children);\n });\n\n /**\n * Interface exposed to parent components by HotTable instance via React ref\n */\n useImperativeHandle(ref, () => ({\n get hotElementRef() {\n return hotElementRef.current!;\n },\n get hotInstance() {\n return getHotInstance();\n }\n }));\n\n /**\n * Render the component.\n */\n const hotColumnWrapped = Children.toArray(props.children)\n .filter(isHotColumn)\n .map((childNode, columnIndex) => (\n <HotColumnContextProvider columnIndex={columnIndex}\n getOwnerDocument={getOwnerDocument}\n key={columnIndex}>\n {childNode}\n </HotColumnContextProvider>\n ));\n\n const containerProps = getContainerAttributesProps(props);\n const editorPortal = createEditorPortal(getOwnerDocument(), props.editor);\n\n return (\n <Fragment>\n <div ref={hotElementRef} {...containerProps}>\n {hotColumnWrapped}\n </div>\n <RenderersPortalManager ref={context.setRenderersPortalManagerRef} />\n <EditorContextProvider hooksRef={globalEditorHooksRef}\n hotCustomEditorInstanceRef={globalEditorClassInstance}>\n {editorPortal}\n </EditorContextProvider>\n </Fragment>\n );\n});\n\n/**\n * Prop types to be checked at runtime.\n */\nHotTableInner.propTypes = {\n style: PropTypes.object,\n id: PropTypes.string,\n className: PropTypes.string\n};\n\nexport default HotTableInner;\nexport { HotTableInner };\n","import React, {\n ForwardRefExoticComponent,\n RefAttributes,\n useId,\n forwardRef,\n} from 'react';\nimport * as packageJson from '../package.json';\nimport { HotTableInner } from './hotTableInner';\nimport { HotTableProps, HotTableRef } from './types';\nimport { HotTableContextProvider } from './hotTableContext';\n\ninterface Version {\n version?: string;\n}\n\ntype HotTable = ForwardRefExoticComponent<HotTableProps & RefAttributes<HotTableRef>> & Version;\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 */\nconst HotTable: HotTable = forwardRef<HotTableRef, HotTableProps>(({ children, ...props }, ref) => {\n const componentId = props.id ?? useId();\n\n return (\n <HotTableContextProvider>\n <HotTableInner id={componentId} {...props} ref={ref}>\n {children}\n </HotTableInner>\n </HotTableContextProvider>\n );\n})\n\n/**\n * Package version.\n *\n * @returns The version number of the package.\n */\nHotTable.version = (packageJson as any).version;\n\nexport default HotTable;\nexport { HotTable };\n"],"names":["bulkComponentContainer","AUTOSIZE_WARNING","OBSOLETE_HOTRENDERER_WARNING","OBSOLETE_HOTEDITOR_WARNING","UNEXPECTED_HOTTABLE_CHILDREN_WARNING","UNEXPECTED_HOTCOLUMN_CHILDREN_WARNING","HOT_DESTROYED_WARNING","DEFAULT_CLASSNAME","warn","console","_console","apply","arguments","displayObsoleteRenderersEditorsWarning","children","hasChildElementOfType","displayChildrenOfTypeWarning","Component","childrenArray","React","Children","toArray","some","child","type","displayAnyChildrenWarning","length","props","createEditorPortal","doc","Editor","editorElement","createElement","containerProps","getContainerAttributesProps","className","concat","ReactDOM","createPortal","body","rElement","ownerDocument","document","portalKey","undefined","cachedContainer","createDocumentFragment","portalContainer","appendChild","portal","randomizeId","id","Math","random","toString","substring","style","isCSR","window","useUpdateEffect","effect","deps","notInitialRender","useRef","useEffect","current","SettingsMapper","_classCallCheck","_createClass","key","value","getSettings","properties","_ref","_ref$prevProps","prevProps","_ref$isInit","isInit","_ref$initOnlySettingK","initOnlySettingKeys","shouldSkipProp","includes","newSettings","hasOwnProperty","HotTableContext","createContext","HotTableContextProvider","columnsSettings","setHotColumnSettings","useCallback","columnSettings","columnIndex","componentRendererColumns","Map","renderedCellCache","clearRenderedCellCache","clear","portalCache","clearPortalCache","portalContainerCache","getRendererWrapper","Renderer","__internalRenderer","instance","TD","row","col","prop","cellProperties","instanceGuid","guid","portalContainerKey","has","innerHTML","get","getAttribute","cachedPortal","cachedPortalContainer","firstChild","removeChild","rendererElement","_createPortal","set","renderersPortalManager","setRenderersPortalManagerRef","pmComponent","pushCellPortalsIntoPortalManager","_toConsumableArray","values","contextImpl","useMemo","emitColumnSettings","Provider","useHotTableContext","useContext","HotColumnContext","HotColumnContextProvider","getOwnerDocument","useHotColumnContext","AbstractMethods","ExcludedMethods","MethodsMap","open","close","prepare","focus","makeEditorClass","hooksRef","instanceRef","_Handsontable$editors","CustomEditor","hotInstance","_this","_callSuper","Object","getOwnPropertyNames","Handsontable","editors","BaseEditor","prototype","forEach","propName","baseMethod","_hooksRef$current","result","_len","args","Array","_key","call","_hooksRef$current$Met","bind","_inherits","getValue","setValue","newValue","EditorContext","EditorContextProvider","hotCustomEditorInstanceRef","useHotEditor","overriddenHooks","_useContext","_useState","useState","_useState2","_slicedToArray","rerenderTrigger","setRerenderTrigger","_useState3","_useState4","editorValue","setEditorValue","deferredValue","useDeferredValue","useImperativeHandle","_objectSpread","onOpen","_hotCustomEditorInsta","_overriddenHooks$onOp","t","_hotCustomEditorInsta2","isOpen","_hotCustomEditorInsta3","_hotCustomEditorInsta4","isOpened","finishEditing","_hotCustomEditorInsta5","_hotCustomEditorInsta6","_hotCustomEditorInsta7","isHotColumn","childNode","HotColumn","internalProps","_useHotTableContext","_useHotColumnContext","localEditorHooksRef","localEditorClassInstance","getSettingsProps","keys","filter","reduce","obj","createColumnSettings","renderer","hotRenderer","editor","hotEditor","editorPortal","RenderersPortalManager","forwardRef","_","ref","portals","setPortals","Fragment","ReactPropTypesSecret","ReactPropTypesSecret_1","require$$0","emptyFunction","emptyFunctionWithReset","resetWarningCache","factoryWithThrowingShims","shim","componentName","location","propFullName","secret","err","Error","name","isRequired","getShim","ReactPropTypes","array","bigint","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","propTypesModule","exports","require$$2","HotTableInner","__hotInstance","hotElementRef","globalEditorHooksRef","globalEditorClassInstance","context","getHotInstance","isDestroyed","isHotInstanceDestroyed","clearCache","createNewGlobalSettings","_getHotInstance","init","_initOnlySettings","columns","getRenderer","getEditor","displayAutoSizeWarning","_hotInstance$getPlugi","_hotInstance$getPlugi2","getPlugin","enabled","size","newGlobalSettings","Core","addHook","_getHotInstance2","destroy","updateSettings","hotColumnWrapped","map","assign","propTypes","HotTable","_props$id","_objectWithoutProperties","_excluded","componentId","useId","version","packageJson"],"mappings":"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","x_google_ignoreList":[7,8,9]}
|
1
|
+
{"version":3,"file":"react-handsontable.js","sources":["../src/helpers.tsx","../src/settingsMapper.ts","../src/hotTableContext.tsx","../src/hotColumnContext.tsx","../src/hotEditor.tsx","../src/hotColumn.tsx","../src/renderersPortalManager.tsx","../../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../../node_modules/prop-types/factoryWithThrowingShims.js","../../../node_modules/prop-types/index.js","../src/hotTableInner.tsx","../src/hotTable.tsx"],"sourcesContent":["import React, {\n ComponentType,\n CSSProperties,\n DependencyList,\n EffectCallback,\n ReactNode,\n ReactPortal,\n useEffect,\n} from 'react';\nimport ReactDOM from 'react-dom';\nimport { HotTableProps } from './types';\n\nlet bulkComponentContainer: DocumentFragment | null = 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 * Warning message for the `hot-renderer` obsolete renderer passing method.\n */\nexport const OBSOLETE_HOTRENDERER_WARNING = 'Providing a component-based renderer using `hot-renderer`-annotated component is no longer supported. ' +\n 'Pass your component using `renderer` prop of the `HotTable` or `HotColumn` component instead.';\n\n/**\n * Warning message for the `hot-editor` obsolete editor passing method.\n */\nexport const OBSOLETE_HOTEDITOR_WARNING = 'Providing a component-based editor using `hot-editor`-annotated component is no longer supported. ' +\n 'Pass your component using `editor` prop of the `HotTable` or `HotColumn` component instead.';\n\n/**\n * Warning message for the unexpected children of HotTable component.\n */\nexport const UNEXPECTED_HOTTABLE_CHILDREN_WARNING = 'Unexpected children nodes found in HotTable component. ' +\n 'Only HotColumn components are allowed.';\n\n/**\n * Warning message for the unexpected children of HotColumn component.\n */\nexport const UNEXPECTED_HOTCOLUMN_CHILDREN_WARNING = 'Unexpected children nodes found in HotColumn component. ' +\n 'HotColumn components do not support any children.';\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 * 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: any[]) {\n if (typeof console !== 'undefined') {\n console.warn(...args);\n }\n}\n\n/**\n * Detect if `hot-renderer` or `hot-editor` is defined, and if so, throw an incompatibility warning.\n *\n * @returns {boolean} 'true' if the warning was issued\n */\nexport function displayObsoleteRenderersEditorsWarning(children: ReactNode): boolean {\n if (hasChildElementOfType(children, 'hot-renderer')) {\n warn(OBSOLETE_HOTRENDERER_WARNING);\n return true;\n }\n if (hasChildElementOfType(children, 'hot-editor')) {\n warn(OBSOLETE_HOTEDITOR_WARNING);\n return true;\n }\n\n return false\n}\n\n/**\n * Detect if children of specified type are defined, and if so, throw an incompatibility warning.\n *\n * @param {ReactNode} children Component children nodes\n * @param {ComponentType} Component Component type to check\n * @returns {boolean} 'true' if the warning was issued\n */\nexport function displayChildrenOfTypeWarning(children: ReactNode, Component: ComponentType): boolean {\n const childrenArray: ReactNode[] = React.Children.toArray(children);\n\n if (childrenArray.some((child) => (child as React.ReactElement).type !== Component)) {\n warn(UNEXPECTED_HOTTABLE_CHILDREN_WARNING);\n return true;\n }\n\n return false\n}\n\n/**\n * Detect if children is defined, and if so, throw an incompatibility warning.\n *\n * @param {ReactNode} children Component children nodes\n * @returns {boolean} 'true' if the warning was issued\n */\nexport function displayAnyChildrenWarning(children: ReactNode): boolean {\n const childrenArray: ReactNode[] = React.Children.toArray(children);\n\n if (childrenArray.length) {\n warn(UNEXPECTED_HOTCOLUMN_CHILDREN_WARNING);\n return true;\n }\n\n return false\n}\n\n/**\n * Check the existence of elements of the provided `type` from the `HotColumn` component's children.\n *\n * @param {ReactNode} children HotTable children array.\n * @param {String} type Either `'hot-renderer'` or `'hot-editor'`.\n * @returns {boolean} `true` if the child of that type was found, `false` otherwise.\n */\nfunction hasChildElementOfType(children: ReactNode, type: 'hot-renderer' | 'hot-editor'): boolean {\n const childrenArray: ReactNode[] = React.Children.toArray(children);\n\n return childrenArray.some((child) => {\n return (child as React.ReactElement).props[type] !== void 0;\n });\n}\n\n/**\n * Create an editor portal.\n *\n * @param {Document} doc Document to be used.\n * @param {ComponentType} Editor Editor component or render function.\n * @returns {ReactPortal} The portal for the editor.\n */\nexport function createEditorPortal(doc: Document | null, Editor: HotTableProps['editor'] | undefined): ReactPortal | null {\n if (!doc || !Editor) {\n return null;\n }\n\n const editorElement = <Editor />;\n const containerProps = getContainerAttributesProps({}, 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 * Render a cell component to an external DOM node.\n *\n * @param {React.ReactElement} rElement React element to be used as a base for the component.\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: ReactPortal, portalContainer: HTMLElement}} An object containing the portal and its container.\n */\nexport function createPortal(rElement: React.ReactElement, ownerDocument: Document | null = document, portalKey: string, cachedContainer?: HTMLElement): {\n portal: 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 return {\n portal: ReactDOM.createPortal(rElement, 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 {HotTableProps} 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: HotTableProps, randomizeId: boolean = true): {id?: string, className: string, style: CSSProperties} {\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\n/**\n * A variant of useEffect hook that does not trigger on initial mount, only updates\n *\n * @param effect Effect function\n * @param deps Effect dependencies\n */\nexport function useUpdateEffect(effect: EffectCallback, deps?: DependencyList): void {\n const notInitialRender = React.useRef(false);\n\n useEffect(() => {\n if (notInitialRender.current) {\n return effect();\n } else {\n notInitialRender.current = true;\n }\n }, deps);\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 for (const key in properties) {\n if (\n key !== 'children' &&\n !shouldSkipProp(key as keyof Handsontable.GridSettings) &&\n properties.hasOwnProperty(key)\n ) {\n (newSettings as any)[key] = properties[key as keyof HotTableProps];\n }\n }\n\n return newSettings;\n }\n}\n","import Handsontable from 'handsontable/base';\nimport React, {\n ComponentType,\n FC,\n PropsWithChildren,\n ReactPortal,\n createContext,\n useCallback,\n useRef,\n useMemo,\n useContext,\n} from 'react';\nimport { ScopeIdentifier, HotRendererProps } from './types'\nimport { createPortal } from './helpers'\nimport { RenderersPortalManagerRef } from './renderersPortalManager'\n\nexport interface HotTableContextImpl {\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 readonly componentRendererColumns: Map<ScopeIdentifier, boolean>;\n\n /**\n * Array of object containing the column settings.\n */\n readonly columnsSettings: Handsontable.ColumnSettings[];\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 readonly emitColumnSettings: (columnSettings: Handsontable.ColumnSettings, columnIndex: number) => void;\n\n /**\n * Return a renderer wrapper function for the provided renderer component.\n *\n * @param {ComponentType<HotRendererProps>} Renderer React renderer component.\n * @returns {Handsontable.renderers.BaseRenderer} The Handsontable rendering function.\n */\n readonly getRendererWrapper: (Renderer: ComponentType<HotRendererProps>) => typeof Handsontable.renderers.BaseRenderer;\n\n /**\n * Clears portals cache.\n */\n readonly clearPortalCache: () => void;\n\n /**\n * Clears rendered cells cache.\n */\n readonly clearRenderedCellCache: () => void;\n\n /**\n * Set the renderers portal manager dispatch function.\n *\n * @param {RenderersPortalManagerRef} pm The PortalManager dispatch function.\n */\n readonly setRenderersPortalManagerRef: (pm: RenderersPortalManagerRef) => void;\n\n /**\n * Puts cell portals into portal manager and purges portals cache.\n */\n readonly pushCellPortalsIntoPortalManager: () => void;\n}\n\nconst HotTableContext = createContext<HotTableContextImpl | undefined>(undefined);\n\nconst HotTableContextProvider: FC<PropsWithChildren> = ({ children }) => {\n const columnsSettings = useRef<Handsontable.ColumnSettings[]>([]);\n\n const setHotColumnSettings = useCallback((columnSettings: Handsontable.ColumnSettings, columnIndex: number) => {\n columnsSettings.current[columnIndex] = columnSettings;\n }, [])\n\n const componentRendererColumns = useRef<Map<number | 'global', boolean>>(new Map());\n const renderedCellCache = useRef<Map<string, HTMLTableCellElement>>(new Map());\n const clearRenderedCellCache = useCallback(() => renderedCellCache.current.clear(), []);\n const portalCache = useRef<Map<string, ReactPortal>>(new Map());\n const clearPortalCache = useCallback(() => portalCache.current.clear(), []);\n const portalContainerCache = useRef<Map<string, HTMLElement>>(new Map());\n\n const getRendererWrapper = useCallback((Renderer: ComponentType<HotRendererProps>): typeof Handsontable.renderers.BaseRenderer => {\n return function __internalRenderer(instance, TD, row, col, prop, value, cellProperties) {\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.current.has(key)) {\n TD.innerHTML = renderedCellCache.current.get(key)!.innerHTML;\n }\n\n if (TD && !TD.getAttribute('ghost-table')) {\n const cachedPortal = portalCache.current.get(portalKey);\n const cachedPortalContainer = portalContainerCache.current.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 rendererElement = (\n <Renderer instance={instance}\n TD={TD}\n row={row}\n col={col}\n prop={prop}\n value={value}\n cellProperties={cellProperties}/>\n );\n\n const {portal, portalContainer} = createPortal(rendererElement, TD.ownerDocument, portalKey, cachedPortalContainer);\n\n portalContainerCache.current.set(portalContainerKey, portalContainer);\n TD.appendChild(portalContainer);\n\n portalCache.current.set(portalKey, portal);\n }\n }\n\n renderedCellCache.current.set(`${row}-${col}`, TD);\n return TD;\n };\n }, []);\n\n const renderersPortalManager = useRef<RenderersPortalManagerRef>(() => undefined);\n\n const setRenderersPortalManagerRef = useCallback((pmComponent: RenderersPortalManagerRef) => {\n renderersPortalManager.current = pmComponent;\n }, []);\n\n const pushCellPortalsIntoPortalManager = useCallback(() => {\n renderersPortalManager.current!([...portalCache.current.values()]);\n }, []);\n\n const contextImpl: HotTableContextImpl = useMemo(() => ({\n componentRendererColumns: componentRendererColumns.current,\n columnsSettings: columnsSettings.current,\n emitColumnSettings: setHotColumnSettings,\n getRendererWrapper,\n clearPortalCache,\n clearRenderedCellCache,\n setRenderersPortalManagerRef,\n pushCellPortalsIntoPortalManager\n }), [setHotColumnSettings, getRendererWrapper, clearRenderedCellCache, setRenderersPortalManagerRef, pushCellPortalsIntoPortalManager]);\n\n return (\n <HotTableContext.Provider value={contextImpl}>{children}</HotTableContext.Provider>\n );\n};\n\n/**\n * Exposes the table context object to components\n *\n * @returns HotTableContext\n */\nfunction useHotTableContext(): HotTableContextImpl {\n return useContext(HotTableContext)!;\n}\n\nexport { HotTableContextProvider, useHotTableContext };\n","import React, {\n FC,\n PropsWithChildren,\n createContext,\n useContext,\n useMemo,\n} from 'react';\n\nexport interface HotColumnContextImpl {\n /**\n * Column index within a HotTable.\n */\n readonly columnIndex: number;\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 readonly getOwnerDocument: () => Document | null;\n}\n\nconst HotColumnContext = createContext<HotColumnContextImpl | undefined>(undefined);\n\nconst HotColumnContextProvider: FC<PropsWithChildren<HotColumnContextImpl>> = ({ columnIndex, getOwnerDocument, children }) => {\n\n const contextImpl: HotColumnContextImpl = useMemo(() => ({\n columnIndex,\n getOwnerDocument\n }), [columnIndex, getOwnerDocument]);\n\n return (\n <HotColumnContext.Provider value={contextImpl}>{children}</HotColumnContext.Provider>\n );\n};\n\nconst useHotColumnContext = () => useContext(HotColumnContext)!;\n\nexport { useHotColumnContext, HotColumnContextProvider };\n","import React, {\n DependencyList,\n FC,\n MutableRefObject,\n ReactNode,\n Ref,\n RefObject,\n createContext,\n useContext,\n useDeferredValue,\n useImperativeHandle,\n useMemo,\n useState,\n} from 'react';\nimport Handsontable from 'handsontable/base';\nimport { HotEditorHooks, UseHotEditorImpl } from './types';\n\ntype HookPropName = keyof Handsontable.editors.BaseEditor | 'constructor';\n\nconst AbstractMethods: (keyof Handsontable.editors.BaseEditor)[] = [\n 'close',\n 'focus',\n 'open',\n];\nconst ExcludedMethods: (keyof Handsontable.editors.BaseEditor)[] = [\n 'getValue',\n 'setValue',\n];\n\nconst MethodsMap: Partial<\n Record<keyof Handsontable.editors.BaseEditor, keyof HotEditorHooks>\n> = {\n open: 'onOpen',\n close: 'onClose',\n prepare: 'onPrepare',\n focus: 'onFocus',\n};\n\n/**\n * Create a class to be passed to the Handsontable's settings.\n *\n * @param {RefObject<HotEditorHooks>} hooksRef Reference to component-based editor overridden hooks object.\n * @param {RefObject} instanceRef Reference to Handsontable-native custom editor class instance.\n * @returns {Function} A class to be passed to the Handsontable editor settings.\n */\nexport function makeEditorClass(\n hooksRef: MutableRefObject<HotEditorHooks | null>,\n instanceRef: MutableRefObject<Handsontable.editors.BaseEditor | null>\n): typeof Handsontable.editors.BaseEditor {\n return class CustomEditor\n extends Handsontable.editors.BaseEditor\n implements Handsontable.editors.BaseEditor\n {\n private value: any;\n\n constructor(hotInstance: Handsontable.Core) {\n super(hotInstance);\n instanceRef.current = this;\n\n (\n Object.getOwnPropertyNames(\n Handsontable.editors.BaseEditor.prototype\n ) as HookPropName[]\n ).forEach((propName) => {\n if (propName === 'constructor' || ExcludedMethods.includes(propName)) {\n return;\n }\n\n const baseMethod = Handsontable.editors.BaseEditor.prototype[propName];\n (CustomEditor.prototype as any)[propName] = function (\n this: CustomEditor,\n ...args: any[]\n ) {\n let result;\n\n if (!AbstractMethods.includes(propName)) {\n result = baseMethod.call(this, ...args); // call super\n }\n\n if (\n MethodsMap[propName] &&\n hooksRef.current?.[MethodsMap[propName]!]\n ) {\n result = (hooksRef.current[MethodsMap[propName]!] as any).call(\n this,\n ...args\n );\n }\n\n return result;\n }.bind(this);\n });\n }\n\n focus() {}\n\n getValue() {\n return this.value;\n }\n\n setValue(newValue: any) {\n this.value = newValue;\n }\n\n open() {}\n\n close() {}\n };\n}\n\ninterface EditorContextType {\n hooksRef: Ref<HotEditorHooks>;\n hotCustomEditorInstanceRef: RefObject<Handsontable.editors.BaseEditor>;\n}\n\n/**\n * Context to provide Handsontable-native custom editor class instance to overridden hooks object.\n */\nconst EditorContext = createContext<EditorContextType | undefined>(\n undefined\n);\n\ninterface EditorContextProviderProps {\n hooksRef: Ref<HotEditorHooks>;\n hotCustomEditorInstanceRef: RefObject<Handsontable.editors.BaseEditor>;\n children: ReactNode;\n}\n\n/**\n * Provider of the context that exposes Handsontable-native editor instance and passes hooks object\n * for custom editor components.\n *\n * @param {Ref} hooksRef Reference for component-based editor overridden hooks object.\n * @param {RefObject} hotCustomEditorInstanceRef Reference to Handsontable-native editor instance.\n */\nexport const EditorContextProvider: FC<EditorContextProviderProps> = ({\n hooksRef,\n hotCustomEditorInstanceRef,\n children,\n}) => {\n return (\n <EditorContext.Provider value={{ hooksRef, hotCustomEditorInstanceRef }}>\n {children}\n </EditorContext.Provider>\n );\n};\n\n/**\n * Hook that allows encapsulating custom behaviours of component-based editor by customizing passed ref with overridden hooks object.\n *\n * @param {HotEditorHooks} overriddenHooks Overrides specific for the custom editor.\n * @param {DependencyList} deps Overridden hooks object React dependency list.\n * @returns {UseHotEditorImpl} Editor API methods\n */\nexport function useHotEditor<T>(\n overriddenHooks?: HotEditorHooks,\n deps?: DependencyList\n): UseHotEditorImpl<T> {\n const { hooksRef, hotCustomEditorInstanceRef } =\n useContext(EditorContext)!;\n const [rerenderTrigger, setRerenderTrigger] = useState(0);\n const [editorValue, setEditorValue] = useState<T>();\n\n // return a deferred value that allows for optimizing performance by delaying the update of a value until the next render.\n const deferredValue = useDeferredValue(editorValue);\n\n useImperativeHandle(\n hooksRef,\n () => ({\n ...overriddenHooks,\n onOpen() {\n setEditorValue(hotCustomEditorInstanceRef.current?.getValue());\n overriddenHooks?.onOpen?.();\n setRerenderTrigger((t) => t + 1);\n },\n }),\n deps\n );\n\n return useMemo(\n () => ({\n get value(): T | undefined {\n return deferredValue;\n },\n setValue(newValue) {\n setEditorValue(newValue);\n hotCustomEditorInstanceRef.current?.setValue(newValue);\n },\n get isOpen() {\n return hotCustomEditorInstanceRef.current?.isOpened() ?? false;\n },\n finishEditing() {\n hotCustomEditorInstanceRef.current?.finishEditing();\n },\n get row() {\n return hotCustomEditorInstanceRef.current?.row;\n },\n get col() {\n return hotCustomEditorInstanceRef.current?.col;\n },\n }),\n [rerenderTrigger, hotCustomEditorInstanceRef, deferredValue]\n );\n}\n","import React, {\n FC,\n ReactElement,\n useEffect,\n useRef,\n} from 'react';\nimport { HotTableProps, HotColumnProps, HotEditorHooks } from './types';\nimport {\n createEditorPortal,\n displayAnyChildrenWarning,\n displayObsoleteRenderersEditorsWarning\n} from './helpers';\nimport { SettingsMapper } from './settingsMapper';\nimport Handsontable from 'handsontable/base';\nimport { useHotTableContext } from './hotTableContext'\nimport { useHotColumnContext } from './hotColumnContext'\nimport { EditorContextProvider, makeEditorClass } from './hotEditor';\n\nconst isHotColumn = (childNode: any): childNode is ReactElement => childNode.type === HotColumn;\n\nconst internalProps = ['_columnIndex', '_getOwnerDocument', 'children'];\n\nconst HotColumn: FC<HotColumnProps> = (props) => {\n const { componentRendererColumns, emitColumnSettings, getRendererWrapper } = useHotTableContext();\n const { columnIndex, getOwnerDocument } = useHotColumnContext();\n\n /**\n * Reference to component-based editor overridden hooks object.\n */\n const localEditorHooksRef = useRef<HotEditorHooks | null>(null);\n\n /**\n * Reference to HOT-native custom editor class instance.\n */\n const localEditorClassInstance = useRef<Handsontable.editors.BaseEditor | null>(null);\n\n /**\n * Logic performed after mounting & updating of the HotColumn component.\n */\n useEffect(() => {\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 const getSettingsProps = (): HotTableProps => {\n return Object.keys(props)\n .filter(key => !internalProps.includes(key))\n .reduce<HotTableProps>((obj, key) => {\n (obj as any)[key] = props[key];\n return obj;\n }, {});\n };\n\n /**\n * Create the column settings based on the data provided to the `HotColumn` component and its child components.\n */\n const createColumnSettings = (): Handsontable.ColumnSettings => {\n const columnSettings = SettingsMapper.getSettings(getSettingsProps()) as unknown as Handsontable.ColumnSettings;\n\n if (props.renderer) {\n columnSettings.renderer = getRendererWrapper(props.renderer);\n componentRendererColumns.set(columnIndex, true);\n } else if (props.hotRenderer) {\n columnSettings.renderer = props.hotRenderer;\n }\n\n if (props.editor) {\n columnSettings.editor = makeEditorClass(localEditorHooksRef, localEditorClassInstance);\n } else if (props.hotEditor) {\n columnSettings.editor = props.hotEditor;\n }\n\n return columnSettings\n };\n\n const columnSettings = createColumnSettings();\n emitColumnSettings(columnSettings, columnIndex);\n\n if (!displayObsoleteRenderersEditorsWarning(props.children)) {\n displayAnyChildrenWarning(props.children);\n }\n });\n\n const editorPortal = createEditorPortal(getOwnerDocument(), props.editor);\n\n /**\n * Render the portals of the editors, if there are any.\n *\n * @returns {ReactElement}\n */\n return (\n <EditorContextProvider hooksRef={localEditorHooksRef}\n hotCustomEditorInstanceRef={localEditorClassInstance}>\n {editorPortal}\n </EditorContextProvider>\n )\n}\n\nexport { HotColumn, isHotColumn };\n","import React, {\n Dispatch,\n ReactPortal,\n forwardRef,\n Fragment,\n useImperativeHandle,\n useState,\n} from 'react';\n\nexport type RenderersPortalManagerRef = Dispatch<ReactPortal[]>;\n\n/**\n * Component used to manage the renderer component portals.\n */\nexport const RenderersPortalManager = forwardRef<RenderersPortalManagerRef, {}>((_, ref) => {\n const [portals, setPortals] = useState<ReactPortal[]>([]);\n useImperativeHandle(ref, () => setPortals);\n\n return (\n <Fragment>\n {portals}\n </Fragment>\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\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\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\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","import React, {\n Children,\n Fragment,\n useEffect,\n useCallback,\n useImperativeHandle,\n useRef,\n forwardRef\n} from 'react';\nimport Handsontable from 'handsontable/base';\nimport { SettingsMapper } from './settingsMapper';\nimport { RenderersPortalManager } from './renderersPortalManager';\nimport { HotColumn, isHotColumn } from './hotColumn';\nimport { HotEditorHooks, HotTableProps, HotTableRef } from './types';\nimport {\n HOT_DESTROYED_WARNING,\n AUTOSIZE_WARNING,\n createEditorPortal,\n getContainerAttributesProps,\n isCSR,\n warn,\n displayObsoleteRenderersEditorsWarning,\n useUpdateEffect,\n displayChildrenOfTypeWarning\n} from './helpers';\nimport PropTypes from 'prop-types';\nimport { getRenderer } from 'handsontable/renderers/registry';\nimport { getEditor } from 'handsontable/editors/registry';\nimport { useHotTableContext } from './hotTableContext'\nimport { HotColumnContextProvider } from './hotColumnContext'\nimport { EditorContextProvider, makeEditorClass } from './hotEditor';\n\nconst HotTableInner = forwardRef<\n HotTableRef,\n HotTableProps\n>((props, ref) => {\n\n /**\n * Reference to the Handsontable instance.\n */\n const __hotInstance = useRef<Handsontable | null>(null);\n\n /**\n * Reference to the main Handsontable DOM element.\n */\n const hotElementRef = useRef<HTMLDivElement>(null);\n\n /**\n * Reference to component-based editor overridden hooks object.\n */\n const globalEditorHooksRef = useRef<HotEditorHooks | null>(null);\n\n /**\n * Reference to HOT-native custom editor class instance.\n */\n const globalEditorClassInstance = useRef<Handsontable.editors.BaseEditor | null>(null);\n\n /**\n * Reference to the previous props object.\n */\n const prevProps = useRef<HotTableProps>();\n\n /**\n * HotTable context exposing helper functions.\n */\n const context = useHotTableContext();\n\n /**\n * Getter for the property storing the Handsontable instance.\n */\n const getHotInstance = useCallback((): Handsontable | null => {\n if (!__hotInstance.current || !__hotInstance.current.isDestroyed) {\n\n // Will return the Handsontable instance or `null` if it's not yet been created.\n return __hotInstance.current;\n\n } else {\n console.warn(HOT_DESTROYED_WARNING);\n\n return null;\n }\n }, [__hotInstance]);\n\n const isHotInstanceDestroyed = useCallback((): boolean => {\n return !__hotInstance.current || __hotInstance.current.isDestroyed;\n }, [__hotInstance]);\n\n /**\n * Clear both the editor and the renderer cache.\n */\n const clearCache = useCallback((): void => {\n context.clearRenderedCellCache();\n context.componentRendererColumns.clear();\n }, [context]);\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 const getOwnerDocument = useCallback((): Document | null => {\n if (isCSR()) {\n return hotElementRef.current ? hotElementRef.current.ownerDocument : document;\n }\n\n return null;\n }, [hotElementRef]);\n\n /**\n * Create a new settings object containing the column settings and global editors and renderers.\n *\n * @returns {Handsontable.GridSettings} New global set of settings for Handsontable.\n */\n const createNewGlobalSettings = (init: boolean = false, prevProps: HotTableProps = {}): Handsontable.GridSettings => {\n const initOnlySettingKeys = !isHotInstanceDestroyed() ? // Needed for React's double-rendering.\n ((getHotInstance()?.getSettings() as any)?._initOnlySettings || []) :\n [];\n const newSettings = SettingsMapper.getSettings(\n props, {\n prevProps,\n isInit: init,\n initOnlySettingKeys\n }\n );\n\n newSettings.columns = context.columnsSettings.length ? context.columnsSettings : newSettings.columns;\n\n if (props.renderer) {\n newSettings.renderer = context.getRendererWrapper(props.renderer);\n context.componentRendererColumns.set('global', true);\n } else {\n newSettings.renderer = props.hotRenderer || getRenderer('text');\n }\n\n if (props.editor) {\n newSettings.editor = makeEditorClass(globalEditorHooksRef, globalEditorClassInstance);\n } else {\n newSettings.editor = props.hotEditor || getEditor('text');\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 const displayAutoSizeWarning = (hotInstance: Handsontable | null): void => {\n if (\n hotInstance &&\n (\n hotInstance.getPlugin('autoRowSize')?.enabled ||\n hotInstance.getPlugin('autoColumnSize')?.enabled\n )\n ) {\n if (context.componentRendererColumns.size > 0) {\n warn(AUTOSIZE_WARNING);\n }\n }\n };\n\n /**\n * Initialize Handsontable after the component has mounted.\n */\n useEffect(() => {\n const newGlobalSettings = createNewGlobalSettings(true);\n\n // Update prevProps with the current props\n prevProps.current = props;\n\n __hotInstance.current = new Handsontable.Core(hotElementRef.current!, newGlobalSettings);\n\n /**\n * Handsontable's `beforeViewRender` hook callback.\n */\n __hotInstance.current.addHook('beforeViewRender', () => {\n context.clearPortalCache();\n context.clearRenderedCellCache();\n });\n\n /**\n * Handsontable's `afterViewRender` hook callback.\n */\n __hotInstance.current.addHook('afterViewRender', () => {\n context.pushCellPortalsIntoPortalManager();\n });\n\n __hotInstance.current.init();\n\n displayAutoSizeWarning(__hotInstance.current);\n\n if (!displayObsoleteRenderersEditorsWarning(props.children)) {\n displayChildrenOfTypeWarning(props.children, HotColumn);\n }\n\n /**\n * Destroy the Handsontable instance when the parent component unmounts.\n */\n return () => {\n clearCache();\n getHotInstance()?.destroy();\n }\n }, []);\n\n /**\n * Logic performed after the component update.\n */\n useUpdateEffect((): void => {\n clearCache();\n\n const hotInstance = getHotInstance();\n\n const newGlobalSettings = createNewGlobalSettings(false, prevProps.current);\n\n // Update prevProps with the current props\n prevProps.current = props;\n\n hotInstance?.updateSettings(newGlobalSettings, false);\n\n displayAutoSizeWarning(hotInstance);\n displayObsoleteRenderersEditorsWarning(props.children);\n });\n\n /**\n * Interface exposed to parent components by HotTable instance via React ref\n */\n useImperativeHandle(ref, () => ({\n get hotElementRef() {\n return hotElementRef.current!;\n },\n get hotInstance() {\n return getHotInstance();\n }\n }));\n\n /**\n * Render the component.\n */\n const hotColumnWrapped = Children.toArray(props.children)\n .filter(isHotColumn)\n .map((childNode, columnIndex) => (\n <HotColumnContextProvider columnIndex={columnIndex}\n getOwnerDocument={getOwnerDocument}\n key={columnIndex}>\n {childNode}\n </HotColumnContextProvider>\n ));\n\n const containerProps = getContainerAttributesProps(props);\n const editorPortal = createEditorPortal(getOwnerDocument(), props.editor);\n\n return (\n <Fragment>\n <div ref={hotElementRef} {...containerProps}>\n {hotColumnWrapped}\n </div>\n <RenderersPortalManager ref={context.setRenderersPortalManagerRef} />\n <EditorContextProvider hooksRef={globalEditorHooksRef}\n hotCustomEditorInstanceRef={globalEditorClassInstance}>\n {editorPortal}\n </EditorContextProvider>\n </Fragment>\n );\n});\n\n/**\n * Prop types to be checked at runtime.\n */\nHotTableInner.propTypes = {\n style: PropTypes.object,\n id: PropTypes.string,\n className: PropTypes.string\n};\n\nexport default HotTableInner;\nexport { HotTableInner };\n","import React, {\n ForwardRefExoticComponent,\n RefAttributes,\n useId,\n forwardRef,\n} from 'react';\nimport * as packageJson from '../package.json';\nimport { HotTableInner } from './hotTableInner';\nimport { HotTableProps, HotTableRef } from './types';\nimport { HotTableContextProvider } from './hotTableContext';\n\ninterface Version {\n version?: string;\n}\n\ntype HotTable = ForwardRefExoticComponent<HotTableProps & RefAttributes<HotTableRef>> & Version;\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 */\nconst HotTable: HotTable = forwardRef<HotTableRef, HotTableProps>(({ children, ...props }, ref) => {\n const componentId = props.id ?? useId();\n\n return (\n <HotTableContextProvider>\n <HotTableInner id={componentId} {...props} ref={ref}>\n {children}\n </HotTableInner>\n </HotTableContextProvider>\n );\n})\n\n/**\n * Package version.\n *\n * @returns The version number of the package.\n */\nHotTable.version = (packageJson as any).version;\n\nexport default HotTable;\nexport { HotTable };\n"],"names":["bulkComponentContainer","AUTOSIZE_WARNING","OBSOLETE_HOTRENDERER_WARNING","OBSOLETE_HOTEDITOR_WARNING","UNEXPECTED_HOTTABLE_CHILDREN_WARNING","UNEXPECTED_HOTCOLUMN_CHILDREN_WARNING","HOT_DESTROYED_WARNING","DEFAULT_CLASSNAME","warn","console","_console","apply","arguments","displayObsoleteRenderersEditorsWarning","children","hasChildElementOfType","displayChildrenOfTypeWarning","Component","childrenArray","React","Children","toArray","some","child","type","displayAnyChildrenWarning","length","props","createEditorPortal","doc","Editor","editorElement","createElement","containerProps","getContainerAttributesProps","className","concat","ReactDOM","createPortal","body","rElement","ownerDocument","document","portalKey","undefined","cachedContainer","createDocumentFragment","portalContainer","appendChild","portal","randomizeId","id","Math","random","toString","substring","style","isCSR","window","useUpdateEffect","effect","deps","notInitialRender","useRef","useEffect","current","SettingsMapper","_classCallCheck","_createClass","key","value","getSettings","properties","_ref","_ref$prevProps","prevProps","_ref$isInit","isInit","_ref$initOnlySettingK","initOnlySettingKeys","shouldSkipProp","includes","newSettings","hasOwnProperty","HotTableContext","createContext","HotTableContextProvider","columnsSettings","setHotColumnSettings","useCallback","columnSettings","columnIndex","componentRendererColumns","Map","renderedCellCache","clearRenderedCellCache","clear","portalCache","clearPortalCache","portalContainerCache","getRendererWrapper","Renderer","__internalRenderer","instance","TD","row","col","prop","cellProperties","instanceGuid","guid","portalContainerKey","has","innerHTML","get","getAttribute","cachedPortal","cachedPortalContainer","firstChild","removeChild","rendererElement","_createPortal","set","renderersPortalManager","setRenderersPortalManagerRef","pmComponent","pushCellPortalsIntoPortalManager","_toConsumableArray","values","contextImpl","useMemo","emitColumnSettings","Provider","useHotTableContext","useContext","HotColumnContext","HotColumnContextProvider","getOwnerDocument","useHotColumnContext","AbstractMethods","ExcludedMethods","MethodsMap","open","close","prepare","focus","makeEditorClass","hooksRef","instanceRef","_Handsontable$editors","CustomEditor","hotInstance","_this","_callSuper","Object","getOwnPropertyNames","Handsontable","editors","BaseEditor","prototype","forEach","propName","baseMethod","_hooksRef$current","result","_len","args","Array","_key","call","_hooksRef$current$Met","bind","_inherits","getValue","setValue","newValue","EditorContext","EditorContextProvider","hotCustomEditorInstanceRef","useHotEditor","overriddenHooks","_useContext","_useState","useState","_useState2","_slicedToArray","rerenderTrigger","setRerenderTrigger","_useState3","_useState4","editorValue","setEditorValue","deferredValue","useDeferredValue","useImperativeHandle","_objectSpread","onOpen","_hotCustomEditorInsta","_overriddenHooks$onOp","t","_hotCustomEditorInsta2","isOpen","_hotCustomEditorInsta3","_hotCustomEditorInsta4","isOpened","finishEditing","_hotCustomEditorInsta5","_hotCustomEditorInsta6","_hotCustomEditorInsta7","isHotColumn","childNode","HotColumn","internalProps","_useHotTableContext","_useHotColumnContext","localEditorHooksRef","localEditorClassInstance","getSettingsProps","keys","filter","reduce","obj","createColumnSettings","renderer","hotRenderer","editor","hotEditor","editorPortal","RenderersPortalManager","forwardRef","_","ref","portals","setPortals","Fragment","ReactPropTypesSecret","ReactPropTypesSecret_1","require$$0","emptyFunction","emptyFunctionWithReset","resetWarningCache","factoryWithThrowingShims","shim","componentName","location","propFullName","secret","err","Error","name","isRequired","getShim","ReactPropTypes","array","bigint","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","propTypesModule","exports","require$$2","HotTableInner","__hotInstance","hotElementRef","globalEditorHooksRef","globalEditorClassInstance","context","getHotInstance","isDestroyed","isHotInstanceDestroyed","clearCache","createNewGlobalSettings","_getHotInstance","init","_initOnlySettings","columns","getRenderer","getEditor","displayAutoSizeWarning","_hotInstance$getPlugi","_hotInstance$getPlugi2","getPlugin","enabled","size","newGlobalSettings","Core","addHook","_getHotInstance2","destroy","updateSettings","hotColumnWrapped","map","assign","propTypes","HotTable","_props$id","_objectWithoutProperties","_excluded","componentId","useId","version","packageJson"],"mappings":"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","x_google_ignoreList":[7,8,9]}
|
@@ -25,7 +25,7 @@
|
|
25
25
|
* INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
|
26
26
|
* USE OR INABILITY TO USE THIS SOFTWARE.
|
27
27
|
*
|
28
|
-
* Version: 0.0.0-next-
|
28
|
+
* Version: 0.0.0-next-4b40c99-20241108 (built at Fri Nov 08 2024 11:21:33 GMT+0000 (Coordinated Universal Time))
|
29
29
|
*/
|
30
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("react-dom"),require("handsontable/base"),require("handsontable/renderers/registry"),require("handsontable/editors/registry")):"function"==typeof define&&define.amd?define(["exports","react","react-dom","handsontable/base","handsontable/renderers/registry","handsontable/editors/registry"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).Handsontable=e.Handsontable||{},e.Handsontable.react={}),e.React,e.ReactDOM,e.Handsontable,e.Handsontable.renderers,e.Handsontable.editors)}(this,(function(e,t,n,r,o,u){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=a(t),l=a(n),c=a(r),s=null;function d(){var e;void 0!==console&&(e=console).warn.apply(e,arguments)}function f(e){return p(e,"hot-renderer")?(d("Providing a component-based renderer using `hot-renderer`-annotated component is no longer supported. Pass your component using `renderer` prop of the `HotTable` or `HotColumn` component instead."),!0):!!p(e,"hot-editor")&&(d("Providing a component-based editor using `hot-editor`-annotated component is no longer supported. Pass your component using `editor` prop of the `HotTable` or `HotColumn` component instead."),!0)}function p(e,t){return i.default.Children.toArray(e).some((function(e){return void 0!==e.props[t]}))}function m(e,t){if(!e||!t)return null;var n=i.default.createElement(t,null),r=v({},!1);return r.className="".concat("hot-wrapper-editor-container"," ").concat(r.className),l.default.createPortal(i.default.createElement("div",Object.assign({},r),n),e.body)}function v(e){return{id:e.id||(1>=arguments.length||void 0===arguments[1]||arguments[1]?"hot-"+Math.random().toString(36).substring(5):void 0),className:e.className||"",style:e.style||{}}}function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);t>n;n++)r[n]=e[n];return r}function h(e,t,n){return t=w(t),function(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,R()?Reflect.construct(t,n||[],w(e).constructor):t.apply(e,n))}function b(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function g(e,t){for(var n=0;t.length>n;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,I(r.key),r)}}function O(e,t,n){return t&&g(e.prototype,t),n&&g(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function C(e,t,n){return(t=I(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function w(e){return w=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},w(e)}function R(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(R=function(){return!!e})()}function P(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function E(e){for(var t=1;arguments.length>t;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?P(Object(n),!0).forEach((function(t){C(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):P(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function j(e,t){return j=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},j(e,t)}function S(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,u,a,i=[],l=!0,c=!1;try{if(u=(n=n.call(e)).next,0===t);else for(;!(l=(r=u.call(n)).done)&&(i.push(r.value),i.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw o}}return i}}(e,t)||H(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function k(e){return function(e){if(Array.isArray(e))return y(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||H(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function I(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}function H(e,t){if(e){if("string"==typeof e)return y(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?y(e,t):void 0}}var T=function(){return O((function e(){b(this,e)}),null,[{key:"getSettings",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.prevProps,r=void 0===n?{}:n,o=t.isInit,u=void 0!==o&&o,a=t.initOnlySettingKeys,i=void 0===a?[]:a,l=function(t){return!(u||!i.includes(t))&&r[t]===e[t]},c={};for(var s in e)"children"!==s&&!l(s)&&e.hasOwnProperty(s)&&(c[s]=e[s]);return c}}])}(),x=t.createContext(void 0),_=function(e){var n=e.children,r=t.useRef([]),o=t.useCallback((function(e,t){r.current[t]=e}),[]),u=t.useRef(new Map),a=t.useRef(new Map),c=t.useCallback((function(){return a.current.clear()}),[]),d=t.useRef(new Map),f=t.useCallback((function(){return d.current.clear()}),[]),p=t.useRef(new Map),m=t.useCallback((function(e){return function(t,n,r,o,u,c,f){var m="".concat(r,"-").concat(o),v=t.guid,y="".concat(v,"-").concat(m),h="".concat(m,"-").concat(v);if(a.current.has(m)&&(n.innerHTML=a.current.get(m).innerHTML),n&&!n.getAttribute("ghost-table")){for(var b=d.current.get(h),g=p.current.get(y);n.firstChild;)n.removeChild(n.firstChild);if(b&&g)n.appendChild(g);else{var O=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;t||(t=document),s||(s=t.createDocumentFragment());var o=null!=r?r:t.createElement("DIV");return s.appendChild(o),{portal:l.default.createPortal(e,o,n),portalContainer:o}}(i.default.createElement(e,{instance:t,TD:n,row:r,col:o,prop:u,value:c,cellProperties:f}),n.ownerDocument,h,g),C=O.portal,w=O.portalContainer;p.current.set(y,w),n.appendChild(w),d.current.set(h,C)}}return a.current.set("".concat(r,"-").concat(o),n),n}}),[]),v=t.useRef((function(){})),y=t.useCallback((function(e){v.current=e}),[]),h=t.useCallback((function(){v.current(k(d.current.values()))}),[]),b=t.useMemo((function(){return{componentRendererColumns:u.current,columnsSettings:r.current,emitColumnSettings:o,getRendererWrapper:m,clearPortalCache:f,clearRenderedCellCache:c,setRenderersPortalManagerRef:y,pushCellPortalsIntoPortalManager:h}}),[o,m,c,y,h]);return i.default.createElement(x.Provider,{value:b},n)};function D(){return t.useContext(x)}var M=t.createContext(void 0),A=function(e){var n=e.columnIndex,r=e.getOwnerDocument,o=e.children,u=t.useMemo((function(){return{columnIndex:n,getOwnerDocument:r}}),[n,r]);return i.default.createElement(M.Provider,{value:u},o)},V=["close","focus","open"],N=["getValue","setValue"],z={open:"onOpen",close:"onClose",prepare:"onPrepare",focus:"onFocus"};function q(e,t){return function(n){function r(n){var o;return b(this,r),o=h(this,r,[n]),t.current=o,Object.getOwnPropertyNames(c.default.editors.BaseEditor.prototype).forEach((function(t){if("constructor"!==t&&!N.includes(t)){var n=c.default.editors.BaseEditor.prototype[t];r.prototype[t]=function(){for(var r,o,u,a=arguments.length,i=Array(a),l=0;a>l;l++)i[l]=arguments[l];(V.includes(t)||(o=n.call.apply(n,[this].concat(i))),z[t]&&null!==(r=e.current)&&void 0!==r&&r[z[t]])&&(o=(u=e.current[z[t]]).call.apply(u,[this].concat(i)));return o}.bind(o)}})),o}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&j(e,t)}(r,n),O(r,[{key:"focus",value:function(){}},{key:"getValue",value:function(){return this.value}},{key:"setValue",value:function(e){this.value=e}},{key:"open",value:function(){}},{key:"close",value:function(){}}])}(c.default.editors.BaseEditor)}var B=t.createContext(void 0),W=function(e){return i.default.createElement(B.Provider,{value:{hooksRef:e.hooksRef,hotCustomEditorInstanceRef:e.hotCustomEditorInstanceRef}},e.children)};var F=function(e){return e.type===L},U=["_columnIndex","_getOwnerDocument","children"],L=function(e){var n=D(),r=n.componentRendererColumns,o=n.emitColumnSettings,u=n.getRendererWrapper,a=t.useContext(M),l=a.columnIndex,c=a.getOwnerDocument,s=t.useRef(null),p=t.useRef(null);t.useEffect((function(){var t=function(){var t=T.getSettings(Object.keys(e).filter((function(e){return!U.includes(e)})).reduce((function(t,n){return t[n]=e[n],t}),{}));return e.renderer?(t.renderer=u(e.renderer),r.set(l,!0)):e.hotRenderer&&(t.renderer=e.hotRenderer),e.editor?t.editor=q(s,p):e.hotEditor&&(t.editor=e.hotEditor),t}();o(t,l),f(e.children)||i.default.Children.toArray(e.children).length&&d("Unexpected children nodes found in HotColumn component. HotColumn components do not support any children.")}));var v=m(c(),e.editor);return i.default.createElement(W,{hooksRef:s,hotCustomEditorInstanceRef:p},v)},K=t.forwardRef((function(e,n){var r=S(t.useState([]),2),o=r[0],u=r[1];return t.useImperativeHandle(n,(function(){return u})),i.default.createElement(t.Fragment,null,o)}));function Y(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var $,G,J,Q,X={exports:{}};X.exports=function(){if(Q)return J;Q=1;var e=G?$:(G=1,$="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED");function t(){}function n(){}return n.resetWarningCache=t,J=function(){function r(t,n,r,o,u,a){if(a!==e){var i=Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}}function o(){return r}r.isRequired=r;var u={array:r,bigint:r,bool:r,func:r,number:r,object:r,string:r,symbol:r,any:r,arrayOf:o,element:r,elementType:r,instanceOf:o,node:r,objectOf:o,oneOf:o,oneOfType:o,shape:o,exact:o,checkPropTypes:n,resetWarningCache:t};return u.PropTypes=u,u}}()();var Z=Y(X.exports),ee=t.forwardRef((function(e,n){var r,a,l,s=t.useRef(null),p=t.useRef(null),y=t.useRef(null),h=t.useRef(null),b=t.useRef(),g=D(),O=t.useCallback((function(){return s.current&&s.current.isDestroyed?(console.warn("The Handsontable instance bound to this component was destroyed and cannot be used properly."),null):s.current}),[s]),C=t.useCallback((function(){return!s.current||s.current.isDestroyed}),[s]),w=t.useCallback((function(){g.clearRenderedCellCache(),g.componentRendererColumns.clear()}),[g]),R=t.useCallback((function(){return"undefined"!=typeof window?p.current?p.current.ownerDocument:document:null}),[p]),P=function(){var t,n=arguments.length>0&&void 0!==arguments[0]&&arguments[0],r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=C()?[]:(null===(t=O())||void 0===t||null===(t=t.getSettings())||void 0===t?void 0:t._initOnlySettings)||[],i=T.getSettings(e,{prevProps:r,isInit:n,initOnlySettingKeys:a});return i.columns=g.columnsSettings.length?g.columnsSettings:i.columns,e.renderer?(i.renderer=g.getRendererWrapper(e.renderer),g.componentRendererColumns.set("global",!0)):i.renderer=e.hotRenderer||o.getRenderer("text"),i.editor=e.editor?q(y,h):e.hotEditor||u.getEditor("text"),i},E=function(e){var t,n;e&&(null!==(t=e.getPlugin("autoRowSize"))&&void 0!==t&&t.enabled||null!==(n=e.getPlugin("autoColumnSize"))&&void 0!==n&&n.enabled)&&g.componentRendererColumns.size>0&&d("Your `HotTable` configuration includes `autoRowSize`/`autoColumnSize` options, which are not compatible with the component-based renderers`. Disable `autoRowSize` and `autoColumnSize` to prevent row and column misalignment.")};t.useEffect((function(){var t,n=P(!0);return b.current=e,s.current=new c.default.Core(p.current,n),s.current.addHook("beforeViewRender",(function(){g.clearPortalCache(),g.clearRenderedCellCache()})),s.current.addHook("afterViewRender",(function(){g.pushCellPortalsIntoPortalManager()})),s.current.init(),E(s.current),f(e.children)||(t=L,i.default.Children.toArray(e.children).some((function(e){return e.type!==t}))&&d("Unexpected children nodes found in HotTable component. Only HotColumn components are allowed.")),function(){var e;w(),null===(e=O())||void 0===e||e.destroy()}}),[]),r=function(){w();var t=O(),n=P(!1,b.current);b.current=e,null==t||t.updateSettings(n,!1),E(t),f(e.children)},l=i.default.useRef(!1),t.useEffect((function(){if(l.current)return r();l.current=!0}),a),t.useImperativeHandle(n,(function(){return{get hotElementRef(){return p.current},get hotInstance(){return O()}}}));var j=t.Children.toArray(e.children).filter(F).map((function(e,t){return i.default.createElement(A,{columnIndex:t,getOwnerDocument:R,key:t},e)})),S=v(e),k=m(R(),e.editor);return i.default.createElement(t.Fragment,null,i.default.createElement("div",Object.assign({ref:p},S),j),i.default.createElement(K,{ref:g.setRenderersPortalManagerRef}),i.default.createElement(W,{hooksRef:y,hotCustomEditorInstanceRef:h},k))}));ee.propTypes={style:Z.object,id:Z.string,className:Z.string};var te=["children"],ne=t.forwardRef((function(e,n){var r,o=e.children,u=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;u.length>r;r++)t.includes(n=u[r])||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,te),a=null!==(r=u.id)&&void 0!==r?r:t.useId();return i.default.createElement(_,null,i.default.createElement(ee,Object.assign({id:a},u,{ref:n}),o))}));ne.version="0.0.0-next-5b14d3c-20241107",e.HotColumn=L,e.HotTable=ne,e.default=ne,e.isHotColumn=F,e.useHotEditor=function(e,n){var r=t.useContext(B),o=r.hooksRef,u=r.hotCustomEditorInstanceRef,a=S(t.useState(0),2),i=a[0],l=a[1],c=S(t.useState(),2),s=c[1],d=t.useDeferredValue(c[0]);return t.useImperativeHandle(o,(function(){return E(E({},e),{},{onOpen:function(){var t,n;s(null===(t=u.current)||void 0===t?void 0:t.getValue()),null==e||null===(n=e.onOpen)||void 0===n||n.call(e),l((function(e){return e+1}))}})}),n),t.useMemo((function(){return{get value(){return d},setValue:function(e){var t;s(e),null===(t=u.current)||void 0===t||t.setValue(e)},get isOpen(){var e,t;return null!==(e=null===(t=u.current)||void 0===t?void 0:t.isOpened())&&void 0!==e&&e},finishEditing:function(){var e;null===(e=u.current)||void 0===e||e.finishEditing()},get row(){var e;return null===(e=u.current)||void 0===e?void 0:e.row},get col(){var e;return null===(e=u.current)||void 0===e?void 0:e.col}}}),[i,u,d])},Object.defineProperty(e,"__esModule",{value:!0})}));
|
30
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("react-dom"),require("handsontable/base"),require("handsontable/renderers/registry"),require("handsontable/editors/registry")):"function"==typeof define&&define.amd?define(["exports","react","react-dom","handsontable/base","handsontable/renderers/registry","handsontable/editors/registry"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).Handsontable=e.Handsontable||{},e.Handsontable.react={}),e.React,e.ReactDOM,e.Handsontable,e.Handsontable.renderers,e.Handsontable.editors)}(this,(function(e,t,n,r,o,u){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=a(t),l=a(n),c=a(r),s=null;function d(){var e;void 0!==console&&(e=console).warn.apply(e,arguments)}function f(e){return p(e,"hot-renderer")?(d("Providing a component-based renderer using `hot-renderer`-annotated component is no longer supported. Pass your component using `renderer` prop of the `HotTable` or `HotColumn` component instead."),!0):!!p(e,"hot-editor")&&(d("Providing a component-based editor using `hot-editor`-annotated component is no longer supported. Pass your component using `editor` prop of the `HotTable` or `HotColumn` component instead."),!0)}function p(e,t){return i.default.Children.toArray(e).some((function(e){return void 0!==e.props[t]}))}function m(e,t){if(!e||!t)return null;var n=i.default.createElement(t,null),r=v({},!1);return r.className="".concat("hot-wrapper-editor-container"," ").concat(r.className),l.default.createPortal(i.default.createElement("div",Object.assign({},r),n),e.body)}function v(e){return{id:e.id||(1>=arguments.length||void 0===arguments[1]||arguments[1]?"hot-"+Math.random().toString(36).substring(5):void 0),className:e.className||"",style:e.style||{}}}function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);t>n;n++)r[n]=e[n];return r}function h(e,t,n){return t=w(t),function(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,R()?Reflect.construct(t,n||[],w(e).constructor):t.apply(e,n))}function b(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function g(e,t){for(var n=0;t.length>n;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,I(r.key),r)}}function O(e,t,n){return t&&g(e.prototype,t),n&&g(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function C(e,t,n){return(t=I(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function w(e){return w=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},w(e)}function R(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(R=function(){return!!e})()}function P(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function E(e){for(var t=1;arguments.length>t;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?P(Object(n),!0).forEach((function(t){C(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):P(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function j(e,t){return j=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},j(e,t)}function S(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,u,a,i=[],l=!0,c=!1;try{if(u=(n=n.call(e)).next,0===t);else for(;!(l=(r=u.call(n)).done)&&(i.push(r.value),i.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw o}}return i}}(e,t)||H(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function k(e){return function(e){if(Array.isArray(e))return y(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||H(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function I(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}function H(e,t){if(e){if("string"==typeof e)return y(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?y(e,t):void 0}}var T=function(){return O((function e(){b(this,e)}),null,[{key:"getSettings",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.prevProps,r=void 0===n?{}:n,o=t.isInit,u=void 0!==o&&o,a=t.initOnlySettingKeys,i=void 0===a?[]:a,l=function(t){return!(u||!i.includes(t))&&r[t]===e[t]},c={};for(var s in e)"children"!==s&&!l(s)&&e.hasOwnProperty(s)&&(c[s]=e[s]);return c}}])}(),x=t.createContext(void 0),_=function(e){var n=e.children,r=t.useRef([]),o=t.useCallback((function(e,t){r.current[t]=e}),[]),u=t.useRef(new Map),a=t.useRef(new Map),c=t.useCallback((function(){return a.current.clear()}),[]),d=t.useRef(new Map),f=t.useCallback((function(){return d.current.clear()}),[]),p=t.useRef(new Map),m=t.useCallback((function(e){return function(t,n,r,o,u,c,f){var m="".concat(r,"-").concat(o),v=t.guid,y="".concat(v,"-").concat(m),h="".concat(m,"-").concat(v);if(a.current.has(m)&&(n.innerHTML=a.current.get(m).innerHTML),n&&!n.getAttribute("ghost-table")){for(var b=d.current.get(h),g=p.current.get(y);n.firstChild;)n.removeChild(n.firstChild);if(b&&g)n.appendChild(g);else{var O=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;t||(t=document),s||(s=t.createDocumentFragment());var o=null!=r?r:t.createElement("DIV");return s.appendChild(o),{portal:l.default.createPortal(e,o,n),portalContainer:o}}(i.default.createElement(e,{instance:t,TD:n,row:r,col:o,prop:u,value:c,cellProperties:f}),n.ownerDocument,h,g),C=O.portal,w=O.portalContainer;p.current.set(y,w),n.appendChild(w),d.current.set(h,C)}}return a.current.set("".concat(r,"-").concat(o),n),n}}),[]),v=t.useRef((function(){})),y=t.useCallback((function(e){v.current=e}),[]),h=t.useCallback((function(){v.current(k(d.current.values()))}),[]),b=t.useMemo((function(){return{componentRendererColumns:u.current,columnsSettings:r.current,emitColumnSettings:o,getRendererWrapper:m,clearPortalCache:f,clearRenderedCellCache:c,setRenderersPortalManagerRef:y,pushCellPortalsIntoPortalManager:h}}),[o,m,c,y,h]);return i.default.createElement(x.Provider,{value:b},n)};function D(){return t.useContext(x)}var M=t.createContext(void 0),A=function(e){var n=e.columnIndex,r=e.getOwnerDocument,o=e.children,u=t.useMemo((function(){return{columnIndex:n,getOwnerDocument:r}}),[n,r]);return i.default.createElement(M.Provider,{value:u},o)},V=["close","focus","open"],N=["getValue","setValue"],z={open:"onOpen",close:"onClose",prepare:"onPrepare",focus:"onFocus"};function q(e,t){return function(n){function r(n){var o;return b(this,r),o=h(this,r,[n]),t.current=o,Object.getOwnPropertyNames(c.default.editors.BaseEditor.prototype).forEach((function(t){if("constructor"!==t&&!N.includes(t)){var n=c.default.editors.BaseEditor.prototype[t];r.prototype[t]=function(){for(var r,o,u,a=arguments.length,i=Array(a),l=0;a>l;l++)i[l]=arguments[l];(V.includes(t)||(o=n.call.apply(n,[this].concat(i))),z[t]&&null!==(r=e.current)&&void 0!==r&&r[z[t]])&&(o=(u=e.current[z[t]]).call.apply(u,[this].concat(i)));return o}.bind(o)}})),o}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&j(e,t)}(r,n),O(r,[{key:"focus",value:function(){}},{key:"getValue",value:function(){return this.value}},{key:"setValue",value:function(e){this.value=e}},{key:"open",value:function(){}},{key:"close",value:function(){}}])}(c.default.editors.BaseEditor)}var B=t.createContext(void 0),W=function(e){return i.default.createElement(B.Provider,{value:{hooksRef:e.hooksRef,hotCustomEditorInstanceRef:e.hotCustomEditorInstanceRef}},e.children)};var F=function(e){return e.type===L},U=["_columnIndex","_getOwnerDocument","children"],L=function(e){var n=D(),r=n.componentRendererColumns,o=n.emitColumnSettings,u=n.getRendererWrapper,a=t.useContext(M),l=a.columnIndex,c=a.getOwnerDocument,s=t.useRef(null),p=t.useRef(null);t.useEffect((function(){var t=function(){var t=T.getSettings(Object.keys(e).filter((function(e){return!U.includes(e)})).reduce((function(t,n){return t[n]=e[n],t}),{}));return e.renderer?(t.renderer=u(e.renderer),r.set(l,!0)):e.hotRenderer&&(t.renderer=e.hotRenderer),e.editor?t.editor=q(s,p):e.hotEditor&&(t.editor=e.hotEditor),t}();o(t,l),f(e.children)||i.default.Children.toArray(e.children).length&&d("Unexpected children nodes found in HotColumn component. HotColumn components do not support any children.")}));var v=m(c(),e.editor);return i.default.createElement(W,{hooksRef:s,hotCustomEditorInstanceRef:p},v)},K=t.forwardRef((function(e,n){var r=S(t.useState([]),2),o=r[0],u=r[1];return t.useImperativeHandle(n,(function(){return u})),i.default.createElement(t.Fragment,null,o)}));function Y(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var $,G,J,Q,X={exports:{}};X.exports=function(){if(Q)return J;Q=1;var e=G?$:(G=1,$="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED");function t(){}function n(){}return n.resetWarningCache=t,J=function(){function r(t,n,r,o,u,a){if(a!==e){var i=Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}}function o(){return r}r.isRequired=r;var u={array:r,bigint:r,bool:r,func:r,number:r,object:r,string:r,symbol:r,any:r,arrayOf:o,element:r,elementType:r,instanceOf:o,node:r,objectOf:o,oneOf:o,oneOfType:o,shape:o,exact:o,checkPropTypes:n,resetWarningCache:t};return u.PropTypes=u,u}}()();var Z=Y(X.exports),ee=t.forwardRef((function(e,n){var r,a,l,s=t.useRef(null),p=t.useRef(null),y=t.useRef(null),h=t.useRef(null),b=t.useRef(),g=D(),O=t.useCallback((function(){return s.current&&s.current.isDestroyed?(console.warn("The Handsontable instance bound to this component was destroyed and cannot be used properly."),null):s.current}),[s]),C=t.useCallback((function(){return!s.current||s.current.isDestroyed}),[s]),w=t.useCallback((function(){g.clearRenderedCellCache(),g.componentRendererColumns.clear()}),[g]),R=t.useCallback((function(){return"undefined"!=typeof window?p.current?p.current.ownerDocument:document:null}),[p]),P=function(){var t,n=arguments.length>0&&void 0!==arguments[0]&&arguments[0],r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=C()?[]:(null===(t=O())||void 0===t||null===(t=t.getSettings())||void 0===t?void 0:t._initOnlySettings)||[],i=T.getSettings(e,{prevProps:r,isInit:n,initOnlySettingKeys:a});return i.columns=g.columnsSettings.length?g.columnsSettings:i.columns,e.renderer?(i.renderer=g.getRendererWrapper(e.renderer),g.componentRendererColumns.set("global",!0)):i.renderer=e.hotRenderer||o.getRenderer("text"),i.editor=e.editor?q(y,h):e.hotEditor||u.getEditor("text"),i},E=function(e){var t,n;e&&(null!==(t=e.getPlugin("autoRowSize"))&&void 0!==t&&t.enabled||null!==(n=e.getPlugin("autoColumnSize"))&&void 0!==n&&n.enabled)&&g.componentRendererColumns.size>0&&d("Your `HotTable` configuration includes `autoRowSize`/`autoColumnSize` options, which are not compatible with the component-based renderers`. Disable `autoRowSize` and `autoColumnSize` to prevent row and column misalignment.")};t.useEffect((function(){var t,n=P(!0);return b.current=e,s.current=new c.default.Core(p.current,n),s.current.addHook("beforeViewRender",(function(){g.clearPortalCache(),g.clearRenderedCellCache()})),s.current.addHook("afterViewRender",(function(){g.pushCellPortalsIntoPortalManager()})),s.current.init(),E(s.current),f(e.children)||(t=L,i.default.Children.toArray(e.children).some((function(e){return e.type!==t}))&&d("Unexpected children nodes found in HotTable component. Only HotColumn components are allowed.")),function(){var e;w(),null===(e=O())||void 0===e||e.destroy()}}),[]),r=function(){w();var t=O(),n=P(!1,b.current);b.current=e,null==t||t.updateSettings(n,!1),E(t),f(e.children)},l=i.default.useRef(!1),t.useEffect((function(){if(l.current)return r();l.current=!0}),a),t.useImperativeHandle(n,(function(){return{get hotElementRef(){return p.current},get hotInstance(){return O()}}}));var j=t.Children.toArray(e.children).filter(F).map((function(e,t){return i.default.createElement(A,{columnIndex:t,getOwnerDocument:R,key:t},e)})),S=v(e),k=m(R(),e.editor);return i.default.createElement(t.Fragment,null,i.default.createElement("div",Object.assign({ref:p},S),j),i.default.createElement(K,{ref:g.setRenderersPortalManagerRef}),i.default.createElement(W,{hooksRef:y,hotCustomEditorInstanceRef:h},k))}));ee.propTypes={style:Z.object,id:Z.string,className:Z.string};var te=["children"],ne=t.forwardRef((function(e,n){var r,o=e.children,u=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;u.length>r;r++)t.includes(n=u[r])||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,te),a=null!==(r=u.id)&&void 0!==r?r:t.useId();return i.default.createElement(_,null,i.default.createElement(ee,Object.assign({id:a},u,{ref:n}),o))}));ne.version="0.0.0-next-4b40c99-20241108",e.HotColumn=L,e.HotTable=ne,e.default=ne,e.isHotColumn=F,e.useHotEditor=function(e,n){var r=t.useContext(B),o=r.hooksRef,u=r.hotCustomEditorInstanceRef,a=S(t.useState(0),2),i=a[0],l=a[1],c=S(t.useState(),2),s=c[1],d=t.useDeferredValue(c[0]);return t.useImperativeHandle(o,(function(){return E(E({},e),{},{onOpen:function(){var t,n;s(null===(t=u.current)||void 0===t?void 0:t.getValue()),null==e||null===(n=e.onOpen)||void 0===n||n.call(e),l((function(e){return e+1}))}})}),n),t.useMemo((function(){return{get value(){return d},setValue:function(e){var t;s(e),null===(t=u.current)||void 0===t||t.setValue(e)},get isOpen(){var e,t;return null!==(e=null===(t=u.current)||void 0===t?void 0:t.isOpened())&&void 0!==e&&e},finishEditing:function(){var e;null===(e=u.current)||void 0===e||e.finishEditing()},get row(){var e;return null===(e=u.current)||void 0===e?void 0:e.row},get col(){var e;return null===(e=u.current)||void 0===e?void 0:e.col}}}),[i,u,d])},Object.defineProperty(e,"__esModule",{value:!0})}));
|
31
31
|
//# sourceMappingURL=react-handsontable.min.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"react-handsontable.min.js","sources":["../src/helpers.tsx","../src/settingsMapper.ts","../src/hotTableContext.tsx","../src/hotColumnContext.tsx","../src/hotEditor.tsx","../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/hotTableInner.tsx","../src/hotTable.tsx"],"sourcesContent":["import React, {\n ComponentType,\n CSSProperties,\n DependencyList,\n EffectCallback,\n ReactNode,\n ReactPortal,\n useEffect,\n} from 'react';\nimport ReactDOM from 'react-dom';\nimport { HotTableProps } from './types';\n\nlet bulkComponentContainer: DocumentFragment | null = 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 * Warning message for the `hot-renderer` obsolete renderer passing method.\n */\nexport const OBSOLETE_HOTRENDERER_WARNING = 'Providing a component-based renderer using `hot-renderer`-annotated component is no longer supported. ' +\n 'Pass your component using `renderer` prop of the `HotTable` or `HotColumn` component instead.';\n\n/**\n * Warning message for the `hot-editor` obsolete editor passing method.\n */\nexport const OBSOLETE_HOTEDITOR_WARNING = 'Providing a component-based editor using `hot-editor`-annotated component is no longer supported. ' +\n 'Pass your component using `editor` prop of the `HotTable` or `HotColumn` component instead.';\n\n/**\n * Warning message for the unexpected children of HotTable component.\n */\nexport const UNEXPECTED_HOTTABLE_CHILDREN_WARNING = 'Unexpected children nodes found in HotTable component. ' +\n 'Only HotColumn components are allowed.';\n\n/**\n * Warning message for the unexpected children of HotColumn component.\n */\nexport const UNEXPECTED_HOTCOLUMN_CHILDREN_WARNING = 'Unexpected children nodes found in HotColumn component. ' +\n 'HotColumn components do not support any children.';\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 * 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: any[]) {\n if (typeof console !== 'undefined') {\n console.warn(...args);\n }\n}\n\n/**\n * Detect if `hot-renderer` or `hot-editor` is defined, and if so, throw an incompatibility warning.\n *\n * @returns {boolean} 'true' if the warning was issued\n */\nexport function displayObsoleteRenderersEditorsWarning(children: ReactNode): boolean {\n if (hasChildElementOfType(children, 'hot-renderer')) {\n warn(OBSOLETE_HOTRENDERER_WARNING);\n return true;\n }\n if (hasChildElementOfType(children, 'hot-editor')) {\n warn(OBSOLETE_HOTEDITOR_WARNING);\n return true;\n }\n\n return false\n}\n\n/**\n * Detect if children of specified type are defined, and if so, throw an incompatibility warning.\n *\n * @param {ReactNode} children Component children nodes\n * @param {ComponentType} Component Component type to check\n * @returns {boolean} 'true' if the warning was issued\n */\nexport function displayChildrenOfTypeWarning(children: ReactNode, Component: ComponentType): boolean {\n const childrenArray: ReactNode[] = React.Children.toArray(children);\n\n if (childrenArray.some((child) => (child as React.ReactElement).type !== Component)) {\n warn(UNEXPECTED_HOTTABLE_CHILDREN_WARNING);\n return true;\n }\n\n return false\n}\n\n/**\n * Detect if children is defined, and if so, throw an incompatibility warning.\n *\n * @param {ReactNode} children Component children nodes\n * @returns {boolean} 'true' if the warning was issued\n */\nexport function displayAnyChildrenWarning(children: ReactNode): boolean {\n const childrenArray: ReactNode[] = React.Children.toArray(children);\n\n if (childrenArray.length) {\n warn(UNEXPECTED_HOTCOLUMN_CHILDREN_WARNING);\n return true;\n }\n\n return false\n}\n\n/**\n * Check the existence of elements of the provided `type` from the `HotColumn` component's children.\n *\n * @param {ReactNode} children HotTable children array.\n * @param {String} type Either `'hot-renderer'` or `'hot-editor'`.\n * @returns {boolean} `true` if the child of that type was found, `false` otherwise.\n */\nfunction hasChildElementOfType(children: ReactNode, type: 'hot-renderer' | 'hot-editor'): boolean {\n const childrenArray: ReactNode[] = React.Children.toArray(children);\n\n return childrenArray.some((child) => {\n return (child as React.ReactElement).props[type] !== void 0;\n });\n}\n\n/**\n * Create an editor portal.\n *\n * @param {Document} doc Document to be used.\n * @param {ComponentType} Editor Editor component or render function.\n * @returns {ReactPortal} The portal for the editor.\n */\nexport function createEditorPortal(doc: Document | null, Editor: HotTableProps['editor'] | undefined): ReactPortal | null {\n if (!doc || !Editor) {\n return null;\n }\n\n const editorElement = <Editor />;\n const containerProps = getContainerAttributesProps({}, 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 * Render a cell component to an external DOM node.\n *\n * @param {React.ReactElement} rElement React element to be used as a base for the component.\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: ReactPortal, portalContainer: HTMLElement}} An object containing the portal and its container.\n */\nexport function createPortal(rElement: React.ReactElement, ownerDocument: Document | null = document, portalKey: string, cachedContainer?: HTMLElement): {\n portal: 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 return {\n portal: ReactDOM.createPortal(rElement, 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 {HotTableProps} 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: HotTableProps, randomizeId: boolean = true): {id?: string, className: string, style: CSSProperties} {\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\n/**\n * A variant of useEffect hook that does not trigger on initial mount, only updates\n *\n * @param effect Effect function\n * @param deps Effect dependencies\n */\nexport function useUpdateEffect(effect: EffectCallback, deps?: DependencyList): void {\n const notInitialRender = React.useRef(false);\n\n useEffect(() => {\n if (notInitialRender.current) {\n return effect();\n } else {\n notInitialRender.current = true;\n }\n }, deps);\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 for (const key in properties) {\n if (\n key !== 'children' &&\n !shouldSkipProp(key as keyof Handsontable.GridSettings) &&\n properties.hasOwnProperty(key)\n ) {\n (newSettings as any)[key] = properties[key as keyof HotTableProps];\n }\n }\n\n return newSettings;\n }\n}\n","import Handsontable from 'handsontable/base';\nimport React, {\n ComponentType,\n FC,\n PropsWithChildren,\n ReactPortal,\n createContext,\n useCallback,\n useRef,\n useMemo,\n useContext,\n} from 'react';\nimport { ScopeIdentifier, HotRendererProps } from './types'\nimport { createPortal } from './helpers'\nimport { RenderersPortalManagerRef } from './renderersPortalManager'\n\nexport interface HotTableContextImpl {\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 readonly componentRendererColumns: Map<ScopeIdentifier, boolean>;\n\n /**\n * Array of object containing the column settings.\n */\n readonly columnsSettings: Handsontable.ColumnSettings[];\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 readonly emitColumnSettings: (columnSettings: Handsontable.ColumnSettings, columnIndex: number) => void;\n\n /**\n * Return a renderer wrapper function for the provided renderer component.\n *\n * @param {ComponentType<HotRendererProps>} Renderer React renderer component.\n * @returns {Handsontable.renderers.BaseRenderer} The Handsontable rendering function.\n */\n readonly getRendererWrapper: (Renderer: ComponentType<HotRendererProps>) => typeof Handsontable.renderers.BaseRenderer;\n\n /**\n * Clears portals cache.\n */\n readonly clearPortalCache: () => void;\n\n /**\n * Clears rendered cells cache.\n */\n readonly clearRenderedCellCache: () => void;\n\n /**\n * Set the renderers portal manager dispatch function.\n *\n * @param {RenderersPortalManagerRef} pm The PortalManager dispatch function.\n */\n readonly setRenderersPortalManagerRef: (pm: RenderersPortalManagerRef) => void;\n\n /**\n * Puts cell portals into portal manager and purges portals cache.\n */\n readonly pushCellPortalsIntoPortalManager: () => void;\n}\n\nconst HotTableContext = createContext<HotTableContextImpl | undefined>(undefined);\n\nconst HotTableContextProvider: FC<PropsWithChildren> = ({ children }) => {\n const columnsSettings = useRef<Handsontable.ColumnSettings[]>([]);\n\n const setHotColumnSettings = useCallback((columnSettings: Handsontable.ColumnSettings, columnIndex: number) => {\n columnsSettings.current[columnIndex] = columnSettings;\n }, [])\n\n const componentRendererColumns = useRef<Map<number | 'global', boolean>>(new Map());\n const renderedCellCache = useRef<Map<string, HTMLTableCellElement>>(new Map());\n const clearRenderedCellCache = useCallback(() => renderedCellCache.current.clear(), []);\n const portalCache = useRef<Map<string, ReactPortal>>(new Map());\n const clearPortalCache = useCallback(() => portalCache.current.clear(), []);\n const portalContainerCache = useRef<Map<string, HTMLElement>>(new Map());\n\n const getRendererWrapper = useCallback((Renderer: ComponentType<HotRendererProps>): typeof Handsontable.renderers.BaseRenderer => {\n return function __internalRenderer(instance, TD, row, col, prop, value, cellProperties) {\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.current.has(key)) {\n TD.innerHTML = renderedCellCache.current.get(key)!.innerHTML;\n }\n\n if (TD && !TD.getAttribute('ghost-table')) {\n const cachedPortal = portalCache.current.get(portalKey);\n const cachedPortalContainer = portalContainerCache.current.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 rendererElement = (\n <Renderer instance={instance}\n TD={TD}\n row={row}\n col={col}\n prop={prop}\n value={value}\n cellProperties={cellProperties}/>\n );\n\n const {portal, portalContainer} = createPortal(rendererElement, TD.ownerDocument, portalKey, cachedPortalContainer);\n\n portalContainerCache.current.set(portalContainerKey, portalContainer);\n TD.appendChild(portalContainer);\n\n portalCache.current.set(portalKey, portal);\n }\n }\n\n renderedCellCache.current.set(`${row}-${col}`, TD);\n return TD;\n };\n }, []);\n\n const renderersPortalManager = useRef<RenderersPortalManagerRef>(() => undefined);\n\n const setRenderersPortalManagerRef = useCallback((pmComponent: RenderersPortalManagerRef) => {\n renderersPortalManager.current = pmComponent;\n }, []);\n\n const pushCellPortalsIntoPortalManager = useCallback(() => {\n renderersPortalManager.current!([...portalCache.current.values()]);\n }, []);\n\n const contextImpl: HotTableContextImpl = useMemo(() => ({\n componentRendererColumns: componentRendererColumns.current,\n columnsSettings: columnsSettings.current,\n emitColumnSettings: setHotColumnSettings,\n getRendererWrapper,\n clearPortalCache,\n clearRenderedCellCache,\n setRenderersPortalManagerRef,\n pushCellPortalsIntoPortalManager\n }), [setHotColumnSettings, getRendererWrapper, clearRenderedCellCache, setRenderersPortalManagerRef, pushCellPortalsIntoPortalManager]);\n\n return (\n <HotTableContext.Provider value={contextImpl}>{children}</HotTableContext.Provider>\n );\n};\n\n/**\n * Exposes the table context object to components\n *\n * @returns HotTableContext\n */\nfunction useHotTableContext(): HotTableContextImpl {\n return useContext(HotTableContext)!;\n}\n\nexport { HotTableContextProvider, useHotTableContext };\n","import React, {\n FC,\n PropsWithChildren,\n createContext,\n useContext,\n useMemo,\n} from 'react';\n\nexport interface HotColumnContextImpl {\n /**\n * Column index within a HotTable.\n */\n readonly columnIndex: number;\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 readonly getOwnerDocument: () => Document | null;\n}\n\nconst HotColumnContext = createContext<HotColumnContextImpl | undefined>(undefined);\n\nconst HotColumnContextProvider: FC<PropsWithChildren<HotColumnContextImpl>> = ({ columnIndex, getOwnerDocument, children }) => {\n\n const contextImpl: HotColumnContextImpl = useMemo(() => ({\n columnIndex,\n getOwnerDocument\n }), [columnIndex, getOwnerDocument]);\n\n return (\n <HotColumnContext.Provider value={contextImpl}>{children}</HotColumnContext.Provider>\n );\n};\n\nconst useHotColumnContext = () => useContext(HotColumnContext)!;\n\nexport { useHotColumnContext, HotColumnContextProvider };\n","import React, {\n DependencyList,\n FC,\n MutableRefObject,\n ReactNode,\n Ref,\n RefObject,\n createContext,\n useContext,\n useDeferredValue,\n useImperativeHandle,\n useMemo,\n useState,\n} from 'react';\nimport Handsontable from 'handsontable/base';\nimport { HotEditorHooks, UseHotEditorImpl } from './types';\n\ntype HookPropName = keyof Handsontable.editors.BaseEditor | 'constructor';\n\nconst AbstractMethods: (keyof Handsontable.editors.BaseEditor)[] = [\n 'close',\n 'focus',\n 'open',\n];\nconst ExcludedMethods: (keyof Handsontable.editors.BaseEditor)[] = [\n 'getValue',\n 'setValue',\n];\n\nconst MethodsMap: Partial<\n Record<keyof Handsontable.editors.BaseEditor, keyof HotEditorHooks>\n> = {\n open: 'onOpen',\n close: 'onClose',\n prepare: 'onPrepare',\n focus: 'onFocus',\n};\n\n/**\n * Create a class to be passed to the Handsontable's settings.\n *\n * @param {RefObject<HotEditorHooks>} hooksRef Reference to component-based editor overridden hooks object.\n * @param {RefObject} instanceRef Reference to Handsontable-native custom editor class instance.\n * @returns {Function} A class to be passed to the Handsontable editor settings.\n */\nexport function makeEditorClass(\n hooksRef: MutableRefObject<HotEditorHooks | null>,\n instanceRef: MutableRefObject<Handsontable.editors.BaseEditor | null>\n): typeof Handsontable.editors.BaseEditor {\n return class CustomEditor\n extends Handsontable.editors.BaseEditor\n implements Handsontable.editors.BaseEditor\n {\n private value: any;\n\n constructor(hotInstance: Handsontable.Core) {\n super(hotInstance);\n instanceRef.current = this;\n\n (\n Object.getOwnPropertyNames(\n Handsontable.editors.BaseEditor.prototype\n ) as HookPropName[]\n ).forEach((propName) => {\n if (propName === 'constructor' || ExcludedMethods.includes(propName)) {\n return;\n }\n\n const baseMethod = Handsontable.editors.BaseEditor.prototype[propName];\n (CustomEditor.prototype as any)[propName] = function (\n this: CustomEditor,\n ...args: any[]\n ) {\n let result;\n\n if (!AbstractMethods.includes(propName)) {\n result = baseMethod.call(this, ...args); // call super\n }\n\n if (\n MethodsMap[propName] &&\n hooksRef.current?.[MethodsMap[propName]!]\n ) {\n result = (hooksRef.current[MethodsMap[propName]!] as any).call(\n this,\n ...args\n );\n }\n\n return result;\n }.bind(this);\n });\n }\n\n focus() {}\n\n getValue() {\n return this.value;\n }\n\n setValue(newValue: any) {\n this.value = newValue;\n }\n\n open() {}\n\n close() {}\n };\n}\n\ninterface EditorContextType {\n hooksRef: Ref<HotEditorHooks>;\n hotCustomEditorInstanceRef: RefObject<Handsontable.editors.BaseEditor>;\n}\n\n/**\n * Context to provide Handsontable-native custom editor class instance to overridden hooks object.\n */\nconst EditorContext = createContext<EditorContextType | undefined>(\n undefined\n);\n\ninterface EditorContextProviderProps {\n hooksRef: Ref<HotEditorHooks>;\n hotCustomEditorInstanceRef: RefObject<Handsontable.editors.BaseEditor>;\n children: ReactNode;\n}\n\n/**\n * Provider of the context that exposes Handsontable-native editor instance and passes hooks object\n * for custom editor components.\n *\n * @param {Ref} hooksRef Reference for component-based editor overridden hooks object.\n * @param {RefObject} hotCustomEditorInstanceRef Reference to Handsontable-native editor instance.\n */\nexport const EditorContextProvider: FC<EditorContextProviderProps> = ({\n hooksRef,\n hotCustomEditorInstanceRef,\n children,\n}) => {\n return (\n <EditorContext.Provider value={{ hooksRef, hotCustomEditorInstanceRef }}>\n {children}\n </EditorContext.Provider>\n );\n};\n\n/**\n * Hook that allows encapsulating custom behaviours of component-based editor by customizing passed ref with overridden hooks object.\n *\n * @param {HotEditorHooks} overriddenHooks Overrides specific for the custom editor.\n * @param {DependencyList} deps Overridden hooks object React dependency list.\n * @returns {UseHotEditorImpl} Editor API methods\n */\nexport function useHotEditor<T>(\n overriddenHooks?: HotEditorHooks,\n deps?: DependencyList\n): UseHotEditorImpl<T> {\n const { hooksRef, hotCustomEditorInstanceRef } =\n useContext(EditorContext)!;\n const [rerenderTrigger, setRerenderTrigger] = useState(0);\n const [editorValue, setEditorValue] = useState<T>();\n\n // return a deferred value that allows for optimizing performance by delaying the update of a value until the next render.\n const deferredValue = useDeferredValue(editorValue);\n\n useImperativeHandle(\n hooksRef,\n () => ({\n ...overriddenHooks,\n onOpen() {\n setEditorValue(hotCustomEditorInstanceRef.current?.getValue());\n overriddenHooks?.onOpen?.();\n setRerenderTrigger((t) => t + 1);\n },\n }),\n deps\n );\n\n return useMemo(\n () => ({\n get value(): T | undefined {\n return deferredValue;\n },\n setValue(newValue) {\n setEditorValue(newValue);\n hotCustomEditorInstanceRef.current?.setValue(newValue);\n },\n get isOpen() {\n return hotCustomEditorInstanceRef.current?.isOpened() ?? false;\n },\n finishEditing() {\n hotCustomEditorInstanceRef.current?.finishEditing();\n },\n get row() {\n return hotCustomEditorInstanceRef.current?.row;\n },\n get col() {\n return hotCustomEditorInstanceRef.current?.col;\n },\n }),\n [rerenderTrigger, hotCustomEditorInstanceRef, deferredValue]\n );\n}\n","import React, {\n FC,\n ReactElement,\n useEffect,\n useRef,\n} from 'react';\nimport { HotTableProps, HotColumnProps, HotEditorHooks } from './types';\nimport {\n createEditorPortal,\n displayAnyChildrenWarning,\n displayObsoleteRenderersEditorsWarning\n} from './helpers';\nimport { SettingsMapper } from './settingsMapper';\nimport Handsontable from 'handsontable/base';\nimport { useHotTableContext } from './hotTableContext'\nimport { useHotColumnContext } from './hotColumnContext'\nimport { EditorContextProvider, makeEditorClass } from './hotEditor';\n\nconst isHotColumn = (childNode: any): childNode is ReactElement => childNode.type === HotColumn;\n\nconst internalProps = ['_columnIndex', '_getOwnerDocument', 'children'];\n\nconst HotColumn: FC<HotColumnProps> = (props) => {\n const { componentRendererColumns, emitColumnSettings, getRendererWrapper } = useHotTableContext();\n const { columnIndex, getOwnerDocument } = useHotColumnContext();\n\n /**\n * Reference to component-based editor overridden hooks object.\n */\n const localEditorHooksRef = useRef<HotEditorHooks | null>(null);\n\n /**\n * Reference to HOT-native custom editor class instance.\n */\n const localEditorClassInstance = useRef<Handsontable.editors.BaseEditor | null>(null);\n\n /**\n * Logic performed after mounting & updating of the HotColumn component.\n */\n useEffect(() => {\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 const getSettingsProps = (): HotTableProps => {\n return Object.keys(props)\n .filter(key => !internalProps.includes(key))\n .reduce<HotTableProps>((obj, key) => {\n (obj as any)[key] = props[key];\n return obj;\n }, {});\n };\n\n /**\n * Create the column settings based on the data provided to the `HotColumn` component and its child components.\n */\n const createColumnSettings = (): Handsontable.ColumnSettings => {\n const columnSettings = SettingsMapper.getSettings(getSettingsProps()) as unknown as Handsontable.ColumnSettings;\n\n if (props.renderer) {\n columnSettings.renderer = getRendererWrapper(props.renderer);\n componentRendererColumns.set(columnIndex, true);\n } else if (props.hotRenderer) {\n columnSettings.renderer = props.hotRenderer;\n }\n\n if (props.editor) {\n columnSettings.editor = makeEditorClass(localEditorHooksRef, localEditorClassInstance);\n } else if (props.hotEditor) {\n columnSettings.editor = props.hotEditor;\n }\n\n return columnSettings\n };\n\n const columnSettings = createColumnSettings();\n emitColumnSettings(columnSettings, columnIndex);\n\n if (!displayObsoleteRenderersEditorsWarning(props.children)) {\n displayAnyChildrenWarning(props.children);\n }\n });\n\n const editorPortal = createEditorPortal(getOwnerDocument(), props.editor);\n\n /**\n * Render the portals of the editors, if there are any.\n *\n * @returns {ReactElement}\n */\n return (\n <EditorContextProvider hooksRef={localEditorHooksRef}\n hotCustomEditorInstanceRef={localEditorClassInstance}>\n {editorPortal}\n </EditorContextProvider>\n )\n}\n\nexport { HotColumn, isHotColumn };\n","import React, {\n Dispatch,\n ReactPortal,\n forwardRef,\n Fragment,\n useImperativeHandle,\n useState,\n} from 'react';\n\nexport type RenderersPortalManagerRef = Dispatch<ReactPortal[]>;\n\n/**\n * Component used to manage the renderer component portals.\n */\nexport const RenderersPortalManager = forwardRef<RenderersPortalManagerRef, {}>((_, ref) => {\n const [portals, setPortals] = useState<ReactPortal[]>([]);\n useImperativeHandle(ref, () => setPortals);\n\n return (\n <Fragment>\n {portals}\n </Fragment>\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, {\n Children,\n Fragment,\n useEffect,\n useCallback,\n useImperativeHandle,\n useRef,\n forwardRef\n} from 'react';\nimport Handsontable from 'handsontable/base';\nimport { SettingsMapper } from './settingsMapper';\nimport { RenderersPortalManager } from './renderersPortalManager';\nimport { HotColumn, isHotColumn } from './hotColumn';\nimport { HotEditorHooks, HotTableProps, HotTableRef } from './types';\nimport {\n HOT_DESTROYED_WARNING,\n AUTOSIZE_WARNING,\n createEditorPortal,\n getContainerAttributesProps,\n isCSR,\n warn,\n displayObsoleteRenderersEditorsWarning,\n useUpdateEffect,\n displayChildrenOfTypeWarning\n} from './helpers';\nimport PropTypes from 'prop-types';\nimport { getRenderer } from 'handsontable/renderers/registry';\nimport { getEditor } from 'handsontable/editors/registry';\nimport { useHotTableContext } from './hotTableContext'\nimport { HotColumnContextProvider } from './hotColumnContext'\nimport { EditorContextProvider, makeEditorClass } from './hotEditor';\n\nconst HotTableInner = forwardRef<\n HotTableRef,\n HotTableProps\n>((props, ref) => {\n\n /**\n * Reference to the Handsontable instance.\n */\n const __hotInstance = useRef<Handsontable | null>(null);\n\n /**\n * Reference to the main Handsontable DOM element.\n */\n const hotElementRef = useRef<HTMLDivElement>(null);\n\n /**\n * Reference to component-based editor overridden hooks object.\n */\n const globalEditorHooksRef = useRef<HotEditorHooks | null>(null);\n\n /**\n * Reference to HOT-native custom editor class instance.\n */\n const globalEditorClassInstance = useRef<Handsontable.editors.BaseEditor | null>(null);\n\n /**\n * Reference to the previous props object.\n */\n const prevProps = useRef<HotTableProps>();\n\n /**\n * HotTable context exposing helper functions.\n */\n const context = useHotTableContext();\n\n /**\n * Getter for the property storing the Handsontable instance.\n */\n const getHotInstance = useCallback((): Handsontable | null => {\n if (!__hotInstance.current || !__hotInstance.current.isDestroyed) {\n\n // Will return the Handsontable instance or `null` if it's not yet been created.\n return __hotInstance.current;\n\n } else {\n console.warn(HOT_DESTROYED_WARNING);\n\n return null;\n }\n }, [__hotInstance]);\n\n const isHotInstanceDestroyed = useCallback((): boolean => {\n return !__hotInstance.current || __hotInstance.current.isDestroyed;\n }, [__hotInstance]);\n\n /**\n * Clear both the editor and the renderer cache.\n */\n const clearCache = useCallback((): void => {\n context.clearRenderedCellCache();\n context.componentRendererColumns.clear();\n }, [context]);\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 const getOwnerDocument = useCallback((): Document | null => {\n if (isCSR()) {\n return hotElementRef.current ? hotElementRef.current.ownerDocument : document;\n }\n\n return null;\n }, [hotElementRef]);\n\n /**\n * Create a new settings object containing the column settings and global editors and renderers.\n *\n * @returns {Handsontable.GridSettings} New global set of settings for Handsontable.\n */\n const createNewGlobalSettings = (init: boolean = false, prevProps: HotTableProps = {}): Handsontable.GridSettings => {\n const initOnlySettingKeys = !isHotInstanceDestroyed() ? // Needed for React's double-rendering.\n ((getHotInstance()?.getSettings() as any)?._initOnlySettings || []) :\n [];\n const newSettings = SettingsMapper.getSettings(\n props, {\n prevProps,\n isInit: init,\n initOnlySettingKeys\n }\n );\n\n newSettings.columns = context.columnsSettings.length ? context.columnsSettings : newSettings.columns;\n\n if (props.renderer) {\n newSettings.renderer = context.getRendererWrapper(props.renderer);\n context.componentRendererColumns.set('global', true);\n } else {\n newSettings.renderer = props.hotRenderer || getRenderer('text');\n }\n\n if (props.editor) {\n newSettings.editor = makeEditorClass(globalEditorHooksRef, globalEditorClassInstance);\n } else {\n newSettings.editor = props.hotEditor || getEditor('text');\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 const displayAutoSizeWarning = (hotInstance: Handsontable | null): void => {\n if (\n hotInstance &&\n (\n hotInstance.getPlugin('autoRowSize')?.enabled ||\n hotInstance.getPlugin('autoColumnSize')?.enabled\n )\n ) {\n if (context.componentRendererColumns.size > 0) {\n warn(AUTOSIZE_WARNING);\n }\n }\n };\n\n /**\n * Initialize Handsontable after the component has mounted.\n */\n useEffect(() => {\n const newGlobalSettings = createNewGlobalSettings(true);\n\n // Update prevProps with the current props\n prevProps.current = props;\n\n __hotInstance.current = new Handsontable.Core(hotElementRef.current!, newGlobalSettings);\n\n /**\n * Handsontable's `beforeViewRender` hook callback.\n */\n __hotInstance.current.addHook('beforeViewRender', () => {\n context.clearPortalCache();\n context.clearRenderedCellCache();\n });\n\n /**\n * Handsontable's `afterViewRender` hook callback.\n */\n __hotInstance.current.addHook('afterViewRender', () => {\n context.pushCellPortalsIntoPortalManager();\n });\n\n __hotInstance.current.init();\n\n displayAutoSizeWarning(__hotInstance.current);\n\n if (!displayObsoleteRenderersEditorsWarning(props.children)) {\n displayChildrenOfTypeWarning(props.children, HotColumn);\n }\n\n /**\n * Destroy the Handsontable instance when the parent component unmounts.\n */\n return () => {\n clearCache();\n getHotInstance()?.destroy();\n }\n }, []);\n\n /**\n * Logic performed after the component update.\n */\n useUpdateEffect((): void => {\n clearCache();\n\n const hotInstance = getHotInstance();\n\n const newGlobalSettings = createNewGlobalSettings(false, prevProps.current);\n\n // Update prevProps with the current props\n prevProps.current = props;\n\n hotInstance?.updateSettings(newGlobalSettings, false);\n\n displayAutoSizeWarning(hotInstance);\n displayObsoleteRenderersEditorsWarning(props.children);\n });\n\n /**\n * Interface exposed to parent components by HotTable instance via React ref\n */\n useImperativeHandle(ref, () => ({\n get hotElementRef() {\n return hotElementRef.current!;\n },\n get hotInstance() {\n return getHotInstance();\n }\n }));\n\n /**\n * Render the component.\n */\n const hotColumnWrapped = Children.toArray(props.children)\n .filter(isHotColumn)\n .map((childNode, columnIndex) => (\n <HotColumnContextProvider columnIndex={columnIndex}\n getOwnerDocument={getOwnerDocument}\n key={columnIndex}>\n {childNode}\n </HotColumnContextProvider>\n ));\n\n const containerProps = getContainerAttributesProps(props);\n const editorPortal = createEditorPortal(getOwnerDocument(), props.editor);\n\n return (\n <Fragment>\n <div ref={hotElementRef} {...containerProps}>\n {hotColumnWrapped}\n </div>\n <RenderersPortalManager ref={context.setRenderersPortalManagerRef} />\n <EditorContextProvider hooksRef={globalEditorHooksRef}\n hotCustomEditorInstanceRef={globalEditorClassInstance}>\n {editorPortal}\n </EditorContextProvider>\n </Fragment>\n );\n});\n\n/**\n * Prop types to be checked at runtime.\n */\nHotTableInner.propTypes = {\n style: PropTypes.object,\n id: PropTypes.string,\n className: PropTypes.string\n};\n\nexport default HotTableInner;\nexport { HotTableInner };\n","import React, {\n ForwardRefExoticComponent,\n RefAttributes,\n useId,\n forwardRef,\n} from 'react';\nimport * as packageJson from '../package.json';\nimport { HotTableInner } from './hotTableInner';\nimport { HotTableProps, HotTableRef } from './types';\nimport { HotTableContextProvider } from './hotTableContext';\n\ninterface Version {\n version?: string;\n}\n\ntype HotTable = ForwardRefExoticComponent<HotTableProps & RefAttributes<HotTableRef>> & Version;\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 */\nconst HotTable: HotTable = forwardRef<HotTableRef, HotTableProps>(({ children, ...props }, ref) => {\n const componentId = props.id ?? useId();\n\n return (\n <HotTableContextProvider>\n <HotTableInner id={componentId} {...props} ref={ref}>\n {children}\n </HotTableInner>\n </HotTableContextProvider>\n );\n})\n\n/**\n * Package version.\n *\n * @returns The version number of the package.\n */\nHotTable.version = (packageJson as any).version;\n\nexport default HotTable;\nexport { HotTable };\n"],"names":["bulkComponentContainer","warn","_console","console","apply","arguments","displayObsoleteRenderersEditorsWarning","children","hasChildElementOfType","type","React","Children","toArray","some","child","props","createEditorPortal","doc","Editor","editorElement","createElement","containerProps","getContainerAttributesProps","className","concat","ReactDOM","createPortal","body","id","Math","random","toString","substring","undefined","style","SettingsMapper","_createClass","_classCallCheck","key","value","properties","_ref","length","_ref$prevProps","prevProps","_ref$isInit","isInit","_ref$initOnlySettingK","initOnlySettingKeys","shouldSkipProp","includes","newSettings","hasOwnProperty","HotTableContext","createContext","HotTableContextProvider","columnsSettings","useRef","setHotColumnSettings","useCallback","columnSettings","columnIndex","current","componentRendererColumns","Map","renderedCellCache","clearRenderedCellCache","clear","portalCache","clearPortalCache","portalContainerCache","getRendererWrapper","Renderer","instance","TD","row","col","prop","cellProperties","instanceGuid","guid","portalContainerKey","portalKey","has","innerHTML","get","getAttribute","cachedPortal","cachedPortalContainer","firstChild","removeChild","appendChild","_createPortal","rElement","ownerDocument","document","cachedContainer","createDocumentFragment","portalContainer","portal","set","renderersPortalManager","setRenderersPortalManagerRef","pmComponent","pushCellPortalsIntoPortalManager","_toConsumableArray","values","contextImpl","useMemo","emitColumnSettings","Provider","useHotTableContext","useContext","HotColumnContext","HotColumnContextProvider","getOwnerDocument","AbstractMethods","ExcludedMethods","MethodsMap","open","close","prepare","focus","makeEditorClass","hooksRef","instanceRef","_Handsontable$editors","CustomEditor","hotInstance","_this","_callSuper","Object","getOwnPropertyNames","Handsontable","editors","BaseEditor","prototype","forEach","propName","baseMethod","_hooksRef$current","result","_hooksRef$current$Met","_len","args","Array","_key","call","this","bind","_inherits","newValue","EditorContext","EditorContextProvider","hotCustomEditorInstanceRef","isHotColumn","childNode","HotColumn","internalProps","_useHotTableContext","_useHotColumnContext","localEditorHooksRef","localEditorClassInstance","useEffect","getSettings","keys","filter","reduce","obj","renderer","hotRenderer","editor","hotEditor","createColumnSettings","editorPortal","RenderersPortalManager","forwardRef","_","ref","_useState2","_slicedToArray","useState","portals","setPortals","useImperativeHandle","Fragment","propTypesModule","exports","ReactPropTypesSecret","ReactPropTypesSecret_1","emptyFunction","emptyFunctionWithReset","resetWarningCache","factoryWithThrowingShims","shim","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","HotTableInner","effect","deps","notInitialRender","__hotInstance","hotElementRef","globalEditorHooksRef","globalEditorClassInstance","context","getHotInstance","isDestroyed","isHotInstanceDestroyed","clearCache","window","createNewGlobalSettings","_getHotInstance","init","_initOnlySettings","columns","getRenderer","getEditor","displayAutoSizeWarning","_hotInstance$getPlugi","_hotInstance$getPlugi2","getPlugin","enabled","size","Component","newGlobalSettings","Core","addHook","_getHotInstance2","destroy","updateSettings","hotColumnWrapped","map","assign","propTypes","HotTable","_props$id","_objectWithoutProperties","_excluded","componentId","useId","version","overriddenHooks","_useContext","rerenderTrigger","setRerenderTrigger","_useState4","setEditorValue","deferredValue","useDeferredValue","_objectSpread","onOpen","_hotCustomEditorInsta","_overriddenHooks$onOp","getValue","t","setValue","_hotCustomEditorInsta2","isOpen","_hotCustomEditorInsta3","_hotCustomEditorInsta4","isOpened","finishEditing","_hotCustomEditorInsta5","_hotCustomEditorInsta6","_hotCustomEditorInsta7"],"mappings":"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","x_google_ignoreList":[7,8,9]}
|
1
|
+
{"version":3,"file":"react-handsontable.min.js","sources":["../src/helpers.tsx","../src/settingsMapper.ts","../src/hotTableContext.tsx","../src/hotColumnContext.tsx","../src/hotEditor.tsx","../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/hotTableInner.tsx","../src/hotTable.tsx"],"sourcesContent":["import React, {\n ComponentType,\n CSSProperties,\n DependencyList,\n EffectCallback,\n ReactNode,\n ReactPortal,\n useEffect,\n} from 'react';\nimport ReactDOM from 'react-dom';\nimport { HotTableProps } from './types';\n\nlet bulkComponentContainer: DocumentFragment | null = 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 * Warning message for the `hot-renderer` obsolete renderer passing method.\n */\nexport const OBSOLETE_HOTRENDERER_WARNING = 'Providing a component-based renderer using `hot-renderer`-annotated component is no longer supported. ' +\n 'Pass your component using `renderer` prop of the `HotTable` or `HotColumn` component instead.';\n\n/**\n * Warning message for the `hot-editor` obsolete editor passing method.\n */\nexport const OBSOLETE_HOTEDITOR_WARNING = 'Providing a component-based editor using `hot-editor`-annotated component is no longer supported. ' +\n 'Pass your component using `editor` prop of the `HotTable` or `HotColumn` component instead.';\n\n/**\n * Warning message for the unexpected children of HotTable component.\n */\nexport const UNEXPECTED_HOTTABLE_CHILDREN_WARNING = 'Unexpected children nodes found in HotTable component. ' +\n 'Only HotColumn components are allowed.';\n\n/**\n * Warning message for the unexpected children of HotColumn component.\n */\nexport const UNEXPECTED_HOTCOLUMN_CHILDREN_WARNING = 'Unexpected children nodes found in HotColumn component. ' +\n 'HotColumn components do not support any children.';\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 * 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: any[]) {\n if (typeof console !== 'undefined') {\n console.warn(...args);\n }\n}\n\n/**\n * Detect if `hot-renderer` or `hot-editor` is defined, and if so, throw an incompatibility warning.\n *\n * @returns {boolean} 'true' if the warning was issued\n */\nexport function displayObsoleteRenderersEditorsWarning(children: ReactNode): boolean {\n if (hasChildElementOfType(children, 'hot-renderer')) {\n warn(OBSOLETE_HOTRENDERER_WARNING);\n return true;\n }\n if (hasChildElementOfType(children, 'hot-editor')) {\n warn(OBSOLETE_HOTEDITOR_WARNING);\n return true;\n }\n\n return false\n}\n\n/**\n * Detect if children of specified type are defined, and if so, throw an incompatibility warning.\n *\n * @param {ReactNode} children Component children nodes\n * @param {ComponentType} Component Component type to check\n * @returns {boolean} 'true' if the warning was issued\n */\nexport function displayChildrenOfTypeWarning(children: ReactNode, Component: ComponentType): boolean {\n const childrenArray: ReactNode[] = React.Children.toArray(children);\n\n if (childrenArray.some((child) => (child as React.ReactElement).type !== Component)) {\n warn(UNEXPECTED_HOTTABLE_CHILDREN_WARNING);\n return true;\n }\n\n return false\n}\n\n/**\n * Detect if children is defined, and if so, throw an incompatibility warning.\n *\n * @param {ReactNode} children Component children nodes\n * @returns {boolean} 'true' if the warning was issued\n */\nexport function displayAnyChildrenWarning(children: ReactNode): boolean {\n const childrenArray: ReactNode[] = React.Children.toArray(children);\n\n if (childrenArray.length) {\n warn(UNEXPECTED_HOTCOLUMN_CHILDREN_WARNING);\n return true;\n }\n\n return false\n}\n\n/**\n * Check the existence of elements of the provided `type` from the `HotColumn` component's children.\n *\n * @param {ReactNode} children HotTable children array.\n * @param {String} type Either `'hot-renderer'` or `'hot-editor'`.\n * @returns {boolean} `true` if the child of that type was found, `false` otherwise.\n */\nfunction hasChildElementOfType(children: ReactNode, type: 'hot-renderer' | 'hot-editor'): boolean {\n const childrenArray: ReactNode[] = React.Children.toArray(children);\n\n return childrenArray.some((child) => {\n return (child as React.ReactElement).props[type] !== void 0;\n });\n}\n\n/**\n * Create an editor portal.\n *\n * @param {Document} doc Document to be used.\n * @param {ComponentType} Editor Editor component or render function.\n * @returns {ReactPortal} The portal for the editor.\n */\nexport function createEditorPortal(doc: Document | null, Editor: HotTableProps['editor'] | undefined): ReactPortal | null {\n if (!doc || !Editor) {\n return null;\n }\n\n const editorElement = <Editor />;\n const containerProps = getContainerAttributesProps({}, 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 * Render a cell component to an external DOM node.\n *\n * @param {React.ReactElement} rElement React element to be used as a base for the component.\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: ReactPortal, portalContainer: HTMLElement}} An object containing the portal and its container.\n */\nexport function createPortal(rElement: React.ReactElement, ownerDocument: Document | null = document, portalKey: string, cachedContainer?: HTMLElement): {\n portal: 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 return {\n portal: ReactDOM.createPortal(rElement, 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 {HotTableProps} 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: HotTableProps, randomizeId: boolean = true): {id?: string, className: string, style: CSSProperties} {\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\n/**\n * A variant of useEffect hook that does not trigger on initial mount, only updates\n *\n * @param effect Effect function\n * @param deps Effect dependencies\n */\nexport function useUpdateEffect(effect: EffectCallback, deps?: DependencyList): void {\n const notInitialRender = React.useRef(false);\n\n useEffect(() => {\n if (notInitialRender.current) {\n return effect();\n } else {\n notInitialRender.current = true;\n }\n }, deps);\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 for (const key in properties) {\n if (\n key !== 'children' &&\n !shouldSkipProp(key as keyof Handsontable.GridSettings) &&\n properties.hasOwnProperty(key)\n ) {\n (newSettings as any)[key] = properties[key as keyof HotTableProps];\n }\n }\n\n return newSettings;\n }\n}\n","import Handsontable from 'handsontable/base';\nimport React, {\n ComponentType,\n FC,\n PropsWithChildren,\n ReactPortal,\n createContext,\n useCallback,\n useRef,\n useMemo,\n useContext,\n} from 'react';\nimport { ScopeIdentifier, HotRendererProps } from './types'\nimport { createPortal } from './helpers'\nimport { RenderersPortalManagerRef } from './renderersPortalManager'\n\nexport interface HotTableContextImpl {\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 readonly componentRendererColumns: Map<ScopeIdentifier, boolean>;\n\n /**\n * Array of object containing the column settings.\n */\n readonly columnsSettings: Handsontable.ColumnSettings[];\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 readonly emitColumnSettings: (columnSettings: Handsontable.ColumnSettings, columnIndex: number) => void;\n\n /**\n * Return a renderer wrapper function for the provided renderer component.\n *\n * @param {ComponentType<HotRendererProps>} Renderer React renderer component.\n * @returns {Handsontable.renderers.BaseRenderer} The Handsontable rendering function.\n */\n readonly getRendererWrapper: (Renderer: ComponentType<HotRendererProps>) => typeof Handsontable.renderers.BaseRenderer;\n\n /**\n * Clears portals cache.\n */\n readonly clearPortalCache: () => void;\n\n /**\n * Clears rendered cells cache.\n */\n readonly clearRenderedCellCache: () => void;\n\n /**\n * Set the renderers portal manager dispatch function.\n *\n * @param {RenderersPortalManagerRef} pm The PortalManager dispatch function.\n */\n readonly setRenderersPortalManagerRef: (pm: RenderersPortalManagerRef) => void;\n\n /**\n * Puts cell portals into portal manager and purges portals cache.\n */\n readonly pushCellPortalsIntoPortalManager: () => void;\n}\n\nconst HotTableContext = createContext<HotTableContextImpl | undefined>(undefined);\n\nconst HotTableContextProvider: FC<PropsWithChildren> = ({ children }) => {\n const columnsSettings = useRef<Handsontable.ColumnSettings[]>([]);\n\n const setHotColumnSettings = useCallback((columnSettings: Handsontable.ColumnSettings, columnIndex: number) => {\n columnsSettings.current[columnIndex] = columnSettings;\n }, [])\n\n const componentRendererColumns = useRef<Map<number | 'global', boolean>>(new Map());\n const renderedCellCache = useRef<Map<string, HTMLTableCellElement>>(new Map());\n const clearRenderedCellCache = useCallback(() => renderedCellCache.current.clear(), []);\n const portalCache = useRef<Map<string, ReactPortal>>(new Map());\n const clearPortalCache = useCallback(() => portalCache.current.clear(), []);\n const portalContainerCache = useRef<Map<string, HTMLElement>>(new Map());\n\n const getRendererWrapper = useCallback((Renderer: ComponentType<HotRendererProps>): typeof Handsontable.renderers.BaseRenderer => {\n return function __internalRenderer(instance, TD, row, col, prop, value, cellProperties) {\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.current.has(key)) {\n TD.innerHTML = renderedCellCache.current.get(key)!.innerHTML;\n }\n\n if (TD && !TD.getAttribute('ghost-table')) {\n const cachedPortal = portalCache.current.get(portalKey);\n const cachedPortalContainer = portalContainerCache.current.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 rendererElement = (\n <Renderer instance={instance}\n TD={TD}\n row={row}\n col={col}\n prop={prop}\n value={value}\n cellProperties={cellProperties}/>\n );\n\n const {portal, portalContainer} = createPortal(rendererElement, TD.ownerDocument, portalKey, cachedPortalContainer);\n\n portalContainerCache.current.set(portalContainerKey, portalContainer);\n TD.appendChild(portalContainer);\n\n portalCache.current.set(portalKey, portal);\n }\n }\n\n renderedCellCache.current.set(`${row}-${col}`, TD);\n return TD;\n };\n }, []);\n\n const renderersPortalManager = useRef<RenderersPortalManagerRef>(() => undefined);\n\n const setRenderersPortalManagerRef = useCallback((pmComponent: RenderersPortalManagerRef) => {\n renderersPortalManager.current = pmComponent;\n }, []);\n\n const pushCellPortalsIntoPortalManager = useCallback(() => {\n renderersPortalManager.current!([...portalCache.current.values()]);\n }, []);\n\n const contextImpl: HotTableContextImpl = useMemo(() => ({\n componentRendererColumns: componentRendererColumns.current,\n columnsSettings: columnsSettings.current,\n emitColumnSettings: setHotColumnSettings,\n getRendererWrapper,\n clearPortalCache,\n clearRenderedCellCache,\n setRenderersPortalManagerRef,\n pushCellPortalsIntoPortalManager\n }), [setHotColumnSettings, getRendererWrapper, clearRenderedCellCache, setRenderersPortalManagerRef, pushCellPortalsIntoPortalManager]);\n\n return (\n <HotTableContext.Provider value={contextImpl}>{children}</HotTableContext.Provider>\n );\n};\n\n/**\n * Exposes the table context object to components\n *\n * @returns HotTableContext\n */\nfunction useHotTableContext(): HotTableContextImpl {\n return useContext(HotTableContext)!;\n}\n\nexport { HotTableContextProvider, useHotTableContext };\n","import React, {\n FC,\n PropsWithChildren,\n createContext,\n useContext,\n useMemo,\n} from 'react';\n\nexport interface HotColumnContextImpl {\n /**\n * Column index within a HotTable.\n */\n readonly columnIndex: number;\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 readonly getOwnerDocument: () => Document | null;\n}\n\nconst HotColumnContext = createContext<HotColumnContextImpl | undefined>(undefined);\n\nconst HotColumnContextProvider: FC<PropsWithChildren<HotColumnContextImpl>> = ({ columnIndex, getOwnerDocument, children }) => {\n\n const contextImpl: HotColumnContextImpl = useMemo(() => ({\n columnIndex,\n getOwnerDocument\n }), [columnIndex, getOwnerDocument]);\n\n return (\n <HotColumnContext.Provider value={contextImpl}>{children}</HotColumnContext.Provider>\n );\n};\n\nconst useHotColumnContext = () => useContext(HotColumnContext)!;\n\nexport { useHotColumnContext, HotColumnContextProvider };\n","import React, {\n DependencyList,\n FC,\n MutableRefObject,\n ReactNode,\n Ref,\n RefObject,\n createContext,\n useContext,\n useDeferredValue,\n useImperativeHandle,\n useMemo,\n useState,\n} from 'react';\nimport Handsontable from 'handsontable/base';\nimport { HotEditorHooks, UseHotEditorImpl } from './types';\n\ntype HookPropName = keyof Handsontable.editors.BaseEditor | 'constructor';\n\nconst AbstractMethods: (keyof Handsontable.editors.BaseEditor)[] = [\n 'close',\n 'focus',\n 'open',\n];\nconst ExcludedMethods: (keyof Handsontable.editors.BaseEditor)[] = [\n 'getValue',\n 'setValue',\n];\n\nconst MethodsMap: Partial<\n Record<keyof Handsontable.editors.BaseEditor, keyof HotEditorHooks>\n> = {\n open: 'onOpen',\n close: 'onClose',\n prepare: 'onPrepare',\n focus: 'onFocus',\n};\n\n/**\n * Create a class to be passed to the Handsontable's settings.\n *\n * @param {RefObject<HotEditorHooks>} hooksRef Reference to component-based editor overridden hooks object.\n * @param {RefObject} instanceRef Reference to Handsontable-native custom editor class instance.\n * @returns {Function} A class to be passed to the Handsontable editor settings.\n */\nexport function makeEditorClass(\n hooksRef: MutableRefObject<HotEditorHooks | null>,\n instanceRef: MutableRefObject<Handsontable.editors.BaseEditor | null>\n): typeof Handsontable.editors.BaseEditor {\n return class CustomEditor\n extends Handsontable.editors.BaseEditor\n implements Handsontable.editors.BaseEditor\n {\n private value: any;\n\n constructor(hotInstance: Handsontable.Core) {\n super(hotInstance);\n instanceRef.current = this;\n\n (\n Object.getOwnPropertyNames(\n Handsontable.editors.BaseEditor.prototype\n ) as HookPropName[]\n ).forEach((propName) => {\n if (propName === 'constructor' || ExcludedMethods.includes(propName)) {\n return;\n }\n\n const baseMethod = Handsontable.editors.BaseEditor.prototype[propName];\n (CustomEditor.prototype as any)[propName] = function (\n this: CustomEditor,\n ...args: any[]\n ) {\n let result;\n\n if (!AbstractMethods.includes(propName)) {\n result = baseMethod.call(this, ...args); // call super\n }\n\n if (\n MethodsMap[propName] &&\n hooksRef.current?.[MethodsMap[propName]!]\n ) {\n result = (hooksRef.current[MethodsMap[propName]!] as any).call(\n this,\n ...args\n );\n }\n\n return result;\n }.bind(this);\n });\n }\n\n focus() {}\n\n getValue() {\n return this.value;\n }\n\n setValue(newValue: any) {\n this.value = newValue;\n }\n\n open() {}\n\n close() {}\n };\n}\n\ninterface EditorContextType {\n hooksRef: Ref<HotEditorHooks>;\n hotCustomEditorInstanceRef: RefObject<Handsontable.editors.BaseEditor>;\n}\n\n/**\n * Context to provide Handsontable-native custom editor class instance to overridden hooks object.\n */\nconst EditorContext = createContext<EditorContextType | undefined>(\n undefined\n);\n\ninterface EditorContextProviderProps {\n hooksRef: Ref<HotEditorHooks>;\n hotCustomEditorInstanceRef: RefObject<Handsontable.editors.BaseEditor>;\n children: ReactNode;\n}\n\n/**\n * Provider of the context that exposes Handsontable-native editor instance and passes hooks object\n * for custom editor components.\n *\n * @param {Ref} hooksRef Reference for component-based editor overridden hooks object.\n * @param {RefObject} hotCustomEditorInstanceRef Reference to Handsontable-native editor instance.\n */\nexport const EditorContextProvider: FC<EditorContextProviderProps> = ({\n hooksRef,\n hotCustomEditorInstanceRef,\n children,\n}) => {\n return (\n <EditorContext.Provider value={{ hooksRef, hotCustomEditorInstanceRef }}>\n {children}\n </EditorContext.Provider>\n );\n};\n\n/**\n * Hook that allows encapsulating custom behaviours of component-based editor by customizing passed ref with overridden hooks object.\n *\n * @param {HotEditorHooks} overriddenHooks Overrides specific for the custom editor.\n * @param {DependencyList} deps Overridden hooks object React dependency list.\n * @returns {UseHotEditorImpl} Editor API methods\n */\nexport function useHotEditor<T>(\n overriddenHooks?: HotEditorHooks,\n deps?: DependencyList\n): UseHotEditorImpl<T> {\n const { hooksRef, hotCustomEditorInstanceRef } =\n useContext(EditorContext)!;\n const [rerenderTrigger, setRerenderTrigger] = useState(0);\n const [editorValue, setEditorValue] = useState<T>();\n\n // return a deferred value that allows for optimizing performance by delaying the update of a value until the next render.\n const deferredValue = useDeferredValue(editorValue);\n\n useImperativeHandle(\n hooksRef,\n () => ({\n ...overriddenHooks,\n onOpen() {\n setEditorValue(hotCustomEditorInstanceRef.current?.getValue());\n overriddenHooks?.onOpen?.();\n setRerenderTrigger((t) => t + 1);\n },\n }),\n deps\n );\n\n return useMemo(\n () => ({\n get value(): T | undefined {\n return deferredValue;\n },\n setValue(newValue) {\n setEditorValue(newValue);\n hotCustomEditorInstanceRef.current?.setValue(newValue);\n },\n get isOpen() {\n return hotCustomEditorInstanceRef.current?.isOpened() ?? false;\n },\n finishEditing() {\n hotCustomEditorInstanceRef.current?.finishEditing();\n },\n get row() {\n return hotCustomEditorInstanceRef.current?.row;\n },\n get col() {\n return hotCustomEditorInstanceRef.current?.col;\n },\n }),\n [rerenderTrigger, hotCustomEditorInstanceRef, deferredValue]\n );\n}\n","import React, {\n FC,\n ReactElement,\n useEffect,\n useRef,\n} from 'react';\nimport { HotTableProps, HotColumnProps, HotEditorHooks } from './types';\nimport {\n createEditorPortal,\n displayAnyChildrenWarning,\n displayObsoleteRenderersEditorsWarning\n} from './helpers';\nimport { SettingsMapper } from './settingsMapper';\nimport Handsontable from 'handsontable/base';\nimport { useHotTableContext } from './hotTableContext'\nimport { useHotColumnContext } from './hotColumnContext'\nimport { EditorContextProvider, makeEditorClass } from './hotEditor';\n\nconst isHotColumn = (childNode: any): childNode is ReactElement => childNode.type === HotColumn;\n\nconst internalProps = ['_columnIndex', '_getOwnerDocument', 'children'];\n\nconst HotColumn: FC<HotColumnProps> = (props) => {\n const { componentRendererColumns, emitColumnSettings, getRendererWrapper } = useHotTableContext();\n const { columnIndex, getOwnerDocument } = useHotColumnContext();\n\n /**\n * Reference to component-based editor overridden hooks object.\n */\n const localEditorHooksRef = useRef<HotEditorHooks | null>(null);\n\n /**\n * Reference to HOT-native custom editor class instance.\n */\n const localEditorClassInstance = useRef<Handsontable.editors.BaseEditor | null>(null);\n\n /**\n * Logic performed after mounting & updating of the HotColumn component.\n */\n useEffect(() => {\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 const getSettingsProps = (): HotTableProps => {\n return Object.keys(props)\n .filter(key => !internalProps.includes(key))\n .reduce<HotTableProps>((obj, key) => {\n (obj as any)[key] = props[key];\n return obj;\n }, {});\n };\n\n /**\n * Create the column settings based on the data provided to the `HotColumn` component and its child components.\n */\n const createColumnSettings = (): Handsontable.ColumnSettings => {\n const columnSettings = SettingsMapper.getSettings(getSettingsProps()) as unknown as Handsontable.ColumnSettings;\n\n if (props.renderer) {\n columnSettings.renderer = getRendererWrapper(props.renderer);\n componentRendererColumns.set(columnIndex, true);\n } else if (props.hotRenderer) {\n columnSettings.renderer = props.hotRenderer;\n }\n\n if (props.editor) {\n columnSettings.editor = makeEditorClass(localEditorHooksRef, localEditorClassInstance);\n } else if (props.hotEditor) {\n columnSettings.editor = props.hotEditor;\n }\n\n return columnSettings\n };\n\n const columnSettings = createColumnSettings();\n emitColumnSettings(columnSettings, columnIndex);\n\n if (!displayObsoleteRenderersEditorsWarning(props.children)) {\n displayAnyChildrenWarning(props.children);\n }\n });\n\n const editorPortal = createEditorPortal(getOwnerDocument(), props.editor);\n\n /**\n * Render the portals of the editors, if there are any.\n *\n * @returns {ReactElement}\n */\n return (\n <EditorContextProvider hooksRef={localEditorHooksRef}\n hotCustomEditorInstanceRef={localEditorClassInstance}>\n {editorPortal}\n </EditorContextProvider>\n )\n}\n\nexport { HotColumn, isHotColumn };\n","import React, {\n Dispatch,\n ReactPortal,\n forwardRef,\n Fragment,\n useImperativeHandle,\n useState,\n} from 'react';\n\nexport type RenderersPortalManagerRef = Dispatch<ReactPortal[]>;\n\n/**\n * Component used to manage the renderer component portals.\n */\nexport const RenderersPortalManager = forwardRef<RenderersPortalManagerRef, {}>((_, ref) => {\n const [portals, setPortals] = useState<ReactPortal[]>([]);\n useImperativeHandle(ref, () => setPortals);\n\n return (\n <Fragment>\n {portals}\n </Fragment>\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, {\n Children,\n Fragment,\n useEffect,\n useCallback,\n useImperativeHandle,\n useRef,\n forwardRef\n} from 'react';\nimport Handsontable from 'handsontable/base';\nimport { SettingsMapper } from './settingsMapper';\nimport { RenderersPortalManager } from './renderersPortalManager';\nimport { HotColumn, isHotColumn } from './hotColumn';\nimport { HotEditorHooks, HotTableProps, HotTableRef } from './types';\nimport {\n HOT_DESTROYED_WARNING,\n AUTOSIZE_WARNING,\n createEditorPortal,\n getContainerAttributesProps,\n isCSR,\n warn,\n displayObsoleteRenderersEditorsWarning,\n useUpdateEffect,\n displayChildrenOfTypeWarning\n} from './helpers';\nimport PropTypes from 'prop-types';\nimport { getRenderer } from 'handsontable/renderers/registry';\nimport { getEditor } from 'handsontable/editors/registry';\nimport { useHotTableContext } from './hotTableContext'\nimport { HotColumnContextProvider } from './hotColumnContext'\nimport { EditorContextProvider, makeEditorClass } from './hotEditor';\n\nconst HotTableInner = forwardRef<\n HotTableRef,\n HotTableProps\n>((props, ref) => {\n\n /**\n * Reference to the Handsontable instance.\n */\n const __hotInstance = useRef<Handsontable | null>(null);\n\n /**\n * Reference to the main Handsontable DOM element.\n */\n const hotElementRef = useRef<HTMLDivElement>(null);\n\n /**\n * Reference to component-based editor overridden hooks object.\n */\n const globalEditorHooksRef = useRef<HotEditorHooks | null>(null);\n\n /**\n * Reference to HOT-native custom editor class instance.\n */\n const globalEditorClassInstance = useRef<Handsontable.editors.BaseEditor | null>(null);\n\n /**\n * Reference to the previous props object.\n */\n const prevProps = useRef<HotTableProps>();\n\n /**\n * HotTable context exposing helper functions.\n */\n const context = useHotTableContext();\n\n /**\n * Getter for the property storing the Handsontable instance.\n */\n const getHotInstance = useCallback((): Handsontable | null => {\n if (!__hotInstance.current || !__hotInstance.current.isDestroyed) {\n\n // Will return the Handsontable instance or `null` if it's not yet been created.\n return __hotInstance.current;\n\n } else {\n console.warn(HOT_DESTROYED_WARNING);\n\n return null;\n }\n }, [__hotInstance]);\n\n const isHotInstanceDestroyed = useCallback((): boolean => {\n return !__hotInstance.current || __hotInstance.current.isDestroyed;\n }, [__hotInstance]);\n\n /**\n * Clear both the editor and the renderer cache.\n */\n const clearCache = useCallback((): void => {\n context.clearRenderedCellCache();\n context.componentRendererColumns.clear();\n }, [context]);\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 const getOwnerDocument = useCallback((): Document | null => {\n if (isCSR()) {\n return hotElementRef.current ? hotElementRef.current.ownerDocument : document;\n }\n\n return null;\n }, [hotElementRef]);\n\n /**\n * Create a new settings object containing the column settings and global editors and renderers.\n *\n * @returns {Handsontable.GridSettings} New global set of settings for Handsontable.\n */\n const createNewGlobalSettings = (init: boolean = false, prevProps: HotTableProps = {}): Handsontable.GridSettings => {\n const initOnlySettingKeys = !isHotInstanceDestroyed() ? // Needed for React's double-rendering.\n ((getHotInstance()?.getSettings() as any)?._initOnlySettings || []) :\n [];\n const newSettings = SettingsMapper.getSettings(\n props, {\n prevProps,\n isInit: init,\n initOnlySettingKeys\n }\n );\n\n newSettings.columns = context.columnsSettings.length ? context.columnsSettings : newSettings.columns;\n\n if (props.renderer) {\n newSettings.renderer = context.getRendererWrapper(props.renderer);\n context.componentRendererColumns.set('global', true);\n } else {\n newSettings.renderer = props.hotRenderer || getRenderer('text');\n }\n\n if (props.editor) {\n newSettings.editor = makeEditorClass(globalEditorHooksRef, globalEditorClassInstance);\n } else {\n newSettings.editor = props.hotEditor || getEditor('text');\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 const displayAutoSizeWarning = (hotInstance: Handsontable | null): void => {\n if (\n hotInstance &&\n (\n hotInstance.getPlugin('autoRowSize')?.enabled ||\n hotInstance.getPlugin('autoColumnSize')?.enabled\n )\n ) {\n if (context.componentRendererColumns.size > 0) {\n warn(AUTOSIZE_WARNING);\n }\n }\n };\n\n /**\n * Initialize Handsontable after the component has mounted.\n */\n useEffect(() => {\n const newGlobalSettings = createNewGlobalSettings(true);\n\n // Update prevProps with the current props\n prevProps.current = props;\n\n __hotInstance.current = new Handsontable.Core(hotElementRef.current!, newGlobalSettings);\n\n /**\n * Handsontable's `beforeViewRender` hook callback.\n */\n __hotInstance.current.addHook('beforeViewRender', () => {\n context.clearPortalCache();\n context.clearRenderedCellCache();\n });\n\n /**\n * Handsontable's `afterViewRender` hook callback.\n */\n __hotInstance.current.addHook('afterViewRender', () => {\n context.pushCellPortalsIntoPortalManager();\n });\n\n __hotInstance.current.init();\n\n displayAutoSizeWarning(__hotInstance.current);\n\n if (!displayObsoleteRenderersEditorsWarning(props.children)) {\n displayChildrenOfTypeWarning(props.children, HotColumn);\n }\n\n /**\n * Destroy the Handsontable instance when the parent component unmounts.\n */\n return () => {\n clearCache();\n getHotInstance()?.destroy();\n }\n }, []);\n\n /**\n * Logic performed after the component update.\n */\n useUpdateEffect((): void => {\n clearCache();\n\n const hotInstance = getHotInstance();\n\n const newGlobalSettings = createNewGlobalSettings(false, prevProps.current);\n\n // Update prevProps with the current props\n prevProps.current = props;\n\n hotInstance?.updateSettings(newGlobalSettings, false);\n\n displayAutoSizeWarning(hotInstance);\n displayObsoleteRenderersEditorsWarning(props.children);\n });\n\n /**\n * Interface exposed to parent components by HotTable instance via React ref\n */\n useImperativeHandle(ref, () => ({\n get hotElementRef() {\n return hotElementRef.current!;\n },\n get hotInstance() {\n return getHotInstance();\n }\n }));\n\n /**\n * Render the component.\n */\n const hotColumnWrapped = Children.toArray(props.children)\n .filter(isHotColumn)\n .map((childNode, columnIndex) => (\n <HotColumnContextProvider columnIndex={columnIndex}\n getOwnerDocument={getOwnerDocument}\n key={columnIndex}>\n {childNode}\n </HotColumnContextProvider>\n ));\n\n const containerProps = getContainerAttributesProps(props);\n const editorPortal = createEditorPortal(getOwnerDocument(), props.editor);\n\n return (\n <Fragment>\n <div ref={hotElementRef} {...containerProps}>\n {hotColumnWrapped}\n </div>\n <RenderersPortalManager ref={context.setRenderersPortalManagerRef} />\n <EditorContextProvider hooksRef={globalEditorHooksRef}\n hotCustomEditorInstanceRef={globalEditorClassInstance}>\n {editorPortal}\n </EditorContextProvider>\n </Fragment>\n );\n});\n\n/**\n * Prop types to be checked at runtime.\n */\nHotTableInner.propTypes = {\n style: PropTypes.object,\n id: PropTypes.string,\n className: PropTypes.string\n};\n\nexport default HotTableInner;\nexport { HotTableInner };\n","import React, {\n ForwardRefExoticComponent,\n RefAttributes,\n useId,\n forwardRef,\n} from 'react';\nimport * as packageJson from '../package.json';\nimport { HotTableInner } from './hotTableInner';\nimport { HotTableProps, HotTableRef } from './types';\nimport { HotTableContextProvider } from './hotTableContext';\n\ninterface Version {\n version?: string;\n}\n\ntype HotTable = ForwardRefExoticComponent<HotTableProps & RefAttributes<HotTableRef>> & Version;\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 */\nconst HotTable: HotTable = forwardRef<HotTableRef, HotTableProps>(({ children, ...props }, ref) => {\n const componentId = props.id ?? useId();\n\n return (\n <HotTableContextProvider>\n <HotTableInner id={componentId} {...props} ref={ref}>\n {children}\n </HotTableInner>\n </HotTableContextProvider>\n );\n})\n\n/**\n * Package version.\n *\n * @returns The version number of the package.\n */\nHotTable.version = (packageJson as any).version;\n\nexport default HotTable;\nexport { HotTable };\n"],"names":["bulkComponentContainer","warn","_console","console","apply","arguments","displayObsoleteRenderersEditorsWarning","children","hasChildElementOfType","type","React","Children","toArray","some","child","props","createEditorPortal","doc","Editor","editorElement","createElement","containerProps","getContainerAttributesProps","className","concat","ReactDOM","createPortal","body","id","Math","random","toString","substring","undefined","style","SettingsMapper","_createClass","_classCallCheck","key","value","properties","_ref","length","_ref$prevProps","prevProps","_ref$isInit","isInit","_ref$initOnlySettingK","initOnlySettingKeys","shouldSkipProp","includes","newSettings","hasOwnProperty","HotTableContext","createContext","HotTableContextProvider","columnsSettings","useRef","setHotColumnSettings","useCallback","columnSettings","columnIndex","current","componentRendererColumns","Map","renderedCellCache","clearRenderedCellCache","clear","portalCache","clearPortalCache","portalContainerCache","getRendererWrapper","Renderer","instance","TD","row","col","prop","cellProperties","instanceGuid","guid","portalContainerKey","portalKey","has","innerHTML","get","getAttribute","cachedPortal","cachedPortalContainer","firstChild","removeChild","appendChild","_createPortal","rElement","ownerDocument","document","cachedContainer","createDocumentFragment","portalContainer","portal","set","renderersPortalManager","setRenderersPortalManagerRef","pmComponent","pushCellPortalsIntoPortalManager","_toConsumableArray","values","contextImpl","useMemo","emitColumnSettings","Provider","useHotTableContext","useContext","HotColumnContext","HotColumnContextProvider","getOwnerDocument","AbstractMethods","ExcludedMethods","MethodsMap","open","close","prepare","focus","makeEditorClass","hooksRef","instanceRef","_Handsontable$editors","CustomEditor","hotInstance","_this","_callSuper","Object","getOwnPropertyNames","Handsontable","editors","BaseEditor","prototype","forEach","propName","baseMethod","_hooksRef$current","result","_hooksRef$current$Met","_len","args","Array","_key","call","this","bind","_inherits","newValue","EditorContext","EditorContextProvider","hotCustomEditorInstanceRef","isHotColumn","childNode","HotColumn","internalProps","_useHotTableContext","_useHotColumnContext","localEditorHooksRef","localEditorClassInstance","useEffect","getSettings","keys","filter","reduce","obj","renderer","hotRenderer","editor","hotEditor","createColumnSettings","editorPortal","RenderersPortalManager","forwardRef","_","ref","_useState2","_slicedToArray","useState","portals","setPortals","useImperativeHandle","Fragment","propTypesModule","exports","ReactPropTypesSecret","ReactPropTypesSecret_1","emptyFunction","emptyFunctionWithReset","resetWarningCache","factoryWithThrowingShims","shim","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","HotTableInner","effect","deps","notInitialRender","__hotInstance","hotElementRef","globalEditorHooksRef","globalEditorClassInstance","context","getHotInstance","isDestroyed","isHotInstanceDestroyed","clearCache","window","createNewGlobalSettings","_getHotInstance","init","_initOnlySettings","columns","getRenderer","getEditor","displayAutoSizeWarning","_hotInstance$getPlugi","_hotInstance$getPlugi2","getPlugin","enabled","size","Component","newGlobalSettings","Core","addHook","_getHotInstance2","destroy","updateSettings","hotColumnWrapped","map","assign","propTypes","HotTable","_props$id","_objectWithoutProperties","_excluded","componentId","useId","version","overriddenHooks","_useContext","rerenderTrigger","setRerenderTrigger","_useState4","setEditorValue","deferredValue","useDeferredValue","_objectSpread","onOpen","_hotCustomEditorInsta","_overriddenHooks$onOp","getValue","t","setValue","_hotCustomEditorInsta2","isOpen","_hotCustomEditorInsta3","_hotCustomEditorInsta4","isOpened","finishEditing","_hotCustomEditorInsta5","_hotCustomEditorInsta6","_hotCustomEditorInsta7"],"mappings":"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","x_google_ignoreList":[7,8,9]}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@handsontable/react-wrapper",
|
3
|
-
"version": "0.0.0-next-
|
3
|
+
"version": "0.0.0-next-4b40c99-20241108",
|
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",
|
@@ -71,7 +71,7 @@
|
|
71
71
|
"@types/react-dom": "^18.2.0",
|
72
72
|
"@types/react-redux": "^7.1.7",
|
73
73
|
"cross-env": "^7.0.3",
|
74
|
-
"handsontable": "0.0.0-next-
|
74
|
+
"handsontable": "0.0.0-next-4b40c99-20241108",
|
75
75
|
"jest": "^29.7.0",
|
76
76
|
"prop-types": "^15.7.2",
|
77
77
|
"react": "^18.2.0",
|
@@ -86,7 +86,7 @@
|
|
86
86
|
"uglify-js": "^3.4.9"
|
87
87
|
},
|
88
88
|
"peerDependencies": {
|
89
|
-
"handsontable": "0.0.0-next-
|
89
|
+
"handsontable": "0.0.0-next-4b40c99-20241108"
|
90
90
|
},
|
91
91
|
"scripts": {
|
92
92
|
"build": "npm run clean && npm run build:commonjs && npm run build:es && npm run build:umd && npm run build:min && npm run prepare:types",
|