@meltemi/diagrams-edit 1.9.0 → 1.10.17

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 (78) hide show
  1. package/dist/animate.d.ts.map +1 -1
  2. package/dist/animate.js +3 -0
  3. package/dist/animate.js.map +1 -1
  4. package/dist/attachments.d.ts +30 -0
  5. package/dist/attachments.d.ts.map +1 -0
  6. package/dist/attachments.js +85 -0
  7. package/dist/attachments.js.map +1 -0
  8. package/dist/c4.d.ts +26 -1
  9. package/dist/c4.d.ts.map +1 -1
  10. package/dist/c4.js +321 -27
  11. package/dist/c4.js.map +1 -1
  12. package/dist/context.d.ts +7 -0
  13. package/dist/context.d.ts.map +1 -1
  14. package/dist/context.js +15 -0
  15. package/dist/context.js.map +1 -1
  16. package/dist/create.d.ts.map +1 -1
  17. package/dist/create.js +61 -15
  18. package/dist/create.js.map +1 -1
  19. package/dist/free.d.ts.map +1 -1
  20. package/dist/free.js +97 -9
  21. package/dist/free.js.map +1 -1
  22. package/dist/index.d.ts +2 -0
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +2 -0
  25. package/dist/index.js.map +1 -1
  26. package/dist/insert.d.ts +39 -1
  27. package/dist/insert.d.ts.map +1 -1
  28. package/dist/insert.js +128 -2
  29. package/dist/insert.js.map +1 -1
  30. package/dist/labels.d.ts.map +1 -1
  31. package/dist/labels.js +7 -9
  32. package/dist/labels.js.map +1 -1
  33. package/dist/lines.d.ts +16 -0
  34. package/dist/lines.d.ts.map +1 -0
  35. package/dist/lines.js +123 -0
  36. package/dist/lines.js.map +1 -0
  37. package/dist/messages/en.d.ts +105 -1
  38. package/dist/messages/en.d.ts.map +1 -1
  39. package/dist/messages/en.js +108 -2
  40. package/dist/messages/en.js.map +1 -1
  41. package/dist/messages/es.d.ts.map +1 -1
  42. package/dist/messages/es.js +69 -2
  43. package/dist/messages/es.js.map +1 -1
  44. package/dist/messages/index.d.ts +61 -1
  45. package/dist/messages/index.d.ts.map +1 -1
  46. package/dist/pens.d.ts +16 -0
  47. package/dist/pens.d.ts.map +1 -0
  48. package/dist/pens.js +175 -0
  49. package/dist/pens.js.map +1 -0
  50. package/dist/plan.d.ts.map +1 -1
  51. package/dist/plan.js +125 -20
  52. package/dist/plan.js.map +1 -1
  53. package/dist/relations.d.ts +1 -1
  54. package/dist/relations.d.ts.map +1 -1
  55. package/dist/relations.js +35 -16
  56. package/dist/relations.js.map +1 -1
  57. package/dist/sequence.d.ts +13 -2
  58. package/dist/sequence.d.ts.map +1 -1
  59. package/dist/sequence.js +342 -31
  60. package/dist/sequence.js.map +1 -1
  61. package/dist/structure.d.ts +7 -5
  62. package/dist/structure.d.ts.map +1 -1
  63. package/dist/structure.js +49 -49
  64. package/dist/structure.js.map +1 -1
  65. package/dist/styles.d.ts.map +1 -1
  66. package/dist/styles.js +8 -3
  67. package/dist/styles.js.map +1 -1
  68. package/dist/tags.d.ts +19 -0
  69. package/dist/tags.d.ts.map +1 -0
  70. package/dist/tags.js +159 -0
  71. package/dist/tags.js.map +1 -0
  72. package/dist/text.d.ts +4 -0
  73. package/dist/text.d.ts.map +1 -1
  74. package/dist/text.js +9 -0
  75. package/dist/text.js.map +1 -1
  76. package/dist/types.d.ts +270 -21
  77. package/dist/types.d.ts.map +1 -1
  78. package/package.json +8 -8
