@miragon/wardley-renderer 0.7.0 → 0.8.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 (81) hide show
  1. package/README.md +109 -15
  2. package/dist/Modeler.d.ts.map +1 -1
  3. package/dist/NavigatedViewer.d.ts.map +1 -1
  4. package/dist/WardleyBaseViewer.d.ts +26 -6
  5. package/dist/WardleyBaseViewer.d.ts.map +1 -1
  6. package/dist/collaborative/CollaborativeWardley.d.ts +27 -0
  7. package/dist/collaborative/CollaborativeWardley.d.ts.map +1 -0
  8. package/dist/collaborative/index.d.ts +2 -0
  9. package/dist/collaborative/index.d.ts.map +1 -0
  10. package/dist/color-picker/WardleyColorPicker.d.ts +3 -1
  11. package/dist/color-picker/WardleyColorPicker.d.ts.map +1 -1
  12. package/dist/context-pad/WardleyContextPadProvider.d.ts.map +1 -1
  13. package/dist/draw/deprecated-icons.d.ts +35 -0
  14. package/dist/draw/deprecated-icons.d.ts.map +1 -0
  15. package/dist/draw/icons.d.ts +0 -24
  16. package/dist/draw/icons.d.ts.map +1 -1
  17. package/dist/draw/palette-icons.d.ts.map +1 -1
  18. package/dist/draw/styles.d.ts.map +1 -1
  19. package/dist/draw-tool/WardleyDrawTool.d.ts +3 -1
  20. package/dist/draw-tool/WardleyDrawTool.d.ts.map +1 -1
  21. package/dist/draw-tool/WardleyDrawingHandles.d.ts +3 -1
  22. package/dist/draw-tool/WardleyDrawingHandles.d.ts.map +1 -1
  23. package/dist/editor-state.d.ts +12 -2
  24. package/dist/editor-state.d.ts.map +1 -1
  25. package/dist/evolve/WardleyEvolveDragging.d.ts +3 -1
  26. package/dist/evolve/WardleyEvolveDragging.d.ts.map +1 -1
  27. package/dist/free-rect/FreeRect.d.ts +34 -0
  28. package/dist/free-rect/FreeRect.d.ts.map +1 -0
  29. package/dist/free-rect/index.d.ts +6 -0
  30. package/dist/free-rect/index.d.ts.map +1 -0
  31. package/dist/index.d.ts +10 -3
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +2060 -1156
  34. package/dist/index.js.map +1 -1
  35. package/dist/io/saveSvg.d.ts.map +1 -1
  36. package/dist/keyboard/WardleyKeyboard.d.ts +7 -4
  37. package/dist/keyboard/WardleyKeyboard.d.ts.map +1 -1
  38. package/dist/label-drag/WardleyLabelDragging.d.ts +3 -1
  39. package/dist/label-drag/WardleyLabelDragging.d.ts.map +1 -1
  40. package/dist/label-editing/WardleyLabelEditing.d.ts +1 -0
  41. package/dist/label-editing/WardleyLabelEditing.d.ts.map +1 -1
  42. package/dist/link-editing/WardleyLinkEditing.d.ts +3 -1
  43. package/dist/link-editing/WardleyLinkEditing.d.ts.map +1 -1
  44. package/dist/map-menu/AxisLabelsPopover.d.ts +10 -0
  45. package/dist/map-menu/AxisLabelsPopover.d.ts.map +1 -0
  46. package/dist/map-menu/MapSizePopover.d.ts +10 -0
  47. package/dist/map-menu/MapSizePopover.d.ts.map +1 -0
  48. package/dist/map-menu/ShortcutsDialog.d.ts +14 -0
  49. package/dist/map-menu/ShortcutsDialog.d.ts.map +1 -0
  50. package/dist/map-menu/TitleDialog.d.ts +12 -0
  51. package/dist/map-menu/TitleDialog.d.ts.map +1 -0
  52. package/dist/map-menu/dialog.d.ts +41 -0
  53. package/dist/map-menu/dialog.d.ts.map +1 -0
  54. package/dist/map-menu/dom.d.ts +9 -0
  55. package/dist/map-menu/dom.d.ts.map +1 -0
  56. package/dist/map-menu/index.d.ts +14 -0
  57. package/dist/map-menu/index.d.ts.map +1 -0
  58. package/dist/map-menu/menu.d.ts +68 -0
  59. package/dist/map-menu/menu.d.ts.map +1 -0
  60. package/dist/map-menu/popover.d.ts +52 -0
  61. package/dist/map-menu/popover.d.ts.map +1 -0
  62. package/dist/map-menu/shortcuts.d.ts +48 -0
  63. package/dist/map-menu/shortcuts.d.ts.map +1 -0
  64. package/dist/map-resize/MapResizeHandles.d.ts +3 -1
  65. package/dist/map-resize/MapResizeHandles.d.ts.map +1 -1
  66. package/dist/palette/WardleyPaletteKeyboard.d.ts +4 -2
  67. package/dist/palette/WardleyPaletteKeyboard.d.ts.map +1 -1
  68. package/dist/palette/WardleyPaletteProvider.d.ts +10 -6
  69. package/dist/palette/WardleyPaletteProvider.d.ts.map +1 -1
  70. package/dist/pan-constraint/PanConstraint.d.ts +20 -6
  71. package/dist/pan-constraint/PanConstraint.d.ts.map +1 -1
  72. package/dist/read-only/WardleyReadOnly.d.ts +27 -0
  73. package/dist/read-only/WardleyReadOnly.d.ts.map +1 -0
  74. package/dist/read-only/index.d.ts +7 -0
  75. package/dist/read-only/index.d.ts.map +1 -0
  76. package/dist/theme/index.d.ts +1 -1
  77. package/dist/theme/index.d.ts.map +1 -1
  78. package/dist/theme/palette.d.ts +22 -36
  79. package/dist/theme/palette.d.ts.map +1 -1
  80. package/dist/wardley.css +1 -1
  81. package/package.json +5 -4
