@gustavolmo/react-window-manager 0.4.0 → 0.4.2

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.
Files changed (39) hide show
  1. package/README.md +76 -130
  2. package/dist/index.css +1 -1
  3. package/dist/index.css.map +1 -1
  4. package/dist/index.js +363 -182
  5. package/dist/index.js.map +1 -1
  6. package/dist/window-manager/internal/features/cursor/cursor-move-listener.d.ts.map +1 -1
  7. package/dist/window-manager/internal/features/cursor/cursor-state.d.ts +5 -2
  8. package/dist/window-manager/internal/features/cursor/cursor-state.d.ts.map +1 -1
  9. package/dist/window-manager/internal/features/grid/grid-orchestrator.d.ts +3 -2
  10. package/dist/window-manager/internal/features/grid/grid-orchestrator.d.ts.map +1 -1
  11. package/dist/window-manager/internal/features/resizing/resizing-controls.d.ts.map +1 -1
  12. package/dist/window-manager/internal/features/window-button.d.ts.map +1 -1
  13. package/dist/window-manager/internal/features/window-layout.d.ts +11 -1
  14. package/dist/window-manager/internal/features/window-layout.d.ts.map +1 -1
  15. package/dist/window-manager/internal/features/workspace/workspace-api.d.ts +2 -2
  16. package/dist/window-manager/internal/features/workspace/workspace-api.d.ts.map +1 -1
  17. package/dist/window-manager/internal/features/workspace/workspace-resize-listener.d.ts.map +1 -1
  18. package/dist/window-manager/internal/runtime/dock-resolver/dock-commands.d.ts +0 -3
  19. package/dist/window-manager/internal/runtime/dock-resolver/dock-commands.d.ts.map +1 -1
  20. package/dist/window-manager/internal/runtime/drag-resolver/drag-commands.d.ts +0 -1
  21. package/dist/window-manager/internal/runtime/drag-resolver/drag-commands.d.ts.map +1 -1
  22. package/dist/window-manager/internal/runtime/resize-resolver/resize-loop-rules.d.ts +3 -0
  23. package/dist/window-manager/internal/runtime/resize-resolver/resize-loop-rules.d.ts.map +1 -0
  24. package/dist/window-manager/internal/runtime/resize-resolver/resize-loop.d.ts.map +1 -1
  25. package/dist/window-manager/internal/runtime/rwm-runtime.d.ts +9 -6
  26. package/dist/window-manager/internal/runtime/rwm-runtime.d.ts.map +1 -1
  27. package/dist/window-manager/internal/runtime/workspace-resolver/workspace-commands.d.ts +4 -4
  28. package/dist/window-manager/internal/runtime/workspace-resolver/workspace-commands.d.ts.map +1 -1
  29. package/dist/window-manager/model/window-types.d.ts +5 -6
  30. package/dist/window-manager/model/window-types.d.ts.map +1 -1
  31. package/dist/window-manager/model/workspace-types.d.ts +1 -1
  32. package/dist/window-manager/model/workspace-types.d.ts.map +1 -1
  33. package/dist/window-manager/rwm.d.ts +4 -7
  34. package/dist/window-manager/rwm.d.ts.map +1 -1
  35. package/package.json +1 -1
  36. package/dist/window-manager/internal/features/stack/stack-api.d.ts +0 -4
  37. package/dist/window-manager/internal/features/stack/stack-api.d.ts.map +0 -1
  38. package/dist/window-manager/internal/runtime/stack-resolver/stack-commands.d.ts +0 -6
  39. package/dist/window-manager/internal/runtime/stack-resolver/stack-commands.d.ts.map +0 -1
