@gravity-ui/dashkit 10.4.2 → 10.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"passive-resize.test.js","sourceRoot":"../../../../../src","sources":["components/GridLayout/__tests__/passive-resize.test.tsx"],"names":[],"mappings":"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","sourcesContent":["/** @jest-environment jsdom */\n\nimport React from 'react';\n\nimport {act, fireEvent, render} from '@testing-library/react';\nimport ReactGridLayout from 'react-grid-layout';\n\nimport type {ConfigItem} from '../../../shared';\nimport GridItem, {GridItem as GridItemComponent} from '../../GridItem/GridItem';\nimport {Layout} from '../ReactGridLayout';\n\njest.mock('../../Item/Item', () => ({\n __esModule: true,\n default: () => null,\n}));\n\ntype ResizeObserverCallback = (entries: ResizeObserverEntry[]) => void;\n\nconst resizeObservers: TestResizeObserver[] = [];\nconst mockPolyfillObservers: TestResizeObserver[] = [];\nconst animationFrameCallbacks = new Map<number, FrameRequestCallback>();\nlet animationFrameId = 0;\n\njest.mock('resize-observer-polyfill', () => ({\n __esModule: true,\n default: class {\n readonly callback: ResizeObserverCallback;\n disconnect = jest.fn();\n elements = new Set<Element>();\n\n constructor(callback: ResizeObserverCallback) {\n this.callback = callback;\n mockPolyfillObservers.push(this as unknown as TestResizeObserver);\n }\n\n observe = (element: Element) => {\n this.elements.add(element);\n };\n\n unobserve = (element: Element) => {\n this.elements.delete(element);\n };\n },\n}));\n\nclass TestResizeObserver {\n readonly callback: ResizeObserverCallback;\n disconnect = jest.fn();\n elements = new Set<Element>();\n\n unobserve = jest.fn((element: Element) => {\n this.elements.delete(element);\n });\n\n constructor(callback: ResizeObserverCallback) {\n this.callback = callback;\n resizeObservers.push(this);\n }\n\n observe(element: Element) {\n this.elements.add(element);\n }\n}\n\nconst emitResize = (width: number) => {\n resizeObservers.forEach((observer) => {\n observer.elements.forEach((element) => {\n observer.callback([{contentRect: {width}, target: element} as ResizeObserverEntry]);\n });\n });\n};\n\nconst emitResizeFor = (element: Element, width: number) => {\n resizeObservers\n .filter((observer) => observer.elements.has(element))\n .forEach((observer) => {\n observer.callback([{contentRect: {width}, target: element} as ResizeObserverEntry]);\n });\n};\n\nconst emitPolyfillResizeFor = (element: Element, width: number) => {\n mockPolyfillObservers\n .filter((observer) => observer.elements.has(element))\n .forEach((observer) => {\n observer.callback([{contentRect: {width}, target: element} as ResizeObserverEntry]);\n });\n};\n\nconst runAnimationFrame = () => {\n const callbacks = Array.from(animationFrameCallbacks.values());\n animationFrameCallbacks.clear();\n callbacks.forEach((callback) => callback(0));\n};\n\nconst gridItem = (\n <GridItem\n adjustWidgetLayout={jest.fn()}\n id=\"item\"\n item={{data: {}} as ConfigItem}\n key=\"item\"\n layout={[]}\n />\n);\n\ndescribe('Layout passive resize', () => {\n beforeEach(() => {\n resizeObservers.length = 0;\n mockPolyfillObservers.length = 0;\n animationFrameCallbacks.clear();\n animationFrameId = 0;\n global.ResizeObserver = TestResizeObserver as unknown as typeof ResizeObserver;\n window.requestAnimationFrame = jest.fn((callback) => {\n animationFrameId += 1;\n animationFrameCallbacks.set(animationFrameId, callback);\n return animationFrameId;\n });\n window.cancelAnimationFrame = jest.fn((frame) => {\n animationFrameCallbacks.delete(frame);\n });\n });\n\n test('does not render ReactGridLayout for passive container resize', () => {\n const renderSpy = jest.spyOn(ReactGridLayout.prototype, 'render');\n\n const {container} = render(\n <Layout cols={12} layout={[{h: 1, i: 'item', w: 1, x: 0, y: 0}]} rowHeight={100}>\n <div key=\"item\" />\n </Layout>,\n );\n const rendersBeforeResize = renderSpy.mock.calls.length;\n\n act(() => {\n emitResize(900);\n fireEvent.pointerDown(container.firstElementChild as HTMLElement);\n });\n\n expect(renderSpy).toHaveBeenCalledTimes(rendersBeforeResize);\n renderSpy.mockRestore();\n });\n\n test.each([undefined, null] as const)(\n 'uses polyfill when native ResizeObserver is %p',\n (resizeObserver) => {\n global.ResizeObserver = resizeObserver as unknown as typeof ResizeObserver;\n const {container} = render(\n <Layout\n cols={12}\n isDraggable={false}\n isResizable={false}\n layout={[{h: 1, i: 'item', w: 3, x: 2, y: 0}]}\n rowHeight={100}\n >\n <div key=\"item\" />\n </Layout>,\n );\n const layout = container.querySelector<HTMLElement>('.react-grid-layout');\n const item = container.querySelector<HTMLElement>('.react-grid-item');\n\n expect(mockPolyfillObservers[0].elements.has(layout as HTMLElement)).toBe(true);\n act(() => {\n emitPolyfillResizeFor(layout as HTMLElement, 900);\n });\n\n expect(item?.style.width).toBe('213px');\n expect(item?.style.transform).toBe('translate(158px,10px)');\n },\n );\n\n test('commits only latest width after delivery between two quiet frames', () => {\n const renderSpy = jest.spyOn(ReactGridLayout.prototype, 'render');\n render(\n <Layout\n cols={12}\n isDraggable={true}\n layout={[{h: 1, i: 'item', w: 1, x: 0, y: 0}]}\n rowHeight={100}\n >\n <div key=\"item\" />\n </Layout>,\n );\n const rendersBeforeResize = renderSpy.mock.calls.length;\n\n act(() => {\n emitResize(900);\n runAnimationFrame();\n emitResize(1000);\n });\n\n expect(renderSpy).toHaveBeenCalledTimes(rendersBeforeResize);\n act(() => {\n runAnimationFrame();\n });\n expect(renderSpy).toHaveBeenCalledTimes(rendersBeforeResize);\n act(() => {\n runAnimationFrame();\n });\n expect(renderSpy).toHaveBeenCalledTimes(rendersBeforeResize + 1);\n expect((renderSpy.mock.instances.at(-1) as unknown as ReactGridLayout).props.width).toBe(\n 1000,\n );\n renderSpy.mockRestore();\n });\n\n test('cancels second quiet frame on unmount', () => {\n const renderSpy = jest.spyOn(ReactGridLayout.prototype, 'render');\n const {unmount} = render(\n <Layout\n cols={12}\n isDraggable={true}\n layout={[{h: 1, i: 'item', w: 1, x: 0, y: 0}]}\n rowHeight={100}\n >\n <div key=\"item\" />\n </Layout>,\n );\n const rendersBeforeResize = renderSpy.mock.calls.length;\n\n act(() => {\n emitResize(900);\n runAnimationFrame();\n });\n expect(renderSpy).toHaveBeenCalledTimes(rendersBeforeResize);\n\n unmount();\n expect(window.cancelAnimationFrame).toHaveBeenLastCalledWith(2);\n act(() => {\n runAnimationFrame();\n });\n expect(renderSpy).toHaveBeenCalledTimes(rendersBeforeResize);\n renderSpy.mockRestore();\n });\n\n test('keeps distinct view item geometry after passive resize', () => {\n const {container} = render(\n <Layout\n cols={12}\n isDraggable={false}\n isResizable={false}\n layout={[\n {h: 1, i: 'first', w: 1, x: 0, y: 0},\n {h: 1, i: 'second', w: 3, x: 2, y: 0},\n ]}\n rowHeight={100}\n >\n <div key=\"first\" />\n <div key=\"second\" />\n </Layout>,\n );\n\n act(() => {\n emitResize(1000);\n });\n\n const first = container.querySelector<HTMLElement>(\n '.react-grid-item[data-dashkit-grid-x=\"0\"]',\n );\n const second = container.querySelector<HTMLElement>(\n '.react-grid-item[data-dashkit-grid-x=\"2\"]',\n );\n expect(first?.style.transform).toBe('translate(10px,10px)');\n expect(first?.style.width).toBe('73px');\n expect(second?.style.transform).toBe('translate(175px,10px)');\n expect(second?.style.width).toBe('238px');\n });\n\n test('forwards transform mode through GridItem and uses transforms by default', () => {\n const {container} = render(\n <Layout\n cols={12}\n isDraggable={false}\n isResizable={false}\n layout={[{h: 1, i: 'item', w: 3, x: 2, y: 0}]}\n rowHeight={100}\n >\n {gridItem}\n </Layout>,\n );\n const item = container.querySelector<HTMLElement>('.react-grid-item');\n\n act(() => {\n emitResize(900);\n });\n\n expect(item?.style.width).toBe('213px');\n expect(item?.dataset.dashkitGridUseCssTransforms).toBe('true');\n expect(item?.style.transform).toBe('translate(158px,10px)');\n expect(item?.style.left).toBe('');\n expect(item?.style.top).toBe('');\n });\n\n test('switches to top and left without stale transform when CSS transforms are disabled', () => {\n const {container, rerender} = render(\n <Layout\n cols={12}\n isDraggable={false}\n isResizable={false}\n layout={[{h: 1, i: 'item', w: 3, x: 2, y: 0}]}\n rowHeight={100}\n >\n {gridItem}\n </Layout>,\n );\n const item = container.querySelector<HTMLElement>('.react-grid-item');\n\n act(() => {\n emitResize(900);\n });\n rerender(\n <Layout\n cols={12}\n isDraggable={false}\n isResizable={false}\n layout={[{h: 1, i: 'item', w: 3, x: 2, y: 0}]}\n rowHeight={100}\n useCSSTransforms={false}\n >\n {gridItem}\n </Layout>,\n );\n act(() => {\n emitResize(1000);\n });\n\n expect(item?.dataset.dashkitGridUseCssTransforms).toBe('false');\n expect(item?.style.width).toBe('238px');\n expect(item?.style.left).toBe('175px');\n expect(item?.style.top).toBe('10px');\n expect(item?.style.transform).toBe('');\n });\n\n test('resizes only direct grid items when layouts are nested', () => {\n const {container, getByTestId} = render(\n <Layout\n cols={12}\n isDraggable={false}\n isResizable={false}\n layout={[{h: 1, i: 'outer', w: 3, x: 2, y: 0}]}\n rowHeight={100}\n >\n <div data-testid=\"outer-item\" key=\"outer\">\n <Layout\n cols={12}\n isDraggable={false}\n isResizable={false}\n layout={[{h: 1, i: 'inner', w: 2, x: 1, y: 0}]}\n rowHeight={100}\n >\n <div data-testid=\"inner-item\" key=\"inner\" />\n </Layout>\n </div>\n </Layout>,\n );\n const layouts = container.querySelectorAll('.react-grid-layout');\n const outerItem = getByTestId('outer-item');\n const innerItem = getByTestId('inner-item');\n\n act(() => {\n emitResizeFor(layouts[1], 500);\n });\n const innerWidth = innerItem.style.width;\n const innerTransform = innerItem.style.transform;\n expect(innerWidth).toBe('72px');\n expect(innerTransform).toBe('translate(51px,10px)');\n\n act(() => {\n emitResizeFor(layouts[0], 1000);\n });\n\n expect(outerItem.style.width).toBe('238px');\n expect(innerItem.style.width).toBe(innerWidth);\n expect(innerItem.style.transform).toBe(innerTransform);\n });\n\n test('updates editable idle geometry and refreshes RGL width before interaction', () => {\n const renderSpy = jest.spyOn(ReactGridLayout.prototype, 'render');\n const {container} = render(\n <Layout\n cols={12}\n isDraggable={true}\n isResizable={true}\n layout={[{h: 1, i: 'item', w: 3, x: 2, y: 0}]}\n rowHeight={100}\n >\n <div key=\"item\" />\n </Layout>,\n );\n const item = container.querySelector<HTMLElement>(\n '.react-grid-item[data-dashkit-grid-cols]',\n );\n\n act(() => {\n emitResize(900);\n });\n\n expect(item?.style.width).toBe('213px');\n expect(item?.style.transform).toBe('translate(158px,10px)');\n\n item?.classList.add('react-draggable-dragging');\n act(() => {\n emitResize(1000);\n });\n expect(item?.style.width).toBe('213px');\n item?.classList.remove('react-draggable-dragging');\n\n act(() => {\n fireEvent.pointerDown(item as HTMLElement);\n });\n\n const lastRenderInstance = renderSpy.mock.instances.at(-1) as unknown as ReactGridLayout;\n expect(lastRenderInstance.props.width).toBe(1000);\n renderSpy.mockRestore();\n });\n\n test('syncs RGL width before native and shared drag-over after passive resize', () => {\n const renderSpy = jest.spyOn(ReactGridLayout.prototype, 'render');\n const dragStateRef = {current: {isDragging: true, sourceGroup: 'source'}};\n const widths = [900, 1000];\n const onDropDragOver = jest.fn(() => {\n const instance = renderSpy.mock.instances.at(-1) as unknown as ReactGridLayout;\n\n expect(instance.props.width).toBe(widths[onDropDragOver.mock.calls.length - 1]);\n return {};\n });\n const {container} = render(\n <Layout\n cols={12}\n dragStateRef={dragStateRef}\n group=\"target\"\n isDroppable={true}\n layout={[{h: 1, i: 'item', w: 1, x: 0, y: 0}]}\n onDropDragOver={onDropDragOver}\n rowHeight={100}\n >\n <div key=\"item\" />\n </Layout>,\n );\n const layout = container.querySelector<HTMLElement>('.react-grid-layout');\n const rendersBeforeResize = renderSpy.mock.calls.length;\n\n act(() => {\n emitResizeFor(layout as HTMLElement, 900);\n });\n expect(renderSpy).toHaveBeenCalledTimes(rendersBeforeResize);\n\n act(() => {\n fireEvent.dragOver(layout as HTMLElement, {clientX: 100, clientY: 100});\n });\n\n act(() => {\n emitResizeFor(layout as HTMLElement, 1000);\n });\n const rendersBeforeSharedDragOver = renderSpy.mock.calls.length;\n\n act(() => {\n fireEvent.mouseEnter(layout as HTMLElement);\n fireEvent.mouseMove(layout as HTMLElement, {clientX: 100, clientY: 100});\n });\n\n expect(renderSpy.mock.calls.length).toBeGreaterThan(rendersBeforeSharedDragOver);\n expect(onDropDragOver).toHaveBeenCalledTimes(2);\n renderSpy.mockRestore();\n });\n\n test('refreshes the outer-item cache when the layout children change', () => {\n const {container, rerender} = render(\n <Layout\n cols={12}\n isDraggable={true}\n isResizable={true}\n layout={[{h: 1, i: 'first', w: 1, x: 0, y: 0}]}\n rowHeight={100}\n >\n <div key=\"first\" />\n </Layout>,\n );\n\n act(() => {\n emitResize(900);\n });\n rerender(\n <Layout\n cols={12}\n isDraggable={true}\n isResizable={true}\n layout={[\n {h: 1, i: 'first', w: 1, x: 0, y: 0},\n {h: 1, i: 'second', w: 2, x: 1, y: 0},\n ]}\n rowHeight={100}\n >\n <div key=\"first\" />\n <div key=\"second\" />\n </Layout>,\n );\n\n const second = container.querySelector<HTMLElement>(\n '.react-grid-item[data-dashkit-grid-x=\"1\"]',\n );\n expect(second?.style.width).toBe('138px');\n expect(second?.style.transform).toBe('translate(84px,10px)');\n });\n\n test('measures after mount, accepts a visible width after zero and disconnects observer', () => {\n const renderSpy = jest.spyOn(ReactGridLayout.prototype, 'render');\n const {container, unmount} = render(\n <Layout\n cols={12}\n isDraggable={true}\n layout={[{h: 1, i: 'item', w: 1, x: 0, y: 0}]}\n measureBeforeMount={true}\n rowHeight={100}\n >\n <div key=\"item\" />\n </Layout>,\n );\n\n const initialRender = renderSpy.mock.instances.at(-1) as unknown as ReactGridLayout;\n expect(initialRender.props.width).toBe(0);\n act(() => {\n emitResize(900);\n });\n expect(\n container.querySelector<HTMLElement>('.react-grid-item[data-dashkit-grid-cols]')?.style\n .width,\n ).toBe('64px');\n\n unmount();\n expect(resizeObservers[0].disconnect).toHaveBeenCalledTimes(1);\n renderSpy.mockRestore();\n });\n\n test('keeps WidthProvider placeholder class names', () => {\n render(\n <Layout\n className=\"custom-layout\"\n cols={12}\n layout={[{h: 1, i: 'item', w: 1, x: 0, y: 0}]}\n measureBeforeMount={true}\n rowHeight={100}\n >\n <div key=\"item\" />\n </Layout>,\n );\n\n expect(resizeObservers[0].unobserve.mock.calls[0][0].className).toBe(\n 'custom-layout react-grid-layout',\n );\n });\n\n test('moves observer and pointer listener from measurement placeholder to grid root', () => {\n const renderSpy = jest.spyOn(ReactGridLayout.prototype, 'render');\n const {container} = render(\n <Layout\n cols={12}\n isDraggable={true}\n layout={[{h: 1, i: 'item', w: 3, x: 2, y: 0}]}\n measureBeforeMount={true}\n rowHeight={100}\n >\n <div key=\"item\" />\n </Layout>,\n );\n const placeholder = resizeObservers[0].unobserve.mock.calls[0][0] as HTMLElement;\n const layout = container.querySelector<HTMLElement>('.react-grid-layout');\n const item = container.querySelector<HTMLElement>('.react-grid-item');\n const rendersBeforeSync = renderSpy.mock.calls.length;\n const widthBeforeOldTargetDelivery = item?.style.width;\n\n expect(resizeObservers[0].elements.has(placeholder)).toBe(false);\n expect(resizeObservers[0].elements.has(layout as HTMLElement)).toBe(true);\n act(() => {\n resizeObservers[0].callback([\n {contentRect: {width: 700}, target: placeholder} as unknown as ResizeObserverEntry,\n ]);\n });\n expect(item?.style.width).toBe(widthBeforeOldTargetDelivery);\n\n act(() => {\n emitResizeFor(layout as HTMLElement, 900);\n });\n expect(item?.style.width).toBe('213px');\n\n fireEvent.pointerDown(placeholder);\n expect(renderSpy).toHaveBeenCalledTimes(rendersBeforeSync);\n fireEvent.pointerDown(layout as HTMLElement);\n expect(renderSpy).toHaveBeenCalledTimes(rendersBeforeSync + 1);\n renderSpy.mockRestore();\n });\n\n test('installs and removes drag-over listeners on grid root', () => {\n const addEventListenerSpy = jest.spyOn(HTMLElement.prototype, 'addEventListener');\n const removeEventListenerSpy = jest.spyOn(HTMLElement.prototype, 'removeEventListener');\n const {container, unmount} = render(\n <Layout cols={12} layout={[{h: 1, i: 'item', w: 1, x: 0, y: 0}]} rowHeight={100}>\n <div key=\"item\" />\n </Layout>,\n );\n const layout = container.querySelector<HTMLElement>('.react-grid-layout');\n const dragEventNames = ['mouseup', 'mouseenter', 'mouseleave', 'mousemove'];\n const callsOnLayout = (spy: jest.SpyInstance) =>\n spy.mock.calls.filter(\n ([eventName], index) =>\n spy.mock.contexts[index] === layout && dragEventNames.includes(eventName),\n );\n\n expect(callsOnLayout(addEventListenerSpy)).toHaveLength(dragEventNames.length);\n\n unmount();\n\n expect(callsOnLayout(removeEventListenerSpy)).toHaveLength(dragEventNames.length);\n addEventListenerSpy.mockRestore();\n removeEventListenerSpy.mockRestore();\n });\n\n test('re-observes grid root and restores pointerdown after StrictMode remount', () => {\n const renderSpy = jest.spyOn(ReactGridLayout.prototype, 'render');\n const {container} = render(\n <React.StrictMode>\n <Layout\n cols={12}\n isDraggable={true}\n layout={[{h: 1, i: 'item', w: 1, x: 0, y: 0}]}\n rowHeight={100}\n >\n <div key=\"item\" />\n </Layout>\n </React.StrictMode>,\n );\n const layout = container.querySelector<HTMLElement>('.react-grid-layout');\n const currentObserver = resizeObservers.at(-1) as TestResizeObserver;\n\n expect(resizeObservers).toHaveLength(2);\n expect(currentObserver.elements.has(layout as HTMLElement)).toBe(true);\n act(() => {\n currentObserver.callback([\n {contentRect: {width: 900}, target: layout} as unknown as ResizeObserverEntry,\n ]);\n });\n const rendersBeforePointerDown = renderSpy.mock.calls.length;\n\n fireEvent.pointerDown(layout as HTMLElement);\n\n expect(renderSpy.mock.calls.length).toBeGreaterThan(rendersBeforePointerDown);\n renderSpy.mockRestore();\n });\n\n test('keeps unchanged GridItem child clone during another item layout update', () => {\n const renderSpy = jest.spyOn(GridItemComponent.prototype, 'render');\n const first = <GridItem {...gridItem.props} id=\"first\" key=\"first\" />;\n const second = <GridItem {...gridItem.props} id=\"second\" key=\"second\" />;\n const {container, rerender} = render(\n <Layout\n cols={12}\n layout={[\n {h: 1, i: 'first', w: 1, x: 0, y: 0},\n {h: 1, i: 'second', w: 1, x: 2, y: 0},\n ]}\n rowHeight={100}\n >\n {first}\n {second}\n </Layout>,\n );\n const secondRenders = renderSpy.mock.instances.filter(\n (instance) => instance.props.id === 'second',\n ).length;\n\n rerender(\n <Layout\n cols={12}\n layout={[\n {h: 1, i: 'first', w: 1, x: 1, y: 0},\n {h: 1, i: 'second', w: 1, x: 2, y: 0},\n ]}\n rowHeight={100}\n >\n {first}\n {second}\n </Layout>,\n );\n\n expect(\n renderSpy.mock.instances.filter((instance) => instance.props.id === 'second').length,\n ).toBe(secondRenders);\n expect(\n container.querySelector<HTMLElement>('.react-grid-item[data-dashkit-grid-x=\"1\"]'),\n ).not.toBeNull();\n renderSpy.mockRestore();\n });\n});\n"]}
1
+ {"version":3,"file":"passive-resize.test.js","sourceRoot":"../../../../../src","sources":["components/GridLayout/__tests__/passive-resize.test.tsx"],"names":[],"mappings":"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","sourcesContent":["/** @jest-environment jsdom */\n\nimport React from 'react';\n\nimport {act, fireEvent, render} from '@testing-library/react';\nimport ReactGridLayout from 'react-grid-layout';\n\nimport type {ConfigItem} from '../../../shared';\nimport GridItem, {GridItem as GridItemComponent} from '../../GridItem/GridItem';\nimport {Layout} from '../ReactGridLayout';\n\njest.mock('../../Item/Item', () => ({\n __esModule: true,\n default: () => null,\n}));\n\ntype ResizeObserverCallback = (entries: ResizeObserverEntry[]) => void;\n\nconst resizeObservers: TestResizeObserver[] = [];\nconst mockPolyfillObservers: TestResizeObserver[] = [];\n\njest.mock('resize-observer-polyfill', () => ({\n __esModule: true,\n default: class {\n readonly callback: ResizeObserverCallback;\n disconnect = jest.fn();\n elements = new Set<Element>();\n\n constructor(callback: ResizeObserverCallback) {\n this.callback = callback;\n mockPolyfillObservers.push(this as unknown as TestResizeObserver);\n }\n\n observe = (element: Element) => {\n this.elements.add(element);\n };\n\n unobserve = (element: Element) => {\n this.elements.delete(element);\n };\n },\n}));\n\nclass TestResizeObserver {\n readonly callback: ResizeObserverCallback;\n disconnect = jest.fn();\n elements = new Set<Element>();\n\n unobserve = jest.fn((element: Element) => {\n this.elements.delete(element);\n });\n\n constructor(callback: ResizeObserverCallback) {\n this.callback = callback;\n resizeObservers.push(this);\n }\n\n observe(element: Element) {\n this.elements.add(element);\n }\n}\n\nconst emitResize = (width: number) => {\n resizeObservers.forEach((observer) => {\n observer.elements.forEach((element) => {\n observer.callback([{contentRect: {width}, target: element} as ResizeObserverEntry]);\n });\n });\n};\n\nconst emitResizeFor = (element: Element, width: number) => {\n resizeObservers\n .filter((observer) => observer.elements.has(element))\n .forEach((observer) => {\n observer.callback([{contentRect: {width}, target: element} as ResizeObserverEntry]);\n });\n};\n\nconst emitPolyfillResizeFor = (element: Element, width: number) => {\n mockPolyfillObservers\n .filter((observer) => observer.elements.has(element))\n .forEach((observer) => {\n observer.callback([{contentRect: {width}, target: element} as ResizeObserverEntry]);\n });\n};\n\nconst gridItem = (\n <GridItem\n adjustWidgetLayout={jest.fn()}\n id=\"item\"\n item={{data: {}} as ConfigItem}\n key=\"item\"\n layout={[]}\n />\n);\n\ndescribe('Layout passive resize', () => {\n beforeEach(() => {\n resizeObservers.length = 0;\n mockPolyfillObservers.length = 0;\n global.ResizeObserver = TestResizeObserver as unknown as typeof ResizeObserver;\n });\n\n afterEach(() => {\n jest.useRealTimers();\n });\n\n test('does not render ReactGridLayout for passive container resize', () => {\n const renderSpy = jest.spyOn(ReactGridLayout.prototype, 'render');\n\n const {container} = render(\n <Layout cols={12} layout={[{h: 1, i: 'item', w: 1, x: 0, y: 0}]} rowHeight={100}>\n <div key=\"item\" />\n </Layout>,\n );\n const rendersBeforeResize = renderSpy.mock.calls.length;\n\n act(() => {\n emitResize(900);\n fireEvent.pointerDown(container.firstElementChild as HTMLElement);\n });\n\n expect(renderSpy).toHaveBeenCalledTimes(rendersBeforeResize);\n renderSpy.mockRestore();\n });\n\n test.each([undefined, null] as const)(\n 'uses polyfill when native ResizeObserver is %p',\n (resizeObserver) => {\n global.ResizeObserver = resizeObserver as unknown as typeof ResizeObserver;\n const {container} = render(\n <Layout\n cols={12}\n isDraggable={false}\n isResizable={false}\n layout={[{h: 1, i: 'item', w: 3, x: 2, y: 0}]}\n rowHeight={100}\n >\n <div key=\"item\" />\n </Layout>,\n );\n const layout = container.querySelector<HTMLElement>('.react-grid-layout');\n const item = container.querySelector<HTMLElement>('.react-grid-item');\n\n expect(mockPolyfillObservers[0].elements.has(layout as HTMLElement)).toBe(true);\n act(() => {\n emitPolyfillResizeFor(layout as HTMLElement, 900);\n });\n\n expect(item?.style.width).toBe('213px');\n expect(item?.style.transform).toBe('translate(158px,10px)');\n },\n );\n\n test('commits only latest width after resize settles', () => {\n jest.useFakeTimers();\n const renderSpy = jest.spyOn(ReactGridLayout.prototype, 'render');\n render(\n <Layout\n cols={12}\n isDraggable={true}\n layout={[{h: 1, i: 'item', w: 1, x: 0, y: 0}]}\n rowHeight={100}\n >\n <div key=\"item\" />\n </Layout>,\n );\n const rendersBeforeResize = renderSpy.mock.calls.length;\n\n act(() => {\n emitResize(900);\n jest.advanceTimersByTime(100);\n emitResize(1000);\n });\n\n expect(renderSpy).toHaveBeenCalledTimes(rendersBeforeResize);\n act(() => {\n jest.advanceTimersByTime(149);\n });\n expect(renderSpy).toHaveBeenCalledTimes(rendersBeforeResize);\n act(() => {\n jest.advanceTimersByTime(1);\n });\n expect(renderSpy).toHaveBeenCalledTimes(rendersBeforeResize + 1);\n expect((renderSpy.mock.instances.at(-1) as unknown as ReactGridLayout).props.width).toBe(\n 1000,\n );\n renderSpy.mockRestore();\n });\n\n test('cancels settled width commit on unmount', () => {\n jest.useFakeTimers();\n const renderSpy = jest.spyOn(ReactGridLayout.prototype, 'render');\n const {unmount} = render(\n <Layout\n cols={12}\n isDraggable={true}\n layout={[{h: 1, i: 'item', w: 1, x: 0, y: 0}]}\n rowHeight={100}\n >\n <div key=\"item\" />\n </Layout>,\n );\n const rendersBeforeResize = renderSpy.mock.calls.length;\n\n act(() => {\n emitResize(900);\n jest.advanceTimersByTime(100);\n });\n expect(renderSpy).toHaveBeenCalledTimes(rendersBeforeResize);\n expect(jest.getTimerCount()).toBe(1);\n\n unmount();\n expect(jest.getTimerCount()).toBe(0);\n act(() => {\n jest.advanceTimersByTime(150);\n });\n expect(renderSpy).toHaveBeenCalledTimes(rendersBeforeResize);\n renderSpy.mockRestore();\n });\n\n test('keeps distinct view item geometry after passive resize', () => {\n const {container} = render(\n <Layout\n cols={12}\n isDraggable={false}\n isResizable={false}\n layout={[\n {h: 1, i: 'first', w: 1, x: 0, y: 0},\n {h: 1, i: 'second', w: 3, x: 2, y: 0},\n ]}\n rowHeight={100}\n >\n <div key=\"first\" />\n <div key=\"second\" />\n </Layout>,\n );\n\n act(() => {\n emitResize(1000);\n });\n\n const first = container.querySelector<HTMLElement>(\n '.react-grid-item[data-dashkit-grid-x=\"0\"]',\n );\n const second = container.querySelector<HTMLElement>(\n '.react-grid-item[data-dashkit-grid-x=\"2\"]',\n );\n expect(first?.style.transform).toBe('translate(10px,10px)');\n expect(first?.style.width).toBe('73px');\n expect(second?.style.transform).toBe('translate(175px,10px)');\n expect(second?.style.width).toBe('238px');\n });\n\n test('forwards transform mode through GridItem and uses transforms by default', () => {\n const {container} = render(\n <Layout\n cols={12}\n isDraggable={false}\n isResizable={false}\n layout={[{h: 1, i: 'item', w: 3, x: 2, y: 0}]}\n rowHeight={100}\n >\n {gridItem}\n </Layout>,\n );\n const item = container.querySelector<HTMLElement>('.react-grid-item');\n\n act(() => {\n emitResize(900);\n });\n\n expect(item?.style.width).toBe('213px');\n expect(item?.dataset.dashkitGridUseCssTransforms).toBe('true');\n expect(item?.style.transform).toBe('translate(158px,10px)');\n expect(item?.style.left).toBe('');\n expect(item?.style.top).toBe('');\n });\n\n test('switches to top and left without stale transform when CSS transforms are disabled', () => {\n const {container, rerender} = render(\n <Layout\n cols={12}\n isDraggable={false}\n isResizable={false}\n layout={[{h: 1, i: 'item', w: 3, x: 2, y: 0}]}\n rowHeight={100}\n >\n {gridItem}\n </Layout>,\n );\n const item = container.querySelector<HTMLElement>('.react-grid-item');\n\n act(() => {\n emitResize(900);\n });\n rerender(\n <Layout\n cols={12}\n isDraggable={false}\n isResizable={false}\n layout={[{h: 1, i: 'item', w: 3, x: 2, y: 0}]}\n rowHeight={100}\n useCSSTransforms={false}\n >\n {gridItem}\n </Layout>,\n );\n act(() => {\n emitResize(1000);\n });\n\n expect(item?.dataset.dashkitGridUseCssTransforms).toBe('false');\n expect(item?.style.width).toBe('238px');\n expect(item?.style.left).toBe('175px');\n expect(item?.style.top).toBe('10px');\n expect(item?.style.transform).toBe('');\n });\n\n test('resizes only direct grid items when layouts are nested', () => {\n const {container, getByTestId} = render(\n <Layout\n cols={12}\n isDraggable={false}\n isResizable={false}\n layout={[{h: 1, i: 'outer', w: 3, x: 2, y: 0}]}\n rowHeight={100}\n >\n <div data-testid=\"outer-item\" key=\"outer\">\n <Layout\n cols={12}\n isDraggable={false}\n isResizable={false}\n layout={[{h: 1, i: 'inner', w: 2, x: 1, y: 0}]}\n rowHeight={100}\n >\n <div data-testid=\"inner-item\" key=\"inner\" />\n </Layout>\n </div>\n </Layout>,\n );\n const layouts = container.querySelectorAll('.react-grid-layout');\n const outerItem = getByTestId('outer-item');\n const innerItem = getByTestId('inner-item');\n\n act(() => {\n emitResizeFor(layouts[1], 500);\n });\n const innerWidth = innerItem.style.width;\n const innerTransform = innerItem.style.transform;\n expect(innerWidth).toBe('72px');\n expect(innerTransform).toBe('translate(51px,10px)');\n\n act(() => {\n emitResizeFor(layouts[0], 1000);\n });\n\n expect(outerItem.style.width).toBe('238px');\n expect(innerItem.style.width).toBe(innerWidth);\n expect(innerItem.style.transform).toBe(innerTransform);\n });\n\n test('updates editable idle geometry and refreshes RGL width before interaction', () => {\n const renderSpy = jest.spyOn(ReactGridLayout.prototype, 'render');\n const {container} = render(\n <Layout\n cols={12}\n isDraggable={true}\n isResizable={true}\n layout={[{h: 1, i: 'item', w: 3, x: 2, y: 0}]}\n rowHeight={100}\n >\n <div key=\"item\" />\n </Layout>,\n );\n const item = container.querySelector<HTMLElement>(\n '.react-grid-item[data-dashkit-grid-cols]',\n );\n\n act(() => {\n emitResize(900);\n });\n\n expect(item?.style.width).toBe('213px');\n expect(item?.style.transform).toBe('translate(158px,10px)');\n\n item?.classList.add('react-draggable-dragging');\n act(() => {\n emitResize(1000);\n });\n expect(item?.style.width).toBe('213px');\n item?.classList.remove('react-draggable-dragging');\n\n act(() => {\n fireEvent.pointerDown(item as HTMLElement);\n });\n\n const lastRenderInstance = renderSpy.mock.instances.at(-1) as unknown as ReactGridLayout;\n expect(lastRenderInstance.props.width).toBe(1000);\n renderSpy.mockRestore();\n });\n\n test('syncs RGL width before native and shared drag-over after passive resize', () => {\n const renderSpy = jest.spyOn(ReactGridLayout.prototype, 'render');\n const dragStateRef = {current: {isDragging: true, sourceGroup: 'source'}};\n const widths = [900, 1000];\n const onDropDragOver = jest.fn(() => {\n const instance = renderSpy.mock.instances.at(-1) as unknown as ReactGridLayout;\n\n expect(instance.props.width).toBe(widths[onDropDragOver.mock.calls.length - 1]);\n return {};\n });\n const {container} = render(\n <Layout\n cols={12}\n dragStateRef={dragStateRef}\n group=\"target\"\n isDroppable={true}\n layout={[{h: 1, i: 'item', w: 1, x: 0, y: 0}]}\n onDropDragOver={onDropDragOver}\n rowHeight={100}\n >\n <div key=\"item\" />\n </Layout>,\n );\n const layout = container.querySelector<HTMLElement>('.react-grid-layout');\n const rendersBeforeResize = renderSpy.mock.calls.length;\n\n act(() => {\n emitResizeFor(layout as HTMLElement, 900);\n });\n expect(renderSpy).toHaveBeenCalledTimes(rendersBeforeResize);\n\n act(() => {\n fireEvent.dragOver(layout as HTMLElement, {clientX: 100, clientY: 100});\n });\n\n act(() => {\n emitResizeFor(layout as HTMLElement, 1000);\n });\n const rendersBeforeSharedDragOver = renderSpy.mock.calls.length;\n\n act(() => {\n fireEvent.mouseEnter(layout as HTMLElement);\n fireEvent.mouseMove(layout as HTMLElement, {clientX: 100, clientY: 100});\n });\n\n expect(renderSpy.mock.calls.length).toBeGreaterThan(rendersBeforeSharedDragOver);\n expect(onDropDragOver).toHaveBeenCalledTimes(2);\n renderSpy.mockRestore();\n });\n\n test('refreshes the outer-item cache when the layout children change', () => {\n const {container, rerender} = render(\n <Layout\n cols={12}\n isDraggable={true}\n isResizable={true}\n layout={[{h: 1, i: 'first', w: 1, x: 0, y: 0}]}\n rowHeight={100}\n >\n <div key=\"first\" />\n </Layout>,\n );\n\n act(() => {\n emitResize(900);\n });\n rerender(\n <Layout\n cols={12}\n isDraggable={true}\n isResizable={true}\n layout={[\n {h: 1, i: 'first', w: 1, x: 0, y: 0},\n {h: 1, i: 'second', w: 2, x: 1, y: 0},\n ]}\n rowHeight={100}\n >\n <div key=\"first\" />\n <div key=\"second\" />\n </Layout>,\n );\n\n const second = container.querySelector<HTMLElement>(\n '.react-grid-item[data-dashkit-grid-x=\"1\"]',\n );\n expect(second?.style.width).toBe('138px');\n expect(second?.style.transform).toBe('translate(84px,10px)');\n });\n\n test('measures after mount, accepts a visible width after zero and disconnects observer', () => {\n const renderSpy = jest.spyOn(ReactGridLayout.prototype, 'render');\n const {container, unmount} = render(\n <Layout\n cols={12}\n isDraggable={true}\n layout={[{h: 1, i: 'item', w: 1, x: 0, y: 0}]}\n measureBeforeMount={true}\n rowHeight={100}\n >\n <div key=\"item\" />\n </Layout>,\n );\n\n const initialRender = renderSpy.mock.instances.at(-1) as unknown as ReactGridLayout;\n expect(initialRender.props.width).toBe(0);\n act(() => {\n emitResize(900);\n });\n expect(\n container.querySelector<HTMLElement>('.react-grid-item[data-dashkit-grid-cols]')?.style\n .width,\n ).toBe('64px');\n\n unmount();\n expect(resizeObservers[0].disconnect).toHaveBeenCalledTimes(1);\n renderSpy.mockRestore();\n });\n\n test('keeps WidthProvider placeholder class names', () => {\n render(\n <Layout\n className=\"custom-layout\"\n cols={12}\n layout={[{h: 1, i: 'item', w: 1, x: 0, y: 0}]}\n measureBeforeMount={true}\n rowHeight={100}\n >\n <div key=\"item\" />\n </Layout>,\n );\n\n expect(resizeObservers[0].unobserve.mock.calls[0][0].className).toBe(\n 'custom-layout react-grid-layout',\n );\n });\n\n test('moves observer and pointer listener from measurement placeholder to grid root', () => {\n const renderSpy = jest.spyOn(ReactGridLayout.prototype, 'render');\n const {container} = render(\n <Layout\n cols={12}\n isDraggable={true}\n layout={[{h: 1, i: 'item', w: 3, x: 2, y: 0}]}\n measureBeforeMount={true}\n rowHeight={100}\n >\n <div key=\"item\" />\n </Layout>,\n );\n const placeholder = resizeObservers[0].unobserve.mock.calls[0][0] as HTMLElement;\n const layout = container.querySelector<HTMLElement>('.react-grid-layout');\n const item = container.querySelector<HTMLElement>('.react-grid-item');\n const rendersBeforeSync = renderSpy.mock.calls.length;\n const widthBeforeOldTargetDelivery = item?.style.width;\n\n expect(resizeObservers[0].elements.has(placeholder)).toBe(false);\n expect(resizeObservers[0].elements.has(layout as HTMLElement)).toBe(true);\n act(() => {\n resizeObservers[0].callback([\n {contentRect: {width: 700}, target: placeholder} as unknown as ResizeObserverEntry,\n ]);\n });\n expect(item?.style.width).toBe(widthBeforeOldTargetDelivery);\n\n act(() => {\n emitResizeFor(layout as HTMLElement, 900);\n });\n expect(item?.style.width).toBe('213px');\n\n fireEvent.pointerDown(placeholder);\n expect(renderSpy).toHaveBeenCalledTimes(rendersBeforeSync);\n fireEvent.pointerDown(layout as HTMLElement);\n expect(renderSpy).toHaveBeenCalledTimes(rendersBeforeSync + 1);\n renderSpy.mockRestore();\n });\n\n test('installs and removes drag-over listeners on grid root', () => {\n const addEventListenerSpy = jest.spyOn(HTMLElement.prototype, 'addEventListener');\n const removeEventListenerSpy = jest.spyOn(HTMLElement.prototype, 'removeEventListener');\n const {container, unmount} = render(\n <Layout cols={12} layout={[{h: 1, i: 'item', w: 1, x: 0, y: 0}]} rowHeight={100}>\n <div key=\"item\" />\n </Layout>,\n );\n const layout = container.querySelector<HTMLElement>('.react-grid-layout');\n const dragEventNames = ['mouseup', 'mouseenter', 'mouseleave', 'mousemove'];\n const callsOnLayout = (spy: jest.SpyInstance) =>\n spy.mock.calls.filter(\n ([eventName], index) =>\n spy.mock.contexts[index] === layout && dragEventNames.includes(eventName),\n );\n\n expect(callsOnLayout(addEventListenerSpy)).toHaveLength(dragEventNames.length);\n\n unmount();\n\n expect(callsOnLayout(removeEventListenerSpy)).toHaveLength(dragEventNames.length);\n addEventListenerSpy.mockRestore();\n removeEventListenerSpy.mockRestore();\n });\n\n test('re-observes grid root and restores pointerdown after StrictMode remount', () => {\n const renderSpy = jest.spyOn(ReactGridLayout.prototype, 'render');\n const {container} = render(\n <React.StrictMode>\n <Layout\n cols={12}\n isDraggable={true}\n layout={[{h: 1, i: 'item', w: 1, x: 0, y: 0}]}\n rowHeight={100}\n >\n <div key=\"item\" />\n </Layout>\n </React.StrictMode>,\n );\n const layout = container.querySelector<HTMLElement>('.react-grid-layout');\n const currentObserver = resizeObservers.at(-1) as TestResizeObserver;\n\n expect(resizeObservers).toHaveLength(2);\n expect(currentObserver.elements.has(layout as HTMLElement)).toBe(true);\n act(() => {\n currentObserver.callback([\n {contentRect: {width: 900}, target: layout} as unknown as ResizeObserverEntry,\n ]);\n });\n const rendersBeforePointerDown = renderSpy.mock.calls.length;\n\n fireEvent.pointerDown(layout as HTMLElement);\n\n expect(renderSpy.mock.calls.length).toBeGreaterThan(rendersBeforePointerDown);\n renderSpy.mockRestore();\n });\n\n test('keeps unchanged GridItem child clone during another item layout update', () => {\n const renderSpy = jest.spyOn(GridItemComponent.prototype, 'render');\n const first = <GridItem {...gridItem.props} id=\"first\" key=\"first\" />;\n const second = <GridItem {...gridItem.props} id=\"second\" key=\"second\" />;\n const {container, rerender} = render(\n <Layout\n cols={12}\n layout={[\n {h: 1, i: 'first', w: 1, x: 0, y: 0},\n {h: 1, i: 'second', w: 1, x: 2, y: 0},\n ]}\n rowHeight={100}\n >\n {first}\n {second}\n </Layout>,\n );\n const secondRenders = renderSpy.mock.instances.filter(\n (instance) => instance.props.id === 'second',\n ).length;\n\n rerender(\n <Layout\n cols={12}\n layout={[\n {h: 1, i: 'first', w: 1, x: 1, y: 0},\n {h: 1, i: 'second', w: 1, x: 2, y: 0},\n ]}\n rowHeight={100}\n >\n {first}\n {second}\n </Layout>,\n );\n\n expect(\n renderSpy.mock.instances.filter((instance) => instance.props.id === 'second').length,\n ).toBe(secondRenders);\n expect(\n container.querySelector<HTMLElement>('.react-grid-item[data-dashkit-grid-x=\"1\"]'),\n ).not.toBeNull();\n renderSpy.mockRestore();\n });\n});\n"]}
@@ -40,6 +40,16 @@ function useMemoStateContext(props) {
40
40
  [props.config.layout, props.registerManager]);
