@miragon/wardley-renderer 0.8.0 → 0.9.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.
Files changed (33) hide show
  1. package/README.md +35 -12
  2. package/dist/WardleyBaseViewer.d.ts +26 -11
  3. package/dist/WardleyBaseViewer.d.ts.map +1 -1
  4. package/dist/collaborative/CollaborativeWardley.d.ts +14 -6
  5. package/dist/collaborative/CollaborativeWardley.d.ts.map +1 -1
  6. package/dist/collaborative/index.d.ts +1 -1
  7. package/dist/collaborative/index.d.ts.map +1 -1
  8. package/dist/free-rect/FreeRect.d.ts +10 -3
  9. package/dist/free-rect/FreeRect.d.ts.map +1 -1
  10. package/dist/index.d.ts +1 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +1331 -1139
  13. package/dist/index.js.map +1 -1
  14. package/dist/io/WardleyImporter.d.ts +15 -1
  15. package/dist/io/WardleyImporter.d.ts.map +1 -1
  16. package/dist/io/fitViewbox.d.ts +21 -0
  17. package/dist/io/fitViewbox.d.ts.map +1 -0
  18. package/dist/label-editing/WardleyLabelEditing.d.ts +3 -0
  19. package/dist/label-editing/WardleyLabelEditing.d.ts.map +1 -1
  20. package/dist/link-editing/WardleyLinkEditing.d.ts +3 -0
  21. package/dist/link-editing/WardleyLinkEditing.d.ts.map +1 -1
  22. package/dist/live-preview/LivePreview.d.ts +36 -0
  23. package/dist/live-preview/LivePreview.d.ts.map +1 -0
  24. package/dist/live-preview/index.d.ts +5 -0
  25. package/dist/live-preview/index.d.ts.map +1 -0
  26. package/dist/map-resize/MapProjection.d.ts +12 -2
  27. package/dist/map-resize/MapProjection.d.ts.map +1 -1
  28. package/dist/map-resize/MapResizeHandles.d.ts +1 -0
  29. package/dist/map-resize/MapResizeHandles.d.ts.map +1 -1
  30. package/dist/map-resize/index.d.ts.map +1 -1
  31. package/dist/pan-constraint/PanConstraint.d.ts +5 -3
  32. package/dist/pan-constraint/PanConstraint.d.ts.map +1 -1
  33. package/package.json +3 -3
@@ -2,10 +2,16 @@ import { default as Canvas } from 'diagram-js/lib/core/Canvas';
2
2
  import { default as ElementFactory } from 'diagram-js/lib/core/ElementFactory';
3
3
  import { default as ElementRegistry } from 'diagram-js/lib/core/ElementRegistry';
4
4
  import { default as EventBus } from 'diagram-js/lib/core/EventBus';
5
+ import { Injector } from 'didi';
5
6
  import { WardleyMap } from '@miragon/wardley-schema-model';
6
7
  import { default as EvolutionGrid } from '../evolution-grid/EvolutionGrid.js';
7
8
  import { default as WardleyElementFactory } from '../model/WardleyElementFactory.js';
8
9
  import { ImportWarning } from './types.js';
10
+ /** Diagram config `wardleyImport` (viewer option `fitOnImport`). */
11
+ export interface WardleyImportConfig {
12
+ /** `false`: the host fits the view itself, the import leaves it alone. */
13
+ fit?: boolean;
14
+ }
9
15
  /**
10
16
  * Bridges the WardleyMap model into the diagram-js canvas.
11
17
  * Uses `evolutionGrid` exclusively for the pixel projection (P7). Deliberately bypasses the
@@ -18,9 +24,17 @@ export default class WardleyImporter {
18
24
  private readonly grid;
19
25
  private readonly eventBus;
20
26
  private readonly elementRegistry;
27
+ private readonly config;
21
28
  static $inject: string[];
22
- constructor(canvas: Canvas, elementFactory: ElementFactory, factory: WardleyElementFactory, grid: EvolutionGrid, eventBus: EventBus, elementRegistry: ElementRegistry);
29
+ private readonly freeRect;
30
+ constructor(canvas: Canvas, elementFactory: ElementFactory, factory: WardleyElementFactory, grid: EvolutionGrid, eventBus: EventBus, elementRegistry: ElementRegistry, injector: Injector, config: WardleyImportConfig | undefined);
23
31
  import(map: WardleyMap): ImportWarning[];
32
+ /**
33
+ * The plot with its axis margins, centred in the host's free rectangle, at most at 100 %: where
34
+ * the host's own fit puts it. With a free area the pan constraint leaves it there; without one
35
+ * it may still move a map smaller than the view to keep its own margins around it.
36
+ */
37
+ private fitPlot;
24
38
  private createShape;
