@handsontable/react-wrapper 0.0.0-next-5b14d3c-20241107 → 0.0.0-next-4b40c99-20241108
Sign up to get free protection for your applications and to get access to all the features.
@@ -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",
|