@rasamjs/core 0.2.0 → 0.3.1

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 (178) hide show
  1. package/API.md +14 -4
  2. package/CHANGELOG.md +71 -0
  3. package/COMPONENTS.md +229 -0
  4. package/README.md +46 -6
  5. package/RELEASING.md +4 -2
  6. package/dist/advanced.d.ts +1 -1
  7. package/dist/advanced.d.ts.map +1 -1
  8. package/dist/catalog/fragment.d.ts +2 -2
  9. package/dist/catalog/fragment.d.ts.map +1 -1
  10. package/dist/catalog/fragment.js.map +1 -1
  11. package/dist/changes/derived.d.ts +10 -0
  12. package/dist/changes/derived.d.ts.map +1 -0
  13. package/dist/changes/derived.js +14 -0
  14. package/dist/changes/derived.js.map +1 -0
  15. package/dist/changes/restore.d.ts.map +1 -1
  16. package/dist/changes/restore.js +76 -28
  17. package/dist/changes/restore.js.map +1 -1
  18. package/dist/changes/service.d.ts +5 -0
  19. package/dist/changes/service.d.ts.map +1 -1
  20. package/dist/changes/service.js +18 -4
  21. package/dist/changes/service.js.map +1 -1
  22. package/dist/changes/state.d.ts.map +1 -1
  23. package/dist/changes/state.js +33 -27
  24. package/dist/changes/state.js.map +1 -1
  25. package/dist/changes.d.ts.map +1 -1
  26. package/dist/changes.js +20 -4
  27. package/dist/changes.js.map +1 -1
  28. package/dist/components/changes.d.ts +34 -0
  29. package/dist/components/changes.d.ts.map +1 -0
  30. package/dist/components/changes.js +119 -0
  31. package/dist/components/changes.js.map +1 -0
  32. package/dist/components/component.d.ts +62 -0
  33. package/dist/components/component.d.ts.map +1 -0
  34. package/dist/components/component.js +355 -0
  35. package/dist/components/component.js.map +1 -0
  36. package/dist/components/decorators.d.ts +7 -0
  37. package/dist/components/decorators.d.ts.map +1 -0
  38. package/dist/components/decorators.js +83 -0
  39. package/dist/components/decorators.js.map +1 -0
  40. package/dist/components/metadata.d.ts +10 -0
  41. package/dist/components/metadata.d.ts.map +1 -0
  42. package/dist/components/metadata.js +85 -0
  43. package/dist/components/metadata.js.map +1 -0
  44. package/dist/components/registry.d.ts +24 -0
  45. package/dist/components/registry.d.ts.map +1 -0
  46. package/dist/components/registry.js +78 -0
  47. package/dist/components/registry.js.map +1 -0
  48. package/dist/components/types.d.ts +54 -0
  49. package/dist/components/types.d.ts.map +1 -0
  50. package/dist/components/types.js +2 -0
  51. package/dist/components/types.js.map +1 -0
  52. package/dist/components/view.d.ts +9 -0
  53. package/dist/components/view.d.ts.map +1 -0
  54. package/dist/components/view.js +104 -0
  55. package/dist/components/view.js.map +1 -0
  56. package/dist/components.d.ts +6 -0
  57. package/dist/components.d.ts.map +1 -0
  58. package/dist/components.js +5 -0
  59. package/dist/components.js.map +1 -0
  60. package/dist/core/node.d.ts +7 -0
  61. package/dist/core/node.d.ts.map +1 -1
  62. package/dist/core/node.js +30 -0
  63. package/dist/core/node.js.map +1 -1
  64. package/dist/interchange/clone.d.ts.map +1 -1
  65. package/dist/interchange/clone.js +3 -2
  66. package/dist/interchange/clone.js.map +1 -1
  67. package/dist/interchange/reconstruct.d.ts.map +1 -1
  68. package/dist/interchange/reconstruct.js +16 -12
  69. package/dist/interchange/reconstruct.js.map +1 -1
  70. package/dist/interchange/references.d.ts.map +1 -1
  71. package/dist/interchange/references.js +10 -4
  72. package/dist/interchange/references.js.map +1 -1
  73. package/dist/mixins/parent-internals.d.ts +6 -0
  74. package/dist/mixins/parent-internals.d.ts.map +1 -1
  75. package/dist/mixins/parent-internals.js +34 -0
  76. package/dist/mixins/parent-internals.js.map +1 -1
  77. package/dist/mixins/parent.d.ts.map +1 -1
  78. package/dist/mixins/parent.js +6 -1
  79. package/dist/mixins/parent.js.map +1 -1
  80. package/dist/mixins/types.d.ts +2 -2
  81. package/dist/mixins/types.d.ts.map +1 -1
  82. package/dist/resources/references.d.ts +2 -0
  83. package/dist/resources/references.d.ts.map +1 -1
  84. package/dist/resources/references.js +3 -3
  85. package/dist/resources/references.js.map +1 -1
  86. package/dist/services/catalog.d.ts.map +1 -1
  87. package/dist/services/catalog.js +5 -3
  88. package/dist/services/catalog.js.map +1 -1
  89. package/dist/services/claims.d.ts +7 -0
  90. package/dist/services/claims.d.ts.map +1 -0
  91. package/dist/services/claims.js +11 -0
  92. package/dist/services/claims.js.map +1 -0
  93. package/dist/services/defs-manager.d.ts +2 -0
  94. package/dist/services/defs-manager.d.ts.map +1 -1
  95. package/dist/services/defs-manager.js +4 -0
  96. package/dist/services/defs-manager.js.map +1 -1
  97. package/dist/services/element-key.d.ts +4 -0
  98. package/dist/services/element-key.d.ts.map +1 -0
  99. package/dist/services/element-key.js +12 -0
  100. package/dist/services/element-key.js.map +1 -0
  101. package/dist/services/initialization.d.ts +7 -0
  102. package/dist/services/initialization.d.ts.map +1 -0
  103. package/dist/services/initialization.js +27 -0
  104. package/dist/services/initialization.js.map +1 -0
  105. package/dist/services/registry.d.ts +8 -0
  106. package/dist/services/registry.d.ts.map +1 -1
  107. package/dist/services/registry.js +47 -10
  108. package/dist/services/registry.js.map +1 -1
  109. package/dist/services/types.d.ts +17 -0
  110. package/dist/services/types.d.ts.map +1 -1
  111. package/dist/template/parts.d.ts +12 -6
  112. package/dist/template/parts.d.ts.map +1 -1
  113. package/dist/template/parts.js +36 -29
  114. package/dist/template/parts.js.map +1 -1
  115. package/dist/template/render.d.ts +6 -7
  116. package/dist/template/render.d.ts.map +1 -1
  117. package/dist/template/render.js +188 -44
  118. package/dist/template/render.js.map +1 -1
  119. package/dist/template/svg-tag.d.ts +5 -1
  120. package/dist/template/svg-tag.d.ts.map +1 -1
  121. package/dist/template/svg-tag.js.map +1 -1
  122. package/dist/text/internals.d.ts +1 -0
  123. package/dist/text/internals.d.ts.map +1 -1
  124. package/dist/types/common.d.ts +27 -0
  125. package/dist/types/common.d.ts.map +1 -1
  126. package/package.json +10 -1
  127. package/reports/adoption.json +20 -20
  128. package/reports/animation-benchmark.json +613 -613
  129. package/reports/benchmark.json +27 -27
  130. package/reports/change-groups-benchmark.json +471 -0
  131. package/reports/components-benchmark-before.json +10 -0
  132. package/reports/components-benchmark.json +10 -0
  133. package/reports/creation.json +26 -26
  134. package/reports/interchange-benchmark.json +85 -85
  135. package/reports/phase-3-core-after.json +40 -0
  136. package/reports/phase-3-core-before.json +40 -0
  137. package/reports/public-api-contract.json +335 -17
  138. package/reports/size-components.json +103 -0
  139. package/reports/size-parity.json +50 -34
  140. package/reports/size.json +7 -4
  141. package/reports/svgjs-comparison.json +3049 -3049
  142. package/reports/svgjs-comparison.md +15 -15
  143. package/reports/svgjs-parity-current.json +133 -46
  144. package/src/advanced.ts +1 -1
  145. package/src/catalog/fragment.ts +2 -2
  146. package/src/changes/derived.ts +19 -0
  147. package/src/changes/restore.ts +78 -36
  148. package/src/changes/service.ts +23 -8
  149. package/src/changes/state.ts +37 -28
  150. package/src/changes.ts +24 -5
  151. package/src/components/changes.ts +131 -0
  152. package/src/components/component.ts +401 -0
  153. package/src/components/decorators.ts +106 -0
  154. package/src/components/metadata.ts +111 -0
  155. package/src/components/registry.ts +79 -0
  156. package/src/components/types.ts +66 -0
  157. package/src/components/view.ts +123 -0
  158. package/src/components.ts +15 -0
  159. package/src/core/node.ts +32 -1
  160. package/src/interchange/clone.ts +3 -2
  161. package/src/interchange/reconstruct.ts +16 -12
  162. package/src/interchange/references.ts +12 -4
  163. package/src/mixins/parent-internals.ts +37 -0
  164. package/src/mixins/parent.ts +13 -4
  165. package/src/mixins/types.ts +2 -2
  166. package/src/resources/references.ts +5 -5
  167. package/src/services/catalog.ts +5 -3
  168. package/src/services/claims.ts +14 -0
  169. package/src/services/defs-manager.ts +5 -0
  170. package/src/services/element-key.ts +14 -0
  171. package/src/services/initialization.ts +25 -0
  172. package/src/services/registry.ts +49 -10
  173. package/src/services/types.ts +21 -0
  174. package/src/template/parts.ts +54 -39
  175. package/src/template/render.ts +211 -54
  176. package/src/template/svg-tag.ts +6 -1
  177. package/src/text/internals.ts +1 -0
  178. package/src/types/common.ts +29 -0
