@peter.prib/renderengine 0.2.11 → 0.5.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 (41) hide show
  1. package/README.md +22 -6
  2. package/REFERENCE.md +132 -2
  3. package/dist/renderengine-workspace.umd.js +3346 -1245
  4. package/dist/renderengine.umd.js +1509 -158
  5. package/package.json +1 -1
  6. package/src/charting/ModelCheckDialog.js +10 -3
  7. package/src/charting/ModelComparisonDialog.js +10 -3
  8. package/src/charting/ModelFileFormat.js +4 -1
  9. package/src/charting/archimate/ArchimateCanvasEditor.js +14 -2
  10. package/src/charting/archimate/ArchimateElementTemplate.js +23 -0
  11. package/src/charting/arrangement/layouts.js +9 -4
  12. package/src/charting/datamodel/DataModel.js +18 -71
  13. package/src/charting/datamodel/DataModelCompared.js +1 -31
  14. package/src/charting/diagramModel/ListCompared.js +35 -0
  15. package/src/charting/model/Benchmark.js +59 -0
  16. package/src/charting/model/EditableModel.js +104 -0
  17. package/src/charting/{datamodel/DataModelEditCommand.js → model/ModelEditCommand.js} +47 -47
  18. package/src/charting/requirements/AzureDevOpsApi.js +55 -0
  19. package/src/charting/requirements/GitLabApi.js +43 -0
  20. package/src/charting/requirements/JiraApi.js +69 -0
  21. package/src/charting/requirements/RequirementsChecker.js +76 -0
  22. package/src/charting/requirements/RequirementsCompared.js +33 -0
  23. package/src/charting/requirements/RequirementsFileFormat.js +32 -0
  24. package/src/charting/requirements/RequirementsImportFormats.js +48 -0
  25. package/src/charting/requirements/RequirementsModel.js +305 -0
  26. package/src/charting/requirements/Storyboard.js +94 -0
  27. package/src/charting/requirements/TrackerApi.js +142 -0
  28. package/src/charting/requirements/TrackerExport.js +274 -0
  29. package/src/charting/requirements/index.js +12 -0
  30. package/src/charting/requirements/trackerApis.js +21 -0
  31. package/src/index.js +7 -0
  32. package/src/workspace/Workspace.js +329 -321
  33. package/src/workspace/index.js +2 -0
  34. package/src/workspace/parts/ArchimateCanvasPart.js +31 -1
  35. package/src/workspace/parts/DataModelPart.js +668 -735
  36. package/src/workspace/parts/EditorPart.js +1 -1
  37. package/src/workspace/parts/ModelFile.js +3 -1
  38. package/src/workspace/parts/ModelHosted.js +176 -0
  39. package/src/workspace/parts/ModelsPart.js +146 -7
  40. package/src/workspace/parts/RequirementsPart.js +465 -0
  41. package/src/workspace/storage/ModelLibrary.js +8 -2
@@ -57,6 +57,8 @@ export {
57
57
  } from './themes.js';
58
58
  export { ChartPart } from './parts/ChartPart.js';
59
59
  export { DataModelPart } from './parts/DataModelPart.js';
60
+ export { RequirementsPart } from './parts/RequirementsPart.js';
61
+ export { ModelHosted } from './parts/ModelHosted.js';
60
62
  export { EditorPart } from './parts/EditorPart.js';
61
63
  export { DiagramEditorPart } from './parts/DiagramEditorPart.js';
62
64
  export { ArchimateEditorPart } from './parts/ArchimateEditorPart.js';
@@ -233,6 +233,7 @@ export class ArchimateCanvasPart extends EditorPart {
233
233
  customViewpoints,
234
234
  // Canvas templates: placed on a canvas, saved from its shapes (the browser's library).
235
235
  templateMenu: this.templateMenu,
236
+ ...this.editorHooks(),
236
237
  // Version and distinct shapes (⚙ Settings) change the palette too.
237
238
  onNodeOptionsChange: ({ archimateVersion, useDistinctShapes, viewpoint, viewpointMode, showDerived, showNestedLines }) => {
238
239
  this.showDerived = !!showDerived;
@@ -299,11 +300,40 @@ export class ArchimateCanvasPart extends EditorPart {
299
300
  this.editor.render();
300
301
  }
301
302
 
303
+ /**
304
+ * A host's live status for an element — `{ text, color }`, drawn as a pill
305
+ * on its boxes — or null. None here: a host subclass says (the workbench:
306
+ * a component's lifecycle state). Asked whenever the view is drawn.
307
+ */
308
+ elementStatus(_element) {
309
+ return null;
310
+ }
311
+
312
+ /** A host's menu items for an element, after the editor's own on a box and in the tree. None here. */
313
+ elementMenuExtras(_element) {
314
+ return [];
315
+ }
316
+
317
+ /** What the editor asks this part per element: its live status and its menu items (a host's). */
318
+ editorHooks() {
319
+ return {
320
+ elementStatus: (element) => this.elementStatus(element),
321
+ elementMenuExtras: (element) => this.elementMenuExtras(element),
322
+ };
323
+ }
324
+
302
325
  /**
303
326
  * A model element's menu in the tree (elementMenuItems): its properties,
304
- * the views it is on, adding it to this one, a view generated for it.
327
+ * the views it is on, adding it to this one, a view generated for it; then
328
+ * the host's (elementMenuExtras).
305
329
  */
306
330
  elementMenu(element) {
331
+ const extras = this.elementMenuExtras(element) ?? [];
332
+ return [...this._ownElementMenu(element), ...(extras.length ? [{ separator: true }, ...extras] : [])];
333
+ }
334
+
335
+ /** @private */
336
+ _ownElementMenu(element) {
307
337
  const model = this.model;
308
338
  return elementMenuItems(element, {
309
339
  model, view: model.currentView,