@window-splitter/react 1.0.2 → 1.1.1--canary.9d2f98a.0
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.
- package/.turbo/turbo-build.log +1 -1
- package/.turbo/turbo-lint.log +1 -1
- package/.turbo/turbo-test.log +13 -0
- package/CHANGELOG.md +17 -0
- package/dist/commonjs/ReactWindowSplitter.d.ts.map +1 -1
- package/dist/commonjs/ReactWindowSplitter.js +18 -14
- package/dist/commonjs/ReactWindowSplitter.js.map +1 -1
- package/dist/commonjs/ReactWindowSplitter.stories.d.ts +1 -0
- package/dist/commonjs/ReactWindowSplitter.stories.d.ts.map +1 -1
- package/dist/commonjs/ReactWindowSplitter.stories.js +85 -0
- package/dist/commonjs/ReactWindowSplitter.stories.js.map +1 -1
- package/dist/commonjs/ReactWindowSplitter.test.js +5 -5
- package/dist/commonjs/ReactWindowSplitter.test.js.map +1 -1
- package/dist/esm/ReactWindowSplitter.d.ts.map +1 -1
- package/dist/esm/ReactWindowSplitter.js +18 -14
- package/dist/esm/ReactWindowSplitter.js.map +1 -1
- package/dist/esm/ReactWindowSplitter.stories.d.ts +1 -0
- package/dist/esm/ReactWindowSplitter.stories.d.ts.map +1 -1
- package/dist/esm/ReactWindowSplitter.stories.js +85 -1
- package/dist/esm/ReactWindowSplitter.stories.js.map +1 -1
- package/dist/esm/ReactWindowSplitter.test.js +5 -5
- package/dist/esm/ReactWindowSplitter.test.js.map +1 -1
- package/package.json +5 -5
- package/src/ReactWindowSplitter.stories.tsx +208 -1
- package/src/ReactWindowSplitter.test.tsx +8 -5
- package/src/ReactWindowSplitter.tsx +18 -13
- package/src/__snapshots__/ReactWindowSplitter.test.tsx.snap +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactWindowSplitter.test.js","sourceRoot":"","sources":["../../src/ReactWindowSplitter.test.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { test, expect, describe, vi } from \"vitest\";\nimport { cleanup, fireEvent, render, waitFor } from \"@testing-library/react\";\nimport * as Cookies from \"tiny-cookie\";\n\nimport { PanelGroupHandle, PanelHandle } from \"@window-splitter/interface\";\nimport {\n Autosave,\n AutosaveCollapsible,\n Collapsible,\n ConditionalPanel,\n Simple,\n VerticalLayout,\n DynamicConstraints,\n} from \"./ReactWindowSplitter.stories.js\";\nimport { PanelResizer, PanelGroup, Panel } from \"./ReactWindowSplitter.js\";\nimport { createTestUtils, dragHandle } from \"@window-splitter/interface/test\";\n\nconst { expectTemplate, waitForMeasurement, waitForCondition } =\n createTestUtils({ waitFor });\n\ntest(\"horizontal layout\", async () => {\n const handle = { current: null } as unknown as {\n current: PanelGroupHandle;\n };\n const { getByText } = render(\n <div style={{ width: 500 }}>\n <Simple handle={handle} />\n </div>\n );\n\n await waitForMeasurement(handle.current);\n\n expect(getByText(\"Panel 1\")).toBeInTheDocument();\n expect(getByText(\"Panel 2\")).toBeInTheDocument();\n\n await expectTemplate(handle.current, \"244px 10px 244px\");\n\n // Should respect the min\n await dragHandle({ delta: 300 });\n await expectTemplate(handle.current, \"388px 10px 100px\");\n});\n\ntest(\"vertical layout\", async () => {\n const handle = { current: null } as unknown as {\n current: PanelGroupHandle;\n };\n const { getByText } = render(\n <div style={{ width: 500 }}>\n <VerticalLayout handle={handle} />\n </div>\n );\n\n await waitForMeasurement(handle.current);\n\n expect(getByText(\"top\")).toBeInTheDocument();\n expect(getByText(\"middle\")).toBeInTheDocument();\n expect(getByText(\"bottom\")).toBeInTheDocument();\n\n await expectTemplate(handle.current, \"96px 10px 108px 10px 96px\");\n\n // Should respect the min\n await dragHandle({ delta: 100, orientation: \"vertical\" });\n await expectTemplate(handle.current, \"172px 10px 64px 10px 64px\");\n});\n\ntest(\"Conditional Panels\", async () => {\n const handle = { current: null } as unknown as {\n current: PanelGroupHandle;\n };\n const { getByText } = render(\n <div style={{ width: 500 }}>\n <ConditionalPanel handle={handle} />\n </div>\n );\n\n await waitForMeasurement(handle.current);\n await expectTemplate(handle.current, \"244px 10px 244px\");\n\n getByText(\"Expand\").click();\n await expectTemplate(\n handle.current,\n \"236.953125px 10px 141.046875px 10px 100px\"\n );\n\n getByText(\"Close\").click();\n await expectTemplate(handle.current, \"236.96875px 10px 251.03125px\");\n});\n\ntest(\"Dynamic constraints\", async () => {\n const handle = { current: null } as unknown as {\n current: PanelGroupHandle;\n };\n const { getByText } = render(\n <div style={{ width: 1000 }}>\n <DynamicConstraints handle={handle} />\n </div>\n );\n\n await waitForMeasurement(handle.current);\n await expectTemplate(handle.current, \"100px 10px 178px 10px 700px\");\n\n getByText(\"Toggle Custom\").click();\n await expectTemplate(handle.current, \"500px 10px 178px 10px 300px\");\n\n getByText(\"Toggle Custom\").click();\n await expectTemplate(handle.current, \"400px 10px 178px 10px 400px\");\n});\n\ndescribe(\"Autosave\", () => {\n test(\"localStorage\", async () => {\n localStorage.clear();\n\n const handle = { current: null } as unknown as {\n current: PanelGroupHandle;\n };\n\n render(\n <div style={{ width: 500 }}>\n <Autosave handle={handle} />\n </div>\n );\n\n await waitForMeasurement(handle.current);\n await expectTemplate(handle.current, \"244px 10px 244px\");\n\n await dragHandle({ delta: 100 });\n await expectTemplate(handle.current, \"342px 10px 146px\");\n\n await waitForCondition(() =>\n Boolean(localStorage.getItem(\"autosave-example\"))\n );\n const obj = JSON.parse(localStorage.getItem(\"autosave-example\") || \"{}\");\n expect(obj.items).toMatchSnapshot();\n });\n\n test(\"callback\", async () => {\n localStorage.clear();\n\n const handle = { current: null } as unknown as {\n current: PanelGroupHandle;\n };\n\n const spy = vi.fn();\n\n render(\n <div style={{ width: 500 }}>\n <AutosaveCollapsible handle={handle} onCollapseChange={spy} />\n </div>\n );\n\n await dragHandle({ delta: -200 });\n await expectTemplate(handle.current, \"100px 10px 388px\");\n expect(spy).toHaveBeenCalledWith(true);\n\n cleanup();\n\n render(\n <div style={{ width: 500 }}>\n <AutosaveCollapsible handle={handle} onCollapseChange={spy} />\n </div>\n );\n\n await expectTemplate(handle.current, \"100px 10px 388px\");\n await dragHandle({ delta: 200 });\n expect(spy).toHaveBeenCalledWith(false);\n });\n\n test(\"cookie\", async () => {\n // clear cookies\n document.cookie = \"test=; expires=Thu, 01 Jan 1970 00:00:00 GMT\";\n\n const handle = { current: null } as unknown as {\n current: PanelGroupHandle;\n };\n\n render(\n <div style={{ width: 500 }}>\n <PanelGroup\n handle={handle}\n orientation=\"horizontal\"\n autosaveId=\"autosave-cookie-example\"\n autosaveStrategy=\"cookie\"\n style={{ height: 200 }}\n >\n <Panel id=\"panel1\">1</Panel>\n <PanelResizer\n id=\"resizer1\"\n size=\"10px\"\n style={{ background: \"red\" }}\n />\n <Panel id=\"panel2\">2</Panel>\n </PanelGroup>\n </div>\n );\n\n await waitForMeasurement(handle.current);\n await expectTemplate(handle.current, \"245px 10px 245px\");\n\n await dragHandle({ delta: 100 });\n await expectTemplate(handle.current, \"343px 10px 147px\");\n\n await waitForCondition(() =>\n document.cookie.includes(\"autosave-cookie-example\")\n );\n\n expect(document.cookie).toMatchSnapshot();\n\n const snapshot = Cookies.get(\"autosave-cookie-example\");\n\n cleanup();\n\n render(\n <div style={{ width: 500 }}>\n <PanelGroup\n handle={handle}\n orientation=\"horizontal\"\n autosaveId=\"autosave-cookie-example\"\n autosaveStrategy=\"cookie\"\n style={{ height: 200 }}\n snapshot={snapshot ? JSON.parse(snapshot) : undefined}\n >\n <Panel id=\"panel1\">1</Panel>\n <PanelResizer\n id=\"resizer1\"\n size=\"10px\"\n style={{ background: \"red\" }}\n />\n <Panel id=\"panel2\">2</Panel>\n </PanelGroup>\n </div>\n );\n\n await expectTemplate(handle.current, \"343px 10px 147px\");\n });\n});\n\ntest(\"Keyboard interactions with collapsed panels\", async () => {\n const handle = { current: null } as unknown as {\n current: PanelGroupHandle;\n };\n const rightHandle = { current: null } as unknown as {\n current: PanelHandle;\n };\n render(\n <div style={{ width: 500 }}>\n <Collapsible handle={handle} rightPanelHandle={rightHandle} />\n </div>\n );\n\n await waitForMeasurement(handle.current);\n await expectTemplate(handle.current, \"209px 10px 209px 10px 60px\");\n\n const resizer2 = document.getElementById(\"resizer-2\")!;\n fireEvent.keyDown(resizer2, { key: \"Enter\" });\n await expectTemplate(\n handle.current,\n \"209px 10px 168.953125px 10px 100.03125px\"\n );\n\n fireEvent.keyDown(resizer2, { key: \"ArrowLeft\" });\n fireEvent.keyDown(resizer2, { key: \"ArrowLeft\" });\n fireEvent.keyDown(resizer2, { key: \"ArrowLeft\" });\n fireEvent.keyDown(resizer2, { key: \"ArrowLeft\" });\n await expectTemplate(\n handle.current,\n \"209px 10px 164.96875px 10px 104.03125px\"\n );\n\n fireEvent.keyDown(resizer2, { key: \"ArrowLeft\", shiftKey: true });\n await expectTemplate(\n handle.current,\n \"209px 10px 149.96875px 10px 119.03125px\"\n );\n\n fireEvent.keyDown(resizer2, { key: \"Enter\" });\n await expectTemplate(handle.current, \"209px 10px 209px 10px 60px\");\n\n fireEvent.keyDown(resizer2, { key: \"Enter\" });\n await expectTemplate(\n handle.current,\n \"209px 10px 149.96875px 10px 119.03125px\"\n );\n});\n\ndescribe(\"imperative panel API\", async () => {\n test(\"panel group\", async () => {\n const handle = { current: null } as unknown as {\n current: PanelGroupHandle;\n };\n\n render(\n <div style={{ width: 500 }}>\n <Collapsible handle={handle} />\n </div>\n );\n\n await waitForMeasurement(handle.current);\n\n expect(handle.current.getPercentageSizes()).toMatchInlineSnapshot(`\n [\n 0.5,\n 0.020080321285140562,\n 0.5,\n 0.020080321285140562,\n 0.12048192771084337,\n ]\n `);\n\n expect(handle.current.getPixelSizes()).toMatchInlineSnapshot(`\n [\n 209,\n 10,\n 209,\n 10,\n 60,\n ]\n `);\n\n await expectTemplate(handle.current, \"209px 10px 209px 10px 60px\");\n });\n\n test(\"panel\", async () => {\n const handle = { current: null } as unknown as {\n current: PanelGroupHandle;\n };\n const rightHandle = { current: null } as unknown as {\n current: PanelHandle;\n };\n const leftHandle = { current: null } as unknown as {\n current: PanelHandle;\n };\n\n render(\n <div style={{ width: 500 }}>\n <Collapsible\n handle={handle}\n leftPanelHandle={leftHandle}\n rightPanelHandle={rightHandle}\n />\n </div>\n );\n\n await waitForMeasurement(handle.current);\n\n expect(rightHandle.current.isCollapsed()).toBe(true);\n expect(rightHandle.current.isExpanded()).toBe(false);\n\n rightHandle.current.expand();\n await new Promise((resolve) => setTimeout(resolve, 2000));\n\n expect(rightHandle.current.isCollapsed()).toBe(false);\n expect(rightHandle.current.isExpanded()).toBe(true);\n\n rightHandle.current.collapse();\n await new Promise((resolve) => setTimeout(resolve, 2000));\n\n expect(rightHandle.current.isCollapsed()).toBe(true);\n expect(rightHandle.current.isExpanded()).toBe(false);\n\n // Test the non controlled version\n\n expect(leftHandle.current.isCollapsed()).toBe(false);\n expect(leftHandle.current.isExpanded()).toBe(true);\n\n leftHandle.current.collapse();\n await new Promise((resolve) => setTimeout(resolve, 2000));\n\n expect(leftHandle.current.isCollapsed()).toBe(true);\n expect(leftHandle.current.isExpanded()).toBe(false);\n expect(rightHandle.current.getPercentageSize()).toBe(\n leftHandle.current.getPercentageSize()\n );\n expect(rightHandle.current.getPixelSize()).toBe(\n leftHandle.current.getPixelSize()\n );\n\n leftHandle.current.expand();\n await new Promise((resolve) => setTimeout(resolve, 5000));\n\n expect(leftHandle.current.isCollapsed()).toBe(false);\n expect(leftHandle.current.isExpanded()).toBe(true);\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"ReactWindowSplitter.test.js","sourceRoot":"","sources":["../../src/ReactWindowSplitter.test.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { test, expect, describe, vi } from \"vitest\";\nimport { cleanup, fireEvent, render, waitFor } from \"@testing-library/react\";\nimport * as Cookies from \"tiny-cookie\";\n\nimport { PanelGroupHandle, PanelHandle } from \"@window-splitter/interface\";\nimport {\n Autosave,\n AutosaveCollapsible,\n Collapsible,\n ConditionalPanel,\n Simple,\n VerticalLayout,\n DynamicConstraints,\n} from \"./ReactWindowSplitter.stories.js\";\nimport { PanelResizer, PanelGroup, Panel } from \"./ReactWindowSplitter.js\";\nimport { createTestUtils, dragHandle } from \"@window-splitter/interface/test\";\n\nconst { expectTemplate, waitForMeasurement, waitForCondition } =\n createTestUtils({ waitFor });\n\ntest(\"horizontal layout\", async () => {\n const handle = { current: null } as unknown as {\n current: PanelGroupHandle;\n };\n const { getByText } = render(\n <div style={{ width: 500 }}>\n <Simple handle={handle} />\n </div>\n );\n\n await waitForMeasurement(handle.current);\n\n expect(getByText(\"Panel 1\")).toBeInTheDocument();\n expect(getByText(\"Panel 2\")).toBeInTheDocument();\n\n await expectTemplate(handle.current, \"244px 10px 244px\");\n\n // Should respect the min\n await dragHandle({ delta: 300 });\n await expectTemplate(handle.current, \"388px 10px 100px\");\n});\n\ntest(\"vertical layout\", async () => {\n const handle = { current: null } as unknown as {\n current: PanelGroupHandle;\n };\n const { getByText } = render(\n <div style={{ width: 500 }}>\n <VerticalLayout handle={handle} />\n </div>\n );\n\n await waitForMeasurement(handle.current);\n\n expect(getByText(\"top\")).toBeInTheDocument();\n expect(getByText(\"middle\")).toBeInTheDocument();\n expect(getByText(\"bottom\")).toBeInTheDocument();\n\n await expectTemplate(handle.current, \"96px 10px 108px 10px 96px\");\n\n // Should respect the min\n await dragHandle({ delta: 100, orientation: \"vertical\" });\n await expectTemplate(handle.current, \"172px 10px 64px 10px 64px\");\n});\n\ntest(\"Conditional Panels\", async () => {\n const handle = { current: null } as unknown as {\n current: PanelGroupHandle;\n };\n const { getByText } = render(\n <div style={{ width: 500 }}>\n <ConditionalPanel handle={handle} />\n </div>\n );\n\n await waitForMeasurement(handle.current);\n await expectTemplate(handle.current, \"244px 10px 244px\");\n\n getByText(\"Expand\").click();\n await expectTemplate(\n handle.current,\n \"236.953125px 10px 141.046875px 10px 100px\"\n );\n\n getByText(\"Close\").click();\n await expectTemplate(handle.current, \"236.96875px 10px 251.03125px\");\n});\n\ntest(\"Dynamic constraints\", async () => {\n const handle = { current: null } as unknown as {\n current: PanelGroupHandle;\n };\n const { getByText } = render(\n <div style={{ width: 1000 }}>\n <DynamicConstraints handle={handle} />\n </div>\n );\n\n await waitForMeasurement(handle.current);\n await expectTemplate(handle.current, \"100px 10px 178px 10px 700px\");\n\n getByText(\"Toggle Custom\").click();\n await expectTemplate(handle.current, \"500px 10px 178px 10px 300px\");\n\n getByText(\"Toggle Custom\").click();\n await expectTemplate(handle.current, \"400px 10px 178px 10px 400px\");\n});\n\ndescribe(\"Autosave\", () => {\n test(\"localStorage\", async () => {\n localStorage.clear();\n\n const handle = { current: null } as unknown as {\n current: PanelGroupHandle;\n };\n\n render(\n <div style={{ width: 500 }}>\n <Autosave handle={handle} />\n </div>\n );\n\n await waitForMeasurement(handle.current);\n await expectTemplate(handle.current, \"244px 10px 244px\");\n\n await dragHandle({ delta: 100 });\n await expectTemplate(handle.current, \"342px 10px 146px\");\n\n await waitForCondition(() =>\n Boolean(localStorage.getItem(\"autosave-example\"))\n );\n const obj = JSON.parse(localStorage.getItem(\"autosave-example\") || \"{}\");\n expect(obj.items).toMatchSnapshot();\n });\n\n test(\"callback\", async () => {\n localStorage.clear();\n\n const handle = { current: null } as unknown as {\n current: PanelGroupHandle;\n };\n\n const spy = vi.fn();\n\n render(\n <div style={{ width: 500 }}>\n <AutosaveCollapsible handle={handle} onCollapseChange={spy} />\n </div>\n );\n\n await dragHandle({ delta: -200 });\n await expectTemplate(handle.current, \"100px 10px 388px\");\n expect(spy).toHaveBeenCalledWith(true);\n\n cleanup();\n\n render(\n <div style={{ width: 500 }}>\n <AutosaveCollapsible handle={handle} onCollapseChange={spy} />\n </div>\n );\n\n await expectTemplate(handle.current, \"100px 10px 388px\");\n await dragHandle({ delta: 200 });\n expect(spy).toHaveBeenCalledWith(false);\n });\n\n test(\"cookie\", async () => {\n // clear cookies\n document.cookie = \"test=; expires=Thu, 01 Jan 1970 00:00:00 GMT\";\n\n const handle = { current: null } as unknown as {\n current: PanelGroupHandle;\n };\n\n render(\n <div style={{ width: 500 }}>\n <PanelGroup\n handle={handle}\n orientation=\"horizontal\"\n autosaveId=\"autosave-cookie-example\"\n autosaveStrategy=\"cookie\"\n style={{ height: 200 }}\n >\n <Panel id=\"panel1\">1</Panel>\n <PanelResizer\n id=\"resizer1\"\n size=\"10px\"\n style={{ background: \"red\" }}\n />\n <Panel id=\"panel2\">2</Panel>\n </PanelGroup>\n </div>\n );\n\n await waitForMeasurement(handle.current);\n await expectTemplate(handle.current, \"245px 10px 245px\");\n\n await dragHandle({ delta: 100 });\n await expectTemplate(handle.current, \"343px 10px 147px\");\n\n await waitForCondition(() =>\n document.cookie.includes(\"autosave-cookie-example\")\n );\n\n expect(document.cookie).toMatchSnapshot();\n\n const snapshot = Cookies.get(\"autosave-cookie-example\");\n\n cleanup();\n\n render(\n <div style={{ width: 500 }}>\n <PanelGroup\n handle={handle}\n orientation=\"horizontal\"\n autosaveId=\"autosave-cookie-example\"\n autosaveStrategy=\"cookie\"\n style={{ height: 200 }}\n snapshot={snapshot ? JSON.parse(snapshot) : undefined}\n >\n <Panel id=\"panel1\">1</Panel>\n <PanelResizer\n id=\"resizer1\"\n size=\"10px\"\n style={{ background: \"red\" }}\n />\n <Panel id=\"panel2\">2</Panel>\n </PanelGroup>\n </div>\n );\n\n await expectTemplate(handle.current, \"343px 10px 147px\");\n });\n});\n\ntest(\"Keyboard interactions with collapsed panels\", async () => {\n const handle = { current: null } as unknown as {\n current: PanelGroupHandle;\n };\n const rightHandle = { current: null } as unknown as {\n current: PanelHandle;\n };\n render(\n <div style={{ width: 500 }}>\n <Collapsible handle={handle} rightPanelHandle={rightHandle} />\n </div>\n );\n\n await waitForMeasurement(handle.current);\n await expectTemplate(handle.current, \"209px 10px 209px 10px 60px\");\n\n const resizer2 = document.getElementById(\"resizer-2\")!;\n fireEvent.keyDown(resizer2, { key: \"Enter\" });\n await expectTemplate(\n handle.current,\n \"209.015625px 10px 167px 10px 101.984375px\"\n );\n\n fireEvent.keyDown(resizer2, { key: \"ArrowLeft\" });\n fireEvent.keyDown(resizer2, { key: \"ArrowLeft\" });\n fireEvent.keyDown(resizer2, { key: \"ArrowLeft\" });\n fireEvent.keyDown(resizer2, { key: \"ArrowLeft\" });\n await expectTemplate(\n handle.current,\n \"209.015625px 10px 163px 10px 105.984375px\"\n );\n\n fireEvent.keyDown(resizer2, { key: \"ArrowLeft\", shiftKey: true });\n await expectTemplate(\n handle.current,\n \"209.03125px 10px 147.984375px 10px 120.984375px\"\n );\n\n fireEvent.keyDown(resizer2, { key: \"Enter\" });\n await expectTemplate(\n handle.current,\n \"209.03125px 10px 208.96875px 10px 60px\"\n );\n\n fireEvent.keyDown(resizer2, { key: \"Enter\" });\n await expectTemplate(\n handle.current,\n \"209.046875px 10px 144.9375px 10px 124.015625px\"\n );\n});\n\ndescribe(\"imperative panel API\", async () => {\n test(\"panel group\", async () => {\n const handle = { current: null } as unknown as {\n current: PanelGroupHandle;\n };\n\n render(\n <div style={{ width: 500 }}>\n <Collapsible handle={handle} />\n </div>\n );\n\n await waitForMeasurement(handle.current);\n\n expect(handle.current.getPercentageSizes()).toMatchInlineSnapshot(`\n [\n 0.5,\n 0.020080321285140562,\n 0.5,\n 0.020080321285140562,\n 0.12048192771084337,\n ]\n `);\n\n expect(handle.current.getPixelSizes()).toMatchInlineSnapshot(`\n [\n 209,\n 10,\n 209,\n 10,\n 60,\n ]\n `);\n\n await expectTemplate(handle.current, \"209px 10px 209px 10px 60px\");\n });\n\n test(\"panel\", async () => {\n const handle = { current: null } as unknown as {\n current: PanelGroupHandle;\n };\n const rightHandle = { current: null } as unknown as {\n current: PanelHandle;\n };\n const leftHandle = { current: null } as unknown as {\n current: PanelHandle;\n };\n\n render(\n <div style={{ width: 500 }}>\n <Collapsible\n handle={handle}\n leftPanelHandle={leftHandle}\n rightPanelHandle={rightHandle}\n />\n </div>\n );\n\n await waitForMeasurement(handle.current);\n\n expect(rightHandle.current.isCollapsed()).toBe(true);\n expect(rightHandle.current.isExpanded()).toBe(false);\n\n rightHandle.current.expand();\n await new Promise((resolve) => setTimeout(resolve, 2000));\n\n expect(rightHandle.current.isCollapsed()).toBe(false);\n expect(rightHandle.current.isExpanded()).toBe(true);\n\n rightHandle.current.collapse();\n await new Promise((resolve) => setTimeout(resolve, 2000));\n\n expect(rightHandle.current.isCollapsed()).toBe(true);\n expect(rightHandle.current.isExpanded()).toBe(false);\n\n // Test the non controlled version\n\n expect(leftHandle.current.isCollapsed()).toBe(false);\n expect(leftHandle.current.isExpanded()).toBe(true);\n\n leftHandle.current.collapse();\n await new Promise((resolve) => setTimeout(resolve, 2000));\n\n expect(leftHandle.current.isCollapsed()).toBe(true);\n expect(leftHandle.current.isExpanded()).toBe(false);\n expect(rightHandle.current.getPercentageSize()).toBe(\n leftHandle.current.getPercentageSize()\n );\n expect(rightHandle.current.getPixelSize()).toBe(\n leftHandle.current.getPixelSize()\n );\n\n leftHandle.current.expand();\n await new Promise((resolve) => setTimeout(resolve, 5000));\n\n expect(leftHandle.current.isCollapsed()).toBe(false);\n expect(leftHandle.current.isExpanded()).toBe(true);\n });\n});\n"]}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "@window-splitter/react",
|
|
4
4
|
"sideEffects": false,
|
|
5
|
-
"version": "1.0
|
|
5
|
+
"version": "1.1.1--canary.9d2f98a.0",
|
|
6
6
|
"description": "A WAI-ARIA compliant window splitter for React.",
|
|
7
7
|
"homepage": "https://react-window-splitter-six.vercel.app",
|
|
8
8
|
"repository": {
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@chromatic-com/storybook": "^1.6.1",
|
|
39
|
-
"@internal/eslint-config": "1.0
|
|
39
|
+
"@internal/eslint-config": "1.1.1--canary.9d2f98a.0",
|
|
40
40
|
"@rsbuild/core": "^1.3.12",
|
|
41
41
|
"@rsdoctor/rspack-plugin": "^1.0.2",
|
|
42
42
|
"@storybook/react": "^8.2.9",
|
|
@@ -62,8 +62,8 @@
|
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
64
|
"@react-aria/utils": "^3.28.2",
|
|
65
|
-
"@window-splitter/interface": "1.0
|
|
66
|
-
"@window-splitter/state": "1.0
|
|
65
|
+
"@window-splitter/interface": "1.1.1--canary.9d2f98a.0",
|
|
66
|
+
"@window-splitter/state": "1.1.1--canary.9d2f98a.0"
|
|
67
67
|
},
|
|
68
68
|
"tshy": {
|
|
69
69
|
"exclude": [
|
|
@@ -98,5 +98,5 @@
|
|
|
98
98
|
"resizable",
|
|
99
99
|
"window"
|
|
100
100
|
],
|
|
101
|
-
"gitHead": "
|
|
101
|
+
"gitHead": "9d2f98a3d6226018c598018cea829d6412b60cd0"
|
|
102
102
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useMemo } from "react";
|
|
1
|
+
import React, { useCallback, useMemo, useRef, useState } from "react";
|
|
2
2
|
import { spring } from "framer-motion";
|
|
3
3
|
import {
|
|
4
4
|
PanelGroup,
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
PanelResizerProps,
|
|
10
10
|
} from "./ReactWindowSplitter.js";
|
|
11
11
|
import { PanelGroupHandle, PanelHandle } from "@window-splitter/interface";
|
|
12
|
+
import { PercentUnit } from "@window-splitter/state";
|
|
12
13
|
|
|
13
14
|
export default {
|
|
14
15
|
title: "Components/React",
|
|
@@ -703,3 +704,209 @@ export function StaticAtRest({
|
|
|
703
704
|
</StyledPanelGroup>
|
|
704
705
|
);
|
|
705
706
|
}
|
|
707
|
+
|
|
708
|
+
function Flex({
|
|
709
|
+
direction = "row",
|
|
710
|
+
gap = "0x",
|
|
711
|
+
align = "start",
|
|
712
|
+
justify = "start",
|
|
713
|
+
...props
|
|
714
|
+
}: React.HTMLAttributes<HTMLDivElement> & {
|
|
715
|
+
direction?: "row" | "column";
|
|
716
|
+
gap?: string;
|
|
717
|
+
align?: "center" | "start" | "end";
|
|
718
|
+
justify?: "center" | "start" | "end" | "between";
|
|
719
|
+
}) {
|
|
720
|
+
return (
|
|
721
|
+
<div
|
|
722
|
+
style={{
|
|
723
|
+
display: "flex",
|
|
724
|
+
flexDirection: direction,
|
|
725
|
+
gap,
|
|
726
|
+
alignItems: align,
|
|
727
|
+
justifyContent: justify === "between" ? "space-between" : justify,
|
|
728
|
+
}}
|
|
729
|
+
{...props}
|
|
730
|
+
/>
|
|
731
|
+
);
|
|
732
|
+
}
|
|
733
|
+
|
|
734
|
+
export function SiblingCollapsiblePanels() {
|
|
735
|
+
const sidebarHandle = useRef<PanelHandle>(null);
|
|
736
|
+
const editorHandle = useRef<PanelHandle>(null);
|
|
737
|
+
const previewHandle = useRef<PanelHandle>(null);
|
|
738
|
+
const [editModeSize, setEditModeSize] = useState<number[] | undefined>();
|
|
739
|
+
const panelGroupRef = useRef<PanelGroupHandle>(null);
|
|
740
|
+
const [isEditMode, setIsEditMode] = useState(true);
|
|
741
|
+
|
|
742
|
+
const handleEditModeToggle = useCallback(async () => {
|
|
743
|
+
const newMode = !isEditMode;
|
|
744
|
+
setIsEditMode(newMode);
|
|
745
|
+
|
|
746
|
+
if (!newMode) {
|
|
747
|
+
setEditModeSize(panelGroupRef.current?.getPercentageSizes());
|
|
748
|
+
|
|
749
|
+
await sidebarHandle.current?.collapse();
|
|
750
|
+
await editorHandle.current?.collapse();
|
|
751
|
+
await previewHandle.current?.expand();
|
|
752
|
+
} else {
|
|
753
|
+
if (editModeSize) {
|
|
754
|
+
panelGroupRef.current?.setSizes(
|
|
755
|
+
editModeSize.map((i) => `${i * 100}%` as PercentUnit)
|
|
756
|
+
);
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
await sidebarHandle.current?.expand();
|
|
760
|
+
await editorHandle.current?.expand();
|
|
761
|
+
await previewHandle.current?.expand();
|
|
762
|
+
}
|
|
763
|
+
}, [editModeSize, isEditMode]);
|
|
764
|
+
|
|
765
|
+
const [isSidebarCollapsed, setIsSidebarCollapsed] = useState(!isEditMode);
|
|
766
|
+
const [isEditorCollapsed, setIsEditorCollapsed] = useState(!isEditMode);
|
|
767
|
+
const [isPreviewCollapsed, setIsPreviewCollapsed] = useState(false);
|
|
768
|
+
|
|
769
|
+
const handleSidebarCollapseChange = useCallback(
|
|
770
|
+
(isCollapsed: boolean) => {
|
|
771
|
+
if (isEditMode) {
|
|
772
|
+
setIsSidebarCollapsed(isCollapsed);
|
|
773
|
+
}
|
|
774
|
+
},
|
|
775
|
+
[isEditMode]
|
|
776
|
+
);
|
|
777
|
+
const handleEditorCollapseChange = useCallback(
|
|
778
|
+
(isCollapsed: boolean) => {
|
|
779
|
+
if (isEditMode) {
|
|
780
|
+
setIsEditorCollapsed(isCollapsed);
|
|
781
|
+
}
|
|
782
|
+
},
|
|
783
|
+
[isEditMode]
|
|
784
|
+
);
|
|
785
|
+
const handlePreviewCollapseChange = useCallback(
|
|
786
|
+
(isCollapsed: boolean) => {
|
|
787
|
+
if (isEditMode) {
|
|
788
|
+
setIsPreviewCollapsed(isCollapsed);
|
|
789
|
+
}
|
|
790
|
+
},
|
|
791
|
+
[isEditMode]
|
|
792
|
+
);
|
|
793
|
+
|
|
794
|
+
return (
|
|
795
|
+
<Flex direction="column" style={{ height: "90vh", width: "800px" }}>
|
|
796
|
+
<StyledPanelGroup handle={panelGroupRef}>
|
|
797
|
+
<StyledPanel
|
|
798
|
+
handle={sidebarHandle}
|
|
799
|
+
id="sidebar"
|
|
800
|
+
min="100px"
|
|
801
|
+
default="200px"
|
|
802
|
+
collapsible
|
|
803
|
+
collapsed={isSidebarCollapsed}
|
|
804
|
+
// collapseAnimation="ease-in-out"
|
|
805
|
+
onCollapseChange={handleSidebarCollapseChange}
|
|
806
|
+
>
|
|
807
|
+
<Flex
|
|
808
|
+
align="center"
|
|
809
|
+
justify="center"
|
|
810
|
+
style={{ height: "100%", width: "100%" }}
|
|
811
|
+
>
|
|
812
|
+
Sidebar
|
|
813
|
+
</Flex>
|
|
814
|
+
</StyledPanel>
|
|
815
|
+
<StyledResizer id="resizer-1" />
|
|
816
|
+
<StyledPanel
|
|
817
|
+
handle={editorHandle}
|
|
818
|
+
id="editor"
|
|
819
|
+
min="100px"
|
|
820
|
+
default="200px"
|
|
821
|
+
collapsible
|
|
822
|
+
collapsed={isEditorCollapsed}
|
|
823
|
+
// collapseAnimation="ease-in-out"
|
|
824
|
+
onCollapseChange={handleEditorCollapseChange}
|
|
825
|
+
>
|
|
826
|
+
<Flex
|
|
827
|
+
align="center"
|
|
828
|
+
justify="center"
|
|
829
|
+
style={{ height: "100%", width: "100%" }}
|
|
830
|
+
>
|
|
831
|
+
Editor
|
|
832
|
+
</Flex>
|
|
833
|
+
</StyledPanel>
|
|
834
|
+
<StyledResizer id="resizer-2" />
|
|
835
|
+
<StyledPanel
|
|
836
|
+
handle={previewHandle}
|
|
837
|
+
id="preview"
|
|
838
|
+
min="100px"
|
|
839
|
+
collapsible
|
|
840
|
+
collapsed={isPreviewCollapsed}
|
|
841
|
+
// collapseAnimation="ease-in-out"
|
|
842
|
+
onCollapseChange={handlePreviewCollapseChange}
|
|
843
|
+
>
|
|
844
|
+
<Flex
|
|
845
|
+
align="center"
|
|
846
|
+
justify="center"
|
|
847
|
+
style={{ height: "100%", width: "100%" }}
|
|
848
|
+
>
|
|
849
|
+
Preview
|
|
850
|
+
</Flex>
|
|
851
|
+
</StyledPanel>
|
|
852
|
+
</StyledPanelGroup>
|
|
853
|
+
<Flex align="center" justify="between">
|
|
854
|
+
<Flex gap="2px">
|
|
855
|
+
<button
|
|
856
|
+
disabled={!isEditMode}
|
|
857
|
+
type="button"
|
|
858
|
+
onClick={() =>
|
|
859
|
+
setIsSidebarCollapsed(
|
|
860
|
+
(prevSidebarCollapsed) => !prevSidebarCollapsed
|
|
861
|
+
)
|
|
862
|
+
}
|
|
863
|
+
style={{
|
|
864
|
+
backgroundColor: isSidebarCollapsed ? "blue" : undefined,
|
|
865
|
+
}}
|
|
866
|
+
>
|
|
867
|
+
{isSidebarCollapsed ? "Open sidebar" : "Close sidebar"}
|
|
868
|
+
</button>
|
|
869
|
+
<button
|
|
870
|
+
disabled={!isEditMode}
|
|
871
|
+
type="button"
|
|
872
|
+
onClick={() =>
|
|
873
|
+
setIsEditorCollapsed(
|
|
874
|
+
(prevEditorCollapsed) => !prevEditorCollapsed
|
|
875
|
+
)
|
|
876
|
+
}
|
|
877
|
+
style={{
|
|
878
|
+
backgroundColor: isEditorCollapsed ? "blue" : undefined,
|
|
879
|
+
}}
|
|
880
|
+
>
|
|
881
|
+
{isEditorCollapsed ? "Open editor" : "Close editor"}
|
|
882
|
+
</button>
|
|
883
|
+
<button
|
|
884
|
+
disabled={!isEditMode}
|
|
885
|
+
type="button"
|
|
886
|
+
onClick={() =>
|
|
887
|
+
setIsPreviewCollapsed(
|
|
888
|
+
(prevPreviewCollapsed) => !prevPreviewCollapsed
|
|
889
|
+
)
|
|
890
|
+
}
|
|
891
|
+
style={{
|
|
892
|
+
backgroundColor: isPreviewCollapsed ? "blue" : undefined,
|
|
893
|
+
}}
|
|
894
|
+
>
|
|
895
|
+
{isPreviewCollapsed ? "Open preview" : "Close preview"}
|
|
896
|
+
</button>
|
|
897
|
+
</Flex>
|
|
898
|
+
<Flex gap="8px">
|
|
899
|
+
<button
|
|
900
|
+
type="button"
|
|
901
|
+
onClick={handleEditModeToggle}
|
|
902
|
+
style={{
|
|
903
|
+
backgroundColor: isEditMode ? "blue" : undefined,
|
|
904
|
+
}}
|
|
905
|
+
>
|
|
906
|
+
Edit mode
|
|
907
|
+
</button>
|
|
908
|
+
</Flex>
|
|
909
|
+
</Flex>
|
|
910
|
+
</Flex>
|
|
911
|
+
);
|
|
912
|
+
}
|
|
@@ -255,7 +255,7 @@ test("Keyboard interactions with collapsed panels", async () => {
|
|
|
255
255
|
fireEvent.keyDown(resizer2, { key: "Enter" });
|
|
256
256
|
await expectTemplate(
|
|
257
257
|
handle.current,
|
|
258
|
-
"
|
|
258
|
+
"209.015625px 10px 167px 10px 101.984375px"
|
|
259
259
|
);
|
|
260
260
|
|
|
261
261
|
fireEvent.keyDown(resizer2, { key: "ArrowLeft" });
|
|
@@ -264,22 +264,25 @@ test("Keyboard interactions with collapsed panels", async () => {
|
|
|
264
264
|
fireEvent.keyDown(resizer2, { key: "ArrowLeft" });
|
|
265
265
|
await expectTemplate(
|
|
266
266
|
handle.current,
|
|
267
|
-
"
|
|
267
|
+
"209.015625px 10px 163px 10px 105.984375px"
|
|
268
268
|
);
|
|
269
269
|
|
|
270
270
|
fireEvent.keyDown(resizer2, { key: "ArrowLeft", shiftKey: true });
|
|
271
271
|
await expectTemplate(
|
|
272
272
|
handle.current,
|
|
273
|
-
"
|
|
273
|
+
"209.03125px 10px 147.984375px 10px 120.984375px"
|
|
274
274
|
);
|
|
275
275
|
|
|
276
276
|
fireEvent.keyDown(resizer2, { key: "Enter" });
|
|
277
|
-
await expectTemplate(
|
|
277
|
+
await expectTemplate(
|
|
278
|
+
handle.current,
|
|
279
|
+
"209.03125px 10px 208.96875px 10px 60px"
|
|
280
|
+
);
|
|
278
281
|
|
|
279
282
|
fireEvent.keyDown(resizer2, { key: "Enter" });
|
|
280
283
|
await expectTemplate(
|
|
281
284
|
handle.current,
|
|
282
|
-
"
|
|
285
|
+
"209.046875px 10px 144.9375px 10px 124.015625px"
|
|
283
286
|
);
|
|
284
287
|
});
|
|
285
288
|
|
|
@@ -341,6 +341,7 @@ const PanelGroupImpl = React.forwardRef<
|
|
|
341
341
|
autosaveStrategy = "localStorage",
|
|
342
342
|
snapshot: snapshotProp,
|
|
343
343
|
initialItems,
|
|
344
|
+
shiftAmount,
|
|
344
345
|
...props
|
|
345
346
|
},
|
|
346
347
|
ref
|
|
@@ -377,6 +378,7 @@ const PanelGroupImpl = React.forwardRef<
|
|
|
377
378
|
groupId,
|
|
378
379
|
items: initialItems.current,
|
|
379
380
|
autosaveStrategy,
|
|
381
|
+
shiftAmount,
|
|
380
382
|
...(typeof snapshotMemo === "object" ? snapshotMemo : undefined),
|
|
381
383
|
}}
|
|
382
384
|
>
|
|
@@ -610,11 +612,11 @@ const PanelVisible = React.forwardRef<
|
|
|
610
612
|
}
|
|
611
613
|
});
|
|
612
614
|
|
|
613
|
-
const
|
|
615
|
+
const constraintChanged =
|
|
614
616
|
panel && haveConstraintsChangedForPanel(panelProp, panel);
|
|
615
617
|
|
|
616
618
|
const onConstraintChange = useEffectEvent(() => {
|
|
617
|
-
if (
|
|
619
|
+
if (constraintChanged) {
|
|
618
620
|
send({
|
|
619
621
|
type: "updateConstraints",
|
|
620
622
|
data: { ...panelProp, id: panel.id },
|
|
@@ -623,10 +625,10 @@ const PanelVisible = React.forwardRef<
|
|
|
623
625
|
});
|
|
624
626
|
|
|
625
627
|
React.useEffect(() => {
|
|
626
|
-
if (
|
|
628
|
+
if (constraintChanged) {
|
|
627
629
|
onConstraintChange();
|
|
628
630
|
}
|
|
629
|
-
}, [send,
|
|
631
|
+
}, [send, constraintChanged, onConstraintChange]);
|
|
630
632
|
|
|
631
633
|
// For controlled collapse we track if the `collapse` prop changes
|
|
632
634
|
// and update the state machine if it does.
|
|
@@ -653,16 +655,19 @@ const PanelVisible = React.forwardRef<
|
|
|
653
655
|
useImperativeHandle(handle || fallbackHandleRef, () => {
|
|
654
656
|
return {
|
|
655
657
|
getId: () => panelId,
|
|
656
|
-
collapse: () => {
|
|
658
|
+
collapse: async () => {
|
|
657
659
|
if (collapsible) {
|
|
658
|
-
|
|
659
|
-
|
|
660
|
+
await new Promise<void>((resolve) => {
|
|
661
|
+
send({ type: "collapsePanel", panelId, controlled: true, resolve });
|
|
662
|
+
});
|
|
660
663
|
}
|
|
661
664
|
},
|
|
662
665
|
isCollapsed: () => Boolean(collapsible && panel?.collapsed),
|
|
663
|
-
expand: () => {
|
|
666
|
+
expand: async () => {
|
|
664
667
|
if (collapsible) {
|
|
665
|
-
|
|
668
|
+
await new Promise<void>((resolve) => {
|
|
669
|
+
send({ type: "expandPanel", panelId, controlled: true, resolve });
|
|
670
|
+
});
|
|
666
671
|
}
|
|
667
672
|
},
|
|
668
673
|
isExpanded: () => Boolean(collapsible && !panel?.collapsed),
|
|
@@ -815,12 +820,12 @@ const PanelResizerVisible = React.forwardRef<
|
|
|
815
820
|
},
|
|
816
821
|
});
|
|
817
822
|
|
|
818
|
-
const
|
|
823
|
+
const constraintChanged =
|
|
819
824
|
panelHandle &&
|
|
820
825
|
haveConstraintsChangedForPanelHandle(panelHandleProp, panelHandle);
|
|
821
826
|
|
|
822
827
|
const onConstraintChange = useEffectEvent(() => {
|
|
823
|
-
if (
|
|
828
|
+
if (constraintChanged) {
|
|
824
829
|
send({
|
|
825
830
|
type: "updateConstraints",
|
|
826
831
|
data: { ...panelHandleProp, id: handleId },
|
|
@@ -829,10 +834,10 @@ const PanelResizerVisible = React.forwardRef<
|
|
|
829
834
|
});
|
|
830
835
|
|
|
831
836
|
React.useEffect(() => {
|
|
832
|
-
if (
|
|
837
|
+
if (constraintChanged) {
|
|
833
838
|
onConstraintChange();
|
|
834
839
|
}
|
|
835
|
-
}, [send,
|
|
840
|
+
}, [send, constraintChanged, onConstraintChange]);
|
|
836
841
|
|
|
837
842
|
const onKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {
|
|
838
843
|
if (e.key === "Enter" && collapsiblePanel) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
2
2
|
|
|
3
|
-
exports[`Autosave > cookie 1`] = `"autosave-cookie-example=%7B%22size%22%3A%7B%22x%22%3A0%2C%22y%22%3A0%2C%22width%22%3A500%2C%22height%22%3A200%2C%22top%22%3A0%2C%22right%22%3A500%2C%22bottom%22%3A200%2C%22left%22%3A0%7D%2C%22items%22%3A%5B%7B%22type%22%3A%22panel%22%2C%22min%22%3A%7B%22type%22%3A%22pixel%22%2C%22value%22%3A%220%22%7D%2C%22max%22%3A%221fr%22%2C%22collapsible%22%3Afalse%2C%22collapsedSize%22%3A%7B%22type%22%3A%22pixel%22%2C%22value%22%3A%220%22%7D%2C%22onCollapseChange%22%3A%7B%7D%2C%22onResize%22%3A%7B%7D%2C%22collapseIsControlled%22%3Afalse%2C%22id%22%3A%22panel1%22%2C%22currentValue%22%3A%7B%22type%22%3A%22percent%22%2C%22value%22%3A%220.7%22%7D%7D%2C%7B%22type%22%3A%22handle%22%2C%22size%22%3A%7B%22type%22%3A%22pixel%22%2C%22value%22%3A%2210%22%7D%2C%22id%22%3A%22resizer1%22%7D%2C%7B%22type%22%3A%22panel%22%2C%22min%22%3A%7B%22type%22%3A%22pixel%22%2C%22value%22%3A%220%22%7D%2C%22max%22%3A%221fr%22%2C%22collapsible%22%3Afalse%2C%22collapsedSize%22%3A%7B%22type%22%3A%22pixel%22%2C%22value%22%3A%220%22%7D%2C%22onCollapseChange%22%3A%7B%7D%2C%22onResize%22%3A%7B%7D%2C%22collapseIsControlled%22%3Afalse%2C%22id%22%3A%22panel2%22%2C%22currentValue%22%3A%7B%22type%22%3A%22percent%22%2C%22value%22%3A%220.3%22%7D%7D%5D%2C%22orientation%22%3A%22horizontal%22%2C%22dragOvershoot%22%3A%220%22%2C%22groupId%22%3A%22autosave-cookie-example%22%2C%22autosaveStrategy%22%3A%22cookie%22%7D"`;
|
|
3
|
+
exports[`Autosave > cookie 1`] = `"autosave-cookie-example=%7B%22size%22%3A%7B%22x%22%3A0%2C%22y%22%3A0%2C%22width%22%3A500%2C%22height%22%3A200%2C%22top%22%3A0%2C%22right%22%3A500%2C%22bottom%22%3A200%2C%22left%22%3A0%7D%2C%22items%22%3A%5B%7B%22type%22%3A%22panel%22%2C%22min%22%3A%7B%22type%22%3A%22pixel%22%2C%22value%22%3A%220%22%7D%2C%22max%22%3A%221fr%22%2C%22collapsible%22%3Afalse%2C%22collapsedSize%22%3A%7B%22type%22%3A%22pixel%22%2C%22value%22%3A%220%22%7D%2C%22onCollapseChange%22%3A%7B%7D%2C%22onResize%22%3A%7B%7D%2C%22collapseIsControlled%22%3Afalse%2C%22id%22%3A%22panel1%22%2C%22currentValue%22%3A%7B%22type%22%3A%22percent%22%2C%22value%22%3A%220.7%22%7D%7D%2C%7B%22type%22%3A%22handle%22%2C%22size%22%3A%7B%22type%22%3A%22pixel%22%2C%22value%22%3A%2210%22%7D%2C%22id%22%3A%22resizer1%22%7D%2C%7B%22type%22%3A%22panel%22%2C%22min%22%3A%7B%22type%22%3A%22pixel%22%2C%22value%22%3A%220%22%7D%2C%22max%22%3A%221fr%22%2C%22collapsible%22%3Afalse%2C%22collapsedSize%22%3A%7B%22type%22%3A%22pixel%22%2C%22value%22%3A%220%22%7D%2C%22onCollapseChange%22%3A%7B%7D%2C%22onResize%22%3A%7B%7D%2C%22collapseIsControlled%22%3Afalse%2C%22id%22%3A%22panel2%22%2C%22currentValue%22%3A%7B%22type%22%3A%22percent%22%2C%22value%22%3A%220.3%22%7D%7D%5D%2C%22orientation%22%3A%22horizontal%22%2C%22dragOvershoot%22%3A%220%22%2C%22groupId%22%3A%22autosave-cookie-example%22%2C%22autosaveStrategy%22%3A%22cookie%22%2C%22shiftAmount%22%3A15%7D"`;
|
|
4
4
|
|
|
5
5
|
exports[`Autosave > localStorage 1`] = `
|
|
6
6
|
[
|