@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/insert.d.ts CHANGED
@@ -1,8 +1,13 @@
1
- import { type Block, type KeywordStatement, type ShorthandDeclaration, type Statement, type TextEdit } from "@meltemi/diagrams-language";
1
+ import { type Block, type KeywordStatement, type ShorthandDeclaration, type Statement, type TextEdit, type Trivia } from "@meltemi/diagrams-language";
2
2
  import { type Element } from "@meltemi/diagrams-model";
3
3
  import { type EditContext, type TextContext } from "./context.js";
4
4
  /** Keywords that declare an element. */
5
5
  export declare const DECLARATION_KEYWORDS: ReadonlySet<string>;
6
+ /**
7
+ * A group's own statements, which come before its children: what its block says of the group,
8
+ * the arrangement of a list included.
9
+ */
10
+ export declare const GROUP_OWN_KEYWORDS: readonly string[];
6
11
  /** Diagram properties, which come first in a diagram body. */
7
12
  export declare const DIAGRAM_PROPERTY_KEYWORDS: ReadonlySet<string>;
8
13
  export declare function isDeclaration(statement: Statement): boolean;
@@ -31,6 +36,39 @@ export declare function insertBefore(ctx: TextContext, before: Statement, render
31
36
  * else after the last diagram property (in the diagram body), else first, else last.
32
37
  */
33
38
  export declare function insertDeclaration(ctx: EditContext, block: Block, owner: number, render: (indent: string | null) => string, anchorKinds?: (statement: Statement) => boolean): TextEdit;
39
+ /**
40
+ * The comments on the lines right above a statement of `block`, which belong to it: line breaks
41
+ * that follow a line break and end a line that holds only comments. A blank line ends them.
42
+ */
43
+ export declare function commentsAbove(block: Block, statement: Statement): Trivia[];
44
+ /**
45
+ * Inserts a statement before `before`, a statement of `block`: on a line of its own above the
46
+ * comment lines that belong to `before` when it starts a line, or followed by `; ` otherwise.
47
+ */
48
+ export declare function insertBeforeStatement(ctx: TextContext, block: Block, before: Statement, render: (indent: string | null) => string): TextEdit;
49
+ /**
50
+ * Inserts a declaration into `block`, the diagram body when `body` is true or a group's block
51
+ * otherwise: before `before` when given, else after the last declaration, else after a group's
52
+ * own statements. A block written on one line that is empty, or that holds only a group's own
53
+ * statements, opens onto lines, so that the declarations go on lines of their own.
54
+ */
55
+ export declare function insertIntoBlock(ctx: EditContext, block: Block, owner: number, body: boolean, render: (indent: string | null) => string, before?: Statement): TextEdit;
56
+ /**
57
+ * Declares an implicit element with `text`, where the declaration keeps the order of the
58
+ * diagram's elements. The model orders them by where each is named first: a declared element by
59
+ * its declaration's id, an implicit one by its first mention, which is a sequence diagram's
60
+ * column order and a list's order of children. The declaration goes in the block that holds the
61
+ * first mention (a group's, or the diagram body): after the block's declarations, as a new one
62
+ * goes, when no other element is named between there and the first mention; else right before
63
+ * the statement of the block that holds the mention, after the declarations of the implicit
64
+ * elements that the statement names first before it, in their order.
65
+ */
66
+ export declare function declareImplicit(ctx: EditContext, element: Element, text: string): TextEdit;
67
+ /**
68
+ * Inserts a `style` statement with the diagram's: after the last `style` statement of the body,
69
+ * else as its last statement. A group takes no `style` statement, so its children's go here.
70
+ */
71
+ export declare function insertDiagramStyle(ctx: EditContext, text: string): TextEdit;
34
72
  /** Re-indents a statement's text from `from` to `to`, line by line after the first. */
35
73
  export declare function reindent(text: string, from: string, to: string): string;
36
74
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"insert.d.ts","sourceRoot":"","sources":["../src/insert.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,KAAK,EACV,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,SAAS,EACd,KAAK,QAAQ,EAEd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAW,KAAK,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AAItB,wCAAwC;AACxC,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAmBnD,CAAC;AAEH,8DAA8D;AAC9D,eAAO,MAAM,yBAAyB,EAAE,WAAW,CAAC,MAAM,CAaxD,CAAC;AAkBH,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAO3D;AAED,wBAAgB,SAAS,CACvB,SAAS,EAAE,SAAS,EACpB,GAAG,QAAQ,EAAE,MAAM,EAAE,GACpB,SAAS,IAAI,gBAAgB,CAE/B;AAED,+BAA+B;AAC/B,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,KAAK,CAInD;AAED,qFAAqF;AACrF,wBAAgB,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAQxF;AAED,mFAAmF;AACnF,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,GACf,oBAAoB,GAAG,gBAAgB,GAAG,SAAS,CAErD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,GACxC,QAAQ,CAmBV;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,GACxC,QAAQ,CAOV;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,EACzC,WAAW,GAAE,CAAC,SAAS,EAAE,SAAS,KAAK,OAAuB,GAC7D,QAAQ,CAaV;AAED,uFAAuF;AACvF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAQvE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,IAAI,CAYpF"}
1
+ {"version":3,"file":"insert.d.ts","sourceRoot":"","sources":["../src/insert.ts"],"names":[],"mappings":"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"}
package/dist/insert.js CHANGED
@@ -1,8 +1,8 @@
1
- import { applyTextEdits, isToken, } from "@meltemi/diagrams-language";
1
+ import { applyTextEdits, isToken, tokensOf, } from "@meltemi/diagrams-language";
2
2
  import { compile } from "@meltemi/diagrams-model";
3
3
  import { insertStatement, reject, requireElement, } from "./context.js";
4
4
  import { reasons } from "./messages/index.js";
5
- import { lineIndent, lineStart } from "./text.js";
5
+ import { hasOnlyWhitespaceTrivia, isCommentTrivia, lineIndent, lineStart } from "./text.js";
6
6
  /** Keywords that declare an element. */
7
7
  export const DECLARATION_KEYWORDS = new Set([
8
8
  "node",
@@ -15,6 +15,9 @@ export const DECLARATION_KEYWORDS = new Set([
15
15
  "text",
16
16
  "icon",
17
17
  "image",
18
+ "sticky",
19
+ "line",
20
+ "pen",
18
21
  "participant",
19
22
  "actor",
20
23
  "boundary",
@@ -24,6 +27,20 @@ export const DECLARATION_KEYWORDS = new Set([
24
27
  "collections",
25
28
  "queue",
26
29
  ]);
30
+ /**
31
+ * A group's own statements, which come before its children: what its block says of the group,
32
+ * the arrangement of a list included.
33
+ */
34
+ export const GROUP_OWN_KEYWORDS = [
35
+ "description",
36
+ "class",
37
+ "layer",
38
+ "link",
39
+ "url",
40
+ "layout",
41
+ "spacing",
42
+ "align",
43
+ ];
27
44
  /** Diagram properties, which come first in a diagram body. */
28
45
  export const DIAGRAM_PROPERTY_KEYWORDS = new Set([
29
46
  "direction",
@@ -36,6 +53,7 @@ export const DIAGRAM_PROPERTY_KEYWORDS = new Set([
36
53
  "canvas",
37
54
  "layers",
38
55
  "autonumber",
56
+ "spacing",
39
57
  "level",
40
58
  "scope",
41
59
  ]);
@@ -137,6 +155,114 @@ export function insertDeclaration(ctx, block, owner, render, anchorKinds = isDec
137
155
  return insertBefore(ctx, first, render);
138
156
  return insertStatement(ctx, block, owner, render);
139
157
  }
158
+ /**
159
+ * The comments on the lines right above a statement of `block`, which belong to it: line breaks
160
+ * that follow a line break and end a line that holds only comments. A blank line ends them.
161
+ */
162
+ export function commentsAbove(block, statement) {
163
+ const children = block.children;
164
+ const above = [];
165
+ for (let i = children.indexOf(statement) - 1; i > 0; i--) {
166
+ const child = children[i];
167
+ const previous = children[i - 1];
168
+ if (!isToken(child) || child.kind !== "Newline")
169
+ break;
170
+ if (!isToken(previous) || previous.kind !== "Newline")
171
+ break;
172
+ const comments = child.leadingTrivia.filter(isCommentTrivia);
173
+ if (comments.length === 0)
174
+ break;
175
+ above.unshift(...comments);
176
+ }
177
+ return above;
178
+ }
179
+ /**
180
+ * Inserts a statement before `before`, a statement of `block`: on a line of its own above the
181
+ * comment lines that belong to `before` when it starts a line, or followed by `; ` otherwise.
182
+ */
183
+ export function insertBeforeStatement(ctx, block, before, render) {
184
+ const first = commentsAbove(block, before)[0];
185
+ if (!first)
186
+ return insertBefore(ctx, before, render);
187
+ const start = lineStart(ctx.text, first.start);
188
+ const indent = lineIndent(ctx.text, before.start);
189
+ return { start, end: start, newText: indent + render(indent) + ctx.eol };
190
+ }
191
+ /**
192
+ * Inserts a declaration into `block`, the diagram body when `body` is true or a group's block
193
+ * otherwise: before `before` when given, else after the last declaration, else after a group's
194
+ * own statements. A block written on one line that is empty, or that holds only a group's own
195
+ * statements, opens onto lines, so that the declarations go on lines of their own.
196
+ */
197
+ export function insertIntoBlock(ctx, block, owner, body, render, before) {
198
+ if (before)
199
+ return insertBeforeStatement(ctx, block, before, render);
200
+ const close = block.close;
201
+ const lineBreaks = block.children.some((c) => isToken(c) && c.kind === "Newline");
202
+ const own = !body && !block.statements.some(isDeclaration);
203
+ const quiet = [...tokensOf(block)].every((t) => t === block.open || hasOnlyWhitespaceTrivia(t));
204
+ const opens = !lineBreaks &&
205
+ isToken(close) &&
206
+ quiet &&
207
+ (block.statements.length === 0 ||
208
+ (own && block.statements.every((s) => isKeyword(s, ...GROUP_OWN_KEYWORDS))));
209
+ if (opens) {
210
+ const indent = lineIndent(ctx.text, owner);
211
+ const inner = indent + ctx.unit;
212
+ const lines = [
213
+ ...block.statements.map((s) => ctx.text.slice(s.start, s.end)),
214
+ render(inner),
215
+ ].map((line) => inner + line);
216
+ return {
217
+ start: block.open.end,
218
+ end: close.start,
219
+ newText: `${ctx.eol}${lines.join(ctx.eol)}${ctx.eol}${indent}`,
220
+ };
221
+ }
222
+ return insertDeclaration(ctx, block, owner, render, own ? (s) => isKeyword(s, ...GROUP_OWN_KEYWORDS) : isDeclaration);
223
+ }
224
+ /**
225
+ * Declares an implicit element with `text`, where the declaration keeps the order of the
226
+ * diagram's elements. The model orders them by where each is named first: a declared element by
227
+ * its declaration's id, an implicit one by its first mention, which is a sequence diagram's
228
+ * column order and a list's order of children. The declaration goes in the block that holds the
229
+ * first mention (a group's, or the diagram body): after the block's declarations, as a new one
230
+ * goes, when no other element is named between there and the first mention; else right before
231
+ * the statement of the block that holds the mention, after the declarations of the implicit
232
+ * elements that the statement names first before it, in their order.
233
+ */
234
+ export function declareImplicit(ctx, element, text) {
235
+ const group = element.groupPath[element.groupPath.length - 1];
236
+ const { block, owner } = group
237
+ ? groupBlock(ctx, group)
238
+ : { block: diagramBody(ctx), owner: ctx.diagram.node.start };
239
+ const mention = element.idToken.start;
240
+ const usual = insertIntoBlock(ctx, block, owner, group === undefined, () => text);
241
+ const at = usual.start;
242
+ const others = ctx.diagram.elements.filter((other) => other !== element);
243
+ const crossed = others.some((other) => {
244
+ const named = other.idToken.start;
245
+ return at <= mention ? named >= at && named < mention : named > mention && named < at;
246
+ });
247
+ const statement = block.statements.find((s) => s.start <= mention && mention < s.end);
248
+ if (!crossed || !statement)
249
+ return usual;
250
+ const earlier = others.filter((other) => !other.node && other.idToken.start >= statement.start && other.idToken.start < mention);
251
+ const lines = [...earlier.map((other) => `${other.kind} ${other.id}`), text];
252
+ return insertBeforeStatement(ctx, block, statement, (indent) => lines.join(indent === null ? "; " : ctx.eol + indent));
253
+ }
254
+ /**
255
+ * Inserts a `style` statement with the diagram's: after the last `style` statement of the body,
256
+ * else as its last statement. A group takes no `style` statement, so its children's go here.
257
+ */
258
+ export function insertDiagramStyle(ctx, text) {
259
+ const body = diagramBody(ctx);
260
+ const styles = body.statements.filter((s) => isKeyword(s, "style"));
261
+ const last = styles[styles.length - 1];
262
+ return last
263
+ ? insertAfter(ctx, body, last, () => text)
264
+ : insertStatement(ctx, body, ctx.diagram.node.start, () => text);
265
+ }
140
266
  /** Re-indents a statement's text from `from` to `to`, line by line after the first. */
141
267
  export function reindent(text, from, to) {
142
268
  return text
@@ -1 +1 @@
1
- {"version":3,"file":"insert.js","sourceRoot":"","sources":["../src/insert.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"insert.js","sourceRoot":"","sources":["../src/insert.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"labels.d.ts","sourceRoot":"","sources":["../src/labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,QAAQ,EACd,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAA2C,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAIzF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAsB7C,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,CAAC,iBAAiB,CAAC,GAAG,QAAQ,EAAE,CAqBhG;AAOD,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,CAAC,gBAAgB,CAAC,GAAG,QAAQ,EAAE,CAqC9F;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,CAAC,gBAAgB,CAAC,GAAG,QAAQ,EAAE,CA6D9F;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,CAAC,YAAY,CAAC,GAAG,QAAQ,EAAE,CAmCtF"}
1
+ {"version":3,"file":"labels.d.ts","sourceRoot":"","sources":["../src/labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,QAAQ,EACd,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAA2C,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAIzF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAiB7C,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,CAAC,iBAAiB,CAAC,GAAG,QAAQ,EAAE,CA0BhG;AAOD,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,CAAC,gBAAgB,CAAC,GAAG,QAAQ,EAAE,CAsC9F;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,CAAC,gBAAgB,CAAC,GAAG,QAAQ,EAAE,CAiE9F;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,CAAC,YAAY,CAAC,GAAG,QAAQ,EAAE,CAoCtF"}
package/dist/labels.js CHANGED
@@ -3,15 +3,11 @@ import { takesShape } from "@meltemi/diagrams-model";
3
3
  import { insertStatement, reject, requireElement } from "./context.js";
4
4
  import { declarationText } from "./create.js";
5
5
  import { deleteStatements } from "./delete.js";
6
- import { diagramBody, insertDeclaration, isKeyword } from "./insert.js";
6
+ import { declareImplicit, isKeyword } from "./insert.js";
7
7
  import { requireRelation } from "./relations.js";
8
8
  import { setStyleProperty } from "./styles.js";
9
9
  import { reasons } from "./messages/index.js";
10
10
  import { quoteString } from "./text.js";
11
- /** Declares an implicit element, so that it can carry a label, a description or a kind. */
12
- function declareImplicit(ctx, text) {
13
- return insertDeclaration(ctx, diagramBody(ctx), ctx.diagram.node.start, () => text);
14
- }
15
11
  /** The string literal that holds the label of a declaration, if it is written. */
16
12
  function labelToken(node) {
17
13
  if (node.kind === "ShorthandDeclaration") {
@@ -25,11 +21,13 @@ export function setElementLabel(ctx, op) {
25
21
  if (element.kind === "icon" || element.kind === "image") {
26
22
  reject("edit.unsafe-target", reasons().elements.sourcedLabel(element.id, element.kind));
27
23
  }
24
+ if (element.kind === "pen")
25
+ reject("edit.unsafe-target", reasons().pens.noLabel(element.id));
28
26
  const quoted = quoteString(op.label);
29
27
  const node = element.node;
30
28
  if (!node) {
31
29
  return [
32
- declareImplicit(ctx, declarationText(element.kind, element.id, op.label, ctx.diagram.type)),
30
+ declareImplicit(ctx, element, declarationText(element.kind, element.id, op.label, ctx.diagram.type)),
33
31
  ];
34
32
  }
35
33
  const token = labelToken(node);
@@ -55,7 +53,7 @@ export function setDescription(ctx, op) {
55
53
  if (op.description === null)
56
54
  return [];
57
55
  return [
58
- declareImplicit(ctx, `${declarationText(element.kind, element.id, element.label, ctx.diagram.type)} { description ${quoteString(op.description)} }`),
56
+ declareImplicit(ctx, element, `${declarationText(element.kind, element.id, element.label, ctx.diagram.type)} { description ${quoteString(op.description)} }`),
59
57
  ];
60
58
  }
61
59
  node = element.node;
@@ -129,7 +127,7 @@ export function setElementKind(ctx, op) {
129
127
  const node = element.node;
130
128
  if (!node) {
131
129
  return [
132
- declareImplicit(ctx, declarationText(kind, element.id, element.label, ctx.diagram.type)),
130
+ declareImplicit(ctx, element, declarationText(kind, element.id, element.label, ctx.diagram.type)),
133
131
  ...unshaped,
134
132
  ];
135
133
  }
@@ -157,7 +155,7 @@ export function setClasses(ctx, op) {
157
155
  if (op.classes.length === 0)
158
156
  return [];
159
157
  return [
160
- declareImplicit(ctx, `${declarationText(element.kind, element.id, element.label, ctx.diagram.type)} { ${text} }`),
158
+ declareImplicit(ctx, element, `${declarationText(element.kind, element.id, element.label, ctx.diagram.type)} { ${text} }`),
161
159
  ];
162
160
  }
163
161
  node = element.node;
@@ -1 +1 @@
1
- {"version":3,"file":"labels.js","sourceRoot":"","sources":["../src/labels.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"labels.js","sourceRoot":"","sources":["../src/labels.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { TextEdit } from "@meltemi/diagrams-language";
2
+ import { type EditContext } from "./context.js";
3
+ import { type OperationOf } from "./plan.js";
4
+ /**
5
+ * Declares a free line, `line <id> ["Label"] from (x, y) to (x, y) [via [...]]`, in the diagram
6
+ * body or in `parent`'s block, its points already in that parent's interior coordinates, and its
7
+ * styles in one `style` statement beside it (with the diagram's styles when it goes in a group).
8
+ */
9
+ export declare function createLine(ctx: EditContext, op: OperationOf<"createLine">): TextEdit[];
10
+ /**
11
+ * Moves the points of a free line: the tuples after `from` and `to` change number by number, and
12
+ * the bends are written in a `via` list after `to`, inserted when they appear and removed with
13
+ * the word when none is left. Points are in the parent's interior coordinates, rounded.
14
+ */
15
+ export declare function setLinePoints(ctx: EditContext, op: OperationOf<"setLinePoints">): TextEdit[];
16
+ //# sourceMappingURL=lines.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lines.d.ts","sourceRoot":"","sources":["../src/lines.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAyB,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAElF,OAAO,EAA0B,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAUxE,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAc3D;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,CAAC,YAAY,CAAC,GAAG,QAAQ,EAAE,CA6BtF;AAiDD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,CAAC,eAAe,CAAC,GAAG,QAAQ,EAAE,CAwB5F"}
package/dist/lines.js ADDED
@@ -0,0 +1,123 @@
1
+ import { reject, requireElement } from "./context.js";
2
+ import { freeId } from "./create.js";
3
+ import { diagramBody, groupBlock, insertDeclaration, insertDiagramStyle, verifyNoNewErrors, } from "./insert.js";
4
+ import { reasons } from "./messages/index.js";
5
+ import { requireNewId } from "./plan.js";
6
+ import { formatNumber, formatPoint, formatPoints, isWritableNumber, quoteString } from "./text.js";
7
+ const rounded = (point) => ({ x: Math.round(point.x), y: Math.round(point.y) });
8
+ function requirePoints(points) {
9
+ for (const p of points) {
10
+ for (const value of [p.x, p.y]) {
11
+ if (!isWritableNumber(value))
12
+ reject("edit.invalid-value", reasons().values.notCoordinate(value));
13
+ }
14
+ }
15
+ }
16
+ /**
17
+ * Declares a free line, `line <id> ["Label"] from (x, y) to (x, y) [via [...]]`, in the diagram
18
+ * body or in `parent`'s block, its points already in that parent's interior coordinates, and its
19
+ * styles in one `style` statement beside it (with the diagram's styles when it goes in a group).
20
+ */
21
+ export function createLine(ctx, op) {
22
+ if (ctx.diagram.type !== "free") {
23
+ reject("edit.invalid-value", reasons().lines.freeOnly);
24
+ }
25
+ const via = op.via ?? [];
26
+ requirePoints([op.from, op.to, ...via]);
27
+ const id = op.id ?? freeId(ctx, "line");
28
+ requireNewId(ctx, id);
29
+ const label = op.label !== undefined && op.label !== "" ? ` ${quoteString(op.label)}` : "";
30
+ const bends = via.length > 0 ? ` via ${formatPoints(via.map(rounded))}` : "";
31
+ const text = `line ${id}${label} from ${formatPoint(rounded(op.from))} to ${formatPoint(rounded(op.to))}${bends}`;
32
+ const properties = (op.styles ?? []).map((s) => `${s.property} ${s.value}`);
33
+ const styled = properties.length > 0 ? `style ${id} { ${properties.join("; ")} }` : undefined;
34
+ const beside = styled !== undefined && !op.parent ? styled : undefined;
35
+ const { block, owner } = op.parent
36
+ ? groupBlock(ctx, op.parent)
37
+ : { block: diagramBody(ctx), owner: ctx.diagram.node.start };
38
+ const edits = [
39
+ insertDeclaration(ctx, block, owner, (indent) => beside === undefined
40
+ ? text
41
+ : indent === null
42
+ ? `${text}; ${beside}`
43
+ : `${text}${ctx.eol}${indent}${beside}`),
44
+ ];
45
+ if (styled !== undefined && op.parent)
46
+ edits.push(insertDiagramStyle(ctx, styled));
47
+ verifyNoNewErrors(ctx, edits);
48
+ return edits;
49
+ }
50
+ /** The parts of a line statement: the tuples after `from` and `to`, and `via` with its list. */
51
+ function lineParts(stmt) {
52
+ const args = stmt.args;
53
+ const word = (arg, text) => arg?.kind === "QualifiedRef" && arg.text === text;
54
+ const at = (text) => args.findIndex((a) => word(a, text));
55
+ const fromAt = at("from");
56
+ const toAt = at("to");
57
+ const viaAt = at("via");
58
+ const from = args[fromAt + 1];
59
+ const to = args[toAt + 1];
60
+ if (fromAt < 0 || toAt < 0 || from?.kind !== "Tuple" || to?.kind !== "Tuple") {
61
+ reject("edit.unsafe-target", reasons().placement.expectedPoint);
62
+ }
63
+ return {
64
+ from: from,
65
+ to: to,
66
+ viaWord: viaAt < 0 ? undefined : args[viaAt],
67
+ viaList: viaAt < 0 ? undefined : args[viaAt + 1],
68
+ };
69
+ }
70
+ /** The edits that write `point` into a tuple, number by number, keeping what is equal. */
71
+ function tupleEdits(tuple, point) {
72
+ if (tuple.kind !== "Tuple")
73
+ reject("edit.unsafe-target", reasons().placement.expectedPoint);
74
+ const edits = [];
75
+ const items = tuple.kind === "Tuple" ? tuple.items : [];
76
+ const [x, y] = items;
77
+ for (const [arg, value] of [
78
+ [x, point.x],
79
+ [y, point.y],
80
+ ]) {
81
+ if (arg?.kind !== "NumberLiteral") {
82
+ reject("edit.unsafe-target", reasons().placement.expectedNumber);
83
+ }
84
+ if (arg.kind === "NumberLiteral" && arg.value !== value) {
85
+ edits.push({ start: arg.token.start, end: arg.token.end, newText: formatNumber(value) });
86
+ }
87
+ }
88
+ return edits;
89
+ }
90
+ /**
91
+ * Moves the points of a free line: the tuples after `from` and `to` change number by number, and
92
+ * the bends are written in a `via` list after `to`, inserted when they appear and removed with
93
+ * the word when none is left. Points are in the parent's interior coordinates, rounded.
94
+ */
95
+ export function setLinePoints(ctx, op) {
96
+ const element = requireElement(ctx, op.element);
97
+ if (element.kind !== "line" || element.node?.kind !== "KeywordStatement") {
98
+ reject("edit.invalid-value", reasons().lines.notALine(op.element));
99
+ }
100
+ requirePoints([op.from, op.to, ...op.via]);
101
+ const stmt = element.node;
102
+ const parts = lineParts(stmt);
103
+ const from = rounded(op.from);
104
+ const to = rounded(op.to);
105
+ const via = op.via.map(rounded);
106
+ const edits = [...tupleEdits(parts.from, from), ...tupleEdits(parts.to, to)];
107
+ const list = parts.viaList?.kind === "List" ? parts.viaList : undefined;
108
+ if (list && via.length === list.items.length) {
109
+ list.items.forEach((item, i) => edits.push(...tupleEdits(item, via[i])));
110
+ }
111
+ else if (list && via.length > 0) {
112
+ edits.push({ start: list.start, end: list.end, newText: formatPoints(via) });
113
+ }
114
+ else if (list) {
115
+ // No bend left: ` via [...]` goes, from the end of the `to` tuple.
116
+ edits.push({ start: parts.to.end, end: list.end, newText: "" });
117
+ }
118
+ else if (via.length > 0) {
119
+ edits.push({ start: parts.to.end, end: parts.to.end, newText: ` via ${formatPoints(via)}` });
120
+ }
121
+ return edits;
122
+ }
123
+ //# sourceMappingURL=lines.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lines.js","sourceRoot":"","sources":["../src/lines.ts"],"names":[],"mappings":"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"}