41
41
  const internalBaselineLayoutRef = react_1.default.useRef(enrichedPropsLayout);
42
42
  const [visualLayout, setVisualLayout] = react_1.default.useState(enrichedPropsLayout);
43
+ const [previousEnrichedPropsLayout, setPreviousEnrichedPropsLayout] = react_1.default.useState(enrichedPropsLayout);
44
+ const [pendingExternalBaselineLayout, setPendingExternalBaselineLayout] = react_1.default.useState();
45
+ const getBaselineLayout = react_1.default.useCallback(() => {
46
+ if (pendingExternalBaselineLayout &&
47
+ internalBaselineLayoutRef.current ===
48
+ pendingExternalBaselineLayout.previousBaselineLayout) {
49
+ return pendingExternalBaselineLayout.layout;
50
+ }
51
+ return internalBaselineLayoutRef.current;
52
+ }, [pendingExternalBaselineLayout]);
43
53
  const [externalLayoutRevision, setExternalLayoutRevision] = react_1.default.useState(0);
44
54
  const [temporaryLayout, setTemporaryLayout] = react_1.default.useState(null);
45
55
  const resetTemporaryLayout = react_1.default.useCallback(() => setTemporaryLayout(null), [setTemporaryLayout]);
@@ -74,7 +84,7 @@ function useMemoStateContext(props) {
74
84
  return Object.assign({}, item);
75
85
  }