package/dist/c4.js CHANGED
@@ -1,15 +1,20 @@
1
- import { isIdentifierText, isToken, } from "@meltemi/diagrams-language";
2
- import { ENTITY_CHILDREN, ENTITY_KINDS, isSafeUrl, } from "@meltemi/diagrams-model";
1
+ import { applyTextEdits, isIdentifierText, isToken, } from "@meltemi/diagrams-language";
2
+ import { ENTITY_CHILDREN, ENTITY_KINDS, defaultEntities, isSafeUrl, compile, singleIdent, } from "@meltemi/diagrams-model";
3
3
  import { insertStatement, reject } from "./context.js";
4
4
  import { deleteStatements } from "./delete.js";
5
+ import { attachmentDependent } from "./attachments.js";
5
6
  import { insertAfter, insertBefore, verifyNoNewErrors } from "./insert.js";
6
7
  import { messages, reasons } from "./messages/index.js";
7
8
  import { removeListItems } from "./plan.js";
9
+ import { endpointText, requireEndPosition, routeParts } from "./routes.js";
8
10
  import { storyDependents } from "./stories.js";
9
11
  import { quoteString } from "./text.js";
10
12
  // ---------------------------------------------------------------------- views
11
13
  /** Operations a C4 view accepts; the others write declarations the view does not have. */
