@aiquants/resize-panels 1.8.1 → 2.0.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/README.md +213 -108
- package/dist/GlobalDebugOverlay-Cf3GOn2A.cjs +1 -0
- package/dist/{GlobalDebugOverlay-DYCR0FIu.js → GlobalDebugOverlay-DQtUdNeF.js} +28 -28
- package/dist/debugOverlayStore-D7FT6zPE.js +135 -0
- package/dist/debugOverlayStore-DY09saU8.cjs +1 -0
- package/dist/index-DZ0itiBD.js +1299 -0
- package/dist/index-DqATP_BA.cjs +2 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +2 -29
- package/dist/index.js +25 -13
- package/dist/src/GlobalDebugOverlay.d.ts.map +1 -0
- package/dist/src/Panel.d.ts +46 -0
- package/dist/src/Panel.d.ts.map +1 -0
- package/dist/src/PanelDebugInfo.d.ts +34 -0
- package/dist/src/PanelDebugInfo.d.ts.map +1 -0
- package/dist/src/PanelGroup.d.ts.map +1 -0
- package/dist/{PanelResizeHandle.d.ts → src/PanelResizeHandle.d.ts} +1 -1
- package/dist/src/PanelResizeHandle.d.ts.map +1 -0
- package/dist/src/allocateLayout.d.ts +60 -0
- package/dist/src/allocateLayout.d.ts.map +1 -0
- package/dist/src/context.d.ts.map +1 -0
- package/dist/{debugOverlayStore.d.ts → src/debugOverlayStore.d.ts} +10 -2
- package/dist/src/debugOverlayStore.d.ts.map +1 -0
- package/dist/src/hooks.d.ts +48 -0
- package/dist/src/hooks.d.ts.map +1 -0
- package/dist/src/index.d.ts +32 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/reducer.d.ts +49 -0
- package/dist/src/reducer.d.ts.map +1 -0
- package/dist/src/roundHalfToEven.d.ts.map +1 -0
- package/dist/src/types.d.ts +481 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/utils/simple-logger.d.ts.map +1 -0
- package/dist/src/utils.d.ts +164 -0
- package/dist/src/utils.d.ts.map +1 -0
- package/dist/styles/resize-panels.standalone.css +1 -1
- package/dist/tests/support/dom-harness.d.ts +89 -0
- package/dist/tests/support/dom-harness.d.ts.map +1 -0
- package/package.json +3 -3
- package/src/GlobalDebugOverlay.tsx +3 -3
- package/src/Panel.tsx +203 -541
- package/src/PanelDebugInfo.tsx +52 -106
- package/src/PanelGroup.tsx +27 -42
- package/src/PanelResizeHandle.tsx +544 -504
- package/src/allocateLayout.ts +412 -0
- package/src/debugOverlayStore.ts +19 -15
- package/src/hooks.ts +187 -779
- package/src/index.ts +37 -6
- package/src/reducer.ts +364 -1126
- package/src/types.ts +282 -65
- package/src/utils.ts +205 -164
- package/dist/GlobalDebugOverlay-afs0vF-Q.cjs +0 -1
- package/dist/GlobalDebugOverlay.d.ts.map +0 -1
- package/dist/Panel.d.ts +0 -7
- package/dist/Panel.d.ts.map +0 -1
- package/dist/PanelDebugInfo.d.ts +0 -26
- package/dist/PanelDebugInfo.d.ts.map +0 -1
- package/dist/PanelGroup.d.ts.map +0 -1
- package/dist/PanelResizeHandle.d.ts.map +0 -1
- package/dist/context.d.ts.map +0 -1
- package/dist/debugOverlayStore-Cntyxboe.js +0 -141
- package/dist/debugOverlayStore-Dkl-fHoa.cjs +0 -1
- package/dist/debugOverlayStore.d.ts.map +0 -1
- package/dist/hooks.d.ts +0 -45
- package/dist/hooks.d.ts.map +0 -1
- package/dist/index-BzgId8aQ.js +0 -1972
- package/dist/index-xTV-c0PN.cjs +0 -2
- package/dist/index.d.ts.map +0 -1
- package/dist/reducer.d.ts +0 -39
- package/dist/reducer.d.ts.map +0 -1
- package/dist/roundHalfToEven.d.ts.map +0 -1
- package/dist/types.d.ts +0 -253
- package/dist/types.d.ts.map +0 -1
- package/dist/utils/simple-logger.d.ts.map +0 -1
- package/dist/utils.d.ts +0 -61
- package/dist/utils.d.ts.map +0 -1
- /package/dist/{GlobalDebugOverlay.d.ts → src/GlobalDebugOverlay.d.ts} +0 -0
- /package/dist/{PanelGroup.d.ts → src/PanelGroup.d.ts} +0 -0
- /package/dist/{context.d.ts → src/context.d.ts} +0 -0
- /package/dist/{roundHalfToEven.d.ts → src/roundHalfToEven.d.ts} +0 -0
- /package/dist/{utils → src/utils}/simple-logger.d.ts +0 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { useSyncExternalStore as x } from "react";
|
|
2
|
+
const k = (l) => JSON.stringify(
|
|
3
|
+
l.map((e) => ({
|
|
4
|
+
id: e.id,
|
|
5
|
+
size: e.size,
|
|
6
|
+
sizeUnit: e.sizeUnit,
|
|
7
|
+
preferredPercentageSize: e.preferredPercentageSize,
|
|
8
|
+
preferredPixelSize: e.preferredPixelSize,
|
|
9
|
+
minSize: e.minSize ?? null,
|
|
10
|
+
maxSize: e.maxSize ?? null,
|
|
11
|
+
collapseFromStart: e.collapseFromStart,
|
|
12
|
+
collapseFromEnd: e.collapseFromEnd,
|
|
13
|
+
collapsed: e.collapsed,
|
|
14
|
+
collapsedByDirection: e.collapsedByDirection,
|
|
15
|
+
preferenceBeforeCollapse: e.preferenceBeforeCollapse,
|
|
16
|
+
pixelAdjustPriority: e.pixelAdjustPriority ?? null,
|
|
17
|
+
flexAdjustPriority: e.flexAdjustPriority ?? null,
|
|
18
|
+
measuredPixelSize: e.measuredPixelSize ?? null,
|
|
19
|
+
measuredPercentageSize: e.measuredPercentageSize ?? null
|
|
20
|
+
}))
|
|
21
|
+
), H = (l) => JSON.stringify(
|
|
22
|
+
l.map((e) => ({
|
|
23
|
+
id: e.id,
|
|
24
|
+
thickness: e.thickness,
|
|
25
|
+
visible: e.visible,
|
|
26
|
+
direction: e.direction,
|
|
27
|
+
startPanelId: e.startPanelId ?? null,
|
|
28
|
+
endPanelId: e.endPanelId ?? null
|
|
29
|
+
}))
|
|
30
|
+
), N = () => {
|
|
31
|
+
const l = /* @__PURE__ */ new Set(), e = /* @__PURE__ */ new Map(), d = /* @__PURE__ */ new Set();
|
|
32
|
+
let c = null, v = 0, u = !0, h = [], P = {
|
|
33
|
+
ownerId: null,
|
|
34
|
+
groups: h
|
|
35
|
+
};
|
|
36
|
+
const y = () => {
|
|
37
|
+
for (const s of l)
|
|
38
|
+
s();
|
|
39
|
+
}, S = () => {
|
|
40
|
+
u = !0, y();
|
|
41
|
+
}, p = () => {
|
|
42
|
+
const s = c;
|
|
43
|
+
if (s && d.has(s))
|
|
44
|
+
return !1;
|
|
45
|
+
c = null;
|
|
46
|
+
const r = d.values().next();
|
|
47
|
+
return r.done || (c = r.value), s !== c;
|
|
48
|
+
};
|
|
49
|
+
return {
|
|
50
|
+
subscribe: (s) => (l.add(s), () => {
|
|
51
|
+
l.delete(s);
|
|
52
|
+
}),
|
|
53
|
+
getSnapshot: () => (p() && (u = !0), u && (h = Array.from(e.values()).sort((r, n) => r.index - n.index).map(({ serializedPanels: r, serializedHandles: n, ...f }) => f), P = {
|
|
54
|
+
ownerId: c,
|
|
55
|
+
groups: h
|
|
56
|
+
}, u = !1), P),
|
|
57
|
+
getOwnerId: () => (p() && (u = !0), c),
|
|
58
|
+
enableGroup: (s) => {
|
|
59
|
+
const r = d.size;
|
|
60
|
+
d.add(s), d.size !== r && p() && S();
|
|
61
|
+
},
|
|
62
|
+
disableGroup: (s) => {
|
|
63
|
+
d.delete(s) && p() && S();
|
|
64
|
+
},
|
|
65
|
+
updateGroup: (s, r) => {
|
|
66
|
+
const n = e.get(s), f = n?.index ?? v++, b = k(r.panels), m = H(r.handles), G = n?.displayName !== r.displayName, O = n?.direction !== r.direction, w = n ? n.containerSize.width !== r.containerSize.width || n.containerSize.height !== r.containerSize.height : !0;
|
|
67
|
+
let g = n?.serializedPanels !== b;
|
|
68
|
+
if (!g && n)
|
|
69
|
+
if (n.panels.length !== r.panels.length)
|
|
70
|
+
g = !0;
|
|
71
|
+
else
|
|
72
|
+
for (let o = 0; o < r.panels.length; o += 1) {
|
|
73
|
+
const i = n.panels[o], t = r.panels[o];
|
|
74
|
+
if (!(i && t)) {
|
|
75
|
+
g = !0;
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
if (i.id !== t.id || i.size !== t.size || i.preferredPercentageSize !== t.preferredPercentageSize || i.preferredPixelSize !== t.preferredPixelSize || i.collapsed !== t.collapsed || i.measuredPixelSize !== t.measuredPixelSize || i.measuredPercentageSize !== t.measuredPercentageSize) {
|
|
79
|
+
g = !0;
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
let z = n?.serializedHandles !== m;
|
|
84
|
+
if (!z && n)
|
|
85
|
+
if (n.handles.length !== r.handles.length)
|
|
86
|
+
z = !0;
|
|
87
|
+
else
|
|
88
|
+
for (let o = 0; o < r.handles.length; o += 1) {
|
|
89
|
+
const i = n.handles[o], t = r.handles[o];
|
|
90
|
+
if (!(i && t)) {
|
|
91
|
+
z = !0;
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
if (i.id !== t.id || i.thickness !== t.thickness || i.visible !== t.visible || i.direction !== t.direction || i.startPanelId !== t.startPanelId || i.endPanelId !== t.endPanelId) {
|
|
95
|
+
z = !0;
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
if (!n && r.panels.length === 0 && r.handles.length === 0 || n && !G && !O && !w && !g && !z)
|
|
100
|
+
return;
|
|
101
|
+
const C = r.panels.map((o) => ({ ...o })), I = r.handles.map((o) => ({ ...o })), D = { ...r.containerSize };
|
|
102
|
+
e.set(s, {
|
|
103
|
+
groupId: s,
|
|
104
|
+
displayName: r.displayName,
|
|
105
|
+
direction: r.direction,
|
|
106
|
+
containerSize: D,
|
|
107
|
+
panels: C,
|
|
108
|
+
handles: I,
|
|
109
|
+
index: f,
|
|
110
|
+
serializedPanels: b,
|
|
111
|
+
serializedHandles: m
|
|
112
|
+
}), S();
|
|
113
|
+
},
|
|
114
|
+
removeGroup: (s) => {
|
|
115
|
+
const r = e.delete(s), n = d.delete(s), f = p();
|
|
116
|
+
(r || n || f) && S();
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
}, a = N(), M = () => x(a.subscribe, a.getOwnerId, a.getOwnerId), q = () => x(a.subscribe, a.getSnapshot, a.getSnapshot), K = (l) => {
|
|
120
|
+
a.enableGroup(l);
|
|
121
|
+
}, L = (l) => {
|
|
122
|
+
a.disableGroup(l);
|
|
123
|
+
}, Q = (l, e) => {
|
|
124
|
+
a.updateGroup(l, e);
|
|
125
|
+
}, R = (l) => {
|
|
126
|
+
a.removeGroup(l);
|
|
127
|
+
};
|
|
128
|
+
export {
|
|
129
|
+
L as disableDebugOverlayGroup,
|
|
130
|
+
K as enableDebugOverlayGroup,
|
|
131
|
+
R as removeDebugOverlayGroup,
|
|
132
|
+
Q as updateDebugOverlayGroup,
|
|
133
|
+
M as useDebugOverlayOwnerId,
|
|
134
|
+
q as useDebugOverlaySnapshot
|
|
135
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("react"),k=l=>JSON.stringify(l.map(e=>({id:e.id,size:e.size,sizeUnit:e.sizeUnit,preferredPercentageSize:e.preferredPercentageSize,preferredPixelSize:e.preferredPixelSize,minSize:e.minSize??null,maxSize:e.maxSize??null,collapseFromStart:e.collapseFromStart,collapseFromEnd:e.collapseFromEnd,collapsed:e.collapsed,collapsedByDirection:e.collapsedByDirection,preferenceBeforeCollapse:e.preferenceBeforeCollapse,pixelAdjustPriority:e.pixelAdjustPriority??null,flexAdjustPriority:e.flexAdjustPriority??null,measuredPixelSize:e.measuredPixelSize??null,measuredPercentageSize:e.measuredPercentageSize??null}))),H=l=>JSON.stringify(l.map(e=>({id:e.id,thickness:e.thickness,visible:e.visible,direction:e.direction,startPanelId:e.startPanelId??null,endPanelId:e.endPanelId??null}))),N=()=>{const l=new Set,e=new Map,d=new Set;let c=null,v=0,u=!0,z=[],h={ownerId:null,groups:z};const x=()=>{for(const s of l)s()},b=()=>{u=!0,x()},g=()=>{const s=c;if(s&&d.has(s))return!1;c=null;const r=d.values().next();return r.done||(c=r.value),s!==c};return{subscribe:s=>(l.add(s),()=>{l.delete(s)}),getSnapshot:()=>(g()&&(u=!0),u&&(z=Array.from(e.values()).sort((r,n)=>r.index-n.index).map(({serializedPanels:r,serializedHandles:n,...p})=>p),h={ownerId:c,groups:z},u=!1),h),getOwnerId:()=>(g()&&(u=!0),c),enableGroup:s=>{const r=d.size;d.add(s),d.size!==r&&g()&&b()},disableGroup:s=>{d.delete(s)&&g()&&b()},updateGroup:(s,r)=>{const n=e.get(s),p=n?.index??v++,P=k(r.panels),m=H(r.handles),O=n?.displayName!==r.displayName,G=n?.direction!==r.direction,w=n?n.containerSize.width!==r.containerSize.width||n.containerSize.height!==r.containerSize.height:!0;let S=n?.serializedPanels!==P;if(!S&&n)if(n.panels.length!==r.panels.length)S=!0;else for(let o=0;o<r.panels.length;o+=1){const i=n.panels[o],t=r.panels[o];if(!(i&&t)){S=!0;break}if(i.id!==t.id||i.size!==t.size||i.preferredPercentageSize!==t.preferredPercentageSize||i.preferredPixelSize!==t.preferredPixelSize||i.collapsed!==t.collapsed||i.measuredPixelSize!==t.measuredPixelSize||i.measuredPercentageSize!==t.measuredPercentageSize){S=!0;break}}let f=n?.serializedHandles!==m;if(!f&&n)if(n.handles.length!==r.handles.length)f=!0;else for(let o=0;o<r.handles.length;o+=1){const i=n.handles[o],t=r.handles[o];if(!(i&&t)){f=!0;break}if(i.id!==t.id||i.thickness!==t.thickness||i.visible!==t.visible||i.direction!==t.direction||i.startPanelId!==t.startPanelId||i.endPanelId!==t.endPanelId){f=!0;break}}if(!n&&r.panels.length===0&&r.handles.length===0||n&&!O&&!G&&!w&&!S&&!f)return;const D=r.panels.map(o=>({...o})),I=r.handles.map(o=>({...o})),C={...r.containerSize};e.set(s,{groupId:s,displayName:r.displayName,direction:r.direction,containerSize:C,panels:D,handles:I,index:p,serializedPanels:P,serializedHandles:m}),b()},removeGroup:s=>{const r=e.delete(s),n=d.delete(s),p=g();(r||n||p)&&b()}}},a=N(),j=()=>y.useSyncExternalStore(a.subscribe,a.getOwnerId,a.getOwnerId),A=()=>y.useSyncExternalStore(a.subscribe,a.getSnapshot,a.getSnapshot),B=l=>{a.enableGroup(l)},E=l=>{a.disableGroup(l)},F=(l,e)=>{a.updateGroup(l,e)},J=l=>{a.removeGroup(l)};exports.disableDebugOverlayGroup=E;exports.enableDebugOverlayGroup=B;exports.removeDebugOverlayGroup=J;exports.updateDebugOverlayGroup=F;exports.useDebugOverlayOwnerId=j;exports.useDebugOverlaySnapshot=A;
|