@miragon/event-storming-renderer 0.1.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 +55 -0
- package/dist/EventStormingBaseViewer.d.ts +56 -0
- package/dist/EventStormingBaseViewer.d.ts.map +1 -0
- package/dist/Modeler.d.ts +15 -0
- package/dist/Modeler.d.ts.map +1 -0
- package/dist/NavigatedViewer.d.ts +10 -0
- package/dist/NavigatedViewer.d.ts.map +1 -0
- package/dist/Viewer.d.ts +6 -0
- package/dist/Viewer.d.ts.map +1 -0
- package/dist/append/EventStormingAppendBehavior.d.ts +17 -0
- package/dist/append/EventStormingAppendBehavior.d.ts.map +1 -0
- package/dist/append/index.d.ts +9 -0
- package/dist/append/index.d.ts.map +1 -0
- package/dist/attach/EventStormingAttachBehavior.d.ts +17 -0
- package/dist/attach/EventStormingAttachBehavior.d.ts.map +1 -0
- package/dist/attach/index.d.ts +9 -0
- package/dist/attach/index.d.ts.map +1 -0
- package/dist/board-bounds/BoardBounds.d.ts +23 -0
- package/dist/board-bounds/BoardBounds.d.ts.map +1 -0
- package/dist/board-bounds/index.d.ts +6 -0
- package/dist/board-bounds/index.d.ts.map +1 -0
- package/dist/color-picker/EventStormingColorPicker.d.ts +23 -0
- package/dist/color-picker/EventStormingColorPicker.d.ts.map +1 -0
- package/dist/color-picker/index.d.ts +5 -0
- package/dist/color-picker/index.d.ts.map +1 -0
- package/dist/context-pad/EventStormingContextPadProvider.d.ts +26 -0
- package/dist/context-pad/EventStormingContextPadProvider.d.ts.map +1 -0
- package/dist/context-pad/index.d.ts +5 -0
- package/dist/context-pad/index.d.ts.map +1 -0
- package/dist/draw/EventStormingRenderer.d.ts +27 -0
- package/dist/draw/EventStormingRenderer.d.ts.map +1 -0
- package/dist/draw/icons.d.ts +43 -0
- package/dist/draw/icons.d.ts.map +1 -0
- package/dist/draw/index.d.ts +6 -0
- package/dist/draw/index.d.ts.map +1 -0
- package/dist/draw/note-markdown.d.ts +26 -0
- package/dist/draw/note-markdown.d.ts.map +1 -0
- package/dist/draw/palette-icons.d.ts +4 -0
- package/dist/draw/palette-icons.d.ts.map +1 -0
- package/dist/draw/styles.d.ts +98 -0
- package/dist/draw/styles.d.ts.map +1 -0
- package/dist/draw-tool/EventStormingDrawTool.d.ts +48 -0
- package/dist/draw-tool/EventStormingDrawTool.d.ts.map +1 -0
- package/dist/draw-tool/EventStormingDrawingHandles.d.ts +29 -0
- package/dist/draw-tool/EventStormingDrawingHandles.d.ts.map +1 -0
- package/dist/draw-tool/EventStormingDrawingHitProvider.d.ts +13 -0
- package/dist/draw-tool/EventStormingDrawingHitProvider.d.ts.map +1 -0
- package/dist/draw-tool/index.d.ts +6 -0
- package/dist/draw-tool/index.d.ts.map +1 -0
- package/dist/event-storming.css +2 -0
- package/dist/index.d.ts +31 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2484 -0
- package/dist/index.js.map +1 -0
- package/dist/io/EventStormingExporter.d.ts +18 -0
- package/dist/io/EventStormingExporter.d.ts.map +1 -0
- package/dist/io/EventStormingImporter.d.ts +26 -0
- package/dist/io/EventStormingImporter.d.ts.map +1 -0
- package/dist/io/index.d.ts +8 -0
- package/dist/io/index.d.ts.map +1 -0
- package/dist/io/saveSvg.d.ts +17 -0
- package/dist/io/saveSvg.d.ts.map +1 -0
- package/dist/io/types.d.ts +12 -0
- package/dist/io/types.d.ts.map +1 -0
- package/dist/keyboard/EventStormingKeyboard.d.ts +20 -0
- package/dist/keyboard/EventStormingKeyboard.d.ts.map +1 -0
- package/dist/keyboard/index.d.ts +5 -0
- package/dist/keyboard/index.d.ts.map +1 -0
- package/dist/label-editing/EventStormingLabelEditing.d.ts +43 -0
- package/dist/label-editing/EventStormingLabelEditing.d.ts.map +1 -0
- package/dist/label-editing/index.d.ts +7 -0
- package/dist/label-editing/index.d.ts.map +1 -0
- package/dist/label-editing/note-editor-dom.d.ts +57 -0
- package/dist/label-editing/note-editor-dom.d.ts.map +1 -0
- package/dist/lasso/EventStormingLassoBehavior.d.ts +12 -0
- package/dist/lasso/EventStormingLassoBehavior.d.ts.map +1 -0
- package/dist/lasso/index.d.ts +5 -0
- package/dist/lasso/index.d.ts.map +1 -0
- package/dist/model/EventStormingElementFactory.d.ts +51 -0
- package/dist/model/EventStormingElementFactory.d.ts.map +1 -0
- package/dist/model/di-types.d.ts +62 -0
- package/dist/model/di-types.d.ts.map +1 -0
- package/dist/model/index.d.ts +6 -0
- package/dist/model/index.d.ts.map +1 -0
- package/dist/modeling/EventStormingCopyPaste.d.ts +43 -0
- package/dist/modeling/EventStormingCopyPaste.d.ts.map +1 -0
- package/dist/modeling/EventStormingModeling.d.ts +44 -0
- package/dist/modeling/EventStormingModeling.d.ts.map +1 -0
- package/dist/modeling/cmd/UpdatePropertiesHandler.d.ts +18 -0
- package/dist/modeling/cmd/UpdatePropertiesHandler.d.ts.map +1 -0
- package/dist/modeling/index.d.ts +6 -0
- package/dist/modeling/index.d.ts.map +1 -0
- package/dist/ordering/EventStormingOrderingProvider.d.ts +17 -0
- package/dist/ordering/EventStormingOrderingProvider.d.ts.map +1 -0
- package/dist/ordering/index.d.ts +5 -0
- package/dist/ordering/index.d.ts.map +1 -0
- package/dist/palette/EventStormingPaletteProvider.d.ts +19 -0
- package/dist/palette/EventStormingPaletteProvider.d.ts.map +1 -0
- package/dist/palette/index.d.ts +5 -0
- package/dist/palette/index.d.ts.map +1 -0
- package/dist/popup/EventStormingElementSettingsProvider.d.ts +17 -0
- package/dist/popup/EventStormingElementSettingsProvider.d.ts.map +1 -0
- package/dist/popup/index.d.ts +5 -0
- package/dist/popup/index.d.ts.map +1 -0
- package/dist/resize/EventStormingResizeBehavior.d.ts +12 -0
- package/dist/resize/EventStormingResizeBehavior.d.ts.map +1 -0
- package/dist/resize/index.d.ts +9 -0
- package/dist/resize/index.d.ts.map +1 -0
- package/dist/rules/EventStormingRules.d.ts +13 -0
- package/dist/rules/EventStormingRules.d.ts.map +1 -0
- package/dist/rules/index.d.ts +5 -0
- package/dist/rules/index.d.ts.map +1 -0
- package/dist/snapping/ElementSnapping.d.ts +15 -0
- package/dist/snapping/ElementSnapping.d.ts.map +1 -0
- package/dist/snapping/index.d.ts +5 -0
- package/dist/snapping/index.d.ts.map +1 -0
- package/dist/theme/index.d.ts +2 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/palette.d.ts +56 -0
- package/dist/theme/palette.d.ts.map +1 -0
- package/dist/view-options/EventStormingViewOptions.d.ts +20 -0
- package/dist/view-options/EventStormingViewOptions.d.ts.map +1 -0
- package/dist/view-options/index.d.ts +9 -0
- package/dist/view-options/index.d.ts.map +1 -0
- package/package.json +53 -0
package/README.md
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# @miragon/event-storming-renderer
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@miragon/event-storming-renderer)
|
|
4
|
+
[](https://github.com/Miragon/event-storming-modeler/blob/main/LICENSE)
|
|
5
|
+
|
|
6
|
+
[diagram-js](https://github.com/bpmn-io/diagram-js)-based renderer for
|
|
7
|
+
[Event Storming](https://www.eventstorming.com/) boards: `Viewer`, `NavigatedViewer`, and a full
|
|
8
|
+
editable `Modeler`, plus `.storm` DSL / JSON / SVG import and export. Browser/DOM only.
|
|
9
|
+
|
|
10
|
+
## Install
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
npm install @miragon/event-storming-renderer
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Usage
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
import { NavigatedViewer } from '@miragon/event-storming-renderer';
|
|
20
|
+
import '@miragon/event-storming-renderer/assets/event-storming.css';
|
|
21
|
+
|
|
22
|
+
const viewer = new NavigatedViewer({ container: document.querySelector('#canvas')! });
|
|
23
|
+
|
|
24
|
+
await viewer.importDSL(`title Order Checkout
|
|
25
|
+
actor Customer [80, 300]
|
|
26
|
+
command Place Order [240, 300]
|
|
27
|
+
event Order Placed [620, 300]
|
|
28
|
+
Customer -> Place Order
|
|
29
|
+
Place Order -> Order Placed`);
|
|
30
|
+
|
|
31
|
+
const board = viewer.exportMap(); // canonical JSON model
|
|
32
|
+
const dsl = viewer.exportDSL(); // back to .storm text
|
|
33
|
+
const { svg } = await viewer.saveSVG();
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Swap `NavigatedViewer` for `Modeler` to get the editable board (sticky palette, context pad,
|
|
37
|
+
arrows, undo/redo). Stickies are colored per kind (`STICKY_STYLES`): domain event, command,
|
|
38
|
+
actor, aggregate, policy, read model, external system, hotspot — plus free-text notes and
|
|
39
|
+
freeform drawings on an unbounded canvas.
|
|
40
|
+
|
|
41
|
+
### Fonts
|
|
42
|
+
|
|
43
|
+
The package ships no fonts and uses no CDN. The canvas typeface is **Geist** (Miragon corporate
|
|
44
|
+
identity); provide it yourself — recommended self-hosted via [`@fontsource`](https://fontsource.org/)
|
|
45
|
+
(one variable file covers all weights):
|
|
46
|
+
|
|
47
|
+
```ts
|
|
48
|
+
import '@fontsource-variable/geist/wght.css';
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Part of the [Event Storming Modeler](https://github.com/Miragon/event-storming-modeler) monorepo.
|
|
52
|
+
|
|
53
|
+
## License
|
|
54
|
+
|
|
55
|
+
MIT
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { ModuleDeclaration } from 'didi';
|
|
2
|
+
import { EventStormingBoard } from '@miragon/event-storming-schema-model';
|
|
3
|
+
import { ImportWarning } from './io/types.js';
|
|
4
|
+
export interface EventStormingViewerOptions {
|
|
5
|
+
/** Host element. If missing, a detached <div> is created (can be attached later via attachTo). */
|
|
6
|
+
container?: HTMLElement;
|
|
7
|
+
width?: number | string;
|
|
8
|
+
height?: number | string;
|
|
9
|
+
/** Concatenated to the end of the module list (extension point). */
|
|
10
|
+
additionalModules?: ModuleDeclaration[];
|
|
11
|
+
}
|
|
12
|
+
export type EventCallback<T = unknown> = (event: T) => void;
|
|
13
|
+
/**
|
|
14
|
+
* Shared lifecycle & DI bootstrap for all Event Storming viewers (analogous to bpmn-js
|
|
15
|
+
* BaseViewer, but OUR OWN code — no bpmn-js as a dependency). Subclasses only override
|
|
16
|
+
* `_getModules()` (a method rather than a field, to sidestep the constructor/field
|
|
17
|
+
* initialization order). `attachTo`/`detach` are own implementations (not a diagram-js
|
|
18
|
+
* primitive).
|
|
19
|
+
*/
|
|
20
|
+
export declare abstract class EventStormingBaseViewer {
|
|
21
|
+
protected abstract _getModules(): ModuleDeclaration[];
|
|
22
|
+
private _diagram;
|
|
23
|
+
private readonly _container;
|
|
24
|
+
private readonly _options;
|
|
25
|
+
constructor(options?: EventStormingViewerOptions);
|
|
26
|
+
private _createContainer;
|
|
27
|
+
private _ensureDiagram;
|
|
28
|
+
get<T>(name: string): T;
|
|
29
|
+
on<T = unknown>(event: string, callback: EventCallback<T>, priority?: number): void;
|
|
30
|
+
off(event: string, callback: EventCallback): void;
|
|
31
|
+
/** Load a board into the canvas (replaces existing content). */
|
|
32
|
+
importMap(board: EventStormingBoard): Promise<{
|
|
33
|
+
warnings: ImportWarning[];
|
|
34
|
+
}>;
|
|
35
|
+
/** DSL `style` directive as a CSS class on the container (`event-storming-dark` etc.). */
|
|
36
|
+
private _applyStyleClass;
|
|
37
|
+
/** Load `.storm` DSL text (internally parse -> importMap). Parser findings land in the warnings. */
|
|
38
|
+
importDSL(text: string): Promise<{
|
|
39
|
+
warnings: ImportWarning[];
|
|
40
|
+
}>;
|
|
41
|
+
/** Current state as the canonical model (from the DI properties). */
|
|
42
|
+
exportMap(): EventStormingBoard;
|
|
43
|
+
exportDSL(): string;
|
|
44
|
+
/** Static, standalone SVG — framed by the content bounds of the free canvas. */
|
|
45
|
+
saveSVG(): Promise<{
|
|
46
|
+
svg: string;
|
|
47
|
+
}>;
|
|
48
|
+
/** Own implementation (not a diagram-js primitive): attach the container to `target`. */
|
|
49
|
+
attachTo(target: HTMLElement): void;
|
|
50
|
+
/** Own implementation: detach the container from the DOM, keeping state. */
|
|
51
|
+
detach(): void;
|
|
52
|
+
clear(): void;
|
|
53
|
+
destroy(): void;
|
|
54
|
+
get container(): HTMLElement;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=EventStormingBaseViewer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventStormingBaseViewer.d.ts","sourceRoot":"","sources":["../src/EventStormingBaseViewer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAI9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAM/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,WAAW,0BAA0B;IACzC,kGAAkG;IAClG,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,oEAAoE;IACpE,iBAAiB,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACzC;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;AAM5D;;;;;;GAMG;AACH,8BAAsB,uBAAuB;IAC3C,SAAS,CAAC,QAAQ,CAAC,WAAW,IAAI,iBAAiB,EAAE;IAErD,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;gBAE1C,OAAO,GAAE,0BAA+B;IAKpD,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,cAAc;IAQtB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;IAIvB,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,SAAO,GAAG,IAAI;IAIjF,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAIjD,gEAAgE;IAC1D,SAAS,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,aAAa,EAAE,CAAA;KAAE,CAAC;IAclF,0FAA0F;IAC1F,OAAO,CAAC,gBAAgB;IAMxB,oGAAoG;IAC9F,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,aAAa,EAAE,CAAA;KAAE,CAAC;IAcrE,qEAAqE;IACrE,SAAS,IAAI,kBAAkB;IAI/B,SAAS,IAAI,MAAM;IAInB,gFAAgF;IAC1E,OAAO,IAAI,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAOzC,yFAAyF;IACzF,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAKnC,4EAA4E;IAC5E,MAAM,IAAI,IAAI;IAId,KAAK,IAAI,IAAI;IAIb,OAAO,IAAI,IAAI;IAQf,IAAI,SAAS,IAAI,WAAW,CAE3B;CACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ModuleDeclaration } from 'didi';
|
|
2
|
+
import { NavigatedViewer } from './NavigatedViewer.js';
|
|
3
|
+
/**
|
|
4
|
+
* Full Event Storming editor: palette/create, free move with sticky-center snapping, connect
|
|
5
|
+
* with rules, context pad, inline label editing, undo/redo, pinning of actor/hotspot stickies,
|
|
6
|
+
* free resizing of notes.
|
|
7
|
+
*/
|
|
8
|
+
export declare class Modeler extends NavigatedViewer {
|
|
9
|
+
protected _getModules(): ModuleDeclaration[];
|
|
10
|
+
undo(): void;
|
|
11
|
+
redo(): void;
|
|
12
|
+
canUndo(): boolean;
|
|
13
|
+
canRedo(): boolean;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=Modeler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Modeler.d.ts","sourceRoot":"","sources":["../src/Modeler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAa9C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAiBvD;;;;GAIG;AACH,qBAAa,OAAQ,SAAQ,eAAe;cACvB,WAAW,IAAI,iBAAiB,EAAE;IA8BrD,IAAI,IAAI,IAAI;IAIZ,IAAI,IAAI,IAAI;IAIZ,OAAO,IAAI,OAAO;IAIlB,OAAO,IAAI,OAAO;CAGnB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ModuleDeclaration } from 'didi';
|
|
2
|
+
import { Viewer } from './Viewer.js';
|
|
3
|
+
/**
|
|
4
|
+
* `keyboard-move-selection` depends on `modeling` and therefore belongs in the (later) Modeler,
|
|
5
|
+
* not in the read-only NavigatedViewer. Panning is unconstrained — the canvas is free.
|
|
6
|
+
*/
|
|
7
|
+
export declare class NavigatedViewer extends Viewer {
|
|
8
|
+
protected _getModules(): ModuleDeclaration[];
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=NavigatedViewer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NavigatedViewer.d.ts","sourceRoot":"","sources":["../src/NavigatedViewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAK9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,MAAM;cACtB,WAAW,IAAI,iBAAiB,EAAE;CAStD"}
|
package/dist/Viewer.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ModuleDeclaration } from 'didi';
|
|
2
|
+
import { EventStormingBaseViewer } from './EventStormingBaseViewer.js';
|
|
3
|
+
export declare class Viewer extends EventStormingBaseViewer {
|
|
4
|
+
protected _getModules(): ModuleDeclaration[];
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=Viewer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Viewer.d.ts","sourceRoot":"","sources":["../src/Viewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAOvE,qBAAa,MAAO,SAAQ,uBAAuB;IACjD,SAAS,CAAC,WAAW,IAAI,iBAAiB,EAAE;CAS7C"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { default as EventBus } from 'diagram-js/lib/core/EventBus';
|
|
2
|
+
import { Injector } from 'didi';
|
|
3
|
+
/**
|
|
4
|
+
* Behavior for "append sticky" (`create.start` with `context.source`):
|
|
5
|
+
* 1. LIVE arrow preview from the source to the cursor (analogous to diagram-js ConnectPreview,
|
|
6
|
+
* but in the create flow) — requires the `connectionPreview` service (ConnectionPreviewModule).
|
|
7
|
+
* 2. After creation of the provisional (blank) sticky, opens the change-type popup on it so the
|
|
8
|
+
* user picks the kind first; the retype then hands over to the label editor (step 2 of the
|
|
9
|
+
* chain). Dismissing the popup without choosing removes the blank sticky (and thereby its
|
|
10
|
+
* auto-arrow) again.
|
|
11
|
+
* Both only when `context.source` is set; ordinary palette-create stays untouched.
|
|
12
|
+
*/
|
|
13
|
+
export default class EventStormingAppendBehavior {
|
|
14
|
+
static $inject: string[];
|
|
15
|
+
constructor(injector: Injector, eventBus: EventBus);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=EventStormingAppendBehavior.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventStormingAppendBehavior.d.ts","sourceRoot":"","sources":["../../src/append/EventStormingAppendBehavior.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAyDrC;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,OAAO,2BAA2B;IAC9C,MAAM,CAAC,OAAO,WAA4B;gBAE9B,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;CAgHnD"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ModuleDeclaration } from 'didi';
|
|
2
|
+
/**
|
|
3
|
+
* "Append sticky": pulls in the `connectionPreview` service (thereby also enabling the connect
|
|
4
|
+
* tool's arrow preview) and registers the append behavior (live arrow preview + automatically
|
|
5
|
+
* opening the label editor after creation).
|
|
6
|
+
*/
|
|
7
|
+
export declare const eventStormingAppendModule: ModuleDeclaration;
|
|
8
|
+
export { default as EventStormingAppendBehavior } from './EventStormingAppendBehavior.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/append/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAI9C;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,iBAIvC,CAAC;AAEF,OAAO,EAAE,OAAO,IAAI,2BAA2B,EAAE,MAAM,kCAAkC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { default as CommandInterceptor } from 'diagram-js/lib/command/CommandInterceptor';
|
|
2
|
+
import { default as EventBus } from 'diagram-js/lib/core/EventBus';
|
|
3
|
+
import { default as Modeling } from 'diagram-js/lib/features/modeling/Modeling';
|
|
4
|
+
/**
|
|
5
|
+
* Keeps pinning consistent under RETYPE (`setStickyKind` via the popup): only attachable kinds
|
|
6
|
+
* (actor/hotspot/note) may carry a `host` and only host kinds may carry attachers — a stale link
|
|
7
|
+
* would make the exporter's `validateBoard` throw. Drag/drop, host-delete and move-together are
|
|
8
|
+
* covered by the stock diagram-js AttachSupport; retype mutates in place (no `shape.replace`),
|
|
9
|
+
* so it needs this hook. Notes themselves cannot be retyped (`setStickyKind` rejects them), but
|
|
10
|
+
* a HOST retyped to a non-host kind sheds its note attachers like any other attacher here.
|
|
11
|
+
* Runs in `preExecute` of the SAME command -> detach joins the retype as one undo step.
|
|
12
|
+
*/
|
|
13
|
+
export default class EventStormingAttachBehavior extends CommandInterceptor {
|
|
14
|
+
static $inject: string[];
|
|
15
|
+
constructor(eventBus: EventBus, modeling: Modeling);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=EventStormingAttachBehavior.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventStormingAttachBehavior.d.ts","sourceRoot":"","sources":["../../src/attach/EventStormingAttachBehavior.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,2CAA2C,CAAC;AAC3E,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,QAAQ,MAAM,2CAA2C,CAAC;AAKtE;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,2BAA4B,SAAQ,kBAAkB;IACzE,OAAgB,OAAO,WAA4B;gBAEvC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;CAkBnD"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ModuleDeclaration } from 'didi';
|
|
2
|
+
/**
|
|
3
|
+
* Pinning of actor/hotspot stickies and notes: the stock diagram-js AttachSupport
|
|
4
|
+
* (host/attachers move-together, delete-together — the bpmn-js boundary-event machinery) plus
|
|
5
|
+
* the Event Storming retype consistency behavior.
|
|
6
|
+
*/
|
|
7
|
+
export declare const eventStormingAttachModule: ModuleDeclaration;
|
|
8
|
+
export { default as EventStormingAttachBehavior } from './EventStormingAttachBehavior.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/attach/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAI9C;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,iBAIvC,CAAC;AAEF,OAAO,EAAE,OAAO,IAAI,2BAA2B,EAAE,MAAM,kCAAkC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { default as ElementRegistry } from 'diagram-js/lib/core/ElementRegistry';
|
|
2
|
+
export interface Bounds {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
width: number;
|
|
6
|
+
height: number;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Content bounds of the free Event Storming canvas — no rendering, no constraint. The single
|
|
10
|
+
* bounds source for the SVG export viewBox and the apps' fitView (connections always run
|
|
11
|
+
* between shapes, so the shape bbox covers everything).
|
|
12
|
+
*/
|
|
13
|
+
export default class BoardBounds {
|
|
14
|
+
private readonly elementRegistry;
|
|
15
|
+
static $inject: string[];
|
|
16
|
+
constructor(elementRegistry: ElementRegistry);
|
|
17
|
+
/**
|
|
18
|
+
* Bounding box over all elements, padded on every side. An empty board falls back to the
|
|
19
|
+
* schema-model default framing so fitView/export behave sensibly before the first sticky.
|
|
20
|
+
*/
|
|
21
|
+
contentBounds(padding?: number): Bounds;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=BoardBounds.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BoardBounds.d.ts","sourceRoot":"","sources":["../../src/board-bounds/BoardBounds.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,qCAAqC,CAAC;AAIvE,MAAM,WAAW,MAAM;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAwBD;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,WAAW;IAGlB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAF5C,MAAM,CAAC,OAAO,WAAuB;gBAER,eAAe,EAAE,eAAe;IAE7D;;;OAGG;IACH,aAAa,CAAC,OAAO,SAAM,GAAG,MAAM;CAerC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ModuleDeclaration } from 'didi';
|
|
2
|
+
/** Content-bbox bounds service (fitView + SVG export framing). */
|
|
3
|
+
export declare const boardBoundsModule: ModuleDeclaration;
|
|
4
|
+
export { default as BoardBounds } from './BoardBounds.js';
|
|
5
|
+
export type { Bounds } from './BoardBounds.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/board-bounds/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAG9C,kEAAkE;AAClE,eAAO,MAAM,iBAAiB,EAAE,iBAE/B,CAAC;AAEF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1D,YAAY,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { default as Canvas } from 'diagram-js/lib/core/Canvas';
|
|
2
|
+
import { default as EventBus } from 'diagram-js/lib/core/EventBus';
|
|
3
|
+
import { default as EventStormingModeling } from '../modeling/EventStormingModeling.js';
|
|
4
|
+
import { EventStormingShape } from '../model/di-types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Compact color picker (bpmn.io-style): a 3x3 grid of small color squares (no text), opened from
|
|
7
|
+
* an element's context pad. Uses its own popover (instead of diagram-js PopupMenu) so the swatch
|
|
8
|
+
* grid can be rendered exactly and without text. Sets the color override via
|
|
9
|
+
* `eventStormingModeling` (undo/redo). First cell = "no color" (back to the kind's default).
|
|
10
|
+
*/
|
|
11
|
+
export default class EventStormingColorPicker {
|
|
12
|
+
private readonly canvas;
|
|
13
|
+
private readonly modeling;
|
|
14
|
+
static $inject: string[];
|
|
15
|
+
private popover;
|
|
16
|
+
private readonly onDocPointer;
|
|
17
|
+
private readonly onKey;
|
|
18
|
+
constructor(canvas: Canvas, eventBus: EventBus, modeling: EventStormingModeling);
|
|
19
|
+
/** Opens the swatch grid for `shape` at the click position (viewport coordinates). */
|
|
20
|
+
open(shape: EventStormingShape, clientX: number, clientY: number): void;
|
|
21
|
+
close(): void;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=EventStormingColorPicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventStormingColorPicker.d.ts","sourceRoot":"","sources":["../../src/color-picker/EventStormingColorPicker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,qBAAqB,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAgB,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAS7E;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,wBAAwB;IAazC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAd3B,MAAM,CAAC,OAAO,WAAmD;IAEjE,OAAO,CAAC,OAAO,CAA0B;IAEzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAE3B;IACF,OAAO,CAAC,QAAQ,CAAC,KAAK,CAEpB;gBAGiB,MAAM,EAAE,MAAM,EAC/B,QAAQ,EAAE,QAAQ,EACD,QAAQ,EAAE,qBAAqB;IAMlD,sFAAsF;IACtF,IAAI,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IA+CvE,KAAK,IAAI,IAAI;CAOd"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ModuleDeclaration } from 'didi';
|
|
2
|
+
/** Sticky color picker (3x3 swatch popover). */
|
|
3
|
+
export declare const eventStormingColorPickerModule: ModuleDeclaration;
|
|
4
|
+
export { default as EventStormingColorPicker } from './EventStormingColorPicker.js';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/color-picker/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAG9C,gDAAgD;AAChD,eAAO,MAAM,8BAA8B,EAAE,iBAG5C,CAAC;AAEF,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,+BAA+B,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { default as ContextPad } from 'diagram-js/lib/features/context-pad/ContextPad';
|
|
2
|
+
import { default as Modeling } from 'diagram-js/lib/features/modeling/Modeling';
|
|
3
|
+
import { default as Connect } from 'diagram-js/lib/features/connect/Connect';
|
|
4
|
+
import { default as Create } from 'diagram-js/lib/features/create/Create';
|
|
5
|
+
import { default as PopupMenu } from 'diagram-js/lib/features/popup-menu/PopupMenu';
|
|
6
|
+
import { ContextPadEntries, default as ContextPadProvider } from 'diagram-js/lib/features/context-pad/ContextPadProvider';
|
|
7
|
+
import { Element } from 'diagram-js/lib/model/Types';
|
|
8
|
+
import { default as EventStormingModeling } from '../modeling/EventStormingModeling.js';
|
|
9
|
+
import { default as EventStormingLabelEditing } from '../label-editing/EventStormingLabelEditing.js';
|
|
10
|
+
import { default as EventStormingElementFactory } from '../model/EventStormingElementFactory.js';
|
|
11
|
+
import { default as EventStormingColorPicker } from '../color-picker/EventStormingColorPicker.js';
|
|
12
|
+
/** Context actions per element. */
|
|
13
|
+
export default class EventStormingContextPadProvider implements ContextPadProvider {
|
|
14
|
+
private readonly modeling;
|
|
15
|
+
private readonly connect;
|
|
16
|
+
private readonly create;
|
|
17
|
+
private readonly popupMenu;
|
|
18
|
+
private readonly eventStormingModeling;
|
|
19
|
+
private readonly labelEditing;
|
|
20
|
+
private readonly factory;
|
|
21
|
+
private readonly colorPicker;
|
|
22
|
+
static $inject: string[];
|
|
23
|
+
constructor(contextPad: ContextPad, modeling: Modeling, connect: Connect, create: Create, popupMenu: PopupMenu, eventStormingModeling: EventStormingModeling, labelEditing: EventStormingLabelEditing, factory: EventStormingElementFactory, colorPicker: EventStormingColorPicker);
|
|
24
|
+
getContextPadEntries(element: Element): ContextPadEntries;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=EventStormingContextPadProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventStormingContextPadProvider.d.ts","sourceRoot":"","sources":["../../src/context-pad/EventStormingContextPadProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,gDAAgD,CAAC;AAC7E,OAAO,KAAK,QAAQ,MAAM,2CAA2C,CAAC;AACtE,OAAO,KAAK,OAAO,MAAM,yCAAyC,CAAC;AACnE,OAAO,KAAK,MAAM,MAAM,uCAAuC,CAAC;AAChE,OAAO,KAAK,SAAS,MAAM,8CAA8C,CAAC;AAC1E,OAAO,KAAK,EACV,iBAAiB,EACjB,OAAO,IAAI,kBAAkB,EAC9B,MAAM,wDAAwD,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAO1D,OAAO,KAAK,qBAAqB,MAAM,sCAAsC,CAAC;AAC9E,OAAO,KAAK,yBAAyB,MAAM,+CAA+C,CAAC;AAC3F,OAAO,KAAK,2BAA2B,MAAM,yCAAyC,CAAC;AACvF,OAAO,KAAK,wBAAwB,MAAM,6CAA6C,CAAC;AAwBxF,mCAAmC;AACnC,MAAM,CAAC,OAAO,OAAO,+BAAgC,YAAW,kBAAkB;IAe9E,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW;IArB9B,MAAM,CAAC,OAAO,WAUZ;gBAGA,UAAU,EAAE,UAAU,EACL,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,qBAAqB,EAAE,qBAAqB,EAC5C,YAAY,EAAE,yBAAyB,EACvC,OAAO,EAAE,2BAA2B,EACpC,WAAW,EAAE,wBAAwB;IAKxD,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,iBAAiB;CA2H1D"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ModuleDeclaration } from 'didi';
|
|
2
|
+
/** Context actions per element. */
|
|
3
|
+
export declare const eventStormingContextPadModule: ModuleDeclaration;
|
|
4
|
+
export { default as EventStormingContextPadProvider } from './EventStormingContextPadProvider.js';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context-pad/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAG9C,mCAAmC;AACnC,eAAO,MAAM,6BAA6B,EAAE,iBAG3C,CAAC;AAEF,OAAO,EAAE,OAAO,IAAI,+BAA+B,EAAE,MAAM,sCAAsC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { default as BaseRenderer } from 'diagram-js/lib/draw/BaseRenderer';
|
|
2
|
+
import { default as EventBus } from 'diagram-js/lib/core/EventBus';
|
|
3
|
+
import { ElementLike, ShapeLike, ConnectionLike } from 'diagram-js/lib/model/Types';
|
|
4
|
+
import { default as EventStormingViewOptions } from '../view-options/EventStormingViewOptions.js';
|
|
5
|
+
/** Class of the small kind caption at a sticky's bottom (selector contract for tests/e2e). */
|
|
6
|
+
export declare const KIND_CAPTION_CLASS = "event-storming-kind-caption";
|
|
7
|
+
/** Soft drop shadow that makes stickies read as paper on the board (defs id, per canvas SVG). */
|
|
8
|
+
export declare const STICKY_SHADOW_FILTER_ID = "event-storming-sticky-shadow";
|
|
9
|
+
export default class EventStormingRenderer extends BaseRenderer {
|
|
10
|
+
private readonly viewOptions;
|
|
11
|
+
static $inject: string[];
|
|
12
|
+
constructor(eventBus: EventBus, viewOptions: EventStormingViewOptions);
|
|
13
|
+
canRender(element: ElementLike): boolean;
|
|
14
|
+
drawShape(visuals: SVGElement, element: ShapeLike): SVGElement;
|
|
15
|
+
/** Freeform drawing: polyline/polygon from relative points (see EventStormingDrawTool). */
|
|
16
|
+
private drawDrawing;
|
|
17
|
+
/**
|
|
18
|
+
* Every sticky (and the free note) is a rounded rectangle with centered, wrapped dark text
|
|
19
|
+
* inside — the label lives IN the sticky, never beside it. A user-picked `color` overrides
|
|
20
|
+
* the kind's fill; the border stays the kind's own (so the type remains recognizable).
|
|
21
|
+
*/
|
|
22
|
+
private drawSticky;
|
|
23
|
+
drawConnection(visuals: SVGElement, element: ConnectionLike): SVGElement;
|
|
24
|
+
getShapePath(shape: ShapeLike): string;
|
|
25
|
+
getConnectionPath(connection: ConnectionLike): string;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=EventStormingRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventStormingRenderer.d.ts","sourceRoot":"","sources":["../../src/draw/EventStormingRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,kCAAkC,CAAC;AAE5D,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAsBzF,OAAO,KAAK,wBAAwB,MAAM,6CAA6C,CAAC;AAQxF,8FAA8F;AAC9F,eAAO,MAAM,kBAAkB,gCAAgC,CAAC;AAchE,iGAAiG;AACjG,eAAO,MAAM,uBAAuB,iCAAiC,CAAC;AAoCtE,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,YAAY;IAK3D,OAAO,CAAC,QAAQ,CAAC,WAAW;IAJ9B,MAAM,CAAC,OAAO,WAA4C;gBAGxD,QAAQ,EAAE,QAAQ,EACD,WAAW,EAAE,wBAAwB;IAK/C,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO;IAIxC,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,GAAG,UAAU;IAMvE,2FAA2F;IAC3F,OAAO,CAAC,WAAW;IAiBnB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IA8DT,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,GAAG,UAAU;IA+BxE,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM;IAKtC,iBAAiB,CAAC,UAAU,EAAE,cAAc,GAAG,MAAM;CAK/D"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Embedded icon paths from Google Material Icons (Apache-2.0, © Google).
|
|
3
|
+
* 24x24-viewBox paths. `iconMarkup` renders them as an HTML string (palette/context pad/buttons)
|
|
4
|
+
* with `fill: currentColor` (color controllable via CSS).
|
|
5
|
+
* Source: https://github.com/google/material-design-icons (Apache License 2.0).
|
|
6
|
+
*/
|
|
7
|
+
export declare const ICON_PERSON = "M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z";
|
|
8
|
+
export declare const ICON_ARROW_FORWARD = "M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z";
|
|
9
|
+
export declare const ICON_EDIT = "M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z";
|
|
10
|
+
export declare const ICON_DELETE = "M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z";
|
|
11
|
+
export declare const ICON_UNDO = "M12.5 8c-2.65 0-5.05.99-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z";
|
|
12
|
+
export declare const ICON_REDO = "M18.4 10.6C16.55 8.99 14.15 8 11.5 8c-4.65 0-8.58 3.03-9.96 7.22L3.9 16c1.05-3.19 4.05-5.5 7.6-5.5 1.95 0 3.73.72 5.12 1.88L13 16h9V7l-3.6 3.6z";
|
|
13
|
+
/** data_object — JSON. */
|
|
14
|
+
export declare const ICON_DATA_OBJECT = "M4 7v2c0 .55-.45 1-1 1H2v2h1c.55 0 1 .45 1 1v2c0 1.65 1.35 3 3 3h1v-2H7c-.55 0-1-.45-1-1v-2c0-.84-.35-1.61-.92-2.18L4.85 12l.23-.82C5.65 10.61 6 9.84 6 9V7c0-.55.45-1 1-1h1V4H7C5.35 4 4 5.35 4 7zm16 3c-.55 0-1-.45-1-1V7c0-1.65-1.35-3-3-3h-1v2h1c.55 0 1 .45 1 1v2c0 .84.35 1.61.92 2.18l.23.82-.23.82c-.57.57-.92 1.34-.92 2.18v2c0 .55-.45 1-1 1h-1v2h1c1.65 0 3-1.35 3-3v-2c0-.55.45-1 1-1h1v-2h-1z";
|
|
15
|
+
/** code — DSL. */
|
|
16
|
+
export declare const ICON_CODE = "M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z";
|
|
17
|
+
/** download — Export. */
|
|
18
|
+
export declare const ICON_DOWNLOAD = "M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z";
|
|
19
|
+
/** share — share link. */
|
|
20
|
+
export declare const ICON_SHARE = "M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92s2.92-1.31 2.92-2.92-1.31-2.92-2.92-2.92z";
|
|
21
|
+
/** folder_open — open file. */
|
|
22
|
+
export declare const ICON_FOLDER_OPEN = "M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z";
|
|
23
|
+
/** image — PNG/image. */
|
|
24
|
+
export declare const ICON_IMAGE = "M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z";
|
|
25
|
+
/** note_add — new / clear. */
|
|
26
|
+
export declare const ICON_NEW = "M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 14h-3v3h-2v-3H8v-2h3v-3h2v3h3v2zm-3-7V3.5L18.5 9H13z";
|
|
27
|
+
/** palette — sticky color. */
|
|
28
|
+
export declare const ICON_PALETTE = "M12 2C6.49 2 2 6.49 2 12s4.49 10 10 10c1.38 0 2.5-1.12 2.5-2.5 0-.61-.23-1.2-.64-1.67-.08-.1-.13-.21-.13-.33 0-.28.22-.5.5-.5H16c3.31 0 6-2.69 6-6 0-4.96-4.49-9-10-9zm-5.5 9c-.83 0-1.5-.67-1.5-1.5S5.67 8 6.5 8 8 8.67 8 9.5 7.33 11 6.5 11zm3-4C8.67 7 8 6.33 8 5.5S8.67 4 9.5 4s1.5.67 1.5 1.5S10.33 7 9.5 7zm5 0c-.83 0-1.5-.67-1.5-1.5S13.67 4 14.5 4s1.5.67 1.5 1.5S15.33 7 14.5 7zm3 4c-.83 0-1.5-.67-1.5-1.5S16.67 8 17.5 8s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z";
|
|
29
|
+
/** swap_horiz — cycle the drawing stroke style. */
|
|
30
|
+
export declare const ICON_SWAP_HORIZ = "M6.99 11L3 15l3.99 4v-3H14v-2H6.99v-3zM21 9l-3.99-4v3H10v2h7.01v3L21 9z";
|
|
31
|
+
/** autorenew — change the sticky kind. */
|
|
32
|
+
export declare const ICON_AUTORENEW = "M12 6v3l4-4-4-4v3c-4.42 0-8 3.58-8 8 0 1.57.46 3.03 1.24 4.26L6.7 14.8c-.45-.83-.7-1.79-.7-2.8 0-3.31 2.69-6 6-6zm6.76 1.74L17.3 9.2c.44.84.7 1.79.7 2.8 0 3.31-2.69 6-6 6v-3l-4 4 4 4v-3c4.42 0 8-3.58 8-8 0-1.57-.46-3.03-1.24-4.26z";
|
|
33
|
+
/** menu — hamburger (main menu). */
|
|
34
|
+
export declare const ICON_MENU = "M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z";
|
|
35
|
+
/** add — append sticky. */
|
|
36
|
+
export declare const ICON_ADD = "M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z";
|
|
37
|
+
/** aspect_ratio — fit the board into the viewport. */
|
|
38
|
+
export declare const ICON_FIT = "M19 12h-2v3h-3v2h5v-5zM7 9h3V7H5v5h2V9zm14-6H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02z";
|
|
39
|
+
/** remove_red_eye — show example. */
|
|
40
|
+
export declare const ICON_EYE = "M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z";
|
|
41
|
+
/** Returns an icon as an HTML SVG string (for palette/context pad/buttons), color = currentColor. */
|
|
42
|
+
export declare function iconMarkup(path: string, size?: number): string;
|
|
43
|
+
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/draw/icons.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,WAAW,kHACyF,CAAC;AAClH,eAAO,MAAM,kBAAkB,8DAA8D,CAAC;AAC9F,eAAO,MAAM,SAAS,0JACmI,CAAC;AAC1J,eAAO,MAAM,WAAW,kFACyD,CAAC;AAClF,eAAO,MAAM,SAAS,mJAC4H,CAAC;AACnJ,eAAO,MAAM,SAAS,oJAC6H,CAAC;AACpJ,0BAA0B;AAC1B,eAAO,MAAM,gBAAgB,+YACiX,CAAC;AAC/Y,kBAAkB;AAClB,eAAO,MAAM,SAAS,+FACwE,CAAC;AAC/F,yBAAyB;AACzB,eAAO,MAAM,aAAa,8CAA8C,CAAC;AACzE,0BAA0B;AAC1B,eAAO,MAAM,UAAU,oWAC4U,CAAC;AACpW,+BAA+B;AAC/B,eAAO,MAAM,gBAAgB,gHACkF,CAAC;AAChH,yBAAyB;AACzB,eAAO,MAAM,UAAU,6HACqG,CAAC;AAC7H,8BAA8B;AAC9B,eAAO,MAAM,QAAQ,yIACmH,CAAC;AACzI,8BAA8B;AAC9B,eAAO,MAAM,YAAY,ycAC+a,CAAC;AACzc,mDAAmD;AACnD,eAAO,MAAM,eAAe,4EAC+C,CAAC;AAC5E,0CAA0C;AAC1C,eAAO,MAAM,cAAc,2OAC+M,CAAC;AAC3O,oCAAoC;AACpC,eAAO,MAAM,SAAS,kDAAkD,CAAC;AACzE,2BAA2B;AAC3B,eAAO,MAAM,QAAQ,wCAAwC,CAAC;AAC9D,sDAAsD;AACtD,eAAO,MAAM,QAAQ,iJAC2H,CAAC;AACjJ,qCAAqC;AACrC,eAAO,MAAM,QAAQ,sNACgM,CAAC;AAEtN,qGAAqG;AACrG,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,SAAK,GAAG,MAAM,CAE1D"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ModuleDeclaration } from 'didi';
|
|
2
|
+
/** SVG rendering of all Event Storming stickies (BaseRenderer subclass, priority 1500). */
|
|
3
|
+
export declare const eventStormingDrawModule: ModuleDeclaration;
|
|
4
|
+
export { default as EventStormingRenderer } from './EventStormingRenderer.js';
|
|
5
|
+
export { parseNoteMarkdown, serializeNoteMarkdown, plainNoteText, type NoteLine, type NoteRun, } from './note-markdown.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/draw/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAI9C,2FAA2F;AAC3F,eAAO,MAAM,uBAAuB,EAAE,iBAMrC,CAAC;AAEF,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,KAAK,QAAQ,EACb,KAAK,OAAO,GACb,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The tiny Markdown subset stored inside note labels (notes only — stickies stay plain):
|
|
3
|
+
* `**bold**`, `*italic*`, `***bold italic***` inline runs and `- ` bullet lines. The label
|
|
4
|
+
* stays ONE string in the model/DSL — this module is the single translation point between
|
|
5
|
+
* that string and styled runs (renderer + WYSIWYG editor). Unmatched markers are literal
|
|
6
|
+
* text: parsing never throws and never eats characters. `serialize(parse(x))` is a fixed
|
|
7
|
+
* point for canonical input; non-canonical input canonicalizes in one parse→serialize cycle
|
|
8
|
+
* and is then stable.
|
|
9
|
+
*/
|
|
10
|
+
export interface NoteRun {
|
|
11
|
+
readonly text: string;
|
|
12
|
+
readonly bold: boolean;
|
|
13
|
+
readonly italic: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface NoteLine {
|
|
16
|
+
/** Line started with the `- ` marker (stripped from the runs). */
|
|
17
|
+
readonly bullet: boolean;
|
|
18
|
+
readonly runs: NoteRun[];
|
|
19
|
+
}
|
|
20
|
+
/** One entry per '\n' line; bullet lines have the `- ` marker stripped. */
|
|
21
|
+
export declare function parseNoteMarkdown(label: string): NoteLine[];
|
|
22
|
+
/** Exact inverse of `parseNoteMarkdown`: canonical markers, adjacent same-style runs merged. */
|
|
23
|
+
export declare function serializeNoteMarkdown(lines: NoteLine[]): string;
|
|
24
|
+
/** Markers stripped, bullets as '• ' prefix — the string the text measurement sees. */
|
|
25
|
+
export declare function plainNoteText(label: string): string;
|
|
26
|
+
//# sourceMappingURL=note-markdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"note-markdown.d.ts","sourceRoot":"","sources":["../../src/draw/note-markdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,QAAQ;IACvB,kEAAkE;IAClE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;CAC1B;AASD,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,EAAE,CAK3D;AAED,gGAAgG;AAChG,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAY/D;AAED,uFAAuF;AACvF,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAInD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"palette-icons.d.ts","sourceRoot":"","sources":["../../src/draw/palette-icons.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAYhD,CAAC;AAQF,mEAAmE;AACnE,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE/D"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { StickyKind } from '../model/di-types.js';
|
|
2
|
+
export interface StickyStyle {
|
|
3
|
+
/** Default label for a freshly created sticky. */
|
|
4
|
+
readonly label: string;
|
|
5
|
+
readonly width: number;
|
|
6
|
+
readonly height: number;
|
|
7
|
+
readonly fill: string;
|
|
8
|
+
readonly stroke: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* The canonical sticky-note look per kind (Brandolini's color grammar): default label, fixed
|
|
12
|
+
* size and fill/border. Single source for the renderer, element factory, palette previews and
|
|
13
|
+
* the color-picker swatches. Aggregate, policy and external system share the large block format —
|
|
14
|
+
* they occupy the same slot in the grammar (receive commands / react to events); actors are the
|
|
15
|
+
* small corner stickies.
|
|
16
|
+
*/
|
|
17
|
+
export declare const STICKY_STYLES: Record<StickyKind, StickyStyle>;
|
|
18
|
+
/** Free-text note: grows with its text (see `noteMetrics`) unless resized by hand, neutral grey. */
|
|
19
|
+
export declare const NOTE_STYLE: {
|
|
20
|
+
readonly label: "Note";
|
|
21
|
+
readonly fill: "#ECECEC";
|
|
22
|
+
readonly stroke: "#C4C4C4";
|
|
23
|
+
};
|
|
24
|
+
/** Smallest hand-resized note box — keeps a shrunken note grabbable and its handles apart. */
|
|
25
|
+
export declare const NOTE_MIN_RESIZE: {
|
|
26
|
+
readonly width: 60;
|
|
27
|
+
readonly height: 40;
|
|
28
|
+
};
|
|
29
|
+
/** Corner radius shared by all stickies (and the palette previews) — 0: paper has sharp corners. */
|
|
30
|
+
export declare const STICKY_RADIUS = 0;
|
|
31
|
+
/** Inner text padding of a sticky (px, each side). */
|
|
32
|
+
export declare const STICKY_PADDING = 8;
|
|
33
|
+
export declare const STICKY_LINE_HEIGHT = 17;
|
|
34
|
+
/** Estimated character width at the 13px label size — good enough for wrapping/box sizing. */
|
|
35
|
+
export declare const STICKY_CHAR_WIDTH = 7.5;
|
|
36
|
+
/** Hanging indent (px) of note bullet lines — '•' rows and their wrapped continuations. */
|
|
37
|
+
export declare const NOTE_BULLET_INDENT = 12;
|
|
38
|
+
/**
|
|
39
|
+
* Box dimensions of a note from its (possibly multi-line) text. The note shape grows as large as
|
|
40
|
+
* its text -> the move/click hitbox grows with it (never below `NOTE_DEFAULT_SIZE`). Vertical
|
|
41
|
+
* padding matches the renderer's clip padding (`STICKY_PADDING`) — a smaller padding here would
|
|
42
|
+
* make the renderer's maxLines clip drop the last text line. Measured on `plainNoteText`: the
|
|
43
|
+
* markdown markers are invisible on canvas, so they must not widen the box (bullets count their
|
|
44
|
+
* visible '• ' prefix).
|
|
45
|
+
*/
|
|
46
|
+
export declare function noteMetrics(label: string): {
|
|
47
|
+
lines: string[];
|
|
48
|
+
width: number;
|
|
49
|
+
height: number;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* The auto-vs-manual rule: a note box is MANUAL iff it differs from `noteMetrics(label)`.
|
|
53
|
+
* Single comparison shared by the exporter (emit `size` only for manual boxes), relabel
|
|
54
|
+
* (preserve manual boxes) and copy-paste (recompute only auto clones) — divergence between
|
|
55
|
+
* these callers would make boards change on a plain reload.
|
|
56
|
+
*/
|
|
57
|
+
export declare function isManualNoteBox(label: string, box: {
|
|
58
|
+
width: number;
|
|
59
|
+
height: number;
|
|
60
|
+
}): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Canvas colours — Miragon palette. Keys are the public contract; brand values come from the
|
|
63
|
+
* single source of truth in `theme/palette.ts` (`MIRAGON`). Referenced (not spread) so the
|
|
64
|
+
* literal-string types survive into the published `.d.ts`. The sticky fills live in
|
|
65
|
+
* `STICKY_STYLES` — this map only carries the non-sticky canvas colours.
|
|
66
|
+
*/
|
|
67
|
+
export declare const COLORS: {
|
|
68
|
+
readonly paper: "#F9F7F7";
|
|
69
|
+
readonly ink: "#1D1D1D";
|
|
70
|
+
readonly inkSoft: "#5B5B5B";
|
|
71
|
+
readonly surface: "#FFFFFF";
|
|
72
|
+
readonly stroke: "#1D1D1D";
|
|
73
|
+
/** The single connection style: gray arrowed line. */
|
|
74
|
+
readonly arrow: "#9E9E9E";
|
|
75
|
+
readonly accent: "#335DE5";
|
|
76
|
+
readonly accentSoft: "rgba(51,93,229,0.12)";
|
|
77
|
+
/** Dark text inside every sticky. */
|
|
78
|
+
readonly stickyText: "#333333";
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Default stroke for freeform drawings and the draw-tool preview: theme-aware via CSS variable
|
|
82
|
+
* (dark boards flip it to a light ink — near-black on navy is invisible), with the light value as
|
|
83
|
+
* literal fallback so exported SVGs opened standalone (no stylesheet) stay stable.
|
|
84
|
+
*/
|
|
85
|
+
export declare const DRAWING_INK: string;
|
|
86
|
+
export declare const FONT: {
|
|
87
|
+
/**
|
|
88
|
+
* Set as the `font-family` attribute DIRECTLY on all SVG text elements (canvas labels and
|
|
89
|
+
* consequently the SVG export too) – not inherited from a CSS container. In EVERY context it
|
|
90
|
+
* reaches for the self-hosted 'Geist' (Miragon corporate typeface) if the consumer provides it;
|
|
91
|
+
* otherwise (e.g. an export SVG opened standalone) it falls back safely to a system sans. The
|
|
92
|
+
* library does NOT ship the font – consumers must self-host Geist themselves
|
|
93
|
+
* (e.g. via @fontsource-variable/geist), see README.
|
|
94
|
+
*/
|
|
95
|
+
readonly family: "'Geist', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif";
|
|
96
|
+
readonly label: 13;
|
|
97
|
+
};
|
|
98
|
+
//# sourceMappingURL=styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/draw/styles.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAG/F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGvD,MAAM,WAAW,WAAW;IAC1B,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,UAAU,EAAE,WAAW,CAehD,CAAC;AAEX,oGAAoG;AACpG,eAAO,MAAM,UAAU;;;;CAAiE,CAAC;AAEzF,8FAA8F;AAC9F,eAAO,MAAM,eAAe;;;CAAqC,CAAC;AAElE,oGAAoG;AACpG,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,sDAAsD;AACtD,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,8FAA8F;AAC9F,eAAO,MAAM,iBAAiB,MAAM,CAAC;AACrC,2FAA2F;AAC3F,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAWrC;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAe7F;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAG9F;AAED;;;;;GAKG;AACH,eAAO,MAAM,MAAM;;;;;;IAMjB,sDAAsD;;;;IAItD,qCAAqC;;CAE7B,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,WAAW,QAA0D,CAAC;AAEnF,eAAO,MAAM,IAAI;IACf;;;;;;;OAOG;;;CAGK,CAAC"}
|