@window-splitter/state 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 +52 -0
- package/CHANGELOG.md +17 -0
- package/dist/commonjs/index.d.ts +9 -0
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js +85 -12
- package/dist/commonjs/index.js.map +1 -1
- package/dist/esm/index.d.ts +9 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +85 -12
- package/dist/esm/index.js.map +1 -1
- package/package.json +3 -3
- package/src/__snapshots__/machine.test.ts.snap +2 -0
- package/src/index.ts +143 -13
- package/src/machine.test.ts +277 -0
package/.turbo/turbo-build.log
CHANGED
package/.turbo/turbo-lint.log
CHANGED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
> @window-splitter/state@1.1.0 test /Users/alisowski/Documents/react-window-splitter/packages/state
|
|
4
|
+
> vitest
|
|
5
|
+
|
|
6
|
+
[?25l[1m[43m Vitest [49m[22m [33mNo browser "instances" were defined. Running tests in "chromium" browser. The "browser.name" field is deprecated since Vitest 3. Read more: https://vitest.dev/guide/browser/config#browser-instances[39m
|
|
7
|
+
[1m[43m Vitest [49m[22m [33m"providerOptions" is ignored because it's overridden by the configs. To hide this warning, remove the "providerOptions" property from the browser configuration.[39m
|
|
8
|
+
|
|
9
|
+
[1m[44m DEV [49m[22m [34mv3.1.2 [39m[90m/Users/alisowski/Documents/react-window-splitter/packages/state[39m
|
|
10
|
+
|
|
11
|
+
[31m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[39m[1m[41m Unhandled Errors [49m[22m[31m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[39m
|
|
12
|
+
[31m[1m
|
|
13
|
+
Vitest caught 1 unhandled error during the test run.
|
|
14
|
+
This might cause false positive tests. Resolve unhandled errors to make sure your tests are not affected.[22m[39m
|
|
15
|
+
|
|
16
|
+
[31m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[39m[1m[41m Unhandled Error [49m[22m[31m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[39m
|
|
17
|
+
[31m[1mError[22m: browserType.launch: Executable doesn't exist at /Users/alisowski/Library/Caches/ms-playwright/chromium-1129/chrome-mac/Chromium.app/Contents/MacOS/Chromium
|
|
18
|
+
╔═════════════════════════════════════════════════════════════════════════╗
|
|
19
|
+
║ Looks like Playwright Test or Playwright was just installed or updated. ║
|
|
20
|
+
║ Please run the following command to download new browsers: ║
|
|
21
|
+
║ ║
|
|
22
|
+
║ pnpm exec playwright install ║
|
|
23
|
+
║ ║
|
|
24
|
+
║ <3 Playwright Team ║
|
|
25
|
+
╚═════════════════════════════════════════════════════════════════════════╝[39m
|
|
26
|
+
[90m [2m❯[22m ../../node_modules/.pnpm/@vitest+browser@3.1.2_msw@2.7.5_@types+node@22.2.0_typescript@5.8.3__playwright@1.46.0_vite@6_6lgmypomaxigetn6t5bxx22m2q/node_modules/@vitest/browser/dist/webdriver-BzjiKqT8.js:[2m58:55[22m[39m
|
|
27
|
+
[90m [2m❯[22m PlaywrightBrowserProvider.createContext ../../node_modules/.pnpm/@vitest+browser@3.1.2_msw@2.7.5_@types+node@22.2.0_typescript@5.8.3__playwright@1.46.0_vite@6_6lgmypomaxigetn6t5bxx22m2q/node_modules/@vitest/browser/dist/webdriver-BzjiKqT8.js:[2m172:19[22m[39m
|
|
28
|
+
[90m [2m❯[22m PlaywrightBrowserProvider.openBrowserPage ../../node_modules/.pnpm/@vitest+browser@3.1.2_msw@2.7.5_@types+node@22.2.0_typescript@5.8.3__playwright@1.46.0_vite@6_6lgmypomaxigetn6t5bxx22m2q/node_modules/@vitest/browser/dist/webdriver-BzjiKqT8.js:[2m227:19[22m[39m
|
|
29
|
+
[90m [2m❯[22m PlaywrightBrowserProvider.openPage ../../node_modules/.pnpm/@vitest+browser@3.1.2_msw@2.7.5_@types+node@22.2.0_typescript@5.8.3__playwright@1.46.0_vite@6_6lgmypomaxigetn6t5bxx22m2q/node_modules/@vitest/browser/dist/webdriver-BzjiKqT8.js:[2m238:23[22m[39m
|
|
30
|
+
[90m [2m❯[22m BrowserPool.openPage ../../node_modules/.pnpm/@vitest+browser@3.1.2_msw@2.7.5_@types+node@22.2.0_typescript@5.8.3__playwright@1.46.0_vite@6_6lgmypomaxigetn6t5bxx22m2q/node_modules/@vitest/browser/dist/index.js:[2m3343:3[22m[39m
|
|
31
|
+
[90m [2m❯[22m BrowserPool.runTests ../../node_modules/.pnpm/@vitest+browser@3.1.2_msw@2.7.5_@types+node@22.2.0_typescript@5.8.3__playwright@1.46.0_vite@6_6lgmypomaxigetn6t5bxx22m2q/node_modules/@vitest/browser/dist/index.js:[2m3335:3[22m[39m
|
|
32
|
+
[90m [2m❯[22m async file:/Users/alisowski/Documents/react-window-splitter/node_modules/.pnpm/@vitest+browser@3.1.2_msw@2.7.5_@types+node@22.2.0_typescript@5.8.3__playwright@1.46.0_vite@6_6lgmypomaxigetn6t5bxx22m2q/node_modules/@vitest/browser/dist/index.js:[2m3258:4[22m[39m
|
|
33
|
+
[90m [2m❯[22m runWorkspaceTests ../../node_modules/.pnpm/@vitest+browser@3.1.2_msw@2.7.5_@types+node@22.2.0_typescript@5.8.3__playwright@1.46.0_vite@6_6lgmypomaxigetn6t5bxx22m2q/node_modules/@vitest/browser/dist/index.js:[2m3247:3[22m[39m
|
|
34
|
+
[90m [2m❯[22m executeTests ../../node_modules/.pnpm/vitest@3.1.2_@types+debug@4.1.12_@types+node@22.2.0_@vitest+browser@3.1.2_jiti@2.4.2_jsdom@24_g57eq4otlg34wmkqobl7udxrka/node_modules/vitest/dist/chunks/coverage.BUdIvXbr.js:[2m7710:3[22m[39m
|
|
35
|
+
[90m [2m❯[22m async file:/Users/alisowski/Documents/react-window-splitter/node_modules/.pnpm/vitest@3.1.2_@types+debug@4.1.12_@types+node@22.2.0_@vitest+browser@3.1.2_jiti@2.4.2_jsdom@24_g57eq4otlg34wmkqobl7udxrka/node_modules/vitest/dist/chunks/cli-api.z029PxYZ.js:[2m9240:6[22m[39m
|
|
36
|
+
[90m [2m❯[22m Vitest.runFiles ../../node_modules/.pnpm/vitest@3.1.2_@types+debug@4.1.12_@types+node@22.2.0_@vitest+browser@3.1.2_jiti@2.4.2_jsdom@24_g57eq4otlg34wmkqobl7udxrka/node_modules/vitest/dist/chunks/cli-api.z029PxYZ.js:[2m9267:10[22m[39m
|
|
37
|
+
[90m [2m❯[22m Vitest.start ../../node_modules/.pnpm/vitest@3.1.2_@types+debug@4.1.12_@types+node@22.2.0_@vitest+browser@3.1.2_jiti@2.4.2_jsdom@24_g57eq4otlg34wmkqobl7udxrka/node_modules/vitest/dist/chunks/cli-api.z029PxYZ.js:[2m9151:18[22m[39m
|
|
38
|
+
[90m [2m❯[22m startVitest ../../node_modules/.pnpm/vitest@3.1.2_@types+debug@4.1.12_@types+node@22.2.0_@vitest+browser@3.1.2_jiti@2.4.2_jsdom@24_g57eq4otlg34wmkqobl7udxrka/node_modules/vitest/dist/chunks/cli-api.z029PxYZ.js:[2m10211:4[22m[39m
|
|
39
|
+
[90m [2m❯[22m start ../../node_modules/.pnpm/vitest@3.1.2_@types+debug@4.1.12_@types+node@22.2.0_@vitest+browser@3.1.2_jiti@2.4.2_jsdom@24_g57eq4otlg34wmkqobl7udxrka/node_modules/vitest/dist/chunks/cac.C5_4mAsf.js:[2m1468:15[22m[39m
|
|
40
|
+
|
|
41
|
+
[31m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[39m
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
[2m Test Files [22m [90m (2)[39m
|
|
45
|
+
[2m Tests [22m [2mno tests[22m
|
|
46
|
+
[2m Errors [22m [1m[31m1 error[39m[22m
|
|
47
|
+
[2m Start at [22m 15:01:22
|
|
48
|
+
[2m Duration [22m 251ms[2m (transform 0ms, setup 0ms, collect 0ms, tests 0ms, environment 0ms, prepare 0ms)[22m
|
|
49
|
+
|
|
50
|
+
[1m[41m FAIL [49m[22m [31mTests failed. Watching for file changes...[39m
|
|
51
|
+
[2mpress [22m[1mh[22m[2m to show help[22m[2m, [22m[2mpress [22m[1mq[22m[2m to quit[22m
|
|
52
|
+
[?25h[?25h
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,20 @@
|
|
|
1
|
+
# v1.1.0 (Mon May 26 2025)
|
|
2
|
+
|
|
3
|
+
#### 🚀 Enhancement
|
|
4
|
+
|
|
5
|
+
- Add "shiftAmount" prop [#64](https://github.com/hipstersmoothie/window-splitter/pull/64) ([@hipstersmoothie](https://github.com/hipstersmoothie))
|
|
6
|
+
|
|
7
|
+
#### 🐛 Bug Fix
|
|
8
|
+
|
|
9
|
+
- update tests ([@hipstersmoothie](https://github.com/hipstersmoothie))
|
|
10
|
+
- Add "shiftAmount" prop ([@hipstersmoothie](https://github.com/hipstersmoothie))
|
|
11
|
+
|
|
12
|
+
#### Authors: 1
|
|
13
|
+
|
|
14
|
+
- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
1
18
|
# v0.8.7 (Sun May 11 2025)
|
|
2
19
|
|
|
3
20
|
#### 🐛 Bug Fix
|
package/dist/commonjs/index.d.ts
CHANGED
|
@@ -174,6 +174,7 @@ interface ApplyDeltaEvent {
|
|
|
174
174
|
type: "applyDelta";
|
|
175
175
|
delta: number;
|
|
176
176
|
handleId: string;
|
|
177
|
+
panelId: string;
|
|
177
178
|
}
|
|
178
179
|
interface SetOrientationEvent {
|
|
179
180
|
/** Set the orientation of the group */
|
|
@@ -192,12 +193,14 @@ interface CollapsePanelEvent extends ControlledCollapseToggle {
|
|
|
192
193
|
type: "collapsePanel";
|
|
193
194
|
/** The panel to collapse */
|
|
194
195
|
panelId: string;
|
|
196
|
+
resolve?: () => void;
|
|
195
197
|
}
|
|
196
198
|
interface ExpandPanelEvent extends ControlledCollapseToggle {
|
|
197
199
|
/** Expand a panel */
|
|
198
200
|
type: "expandPanel";
|
|
199
201
|
/** The panel to expand */
|
|
200
202
|
panelId: string;
|
|
203
|
+
resolve?: () => void;
|
|
201
204
|
}
|
|
202
205
|
interface SetPanelPixelSizeEvent {
|
|
203
206
|
/**
|
|
@@ -228,6 +231,11 @@ export interface GroupMachineContextValue {
|
|
|
228
231
|
* How to save the persisted state
|
|
229
232
|
*/
|
|
230
233
|
autosaveStrategy?: "localStorage" | "cookie";
|
|
234
|
+
/**
|
|
235
|
+
* The amount to move the drag handle when shift is held down.
|
|
236
|
+
* @default 15px
|
|
237
|
+
*/
|
|
238
|
+
shiftAmount?: number;
|
|
231
239
|
}
|
|
232
240
|
interface LockGroupEvent {
|
|
233
241
|
type: "lockGroup";
|
|
@@ -355,6 +363,7 @@ export interface GroupMachineInput {
|
|
|
355
363
|
groupId: string;
|
|
356
364
|
items?: Item[];
|
|
357
365
|
autosaveStrategy?: "localStorage" | "cookie";
|
|
366
|
+
shiftAmount?: number;
|
|
358
367
|
}
|
|
359
368
|
export type State = "idle" | "dragging" | "togglingCollapse";
|
|
360
369
|
export declare function groupMachine(input: Partial<GroupMachineContextValue>, onUpdate?: (context: GroupMachineContextValue) => void): readonly [GroupMachineContextValue, (event: GroupMachineEvent) => void, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/commonjs/index.js
CHANGED
|
@@ -321,6 +321,20 @@ function getCollapsiblePanelForHandleId(context, handleId) {
|
|
|
321
321
|
*/
|
|
322
322
|
function getHandleForPanelId(context, panelId) {
|
|
323
323
|
const panelIndex = context.items.findIndex((item) => item.id === panelId);
|
|
324
|
+
// When in controlled collapse mode we defer to the controlled state to know if we need to update.
|
|
325
|
+
// The confirmation comes along as an expand/collapse event.
|
|
326
|
+
// The default behavior is to find the closes handle and use that to collapse, if we're dragging some other
|
|
327
|
+
// handle though we want to use that instead. This will results in a smoother visual experience.
|
|
328
|
+
if (context.activeDragHandleId) {
|
|
329
|
+
const handleIndex = getPanelHandleIndex(context, context.activeDragHandleId);
|
|
330
|
+
const item = context.items[handleIndex];
|
|
331
|
+
if (item && isPanelHandle(item)) {
|
|
332
|
+
return {
|
|
333
|
+
item,
|
|
334
|
+
direction: handleIndex > panelIndex ? 1 : -1,
|
|
335
|
+
};
|
|
336
|
+
}
|
|
337
|
+
}
|
|
324
338
|
invariant(panelIndex !== -1, `Expected panel before: ${panelId}`);
|
|
325
339
|
let item = context.items[panelIndex + 1];
|
|
326
340
|
if (item && isPanelHandle(item)) {
|
|
@@ -332,6 +346,23 @@ function getHandleForPanelId(context, panelId) {
|
|
|
332
346
|
}
|
|
333
347
|
throw new Error(`Cant find handle for panel: ${panelId}`);
|
|
334
348
|
}
|
|
349
|
+
function getHandleForPanelIdWithAvailableSpace(context, panelId) {
|
|
350
|
+
const panelIndex = context.items.findIndex((item) => item.id === panelId);
|
|
351
|
+
invariant(panelIndex !== -1, `Expected panel before: ${panelId}`);
|
|
352
|
+
let item = context.items[panelIndex + 1];
|
|
353
|
+
if (item &&
|
|
354
|
+
isPanelHandle(item) &&
|
|
355
|
+
findPanelWithSpace(context, context.items, panelIndex + 1, 1, "add")) {
|
|
356
|
+
return { item, direction: 1 };
|
|
357
|
+
}
|
|
358
|
+
item = context.items[panelIndex - 1];
|
|
359
|
+
if (item &&
|
|
360
|
+
isPanelHandle(item) &&
|
|
361
|
+
findPanelWithSpace(context, context.items, panelIndex - 1, -1, "add")) {
|
|
362
|
+
return { item, direction: -1 };
|
|
363
|
+
}
|
|
364
|
+
return getHandleForPanelId(context, panelId);
|
|
365
|
+
}
|
|
335
366
|
/** Given the specified order props and default order of the items, order the items */
|
|
336
367
|
function sortWithOrder(items) {
|
|
337
368
|
const defaultPlacement = {};
|
|
@@ -362,8 +393,8 @@ function sortWithOrder(items) {
|
|
|
362
393
|
/** Check if the panel has space available to add to */
|
|
363
394
|
function panelHasSpace(context, item, adjustment) {
|
|
364
395
|
invariant(item.currentValue.type === "pixel", `panelHasSpace only works with number values: ${item.id} ${item.currentValue}`);
|
|
365
|
-
if (item.collapsible
|
|
366
|
-
return
|
|
396
|
+
if (item.collapsible) {
|
|
397
|
+
return !item.collapsed;
|
|
367
398
|
}
|
|
368
399
|
if (adjustment === "add") {
|
|
369
400
|
return (item.currentValue.value.gte(getUnitPixelValue(context, item.min)) &&
|
|
@@ -592,7 +623,7 @@ function updateLayout(context, dragEvent) {
|
|
|
592
623
|
? dragEvent.value.deltaX
|
|
593
624
|
: dragEvent.value.deltaY;
|
|
594
625
|
if (dragEvent.value.shiftKey) {
|
|
595
|
-
moveAmount *= 15;
|
|
626
|
+
moveAmount *= context.shiftAmount ?? 15;
|
|
596
627
|
}
|
|
597
628
|
if (moveAmount === 0) {
|
|
598
629
|
return {};
|
|
@@ -607,7 +638,15 @@ function updateLayout(context, dragEvent) {
|
|
|
607
638
|
};
|
|
608
639
|
}
|
|
609
640
|
invariant(isPanelData(panelBefore), `Expected panel before: ${handle.id}`);
|
|
610
|
-
|
|
641
|
+
/** The panel that gets bigger */
|
|
642
|
+
const panelAfter = dragEvent.type === "collapsePanel"
|
|
643
|
+
? // If we have the panel id just use that
|
|
644
|
+
newItems.find((item) => item.id === dragEvent.panelId &&
|
|
645
|
+
panelBefore.id !== dragEvent.panelId) ||
|
|
646
|
+
// otherwise fallback to the next panel with space
|
|
647
|
+
findPanelWithSpace(context, newItems, handleIndex - moveDirection, moveDirection * -1, "add", dragEvent.disregardCollapseBuffer) ||
|
|
648
|
+
newItems[handleIndex - moveDirection]
|
|
649
|
+
: newItems[handleIndex - moveDirection];
|
|
611
650
|
invariant(panelAfter && isPanelData(panelAfter), `Expected panel after: ${handle.id}`);
|
|
612
651
|
if (panelAfter.currentValue.value.eq(getUnitPixelValue(context, panelAfter.max))) {
|
|
613
652
|
return {
|
|
@@ -616,7 +655,7 @@ function updateLayout(context, dragEvent) {
|
|
|
616
655
|
}
|
|
617
656
|
const newDragOvershoot = context.dragOvershoot.add(moveAmount);
|
|
618
657
|
// Don't let the panel expand until the threshold is reached
|
|
619
|
-
if (!dragEvent.disregardCollapseBuffer) {
|
|
658
|
+
if (!dragEvent.disregardCollapseBuffer && !dragEvent.controlled) {
|
|
620
659
|
const isInLeftBuffer = newDragOvershoot.lt(0) && moveDirection > 0;
|
|
621
660
|
const isInLeftOvershoot = newDragOvershoot.gt(0) && moveDirection > 0;
|
|
622
661
|
const isInRightBuffer = newDragOvershoot.gt(0) && moveDirection < 0;
|
|
@@ -641,6 +680,7 @@ function updateLayout(context, dragEvent) {
|
|
|
641
680
|
}
|
|
642
681
|
// Don't let the panel collapse until the threshold is reached
|
|
643
682
|
if (!dragEvent.disregardCollapseBuffer &&
|
|
683
|
+
!dragEvent.controlled &&
|
|
644
684
|
panelBefore.collapsible &&
|
|
645
685
|
panelBefore.currentValue.value.eq(getUnitPixelValue(context, panelBefore.min))) {
|
|
646
686
|
const potentialNewValue = panelBefore.currentValue.value.sub(newDragOvershoot.abs());
|
|
@@ -699,7 +739,8 @@ function updateLayout(context, dragEvent) {
|
|
|
699
739
|
.minus(panelAfterPreviousValue)
|
|
700
740
|
// And then re-apply the movement value
|
|
701
741
|
.minus(Math.abs(moveAmount)));
|
|
702
|
-
if (panelBeforeNewValue.lt(panelBefore.min.value)
|
|
742
|
+
if (panelBeforeNewValue.lt(panelBefore.min.value) &&
|
|
743
|
+
!panelBefore.collapsible) {
|
|
703
744
|
// TODO this should probably distribute the space between the panels?
|
|
704
745
|
return { dragOvershoot: newDragOvershoot };
|
|
705
746
|
}
|
|
@@ -727,7 +768,7 @@ function updateLayout(context, dragEvent) {
|
|
|
727
768
|
panelBefore.collapsed = true;
|
|
728
769
|
panelBeforeNewValue = getUnitPixelValue(context, panelBefore.collapsedSize);
|
|
729
770
|
// Add the extra space created to the before panel
|
|
730
|
-
panelAfterNewValue =
|
|
771
|
+
panelAfterNewValue = panelAfter.currentValue.value.add(panelBeforePreviousValue.minus(panelBeforeNewValue));
|
|
731
772
|
if (panelBefore.onCollapseChange?.current &&
|
|
732
773
|
!panelBefore.collapseIsControlled &&
|
|
733
774
|
!dragEvent.controlled &&
|
|
@@ -786,7 +827,7 @@ function dragHandlePayload({ delta, orientation = "horizontal", shiftKey = false
|
|
|
786
827
|
};
|
|
787
828
|
}
|
|
788
829
|
/** Iteratively applies a large delta value simulating a user's drag */
|
|
789
|
-
function iterativelyUpdateLayout({ context, handleId, delta, direction, controlled, disregardCollapseBuffer, isVirtual, }) {
|
|
830
|
+
function iterativelyUpdateLayout({ context, handleId, delta, direction, controlled, disregardCollapseBuffer, isVirtual, panelId, }) {
|
|
790
831
|
let newContext = context;
|
|
791
832
|
for (let i = 0; i < delta.abs().toNumber(); i++) {
|
|
792
833
|
newContext = updateLayout({
|
|
@@ -798,6 +839,7 @@ function iterativelyUpdateLayout({ context, handleId, delta, direction, controll
|
|
|
798
839
|
controlled,
|
|
799
840
|
disregardCollapseBuffer,
|
|
800
841
|
isVirtual,
|
|
842
|
+
panelId,
|
|
801
843
|
value: dragHandlePayload({
|
|
802
844
|
delta: direction,
|
|
803
845
|
orientation: context.orientation,
|
|
@@ -871,6 +913,7 @@ function handleOverflow(context) {
|
|
|
871
913
|
handleId: handleId.item.id,
|
|
872
914
|
delta: sizeChange,
|
|
873
915
|
direction: (handleId.direction * -1),
|
|
916
|
+
panelId: collapsiblePanel.id,
|
|
874
917
|
context: {
|
|
875
918
|
...newContext,
|
|
876
919
|
// act like its the old size so the space is distributed correctly
|
|
@@ -899,9 +942,18 @@ function getDeltaForEvent(context, event) {
|
|
|
899
942
|
}
|
|
900
943
|
function animationActor(context, event, send, abortController) {
|
|
901
944
|
const panel = getPanelWithId(context, event.panelId);
|
|
902
|
-
const handle =
|
|
945
|
+
const handle = getHandleForPanelIdWithAvailableSpace(context, event.panelId);
|
|
903
946
|
let direction = new big_js_1.default(handle.direction);
|
|
904
947
|
const fullDelta = getDeltaForEvent(context, event);
|
|
948
|
+
const contextCopy = { ...context, items: prepareItems(context) };
|
|
949
|
+
const finalLayout = iterativelyUpdateLayout({
|
|
950
|
+
context: contextCopy,
|
|
951
|
+
panelId: event.panelId,
|
|
952
|
+
handleId: handle.item.id,
|
|
953
|
+
delta: fullDelta,
|
|
954
|
+
direction: handle.direction,
|
|
955
|
+
isVirtual: true,
|
|
956
|
+
});
|
|
905
957
|
return new Promise((resolve, reject) => {
|
|
906
958
|
abortController.signal.addEventListener("abort", () => {
|
|
907
959
|
reject(new Error("Operation was canceled"));
|
|
@@ -923,6 +975,7 @@ function animationActor(context, event, send, abortController) {
|
|
|
923
975
|
type: "applyDelta",
|
|
924
976
|
handleId: handle.item.id,
|
|
925
977
|
delta: delta.toNumber(),
|
|
978
|
+
panelId: panel.id,
|
|
926
979
|
});
|
|
927
980
|
appliedDelta = appliedDelta.add(delta
|
|
928
981
|
.abs()
|
|
@@ -930,8 +983,15 @@ function animationActor(context, event, send, abortController) {
|
|
|
930
983
|
? -1
|
|
931
984
|
: 1));
|
|
932
985
|
if (e.eq(1)) {
|
|
986
|
+
// If we're controlled expanding to a value that breaks the layout we might get negative values
|
|
987
|
+
// In this case we need to use a valid layout like `iterativelyUpdateLayout`'s return value
|
|
988
|
+
// Ideally we figure out some way to not do this but disregardCollapseBuffer is needed for animations
|
|
989
|
+
if (context.items.find((i) => isPanelData(i) &&
|
|
990
|
+
i.currentValue.value.round(undefined, big_js_1.default.roundHalfEven).lt(0))) {
|
|
991
|
+
assign(context, finalLayout);
|
|
992
|
+
}
|
|
933
993
|
const action = event.type === "expandPanel" ? "expand" : "collapse";
|
|
934
|
-
resolve({ panelId: panel.id, action });
|
|
994
|
+
resolve({ panelId: panel.id, action, resolve: event.resolve });
|
|
935
995
|
return false;
|
|
936
996
|
}
|
|
937
997
|
return true;
|
|
@@ -959,6 +1019,7 @@ function groupMachine(input, onUpdate) {
|
|
|
959
1019
|
dragOvershoot: new big_js_1.default(0),
|
|
960
1020
|
groupId: input.groupId || `group-${groupId++}`,
|
|
961
1021
|
autosaveStrategy: input.autosaveStrategy,
|
|
1022
|
+
shiftAmount: input.shiftAmount ?? 15,
|
|
962
1023
|
};
|
|
963
1024
|
const actions = {
|
|
964
1025
|
prepare: () => {
|
|
@@ -1029,6 +1090,7 @@ function groupMachine(input, onUpdate) {
|
|
|
1029
1090
|
? handle.direction * -1
|
|
1030
1091
|
: handle.direction;
|
|
1031
1092
|
const newContext = updateLayout(context, {
|
|
1093
|
+
panelId: event.panelId,
|
|
1032
1094
|
handleId: handle.item.id,
|
|
1033
1095
|
type: "dragHandle",
|
|
1034
1096
|
controlled: event.controlled,
|
|
@@ -1066,14 +1128,15 @@ function groupMachine(input, onUpdate) {
|
|
|
1066
1128
|
},
|
|
1067
1129
|
cannotExpandPanel: (event) => {
|
|
1068
1130
|
isEvent(event, ["expandPanel"]);
|
|
1069
|
-
const delta = getDeltaForEvent(context, event);
|
|
1070
|
-
const handle = getHandleForPanelId(context, event.panelId);
|
|
1071
1131
|
const pixelItems = prepareItems(context);
|
|
1072
1132
|
let interimContext = { ...context, items: pixelItems };
|
|
1133
|
+
const delta = getDeltaForEvent(context, event);
|
|
1134
|
+
const handle = getHandleForPanelIdWithAvailableSpace(interimContext, event.panelId);
|
|
1073
1135
|
interimContext = {
|
|
1074
1136
|
...interimContext,
|
|
1075
1137
|
...iterativelyUpdateLayout({
|
|
1076
1138
|
context: interimContext,
|
|
1139
|
+
panelId: event.panelId,
|
|
1077
1140
|
handleId: handle.item.id,
|
|
1078
1141
|
controlled: event.controlled,
|
|
1079
1142
|
delta: delta,
|
|
@@ -1111,6 +1174,7 @@ function groupMachine(input, onUpdate) {
|
|
|
1111
1174
|
break;
|
|
1112
1175
|
}
|
|
1113
1176
|
state.current = to;
|
|
1177
|
+
onUpdate?.(context);
|
|
1114
1178
|
}
|
|
1115
1179
|
function send(event) {
|
|
1116
1180
|
switch (event.type) {
|
|
@@ -1290,8 +1354,10 @@ function groupMachine(input, onUpdate) {
|
|
|
1290
1354
|
const delta = isBigger
|
|
1291
1355
|
? newSize.minus(current)
|
|
1292
1356
|
: current.minus(newSize);
|
|
1357
|
+
panel.sizeBeforeCollapse = newSize.toNumber();
|
|
1293
1358
|
Object.assign(context, iterativelyUpdateLayout({
|
|
1294
1359
|
context,
|
|
1360
|
+
panelId: event.panelId,
|
|
1295
1361
|
direction: (handle.direction * (isBigger ? 1 : -1)),
|
|
1296
1362
|
handleId: handle.item.id,
|
|
1297
1363
|
delta,
|
|
@@ -1313,6 +1379,9 @@ function groupMachine(input, onUpdate) {
|
|
|
1313
1379
|
animationActor(context, event, send, abortController).then((output) => {
|
|
1314
1380
|
actions.onAnimationEnd(output);
|
|
1315
1381
|
transition("idle");
|
|
1382
|
+
if (event.resolve) {
|
|
1383
|
+
requestAnimationFrame(event.resolve);
|
|
1384
|
+
}
|
|
1316
1385
|
});
|
|
1317
1386
|
}
|
|
1318
1387
|
}
|
|
@@ -1332,6 +1401,9 @@ function groupMachine(input, onUpdate) {
|
|
|
1332
1401
|
animationActor(context, event, send, abortController).then((output) => {
|
|
1333
1402
|
actions.onAnimationEnd(output);
|
|
1334
1403
|
transition("idle");
|
|
1404
|
+
if (event.resolve) {
|
|
1405
|
+
requestAnimationFrame(event.resolve);
|
|
1406
|
+
}
|
|
1335
1407
|
});
|
|
1336
1408
|
}
|
|
1337
1409
|
}
|
|
@@ -1362,6 +1434,7 @@ function groupMachine(input, onUpdate) {
|
|
|
1362
1434
|
switch (event.type) {
|
|
1363
1435
|
case "applyDelta":
|
|
1364
1436
|
assign(context, updateLayout(context, {
|
|
1437
|
+
panelId: event.panelId,
|
|
1365
1438
|
handleId: event.handleId,
|
|
1366
1439
|
type: "collapsePanel",
|
|
1367
1440
|
disregardCollapseBuffer: true,
|