@window-splitter/state 0.2.4 → 0.3.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.
@@ -4,11 +4,11 @@ export type PixelUnit = `${number}px`;
4
4
  export type PercentUnit = `${number}%`;
5
5
  export type Unit = PixelUnit | PercentUnit;
6
6
  type Orientation = "horizontal" | "vertical";
7
- interface ParsedPercentUnit {
7
+ export interface ParsedPercentUnit {
8
8
  type: "percent";
9
9
  value: Big.Big;
10
10
  }
11
- interface ParsedPixelUnit {
11
+ export interface ParsedPixelUnit {
12
12
  type: "pixel";
13
13
  value: Big.Big;
14
14
  }
@@ -54,6 +54,10 @@ export interface PanelData extends Omit<Constraints, "min" | "max" | "collapsedS
54
54
  onCollapseChange?: {
55
55
  current: ((isCollapsed: boolean) => void) | null | undefined;
56
56
  };
57
+ /** A ref to the latest "onResize" function provided by the user */
58
+ onResize?: {
59
+ current: OnResizeCallback | null | undefined;
60
+ };
57
61
  /**
58
62
  * The current value for the item in the grid
59
63
  */
@@ -104,7 +108,7 @@ interface UnregisterPanelEvent {
104
108
  id: string;
105
109
  }
106
110
  export type InitializePanelHandleData = Omit<PanelHandleData, "type" | "size"> & {
107
- size: PixelUnit | ParsedPixelUnit;
111
+ size: PixelUnit;
108
112
  };
109
113
  interface RegisterPanelHandleEvent {
110
114
  /** Register a new panel handle with the state machine */
@@ -200,16 +204,20 @@ export interface GroupMachineContextValue {
200
204
  orientation: Orientation;
201
205
  /** How much the drag has overshot the handle */
202
206
  dragOvershoot: Big.Big;
203
- /** An id to use for autosaving the layout */
204
- autosaveId?: string;
205
207
  groupId: string;
206
208
  }
207
209
  export type GroupMachineEvent = RegisterPanelEvent | RegisterDynamicPanelEvent | UnregisterPanelEvent | RegisterPanelHandleEvent | UnregisterPanelHandleEvent | DragHandleEvent | SetSizeEvent | SetOrientationEvent | DragHandleStartEvent | DragHandleEndEvent | CollapsePanelEvent | ExpandPanelEvent | SetPanelPixelSizeEvent | ApplyDeltaEvent | SetActualItemsSizeEvent;
210
+ export declare function getCursor(context: Pick<GroupMachineContextValue, "dragOvershoot" | "orientation">): "w-resize" | "e-resize" | "ew-resize" | "n-resize" | "s-resize" | "ns-resize";
208
211
  export declare function prepareSnapshot(snapshot: Snapshot<unknown>): Snapshot<unknown>;
209
212
  /** Determine if an item is a panel */
210
213
  export declare function isPanelData(value: unknown): value is PanelData;
211
214
  /** Determine if an item is a panel handle */
212
215
  export declare function isPanelHandle(value: unknown): value is PanelHandleData;
216
+ type OnResizeSize = {
217
+ pixel: number;
218
+ percentage: number;
219
+ };
220
+ export type OnResizeCallback = (size: OnResizeSize) => void;
213
221
  interface InitializePanelOptions {
214
222
  min?: Unit;
215
223
  max?: Unit;
@@ -220,6 +228,9 @@ interface InitializePanelOptions {
220
228
  onCollapseChange?: {
221
229
  current: ((isCollapsed: boolean) => void) | null | undefined;
222
230
  };
231
+ onResize?: {
232
+ current: OnResizeCallback | null | undefined;
233
+ };
223
234
  collapseAnimation?: PanelData["collapseAnimation"];
224
235
  defaultCollapsed?: boolean;
225
236
  id?: string;
@@ -230,7 +241,7 @@ type InitializePanelOptionsWithId = InitializePanelOptions & {
230
241
  export declare function initializePanel(item: InitializePanelOptionsWithId): PanelData;
231
242
  export declare function initializePanel(item: InitializePanelOptions): Omit<PanelData, "id">;
232
243
  export declare function initializePanelHandleData(item: InitializePanelHandleData): {
233
- size: ParsedUnit;
244
+ size: ParsedPixelUnit;
234
245
  id: string;
235
246
  order?: number | undefined;
236
247
  type: "handle";
@@ -240,8 +251,6 @@ export declare function parseUnit(unit: Unit | "1fr"): ParsedUnit;
240
251
  /** Convert a `Unit` to a percentage of the group size */
241
252
  export declare function getUnitPercentageValue(groupsSize: number, unit: ParsedUnit): number;
242
253
  export declare function getGroupSize(context: GroupMachineContextValue): number;
243
- /** Get the size of a panel in pixels */
244
- export declare function getUnitPixelValue(context: GroupMachineContextValue, unit: ParsedUnit | "1fr"): Big.Big;
245
254
  /** Get a panel with a particular ID. */
246
255
  export declare function getPanelWithId(context: GroupMachineContextValue, panelId: string): PanelData;
247
256
  /**
@@ -249,6 +258,10 @@ export declare function getPanelWithId(context: GroupMachineContextValue, panelI
249
258
  * Will first check the left panel then the right.
250
259
  */
251
260
  export declare function getCollapsiblePanelForHandleId(context: GroupMachineContextValue, handleId: string): PanelData;
261
+ export declare function getPanelGroupPixelSizes(context: GroupMachineContextValue): number[];
262
+ export declare function getPanelPixelSize(context: GroupMachineContextValue, panelId: string): number;
263
+ export declare function getPanelGroupPercentageSizes(context: GroupMachineContextValue): number[];
264
+ export declare function getPanelPercentageSize(context: GroupMachineContextValue, panelId: string): number;
252
265
  /** Build the grid template from the item values. */
253
266
  export declare function buildTemplate(context: GroupMachineContextValue): string;
254
267
  /**
@@ -301,11 +314,9 @@ export declare function buildTemplate(context: GroupMachineContextValue): string
301
314
  */
302
315
  /** Converts the items to pixels */
303
316
  export declare function prepareItems(context: GroupMachineContextValue): Item[];
304
- /** Converts the items to percentages */
305
- export declare function commitLayout(context: GroupMachineContextValue): Item[];
306
317
  export declare function dragHandlePayload({ delta, orientation, shiftKey, }: {
307
318
  delta: number;
308
- orientation: Orientation;
319
+ orientation?: Orientation;
309
320
  shiftKey?: boolean;
310
321
  }): {
311
322
  readonly type: "move";
@@ -318,7 +329,6 @@ export declare function dragHandlePayload({ delta, orientation, shiftKey, }: {
318
329
  readonly deltaY: number;
319
330
  };
320
331
  export declare const groupMachine: import("xstate").StateMachine<GroupMachineContextValue, RegisterPanelEvent | RegisterDynamicPanelEvent | UnregisterPanelEvent | RegisterPanelHandleEvent | UnregisterPanelHandleEvent | DragHandleStartEvent | DragHandleEvent | DragHandleEndEvent | SetSizeEvent | SetActualItemsSizeEvent | ApplyDeltaEvent | SetOrientationEvent | CollapsePanelEvent | ExpandPanelEvent | SetPanelPixelSizeEvent, Record<string, import("xstate").AnyActorRef>, import("xstate").ProvidedActor, import("xstate").ParameterizedObject, import("xstate").ParameterizedObject, string, import("xstate").StateValue, string, {
321
- autosaveId?: string;
322
332
  orientation?: Orientation;
323
333
  groupId: string;
324
334
  initialItems?: Item[];
@@ -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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"}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.groupMachine = void 0;
7
7
  exports.makePercentUnit = makePercentUnit;
8
8
  exports.makePixelUnit = makePixelUnit;
9
+ exports.getCursor = getCursor;
9
10
  exports.prepareSnapshot = prepareSnapshot;
10
11
  exports.isPanelData = isPanelData;
11
12
  exports.isPanelHandle = isPanelHandle;
@@ -14,12 +15,14 @@ exports.initializePanelHandleData = initializePanelHandleData;
14
15
  exports.parseUnit = parseUnit;
15
16
  exports.getUnitPercentageValue = getUnitPercentageValue;
16
17
  exports.getGroupSize = getGroupSize;
17
- exports.getUnitPixelValue = getUnitPixelValue;
18
18
  exports.getPanelWithId = getPanelWithId;
19
19
  exports.getCollapsiblePanelForHandleId = getCollapsiblePanelForHandleId;
20
+ exports.getPanelGroupPixelSizes = getPanelGroupPixelSizes;
21
+ exports.getPanelPixelSize = getPanelPixelSize;
22
+ exports.getPanelGroupPercentageSizes = getPanelGroupPercentageSizes;
23
+ exports.getPanelPercentageSize = getPanelPercentageSize;
20
24
  exports.buildTemplate = buildTemplate;
21
25
  exports.prepareItems = prepareItems;
22
- exports.commitLayout = commitLayout;
23
26
  exports.dragHandlePayload = dragHandlePayload;
24
27
  const rafz_1 = require("@react-spring/rafz");
25
28
  const xstate_1 = require("xstate");
@@ -41,8 +44,8 @@ function getCollapseAnimation(panel) {
41
44
  if (typeof panel.collapseAnimation === "string") {
42
45
  easeFn = collapseAnimations[panel.collapseAnimation];
43
46
  }
44
- else if ("duration" in panel.collapseAnimation) {
45
- duration = panel.collapseAnimation.duration ?? duration;
47
+ else {
48
+ duration = panel.collapseAnimation.duration;
46
49
  easeFn =
47
50
  typeof panel.collapseAnimation.easing === "function"
48
51
  ? panel.collapseAnimation.easing
@@ -68,6 +71,30 @@ const collapseAnimations = {
68
71
  };
69
72
  // #endregion
70
73
  // #region Helpers
74
+ function getCursor(context) {
75
+ if (context.orientation === "horizontal") {
76
+ if (context.dragOvershoot.gt(0)) {
77
+ return "w-resize";
78
+ }
79
+ else if (context.dragOvershoot.lt(0)) {
80
+ return "e-resize";
81
+ }
82
+ else {
83
+ return "ew-resize";
84
+ }
85
+ }
86
+ else {
87
+ if (context.dragOvershoot.gt(0)) {
88
+ return "n-resize";
89
+ }
90
+ else if (context.dragOvershoot.lt(0)) {
91
+ return "s-resize";
92
+ }
93
+ else {
94
+ return "ns-resize";
95
+ }
96
+ }
97
+ }
71
98
  function prepareSnapshot(snapshot) {
72
99
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
73
100
  const snapshotContext = snapshot
@@ -76,12 +103,8 @@ function prepareSnapshot(snapshot) {
76
103
  for (const item of snapshotContext.items) {
77
104
  if (isPanelData(item)) {
78
105
  item.currentValue.value = new big_js_1.default(item.currentValue.value);
79
- if (item.collapsedSize) {
80
- item.collapsedSize.value = new big_js_1.default(item.collapsedSize.value);
81
- }
82
- if (item.min) {
83
- item.min.value = new big_js_1.default(item.min.value);
84
- }
106
+ item.collapsedSize.value = new big_js_1.default(item.collapsedSize.value);
107
+ item.min.value = new big_js_1.default(item.min.value);
85
108
  if (item.max && item.max !== "1fr") {
86
109
  item.max.value = new big_js_1.default(item.max.value);
87
110
  }
@@ -111,6 +134,20 @@ function isPanelHandle(value) {
111
134
  value.type === "handle");
112
135
  }
113
136
  function initializePanel(item) {
137
+ const onResize = () => {
138
+ let lastCall = null;
139
+ // Memo-ize so we only call the callback once per size
140
+ return ((size) => {
141
+ if (!lastCall ||
142
+ (lastCall.pixel === size.pixel &&
143
+ lastCall.percentage === size.percentage)) {
144
+ lastCall = size;
145
+ return;
146
+ }
147
+ lastCall = size;
148
+ item.onResize?.current?.(size);
149
+ });
150
+ };
114
151
  const data = {
115
152
  type: "panel",
116
153
  min: parseUnit(item.min || "0px"),
@@ -121,6 +158,7 @@ function initializePanel(item) {
121
158
  collapsible: item.collapsible,
122
159
  collapsedSize: parseUnit(item.collapsedSize ?? "0px"),
123
160
  onCollapseChange: item.onCollapseChange,
161
+ onResize: { current: onResize() },
124
162
  collapseIsControlled: typeof item.collapsed !== "undefined",
125
163
  sizeBeforeCollapse: undefined,
126
164
  id: item.id,
@@ -133,7 +171,9 @@ function initializePanelHandleData(item) {
133
171
  return {
134
172
  type: "handle",
135
173
  ...item,
136
- size: typeof item.size === "string" ? parseUnit(item.size) : item.size,
174
+ size: typeof item.size === "string"
175
+ ? parseUnit(item.size)
176
+ : item.size,
137
177
  };
138
178
  }
139
179
  /** Parse a `Unit` string or `clamp` value */
@@ -305,6 +345,32 @@ function formatUnit(unit) {
305
345
  }
306
346
  return `${unit.value.toNumber()}%`;
307
347
  }
348
+ function getPanelGroupPixelSizes(context) {
349
+ return prepareItems(context).map((i) => isPanelData(i)
350
+ ? i.currentValue.value.toNumber()
351
+ : getUnitPixelValue(context, i.size).toNumber());
352
+ }
353
+ function getPanelPixelSize(context, panelId) {
354
+ const p = getPanelWithId({ ...context, items: prepareItems(context) }, panelId);
355
+ return p.currentValue.value.toNumber();
356
+ }
357
+ function getPanelGroupPercentageSizes(context) {
358
+ const clamped = commitLayout({
359
+ ...context,
360
+ items: prepareItems(context),
361
+ });
362
+ return clamped.map((i) => {
363
+ if (isPanelHandle(i)) {
364
+ return getUnitPercentageValue(getGroupSize(context), i.size);
365
+ }
366
+ return getUnitPercentageValue(getGroupSize(context), i.currentValue);
367
+ });
368
+ }
369
+ function getPanelPercentageSize(context, panelId) {
370
+ const items = prepareItems(context);
371
+ const p = getPanelWithId({ ...context, items }, panelId);
372
+ return getUnitPercentageValue(getGroupSize(context), p.currentValue);
373
+ }
308
374
  /** Build the grid template from the item values. */
309
375
  function buildTemplate(context) {
310
376
  const staticWidth = getStaticWidth(context);
@@ -314,9 +380,6 @@ function buildTemplate(context) {
314
380
  const min = formatUnit(item.min);
315
381
  if (item.currentValue.type === "pixel" &&
316
382
  item.currentValue.value.toNumber() !== -1) {
317
- if (item.currentValue.value.toNumber() < 0) {
318
- return "0px";
319
- }
320
383
  return formatUnit(item.currentValue);
321
384
  }
322
385
  else if (item.currentValue.type === "percent") {
@@ -564,7 +627,7 @@ function updateLayout(context, dragEvent) {
564
627
  panelBefore.currentValue = { type: "pixel", value: panelBeforeNewValue };
565
628
  panelAfter.currentValue = { type: "pixel", value: panelAfterNewValue };
566
629
  const leftoverSpace = new big_js_1.default(getGroupSize(context)).minus(newItems.reduce((acc, b) => acc.add(isPanelData(b) ? b.currentValue.value : b.size.value), new big_js_1.default(0)));
567
- if (leftoverSpace.gt(0)) {
630
+ if (!leftoverSpace.eq(0)) {
568
631
  panelBefore.currentValue.value =
569
632
  panelBefore.currentValue.value.add(leftoverSpace);
570
633
  }
@@ -600,7 +663,7 @@ function commitLayout(context) {
600
663
  });
601
664
  return newItems;
602
665
  }
603
- function dragHandlePayload({ delta, orientation, shiftKey = false, }) {
666
+ function dragHandlePayload({ delta, orientation = "horizontal", shiftKey = false, }) {
604
667
  return {
605
668
  type: "move",
606
669
  pointerType: "keyboard",
@@ -712,7 +775,6 @@ exports.groupMachine = (0, xstate_1.createMachine)({
712
775
  items: input.initialItems || [],
713
776
  orientation: input.orientation || "horizontal",
714
777
  dragOvershoot: new big_js_1.default(0),
715
- autosaveId: input.autosaveId,
716
778
  groupId: input.groupId,
717
779
  }),
718
780
  states: {
@@ -721,7 +783,13 @@ exports.groupMachine = (0, xstate_1.createMachine)({
721
783
  setActualItemsSize: { actions: ["recordActualItemSize"] },
722
784
  dragHandleStart: { target: "dragging" },
723
785
  setPanelPixelSize: {
724
- actions: ["prepare", "onSetPanelSize", "commit"],
786
+ actions: [
787
+ "prepare",
788
+ "onSetPanelSize",
789
+ "commit",
790
+ "onResize",
791
+ "onAutosave",
792
+ ],
725
793
  },
726
794
  collapsePanel: [
727
795
  {
@@ -742,7 +810,7 @@ exports.groupMachine = (0, xstate_1.createMachine)({
742
810
  dragging: {
743
811
  entry: ["prepare"],
744
812
  on: {
745
- dragHandle: { actions: ["onDragHandle"] },
813
+ dragHandle: { actions: ["onDragHandle", "onResize"] },
746
814
  dragHandleEnd: { target: "idle" },
747
815
  collapsePanel: {
748
816
  guard: "shouldCollapseToggle",
@@ -766,24 +834,30 @@ exports.groupMachine = (0, xstate_1.createMachine)({
766
834
  },
767
835
  },
768
836
  on: {
769
- applyDelta: { actions: ["onApplyDelta"] },
837
+ applyDelta: { actions: ["onApplyDelta", "onResize"] },
770
838
  },
771
839
  },
772
840
  },
773
841
  on: {
774
842
  registerPanel: { actions: ["assignPanelData"] },
775
843
  registerDynamicPanel: {
776
- actions: ["prepare", "onRegisterDynamicPanel", "commit", "onAutosave"],
844
+ actions: [
845
+ "prepare",
846
+ "onRegisterDynamicPanel",
847
+ "commit",
848
+ "onResize",
849
+ "onAutosave",
850
+ ],
777
851
  },
778
852
  unregisterPanel: {
779
- actions: ["prepare", "removeItem", "commit", "onAutosave"],
853
+ actions: ["prepare", "removeItem", "commit", "onResize", "onAutosave"],
780
854
  },
781
855
  registerPanelHandle: { actions: ["assignPanelHandleData"] },
782
856
  unregisterPanelHandle: {
783
- actions: ["prepare", "removeItem", "commit", "onAutosave"],
857
+ actions: ["prepare", "removeItem", "commit", "onResize", "onAutosave"],
784
858
  },
785
- setSize: { actions: ["updateSize"] },
786
- setOrientation: { actions: ["updateOrientation"] },
859
+ setSize: { actions: ["updateSize", "onResize"] },
860
+ setOrientation: { actions: ["updateOrientation", "onResize"] },
787
861
  },
788
862
  }, {
789
863
  guards: {
@@ -978,6 +1052,16 @@ exports.groupMachine = (0, xstate_1.createMachine)({
978
1052
  delta,
979
1053
  }));
980
1054
  }),
1055
+ onResize: ({ context }) => {
1056
+ for (const item of context.items) {
1057
+ if (isPanelData(item)) {
1058
+ item.onResize?.current?.({
1059
+ pixel: getUnitPixelValue(context, item.currentValue).toNumber(),
1060
+ percentage: getUnitPercentageValue(getGroupSize(context), item.currentValue),
1061
+ });
1062
+ }
1063
+ }
1064
+ },
981
1065
  },
982
1066
  });
983
1067
  // #endregion