76
86
  });
77
- const baselineConfig = Object.assign(Object.assign({}, props.config), { layout: internalBaselineLayoutRef.current });
87
+ const baselineConfig = Object.assign(Object.assign({}, props.config), { layout: getBaselineLayout() });
78
88
  const newConfig = utils_1.UpdateManager.updateLayout({
79
89
  layout: currentInnerLayout,
80
90
  config: baselineConfig,
@@ -86,13 +96,13 @@ function useMemoStateContext(props) {
86
96
  emitDashKitEvent: props.emitDashKitEvent,
87
97
  });
88
98
  internalBaselineLayoutRef.current = newConfig.layout;
89
- }, [props.config, props.emitDashKitEvent, onChange]);
99
+ }, [getBaselineLayout, props.config, props.emitDashKitEvent, onChange]);
90
100
  const getLayoutItem = react_1.default.useCallback((id) => {
91
- return internalBaselineLayoutRef.current.find(({ i }) => i === id);
92
- }, []);
101
+ return getBaselineLayout().find(({ i }) => i === id);
102
+ }, [getBaselineLayout]);
93
103
  const getOuterLayout = react_1.default.useCallback(() => {
94
- return (0, utils_1.convertEnrichedLayoutToConfigLayout)(internalBaselineLayoutRef.current);
95
- }, []);
104
+ return (0, utils_1.convertEnrichedLayoutToConfigLayout)(getBaselineLayout());
105
+ }, [getBaselineLayout]);
96
106
  // to calculate items, only memorization of items and globalItems is important