12
14
  const VIEW_OPERATIONS = new Set([
15
+ // A view declares notes: `createElement` refuses every other kind there.
16
+ "createElement",
17
+ "attachNote",
13
18
  "setPosition",
14
19
  "setSize",
15
20
  "setRoute",
@@ -25,11 +30,32 @@ const VIEW_OPERATIONS = new Set([
25
30
  "includeEntity",
26
31
  "excludeEntity",
27
32
  "setLocalLabel",
33
+ "forgetModelRelation",
34
+ "rewriteRouteEnd",
35
+ "materializeRelationId",
36
+ ]);
37
+ /**
38
+ * Operations a note of a view takes as any element does, since the note is a declaration of the
39
+ * view: its text, id, classes and url, and its removal with the placement and styles it has.
40
+ */
41
+ const NOTE_OPERATIONS = new Set([
42
+ "renameElement",
43
+ "removeElement",
44
+ "setElementLabel",
45
+ "setClasses",
46
+ "setElementProperty",
28
47
  ]);
29
48
  /** Refuses an operation that does not apply to a C4 view, naming the ones that do. */
30
- export function refuseInView(ctx, kind) {
49
+ export function refuseInView(ctx, operation) {
50
+ const { kind } = operation;
31
51
  if (ctx.diagram.type !== "c4" || VIEW_OPERATIONS.has(kind))
32
52
  return;
53
+ if (NOTE_OPERATIONS.has(kind) && operation.targetKind !== "relation") {
54
+ const id = operation.element ?? operation.target;
55
+ const element = id === undefined ? undefined : ctx.diagram.elementsById.get(id);
56
+ if (element?.kind === "note" && element.entity === null)
57
+ return;
58
+ }
33
59
  reject("edit.invalid-value", reasons().c4.notInView(kind, ctx.diagram.c4?.model ?? ""));
34
60
  }
35
61
  function requireView(ctx) {
@@ -69,6 +95,13 @@ function insertViewStatement(ctx, text, after) {
69
95
  ? insertBefore(ctx, first, () => text)
70
96
  : insertStatement(ctx, body, ctx.diagram.node.start, () => text);
71
97
  }
98
+ /**
99
+ * Declares a note in a view: after its last note, else after the lists and labels and before the
100
+ * blocks, where the language keeps what a view says about what it draws.
101
+ */
102
+ export function insertViewNote(ctx, text) {
103
+ return insertViewStatement(ctx, text, ["level", "scope", "include", "exclude", "label", "note"]);
104
+ }
72
105
  function requireEntity(ctx, path) {
73
106
  const model = requireView(ctx).resolved?.definition;
74
107
  if (!model)
@@ -106,8 +139,7 @@ export function includeEntity(ctx, op) {
106
139
  return edits;
107
140
  }
108
141
  /** The view statements that only target an element, and edits that drop it from shared ones. */
109
- function viewDependents(ctx, id) {
110
- const diagram = ctx.diagram;
142
+ function viewDependents(ctx, diagram, id) {
111
143
  const lines = ctx.compilation.parse.lines;
112
144
  const statements = [];
113
145
  const edits = [];
@@ -122,6 +154,16 @@ function viewDependents(ctx, id) {
122
154
  });
123
155
  };
124
156
  const gone = new Set(diagram.relations.filter((r) => r.from === id || r.to === id).map((r) => r.key));
157
+ // A note of the view attached to the entity stays, without its `on` clause.
158
+ for (const note of diagram.elements) {
159
+ if (note.attachedTo !== id)
160
+ continue;
161
+ const attached = attachmentDependent(ctx, note);
162
+ if (!attached)
163
+ continue;
164
+ dependents.push(attached.dependent);
165
+ edits.push(attached.edit);
166
+ }
125
167
  for (const entry of diagram.placement) {
126
168
  if (entry.target === id || gone.has(entry.target))
127
169
  depend(entry.statement, entry.target, entry.node);
@@ -176,7 +218,7 @@ export function excludeEntity(ctx, op) {
176
218
  if (element.kind === "group") {
177
219
  reject("edit.unsafe-target", reasons().c4.isScope(op.entity));
178
220
  }
179
- const dependents = viewDependents(ctx, op.entity);
221
+ const dependents = viewDependents(ctx, ctx.diagram, op.entity);
180
222
  if (!op.cascade && dependents.dependents.length > 0) {
181
223
  reject("edit.has-dependents", reasons().c4.removingFromView(op.entity, dependents.dependents.length), dependents.dependents);
182
224
  }
@@ -222,7 +264,7 @@ export function setLocalLabel(ctx, op) {
222
264
  else {
223
265
  const relation = ctx.diagram.relationsByKey.get(op.target);
224
266
  if (relation && relation.id === null) {
225
- reject("edit.anonymous-relation", reasons().c4.nameRelation);
267
+ reject("edit.anonymous-relation", reasons().relations.unnamed(op.target));
226
268
  }
227
269
  edits = [
228
270
  insertViewStatement(ctx, `label ${op.target} ${quoteString(op.label)}`, [
@@ -378,6 +420,16 @@ export function removeEntity(ctx, op) {
378
420
  if (removed.has(label.target) || relationKeys.has(label.target))
379
421
  depend("label", label.target, label.node);
380
422
  }
423
+ // The notes of the view attached to a removed entity stay, without their clause.
424
+ for (const note of diagram.elements) {
425
+ if (note.attachedTo === null || !removed.has(note.attachedTo))
426
+ continue;
427
+ const attached = attachmentDependent(ctx, note);
428
+ if (!attached)
429
+ continue;
430
+ dependents.push(attached.dependent);
431
+ edits.push(attached.edit);
432
+ }
381
433
  for (const entry of diagram.placement) {
382
434
  const target = entry.target;
383
435
  const relation = diagram.relationsByKey.get(target);
@@ -578,34 +630,276 @@ export function createModelRelation(ctx, op) {
578
630
  verifyNoNewErrors(ctx, edits);
579
631
  return edits;
580
632
  }
633
+ /** Moves one end of a model relation to another entity; the label, id and block stay. */
634
+ export function reconnectModelRelation(ctx, op) {
635
+ const relation = requireModelRelation(ctx, op.relation);
636
+ const entity = requireModelEntity(ctx, op.entity);
637
+ const current = op.end === "from" ? relation.from : relation.to;
638
+ if (current === entity.path)
639
+ return [];
640
+ const ref = op.end === "from" ? relation.node.source : relation.node.target;
641
+ if (ref.kind !== "QualifiedRef") {
642
+ reject("edit.unsafe-target", reasons().c4.endUnreadable(relation.key));
643
+ }
644
+ if (op.position !== undefined)
645
+ requireEndPosition(op.port, op.position);
646
+ // The path from the root resolves wherever the statement sits: the lookup from the enclosing
647
+ // entity outwards ends at the root.
648
+ const moved = { start: ref.start, end: ref.end, newText: entity.path };
649
+ const edits = [moved];
650
+ // The routes of the file's views follow the end the views now draw.
651
+ if (relation.id !== null) {
652
+ const after = compile(applyTextEdits(ctx.text, [moved]), ctx.compilation.options);
653
+ const removed = [];
654
+ for (const diagram of ctx.compilation.document.diagrams) {
655
+ const c4 = diagram.c4;
656
+ if (!c4 || c4.resolved?.file !== null || c4.resolved.definition.id !== ctx.model.id)
657
+ continue;
658
+ const routes = routeStatements(diagram, relation.id);
659
+ if (routes.length === 0)
660
+ continue;
661
+ const now = after.document.diagrams.find((d) => d.id === diagram.id);
662
+ const drawn = now?.relations.find((r) => r.id === relation.id);
663
+ const pinned = diagram.id === op.view && op.port !== undefined
664
+ ? { port: op.port, ...(op.position !== undefined ? { position: op.position } : {}) }
665
+ : undefined;
666
+ const followed = followRoutes(ctx.text, ctx.model, routes, drawn, op.end, pinned);
667
+ edits.push(...followed.edits);
668
+ removed.push(...followed.removed);
669
+ }
670
+ edits.push(...deleteStatements(ctx.text, ctx.compilation.parse.root, removed));
671
+ }
672
+ verifyNoNewErrors(ctx, edits);
673
+ return edits;
674
+ }
675
+ /** The `route <id>` statements of a view, whether the analyser took them or not. */
676
+ function routeStatements(diagram, id) {
677
+ const found = [];
678
+ for (const owner of diagram.placementBlocks) {
679
+ for (const stmt of owner.block?.statements ?? []) {
680
+ if (stmt.kind !== "KeywordStatement" || stmt.keyword.text !== "route")
681
+ continue;
682
+ if (singleIdent(stmt.args[0])?.text === id)
683
+ found.push(stmt);
684
+ }
685
+ }
686
+ return found;
687
+ }
688
+ /** The compass sides and `auto`: the ports every entity has, which carry over to another. */
689
+ const COMPASS = new Set(["north", "south", "east", "west", "auto"]);
690
+ /** A route end as written: the entity it names, and the port after it when it has one. */
691
+ function writtenEnd(model, text) {
692
+ if (model.entitiesByPath.has(text))
693
+ return { element: text, port: null };
694
+ const dot = text.lastIndexOf(".");
695
+ if (dot > 0 && model.entitiesByPath.has(text.slice(0, dot))) {
696
+ return { element: text.slice(0, dot), port: text.slice(dot + 1) };
697
+ }
698
+ return { element: text, port: null };
699
+ }
700
+ /**
701
+ * The edits that make a view's routes of a relation end where the view now draws its moved end:
702
+ * the end rewritten with the drawn entity, a compass port carried over, a named port and a point
703
+ * dropped (or `pinned`, the port and point of a drop on this view), the other end and the
704
+ * waypoints kept; a route the view no longer draws the relation for goes; a route whose end
705
+ * already meets the drawn one stays as it is.
706
+ */
707
+ function followRoutes(text, model, routes, drawn, end, pinned) {
708
+ const edits = [];
709
+ const removed = [];
710
+ for (const route of routes) {
711
+ if (!drawn) {
712
+ removed.push(route);
713
+ continue;
714
+ }
715
+ const parts = routeParts(route);
716
+ const arg = end === "from" ? parts.fromRef : parts.toRef;
717
+ const at = end === "from" ? parts.fromAt : parts.toAt;
718
+ if (arg?.kind !== "QualifiedRef") {
719
+ reject("edit.unsafe-target", reasons().relations.routeUnreadable);
720
+ }
721
+ const target = end === "from" ? drawn.from : drawn.to;
722
+ const written = writtenEnd(model, text.slice(arg.start, arg.end));
723
+ let newText;
724
+ if (pinned)
725
+ newText = endpointText(target, pinned.port, pinned.position);
726
+ else if (written.element === target)
727
+ continue;
728
+ else {
729
+ const port = written.port !== null && COMPASS.has(written.port) ? written.port : null;
730
+ newText = endpointText(target, port);
731
+ }
732
+ const stop = (at ?? arg).end;
733
+ if (newText !== text.slice(arg.start, stop)) {
734
+ edits.push({ start: arg.start, end: stop, newText });
735
+ }
736
+ }
737
+ return { edits, removed };
738
+ }
739
+ /**
740
+ * The routes of a relation in a view of a file other than the model's, once the model moved one of
741
+ * its ends (the compilation already resolves the moved model): they follow the end the view
742
+ * draws now, as `reconnectModelRelation` makes them follow in the model's own file.
743
+ */
744
+ export function rewriteRouteEnd(ctx, op) {
745
+ const c4 = requireView(ctx);
746
+ const model = c4.resolved?.definition;
747
+ if (!model)
748
+ reject("edit.unsafe-target", reasons().c4.unresolved);
749
+ const routes = routeStatements(ctx.diagram, op.relation);
750
+ if (routes.length === 0)
751
+ return [];
752
+ const drawn = ctx.diagram.relations.find((r) => r.id === op.relation);
753
+ const followed = followRoutes(ctx.text, model, routes, drawn, op.end, undefined);
754
+ const edits = [
755
+ ...followed.edits,
756
+ ...deleteStatements(ctx.text, ctx.compilation.parse.root, followed.removed),
757
+ ];
758
+ verifyNoNewErrors(ctx, edits);
759
+ return edits;
760
+ }
761
+ /**
762
+ * Removes a model relation with the statements of the file's views that name it. Without
763
+ * `cascade`, those statements and the views that draw the relation (other than `op.view`) are
764
+ * listed as dependents.
765
+ */
766
+ /**
767
+ * What a view holds about a model relation: the statements that name it by its key, or by a
768
+ * combination standing for it alone, as statements to delete, edits that take it out of shared
769
+ * lists, and dependents; with the view itself as drawing it when `listDrawn`.
770
+ */
771
+ function relationStatements(ctx, diagram, key, listDrawn) {
772
+ const c4 = diagram.c4;
773
+ const lines = ctx.compilation.parse.lines;
774
+ const statements = [];
775
+ const edits = [];
776
+ const dependents = [];
777
+ if (!c4)
778
+ return { statements, edits, dependents };
779
+ const depend = (kind, name, node) => {
780
+ statements.push(node);
781
+ dependents.push({
782
+ kind,
783
+ name,
784
+ description: messages().dependents.statement(kind, name, lines.location(node.start).line),
785
+ range: lines.range(node),
786
+ });
787
+ };
788
+ const keys = new Set([key]);
789
+ let drawn = false;
790
+ for (const shown of diagram.relations) {
791
+ if (!shown.sources.includes(key))
792
+ continue;
793
+ drawn = true;
794
+ if (isCombination(diagram, shown.key) && shown.sources.every((k) => k === key)) {
795
+ keys.add(shown.key);
796
+ depend("relation", shown.key, shown.node);
797
+ }
798
+ }
799
+ if (drawn && listDrawn) {
800
+ dependents.push({
801
+ kind: "relation",
802
+ name: diagram.id,
803
+ description: messages().dependents.drawnIn(key, diagram.id, lines.location(diagram.node.start).line),
804
+ range: lines.range(diagram.node),
805
+ });
806
+ }
807
+ for (const entry of diagram.placement) {
808
+ if (keys.has(entry.target))
809
+ depend(entry.statement, entry.target, entry.node);
810
+ }
811
+ for (const label of c4.labels) {
812
+ if (keys.has(label.target))
813
+ depend("label", label.target, label.node);
814
+ }
815
+ // A style or an animation of several targets loses this one; of this one alone, it goes.
816
+ const partial = new Map();
817
+ for (const entry of [...diagram.styles, ...diagram.animations]) {
818
+ if (!keys.has(entry.target))
819
+ continue;
820
+ const index = entry.node.args.findIndex((a) => a.start === entry.targetRange.start.offset);
821
+ const set = partial.get(entry.node) ?? new Set();
822
+ if (index >= 0)
823
+ set.add(index);
824
+ partial.set(entry.node, set);
825
+ const kind = "properties" in entry ? "style" : "animate";
826
+ dependents.push({
827
+ kind,
828
+ name: entry.target,
829
+ description: messages().dependents.statement(kind, entry.target, lines.location(entry.node.start).line),
830
+ range: lines.range(entry.node),
831
+ });
832
+ }
833
+ for (const [node, indices] of partial) {
834
+ if (indices.size >= node.args.length)
835
+ statements.push(node);
836
+ else
837
+ edits.push(...removeListItems(node.args, indices));
838
+ }
839
+ const stories = storyDependents(ctx.compilation, diagram.id, keys);
840
+ statements.push(...stories.statements);
841
+ edits.push(...stories.edits);
842
+ dependents.push(...stories.dependents);
843
+ // An entity the view drew only for this relation leaves its default set, with what names it.
844
+ const model = c4.resolved?.definition;
845
+ if (model && c4.includes === null) {
846
+ const without = {
847
+ ...model,
848
+ relations: model.relations.filter((r) => r.key !== key),
849
+ };
850
+ const after = defaultEntities(without, c4.level, c4.scope);
851
+ for (const path of defaultEntities(model, c4.level, c4.scope)) {
852
+ if (after.has(path) || !diagram.elementsById.has(path))
853
+ continue;
854
+ dependents.push({
855
+ kind: "element",
856
+ name: path,
857
+ description: messages().dependents.leavesView(path, diagram.id),
858
+ range: lines.range(diagram.node),
859
+ });
860
+ // What the entity's own removal would take, less what the relation's already takes.
861
+ const leaving = viewDependents(ctx, diagram, path);
862
+ const taken = new Set(statements.map((s) => s.start));
863
+ const listed = new Set(dependents.map((d) => `${d.range.start.offset}:${d.description}`));
864
+ statements.push(...leaving.statements.filter((s) => !taken.has(s.start)));
865
+ edits.push(...leaving.edits);
866
+ dependents.push(...leaving.dependents.filter((d) => !listed.has(`${d.range.start.offset}:${d.description}`)));
867
+ }
868
+ }
869
+ return { statements, edits, dependents };
870
+ }
581
871
  export function removeModelRelation(ctx, op) {
582
872
  const relation = requireModelRelation(ctx, op.relation);
583
873
  const statements = [relation.node];
584
- // View statements that name the relation by its key.
874
+ const edits = [];
875
+ const dependents = [];
585
876
  for (const diagram of ctx.compilation.document.diagrams) {
586
877
  const c4 = diagram.c4;
587
878
  if (!c4 || c4.resolved?.file !== null || c4.resolved.definition.id !== ctx.model.id)
588
879
  continue;
589
- // Combinations that stand for this relation only go too, with what names them.
590
- const keys = new Set([relation.key]);
591
- for (const drawn of diagram.relations) {
592
- if (isCombination(diagram, drawn.key) && drawn.sources.every((k) => k === relation.key)) {
593
- keys.add(drawn.key);
594
- statements.push(drawn.node);
595
- }
596
- }
597
- for (const entry of diagram.placement)
598
- if (keys.has(entry.target))
599
- statements.push(entry.node);
600
- for (const label of c4.labels)
601
- if (keys.has(label.target))
602
- statements.push(label.node);
603
- for (const entry of [...diagram.styles, ...diagram.animations]) {
604
- if (keys.has(entry.target))
605
- statements.push(entry.node);
606
- }
880
+ const found = relationStatements(ctx, diagram, relation.key, diagram.id !== op.view);
881
+ statements.push(...found.statements);
882
+ edits.push(...found.edits);
883
+ dependents.push(...found.dependents);
607
884
  }
608
- const edits = deleteStatements(ctx.text, ctx.compilation.parse.root, statements);
885
+ if (!op.cascade && dependents.length > 0) {
886
+ reject("edit.has-dependents", reasons().c4.removingRelation(relation.key, dependents.length), dependents);
887
+ }
888
+ edits.push(...deleteStatements(ctx.text, ctx.compilation.parse.root, statements));
889
+ verifyNoNewErrors(ctx, edits);
890
+ return edits;
891
+ }
892
+ /**
893
+ * Takes a model relation out of a view whose model is in another file: the statements that name
894
+ * it go (with `cascade`), or are listed as dependents, with the view as drawing it.
895
+ */
896
+ export function forgetModelRelation(ctx, op) {
897
+ requireView(ctx);
898
+ const { statements, edits, dependents } = relationStatements(ctx, ctx.diagram, op.relation, op.listDrawn ?? true);
899
+ if (!op.cascade && dependents.length > 0) {
900
+ reject("edit.has-dependents", reasons().c4.removingRelation(op.relation, dependents.length), dependents);
901
+ }
902
+ edits.push(...deleteStatements(ctx.text, ctx.compilation.parse.root, statements));
609
903
  verifyNoNewErrors(ctx, edits);
610
904
  return edits;
611
905
  }
package/dist/c4.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"c4.js","sourceRoot":"","sources":["../src/c4.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"c4.js","sourceRoot":"","sources":["../src/c4.ts"],"names":[],"mappings":"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"}
package/dist/context.d.ts CHANGED
@@ -25,6 +25,13 @@ export declare function requireElement(ctx: EditContext, id: string): Element;
25
25
  /** Resolves a relation by id. Anonymous keys are refused: the relation needs `as <id>` first. */
26
26
  export declare function requireNamedRelation(ctx: EditContext, name: string): Relation;
27
27
  export declare function requireNumbers(...values: number[]): void;
28
+ /** Checks the position of a declaration among those of its block: a whole number from 0. */
29
+ export declare function requireIndex(index: number): void;
30
+ /**
31
+ * Whether `id` names a list: a group of a free diagram whose block writes `layout column` or
32
+ * `layout row`, which places its children itself.
33
+ */
34
+ export declare function isListGroup(ctx: EditContext, id: string | null | undefined): boolean;
28
35
  /**
29
36
  * Inserts a statement as the last statement of a block, following the block's layout:
30
37
  * a new line indented like the existing statements, or `; statement` in a one-line block.
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,KAAK,EACV,KAAK,QAAQ,EAEd,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAG3F,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3D,0FAA0F;AAC1F,qBAAa,QAAS,SAAQ,KAAK;IACrB,QAAQ,CAAC,SAAS,EAAE,aAAa;gBAAxB,SAAS,EAAE,aAAa;CAG9C;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,CAEpF;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,0EAA0E;IAC1E,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,kFAAkF;AAClF,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AAE/F,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,CAQvE;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,CAStF;AAmCD,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAIpE;AAED,iGAAiG;AACjG,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAK7E;AAED,wBAAgB,cAAc,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAMxD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,EACzC,OAAO,GAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1C,QAAQ,CAyCV"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,KAAK,EACV,KAAK,QAAQ,EAEd,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAG3F,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3D,0FAA0F;AAC1F,qBAAa,QAAS,SAAQ,KAAK;IACrB,QAAQ,CAAC,SAAS,EAAE,aAAa;gBAAxB,SAAS,EAAE,aAAa;CAG9C;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,CAEpF;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,0EAA0E;IAC1E,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,kFAAkF;AAClF,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AAE/F,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,CAQvE;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,CAStF;AAmCD,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAIpE;AAED,iGAAiG;AACjG,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAK7E;AAED,wBAAgB,cAAc,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAMxD;AAED,4FAA4F;AAC5F,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAIhD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAGpF;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,EACzC,OAAO,GAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1C,QAAQ,CAyCV"}