25
39
  clear(): void;
26
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WardleyImporter.d.ts","sourceRoot":"","sources":["../../src/io/WardleyImporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,cAAc,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,eAAe,MAAM,qCAAqC,CAAC;AACvE,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AAEzD,OAAO,KAAK,EAAuB,UAAU,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,KAAK,aAAa,MAAM,oCAAoC,CAAC;AACpE,OAAO,KAAK,qBAAqB,MAAM,mCAAmC,CAAC;AAE3E,OAAO,EAAW,KAAK,aAAa,EAA2B,MAAM,YAAY,CAAC;AAiBlF;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAWhC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAflC,MAAM,CAAC,OAAO,WAOZ;gBAGiB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,qBAAqB,EAC9B,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,eAAe;IAGnD,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,aAAa,EAAE;IAmGxC,OAAO,CAAC,WAAW;IAInB,KAAK,IAAI,IAAI;CAed"}
1
+ {"version":3,"file":"WardleyImporter.d.ts","sourceRoot":"","sources":["../../src/io/WardleyImporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,cAAc,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,eAAe,MAAM,qCAAqC,CAAC;AACvE,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AAEzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,KAAK,EAAuB,UAAU,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,KAAK,aAAa,MAAM,oCAAoC,CAAC;AACpE,OAAO,KAAK,qBAAqB,MAAM,mCAAmC,CAAC;AAG3E,OAAO,EAAW,KAAK,aAAa,EAA2B,MAAM,YAAY,CAAC;AAkBlF,oEAAoE;AACpE,MAAM,WAAW,mBAAmB;IAClC,0EAA0E;IAC1E,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAehC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,MAAM;IArBzB,MAAM,CAAC,OAAO,WASZ;IAEF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;gBAGxB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,qBAAqB,EAC9B,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,eAAe,EACjD,QAAQ,EAAE,QAAQ,EACD,MAAM,EAAE,mBAAmB,GAAG,SAAS;IAK1D,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,aAAa,EAAE;IAmGxC;;;;OAIG;IACH,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,WAAW;IAInB,KAAK,IAAI,IAAI;CAed"}
@@ -0,0 +1,21 @@
1
+ import { FreeRectInsets } from '../free-rect/index.js';
2
+ /** An import never opens the map above 100 %, like the shell's fit and the other renderers. */
3
+ export declare const MAX_IMPORT_ZOOM = 1;
4
+ interface Box {
5
+ x: number;
6
+ y: number;
7
+ width: number;
8
+ height: number;
9
+ }
10
+ /**
11
+ * The viewbox that shows `bounds` centred in the free rectangle (`container` minus `insets`) at the
12
+ * largest scale that fits, never above `MAX_IMPORT_ZOOM`. The box has the container's aspect
13
+ * ratio, so `canvas.viewbox(box)` sets exactly this view. An axis the insets leave no room on
14
+ * centres in the whole container. `undefined` for a 0 × 0 container or empty bounds.
15
+ */
16
+ export declare function fitViewbox(bounds: Box, container: {
17
+ width: number;
18
+ height: number;
19
+ }, insets?: FreeRectInsets): Box | undefined;
20
+ export {};
21
+ //# sourceMappingURL=fitViewbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fitViewbox.d.ts","sourceRoot":"","sources":["../../src/io/fitViewbox.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,+FAA+F;AAC/F,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC,UAAU,GAAG;IACX,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAID;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,GAAG,EACX,SAAS,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC5C,MAAM,GAAE,cAA0B,GACjC,GAAG,GAAG,SAAS,CAiBjB"}
@@ -47,6 +47,7 @@ export default class WardleyLabelEditing {
47
47
  private readonly factory;
48
48
  static $inject: string[];
49
49
  private active;
50
+ private relayoutPending;
50
51
  private readonly contextPad;
51
52
  private readonly selection;
52
53
  private readonly locked;
@@ -60,6 +61,8 @@ export default class WardleyLabelEditing {
60
61
  activateConnection(conn: WardleyConnection, options?: ActivateOptions): void;
61
62
  /** Discards the open edit (if any) without saving. */
62
63
  cancel(): void;
64
+ /** `canvas.viewbox.changing` fires before the change, and `changed` waits 300ms under `deferUpdate`. */
65
+ private relayoutAfterViewChange;
63
66
  /**
64
67
  * Saves the open edit (if any) as if focus had left the field, e.g. before the host saves or
65
68
  * exports the map, so the file contains the text the user sees.
@@ -1 +1 @@
1
- {"version":3,"file":"WardleyLabelEditing.d.ts","sourceRoot":"","sources":["../../src/label-editing/WardleyLabelEditing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AAGzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,eAAe,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,qBAAqB,MAAM,mCAAmC,CAAC;AAuB3E,sEAAsE;AACtE,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,6EAA6E;AAC7E,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,uEAAuE;IACvE,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,6FAA6F;IAC7F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B;AAeD,0FAA0F;AAC1F,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAkBD,eAAO,MAAM,cAAc,gDAA2C,CAAC;AAEvE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzD;AAsCD;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAmB;IASpC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAX1B,MAAM,CAAC,OAAO,WAAkF;IAEhG,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;gBAGpB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,qBAAqB,EAC/C,QAAQ,EAAE,QAAQ;IAsBpB,qFAAqF;IACrF,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,GAAE,eAAoB,GAAG,IAAI;IAiIpE;;;OAGG;IACH,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,GAAE,eAAoB,GAAG,IAAI;IAuEhF,sDAAsD;IACtD,MAAM,IAAI,IAAI;IAId;;;OAGG;IACH,gBAAgB,IAAI,IAAI;IAIxB,4FAA4F;IAC5F,aAAa,IAAI,eAAe,GAAG,IAAI;IAWvC;;;OAGG;IACH,OAAO,CAAC,cAAc;IAStB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,aAAa;CAoDtB"}
1
+ {"version":3,"file":"WardleyLabelEditing.d.ts","sourceRoot":"","sources":["../../src/label-editing/WardleyLabelEditing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AAGzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,eAAe,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,qBAAqB,MAAM,mCAAmC,CAAC;AAyB3E,sEAAsE;AACtE,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,6EAA6E;AAC7E,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,uEAAuE;IACvE,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,6FAA6F;IAC7F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B;AAeD,0FAA0F;AAC1F,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAqBD,eAAO,MAAM,cAAc,gDAA2C,CAAC;AAEvE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzD;AAsCD;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAmB;IAUpC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAZ1B,MAAM,CAAC,OAAO,WAAkF;IAEhG,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;gBAGpB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,qBAAqB,EAC/C,QAAQ,EAAE,QAAQ;IAkCpB,qFAAqF;IACrF,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,GAAE,eAAoB,GAAG,IAAI;IA+IpE;;;OAGG;IACH,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,GAAE,eAAoB,GAAG,IAAI;IA+EhF,sDAAsD;IACtD,MAAM,IAAI,IAAI;IAId,wGAAwG;IACxG,OAAO,CAAC,uBAAuB;IAS/B;;;OAGG;IACH,gBAAgB,IAAI,IAAI;IAIxB,4FAA4F;IAC5F,aAAa,IAAI,eAAe,GAAG,IAAI;IAWvC;;;OAGG;IACH,OAAO,CAAC,cAAc;IAStB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,aAAa;CAoDtB"}
@@ -18,6 +18,7 @@ export default class WardleyLinkEditing {
18
18
  private readonly injector;
19
19
  static $inject: string[];
20
20
  private active;
21
+ private relayoutPending;
21
22
  constructor(eventBus: EventBus, canvas: Canvas, modeling: WardleyModeling, injector: Injector);
22
23
  /**
23
24
  * Sets (or with an empty value removes) the link. Returns false when the address is not allowed.
@@ -30,6 +31,8 @@ export default class WardleyLinkEditing {
30
31
  value?: string;
31
32
  }): void;
32
33
  cancel(): void;
34
+ /** `canvas.viewbox.changing` fires before the change, and `changed` waits 300ms under `deferUpdate`. */
35
+ private relayoutAfterViewChange;
33
36
  /** Saves the open link edit (if any) as if focus had left the field; a rejected address is dropped. */
34
37
  commitActiveEdit(): void;
35
38
  getActiveEdit(): {
@@ -1 +1 @@
1
- {"version":3,"file":"WardleyLinkEditing.d.ts","sourceRoot":"","sources":["../../src/link-editing/WardleyLinkEditing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAErC,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AAEzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,eAAe,MAAM,gCAAgC,CAAC;AAmBlE,4DAA4D;AAC5D,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAExD;AAED,sGAAsG;AACtG,wBAAgB,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,GAAG,SAAS,CAM9D;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAkB;IAOnC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAR3B,MAAM,CAAC,OAAO,WAAyD;IAEvE,OAAO,CAAC,MAAM,CAA+B;gBAG3C,QAAQ,EAAE,QAAQ,EACD,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,QAAQ;IAQrC;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;IA0BjE,6FAA6F;IAC7F,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,IAAI;IAgFrE,MAAM,IAAI,IAAI;IAId,uGAAuG;IACvG,gBAAgB,IAAI,IAAI;IAIxB,aAAa,IAAI;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CAK7D"}
1
+ {"version":3,"file":"WardleyLinkEditing.d.ts","sourceRoot":"","sources":["../../src/link-editing/WardleyLinkEditing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAErC,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AAEzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,eAAe,MAAM,gCAAgC,CAAC;AAwBlE,4DAA4D;AAC5D,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAExD;AAED,sGAAsG;AACtG,wBAAgB,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,GAAG,SAAS,CAM9D;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAkB;IAQnC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAT3B,MAAM,CAAC,OAAO,WAAyD;IAEvE,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,eAAe,CAAS;gBAG9B,QAAQ,EAAE,QAAQ,EACD,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,QAAQ;IAerC;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;IA0BjE,6FAA6F;IAC7F,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,IAAI;IAyFrE,MAAM,IAAI,IAAI;IAId,wGAAwG;IACxG,OAAO,CAAC,uBAAuB;IAS/B,uGAAuG;IACvG,gBAAgB,IAAI,IAAI;IAIxB,aAAa,IAAI;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CAK7D"}
@@ -0,0 +1,36 @@
1
+ import { default as EventBus } from 'diagram-js/lib/core/EventBus';
2
+ import { WardleyMap } from '@miragon/wardley-schema-model';
3
+ import { default as WardleyExporter } from '../io/WardleyExporter.js';
4
+ /** The config fields a live preview changes: the plot size, the X-axis stage labels. */
5
+ export type PreviewedField = 'size' | 'evolutionLabels';
6
+ /**
7
+ * Fired before a command changes the document: `preExecute` for a command, `execute` for a redo
8
+ * (which skips `preExecute`), `revert` for an undo.
9
+ */
10
+ export declare const COMMAND_START_EVENTS: string[];
11
+ /** Ahead of the other listeners of these events; the command's handler runs after all of them. */
12
+ export declare const PUT_BACK_PRIORITY = 10000;
13
+ /**
14
+ * The document as it was committed while a live preview (a plot-resize drag, the size or the axis
15
+ * labels being typed into a popover) shows something else on the canvas. A host autosaves the
16
+ * export at any moment, also mid-drag, and must store the document, never the preview.
17
+ */
18
+ export default class LivePreview {
19
+ private readonly exporter;
20
+ static $inject: string[];
21
+ private committed;
22
+ private readonly previewed;
23
+ constructor(eventBus: EventBus, exporter: WardleyExporter);
24
+ /** Before a preview changes `field` on the canvas: keeps the document as it is now. */
25
+ begin(field: PreviewedField): void;
26
+ /**
27
+ * The canvas shows the committed `field` again (its preview was put back or is being
28
+ * committed). The preview of the other field may still be open and keeps its committed value.
29
+ */
30
+ end(field: PreviewedField): void;
31
+ /** The committed document while a preview is open, `undefined` while none is. */
32
+ committedMap(): WardleyMap | undefined;
33
+ private endAll;
34
+ private withCommittedFields;
35
+ }
36
+ //# sourceMappingURL=LivePreview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LivePreview.d.ts","sourceRoot":"","sources":["../../src/live-preview/LivePreview.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,EAAa,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,KAAK,eAAe,MAAM,0BAA0B,CAAC;AAE5D,wFAAwF;AACxF,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,iBAAiB,CAAC;AAExD;;;GAGG;AACH,eAAO,MAAM,oBAAoB,UAIhC,CAAC;AAEF,kGAAkG;AAClG,eAAO,MAAM,iBAAiB,QAAS,CAAC;AAExC;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,WAAW;IAQ5B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAP3B,MAAM,CAAC,OAAO,WAAmC;IAEjD,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;gBAGrD,QAAQ,EAAE,QAAQ,EACD,QAAQ,EAAE,eAAe;IAW5C,uFAAuF;IACvF,KAAK,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAKlC;;;OAGG;IACH,GAAG,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAKhC,iFAAiF;IACjF,YAAY,IAAI,UAAU,GAAG,SAAS;IAItC,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,mBAAmB;CAS5B"}
@@ -0,0 +1,5 @@
1
+ import { ModuleDeclaration } from 'didi';
2
+ /** The committed document behind a live preview (map size, axis labels). */
3
+ export declare const livePreviewModule: ModuleDeclaration;
4
+ export { default as LivePreview, COMMAND_START_EVENTS, PUT_BACK_PRIORITY } from './LivePreview.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/live-preview/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAG9C,4EAA4E;AAC5E,eAAO,MAAM,iBAAiB,EAAE,iBAE/B,CAAC;AAEF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -9,6 +9,7 @@ import { default as EvolutionGrid } from '../evolution-grid/EvolutionGrid.js';
9
9
  import { default as WardleyExporter } from '../io/WardleyExporter.js';
10
10
  import { RootBusinessObject } from '../io/index.js';
11
11
  import { default as WardleyElementFactory } from '../model/WardleyElementFactory.js';
12
+ import { LivePreview } from '../live-preview/index.js';
12
13
  export type WardleyRoot = Root & {
13
14
  businessObject?: RootBusinessObject;
14
15
  };
@@ -55,8 +56,9 @@ export default class MapProjection {
55
56
  private readonly exporter;
56
57
  private readonly layouter;
57
58
  private readonly eventBus;
59
+ private readonly livePreview;
58
60
  static $inject: string[];
59
- constructor(canvas: Canvas, elementRegistry: ElementRegistry, grid: EvolutionGrid, factory: WardleyElementFactory, exporter: WardleyExporter, layouter: BaseLayouter, eventBus: EventBus);
61
+ constructor(canvas: Canvas, elementRegistry: ElementRegistry, grid: EvolutionGrid, factory: WardleyElementFactory, exporter: WardleyExporter, layouter: BaseLayouter, eventBus: EventBus, livePreview: LivePreview);
60
62
  /** The Wardley root, or undefined before the first import. */
61
63
  root(): WardleyRoot | undefined;
62
64
  /** The normalized truth, read under the CURRENT grid (drawings keep px-relative points). */
@@ -70,10 +72,18 @@ export default class MapProjection {
70
72
  transient?: boolean;
71
73
  }): Element[];
72
74
  snapshot(): ProjectionSnapshot | undefined;
73
- /** Puts the map back exactly as it was when `snapshot` was taken. */
75
+ /**
76
+ * Puts the size and every element's geometry back exactly as they were when `snapshot` was
77
+ * taken. The rest of the root stays: an axis-label preview opened since then is no part of it.
78
+ */
74
79
  restore(snapshot: ProjectionSnapshot, options?: {
75
80
  transient?: boolean;
76
81
  }): Element[];
82
+ /**
83
+ * The live root with `size` set (removed when undefined), for a size preview; undefined before
84
+ * the first import.
85
+ */
86
+ withSize(size: MapSize | undefined): RootBusinessObject | undefined;
77
87
  /** `transient` marks a live preview that is not part of the document (yet). */
78
88
  private fireConfigChanged;
79
89
  /** Redraws elements changed outside the command stack (the live preview). */
@@ -1 +1 @@
1
- {"version":3,"file":"MapProjection.d.ts","sourceRoot":"","sources":["../../src/map-resize/MapProjection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MapProjection.d.ts","sourceRoot":"","sources":["../../src/map-resize/MapProjection.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,7 @@ export default class MapResizeHandles {
43
43
  private badge;
44
44
  private scale;
45
45
  constructor(eventBus: EventBus, canvas: Canvas, grid: EvolutionGrid, dragging: Dragging, projection: MapProjection, modeling: MapResizeModeling, injector: Injector);
46
+ private cancelPreviewingDrag;
46
47
  /** Starts a resize drag on `axis` (also usable programmatically, e.g. from tests). */
47
48
  start(event: MouseEvent, axis: ResizeAxis): void;
48
49
  private createHandle;
@@ -1 +1 @@
1
- {"version":3,"file":"MapResizeHandles.d.ts","sourceRoot":"","sources":["../../src/map-resize/MapResizeHandles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAErC,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,QAAQ,MAAM,2CAA2C,CAAC;AACtE,OAAO,EAKL,KAAK,OAAO,EAEb,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,aAAa,MAAM,oCAAoC,CAAC;AACpE,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AAGpD,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAcrD,MAAM,MAAM,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;AAwB1C,UAAU,YAAY;IACpB,mCAAmC;IACnC,eAAe,EAAE,OAAO,CAAC;IACzB,kDAAkD;IAClD,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,kGAAkG;AAClG,UAAU,iBAAiB;IACzB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;CAC5C;AA4BD;;;GAGG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,UAAU,EAChB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,IAAI,GAAE,YAAiE,GACtE,OAAO,CAkCT;AAED,qFAAqF;AACrF,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAK/C;AAED;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IAkBjC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAtB3B,MAAM,CAAC,OAAO,WAQZ;IAEF,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,KAAK,CAAqB;gBAGhC,QAAQ,EAAE,QAAQ,EACD,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,aAAa,EACzB,QAAQ,EAAE,iBAAiB,EAC3B,QAAQ,EAAE,QAAQ;IA8BrC,sFAAsF;IACtF,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAUhD,OAAO,CAAC,YAAY;IAyBpB,OAAO,CAAC,MAAM;IA8Cd,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,OAAO;IASf,OAAO,CAAC,MAAM;IAmBd,OAAO,CAAC,KAAK;IAYb,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,SAAS;IAiBjB,OAAO,CAAC,SAAS;CAGlB"}
1
+ {"version":3,"file":"MapResizeHandles.d.ts","sourceRoot":"","sources":["../../src/map-resize/MapResizeHandles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAErC,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,QAAQ,MAAM,2CAA2C,CAAC;AACtE,OAAO,EAKL,KAAK,OAAO,EAEb,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,aAAa,MAAM,oCAAoC,CAAC;AACpE,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AAIpD,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAcrD,MAAM,MAAM,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;AAwB1C,UAAU,YAAY;IACpB,mCAAmC;IACnC,eAAe,EAAE,OAAO,CAAC;IACzB,kDAAkD;IAClD,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,kGAAkG;AAClG,UAAU,iBAAiB;IACzB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;CAC5C;AA4BD;;;GAGG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,UAAU,EAChB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,IAAI,GAAE,YAAiE,GACtE,OAAO,CAkCT;AAED,qFAAqF;AACrF,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAK/C;AAED;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IAkBjC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAtB3B,MAAM,CAAC,OAAO,WAQZ;IAEF,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,KAAK,CAAqB;gBAGhC,QAAQ,EAAE,QAAQ,EACD,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,aAAa,EACzB,QAAQ,EAAE,iBAAiB,EAC3B,QAAQ,EAAE,QAAQ;IAkCrC,OAAO,CAAC,oBAAoB;IAU5B,sFAAsF;IACtF,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAUhD,OAAO,CAAC,YAAY;IAyBpB,OAAO,CAAC,MAAM;IA8Cd,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,OAAO;IASf,OAAO,CAAC,MAAM;IAiBd,OAAO,CAAC,KAAK;IAYb,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,SAAS;IAiBjB,OAAO,CAAC,SAAS;CAGlB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/map-resize/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAK9C,gGAAgG;AAChG,eAAO,MAAM,mBAAmB,EAAE,iBAEjC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,iBAI7B,CAAC;AAEF,OAAO,EACL,OAAO,IAAI,gBAAgB,EAC3B,iBAAiB,EACjB,WAAW,EACX,SAAS,GACV,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,OAAO,IAAI,aAAa,EACxB,cAAc,EACd,wBAAwB,EACxB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/map-resize/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAM9C,gGAAgG;AAChG,eAAO,MAAM,mBAAmB,EAAE,iBAGjC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,iBAI7B,CAAC;AAEF,OAAO,EACL,OAAO,IAAI,gBAAgB,EAC3B,iBAAiB,EACjB,WAAW,EACX,SAAS,GACV,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,OAAO,IAAI,aAAa,EACxB,cAAc,EACd,wBAAwB,EACxB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -14,7 +14,9 @@ type Bounds = {
14
14
  * After every move we pull the visible area back so it stays close to the map,
15
15
  * leaving only a small margin of empty space around it. "The map" is the plot plus any content
16
16
  * reaching beyond it (long labels at the commodity edge, notes in the margin): `contentBounds()`,
17
- * which hosts also fit the view to.
17
+ * which hosts also fit the view to. With the insets of a host's chrome (`freeArea: { insets }`)
18
+ * the margin is measured inside the free rectangle, so the map never slips under the chrome, and a
19
+ * view the host or the import fitted there, to the content or to the plot, is left alone.
18
20
  */
19
21
  export default class PanConstraint {
20
22
  private readonly canvas;
@@ -32,8 +34,8 @@ export default class PanConstraint {
32
34
  * padding): what a host fits the view to.
33
35
  */
34
36
  contentBounds(): Bounds;
35
- /** The margins around the content the view may show, in diagram px at the view's scale. */
36
- private pads;
37
+ /** The host's free rectangle along both axes at the view's scale, if the host reports one. */
38
+ private freeArea;
37
39
  private constrain;
38
40
  }
39
41
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"PanConstraint.d.ts","sourceRoot":"","sources":["../../src/pan-constraint/PanConstraint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,KAAK,aAAa,MAAM,oCAAoC,CAAC;AAwBpE,KAAK,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAgCtE;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,OAAO,aAAa;IAY9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAZvB,MAAM,CAAC,OAAO,WAAuD;IAErE,OAAO,CAAC,QAAQ,CAAS;IACzB,wFAAwF;IACxF,OAAO,CAAC,QAAQ,CAAqB;IACrC,iFAAiF;IACjF,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;gBAGzC,QAAQ,EAAE,QAAQ,EACD,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,aAAa,EACpC,QAAQ,EAAE,QAAQ;IA4BpB;;;OAGG;IACH,aAAa,IAAI,MAAM;IAKvB,2FAA2F;IAC3F,OAAO,CAAC,IAAI;IAcZ,OAAO,CAAC,SAAS;CAyClB"}
1
+ {"version":3,"file":"PanConstraint.d.ts","sourceRoot":"","sources":["../../src/pan-constraint/PanConstraint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,KAAK,aAAa,MAAM,oCAAoC,CAAC;AAiCpE,KAAK,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAwEtE;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,OAAO,aAAa;IAY9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAZvB,MAAM,CAAC,OAAO,WAAuD;IAErE,OAAO,CAAC,QAAQ,CAAS;IACzB,wFAAwF;IACxF,OAAO,CAAC,QAAQ,CAAqB;IACrC,iFAAiF;IACjF,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;gBAGzC,QAAQ,EAAE,QAAQ,EACD,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,aAAa,EACpC,QAAQ,EAAE,QAAQ;IA4BpB;;;OAGG;IACH,aAAa,IAAI,MAAM;IAKvB,8FAA8F;IAC9F,OAAO,CAAC,QAAQ;IAiBhB,OAAO,CAAC,SAAS;CA6DlB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@miragon/wardley-renderer",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "Render and display Wardley maps in the browser, with a viewer and modeler built on diagram-js.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -36,7 +36,7 @@
36
36
  "test:browser": "npm --prefix ../.. run test:browser"
37
37
  },
38
38
  "dependencies": {
39
- "@miragon/modeler-api": "1.1.0",
39
+ "@miragon/modeler-api": "1.2.0",
40
40
  "@miragon/wardley-dsl": "0.7.0",
41
41
  "@miragon/wardley-schema-model": "0.6.0",
42
42
  "clsx": "2.1.1"
@@ -50,7 +50,7 @@
50
50
  "devDependencies": {
51
51
  "diagram-js": "15.28.1",
52
52
  "didi": "12.0.0",
53
- "jsdom": "30.1.2",
53
+ "jsdom": "30.1.3",
54
54
  "tiny-svg": "4.1.4",
55
55
  "typescript": "6.0.3",
56
56
  "vite": "8.3.4",