97
107
  const configItems = react_1.default.useMemo(() => (0, shared_1.getAllConfigItems)(props.config), [props.config.items, props.config.globalItems]);
98
108
  const onItemRemove = react_1.default.useCallback((id) => {
@@ -208,16 +218,28 @@ function useMemoStateContext(props) {
208
218
  });
209
219
  }
210
220
  }, [props.registerManager, props.groups, visualLayout]);
211
- // Synchronize internal baseline and visual layout when external props.layout changes re-init.
212
- // When props.config.layout reference changes, external update occurred re-init.
213
- react_1.default.useEffect(() => {
214
- const internalNotEqualProps = !(0, isEqual_1.default)(internalBaselineLayoutRef.current, enrichedPropsLayout);
215
- if (internalNotEqualProps) {
216
- internalBaselineLayoutRef.current = enrichedPropsLayout;
221
+ // Synchronize visual layout during render, so children never see new config with old layout.
222
+ // Keep the previous external layout separate from the drag baseline: a drag updates the latter.
223
+ if (previousEnrichedPropsLayout !== enrichedPropsLayout) {
224
+ setPreviousEnrichedPropsLayout(enrichedPropsLayout);
225
+ if (!(0, isEqual_1.default)(internalBaselineLayoutRef.current, enrichedPropsLayout)) {
226
+ setPendingExternalBaselineLayout({
227
+ layout: enrichedPropsLayout,
228
+ previousBaselineLayout: internalBaselineLayoutRef.current,
229
+ });
217
230
  setVisualLayout(enrichedPropsLayout);
218
231
  setExternalLayoutRevision((r) => r + 1);
219
232
  }
220
- }, [enrichedPropsLayout]);
233
+ }
234
+ react_1.default.useLayoutEffect(() => {
235
+ if (pendingExternalBaselineLayout) {
236
+ if (internalBaselineLayoutRef.current ===
237
+ pendingExternalBaselineLayout.previousBaselineLayout) {
238
+ internalBaselineLayoutRef.current = pendingExternalBaselineLayout.layout;
239
+ }
240
+ setPendingExternalBaselineLayout(undefined);
241
+ }
242
+ }, [pendingExternalBaselineLayout]);
221
243
  const itemsParams = (0, useDeepEqualMemo_1.useDeepEqualMemo)(() => (0, shared_1.getItemsParams)({
222
244
  defaultGlobalParams: props.defaultGlobalParams,
223
245
  globalParams: props.globalParams,
@@ -1 +1 @@
1
- {"version":3,"file":"withContext.js","sourceRoot":"../../../src","sources":["hocs/withContext.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport isEqual from 'lodash/isEqual';\nimport pick from 'lodash/pick';\n\nimport type {DashKitProps} from '../components/DashKit';\nimport {\n COMPACT_TYPE_HORIZONTAL_NOWRAP,\n DEFAULT_GROUP,\n DEFAULT_WIDGET_HEIGHT,\n DEFAULT_WIDGET_WIDTH,\n TEMPORARY_ITEM_ID,\n} from '../constants/common';\nimport {DashKitContext, DashKitDnDContext, DashkitOverlayControlsContext} from '../context';\nimport type {\n DashKitCtxShape,\n DashkitPropsPassedToCtx,\n OverlayControlsCtxShape,\n TemporaryLayout,\n} from '../context';\nimport {useDeepEqualMemo} from '../hooks/useDeepEqualMemo';\nimport type {ConfigLayout} from '../shared';\nimport {CONFIG_LAYOUT_FIELDS, getAllConfigItems, getItemsParams, getItemsState} from '../shared';\nimport type {DashKitEventMap, DashKitEventName, PluginRef} from '../typings';\nimport type {RegisterManager, RegisterManagerPlugin} from '../utils';\nimport {\n UpdateManager,\n convertEnrichedLayoutToConfigLayout,\n emitDashKitChangeEvent,\n enrichLayoutWithDefaults,\n resolveLayoutGroup,\n} from '../utils';\n\nexport type DashKitWithContextProps = DashkitPropsPassedToCtx &\n Pick<\n DashKitProps,\n 'overlayControls' | 'overlayMenuItems' | 'getPreparedCopyItemOptions' | 'onCopyFulfill'\n > &\n Required<\n Pick<\n DashKitProps,\n | 'itemsStateAndParams'\n | 'defaultGlobalParams'\n | 'globalParams'\n | 'context'\n | 'settings'\n | 'onItemEdit'\n | 'onChange'\n | 'onDrop'\n >\n > & {\n registerManager: RegisterManager;\n forwardedMetaRef: React.ForwardedRef<any>;\n emitDashKitEvent: <T extends DashKitEventName>(\n eventName: T,\n event: DashKitEventMap[T],\n ) => void;\n };\n\ntype OriginalLayouts = Record<string, ConfigLayout>;\n\ntype AdjustedLayouts = Record<string, ConfigLayout>;\n\ntype NowrapAdjustedLayouts = Record<string, number>;\n\ntype UseMemoStateContextResult = {\n dashkitContextValue: DashKitCtxShape;\n controlsContextValue: OverlayControlsCtxShape;\n};\n\nconst hasGetMeta = (value: PluginRef): value is {getMeta: () => Promise<any>} => {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'getMeta' in value &&\n typeof value.getMeta === 'function'\n );\n};\n\nconst hasReload = (\n value: PluginRef,\n): value is {reload: (data: {silentLoading: boolean; noVeil: boolean}) => void} => {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'reload' in value &&\n typeof value.reload === 'function'\n );\n};\n\nfunction useMemoStateContext(props: DashKitWithContextProps): UseMemoStateContextResult {\n // Since we don't want to store widget parameters with auto-height enabled in the store or server,\n // the actual layout (visible to the user at any moment) will be stored in state.\n // However, to ensure the store gets the layout without considering auto-height widgets,\n // when a widget's height is adjusted, the original h (height) value is saved in originalLayouts,\n // and the new adjusted height is stored in adjustedLayouts.\n\n const originalLayouts = React.useRef<OriginalLayouts>({});\n const adjustedLayouts = React.useRef<AdjustedLayouts>({});\n const nowrapAdjustedLayouts = React.useRef<NowrapAdjustedLayouts>({});\n\n // Enrich layout with default values from plugins.\n // This ensures backward compatibility: if props.layout is already enriched (old flow),\n // enrichLayoutWithDefaults will just merge and return similar result.\n // If props.layout comes directly from config (new flow), it gets properly enriched.\n const enrichedPropsLayout = React.useMemo(\n () => enrichLayoutWithDefaults(props.config, props.registerManager),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [props.config.layout, props.registerManager],\n );\n\n const internalBaselineLayoutRef = React.useRef<ConfigLayout[]>(enrichedPropsLayout);\n const [visualLayout, setVisualLayout] = React.useState<ConfigLayout[]>(enrichedPropsLayout);\n\n const [externalLayoutRevision, setExternalLayoutRevision] = React.useState(0);\n const [temporaryLayout, setTemporaryLayout] = React.useState<TemporaryLayout | null>(null);\n const resetTemporaryLayout = React.useCallback(\n () => setTemporaryLayout(null),\n [setTemporaryLayout],\n );\n\n const dndContext = React.useContext(DashKitDnDContext);\n const outerDnDEnable = Boolean(dndContext);\n\n // TODO: need move originalLayouts, adjustedLayouts to state\n const [layoutUpdateCounter, forceUpdateLayout] = React.useState(0);\n\n const onChange = React.useCallback(\n ({\n config = props.config,\n itemsStateAndParams = props.itemsStateAndParams,\n groups = props.groups,\n }) => {\n if (\n !(\n isEqual(config, props.config) &&\n isEqual(itemsStateAndParams, props.itemsStateAndParams) &&\n isEqual(groups, props.groups)\n )\n ) {\n props.onChange({config, itemsStateAndParams, groups});\n }\n },\n [props.config, props.groups, props.itemsStateAndParams, props.onChange],\n );\n\n // Callback invoked when grid layout changes. The first argument is the actual layout config,\n // which includes adjusted \"h\" values for items with auto-height enabled. To ensure that\n // values stored are not adjusted (as if auto-height was disabled), we correct them using\n // the originalLayouts stored without adjustments.\n const onLayoutChange = React.useCallback(\n (layout: ConfigLayout[]) => {\n const currentInnerLayout = layout.map((item) => {\n if (item.i in originalLayouts.current) {\n const {parent: _parent, ...originalCopy} = originalLayouts.current[item.i];\n\n if (item.parent) {\n (originalCopy as ConfigLayout).parent = item.parent;\n }\n originalCopy.w = item.w;\n originalCopy.x = item.x;\n originalCopy.y = item.y;\n\n return originalCopy satisfies ConfigLayout;\n } else {\n return {...item};\n }\n });\n\n const baselineConfig = {\n ...props.config,\n layout: internalBaselineLayoutRef.current,\n };\n\n const newConfig = UpdateManager.updateLayout({\n layout: currentInnerLayout,\n config: baselineConfig,\n });\n\n emitDashKitChangeEvent({\n config: baselineConfig,\n newConfig,\n onChange,\n emitDashKitEvent: props.emitDashKitEvent,\n });\n\n internalBaselineLayoutRef.current = newConfig.layout;\n },\n [props.config, props.emitDashKitEvent, onChange],\n );\n\n const getLayoutItem = React.useCallback((id: string) => {\n return internalBaselineLayoutRef.current.find(({i}) => i === id);\n }, []);\n\n const getOuterLayout = React.useCallback((): ConfigLayout[] => {\n return convertEnrichedLayoutToConfigLayout(internalBaselineLayoutRef.current);\n }, []);\n\n // to calculate items, only memorization of items and globalItems is important\n const configItems = React.useMemo(\n () => getAllConfigItems(props.config),\n [props.config.items, props.config.globalItems],\n );\n\n const onItemRemove = React.useCallback(\n (id: string) => {\n delete nowrapAdjustedLayouts.current[id];\n delete adjustedLayouts.current[id];\n delete originalLayouts.current[id];\n\n if (id === TEMPORARY_ITEM_ID) {\n resetTemporaryLayout();\n } else {\n if (temporaryLayout) {\n setTemporaryLayout({\n ...temporaryLayout,\n data: temporaryLayout.data.filter(({i}) => i !== id),\n });\n }\n\n onChange(\n UpdateManager.removeItem({\n id,\n config: {...props.config, layout: getOuterLayout()},\n itemsStateAndParams: props.itemsStateAndParams,\n }),\n );\n }\n },\n [\n resetTemporaryLayout,\n temporaryLayout,\n onChange,\n props.config,\n props.itemsStateAndParams,\n getOuterLayout,\n ],\n );\n\n const onItemStateAndParamsChange = React.useCallback<\n DashKitCtxShape['onItemStateAndParamsChange']\n >(\n (id, stateAndParams, options) => {\n const currentConfig = {...props.config, layout: getOuterLayout()};\n onChange({\n config: currentConfig,\n // config is not strictly required here; ideally it should be removed along with the default props\n itemsStateAndParams: UpdateManager.changeStateAndParams({\n id,\n config: currentConfig,\n stateAndParams,\n itemsStateAndParams: props.itemsStateAndParams,\n options,\n }),\n });\n },\n [props.config, props.itemsStateAndParams, getOuterLayout, onChange],\n );\n\n const memorizeOriginalLayout = React.useCallback<DashKitCtxShape['memorizeOriginalLayout']>(\n (widgetId, preAutoHeightLayout, postAutoHeightLayout) => {\n let needUpdateLayout = false;\n if (!(widgetId in originalLayouts.current)) {\n originalLayouts.current[widgetId] = preAutoHeightLayout;\n needUpdateLayout = true;\n }\n if (adjustedLayouts.current[widgetId] !== postAutoHeightLayout) {\n adjustedLayouts.current[widgetId] = postAutoHeightLayout;\n needUpdateLayout = true;\n }\n\n if (needUpdateLayout) {\n forceUpdateLayout((prev) => prev + 1);\n }\n },\n [],\n );\n\n const revertToOriginalLayout = React.useCallback((widgetId: string) => {\n const needUpdateLayout =\n widgetId in adjustedLayouts.current || widgetId in originalLayouts.current;\n delete adjustedLayouts.current[widgetId];\n delete originalLayouts.current[widgetId];\n if (needUpdateLayout) {\n forceUpdateLayout((prev) => prev + 1);\n }\n }, []);\n\n React.useMemo(() => {\n const groups = props.groups;\n // Use visualLayout instead of props.layout (which is now optional)\n const layout = visualLayout;\n const defaultProps = props.registerManager.gridLayout || {};\n const nowrapGroups: Record<string, {items: ConfigLayout[]; leftSpace: number}> = {};\n let hasNowrapGroups = false;\n\n if (\n defaultProps.compactType === COMPACT_TYPE_HORIZONTAL_NOWRAP &&\n defaultProps.cols !== undefined\n ) {\n nowrapGroups[DEFAULT_GROUP] = {\n items: [],\n leftSpace: defaultProps.cols,\n };\n hasNowrapGroups = true;\n }\n\n if (groups) {\n groups.forEach((group) => {\n const resultProps = group.gridProperties?.(defaultProps) || {};\n\n if (\n resultProps.compactType === COMPACT_TYPE_HORIZONTAL_NOWRAP &&\n resultProps.cols !== undefined &&\n group.id\n ) {\n nowrapGroups[group.id] = {\n items: [],\n leftSpace: resultProps.cols,\n };\n hasNowrapGroups = true;\n }\n });\n }\n\n if (hasNowrapGroups) {\n layout.forEach((item) => {\n const widgetId = item.i;\n const parentId = resolveLayoutGroup(item);\n\n if (nowrapGroups[parentId]) {\n // Collecting nowrap elements\n nowrapGroups[parentId].items.push(item);\n nowrapGroups[parentId].leftSpace -= item.w;\n } else if (nowrapAdjustedLayouts.current[widgetId]) {\n // If element is not in horizontal-nowrap cleaning up and reverting adjustLayout values\n delete nowrapAdjustedLayouts.current[widgetId];\n }\n });\n\n Object.entries(nowrapGroups).forEach(([, {items, leftSpace}]) => {\n items.forEach((item) => {\n // setting maxW with adjustLayout fields and saving previous\n nowrapAdjustedLayouts.current[item.i] = item.w + leftSpace;\n });\n });\n }\n }, [props.registerManager, props.groups, visualLayout]);\n\n // Synchronize internal baseline and visual layout when external props.layout changes re-init.\n // When props.config.layout reference changes, external update occurred re-init.\n React.useEffect(() => {\n const internalNotEqualProps = !isEqual(\n internalBaselineLayoutRef.current,\n enrichedPropsLayout,\n );\n\n if (internalNotEqualProps) {\n internalBaselineLayoutRef.current = enrichedPropsLayout;\n setVisualLayout(enrichedPropsLayout);\n setExternalLayoutRevision((r) => r + 1);\n }\n }, [enrichedPropsLayout]);\n\n const itemsParams = useDeepEqualMemo(\n () =>\n getItemsParams({\n defaultGlobalParams: props.defaultGlobalParams,\n globalParams: props.globalParams,\n config: props.config,\n itemsStateAndParams: props.itemsStateAndParams,\n plugins: props.registerManager.getPlugins(),\n }),\n [\n props.defaultGlobalParams,\n props.globalParams,\n props.config,\n props.itemsStateAndParams,\n props.registerManager,\n ],\n );\n\n const itemsState = useDeepEqualMemo(\n () =>\n getItemsState({\n config: props.config,\n itemsStateAndParams: props.itemsStateAndParams,\n }),\n [props.config, props.itemsStateAndParams],\n );\n\n const getItemsMeta = React.useCallback<DashKitCtxShape['getItemsMeta']>((pluginsRefs) => {\n return pluginsRefs\n .map((ref) => {\n if (!(ref && hasGetMeta(ref))) {\n return undefined;\n }\n return ref.getMeta();\n })\n .filter((item): item is Promise<any> => item !== undefined);\n }, []);\n\n const resultLayout = React.useMemo(() => {\n const adjusted = adjustedLayouts.current;\n const original = originalLayouts.current;\n const nowrapAdjust = nowrapAdjustedLayouts.current;\n\n return visualLayout.map((item) => {\n const widgetId = item.i;\n\n if (widgetId in adjusted || widgetId in nowrapAdjust) {\n original[widgetId] = item;\n // eslint-disable-next-line no-unused-vars\n const {parent: _parent2, ...adjustedItem} = adjusted[widgetId] || item;\n\n adjustedItem.w = item.w;\n adjustedItem.x = item.x;\n adjustedItem.y = item.y;\n\n if (item.parent) {\n (adjustedItem as ConfigLayout).parent = item.parent;\n }\n\n if (widgetId in nowrapAdjust) {\n (adjustedItem as ConfigLayout & {maxW?: number}).maxW = nowrapAdjust[widgetId];\n }\n\n return adjustedItem satisfies ConfigLayout;\n } else {\n if (widgetId in original) {\n delete original[widgetId];\n }\n return item;\n }\n });\n }, [visualLayout, layoutUpdateCounter]);\n\n const reloadItems = React.useCallback<DashKitCtxShape['reloadItems']>((pluginsRefs, data) => {\n pluginsRefs.forEach((ref) => ref && hasReload(ref) && ref.reload(data));\n }, []);\n\n const dragPropsContext = dndContext?.dragProps;\n const onDropDragOverContext = dndContext?.onDropDragOver;\n\n const dragOverPlugin = React.useMemo(() => {\n if (!dragPropsContext) {\n return null;\n }\n\n const pluginType = dragPropsContext.type;\n\n if (props.registerManager.check(pluginType)) {\n return props.registerManager.getItem(pluginType);\n } else {\n // eslint-disable-next-line no-console\n console.error(`Uknown pluginType: ${pluginType}`);\n return null;\n }\n }, [dragPropsContext, props.registerManager]);\n\n const onDropDragOver = React.useCallback<DashKitCtxShape['onDropDragOver']>(\n (_e, group, gridProps, groupLayout, sharedItem) => {\n if (temporaryLayout) {\n resetTemporaryLayout();\n return false;\n }\n\n let dragItemType: string;\n let defaultLayout: RegisterManagerPlugin['defaultLayout'] | {h: number; w: number};\n if (sharedItem) {\n const {type, h, w} = sharedItem;\n dragItemType = type;\n const _defaults = props.registerManager.getItem(type);\n defaultLayout = _defaults ? {..._defaults.defaultLayout, h, w} : {h, w};\n } else if (dragOverPlugin) {\n dragItemType = dragOverPlugin.type;\n defaultLayout = dragOverPlugin.defaultLayout;\n } else {\n return false;\n }\n\n let maxW = gridProps.cols;\n const maxH = Math.min(\n gridProps.maxRows || Infinity,\n 'maxH' in defaultLayout && defaultLayout.maxH ? defaultLayout.maxH : Infinity,\n );\n\n if (gridProps.compactType === COMPACT_TYPE_HORIZONTAL_NOWRAP && gridProps.cols) {\n maxW = groupLayout.reduce((memo, item) => memo - item.w, gridProps.cols);\n }\n\n if (\n maxW === 0 ||\n maxH === 0 ||\n ('minW' in defaultLayout &&\n defaultLayout.minW &&\n maxW &&\n maxW < defaultLayout.minW) ||\n ('minH' in defaultLayout && defaultLayout.minH && maxH < defaultLayout.minH)\n ) {\n return false;\n }\n\n const {\n h = defaultLayout?.h || DEFAULT_WIDGET_HEIGHT,\n w = defaultLayout?.w || DEFAULT_WIDGET_WIDTH,\n } = dragPropsContext?.layout || {};\n\n const itemLayout = {\n h: maxH ? Math.min(h, maxH) : h,\n w: maxW ? Math.min(w, maxW) : w,\n };\n\n if (\n onDropDragOverContext?.(\n {\n ...sharedItem,\n ...itemLayout,\n parent: group,\n type: dragItemType,\n },\n sharedItem ?? null,\n ) === false\n ) {\n return false;\n }\n\n return itemLayout;\n },\n [\n props.registerManager,\n resetTemporaryLayout,\n temporaryLayout,\n dragOverPlugin,\n dragPropsContext,\n onDropDragOverContext,\n ],\n );\n\n const onDropProp = props.onDrop;\n const onDrop = React.useCallback<DashKitCtxShape['onDrop']>(\n (newLayout, item) => {\n if (!dragPropsContext) {\n return;\n }\n\n setTemporaryLayout({\n data: [...newLayout, item],\n dragProps: dragPropsContext,\n });\n\n onDropProp?.({\n newLayout: newLayout.reduce<ConfigLayout[]>((memo, l) => {\n if (l.i !== item.i) {\n memo.push(pick(l, CONFIG_LAYOUT_FIELDS));\n }\n\n return memo;\n }, []),\n itemLayout: pick(item, CONFIG_LAYOUT_FIELDS),\n commit: resetTemporaryLayout,\n dragProps: dragPropsContext,\n });\n },\n [dragPropsContext, onDropProp, setTemporaryLayout, resetTemporaryLayout],\n );\n\n const dashkitContextValue = React.useMemo(\n () => ({\n externalLayoutRevision,\n config: props.config,\n configItems,\n groups: props.groups,\n context: props.context,\n noOverlay: props.noOverlay,\n focusable: props.focusable,\n defaultGlobalParams: props.globalParams,\n globalParams: props.globalParams,\n editMode: props.editMode,\n settings: props.settings,\n onItemMountChange: props.onItemMountChange,\n onItemRender: props.onItemRender,\n draggableHandleClassName: props.draggableHandleClassName,\n\n registerManager: props.registerManager,\n forwardedMetaRef: props.forwardedMetaRef,\n\n layout: resultLayout,\n temporaryLayout,\n layoutChange: onLayoutChange,\n memorizeOriginalLayout,\n revertToOriginalLayout,\n\n itemsState,\n itemsParams,\n onItemStateAndParamsChange,\n\n getItemsMeta,\n reloadItems,\n\n onDrop,\n onDropDragOver,\n outerDnDEnable,\n dragOverPlugin,\n\n onItemFocus: props.onItemFocus,\n onItemBlur: props.onItemBlur,\n\n /* default handlers bypass */\n onDragStart: props.onDragStart,\n onDrag: props.onDrag,\n onDragStop: props.onDragStop,\n onResizeStart: props.onResizeStart,\n onResize: props.onResize,\n onResizeStop: props.onResizeStop,\n }),\n [\n externalLayoutRevision,\n resultLayout,\n temporaryLayout,\n props.config,\n configItems,\n props.groups,\n props.context,\n props.noOverlay,\n props.focusable,\n props.globalParams,\n props.editMode,\n props.settings,\n itemsState,\n itemsParams,\n props.registerManager,\n onItemStateAndParamsChange,\n onDrop,\n onDropDragOver,\n onLayoutChange,\n props.onItemMountChange,\n props.onItemRender,\n getItemsMeta,\n reloadItems,\n memorizeOriginalLayout,\n revertToOriginalLayout,\n props.forwardedMetaRef,\n props.draggableHandleClassName,\n outerDnDEnable,\n dragOverPlugin,\n\n props.onItemFocus,\n props.onItemBlur,\n\n props.onDragStart,\n props.onDrag,\n props.onDragStop,\n props.onResizeStart,\n props.onResize,\n props.onResizeStop,\n ],\n );\n\n const overlayMenuItems = props.overlayMenuItems || props.registerManager.settings.menu;\n const controlsContextValue = React.useMemo(\n () => ({\n overlayControls: props.overlayControls,\n context: props.context,\n\n itemsStateAndParams: props.itemsStateAndParams,\n itemsState,\n itemsParams,\n\n getPreparedCopyItemOptions: props.getPreparedCopyItemOptions,\n onCopyFulfill: props.onCopyFulfill,\n\n menu: overlayMenuItems,\n\n editItem: props.onItemEdit,\n removeItem: onItemRemove,\n getLayoutItem: getLayoutItem,\n }),\n [\n props.overlayControls,\n props.context,\n props.itemsStateAndParams,\n props.onItemEdit,\n props.getPreparedCopyItemOptions,\n props.onCopyFulfill,\n overlayMenuItems,\n itemsState,\n itemsParams,\n onItemRemove,\n getLayoutItem,\n ],\n );\n\n return {controlsContextValue, dashkitContextValue};\n}\n\nexport function withContext(Component: React.ComponentType) {\n const WithContext = (props: DashKitWithContextProps) => {\n const {dashkitContextValue, controlsContextValue} = useMemoStateContext(props);\n\n return (\n <DashKitContext.Provider value={dashkitContextValue}>\n <DashkitOverlayControlsContext.Provider value={controlsContextValue}>\n <Component />\n </DashkitOverlayControlsContext.Provider>\n </DashKitContext.Provider>\n );\n };\n\n WithContext.displayName = `withContext(${\n Component.displayName || Component.name || 'Component'\n })`;\n\n return WithContext;\n}\n"]}
1
+ {"version":3,"file":"withContext.js","sourceRoot":"../../../src","sources":["hocs/withContext.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport isEqual from 'lodash/isEqual';\nimport pick from 'lodash/pick';\n\nimport type {DashKitProps} from '../components/DashKit';\nimport {\n COMPACT_TYPE_HORIZONTAL_NOWRAP,\n DEFAULT_GROUP,\n DEFAULT_WIDGET_HEIGHT,\n DEFAULT_WIDGET_WIDTH,\n TEMPORARY_ITEM_ID,\n} from '../constants/common';\nimport {DashKitContext, DashKitDnDContext, DashkitOverlayControlsContext} from '../context';\nimport type {\n DashKitCtxShape,\n DashkitPropsPassedToCtx,\n OverlayControlsCtxShape,\n TemporaryLayout,\n} from '../context';\nimport {useDeepEqualMemo} from '../hooks/useDeepEqualMemo';\nimport type {ConfigLayout} from '../shared';\nimport {CONFIG_LAYOUT_FIELDS, getAllConfigItems, getItemsParams, getItemsState} from '../shared';\nimport type {DashKitEventMap, DashKitEventName, PluginRef} from '../typings';\nimport type {RegisterManager, RegisterManagerPlugin} from '../utils';\nimport {\n UpdateManager,\n convertEnrichedLayoutToConfigLayout,\n emitDashKitChangeEvent,\n enrichLayoutWithDefaults,\n resolveLayoutGroup,\n} from '../utils';\n\nexport type DashKitWithContextProps = DashkitPropsPassedToCtx &\n Pick<\n DashKitProps,\n 'overlayControls' | 'overlayMenuItems' | 'getPreparedCopyItemOptions' | 'onCopyFulfill'\n > &\n Required<\n Pick<\n DashKitProps,\n | 'itemsStateAndParams'\n | 'defaultGlobalParams'\n | 'globalParams'\n | 'context'\n | 'settings'\n | 'onItemEdit'\n | 'onChange'\n | 'onDrop'\n >\n > & {\n registerManager: RegisterManager;\n forwardedMetaRef: React.ForwardedRef<any>;\n emitDashKitEvent: <T extends DashKitEventName>(\n eventName: T,\n event: DashKitEventMap[T],\n ) => void;\n };\n\ntype OriginalLayouts = Record<string, ConfigLayout>;\n\ntype AdjustedLayouts = Record<string, ConfigLayout>;\n\ntype NowrapAdjustedLayouts = Record<string, number>;\n\ntype PendingExternalBaselineLayout = {\n layout: ConfigLayout[];\n previousBaselineLayout: ConfigLayout[];\n};\n\ntype UseMemoStateContextResult = {\n dashkitContextValue: DashKitCtxShape;\n controlsContextValue: OverlayControlsCtxShape;\n};\n\nconst hasGetMeta = (value: PluginRef): value is {getMeta: () => Promise<any>} => {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'getMeta' in value &&\n typeof value.getMeta === 'function'\n );\n};\n\nconst hasReload = (\n value: PluginRef,\n): value is {reload: (data: {silentLoading: boolean; noVeil: boolean}) => void} => {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'reload' in value &&\n typeof value.reload === 'function'\n );\n};\n\nfunction useMemoStateContext(props: DashKitWithContextProps): UseMemoStateContextResult {\n // Since we don't want to store widget parameters with auto-height enabled in the store or server,\n // the actual layout (visible to the user at any moment) will be stored in state.\n // However, to ensure the store gets the layout without considering auto-height widgets,\n // when a widget's height is adjusted, the original h (height) value is saved in originalLayouts,\n // and the new adjusted height is stored in adjustedLayouts.\n\n const originalLayouts = React.useRef<OriginalLayouts>({});\n const adjustedLayouts = React.useRef<AdjustedLayouts>({});\n const nowrapAdjustedLayouts = React.useRef<NowrapAdjustedLayouts>({});\n\n // Enrich layout with default values from plugins.\n // This ensures backward compatibility: if props.layout is already enriched (old flow),\n // enrichLayoutWithDefaults will just merge and return similar result.\n // If props.layout comes directly from config (new flow), it gets properly enriched.\n const enrichedPropsLayout = React.useMemo(\n () => enrichLayoutWithDefaults(props.config, props.registerManager),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [props.config.layout, props.registerManager],\n );\n\n const internalBaselineLayoutRef = React.useRef<ConfigLayout[]>(enrichedPropsLayout);\n const [visualLayout, setVisualLayout] = React.useState<ConfigLayout[]>(enrichedPropsLayout);\n const [previousEnrichedPropsLayout, setPreviousEnrichedPropsLayout] =\n React.useState(enrichedPropsLayout);\n const [pendingExternalBaselineLayout, setPendingExternalBaselineLayout] =\n React.useState<PendingExternalBaselineLayout>();\n const getBaselineLayout = React.useCallback(() => {\n if (\n pendingExternalBaselineLayout &&\n internalBaselineLayoutRef.current ===\n pendingExternalBaselineLayout.previousBaselineLayout\n ) {\n return pendingExternalBaselineLayout.layout;\n }\n\n return internalBaselineLayoutRef.current;\n }, [pendingExternalBaselineLayout]);\n\n const [externalLayoutRevision, setExternalLayoutRevision] = React.useState(0);\n const [temporaryLayout, setTemporaryLayout] = React.useState<TemporaryLayout | null>(null);\n const resetTemporaryLayout = React.useCallback(\n () => setTemporaryLayout(null),\n [setTemporaryLayout],\n );\n\n const dndContext = React.useContext(DashKitDnDContext);\n const outerDnDEnable = Boolean(dndContext);\n\n // TODO: need move originalLayouts, adjustedLayouts to state\n const [layoutUpdateCounter, forceUpdateLayout] = React.useState(0);\n\n const onChange = React.useCallback(\n ({\n config = props.config,\n itemsStateAndParams = props.itemsStateAndParams,\n groups = props.groups,\n }) => {\n if (\n !(\n isEqual(config, props.config) &&\n isEqual(itemsStateAndParams, props.itemsStateAndParams) &&\n isEqual(groups, props.groups)\n )\n ) {\n props.onChange({config, itemsStateAndParams, groups});\n }\n },\n [props.config, props.groups, props.itemsStateAndParams, props.onChange],\n );\n\n // Callback invoked when grid layout changes. The first argument is the actual layout config,\n // which includes adjusted \"h\" values for items with auto-height enabled. To ensure that\n // values stored are not adjusted (as if auto-height was disabled), we correct them using\n // the originalLayouts stored without adjustments.\n const onLayoutChange = React.useCallback(\n (layout: ConfigLayout[]) => {\n const currentInnerLayout = layout.map((item) => {\n if (item.i in originalLayouts.current) {\n const {parent: _parent, ...originalCopy} = originalLayouts.current[item.i];\n\n if (item.parent) {\n (originalCopy as ConfigLayout).parent = item.parent;\n }\n originalCopy.w = item.w;\n originalCopy.x = item.x;\n originalCopy.y = item.y;\n\n return originalCopy satisfies ConfigLayout;\n } else {\n return {...item};\n }\n });\n\n const baselineConfig = {\n ...props.config,\n layout: getBaselineLayout(),\n };\n\n const newConfig = UpdateManager.updateLayout({\n layout: currentInnerLayout,\n config: baselineConfig,\n });\n\n emitDashKitChangeEvent({\n config: baselineConfig,\n newConfig,\n onChange,\n emitDashKitEvent: props.emitDashKitEvent,\n });\n\n internalBaselineLayoutRef.current = newConfig.layout;\n },\n [getBaselineLayout, props.config, props.emitDashKitEvent, onChange],\n );\n\n const getLayoutItem = React.useCallback(\n (id: string) => {\n return getBaselineLayout().find(({i}) => i === id);\n },\n [getBaselineLayout],\n );\n\n const getOuterLayout = React.useCallback((): ConfigLayout[] => {\n return convertEnrichedLayoutToConfigLayout(getBaselineLayout());\n }, [getBaselineLayout]);\n\n // to calculate items, only memorization of items and globalItems is important\n const configItems = React.useMemo(\n () => getAllConfigItems(props.config),\n [props.config.items, props.config.globalItems],\n );\n\n const onItemRemove = React.useCallback(\n (id: string) => {\n delete nowrapAdjustedLayouts.current[id];\n delete adjustedLayouts.current[id];\n delete originalLayouts.current[id];\n\n if (id === TEMPORARY_ITEM_ID) {\n resetTemporaryLayout();\n } else {\n if (temporaryLayout) {\n setTemporaryLayout({\n ...temporaryLayout,\n data: temporaryLayout.data.filter(({i}) => i !== id),\n });\n }\n\n onChange(\n UpdateManager.removeItem({\n id,\n config: {...props.config, layout: getOuterLayout()},\n itemsStateAndParams: props.itemsStateAndParams,\n }),\n );\n }\n },\n [\n resetTemporaryLayout,\n temporaryLayout,\n onChange,\n props.config,\n props.itemsStateAndParams,\n getOuterLayout,\n ],\n );\n\n const onItemStateAndParamsChange = React.useCallback<\n DashKitCtxShape['onItemStateAndParamsChange']\n >(\n (id, stateAndParams, options) => {\n const currentConfig = {...props.config, layout: getOuterLayout()};\n onChange({\n config: currentConfig,\n // config is not strictly required here; ideally it should be removed along with the default props\n itemsStateAndParams: UpdateManager.changeStateAndParams({\n id,\n config: currentConfig,\n stateAndParams,\n itemsStateAndParams: props.itemsStateAndParams,\n options,\n }),\n });\n },\n [props.config, props.itemsStateAndParams, getOuterLayout, onChange],\n );\n\n const memorizeOriginalLayout = React.useCallback<DashKitCtxShape['memorizeOriginalLayout']>(\n (widgetId, preAutoHeightLayout, postAutoHeightLayout) => {\n let needUpdateLayout = false;\n if (!(widgetId in originalLayouts.current)) {\n originalLayouts.current[widgetId] = preAutoHeightLayout;\n needUpdateLayout = true;\n }\n if (adjustedLayouts.current[widgetId] !== postAutoHeightLayout) {\n adjustedLayouts.current[widgetId] = postAutoHeightLayout;\n needUpdateLayout = true;\n }\n\n if (needUpdateLayout) {\n forceUpdateLayout((prev) => prev + 1);\n }\n },\n [],\n );\n\n const revertToOriginalLayout = React.useCallback((widgetId: string) => {\n const needUpdateLayout =\n widgetId in adjustedLayouts.current || widgetId in originalLayouts.current;\n delete adjustedLayouts.current[widgetId];\n delete originalLayouts.current[widgetId];\n if (needUpdateLayout) {\n forceUpdateLayout((prev) => prev + 1);\n }\n }, []);\n\n React.useMemo(() => {\n const groups = props.groups;\n // Use visualLayout instead of props.layout (which is now optional)\n const layout = visualLayout;\n const defaultProps = props.registerManager.gridLayout || {};\n const nowrapGroups: Record<string, {items: ConfigLayout[]; leftSpace: number}> = {};\n let hasNowrapGroups = false;\n\n if (\n defaultProps.compactType === COMPACT_TYPE_HORIZONTAL_NOWRAP &&\n defaultProps.cols !== undefined\n ) {\n nowrapGroups[DEFAULT_GROUP] = {\n items: [],\n leftSpace: defaultProps.cols,\n };\n hasNowrapGroups = true;\n }\n\n if (groups) {\n groups.forEach((group) => {\n const resultProps = group.gridProperties?.(defaultProps) || {};\n\n if (\n resultProps.compactType === COMPACT_TYPE_HORIZONTAL_NOWRAP &&\n resultProps.cols !== undefined &&\n group.id\n ) {\n nowrapGroups[group.id] = {\n items: [],\n leftSpace: resultProps.cols,\n };\n hasNowrapGroups = true;\n }\n });\n }\n\n if (hasNowrapGroups) {\n layout.forEach((item) => {\n const widgetId = item.i;\n const parentId = resolveLayoutGroup(item);\n\n if (nowrapGroups[parentId]) {\n // Collecting nowrap elements\n nowrapGroups[parentId].items.push(item);\n nowrapGroups[parentId].leftSpace -= item.w;\n } else if (nowrapAdjustedLayouts.current[widgetId]) {\n // If element is not in horizontal-nowrap cleaning up and reverting adjustLayout values\n delete nowrapAdjustedLayouts.current[widgetId];\n }\n });\n\n Object.entries(nowrapGroups).forEach(([, {items, leftSpace}]) => {\n items.forEach((item) => {\n // setting maxW with adjustLayout fields and saving previous\n nowrapAdjustedLayouts.current[item.i] = item.w + leftSpace;\n });\n });\n }\n }, [props.registerManager, props.groups, visualLayout]);\n\n // Synchronize visual layout during render, so children never see new config with old layout.\n // Keep the previous external layout separate from the drag baseline: a drag updates the latter.\n if (previousEnrichedPropsLayout !== enrichedPropsLayout) {\n setPreviousEnrichedPropsLayout(enrichedPropsLayout);\n\n if (!isEqual(internalBaselineLayoutRef.current, enrichedPropsLayout)) {\n setPendingExternalBaselineLayout({\n layout: enrichedPropsLayout,\n previousBaselineLayout: internalBaselineLayoutRef.current,\n });\n setVisualLayout(enrichedPropsLayout);\n setExternalLayoutRevision((r) => r + 1);\n }\n }\n\n React.useLayoutEffect(() => {\n if (pendingExternalBaselineLayout) {\n if (\n internalBaselineLayoutRef.current ===\n pendingExternalBaselineLayout.previousBaselineLayout\n ) {\n internalBaselineLayoutRef.current = pendingExternalBaselineLayout.layout;\n }\n setPendingExternalBaselineLayout(undefined);\n }\n }, [pendingExternalBaselineLayout]);\n\n const itemsParams = useDeepEqualMemo(\n () =>\n getItemsParams({\n defaultGlobalParams: props.defaultGlobalParams,\n globalParams: props.globalParams,\n config: props.config,\n itemsStateAndParams: props.itemsStateAndParams,\n plugins: props.registerManager.getPlugins(),\n }),\n [\n props.defaultGlobalParams,\n props.globalParams,\n props.config,\n props.itemsStateAndParams,\n props.registerManager,\n ],\n );\n\n const itemsState = useDeepEqualMemo(\n () =>\n getItemsState({\n config: props.config,\n itemsStateAndParams: props.itemsStateAndParams,\n }),\n [props.config, props.itemsStateAndParams],\n );\n\n const getItemsMeta = React.useCallback<DashKitCtxShape['getItemsMeta']>((pluginsRefs) => {\n return pluginsRefs\n .map((ref) => {\n if (!(ref && hasGetMeta(ref))) {\n return undefined;\n }\n return ref.getMeta();\n })\n .filter((item): item is Promise<any> => item !== undefined);\n }, []);\n\n const resultLayout = React.useMemo(() => {\n const adjusted = adjustedLayouts.current;\n const original = originalLayouts.current;\n const nowrapAdjust = nowrapAdjustedLayouts.current;\n\n return visualLayout.map((item) => {\n const widgetId = item.i;\n\n if (widgetId in adjusted || widgetId in nowrapAdjust) {\n original[widgetId] = item;\n // eslint-disable-next-line no-unused-vars\n const {parent: _parent2, ...adjustedItem} = adjusted[widgetId] || item;\n\n adjustedItem.w = item.w;\n adjustedItem.x = item.x;\n adjustedItem.y = item.y;\n\n if (item.parent) {\n (adjustedItem as ConfigLayout).parent = item.parent;\n }\n\n if (widgetId in nowrapAdjust) {\n (adjustedItem as ConfigLayout & {maxW?: number}).maxW = nowrapAdjust[widgetId];\n }\n\n return adjustedItem satisfies ConfigLayout;\n } else {\n if (widgetId in original) {\n delete original[widgetId];\n }\n return item;\n }\n });\n }, [visualLayout, layoutUpdateCounter]);\n\n const reloadItems = React.useCallback<DashKitCtxShape['reloadItems']>((pluginsRefs, data) => {\n pluginsRefs.forEach((ref) => ref && hasReload(ref) && ref.reload(data));\n }, []);\n\n const dragPropsContext = dndContext?.dragProps;\n const onDropDragOverContext = dndContext?.onDropDragOver;\n\n const dragOverPlugin = React.useMemo(() => {\n if (!dragPropsContext) {\n return null;\n }\n\n const pluginType = dragPropsContext.type;\n\n if (props.registerManager.check(pluginType)) {\n return props.registerManager.getItem(pluginType);\n } else {\n // eslint-disable-next-line no-console\n console.error(`Uknown pluginType: ${pluginType}`);\n return null;\n }\n }, [dragPropsContext, props.registerManager]);\n\n const onDropDragOver = React.useCallback<DashKitCtxShape['onDropDragOver']>(\n (_e, group, gridProps, groupLayout, sharedItem) => {\n if (temporaryLayout) {\n resetTemporaryLayout();\n return false;\n }\n\n let dragItemType: string;\n let defaultLayout: RegisterManagerPlugin['defaultLayout'] | {h: number; w: number};\n if (sharedItem) {\n const {type, h, w} = sharedItem;\n dragItemType = type;\n const _defaults = props.registerManager.getItem(type);\n defaultLayout = _defaults ? {..._defaults.defaultLayout, h, w} : {h, w};\n } else if (dragOverPlugin) {\n dragItemType = dragOverPlugin.type;\n defaultLayout = dragOverPlugin.defaultLayout;\n } else {\n return false;\n }\n\n let maxW = gridProps.cols;\n const maxH = Math.min(\n gridProps.maxRows || Infinity,\n 'maxH' in defaultLayout && defaultLayout.maxH ? defaultLayout.maxH : Infinity,\n );\n\n if (gridProps.compactType === COMPACT_TYPE_HORIZONTAL_NOWRAP && gridProps.cols) {\n maxW = groupLayout.reduce((memo, item) => memo - item.w, gridProps.cols);\n }\n\n if (\n maxW === 0 ||\n maxH === 0 ||\n ('minW' in defaultLayout &&\n defaultLayout.minW &&\n maxW &&\n maxW < defaultLayout.minW) ||\n ('minH' in defaultLayout && defaultLayout.minH && maxH < defaultLayout.minH)\n ) {\n return false;\n }\n\n const {\n h = defaultLayout?.h || DEFAULT_WIDGET_HEIGHT,\n w = defaultLayout?.w || DEFAULT_WIDGET_WIDTH,\n } = dragPropsContext?.layout || {};\n\n const itemLayout = {\n h: maxH ? Math.min(h, maxH) : h,\n w: maxW ? Math.min(w, maxW) : w,\n };\n\n if (\n onDropDragOverContext?.(\n {\n ...sharedItem,\n ...itemLayout,\n parent: group,\n type: dragItemType,\n },\n sharedItem ?? null,\n ) === false\n ) {\n return false;\n }\n\n return itemLayout;\n },\n [\n props.registerManager,\n resetTemporaryLayout,\n temporaryLayout,\n dragOverPlugin,\n dragPropsContext,\n onDropDragOverContext,\n ],\n );\n\n const onDropProp = props.onDrop;\n const onDrop = React.useCallback<DashKitCtxShape['onDrop']>(\n (newLayout, item) => {\n if (!dragPropsContext) {\n return;\n }\n\n setTemporaryLayout({\n data: [...newLayout, item],\n dragProps: dragPropsContext,\n });\n\n onDropProp?.({\n newLayout: newLayout.reduce<ConfigLayout[]>((memo, l) => {\n if (l.i !== item.i) {\n memo.push(pick(l, CONFIG_LAYOUT_FIELDS));\n }\n\n return memo;\n }, []),\n itemLayout: pick(item, CONFIG_LAYOUT_FIELDS),\n commit: resetTemporaryLayout,\n dragProps: dragPropsContext,\n });\n },\n [dragPropsContext, onDropProp, setTemporaryLayout, resetTemporaryLayout],\n );\n\n const dashkitContextValue = React.useMemo(\n () => ({\n externalLayoutRevision,\n config: props.config,\n configItems,\n groups: props.groups,\n context: props.context,\n noOverlay: props.noOverlay,\n focusable: props.focusable,\n defaultGlobalParams: props.globalParams,\n globalParams: props.globalParams,\n editMode: props.editMode,\n settings: props.settings,\n onItemMountChange: props.onItemMountChange,\n onItemRender: props.onItemRender,\n draggableHandleClassName: props.draggableHandleClassName,\n\n registerManager: props.registerManager,\n forwardedMetaRef: props.forwardedMetaRef,\n\n layout: resultLayout,\n temporaryLayout,\n layoutChange: onLayoutChange,\n memorizeOriginalLayout,\n revertToOriginalLayout,\n\n itemsState,\n itemsParams,\n onItemStateAndParamsChange,\n\n getItemsMeta,\n reloadItems,\n\n onDrop,\n onDropDragOver,\n outerDnDEnable,\n dragOverPlugin,\n\n onItemFocus: props.onItemFocus,\n onItemBlur: props.onItemBlur,\n\n /* default handlers bypass */\n onDragStart: props.onDragStart,\n onDrag: props.onDrag,\n onDragStop: props.onDragStop,\n onResizeStart: props.onResizeStart,\n onResize: props.onResize,\n onResizeStop: props.onResizeStop,\n }),\n [\n externalLayoutRevision,\n resultLayout,\n temporaryLayout,\n props.config,\n configItems,\n props.groups,\n props.context,\n props.noOverlay,\n props.focusable,\n props.globalParams,\n props.editMode,\n props.settings,\n itemsState,\n itemsParams,\n props.registerManager,\n onItemStateAndParamsChange,\n onDrop,\n onDropDragOver,\n onLayoutChange,\n props.onItemMountChange,\n props.onItemRender,\n getItemsMeta,\n reloadItems,\n memorizeOriginalLayout,\n revertToOriginalLayout,\n props.forwardedMetaRef,\n props.draggableHandleClassName,\n outerDnDEnable,\n dragOverPlugin,\n\n props.onItemFocus,\n props.onItemBlur,\n\n props.onDragStart,\n props.onDrag,\n props.onDragStop,\n props.onResizeStart,\n props.onResize,\n props.onResizeStop,\n ],\n );\n\n const overlayMenuItems = props.overlayMenuItems || props.registerManager.settings.menu;\n const controlsContextValue = React.useMemo(\n () => ({\n overlayControls: props.overlayControls,\n context: props.context,\n\n itemsStateAndParams: props.itemsStateAndParams,\n itemsState,\n itemsParams,\n\n getPreparedCopyItemOptions: props.getPreparedCopyItemOptions,\n onCopyFulfill: props.onCopyFulfill,\n\n menu: overlayMenuItems,\n\n editItem: props.onItemEdit,\n removeItem: onItemRemove,\n getLayoutItem: getLayoutItem,\n }),\n [\n props.overlayControls,\n props.context,\n props.itemsStateAndParams,\n props.onItemEdit,\n props.getPreparedCopyItemOptions,\n props.onCopyFulfill,\n overlayMenuItems,\n itemsState,\n itemsParams,\n onItemRemove,\n getLayoutItem,\n ],\n );\n\n return {controlsContextValue, dashkitContextValue};\n}\n\nexport function withContext(Component: React.ComponentType) {\n const WithContext = (props: DashKitWithContextProps) => {\n const {dashkitContextValue, controlsContextValue} = useMemoStateContext(props);\n\n return (\n <DashKitContext.Provider value={dashkitContextValue}>\n <DashkitOverlayControlsContext.Provider value={controlsContextValue}>\n <Component />\n </DashkitOverlayControlsContext.Provider>\n </DashKitContext.Provider>\n );\n };\n\n WithContext.displayName = `withContext(${\n Component.displayName || Component.name || 'Component'\n })`;\n\n return WithContext;\n}\n"]}
@@ -1 +1 @@
1
- {"version":"10.4.2","type":"commonjs","sideEffects":["*.scss","*.css"]}
1
+ {"version":"10.4.4","type":"commonjs","sideEffects":["*.scss","*.css"]}