@@ -4,6 +4,16 @@ export type WindowLayoutProps = {
4
4
  windowName: string | React.ReactNode;
5
5
  winId: string;
6
6
  navbarChildren?: React.ReactNode;
7
+ /**
8
+ * @default
9
+ * 'bg-white shadow-lg border border-zinc-600 rounded-sm'
10
+ */
11
+ className?: string;
12
+ /**
13
+ * @default
14
+ * 'bg-neutral-800 ${isActive ? 'brightness-100' : 'brightness-150'}'
15
+ */
16
+ navbarClassName?: string;
7
17
  /**
8
18
  * @default 'deafult'
9
19
  * @param `deafult` keeps the window near full width but detached from the workspace edges
@@ -25,5 +35,5 @@ export type WindowLayoutProps = {
25
35
  navControlsColor?: string;
26
36
  };
27
37
  };
28
- export default function WindowLayout({ children, windowName, navbarChildren, winId, defaultDock, style, }: WindowLayoutProps): import("react/jsx-runtime").JSX.Element;
38
+ export default function WindowLayout({ children, windowName, navbarChildren, navbarClassName, className, winId, defaultDock, style, }: WindowLayoutProps): import("react/jsx-runtime").JSX.Element;
29
39
  //# sourceMappingURL=window-layout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"window-layout.d.ts","sourceRoot":"","sources":["../../../../src/window-manager/internal/features/window-layout.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEvD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,UAAU,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAA;IACpC,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAEhC;;;;;;;;;;;;SAYK;IACL,WAAW,CAAC,EAAE,YAAY,CAAA;IAE1B,gEAAgE;IAChE,KAAK,CAAC,EAAE;QACN,kBAAkB,CAAC,EAAE,MAAM,CAAA;QAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAA;QAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAC1B,CAAA;CACF,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,QAAQ,EACR,UAAU,EACV,cAAc,EACd,KAAK,EACL,WAAuB,EACvB,KAAK,GACN,EAAE,iBAAiB,2CA8HnB"}
1
+ {"version":3,"file":"window-layout.d.ts","sourceRoot":"","sources":["../../../../src/window-manager/internal/features/window-layout.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEvD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,UAAU,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAA;IACpC,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAEhC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB;;;;;;;;;;;;SAYK;IACL,WAAW,CAAC,EAAE,YAAY,CAAA;IAE1B,gEAAgE;IAChE,KAAK,CAAC,EAAE;QACN,kBAAkB,CAAC,EAAE,MAAM,CAAA;QAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAA;QAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAC1B,CAAA;CACF,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,QAAQ,EACR,UAAU,EACV,cAAc,EACd,eAAe,EACf,SAAS,EACT,KAAK,EACL,WAAuB,EACvB,KAAK,GACN,EAAE,iBAAiB,2CAgInB"}
@@ -12,7 +12,7 @@ export declare const wsApi: {
12
12
  * @param always always uses mobile format
13
13
  * @param number set custom break point value in px */
14
14
  setWsResponsiveBreak: (breakPoint: ResponsiveSizes) => void;
15
- setWsFeatures: ({ isDockPannelEnabled, isGridEnabled }: WorkspaceCtx) => void;
16
- updateWsRect: () => void;
15
+ setWsFeatures: ({ isDockPanelEnabled, isGridEnabled }: WorkspaceCtx) => void;
16
+ updateWsSize: () => void;
17
17
  };
18
18
  //# sourceMappingURL=workspace-api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-api.d.ts","sourceRoot":"","sources":["../../../../../src/window-manager/internal/features/workspace/workspace-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,qDAAqD,CAAA;AAElF,eAAO,MAAM,KAAK;IAChB;;;;;;;;;0DASsD;uCACnB,eAAe;4DAQoB,YAAY;;CAWnF,CAAA"}