@@ -7,7 +7,16 @@ export class TemplateCompiler {
7
7
  constructor(strings) {
8
8
  this.counts = new Array(strings.length - 1).fill(0);
9
9
  }
10
+ /** Top-level elements; templates with top-level child holes need `content()`. */
10
11
  static compile(dom, strings) {
12
+ const content = TemplateCompiler.content(dom, strings);
13
+ if (content.some((item) => !('tag' in item) &&
14
+ item.parts.some((part) => part !== '' && (typeof part == 'number' || part.trim()))))
15
+ throw new TypeError('Template text must be inside a text element');
16
+ return content.filter((item) => 'tag' in item);
17
+ }
18
+ /** Top-level content in order: elements and text runs that may hold child holes. */
19
+ static content(dom, strings) {
11
20
  const cached = TemplateCompiler.cache.get(strings);
12
21
  if (cached)
13
22
  return cached;
@@ -18,38 +27,41 @@ export class TemplateCompiler {
18
27
  .map((part, index) => part + (index < strings.length - 1 ? `rasamHole${index}End` : ''))
19
28
  .join('');
20
29
  const result = [];
21
- for (const node of dom.parse(source)) {
22
- const description = compiler.describe(node);
23
- if (description)
24
- result.push(description);
25
- }
30
+ for (const node of dom.parse(source))
31
+ result.push('text' in node ? { parts: compiler.split(node.text) } : compiler.describe(node));
26
32
  if (compiler.counts.some((count) => count !== 1))
27
33
  throw new TypeError('Bindings must appear in attribute values or text elements');
28
34
  TemplateCompiler.cache.set(strings, result);
29
35
  return result;
30
36
  }
31
- static validate(descriptions, registry, forbidden = new Set()) {
32
- for (const description of descriptions) {
37
+ /** `parent` is the container class that receives `content`, for its child rules. */
38
+ static validate(content, registry, forbidden = new Set(), parent) {
39
+ for (const description of content) {
40
+ if (!('tag' in description)) {
41
+ if (description.parts.some((part) => typeof part == 'string' && part.trim()))
42
+ throw new TypeError('Template text must be inside a text element');
43
+ continue;
44
+ }
33
45
  const Constructor = registry.get(description.tag);
34
46
  if (forbidden.has(description.tag))
35
47
  throw new TypeError('Nested links or forbidden descendants are unsupported');
36
48
  if (!Constructor)
37
49
  throw new TypeError(`Unsupported template tag: ${description.tag}`);
50
+ if (parent?.childTags && !parent.childTags.includes(description.tag))
51
+ throw new TypeError(`${parent.tag} only accepts ${parent.childTags.join(', ')} children`);
38
52
  for (const name of Object.keys(description.attributes)) {
39
53
  if (!Constructor.attributeNames.includes(name) && !/^(?:data|aria)-[\w-]+$/.test(name))
40
54
  throw new TypeError(`Unsupported template attribute: ${name}`);
41
55
  }
42
56
  if (description.children.length > 0 && !Constructor.isContainer)
43
57
  throw new TypeError('Only containers may have element children');
44
- if (Constructor.childTags &&
45
- description.children.some((child) => !Constructor.childTags.includes(child.tag)))
46
- throw new TypeError(`${description.tag} only accepts ${Constructor.childTags.join(', ')} children`);
47
- if (description.text.some((part) => typeof part === 'number' || part.trim()) &&
48
- !Constructor.isText)
58
+ // Outside text elements, holes between children are child holes, so only containers take them.
59
+ if (!Constructor.isText &&
60
+ description.text.some((part) => typeof part == 'number' ? !Constructor.isContainer : part.trim()))
49
61
  throw new TypeError('Text bindings require a text element');
50
- TemplateCompiler.validate(description.children, registry, Constructor.forbiddenDescendantTags
62
+ TemplateCompiler.validate(Constructor.isText ? description.children : description.content, registry, Constructor.forbiddenDescendantTags
51
63
  ? new Set([...forbidden, ...Constructor.forbiddenDescendantTags])
52
- : forbidden);
64
+ : forbidden, Constructor);
53
65
  }
54
66
  }
55
67
  split(value) {
@@ -67,11 +79,6 @@ export class TemplateCompiler {
67
79
  return parts;
68
80
  }
69
81
  describe(node) {
70
- if ('text' in node) {
71
- if (node.text.trim())
72
- throw new TypeError('Template text must be inside a text element');
73
- return null;
74
- }
75
82
  if (/rasamHole\d+End/.test(node.tag))
76
83
  throw new TypeError('Dynamic tag names are unsupported');
77
84
  const attributes = {};
@@ -97,10 +104,8 @@ export class TemplateCompiler {
97
104
  }
98
105
  else {
99
106
  const description = this.describe(child);
100
- if (description) {
101
- children.push(description);
102
- content.push(description);
103
- }
107
+ children.push(description);
108
+ content.push(description);
104
109
  }
105
110
  }
106
111
  return { tag: node.tag, attributes, children, text, content };
@@ -111,7 +116,6 @@ export class BindingPart {
111
116
  name;
112
117
  parts;
113
118
  textBinding;
114
- previous;
115
119
  constructor(node, name, parts, textBinding) {
116
120
  this.node = node;
117
121
  this.name = name;
@@ -150,20 +154,23 @@ export class BindingPart {
150
154
  throw new TypeError('Templates support only local url(#id) references');
151
155
  }
152
156
  }
153
- commit(value, initial = false) {
154
- if (!initial && value === this.previous)
155
- return;
157
+ commit(value) {
156
158
  if (this.name === null) {
157
159
  if (!Guards.isTextual(this.node))
158
160
  throw new TypeError('Text binding requires the Textual mixin');
161
+ if ((this.textBinding ? this.textBinding.value : this.node.text()) === (value ?? ''))
162
+ return;
159
163
  if (this.textBinding)
160
164
  this.textBinding.set(value ?? '');
161
165
  else
162
166
  this.node.text(value ?? '');
163
167
  }
164
- else
168
+ else {
169
+ const current = this.node.getAttributeValue(this.name);
170
+ if ((current === undefined ? undefined : String(current)) === value)
171
+ return;
165
172
  this.node.setAttributeValue(this.name, value);
166
- this.previous = value;
173
+ }
167
174
  }
168
175
  static primitive(value) {
169
176
  if (value == null)
@@ -1 +1 @@
1
- {"version":3,"file":"parts.js","sourceRoot":"","sources":["../../src/template/parts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parts.js","sourceRoot":"","sources":["../../src/template/parts.ts"],"names":[],"mappings":"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"}
@@ -2,19 +2,18 @@ import type { AnyNode } from '../core/types.js';
2
2
  import type { ParentNode } from '../mixins/types.js';
3
3
  import { Group } from '../elements/group.js';
4
4
  import type { Registry } from '../services/registry.js';
5
- import type { TemplateDescription } from './parts.js';
6
- import type { SvgTemplate } from './svg-tag.js';
5
+ import type { ContentItem } from './parts.js';
6
+ import { SvgTemplate } from './svg-tag.js';
7
7
  export declare class TemplateInstance {
8
8
  readonly template: SvgTemplate;
9
9
  readonly host: Group;
10
- readonly nodes: readonly AnyNode[];
11
- private readonly parts;
12
- constructor(parent: ParentNode, template: SvgTemplate, registry: Registry, descriptions: readonly TemplateDescription[]);
10
+ private readonly mount;
11
+ constructor(parent: ParentNode, template: SvgTemplate, registry: Registry, content: readonly ContentItem[]);
12
+ /** The current top-level nodes, including those that child holes render. */
13
+ get nodes(): readonly AnyNode[];
13
14
  get isDestroyed(): boolean;
14
15
  update(template: SvgTemplate): this;
15
16
  destroy(): void;
16
- private instantiate;
17
- private bind;
18
17
  }
19
18
  export declare class Renderer {
20
19
  private readonly parent;
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/template/render.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,qBAAa,gBAAgB;IAOzB,QAAQ,CAAC,QAAQ,EAAE,WAAW;IANhC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAE3C,YACE,MAAM,EAAE,UAAU,EACT,QAAQ,EAAE,WAAW,EAC9B,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,SAAS,mBAAmB,EAAE,EAW7C;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,MAAM,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAelC;IAED,OAAO,IAAI,IAAI,CAEd;IAED,OAAO,CAAC,WAAW;IA2BnB,OAAO,CAAC,IAAI;CAMb;AAED,qBAAa,QAAQ;IAKjB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAL3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAuC;IACxE,OAAO,CAAC,QAAQ,CAAiC;IAEjD,YACmB,MAAM,EAAE,UAAU,EAClB,QAAQ,WAA0B,EAMpD;IAED,MAAM,CAAC,MAAM,CACX,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,WAAW,EACrB,QAAQ,WAA0B,GACjC,gBAAgB,CAOlB;IAED,MAAM,CAAC,QAAQ,EAAE,WAAW,GAAG,gBAAgB,CAoB9C;CACF"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/template/render.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,KAAK,EAAE,WAAW,EAAuB,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAkM3C,qBAAa,gBAAgB;IAMzB,QAAQ,CAAC,QAAQ,EAAE,WAAW;IALhC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAE9B,YACE,MAAM,EAAE,UAAU,EACT,QAAQ,EAAE,WAAW,EAC9B,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,SAAS,WAAW,EAAE,EAShC;IAED,4EAA4E;IAC5E,IAAI,KAAK,IAAI,SAAS,OAAO,EAAE,CAE9B;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,MAAM,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAQlC;IAED,OAAO,IAAI,IAAI,CAEd;CACF;AAED,qBAAa,QAAQ;IAKjB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAL3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAuC;IACxE,OAAO,CAAC,QAAQ,CAAiC;IAEjD,YACmB,MAAM,EAAE,UAAU,EAClB,QAAQ,WAA0B,EAMpD;IAED,MAAM,CAAC,MAAM,CACX,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,WAAW,EACrB,QAAQ,WAA0B,GACjC,gBAAgB,CAOlB;IAED,MAAM,CAAC,QAAQ,EAAE,WAAW,GAAG,gBAAgB,CAuB9C;CACF"}
@@ -1,56 +1,155 @@
1
1
  import { mutation } from '../changes/mutation.js';
2
+ import { destroySubtrees } from '../core/destruction.js';
2
3
  import { Guards } from '../mixins/guards.js';
3
4
  import { Group } from '../elements/group.js';
4
5
  import { BindingPart, TemplateCompiler } from './parts.js';
6
+ import { SvgTemplate } from './svg-tag.js';
5
7
  import { appendTextSlot } from '../text/internals.js';
6
- export class TemplateInstance {
8
+ const size = (segments) => segments.reduce((total, segment) => total + (segment instanceof ChildPart ? segment.size : 1), 0);
9
+ const flat = (segments) => segments.flatMap((segment) => (segment instanceof ChildPart ? segment.nodes : [segment]));
10
+ /** Semantic disposal: unlike `destroy()`, undo can restore it and history isn't cleared. */
11
+ const dispose = (nodes) => {
12
+ const live = nodes.filter((node) => !node.isDestroyed);
13
+ if (live.length)
14
+ live[0][destroySubtrees](live);
15
+ };
16
+ /** Flattens a child hole's value into templates. */
17
+ function templates(value, out = []) {
18
+ if (value instanceof SvgTemplate)
19
+ out.push(value);
20
+ else if (typeof value == 'object' && value && Symbol.iterator in value)
21
+ for (const item of value)
22
+ templates(item, out);
23
+ else if (value != null && typeof value != 'boolean' && value !== '')
24
+ throw new TypeError('Child bindings take templates, iterables of them, or null');
25
+ return out;
26
+ }
27
+ /** Prepares and commits, disposing the staging groups whether or not it succeeds. */
28
+ function commit(prepare, values) {
29
+ const stagings = [];
30
+ try {
31
+ prepare(values, stagings)();
32
+ }
33
+ finally {
34
+ dispose(stagings);
35
+ }
36
+ }
37
+ /** A hole between elements: the items it renders, reused by index while their literal matches. */
38
+ class ChildPart {
39
+ sequence;
40
+ hole;
41
+ registry;
42
+ items = [];
43
+ constructor(sequence, hole, registry) {
44
+ this.sequence = sequence;
45
+ this.hole = hole;
46
+ this.registry = registry;
47
+ }
48
+ get size() {
49
+ return this.items.reduce((total, item) => total + item.size, 0);
50
+ }
51
+ get nodes() {
52
+ return this.items.flatMap((item) => item.nodes);
53
+ }
54
+ /** The index of this part's first node, or of `item`'s first node. */
55
+ start(item) {
56
+ const { segments } = this.sequence;
57
+ let index = this.sequence.base() + size(segments.slice(0, segments.indexOf(this)));
58
+ for (const other of item ? this.items : []) {
59
+ if (other === item)
60
+ break;
61
+ index += other.size;
62
+ }
63
+ return index;
64
+ }
65
+ prepare = (values, stagings) => {
66
+ const parent = this.sequence.parent;
67
+ const forbidden = new Set();
68
+ for (let node = parent; node; node = node.parent)
69
+ for (const tag of node.constructor.forbiddenDescendantTags ?? [])
70
+ forbidden.add(tag);
71
+ const plans = templates(values[this.hole]).map((template, index) => {
72
+ const item = this.items[index];
73
+ if (item?.template.strings === template.strings)
74
+ return { item, commit: item.prepare(template.values, stagings) };
75
+ const content = TemplateCompiler.content(parent.context.dom, template.strings);
76
+ TemplateCompiler.validate(content, this.registry, forbidden, parent.constructor);
77
+ const staging = new Group(parent.context);
78
+ stagings.push(staging);
79
+ return { item: new Mount(template, staging, this.registry, content) };
80
+ });
81
+ return () => {
82
+ const items = plans.map((plan) => plan.item);
83
+ dispose(this.items.filter((item) => !items.includes(item)).flatMap((item) => item.nodes));
84
+ this.items = items;
85
+ for (const { item, commit } of plans)
86
+ if (!commit) {
87
+ // Detach first, so history records new nodes rather than a move from staging.
88
+ for (const node of item.nodes)
89
+ parent.add(node.remove());
90
+ item.sequence.parent = parent;
91
+ item.sequence.base = () => this.start(item);
92
+ }
93
+ for (const plan of plans)
94
+ plan.commit?.();
95
+ let index = this.start();
96
+ for (const node of this.nodes)
97
+ parent.add(node, index++);
98
+ };
99
+ };
100
+ }
101
+ /** One template's nodes and parts, mounted as a sequence inside a parent. */
102
+ class Mount {
7
103
  template;
8
- host;
9
- nodes;
104
+ registry;
105
+ sequence;
10
106
  parts = [];
11
- constructor(parent, template, registry, descriptions) {
107
+ constructor(template, parent, registry, content) {
12
108
  this.template = template;
13
- this.host = new Group(parent.context);
14
- try {
15
- this.nodes = descriptions.map((description) => this.instantiate(description, this.host, registry));
16
- }
17
- catch (error) {
18
- this.host.destroy();
19
- throw error;
20
- }
109
+ this.registry = registry;
110
+ this.sequence = { parent, segments: [], base: () => 0 };
111
+ this.fill(content, this.sequence);
21
112
  }
22
- get isDestroyed() {
23
- return this.host.isDestroyed;
113
+ get size() {
114
+ return size(this.sequence.segments);
24
115
  }
25
- update(template) {
26
- return mutation(this, () => {
27
- this.host.assertLive();
28
- if (template.strings !== this.template.strings)
29
- throw new TypeError('An instance can only update its original template');
30
- const changes = this.parts.map((part) => {
31
- const value = part.evaluate(template.values);
32
- part.validate(value);
33
- return { part, value };
34
- });
35
- this.host.batch(() => {
36
- for (const { part, value } of changes)
37
- part.commit(value);
38
- });
39
- return this;
40
- });
116
+ get nodes() {
117
+ return flat(this.sequence.segments);
41
118
  }
42
- destroy() {
43
- this.host.destroy();
119
+ /** Validates every binding first, so an update changes all or nothing. */
120
+ prepare = (values, stagings) => {
121
+ const commits = this.parts.map((part) => {
122
+ if (part instanceof ChildPart)
123
+ return part.prepare(values, stagings);
124
+ const value = part.evaluate(values);
125
+ part.validate(value);
126
+ return () => part.commit(value);
127
+ });
128
+ return () => commits.forEach((commit) => commit());
129
+ };
130
+ fill(content, sequence) {
131
+ for (const item of content) {
132
+ if ('tag' in item)
133
+ sequence.segments.push(this.element(item, sequence.parent));
134
+ else
135
+ for (const hole of item.parts)
136
+ if (typeof hole == 'number') {
137
+ const part = new ChildPart(sequence, hole, this.registry);
138
+ sequence.segments.push(part);
139
+ this.parts.push(part);
140
+ commit(part.prepare, this.template.values);
141
+ }
142
+ }
44
143
  }
45
- instantiate(description, parent, registry) {
46
- const node = registry.createEmpty(description.tag, parent.context);
144
+ element(description, parent) {
145
+ const node = this.registry.createEmpty(description.tag, parent.context);
47
146
  parent.add(node);
48
147
  for (const [name, values] of Object.entries(description.attributes))
49
148
  this.bind(new BindingPart(node, name, values));
50
149
  if (appendTextSlot in node && Guards.isParent(node)) {
51
150
  for (const part of description.content) {
52
151
  if ('tag' in part)
53
- this.instantiate(part, node, registry);
152
+ this.element(part, node);
54
153
  else {
55
154
  const binding = node[appendTextSlot]('');
56
155
  this.bind(new BindingPart(node, null, part.parts, binding));
@@ -58,21 +157,62 @@ export class TemplateInstance {
58
157
  }
59
158
  return node;
60
159
  }
61
- if (description.text.length > 0 && Guards.isTextual(node))
62
- this.bind(new BindingPart(node, null, description.text));
160
+ if (Guards.isTextual(node)) {
161
+ if (description.text.length > 0)
162
+ this.bind(new BindingPart(node, null, description.text));
163
+ }
164
+ else if (Guards.isParent(node)) {
165
+ this.fill(description.content, { parent: node, segments: [], base: () => 0 });
166
+ return node;
167
+ }
63
168
  if (description.children.length > 0 && !Guards.isParent(node))
64
169
  throw new TypeError('Children require the Parent mixin');
65
170
  for (const child of description.children)
66
- this.instantiate(child, node, registry);
171
+ this.element(child, node);
67
172
  return node;
68
173
  }
69
174
  bind(part) {
70
175
  const value = part.evaluate(this.template.values);
71
176
  part.validate(value);
72
- part.commit(value, true);
177
+ part.commit(value);
73
178
  this.parts.push(part);
74
179
  }
75
180
  }
181
+ export class TemplateInstance {
182
+ template;
183
+ host;
184
+ mount;
185
+ constructor(parent, template, registry, content) {
186
+ this.template = template;
187
+ this.host = new Group(parent.context);
188
+ try {
189
+ this.mount = new Mount(template, this.host, registry, content);
190
+ }
191
+ catch (error) {
192
+ this.host.destroy();
193
+ throw error;
194
+ }
195
+ }
196
+ /** The current top-level nodes, including those that child holes render. */
197
+ get nodes() {
198
+ return this.mount.nodes;
199
+ }
200
+ get isDestroyed() {
201
+ return this.host.isDestroyed;
202
+ }
203
+ update(template) {
204
+ return mutation(this, () => {
205
+ this.host.assertLive();
206
+ if (template.strings !== this.template.strings)
207
+ throw new TypeError('An instance can only update its original template');
208
+ this.host.batch(() => commit(this.mount.prepare, template.values));
209
+ return this;
210
+ });
211
+ }
212
+ destroy() {
213
+ this.host.destroy();
214
+ }
215
+ }
76
216
  export class Renderer {
77
217
  parent;
78
218
  registry;
@@ -100,12 +240,16 @@ export class Renderer {
100
240
  !this.instance.isDestroyed &&
101
241
  this.instance.template.strings === template.strings)
102
242
  return this.instance.update(template);
103
- const descriptions = TemplateCompiler.compile(this.parent.context.dom, template.strings);
104
- TemplateCompiler.validate(descriptions, this.registry);
105
- const instance = new TemplateInstance(this.parent, template, this.registry, descriptions);
243
+ const content = TemplateCompiler.content(this.parent.context.dom, template.strings);
244
+ TemplateCompiler.validate(content, this.registry);
245
+ const instance = new TemplateInstance(this.parent, template, this.registry, content);
106
246
  try {
107
- this.instance?.destroy();
108
- this.parent.add(instance.host);
247
+ // Replacing a template disposes the old one semantically, so undo restores it.
248
+ this.parent.context.changes.run(this.parent, () => {
249
+ if (this.instance)
250
+ dispose([this.instance.host]);
251
+ this.parent.add(instance.host);
252
+ });
109
253
  }
110
254
  catch (error) {
111
255
  instance.destroy();
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/template/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/template/render.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,8 @@
1
- export type TemplateValue = string | number | boolean | null | undefined;
1
+ /**
2
+ * Attribute and text holes take primitives. A hole between elements also takes a nested
3
+ * template or an iterable of them; `null`, `undefined`, booleans and `''` render nothing.
4
+ */
5
+ export type TemplateValue = string | number | boolean | null | undefined | SvgTemplate | Iterable<TemplateValue>;
2
6
  export declare class SvgTemplate {
3
7
  readonly strings: TemplateStringsArray;
4
8
  readonly values: readonly TemplateValue[];
@@ -1 +1 @@
1
- {"version":3,"file":"svg-tag.d.ts","sourceRoot":"","sources":["../../src/template/svg-tag.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAEzE,qBAAa,WAAW;IAEpB,QAAQ,CAAC,OAAO,EAAE,oBAAoB;IACtC,QAAQ,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE;IAF3C,YACW,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,SAAS,aAAa,EAAE,EAI1C;CACF;AAED,qBAAa,MAAM;IACjB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,aAAa,EAAE,GAAG,WAAW,CAEjF;CACF;AAED,oEAAoE;AACpE,eAAO,MAAM,GAAG,mBAAa,CAAC"}
1
+ {"version":3,"file":"svg-tag.d.ts","sourceRoot":"","sources":["../../src/template/svg-tag.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,aAAa,GACvB,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;AAEvF,qBAAa,WAAW;IAEpB,QAAQ,CAAC,OAAO,EAAE,oBAAoB;IACtC,QAAQ,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE;IAF3C,YACW,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,SAAS,aAAa,EAAE,EAI1C;CACF;AAED,qBAAa,MAAM;IACjB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,aAAa,EAAE,GAAG,WAAW,CAEjF;CACF;AAED,oEAAoE;AACpE,eAAO,MAAM,GAAG,mBAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"svg-tag.js","sourceRoot":"","sources":["../../src/template/svg-tag.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,WAAW;IAEX,OAAO;IACP,MAAM;IAFjB,YACW,OAA6B,EAC7B,MAAgC;uBADhC,OAAO;sBACP,MAAM;QAEf,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC;YACtC,MAAM,IAAI,SAAS,CAAC,kCAAkC,CAAC,CAAC;IAC5D,CAAC;CACF;AAED,MAAM,OAAO,MAAM;IACjB,MAAM,CAAC,GAAG,CAAC,OAA6B,EAAE,GAAG,MAAuB;QAClE,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;CACF;AAED,oEAAoE;AACpE,MAAM,CAAC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC"}
1
+ {"version":3,"file":"svg-tag.js","sourceRoot":"","sources":["../../src/template/svg-tag.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,WAAW;IAEX,OAAO;IACP,MAAM;IAFjB,YACW,OAA6B,EAC7B,MAAgC;uBADhC,OAAO;sBACP,MAAM;QAEf,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC;YACtC,MAAM,IAAI,SAAS,CAAC,kCAAkC,CAAC,CAAC;IAC5D,CAAC;CACF;AAED,MAAM,OAAO,MAAM;IACjB,MAAM,CAAC,GAAG,CAAC,OAA6B,EAAE,GAAG,MAAuB;QAClE,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;CACF;AAED,oEAAoE;AACpE,MAAM,CAAC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export declare const appendTextSlot: unique symbol;
2
2
  export interface TextBinding {
3
+ readonly value: string;
3
4
  validate(): void;
4
5
  set(value: string): void;
5
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"internals.d.ts","sourceRoot":"","sources":["../../src/text/internals.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,eAA2B,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC1B,QAAQ,IAAI,IAAI,CAAC;IACjB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B"}
1
+ {"version":3,"file":"internals.d.ts","sourceRoot":"","sources":["../../src/text/internals.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,eAA2B,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,IAAI,IAAI,CAAC;IACjB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B"}
@@ -91,4 +91,31 @@ export interface Disposable {
91
91
  readonly isDestroyed: boolean;
92
92
  destroy(): void;
93
93
  }
94
+ /**
95
+ * Per-node editing limits that tools read structurally from `node.editRules`, for
96
+ * example from a component type. A node without rules edits freely.
97
+ */
98
+ export interface EditRules {
99
+ /** `'free'` (default), a positive step in degrees that divides 360, or `false`. */
100
+ readonly rotate?: 'free' | number | false;
101
+ /** Whether flips and mirroring resizes are allowed. Defaults to true. */
102
+ readonly flip?: boolean;
103
+ /**
104
+ * `'scale'` (default), `false`, or `'props'`: a resize changes the node's own width and
105
+ * height through `size()` instead of scaling it. Multi-node resizes don't apply to it.
106
+ */
107
+ readonly resize?: 'scale' | 'props' | false;
108
+ }
109
+ /**
110
+ * A named connection point that connectors read structurally from
111
+ * `node.portDefinitions`, for example from a component. `x` and `y` are in the node's
112
+ * local coordinates, before its own transform.
113
+ */
114
+ export interface PortDefinition {
115
+ readonly name: string;
116
+ readonly x: number;
117
+ readonly y: number;
118
+ /** The side a link leaves from, before the node's transform. Elbow routing uses it. */
119
+ readonly side?: 'left' | 'right' | 'top' | 'bottom';
120
+ }
94
121
  //# sourceMappingURL=common.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/types/common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/types/common.ts"],"names":[],"mappings":"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"}