@@ -1 +1 @@
1
- {"version":3,"file":"saveSvg.d.ts","sourceRoot":"","sources":["../../src/io/saveSvg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AAGrD,MAAM,WAAW,SAAS;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAyC3E"}
1
+ {"version":3,"file":"saveSvg.d.ts","sourceRoot":"","sources":["../../src/io/saveSvg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AAGrD,MAAM,WAAW,SAAS;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CA0C3E"}
@@ -22,9 +22,11 @@ export interface WardleyKeyboardConfig {
22
22
  * Decides whether a keydown belongs to the host page rather than the canvas. Canvas shortcuts
23
23
  * only run when focus is on the canvas, the palette, or nowhere in particular (body) — so a
24
24
  * focused host button or select never deletes or nudges map elements. A focused plain button
25
- * (zoom, share, menu) still lets undo/redo and the single-key tools through.
25
+ * (zoom, share, menu) still lets undo/redo and the single-key tools through, unless the host's
26
+ * chrome owns every key aimed at it (`canvasTargetsOnly`, the Miragon modeler shell: its zoom
27
+ * panel's buttons do not stop the keys they leave alone).
26
28
  */
27
- export declare function shouldIgnoreKeyEvent(event: KeyboardEvent, canvasContainer: HTMLElement): boolean;
29
+ export declare function shouldIgnoreKeyEvent(event: KeyboardEvent, canvasContainer: HTMLElement, canvasTargetsOnly?: boolean): boolean;
28
30
  /**
29
31
  * Keyboard binding: undo/redo, delete, copy/paste/duplicate, arrow-key nudge, Escape (deselect),
30
32
  * Cmd/Ctrl+A (select all), the single-key tools C (component), U (user), N (note), P (pipeline),
@@ -43,11 +45,12 @@ export default class WardleyKeyboard {
43
45
  private pointerOverCanvas;
44
46
  private readonly labelEditing;
45
47
  private readonly grid;
48
+ private readonly freeRect;
46
49
  constructor(canvas: Canvas, commandStack: CommandStack, selection: Selection, modeling: Modeling, copyPaste: WardleyCopyPaste, factory: WardleyElementFactory, create: Create, mouse: Mouse, lassoTool: LassoTool, eventBus: EventBus, elementRegistry: ElementRegistry, injector: Injector, config: WardleyKeyboardConfig | undefined);
47
50
  /**
48
51
  * With the pointer over the canvas the new node attaches to it (like palette create; placing it
49
- * opens the name editor). Without one — keyboard only — it lands at the visible plot centre and
50
- * the name editor opens right away.
52
+ * opens the name editor). Without one — keyboard only — it lands in the centre of the free
53
+ * rectangle (within the plot) and the name editor opens right away.
51
54
  */
52
55
  private quickCreate;
53
56
  private insetPlotBounds;
@@ -1 +1 @@
1
- {"version":3,"file":"WardleyKeyboard.d.ts","sourceRoot":"","sources":["../../src/keyboard/WardleyKeyboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,YAAY,MAAM,qCAAqC,CAAC;AACpE,OAAO,KAAK,eAAe,MAAM,qCAAqC,CAAC;AACvE,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AAEzD,OAAO,KAAK,MAAM,MAAM,uCAAuC,CAAC;AAEhE,OAAO,KAAK,SAAS,MAAM,8CAA8C,CAAC;AAC1E,OAAO,KAAK,KAAK,MAAM,qCAAqC,CAAC;AAG7D,OAAO,KAAK,SAAS,MAAM,6CAA6C,CAAC;AACzE,OAAO,KAAK,QAAQ,MAAM,2CAA2C,CAAC;AAEtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,KAAK,gBAAgB,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,qBAAqB,MAAM,mCAAmC,CAAC;AAW3E,oEAAoE;AACpE,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAsED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,GAAG,OAAO,CAWhG;AAED;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAsBhC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAEzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAGtB,OAAO,CAAC,QAAQ,CAAC,eAAe;IA/BlC,MAAM,CAAC,OAAO,WAcZ;IAEF,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuB;gBAGzB,MAAM,EAAE,MAAM,EAC/B,YAAY,EAAE,YAAY,EACT,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EACnC,SAAS,EAAE,gBAAgB,EACV,OAAO,EAAE,qBAAqB,EAC9B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EAC7B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EACD,eAAe,EAAE,eAAe,EACjD,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,qBAAqB,GAAG,SAAS;IAkJ3C;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,YAAY;IAsBpB,OAAO,CAAC,mBAAmB;IAK3B,iGAAiG;IACjG,OAAO,CAAC,cAAc;CAUvB"}
1
+ {"version":3,"file":"WardleyKeyboard.d.ts","sourceRoot":"","sources":["../../src/keyboard/WardleyKeyboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,YAAY,MAAM,qCAAqC,CAAC;AACpE,OAAO,KAAK,eAAe,MAAM,qCAAqC,CAAC;AACvE,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AAEzD,OAAO,KAAK,MAAM,MAAM,uCAAuC,CAAC;AAEhE,OAAO,KAAK,SAAS,MAAM,8CAA8C,CAAC;AAC1E,OAAO,KAAK,KAAK,MAAM,qCAAqC,CAAC;AAG7D,OAAO,KAAK,SAAS,MAAM,6CAA6C,CAAC;AACzE,OAAO,KAAK,QAAQ,MAAM,2CAA2C,CAAC;AAEtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,KAAK,gBAAgB,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,qBAAqB,MAAM,mCAAmC,CAAC;AAa3E,oEAAoE;AACpE,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAsED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,aAAa,EACpB,eAAe,EAAE,WAAW,EAC5B,iBAAiB,UAAQ,GACxB,OAAO,CAYT;AAED;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAuBhC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAEzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAGtB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAhClC,MAAM,CAAC,OAAO,WAcZ;IAEF,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;gBAGxB,MAAM,EAAE,MAAM,EAC/B,YAAY,EAAE,YAAY,EACT,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EACnC,SAAS,EAAE,gBAAgB,EACV,OAAO,EAAE,qBAAqB,EAC9B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EAC7B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EACD,eAAe,EAAE,eAAe,EACjD,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,qBAAqB,GAAG,SAAS;IAwJ3C;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,YAAY;IAsBpB,OAAO,CAAC,mBAAmB;IAK3B,iGAAiG;IACjG,OAAO,CAAC,cAAc;CAUvB"}
@@ -1,4 +1,5 @@
1
1
  import { default as Canvas } from 'diagram-js/lib/core/Canvas';
2
+ import { Injector } from 'didi';
2
3
  import { default as EventBus } from 'diagram-js/lib/core/EventBus';
3
4
  import { default as ElementRegistry } from 'diagram-js/lib/core/ElementRegistry';
4
5
  import { default as Selection } from 'diagram-js/lib/features/selection/Selection';
@@ -22,9 +23,10 @@ export default class WardleyLabelDragging {
22
23
  private readonly modeling;
23
24
  private readonly selection;
24
25
  private readonly grid;
26
+ private readonly injector;
25
27
  static $inject: string[];
26
28
  private active;
27
- constructor(eventBus: EventBus, canvas: Canvas, elementRegistry: ElementRegistry, modeling: WardleyModeling, selection: Selection, grid: EvolutionGrid);
29
+ constructor(eventBus: EventBus, canvas: Canvas, elementRegistry: ElementRegistry, modeling: WardleyModeling, selection: Selection, grid: EvolutionGrid, injector: Injector);
28
30
  /** Puts a label back into its default slot (undoable). */
29
31
  resetLabelOffset(shape: WardleyShape, role?: LabelRole): void;
30
32
  private readonly onMouseDown;
@@ -1 +1 @@
1
- {"version":3,"file":"WardleyLabelDragging.d.ts","sourceRoot":"","sources":["../../src/label-drag/WardleyLabelDragging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,eAAe,MAAM,qCAAqC,CAAC;AACvE,OAAO,KAAK,SAAS,MAAM,6CAA6C,CAAC;AAEzE,OAAO,KAAK,aAAa,MAAM,oCAAoC,CAAC;AACpE,OAAO,KAAK,eAAe,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAczE,yFAAyF;AACzF,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,UAAU,CAAC;AAsB5C;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAoB;IAarC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI;IAjBvB,MAAM,CAAC,OAAO,WAOZ;IAEF,OAAO,CAAC,MAAM,CAA0B;gBAGrB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,aAAa;IAmBtC,0DAA0D;IAC1D,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,GAAE,SAAkB,GAAG,IAAI;IAQrE,OAAO,CAAC,QAAQ,CAAC,WAAW,CA4B1B;IAEF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAe1B;IAEF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAgBxB;IAEF,+EAA+E;IAC/E,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAIxB;IAEF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAO5B;IAEF,OAAO,CAAC,MAAM;IAId,gGAAgG;IAChG,OAAO,CAAC,MAAM;IAgBd,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,oBAAoB;IAS5B;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAUtB,6EAA6E;IAC7E,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,WAAW;IAiBnB,+FAA+F;IAC/F,OAAO,CAAC,cAAc;CAIvB"}
1
+ {"version":3,"file":"WardleyLabelDragging.d.ts","sourceRoot":"","sources":["../../src/label-drag/WardleyLabelDragging.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;AACzD,OAAO,KAAK,eAAe,MAAM,qCAAqC,CAAC;AACvE,OAAO,KAAK,SAAS,MAAM,6CAA6C,CAAC;AAEzE,OAAO,KAAK,aAAa,MAAM,oCAAoC,CAAC;AACpE,OAAO,KAAK,eAAe,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAczE,yFAAyF;AACzF,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,UAAU,CAAC;AAsB5C;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAoB;IAcrC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAnB3B,MAAM,CAAC,OAAO,WAQZ;IAEF,OAAO,CAAC,MAAM,CAA0B;gBAGrB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE,QAAQ;IAmBrC,0DAA0D;IAC1D,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,GAAE,SAAkB,GAAG,IAAI;IAQrE,OAAO,CAAC,QAAQ,CAAC,WAAW,CA6B1B;IAEF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAe1B;IAEF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAgBxB;IAEF,+EAA+E;IAC/E,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAIxB;IAEF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAO5B;IAEF,OAAO,CAAC,MAAM;IAId,gGAAgG;IAChG,OAAO,CAAC,MAAM;IAgBd,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,oBAAoB;IAS5B;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAUtB,6EAA6E;IAC7E,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,WAAW;IAiBnB,+FAA+F;IAC/F,OAAO,CAAC,cAAc;CAIvB"}
@@ -49,6 +49,7 @@ export default class WardleyLabelEditing {
49
49
  private active;
50
50
  private readonly contextPad;
51
51
  private readonly selection;
52
+ private readonly locked;
52
53
  constructor(eventBus: EventBus, canvas: Canvas, modeling: WardleyModeling, factory: WardleyElementFactory, injector: Injector);
53
54
  /** Opens the in-place name editor for `element` (no-op for regions and drawings). */
54
55
  activate(element: WardleyShape, options?: ActivateOptions): void;
@@ -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;AAsB3E,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;IAQpC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAV1B,MAAM,CAAC,OAAO,WAAkF;IAEhG,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;gBAG1B,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,qBAAqB,EAC/C,QAAQ,EAAE,QAAQ;IAqBpB,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;IAsEhF,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;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,4 +1,5 @@
1
1
  import { default as Canvas } from 'diagram-js/lib/core/Canvas';
2
+ import { Injector } from 'didi';
2
3
  import { default as EventBus } from 'diagram-js/lib/core/EventBus';
3
4
  import { WardleyShape } from '../model/di-types.js';
4
5
  import { default as WardleyModeling } from '../modeling/WardleyModeling.js';
@@ -14,9 +15,10 @@ export declare function linkOf(shape: WardleyShape): string | undefined;
14
15
  export default class WardleyLinkEditing {
15
16
  private readonly canvas;
16
17
  private readonly modeling;
18
+ private readonly injector;
17
19
  static $inject: string[];
18
20
  private active;
19
- constructor(eventBus: EventBus, canvas: Canvas, modeling: WardleyModeling);
21
+ constructor(eventBus: EventBus, canvas: Canvas, modeling: WardleyModeling, injector: Injector);
20
22
  /**
21
23
  * Sets (or with an empty value removes) the link. Returns false when the address is not allowed.
22
24
  * The exporter reads the link from the businessObject, which palette-created shapes do not have
@@ -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,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;IAP3B,MAAM,CAAC,OAAO,WAA6C;IAE3D,OAAO,CAAC,MAAM,CAA+B;gBAG3C,QAAQ,EAAE,QAAQ,EACD,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,eAAe;IAQ5C;;;;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;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"}
@@ -0,0 +1,10 @@
1
+ import { Modeler } from '../Modeler.js';
2
+ import { PopoverChrome, PopoverHandle } from './popover.js';
3
+ /**
4
+ * "X-axis labels…" (guide §5.4): a preset or four free stage names. Typing previews on the axis
5
+ * without touching the document; closing commits ONE edit, so the document gets one change and
6
+ * an IDE one undo step per session. An import while it is open closes it without committing, and
7
+ * so does a canvas that turns read-only, after putting the previous labels back.
8
+ */
9
+ export declare function createAxisLabelsPopover(chrome: PopoverChrome, modeler: Modeler): PopoverHandle;
10
+ //# sourceMappingURL=AxisLabelsPopover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AxisLabelsPopover.d.ts","sourceRoot":"","sources":["../../src/map-menu/AxisLabelsPopover.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,aAAa,EACnB,MAAM,cAAc,CAAC;AAWtB;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,GAAG,aAAa,CAuF9F"}
@@ -0,0 +1,10 @@
1
+ import { Modeler } from '../Modeler.js';
2
+ import { PopoverChrome, PopoverHandle } from './popover.js';
3
+ /**
4
+ * "Map size…" (guide §5.4): presets, a custom width × height and a reset to the default size. Every
5
+ * choice is drawn at once as a preview without an undo step; closing writes ONE edit (none when the
6
+ * map ends at the size it had). An import while it is open closes it without writing, and so does
7
+ * a canvas that turns read-only, after putting the previous size back.
8
+ */
9
+ export declare function createMapSizePopover(chrome: PopoverChrome, modeler: Modeler): PopoverHandle;
10
+ //# sourceMappingURL=MapSizePopover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MapSizePopover.d.ts","sourceRoot":"","sources":["../../src/map-menu/MapSizePopover.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAI7C,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,aAAa,EACnB,MAAM,cAAc,CAAC;AAiBtB;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,GAAG,aAAa,CA+F3F"}
@@ -0,0 +1,14 @@
1
+ import { DialogChrome, MapDialog } from './dialog.js';
2
+ import { MapShortcutOptions, ShortcutsChrome } from './shortcuts.js';
3
+ /** What the dialog needs of the chrome around the map; a `@miragon/modeler-shell` handle fits. */
4
+ export interface ShortcutsDialogChrome extends ShortcutsChrome, DialogChrome {
5
+ readonly messages: ShortcutsChrome['messages'] & DialogChrome['messages'];
6
+ }
7
+ export type ShortcutsDialog = MapDialog;
8
+ /**
9
+ * The "Keyboard shortcuts…" dialog of the Help group (guide §5.4, §8): one table per group, the
10
+ * keys as chips like the chrome tooltip's. A web app that binds keys of its own (Open…, the map
11
+ * file's export, `?`) passes them in `options`, so the dialog lists them as well.
12
+ */
13
+ export declare function createShortcutsDialog(chrome: ShortcutsDialogChrome, options?: MapShortcutOptions): ShortcutsDialog;
14
+ //# sourceMappingURL=ShortcutsDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShortcutsDialog.d.ts","sourceRoot":"","sources":["../../src/map-menu/ShortcutsDialog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAEjF,OAAO,EAEL,KAAK,kBAAkB,EAEvB,KAAK,eAAe,EACrB,MAAM,gBAAgB,CAAC;AAIxB,kGAAkG;AAClG,MAAM,WAAW,qBAAsB,SAAQ,eAAe,EAAE,YAAY;IAC1E,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;CAC3E;AAED,MAAM,MAAM,eAAe,GAAG,SAAS,CAAC;AAqBxC;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,qBAAqB,EAC7B,OAAO,GAAE,kBAAuB,GAC/B,eAAe,CAejB"}
@@ -0,0 +1,12 @@
1
+ import { Modeler } from '../Modeler.js';
2
+ import { DialogChrome, MapDialog } from './dialog.js';
3
+ export type TitleDialogChrome = DialogChrome;
4
+ export type TitleDialog = MapDialog;
5
+ /**
6
+ * The "Map title…" dialog of the Model group: guide §5.4 keeps form fields out of the menu, so the
7
+ * entry opens a dialog (§8) with the title field, Cancel and Apply. Enter applies, Escape and
8
+ * Cancel keep the title; an unchanged title writes nothing, so the map's history gets no empty
9
+ * step. A canvas that turns read-only closes it without writing, as it locks the entry.
10
+ */
11
+ export declare function createTitleDialog(chrome: TitleDialogChrome, modeler: Modeler): TitleDialog;
12
+ //# sourceMappingURL=TitleDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TitleDialog.d.ts","sourceRoot":"","sources":["../../src/map-menu/TitleDialog.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAiC,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAG/F,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAC7C,MAAM,MAAM,WAAW,GAAG,SAAS,CAAC;AAMpC;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,GAAG,WAAW,CA0D1F"}
@@ -0,0 +1,41 @@
1
+ /** What a dialog needs of the chrome around the map; a `@miragon/modeler-shell` handle fits. */
2
+ export interface DialogChrome {
3
+ /** Where the dialog lives (the shell root), so it shares the chrome's mode and fonts. */
4
+ readonly root: HTMLElement;
5
+ readonly messages: {
6
+ readonly close: string;
7
+ };
8
+ /** The control the focus returns to once the dialog closes. */
9
+ readonly menu: {
10
+ readonly trigger: HTMLElement;
11
+ };
12
+ }
13
+ export interface MapDialog {
14
+ open(): void;
15
+ isOpen(): boolean;
16
+ close(): void;
17
+ destroy(): void;
18
+ }
19
+ export interface MapDialogParts {
20
+ /** Class of the `<dialog>` next to `wardley-dialog`, for the dialog's own rules. */
21
+ readonly className: string;
22
+ readonly title: string;
23
+ /** The parts below the header (body, footer), built once on the first open. */
24
+ content(close: () => void): Node[];
25
+ /** Runs before every open, while the dialog is still closed. */
26
+ beforeOpen?(): void;
27
+ /** Runs after every open, once the dialog shows and holds the focus. */
28
+ afterOpen?(): void;
29
+ /** Runs after every close, before the focus goes back. */
30
+ afterClose?(): void;
31
+ }
32
+ /** A footer button of guide §8: primary (the confirming action), secondary or ghost. */
33
+ export declare function dialogButton(label: string, variant: 'primary' | 'secondary' | 'ghost'): HTMLButtonElement;
34
+ /**
35
+ * A dialog of the map's chrome (guide §8, "Modeler dialogs" of the shell's API): a native modal
36
+ * <dialog> inside the chrome's root, so the browser keeps the focus inside it and closes it on
37
+ * Escape. Built on the first open and kept (closed) afterwards; `destroy()` removes it. The host
38
+ * calls it with the diagram's teardown, since the chrome removes only what it added itself.
39
+ */
40
+ export declare function createMapDialog(chrome: DialogChrome, parts: MapDialogParts): MapDialog;
41
+ //# sourceMappingURL=dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../src/map-menu/dialog.ts"],"names":[],"mappings":"AAEA,gGAAgG;AAChG,MAAM,WAAW,YAAY;IAC3B,yFAAyF;IACzF,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAA;KAAE,CAAC;CAClD;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,IAAI,IAAI,CAAC;IACb,MAAM,IAAI,OAAO,CAAC;IAClB,KAAK,IAAI,IAAI,CAAC;IACd,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,oFAAoF;IACpF,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,+EAA+E;IAC/E,OAAO,CAAC,KAAK,EAAE,MAAM,IAAI,GAAG,IAAI,EAAE,CAAC;IACnC,gEAAgE;IAChE,UAAU,CAAC,IAAI,IAAI,CAAC;IACpB,wEAAwE;IACxE,SAAS,CAAC,IAAI,IAAI,CAAC;IACnB,0DAA0D;IAC1D,UAAU,CAAC,IAAI,IAAI,CAAC;CACrB;AAED,wFAAwF;AACxF,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,GACzC,iBAAiB,CAKnB;AAoBD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,GAAG,SAAS,CA8CtF"}
@@ -0,0 +1,9 @@
1
+ /*! @miragon/wardley-renderer icon geometry: x. Lucide (lucide-static 1.59.0) @license ISC
2
+ * Copyright (c) 2026 Lucide Icons and Contributors
3
+ * Derived from Feather @license MIT, Copyright (c) 2013-present Cole Bemis
4
+ * Full notices: README.md of @miragon/wardley-renderer */
5
+ /** Lucide `x` (lucide-static 1.59.0, ISC; derived from Feather, MIT) at the chrome size of §5.14. */
6
+ export declare const CLOSE_ICON = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/></svg>";
7
+ export declare function element<K extends keyof HTMLElementTagNameMap>(tag: K, className: string, text?: string): HTMLElementTagNameMap[K];
8
+ export declare function uniqueId(prefix: string): string;
9
+ //# sourceMappingURL=dom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../src/map-menu/dom.ts"],"names":[],"mappings":"AAAA;;;0DAG0D;AAC1D,qGAAqG;AACrG,eAAO,MAAM,UAAU,6SAC2P,CAAC;AAEnR,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,qBAAqB,EAC3D,GAAG,EAAE,CAAC,EACN,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,MAAM,GACZ,qBAAqB,CAAC,CAAC,CAAC,CAK1B;AAID,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAG/C"}
@@ -0,0 +1,14 @@
1
+ export { mapMenu, EXPORT_LABELS } from './menu.js';
2
+ export type { MapExport, MapExports, MapMenu, MapMenuAction, MapMenuActions, MapMenuDialog, MapMenuEntry, MapMenuIcon, } from './menu.js';
3
+ export { mapShortcuts } from './shortcuts.js';
4
+ export type { MapShortcutOptions, ShortcutGroup, ShortcutKeyNames, ShortcutPlatform, ShortcutRow, ShortcutsChrome, } from './shortcuts.js';
5
+ export { createMapDialog, dialogButton } from './dialog.js';
6
+ export type { DialogChrome, MapDialog, MapDialogParts } from './dialog.js';
7
+ export { createShortcutsDialog } from './ShortcutsDialog.js';
8
+ export type { ShortcutsDialog, ShortcutsDialogChrome } from './ShortcutsDialog.js';
9
+ export { createTitleDialog } from './TitleDialog.js';
10
+ export type { TitleDialog, TitleDialogChrome } from './TitleDialog.js';
11
+ export { createMapSizePopover } from './MapSizePopover.js';
12
+ export { createAxisLabelsPopover } from './AxisLabelsPopover.js';
13
+ export type { PopoverChrome, PopoverHandle } from './popover.js';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/map-menu/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACnD,YAAY,EACV,SAAS,EACT,UAAU,EACV,OAAO,EACP,aAAa,EACb,cAAc,EACd,aAAa,EACb,YAAY,EACZ,WAAW,GACZ,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EACV,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,eAAe,GAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC5D,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,YAAY,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,68 @@
1
+ /** The icons the guide gives these entries (guide §5.14, the shell's common set). */
2
+ export type MapMenuIcon = 'file-image' | 'file-code-corner' | 'keyboard';
3
+ interface MapMenuItem {
4
+ readonly id: string;
5
+ readonly label: string;
6
+ readonly icon?: MapMenuIcon;
7
+ readonly keepEnabledWhenReadOnly?: boolean;
8
+ }
9
+ export interface MapMenuAction extends MapMenuItem {
10
+ readonly kind: 'action';
11
+ readonly shortcut?: string;
12
+ onSelect(): void;
13
+ }
14
+ export interface MapMenuDialog extends MapMenuItem {
15
+ readonly kind: 'dialog';
16
+ /** The chip of a key that opens the dialog as well, e.g. "?". */
17
+ readonly shortcut?: string;
18
+ onSelect(): void;
19
+ }
20
+ export type MapMenuEntry = MapMenuAction | MapMenuDialog;
21
+ export interface MapMenu {
22
+ readonly model: readonly MapMenuEntry[];
23
+ readonly export: readonly MapMenuEntry[];
24
+ readonly help: readonly MapMenuEntry[];
25
+ }
26
+ export interface MapExport {
27
+ onSelect(): void;
28
+ /** The chip of an app key that runs the same export, e.g. "⌘S". */
29
+ readonly shortcut?: string | undefined;
30
+ }
31
+ /**
32
+ * The exports a host offers, in the guide's order: PNG first (the more frequent target), then
33
+ * SVG, then the variants, then further formats. Only the web app adds the map file itself, which
34
+ * in VS Code is the document.
35
+ */
36
+ export interface MapExports {
37
+ readonly png: MapExport;
38
+ readonly svg: MapExport;
39
+ readonly transparentPng?: MapExport | undefined;
40
+ readonly json?: MapExport | undefined;
41
+ readonly wmap?: MapExport | undefined;
42
+ }
43
+ export interface MapMenuActions {
44
+ /** Opens the "Map title…" dialog; without it the Model group has no title entry. */
45
+ mapTitle?: (() => void) | undefined;
46
+ /** Opens the "Map size…" popover. */
47
+ mapSize(): void;
48
+ /** Opens the "X-axis labels…" popover. */
49
+ axisLabels(): void;
50
+ readonly exports: MapExports;
51
+ showKeyboardShortcuts(): void;
52
+ }
53
+ /** The labels of the export entries, also used by the hosts' commands and notifications. */
54
+ export declare const EXPORT_LABELS: {
55
+ readonly png: "Export as PNG";
56
+ readonly svg: "Export as SVG";
57
+ readonly transparentPng: "Export as PNG (4×, transparent)";
58
+ readonly json: "Export as JSON";
59
+ readonly wmap: "Export as .wmap";
60
+ };
61
+ /**
62
+ * The menu groups of a map (guide §5.4): Model with the title dialog where the host offers it and
63
+ * the two popovers (all three change the document, so a read-only canvas disables them), Export
64
+ * with PNG first, Help with the shortcuts dialog.
65
+ */
66
+ export declare function mapMenu(actions: MapMenuActions): MapMenu;
67
+ export {};
68
+ //# sourceMappingURL=menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../../src/map-menu/menu.ts"],"names":[],"mappings":"AAMA,qFAAqF;AACrF,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,kBAAkB,GAAG,UAAU,CAAC;AAEzE,UAAU,WAAW;IACnB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAC;CAC5C;AAED,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,IAAI,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,IAAI,IAAI,CAAC;CAClB;AAED,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,aAAa,CAAC;AAEzD,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,SAAS,YAAY,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,IAAI,IAAI,CAAC;IACjB,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CACvC;AAED,MAAM,WAAW,cAAc;IAC7B,oFAAoF;IACpF,QAAQ,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACpC,qCAAqC;IACrC,OAAO,IAAI,IAAI,CAAC;IAChB,0CAA0C;IAC1C,UAAU,IAAI,IAAI,CAAC;IACnB,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,qBAAqB,IAAI,IAAI,CAAC;CAC/B;AAED,4FAA4F;AAC5F,eAAO,MAAM,aAAa;;;;;;CAMhB,CAAC;AAiCX;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CA6BxD"}
@@ -0,0 +1,52 @@
1
+ import { Modeler } from '../Modeler.js';
2
+ /** What a popover needs of the chrome around the map; a `@miragon/modeler-shell` handle fits. */
3
+ export interface PopoverChrome {
4
+ /** Where the popover lives (the shell root): it anchors at the dropdown's place there. */
5
+ readonly root: HTMLElement;
6
+ /** The control the focus returns to after Escape or Done. */
7
+ readonly menu: {
8
+ readonly trigger: HTMLElement;
9
+ };
10
+ }
11
+ /** Why a popover closes: the user is done, an import replaced the map, or the canvas locked. */
12
+ export type PopoverEnd = 'done' | 'import' | 'cancel';
13
+ export interface PopoverHandle {
14
+ open(): void;
15
+ isOpen(): boolean;
16
+ /** Closes as if the user were done: the previewed change becomes one edit. */
17
+ close(): void;
18
+ destroy(): void;
19
+ }
20
+ export interface PopoverParts {
21
+ readonly className: string;
22
+ readonly title: string;
23
+ /** Fills the body (fields) and the footer (buttons) once; `done` closes like Done. */
24
+ build(body: HTMLElement, footer: HTMLElement, done: () => void): void;
25
+ /** Reads the map into the fields on every open; returns the field to focus. */
26
+ opened(): HTMLElement | undefined;
27
+ /** Commits the preview (`done`) or drops it (`import`: the map is gone, `cancel`: revert). */
28
+ closed(end: PopoverEnd): void;
29
+ }
30
+ /**
31
+ * A popover of guide §5.4: a menu entry that needs the canvas preview opens it at the dropdown's
32
+ * place, without a backdrop, as a non-modal `role="dialog"` labelled by its title. Escape and a
33
+ * click outside close it; the focus returns to the menu trigger after Escape and Done, while a
34
+ * click outside leaves it on what was clicked.
35
+ */
36
+ export declare function createPopover(chrome: PopoverChrome, parts: PopoverParts): PopoverHandle & {
37
+ end(end: PopoverEnd): void;
38
+ };
39
+ /** A labelled field of guide §8: the label above, 4px apart, an error below it when refused. */
40
+ export declare function field(label: string, control: HTMLInputElement | HTMLSelectElement): {
41
+ wrapper: HTMLElement;
42
+ showError(message: string): void;
43
+ clearError(): void;
44
+ };
45
+ /**
46
+ * Closes `popover` without committing when the map is replaced (an import: the preview went with
47
+ * the old map) or turns read-only (the preview is put back), and stops listening on destroy.
48
+ */
49
+ export declare function withMapListeners(modeler: Modeler, popover: PopoverHandle & {
50
+ end(end: PopoverEnd): void;
51
+ }): PopoverHandle;
52
+ //# sourceMappingURL=popover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover.d.ts","sourceRoot":"","sources":["../../src/map-menu/popover.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAI7C,iGAAiG;AACjG,MAAM,WAAW,aAAa;IAC5B,0FAA0F;IAC1F,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAA;KAAE,CAAC;CAClD;AAED,gGAAgG;AAChG,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEtD,MAAM,WAAW,aAAa;IAC5B,IAAI,IAAI,IAAI,CAAC;IACb,MAAM,IAAI,OAAO,CAAC;IAClB,8EAA8E;IAC9E,KAAK,IAAI,IAAI,CAAC;IACd,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,sFAAsF;IACtF,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACtE,+EAA+E;IAC/E,MAAM,IAAI,WAAW,GAAG,SAAS,CAAC;IAClC,8FAA8F;IAC9F,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAAC;CAC/B;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,YAAY,GAClB,aAAa,GAAG;IAAE,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAAA;CAAE,CA+DhD;AAED,gGAAgG;AAChG,wBAAgB,KAAK,CACnB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,gBAAgB,GAAG,iBAAiB,GAC5C;IAAE,OAAO,EAAE,WAAW,CAAC;IAAC,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,UAAU,IAAI,IAAI,CAAA;CAAE,CA6BhF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,aAAa,GAAG;IAAE,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAAA;CAAE,GACtD,aAAa,CAiBf"}
@@ -0,0 +1,48 @@
1
+ export type ShortcutPlatform = 'mac' | 'other';
2
+ export interface ShortcutKeyNames {
3
+ readonly ctrl: string;
4
+ readonly shift: string;
5
+ readonly plus: string;
6
+ readonly minus: string;
7
+ }
8
+ /** What the shortcuts need of the chrome around the map. */
9
+ export interface ShortcutsChrome {
10
+ readonly platform: ShortcutPlatform;
11
+ /** The tool's UI language, for the percentage in "Zoom to 100%". */
12
+ readonly lang: string;
13
+ readonly messages: {
14
+ readonly zoomIn: string;
15
+ readonly zoomOut: string;
16
+ zoomToActual(percent: string): string;
17
+ readonly fit: string;
18
+ /** The File group's "Open…" (the shell's `messages.openFile`); default "Open…". */
19
+ readonly openFile?: string | undefined;
20
+ readonly keyNames: ShortcutKeyNames;
21
+ };
22
+ }
23
+ /** Keys a web app binds itself, next to the canvas's and the chrome's. */
24
+ export interface MapShortcutOptions {
25
+ /**
26
+ * Cmd/Ctrl+O opens a file, Cmd/Ctrl+S exports the .wmap file and Cmd/Ctrl+V opens OWM text or a
27
+ * share link pasted onto the canvas: a File group comes first.
28
+ */
29
+ readonly fileKeys?: boolean | undefined;
30
+ /** The key that opens the dialog itself, e.g. "?", listed in the View group. */
31
+ readonly shortcutsKey?: string | undefined;
32
+ }
33
+ export interface ShortcutRow {
34
+ readonly action: string;
35
+ /** Alternative keys or gestures, each shown as its own chip. */
36
+ readonly keys: readonly string[];
37
+ }
38
+ export interface ShortcutGroup {
39
+ readonly title: string;
40
+ readonly rows: readonly ShortcutRow[];
41
+ }
42
+ /**
43
+ * Every shortcut of a map, grouped as guide §5.4 asks: View (the chrome's zoom keys), Edit, the
44
+ * notation's tools and the gestures on the map itself, after the web app's File keys where it
45
+ * binds them.
46
+ */
47
+ export declare function mapShortcuts(chrome: ShortcutsChrome, options?: MapShortcutOptions): ShortcutGroup[];
48
+ //# sourceMappingURL=shortcuts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shortcuts.d.ts","sourceRoot":"","sources":["../../src/map-menu/shortcuts.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,OAAO,CAAC;AAE/C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,4DAA4D;AAC5D,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,oEAAoE;IACpE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;QACtC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QACrB,mFAAmF;QACnF,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACvC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KACrC,CAAC;CACH;AAED,0EAA0E;AAC1E,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACxC,gFAAgF;IAChF,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5C;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,WAAW,EAAE,CAAC;CACvC;AAsDD;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,eAAe,EACvB,OAAO,GAAE,kBAAuB,GAC/B,aAAa,EAAE,CAuEjB"}
@@ -1,3 +1,4 @@
1
+ import { Injector } from 'didi';
1
2
  import { default as Canvas } from 'diagram-js/lib/core/Canvas';
2
3
  import { default as EventBus } from 'diagram-js/lib/core/EventBus';
3
4
  import { default as Dragging } from 'diagram-js/lib/features/dragging/Dragging';
@@ -35,12 +36,13 @@ export default class MapResizeHandles {
35
36
  private readonly dragging;
36
37
  private readonly projection;
37
38
  private readonly modeling;
39
+ private readonly injector;
38
40
  static $inject: string[];
39
41
  private readonly layer;
40
42
  private readonly handles;
41
43
  private badge;
42
44
  private scale;
43
- constructor(eventBus: EventBus, canvas: Canvas, grid: EvolutionGrid, dragging: Dragging, projection: MapProjection, modeling: MapResizeModeling);
45
+ constructor(eventBus: EventBus, canvas: Canvas, grid: EvolutionGrid, dragging: Dragging, projection: MapProjection, modeling: MapResizeModeling, injector: Injector);
44
46
  /** Starts a resize drag on `axis` (also usable programmatically, e.g. from tests). */
45
47
  start(event: MouseEvent, axis: ResizeAxis): void;
46
48
  private createHandle;
@@ -1 +1 @@
1
- {"version":3,"file":"MapResizeHandles.d.ts","sourceRoot":"","sources":["../../src/map-resize/MapResizeHandles.ts"],"names":[],"mappings":"AACA,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;IAiBjC,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;IApB3B,MAAM,CAAC,OAAO,WAOZ;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;IA6B9C,sFAAsF;IACtF,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAShD,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;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,11 +1,13 @@
1
1
  import { default as EventBus } from 'diagram-js/lib/core/EventBus';
2
2
  import { default as Palette } from 'diagram-js/lib/features/palette/Palette';
3
+ import { Injector } from 'didi';
3
4
  import { default as WardleyPaletteProvider } from './WardleyPaletteProvider.js';
4
5
  /**
5
6
  * Makes the palette a keyboard-operable toolbar (WAI-ARIA toolbar pattern): one Tab stop with a
6
7
  * roving tabindex, arrow keys / Home / End move between tools, Enter or Space activates the focused
7
8
  * one. A create tool has no pointer position to attach the new element to, so it is placed at the
8
- * centre of the visible plot instead (see `WardleyPaletteProvider.createAtVisibleCenter`).
9
+ * centre of the free rectangle instead (see `WardleyPaletteProvider.createAtFreeCenter`). Only for
10
+ * hosts without the Miragon modeler shell, which brings these keys itself.
9
11
  */
10
12
  export default class WardleyPaletteKeyboard {
11
13
  private readonly palette;
@@ -13,7 +15,7 @@ export default class WardleyPaletteKeyboard {
13
15
  static $inject: string[];
14
16
  private container;
15
17
  private activeAction;
16
- constructor(eventBus: EventBus, palette: Palette, provider: WardleyPaletteProvider);
18
+ constructor(eventBus: EventBus, palette: Palette, provider: WardleyPaletteProvider, injector: Injector);
17
19
  private attach;
18
20
  private entries;
19
21
  private entryOf;
@@ -1 +1 @@
1
- {"version":3,"file":"WardleyPaletteKeyboard.d.ts","sourceRoot":"","sources":["../../src/palette/WardleyPaletteKeyboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,OAAO,MAAM,yCAAyC,CAAC;AACnE,OAAO,KAAK,sBAAsB,MAAM,6BAA6B,CAAC;AAQtE;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,sBAAsB;IAQvC,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAR3B,MAAM,CAAC,OAAO,WAAqD;IAEnE,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,YAAY,CAAqB;gBAGvC,QAAQ,EAAE,QAAQ,EACD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,sBAAsB;IAUnD,OAAO,CAAC,MAAM;IAkBd,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,SAAS;IA2BjB,OAAO,CAAC,QAAQ;CAYjB"}
1
+ {"version":3,"file":"WardleyPaletteKeyboard.d.ts","sourceRoot":"","sources":["../../src/palette/WardleyPaletteKeyboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,OAAO,MAAM,yCAAyC,CAAC;AACnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,KAAK,sBAAsB,MAAM,6BAA6B,CAAC;AAQtE;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,sBAAsB;IAQvC,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAR3B,MAAM,CAAC,OAAO,WAAiE;IAE/E,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,YAAY,CAAqB;gBAGvC,QAAQ,EAAE,QAAQ,EACD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,sBAAsB,EACjD,QAAQ,EAAE,QAAQ;IAapB,OAAO,CAAC,MAAM;IAkBd,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,SAAS;IA2BjB,OAAO,CAAC,QAAQ;CAYjB"}
@@ -13,16 +13,20 @@ export default class WardleyPaletteProvider implements PaletteProvider {
13
13
  private readonly drawTool;
14
14
  private readonly injector;
15
15
  static $inject: string[];
16
- /** diagram-js >= 15.28 renders `title` + `shortcut` as a styled tooltip; older ones need `title`. */
17
- private readonly hasStyledTooltip;
16
+ /**
17
+ * diagram-js >= 15.28 renders `title` + `shortcut` as a styled tooltip, and the Miragon modeler
18
+ * shell shows its chrome tooltip instead; only without either does an entry need a native title.
19
+ */
20
+ private readonly needsNativeTitle;
18
21
  constructor(palette: Palette, create: Create, factory: WardleyElementFactory, lassoTool: LassoTool, drawTool: WardleyDrawTool, injector: Injector);
19
22
  getPaletteEntries(): PaletteEntries;
20
23
  /**
21
- * Keyboard path for a create entry: places the new element at the centre of the visible part of
22
- * the plot (no pointer position to attach it to), selects it and opens its label editor.
23
- * Returns the created shape, or undefined for non-create entries.
24
+ * Keyboard path for a create entry (guide §5.5): places the new element in the centre of the
25
+ * free rectangle (no pointer position to attach it to), 24px further diagonally while that spot
26
+ * is taken, selects it and opens its label editor, or focuses the canvas where there is nothing
27
+ * to name. Returns the created shape, or undefined for non-create entries.
24
28
  */
25
- createAtVisibleCenter(entryId: string): WardleyShape | undefined;
29
+ createAtFreeCenter(entryId: string): WardleyShape | undefined;
26
30
  private createShapeFor;
27
31
  private freeCenterPosition;
28
32
  private describe;
@@ -1 +1 @@
1
- {"version":3,"file":"WardleyPaletteProvider.d.ts","sourceRoot":"","sources":["../../src/palette/WardleyPaletteProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,yCAAyC,CAAC;AACnE,OAAO,KAAK,MAAM,MAAM,uCAAuC,CAAC;AAChE,OAAO,KAAK,SAAS,MAAM,8CAA8C,CAAC;AAC1E,OAAO,KAAK,eAAe,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EACV,cAAc,EAEd,OAAO,IAAI,eAAe,EAC3B,MAAM,iDAAiD,CAAC;AACzD,OAAO,KAAK,qBAAqB,MAAM,mCAAmC,CAAC;AAO3E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAErC,OAAO,EAAkB,KAAK,YAAY,EAAyB,MAAM,sBAAsB,CAAC;AAoKhG,MAAM,CAAC,OAAO,OAAO,sBAAuB,YAAW,eAAe;IAelE,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAlB3B,MAAM,CAAC,OAAO,WAOZ;IAEF,qGAAqG;IACrG,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAU;gBAGzC,OAAO,EAAE,OAAO,EACC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,qBAAqB,EAC9B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,QAAQ;IASrC,iBAAiB,IAAI,cAAc;IAqCnC;;;;OAIG;IACH,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAuBhE,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,kBAAkB;IA6C1B,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,SAAS;CAQlB"}
1
+ {"version":3,"file":"WardleyPaletteProvider.d.ts","sourceRoot":"","sources":["../../src/palette/WardleyPaletteProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,yCAAyC,CAAC;AACnE,OAAO,KAAK,MAAM,MAAM,uCAAuC,CAAC;AAChE,OAAO,KAAK,SAAS,MAAM,8CAA8C,CAAC;AAC1E,OAAO,KAAK,eAAe,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EACV,cAAc,EAEd,OAAO,IAAI,eAAe,EAC3B,MAAM,iDAAiD,CAAC;AACzD,OAAO,KAAK,qBAAqB,MAAM,mCAAmC,CAAC;AAO3E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGrC,OAAO,EAAkB,KAAK,YAAY,EAAyB,MAAM,sBAAsB,CAAC;AA8KhG,MAAM,CAAC,OAAO,OAAO,sBAAuB,YAAW,eAAe;IAkBlE,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IArB3B,MAAM,CAAC,OAAO,WAOZ;IAEF;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAU;gBAGzC,OAAO,EAAE,OAAO,EACC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,qBAAqB,EAC9B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,QAAQ;IAUrC,iBAAiB,IAAI,cAAc;IA0CnC;;;;;OAKG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAwB7D,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,kBAAkB;IA+C1B,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,SAAS;CAQlB"}
@@ -1,12 +1,20 @@
1
1
  import { default as EventBus } from 'diagram-js/lib/core/EventBus';
2
2
  import { default as Canvas } from 'diagram-js/lib/core/Canvas';
3
+ import { Injector } from 'didi';
3
4
  import { default as EvolutionGrid } from '../evolution-grid/EvolutionGrid.js';
5
+ type Bounds = {
6
+ x: number;
7
+ y: number;
8
+ width: number;
9
+ height: number;
10
+ };
4
11
  /**
5
12
  * Keeps the map in view while scrolling and zooming.
6
13
  * Without this the user could scroll the map completely off-screen into empty space.
7
14
  * After every move we pull the visible area back so it stays close to the map,
8
15
  * leaving only a small margin of empty space around it. "The map" is the plot plus any content
9
- * reaching beyond it (long labels at the commodity edge, notes in the margin).
16
+ * reaching beyond it (long labels at the commodity edge, notes in the margin): `contentBounds()`,
17
+ * which hosts also fit the view to.
10
18
  */
11
19
  export default class PanConstraint {
12
20
  private readonly canvas;
@@ -14,13 +22,19 @@ export default class PanConstraint {
14
22
  static $inject: string[];
15
23
  private applying;
16
24
  /** Content bounds are measured lazily (getBBox), at most once per change of the map. */
17
- private contentBounds;
25
+ private measured;
18
26
  /** A config change (resize) happened; re-check once its elements are redrawn. */
19
27
  private constrainAfterCommand;
20
- constructor(eventBus: EventBus, canvas: Canvas, grid: EvolutionGrid);
21
- /** Plot (with axis margins) united with everything drawn on the element layer. */
22
- private bounds;
23
- private measureContent;
28
+ private readonly freeRect;
29
+ constructor(eventBus: EventBus, canvas: Canvas, grid: EvolutionGrid, injector: Injector);
30
+ /**
31
+ * The plot (with its axis margins) united with everything drawn on it or beyond it, tight (no
32
+ * padding): what a host fits the view to.
33
+ */
34
+ contentBounds(): Bounds;
35
+ /** The margins around the content the view may show, in diagram px at the view's scale. */
36
+ private pads;
24
37
  private constrain;
25
38
  }
39
+ export {};
26
40
  //# sourceMappingURL=PanConstraint.d.ts.map