1
+ {"version":3,"file":"workspace-api.d.ts","sourceRoot":"","sources":["../../../../../src/window-manager/internal/features/workspace/workspace-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,qDAAqD,CAAA;AAElF,eAAO,MAAM,KAAK;IAChB;;;;;;;;;0DASsD;uCACnB,eAAe;2DAQmB,YAAY;;CAWlF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-resize-listener.d.ts","sourceRoot":"","sources":["../../../../../src/window-manager/internal/features/workspace/workspace-resize-listener.tsx"],"names":[],"mappings":"AAKA,MAAM,CAAC,OAAO,UAAU,uBAAuB,4CAmB9C"}
1
+ {"version":3,"file":"workspace-resize-listener.d.ts","sourceRoot":"","sources":["../../../../../src/window-manager/internal/features/workspace/workspace-resize-listener.tsx"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,UAAU,uBAAuB,4CAkB9C"}
@@ -3,8 +3,5 @@ import { WindowMutation } from '../rwm-runtime';
3
3
  export type DockCommands = 'DOCK_WINDOW_RIGHT' | 'DOCK_WINDOW_LEFT' | 'DOCK_WINDOW_TOP' | 'DOCK_WINDOW_BOTTOM' | 'DOCK_WINDOW_BOTTOM_RIGHT' | 'DOCK_WINDOW_TOP_RIGHT' | 'DOCK_WINDOW_BOTTOM_LEFT' | 'DOCK_WINDOW_TOP_LEFT' | 'MAXIMIZE_WINDOW' | 'DEMAXIMIZE_WINDOW';
4
4
  type DockResolver = Record<DockCommands, (targetWinId: string, wsRect: WorkspaceRect) => WindowMutation[]>;
5
5
  export declare const dockCommandResolver: DockResolver;
6
- export declare const getDockDependencies: () => {
7
- wsRect: WorkspaceRect;
8
- };
9
6
  export {};
10
7
  //# sourceMappingURL=dock-commands.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dock-commands.d.ts","sourceRoot":"","sources":["../../../../../src/window-manager/internal/runtime/dock-resolver/dock-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAE9D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/C,MAAM,MAAM,YAAY,GACpB,mBAAmB,GACnB,kBAAkB,GAClB,iBAAiB,GACjB,oBAAoB,GACpB,0BAA0B,GAC1B,uBAAuB,GACvB,yBAAyB,GACzB,sBAAsB,GACtB,iBAAiB,GACjB,mBAAmB,CAAA;AAEvB,KAAK,YAAY,GAAG,MAAM,CACxB,YAAY,EACZ,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,KAAK,cAAc,EAAE,CACjE,CAAA;AACD,eAAO,MAAM,mBAAmB,EAAE,YAgJjC,CAAA;AAED,eAAO,MAAM,mBAAmB;;CAG/B,CAAA"}
1
+ {"version":3,"file":"dock-commands.d.ts","sourceRoot":"","sources":["../../../../../src/window-manager/internal/runtime/dock-resolver/dock-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/C,MAAM,MAAM,YAAY,GACpB,mBAAmB,GACnB,kBAAkB,GAClB,iBAAiB,GACjB,oBAAoB,GACpB,0BAA0B,GAC1B,uBAAuB,GACvB,yBAAyB,GACzB,sBAAsB,GACtB,iBAAiB,GACjB,mBAAmB,CAAA;AAEvB,KAAK,YAAY,GAAG,MAAM,CACxB,YAAY,EACZ,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,KAAK,cAAc,EAAE,CACjE,CAAA;AACD,eAAO,MAAM,mBAAmB,EAAE,YAgJjC,CAAA"}
@@ -2,6 +2,5 @@ import { WindowMutation } from '../rwm-runtime';
2
2
  export type DragCommands = 'ENABLE_DRAG' | 'DISABLE_DRAG';
3
3
  type DragResolver = Record<DragCommands, (targetWinId: string) => WindowMutation[]>;
4
4
  export declare const dragCommandResolver: DragResolver;
5
- export declare const isDragAllowed: () => boolean;
6
5
  export {};
7
6
  //# sourceMappingURL=drag-commands.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"drag-commands.d.ts","sourceRoot":"","sources":["../../../../../src/window-manager/internal/runtime/drag-resolver/drag-commands.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/C,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,cAAc,CAAA;AAEzD,KAAK,YAAY,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,cAAc,EAAE,CAAC,CAAA;AACnF,eAAO,MAAM,mBAAmB,EAAE,YAiCjC,CAAA;AAED,eAAO,MAAM,aAAa,QAAO,OAEhC,CAAA"}
1
+ {"version":3,"file":"drag-commands.d.ts","sourceRoot":"","sources":["../../../../../src/window-manager/internal/runtime/drag-resolver/drag-commands.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/C,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,cAAc,CAAA;AAEzD,KAAK,YAAY,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,cAAc,EAAE,CAAC,CAAA;AACnF,eAAO,MAAM,mBAAmB,EAAE,YAiCjC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { ResizeDirection } from '../../../model/window-types';
2
+ export declare const resolveNeighbourResizeLimit: (activeWinId: string, direction: ResizeDirection) => number | undefined;
3
+ //# sourceMappingURL=resize-loop-rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resize-loop-rules.d.ts","sourceRoot":"","sources":["../../../../../src/window-manager/internal/runtime/resize-resolver/resize-loop-rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAG7D,eAAO,MAAM,2BAA2B,gBAAiB,MAAM,aAAa,eAAe,uBAc1F,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"resize-loop.d.ts","sourceRoot":"","sources":["../../../../../src/window-manager/internal/runtime/resize-resolver/resize-loop.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/C,MAAM,MAAM,iBAAiB,GAAG,aAAa,CAAA;AAC7C,KAAK,iBAAiB,GAAG,MAAM,CAC7B,iBAAiB,EACjB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,cAAc,EAAE,KAAK,IAAI,KAAK,IAAI,CAChF,CAAA;AACD,eAAO,MAAM,qBAAqB,EAAE,iBAgBnC,CAAA"}
1
+ {"version":3,"file":"resize-loop.d.ts","sourceRoot":"","sources":["../../../../../src/window-manager/internal/runtime/resize-resolver/resize-loop.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAG/C,MAAM,MAAM,iBAAiB,GAAG,aAAa,CAAA;AAC7C,KAAK,iBAAiB,GAAG,MAAM,CAC7B,iBAAiB,EACjB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,cAAc,EAAE,KAAK,IAAI,KAAK,IAAI,CAChF,CAAA;AACD,eAAO,MAAM,qBAAqB,EAAE,iBAiBnC,CAAA"}
@@ -3,11 +3,19 @@ import { DockCommands } from './dock-resolver/dock-commands';
3
3
  import { RafDragCommands } from './drag-resolver/drag-loop';
4
4
  import { DragCommands } from './drag-resolver/drag-commands';
5
5
  import { FocusCommands } from './focus-resolver/focus-commands';
6
- import { StackCommands } from './stack-resolver/stack-commands';
7
6
  import { WorkspaceCommands, WorkspaceCtx } from './workspace-resolver/workspace-commands';
8
7
  import { ResizeCommands } from './resize-resolver/resize-commands';
9
8
  import { RafResizeCommands } from './resize-resolver/resize-loop';
10
9
  import { WorkspaceStore } from '../../model/workspace-types';
10
+ /**
11
+ * FIND ME:
12
+ *
13
+ * Subsystem structure needs formalization
14
+ => getDependencies
15
+ => policy
16
+ => stageChanges
17
+ => commitChanges
18
+ */
11
19
  type rwmMessage = {
12
20
  targetWinId: string;
13
21
  subsystem: 'DOCK';
@@ -28,11 +36,6 @@ type rwmMessage = {
28
36
  subsystem: 'RESIZE';
29
37
  cmd: ResizeCommands;
30
38
  ctx: ResizeDirection;
31
- } | {
32
- targetWinId?: string;
33
- subsystem: 'STACK';
34
- cmd: StackCommands;
35
- ctx?: undefined;
36
39
  } | {
37
40
  targetWinId?: string;
38
41
  subsystem: 'WORKSPACE';
@@ -1 +1 @@
1
- {"version":3,"file":"rwm-runtime.d.ts","sourceRoot":"","sources":["../../../../src/window-manager/internal/runtime/rwm-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAGvE,OAAO,EAEL,YAAY,EAEb,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAuB,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAChF,OAAO,EAAuB,YAAY,EAAiB,MAAM,+BAA+B,CAAA;AAChG,OAAO,EAAwB,aAAa,EAAE,MAAM,iCAAiC,CAAA;AACrF,OAAO,EAAwB,aAAa,EAAE,MAAM,iCAAiC,CAAA;AACrF,OAAO,EAEL,iBAAiB,EACjB,YAAY,EACb,MAAM,yCAAyC,CAAA;AAChD,OAAO,EAAyB,cAAc,EAAE,MAAM,mCAAmC,CAAA;AACzF,OAAO,EAAE,iBAAiB,EAAyB,MAAM,+BAA+B,CAAA;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAU5D,KAAK,UAAU,GACX;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,YAAY,CAAC;IAAC,GAAG,CAAC,EAAE,SAAS,CAAA;CAAE,GAC9E;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,YAAY,CAAC;IAAC,GAAG,CAAC,EAAE,SAAS,CAAA;CAAE,GAC9E;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,aAAa,CAAC;IAAC,GAAG,CAAC,EAAE,SAAS,CAAA;CAAE,GAChF;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,cAAc,CAAC;IAAC,GAAG,EAAE,eAAe,CAAA;CAAE,GACvF;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,aAAa,CAAC;IAAC,GAAG,CAAC,EAAE,SAAS,CAAA;CAAE,GACjF;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,iBAAiB,CAAC;IAAC,GAAG,CAAC,EAAE,YAAY,CAAA;CAAE,CAAA;AAEhG,eAAO,MAAM,UAAU;qDAC4B,UAAU,KAAG,IAAI;CAoCnE,CAAA;AAED,KAAK,UAAU,GACX;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,eAAe,CAAA;CAAE,GACpE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,YAAY,CAAC;IAAC,GAAG,EAAE,iBAAiB,CAAA;CAAE,CAAA;AAE5E,eAAO,MAAM,UAAU;gDACuB,UAAU,KAAG,IAAI;CAa9D,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAAE,EAAE,EAAE,iBAAiB,CAAC;IAAC,GAAG,EAAE,cAAc,EAAE,CAAA;CAAE,CAAA;AAM5E,MAAM,MAAM,cAAc,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;CAAE,CAAA;AAO3E,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA"}
1
+ {"version":3,"file":"rwm-runtime.d.ts","sourceRoot":"","sources":["../../../../src/window-manager/internal/runtime/rwm-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAGvE,OAAO,EAAuB,YAAY,EAAE,MAAM,+BAA+B,CAAA;AACjF,OAAO,EAAuB,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAChF,OAAO,EAAuB,YAAY,EAAE,MAAM,+BAA+B,CAAA;AACjF,OAAO,EAAwB,aAAa,EAAE,MAAM,iCAAiC,CAAA;AACrF,OAAO,EAEL,iBAAiB,EACjB,YAAY,EACb,MAAM,yCAAyC,CAAA;AAChD,OAAO,EAAyB,cAAc,EAAE,MAAM,mCAAmC,CAAA;AACzF,OAAO,EAAE,iBAAiB,EAAyB,MAAM,+BAA+B,CAAA;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAE5D;;;;;;;;GAQG;AAEH,KAAK,UAAU,GACX;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,YAAY,CAAC;IAAC,GAAG,CAAC,EAAE,SAAS,CAAA;CAAE,GAC9E;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,YAAY,CAAC;IAAC,GAAG,CAAC,EAAE,SAAS,CAAA;CAAE,GAC9E;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,aAAa,CAAC;IAAC,GAAG,CAAC,EAAE,SAAS,CAAA;CAAE,GAChF;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,cAAc,CAAC;IAAC,GAAG,EAAE,eAAe,CAAA;CAAE,GACvF;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,iBAAiB,CAAC;IAAC,GAAG,CAAC,EAAE,YAAY,CAAA;CAAE,CAAA;AAEhG,eAAO,MAAM,UAAU;qDAC4B,UAAU,KAAG,IAAI;CAoCnE,CAAA;AAED,KAAK,UAAU,GACX;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,eAAe,CAAA;CAAE,GACpE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,YAAY,CAAC;IAAC,GAAG,EAAE,iBAAiB,CAAA;CAAE,CAAA;AAE5E,eAAO,MAAM,UAAU;gDACuB,UAAU,KAAG,IAAI;CAkB9D,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAAE,EAAE,EAAE,iBAAiB,CAAC;IAAC,GAAG,EAAE,cAAc,EAAE,CAAA;CAAE,CAAA;AAM5E,MAAM,MAAM,cAAc,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;CAAE,CAAA;AAO3E,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA"}
@@ -1,12 +1,12 @@
1
1
  import { ResponsiveSizes } from '../../../model/workspace-types';
2
- import { WorkspaceMutation } from '../rwm-runtime';
3
- export type WorkspaceCommands = 'UPDATE_WORKSPACE_RECT' | 'SET_RESPONSIVE_BREAK' | 'SET_WORKSPACE_FEATURES';
2
+ import { BatchMutation } from '../rwm-runtime';
3
+ export type WorkspaceCommands = 'UPDATE_WORKSPACE_SIZE' | 'SET_RESPONSIVE_BREAK' | 'SET_WORKSPACE_FEATURES';
4
4
  export type WorkspaceCtx = {
5
5
  responsiveBreak?: ResponsiveSizes;
6
- isDockPannelEnabled?: boolean;
6
+ isDockPanelEnabled?: boolean;
7
7
  isGridEnabled?: boolean;
8
8
  };
9
- type WorkspaceResolver = Record<WorkspaceCommands, (targetWinId?: string, ctx?: WorkspaceCtx) => WorkspaceMutation>;
9
+ type WorkspaceResolver = Record<WorkspaceCommands, (targetWinId?: string, ctx?: WorkspaceCtx) => BatchMutation>;
10
10
  export declare const workspaceCommandResolver: WorkspaceResolver;
11
11
  export {};
12
12
  //# sourceMappingURL=workspace-commands.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-commands.d.ts","sourceRoot":"","sources":["../../../../../src/window-manager/internal/runtime/workspace-resolver/workspace-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAEhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAElD,MAAM,MAAM,iBAAiB,GACzB,uBAAuB,GACvB,sBAAsB,GACtB,wBAAwB,CAAA;AAE5B,MAAM,MAAM,YAAY,GAAG;IACzB,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,CAAA;AAED,KAAK,iBAAiB,GAAG,MAAM,CAC7B,iBAAiB,EACjB,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,YAAY,KAAK,iBAAiB,CAChE,CAAA;AACD,eAAO,MAAM,wBAAwB,EAAE,iBAgDtC,CAAA"}
1
+ {"version":3,"file":"workspace-commands.d.ts","sourceRoot":"","sources":["../../../../../src/window-manager/internal/runtime/workspace-resolver/workspace-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAGhE,OAAO,EAAE,aAAa,EAAqC,MAAM,gBAAgB,CAAA;AAEjF,MAAM,MAAM,iBAAiB,GACzB,uBAAuB,GACvB,sBAAsB,GACtB,wBAAwB,CAAA;AAE5B,MAAM,MAAM,YAAY,GAAG;IACzB,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,CAAA;AAED,KAAK,iBAAiB,GAAG,MAAM,CAC7B,iBAAiB,EACjB,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,YAAY,KAAK,aAAa,CAC5D,CAAA;AACD,eAAO,MAAM,wBAAwB,EAAE,iBAmFtC,CAAA"}
@@ -8,7 +8,7 @@ export type DockPosition = 'right' | 'left' | 'full' | 'top' | 'bottom' | 'top-r
8
8
  export type WindowRegistry = Record<string, UseBoundStore<StoreApi<WindowStore>>>;
9
9
  export type ResizeDirection = false | 's' | 'e' | 'n' | 'w' | 'se' | 'sw' | 'ne' | 'nw';
10
10
  export type WindowStates = 'maximized' | 'demaximized';
11
- export type Coord = {
11
+ export type Point = {
12
12
  pointX: number;
13
13
  pointY: number;
14
14
  };
@@ -22,16 +22,15 @@ export type WindowStore = {
22
22
  setWinElement: (ref: HTMLDivElement | null) => void;
23
23
  winElement: HTMLDivElement | null | undefined;
24
24
  windowId: string;
25
- resetFlag: boolean;
26
25
  zIndex: number;
27
- winCoord: Coord;
28
- winVisualState: WindowStates;
26
+ winCoord: Point;
27
+ winWidth: number;
28
+ winHeight: number;
29
29
  isActive: boolean;
30
30
  isDragging: boolean;
31
31
  isWindowClosed: boolean;
32
32
  resizeAction: ResizeDirection;
33
- winWidth: number;
34
- winHeight: number;
33
+ winVisualState: WindowStates;
35
34
  WIN_MIN_WIDTH: number;
36
35
  WIN_MIN_HEIGHT: number;
37
36
  };
@@ -1 +1 @@
1
- {"version":3,"file":"window-types.d.ts","sourceRoot":"","sources":["../../../src/window-manager/model/window-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAEjD,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;AAC7D,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;AAE7D,MAAM,MAAM,YAAY,GACpB,OAAO,GACP,MAAM,GACN,MAAM,GACN,KAAK,GACL,QAAQ,GACR,WAAW,GACX,UAAU,GACV,cAAc,GACd,aAAa,GACb,SAAS,CAAA;AAEb,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;AACjF,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AACvF,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,aAAa,CAAA;AACtD,MAAM,MAAM,KAAK,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAEtD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAA;IAC3C,MAAM,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,GAAG,CAAC,OAAO,CAAA;IAC9C,MAAM,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,GAAG,CAAC,OAAO,CAAA;CAC/C,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,aAAa,EAAE,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAA;IACnD,UAAU,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,CAAA;IAC7C,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,OAAO,CAAA;IAElB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,KAAK,CAAA;IACf,cAAc,EAAE,YAAY,CAAA;IAE5B,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,OAAO,CAAA;IACnB,cAAc,EAAE,OAAO,CAAA;IACvB,YAAY,EAAE,eAAe,CAAA;IAE7B,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IAEjB,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;CACvB,CAAA"}
1
+ {"version":3,"file":"window-types.d.ts","sourceRoot":"","sources":["../../../src/window-manager/model/window-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAEjD,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;AAC7D,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;AAE7D,MAAM,MAAM,YAAY,GACpB,OAAO,GACP,MAAM,GACN,MAAM,GACN,KAAK,GACL,QAAQ,GACR,WAAW,GACX,UAAU,GACV,cAAc,GACd,aAAa,GACb,SAAS,CAAA;AAEb,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;AACjF,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AACvF,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,aAAa,CAAA;AACtD,MAAM,MAAM,KAAK,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAEtD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAA;IAC3C,MAAM,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,GAAG,CAAC,OAAO,CAAA;IAC9C,MAAM,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,GAAG,CAAC,OAAO,CAAA;CAC/C,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,aAAa,EAAE,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAA;IACnD,UAAU,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,CAAA;IAC7C,QAAQ,EAAE,MAAM,CAAA;IAEhB,MAAM,EAAE,MAAM,CAAA;IAEd,QAAQ,EAAE,KAAK,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IAEjB,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,OAAO,CAAA;IACnB,cAAc,EAAE,OAAO,CAAA;IACvB,YAAY,EAAE,eAAe,CAAA;IAC7B,cAAc,EAAE,YAAY,CAAA;IAE5B,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;CACvB,CAAA"}
@@ -24,7 +24,7 @@ export type WorkspaceStore = {
24
24
  * @param number set custom break point value in px */
25
25
  isBelowBreakPoint: boolean;
26
26
  isGridEnabled: boolean;
27
- isDockPannelEnabled: boolean;
27
+ isDockPanelEnabled: boolean;
28
28
  responsiveBreak: ResponsiveSizes;
29
29
  activeWindowId: string;
30
30
  wsRect: WorkspaceRect;
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-types.d.ts","sourceRoot":"","sources":["../../../src/window-manager/model/workspace-types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAA;AAErF,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,WAAW,GAAG,IAAI,CAAA;IAC7B,YAAY,EAAE,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAA;IAElD;;;;;;;;;0DASsD;IACtD,iBAAiB,EAAE,OAAO,CAAA;IAC1B,aAAa,EAAE,OAAO,CAAA;IACtB,mBAAmB,EAAE,OAAO,CAAA;IAE5B,eAAe,EAAE,eAAe,CAAA;IAChC,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,aAAa,CAAA;CACtB,CAAA"}
1
+ {"version":3,"file":"workspace-types.d.ts","sourceRoot":"","sources":["../../../src/window-manager/model/workspace-types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAA;AAErF,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,WAAW,GAAG,IAAI,CAAA;IAC7B,YAAY,EAAE,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAA;IAElD;;;;;;;;;0DASsD;IACtD,iBAAiB,EAAE,OAAO,CAAA;IAC1B,aAAa,EAAE,OAAO,CAAA;IACtB,kBAAkB,EAAE,OAAO,CAAA;IAE3B,eAAe,EAAE,eAAe,CAAA;IAChC,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,aAAa,CAAA;CACtB,CAAA"}
@@ -15,24 +15,21 @@ declare const rwm: {
15
15
  bringWindowToFocus: (targetId: string) => void;
16
16
  closeWindowAndRefocus: (targetId: string) => void;
17
17
  };
18
- stackApi: {
19
- resetStack: () => void;
20
- };
21
18
  workspaceApi: {
22
19
  setWsResponsiveBreak: (breakPoint: import("..").ResponsiveSizes) => void;
23
- setWsFeatures: ({ isDockPannelEnabled, isGridEnabled }: import("./internal/runtime/workspace-resolver/workspace-commands").WorkspaceCtx) => void;
20
+ setWsFeatures: ({ isDockPanelEnabled, isGridEnabled }: import("./internal/runtime/workspace-resolver/workspace-commands").WorkspaceCtx) => void;
24
21
  };
25
22
  /**
26
23
  * @about
27
24
  * Zustand hook, can be used to access the current state of the workspace by either
28
- * calling `const { <someState> } = worskpaceState()` inside a component or by calling
29
- * `worskpaceState.getState()` anywhere.
25
+ * calling `const { <someState> } = workspaceState()` inside a component or by calling
26
+ * `workspaceState.getState()` anywhere.
30
27
  *
31
28
  * @note
32
29
  * The hook also exposes the `setState()` method, however, this is highly discouraged. Prefer calling
33
30
  * the exposed apis in rwm for state mutation.
34
31
  */
35
- worskpaceState: import("zustand").UseBoundStore<import("zustand").StoreApi<import("..").WorkspaceStore>>;
32
+ workspaceState: import("zustand").UseBoundStore<import("zustand").StoreApi<import("..").WorkspaceStore>>;
36
33
  /**
37
34
  * @about
38
35
  * use the syntax `const { <someState> } = windowRegistry[<winId>]()` inside a component to access
@@ -1 +1 @@
1
- {"version":3,"file":"rwm.d.ts","sourceRoot":"","sources":["../../src/window-manager/rwm.ts"],"names":[],"mappings":"AASA,QAAA,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;IAMP;;;;;;;;;OASG;;IAGH;;;;;;;;OAQG;;CAEJ,CAAA;AAED,eAAe,GAAG,CAAA"}
1
+ {"version":3,"file":"rwm.d.ts","sourceRoot":"","sources":["../../src/window-manager/rwm.ts"],"names":[],"mappings":"AAQA,QAAA,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;IAKP;;;;;;;;;OASG;;IAGH;;;;;;;;OAQG;;CAEJ,CAAA;AAED,eAAe,GAAG,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gustavolmo/react-window-manager",
3
- "version": "0.4.0",
3
+ "version": "0.4.2",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -1,4 +0,0 @@
1
- export declare const stackApi: {
2
- resetStack: () => void;
3
- };
4
- //# sourceMappingURL=stack-api.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stack-api.d.ts","sourceRoot":"","sources":["../../../../../src/window-manager/internal/features/stack/stack-api.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ;;CAIpB,CAAA"}
@@ -1,6 +0,0 @@
1
- import { WindowMutation } from "../rwm-runtime";
2
- export type StackCommands = 'RESET_STACK';
3
- type StackResolver = Record<StackCommands, (targetWinId?: string) => WindowMutation[]>;
4
- export declare const stackCommandResolver: StackResolver;
5
- export {};
6
- //# sourceMappingURL=stack-commands.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stack-commands.d.ts","sourceRoot":"","sources":["../../../../../src/window-manager/internal/runtime/stack-resolver/stack-commands.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/C,MAAM,MAAM,aAAa,GAAG,aAAa,CAAA;AAEzC,KAAK,aAAa,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,KAAK,cAAc,EAAE,CAAC,CAAA;AACtF,eAAO,MAAM,oBAAoB,EAAE,aAiBlC,CAAA"}