@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.
- package/dist/animate.d.ts.map +1 -1
- package/dist/animate.js +3 -0
- package/dist/animate.js.map +1 -1
- package/dist/attachments.d.ts +30 -0
- package/dist/attachments.d.ts.map +1 -0
- package/dist/attachments.js +85 -0
- package/dist/attachments.js.map +1 -0
- package/dist/c4.d.ts +26 -1
- package/dist/c4.d.ts.map +1 -1
- package/dist/c4.js +321 -27
- package/dist/c4.js.map +1 -1
- package/dist/context.d.ts +7 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +15 -0
- package/dist/context.js.map +1 -1
- package/dist/create.d.ts.map +1 -1
- package/dist/create.js +61 -15
- package/dist/create.js.map +1 -1
- package/dist/free.d.ts.map +1 -1
- package/dist/free.js +97 -9
- package/dist/free.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/insert.d.ts +39 -1
- package/dist/insert.d.ts.map +1 -1
- package/dist/insert.js +128 -2
- package/dist/insert.js.map +1 -1
- package/dist/labels.d.ts.map +1 -1
- package/dist/labels.js +7 -9
- package/dist/labels.js.map +1 -1
- package/dist/lines.d.ts +16 -0
- package/dist/lines.d.ts.map +1 -0
- package/dist/lines.js +123 -0
- package/dist/lines.js.map +1 -0
- package/dist/messages/en.d.ts +105 -1
- package/dist/messages/en.d.ts.map +1 -1
- package/dist/messages/en.js +108 -2
- package/dist/messages/en.js.map +1 -1
- package/dist/messages/es.d.ts.map +1 -1
- package/dist/messages/es.js +69 -2
- package/dist/messages/es.js.map +1 -1
- package/dist/messages/index.d.ts +61 -1
- package/dist/messages/index.d.ts.map +1 -1
- package/dist/pens.d.ts +16 -0
- package/dist/pens.d.ts.map +1 -0
- package/dist/pens.js +175 -0
- package/dist/pens.js.map +1 -0
- package/dist/plan.d.ts.map +1 -1
- package/dist/plan.js +125 -20
- package/dist/plan.js.map +1 -1
- package/dist/relations.d.ts +1 -1
- package/dist/relations.d.ts.map +1 -1
- package/dist/relations.js +35 -16
- package/dist/relations.js.map +1 -1
- package/dist/sequence.d.ts +13 -2
- package/dist/sequence.d.ts.map +1 -1
- package/dist/sequence.js +342 -31
- package/dist/sequence.js.map +1 -1
- package/dist/structure.d.ts +7 -5
- package/dist/structure.d.ts.map +1 -1
- package/dist/structure.js +49 -49
- package/dist/structure.js.map +1 -1
- package/dist/styles.d.ts.map +1 -1
- package/dist/styles.js +8 -3
- package/dist/styles.js.map +1 -1
- package/dist/tags.d.ts +19 -0
- package/dist/tags.d.ts.map +1 -0
- package/dist/tags.js +159 -0
- package/dist/tags.js.map +1 -0
- package/dist/text.d.ts +4 -0
- package/dist/text.d.ts.map +1 -1
- package/dist/text.js +9 -0
- package/dist/text.js.map +1 -1
- package/dist/types.d.ts +270 -21
- package/dist/types.d.ts.map +1 -1
- 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
|
/**
|
package/dist/insert.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insert.d.ts","sourceRoot":"","sources":["../src/insert.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
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
|
package/dist/insert.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insert.js","sourceRoot":"","sources":["../src/insert.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,OAAO,GAOR,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,OAAO,EAAgB,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,eAAe,EACf,MAAM,EACN,cAAc,GAGf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAElD,wCAAwC;AACxC,MAAM,CAAC,MAAM,oBAAoB,GAAwB,IAAI,GAAG,CAAC;IAC/D,MAAM;IACN,UAAU;IACV,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,aAAa;IACb,OAAO;IACP,UAAU;IACV,SAAS;IACT,QAAQ;IACR,UAAU;IACV,aAAa;IACb,OAAO;CACR,CAAC,CAAC;AAEH,8DAA8D;AAC9D,MAAM,CAAC,MAAM,yBAAyB,GAAwB,IAAI,GAAG,CAAC;IACpE,WAAW;IACX,QAAQ;IACR,SAAS;IACT,OAAO;IACP,OAAO;IACP,aAAa;IACb,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,YAAY;IACZ,OAAO;IACP,OAAO;CACR,CAAC,CAAC;AAEH,MAAM,cAAc,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAE/E,gDAAgD;AAChD,MAAM,IAAI,GAAG,CAAC,GAAiD,EAAsB,EAAE,CACrF,GAAG,EAAE,IAAI,KAAK,cAAc,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAE1F,4FAA4F;AAC5F,SAAS,WAAW,CAAC,SAA2B;IAC9C,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IACpD,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC;IACvC,OAAO,CACL,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACtC,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,MAAM,EAAE,IAAI,KAAK,cAAc,CAAC,CAC3E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,SAAoB;IAChD,OAAO,CACL,SAAS,CAAC,IAAI,KAAK,sBAAsB;QACzC,CAAC,SAAS,CAAC,IAAI,KAAK,kBAAkB;YACpC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;YAChD,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAC3B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,SAAoB,EACpB,GAAG,QAAkB;IAErB,OAAO,SAAS,CAAC,IAAI,KAAK,kBAAkB,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC5F,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,WAAW,CAAC,GAAgB;IAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;IAC/B,IAAI,CAAC,IAAI;QAAE,MAAM,CAAC,oBAAoB,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAClF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,UAAU,CAAC,GAAgB,EAAE,EAAU;IACrD,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACtC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;QAAE,MAAM,CAAC,oBAAoB,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IACxF,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,IAAI,IAAI,EAAE,IAAI,KAAK,kBAAkB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACrD,MAAM,CAAC,oBAAoB,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;AAClD,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,aAAa,CAC3B,OAAgB;IAEhB,OAAO,OAAO,CAAC,IAAI,CAAC;AACtB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,GAAgB,EAChB,KAAY,EACZ,KAAgB,EAChB,MAAyC;IAEzC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAChC,IAAI,OAA0B,CAAC;IAC/B,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnE,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;QAC3B,gFAAgF;QAChF,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW;YAAE,SAAS;QAC3D,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,GAAG,KAAK,CAAC;QAChE,MAAM;IACR,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,cAAc,GAClB,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7E,MAAM,MAAM,GAAG,cAAc;YAC3B,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI;YACnD,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACtC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IAClG,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;AAC5E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAC1B,GAAgB,EAChB,MAAiB,EACjB,MAAyC;IAEzC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAClD,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC;QAC3C,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;IAC3E,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AAClF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,GAAgB,EAChB,KAAY,EACZ,KAAa,EACb,MAAyC,EACzC,cAAiD,aAAa;IAE9D,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IACpC,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzC,IAAI,IAAI;QAAE,OAAO,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAClC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAkB,IAAI,yBAAyB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CACtF,CAAC;IACF,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnD,IAAI,QAAQ,IAAI,KAAK,KAAK,GAAG,CAAC,OAAO,CAAC,KAAK;QAAE,OAAO,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC9F,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,KAAK;QAAE,OAAO,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACnD,OAAO,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,IAAY,EAAE,EAAU;IAC7D,OAAO,IAAI;SACR,KAAK,CAAC,SAAS,CAAC;SAChB,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACf,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC;QAC9D,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IACtF,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAgB,EAAE,KAA0B;IAC5E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC/B,MAAM,GAAG,GAAG,CAAC,CAAoC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;IAC/E,MAAM,MAAM,GAAG,IAAI,GAAG,CACpB,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAC3E,CAAC;IACF,MAAM,KAAK,GAAG,OAAO,CACnB,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,EAC/B,GAAG,CAAC,WAAW,CAAC,OAAO,CACxB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,KAAK;QAAE,MAAM,CAAC,oBAAoB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;AACzD,CAAC"}
|
|
1
|
+
{"version":3,"file":"insert.js","sourceRoot":"","sources":["../src/insert.ts"],"names":[],"mappings":"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"}
|
package/dist/labels.d.ts.map
CHANGED
|
@@ -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;
|
|
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 {
|
|
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;
|
package/dist/labels.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"labels.js","sourceRoot":"","sources":["../src/labels.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,OAAO,GAKR,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,UAAU,EAAoB,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,EAAoB,MAAM,cAAc,CAAC;AACzF,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"labels.js","sourceRoot":"","sources":["../src/labels.ts"],"names":[],"mappings":"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"}
|
package/dist/lines.d.ts
ADDED
|
@@ -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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"}
|