dothtml 6.0.0-beta.45 → 6.0.0-beta.47

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 (152) hide show
  1. package/build_module/constants.js +2 -0
  2. package/build_module/constants.js.map +1 -0
  3. package/build_module/css/css-props.js +79 -0
  4. package/build_module/css/css-props.js.map +1 -0
  5. package/{dist/build_module → build_module}/css/format-css-type.d.ts +4 -3
  6. package/build_module/css/format-css-type.js +80 -0
  7. package/build_module/css/format-css-type.js.map +1 -0
  8. package/build_module/decoration/component.d.ts +4 -0
  9. package/build_module/decoration/component.js +35 -0
  10. package/build_module/decoration/component.js.map +1 -0
  11. package/build_module/dot.js +404 -0
  12. package/build_module/dot.js.map +1 -0
  13. package/build_module/events/event-manager.d.ts +14 -0
  14. package/build_module/events/event-manager.js +98 -0
  15. package/build_module/events/event-manager.js.map +1 -0
  16. package/build_module/events/synthetic-event.d.ts +17 -0
  17. package/build_module/events/synthetic-event.js +33 -0
  18. package/build_module/events/synthetic-event.js.map +1 -0
  19. package/build_module/helpers/render-stylesheet.js +36 -0
  20. package/build_module/helpers/render-stylesheet.js.map +1 -0
  21. package/build_module/helpers/tools.js +50 -0
  22. package/build_module/helpers/tools.js.map +1 -0
  23. package/build_module/index.d.ts +9 -0
  24. package/build_module/index.js +19 -0
  25. package/build_module/index.js.map +1 -0
  26. package/{dist/build_module → build_module}/reactivity/binding.d.ts +3 -1
  27. package/build_module/reactivity/binding.js +26 -0
  28. package/build_module/reactivity/binding.js.map +1 -0
  29. package/build_module/reactivity/computed.d.ts +18 -0
  30. package/build_module/reactivity/computed.js +106 -0
  31. package/build_module/reactivity/computed.js.map +1 -0
  32. package/build_module/reactivity/priority.d.ts +6 -0
  33. package/build_module/reactivity/priority.js +8 -0
  34. package/build_module/reactivity/priority.js.map +1 -0
  35. package/build_module/reactivity/reactive-attr.js +7 -0
  36. package/build_module/reactivity/reactive-attr.js.map +1 -0
  37. package/build_module/reactivity/reactive-style.js +7 -0
  38. package/build_module/reactivity/reactive-style.js.map +1 -0
  39. package/build_module/reactivity/ref-collection.d.ts +8 -0
  40. package/build_module/reactivity/ref-collection.js +32 -0
  41. package/build_module/reactivity/ref-collection.js.map +1 -0
  42. package/build_module/reactivity/ref.d.ts +7 -0
  43. package/build_module/reactivity/ref.js +35 -0
  44. package/build_module/reactivity/ref.js.map +1 -0
  45. package/build_module/reactivity/scheduler.d.ts +22 -0
  46. package/build_module/reactivity/scheduler.js +124 -0
  47. package/build_module/reactivity/scheduler.js.map +1 -0
  48. package/build_module/reactivity/store.d.ts +14 -0
  49. package/build_module/reactivity/store.js +91 -0
  50. package/build_module/reactivity/store.js.map +1 -0
  51. package/{dist/build_module → build_module}/reactivity/subscription.d.ts +2 -1
  52. package/build_module/reactivity/subscription.js +40 -0
  53. package/build_module/reactivity/subscription.js.map +1 -0
  54. package/{dist/build_module → build_module}/reactivity/watcher.d.ts +6 -3
  55. package/build_module/reactivity/watcher.js +82 -0
  56. package/build_module/reactivity/watcher.js.map +1 -0
  57. package/build_module/routing/helpers.d.ts +2 -0
  58. package/build_module/routing/helpers.js +21 -0
  59. package/build_module/routing/helpers.js.map +1 -0
  60. package/build_module/routing/index.d.ts +5 -0
  61. package/build_module/routing/index.js +6 -0
  62. package/build_module/routing/index.js.map +1 -0
  63. package/build_module/routing/link.d.ts +2 -0
  64. package/build_module/routing/link.js +45 -0
  65. package/build_module/routing/link.js.map +1 -0
  66. package/build_module/routing/router.d.ts +23 -0
  67. package/build_module/routing/router.js +209 -0
  68. package/build_module/routing/router.js.map +1 -0
  69. package/build_module/routing/scroll-manager.d.ts +1 -0
  70. package/build_module/routing/scroll-manager.js +33 -0
  71. package/build_module/routing/scroll-manager.js.map +1 -0
  72. package/build_module/routing/state.d.ts +7 -0
  73. package/build_module/routing/state.js +45 -0
  74. package/build_module/routing/state.js.map +1 -0
  75. package/build_module/v-dom-node.d.ts +0 -0
  76. package/build_module/v-dom-node.js +1 -0
  77. package/build_module/v-dom-node.js.map +1 -0
  78. package/build_module/v-meta-nodes/attribute-v-node.js +53 -0
  79. package/build_module/v-meta-nodes/attribute-v-node.js.map +1 -0
  80. package/build_module/v-meta-nodes/style-v-node.d.ts +26 -0
  81. package/build_module/v-meta-nodes/style-v-node.js +239 -0
  82. package/build_module/v-meta-nodes/style-v-node.js.map +1 -0
  83. package/build_module/v-meta-nodes/v-meta-node.js +3 -0
  84. package/build_module/v-meta-nodes/v-meta-node.js.map +1 -0
  85. package/build_module/v-style-nodes/base-v-style.d.ts +13 -0
  86. package/build_module/v-style-nodes/base-v-style.js +41 -0
  87. package/build_module/v-style-nodes/base-v-style.js.map +1 -0
  88. package/{dist/build_module → build_module}/v-style-nodes/css-function-builder-v-style.d.ts +0 -3
  89. package/build_module/v-style-nodes/css-function-builder-v-style.js +33 -0
  90. package/build_module/v-style-nodes/css-function-builder-v-style.js.map +1 -0
  91. package/build_module/v-style-nodes/filter-v-style.js +35 -0
  92. package/build_module/v-style-nodes/filter-v-style.js.map +1 -0
  93. package/build_module/v-style-nodes/style-sheet-builder.d.ts +9 -0
  94. package/build_module/v-style-nodes/style-sheet-builder.js +55 -0
  95. package/build_module/v-style-nodes/style-sheet-builder.js.map +1 -0
  96. package/build_module/v-style-nodes/transform-v-style.js +76 -0
  97. package/build_module/v-style-nodes/transform-v-style.js.map +1 -0
  98. package/build_module/v-style-nodes/v-style.js +6 -0
  99. package/build_module/v-style-nodes/v-style.js.map +1 -0
  100. package/{dist/build_module → build_module}/vdom-nodes/collection-vdom.d.ts +3 -1
  101. package/build_module/vdom-nodes/collection-vdom.js +174 -0
  102. package/build_module/vdom-nodes/collection-vdom.js.map +1 -0
  103. package/build_module/vdom-nodes/component-context.d.ts +5 -0
  104. package/build_module/vdom-nodes/component-context.js +5 -0
  105. package/build_module/vdom-nodes/component-context.js.map +1 -0
  106. package/build_module/vdom-nodes/component-vdom.d.ts +35 -0
  107. package/build_module/vdom-nodes/component-vdom.js +338 -0
  108. package/build_module/vdom-nodes/component-vdom.js.map +1 -0
  109. package/{dist/build_module → build_module}/vdom-nodes/conditional-vdom.d.ts +1 -0
  110. package/build_module/vdom-nodes/conditional-vdom.js +112 -0
  111. package/build_module/vdom-nodes/conditional-vdom.js.map +1 -0
  112. package/{dist/build_module → build_module}/vdom-nodes/container-vdom.d.ts +6 -2
  113. package/build_module/vdom-nodes/container-vdom.js +163 -0
  114. package/build_module/vdom-nodes/container-vdom.js.map +1 -0
  115. package/{dist/build_module → build_module}/vdom-nodes/element-vdom.d.ts +2 -1
  116. package/build_module/vdom-nodes/element-vdom.js +218 -0
  117. package/build_module/vdom-nodes/element-vdom.js.map +1 -0
  118. package/{dist/build_module → build_module}/vdom-nodes/html-vdom.d.ts +1 -0
  119. package/build_module/vdom-nodes/html-vdom.js +65 -0
  120. package/build_module/vdom-nodes/html-vdom.js.map +1 -0
  121. package/{dist/build_module → build_module}/vdom-nodes/text-vdom.d.ts +1 -0
  122. package/build_module/vdom-nodes/text-vdom.js +40 -0
  123. package/build_module/vdom-nodes/text-vdom.js.map +1 -0
  124. package/{dist/build_module → build_module}/vdom-nodes/vdom.d.ts +2 -0
  125. package/build_module/vdom-nodes/vdom.js +58 -0
  126. package/build_module/vdom-nodes/vdom.js.map +1 -0
  127. package/build_module/window-wrapper.js +39 -0
  128. package/build_module/window-wrapper.js.map +1 -0
  129. package/package.json +58 -64
  130. package/readme.md +32 -26
  131. package/dist/build_module/index.d.ts +0 -7
  132. package/dist/build_module/reactivity/ref.d.ts +0 -5
  133. package/dist/build_module/v-meta-nodes/style-v-node.d.ts +0 -16
  134. package/dist/build_module/v-style-nodes/base-v-style.d.ts +0 -14
  135. package/dist/build_module/vdom-nodes/component-vdom.d.ts +0 -13
  136. package/dist/index.cjs.js +0 -2
  137. package/dist/index.cjs.js.map +0 -1
  138. package/dist/index.esm.js +0 -2
  139. package/dist/index.esm.js.map +0 -1
  140. /package/{dist/build_module → build_module}/constants.d.ts +0 -0
  141. /package/{dist/build_module → build_module}/css/css-props.d.ts +0 -0
  142. /package/{dist/build_module → build_module}/dot.d.ts +0 -0
  143. /package/{dist/build_module → build_module}/helpers/render-stylesheet.d.ts +0 -0
  144. /package/{dist/build_module → build_module}/helpers/tools.d.ts +0 -0
  145. /package/{dist/build_module → build_module}/reactivity/reactive-attr.d.ts +0 -0
  146. /package/{dist/build_module → build_module}/reactivity/reactive-style.d.ts +0 -0
  147. /package/{dist/build_module → build_module}/v-meta-nodes/attribute-v-node.d.ts +0 -0
  148. /package/{dist/build_module → build_module}/v-meta-nodes/v-meta-node.d.ts +0 -0
  149. /package/{dist/build_module → build_module}/v-style-nodes/filter-v-style.d.ts +0 -0
  150. /package/{dist/build_module → build_module}/v-style-nodes/transform-v-style.d.ts +0 -0
  151. /package/{dist/build_module → build_module}/v-style-nodes/v-style.d.ts +0 -0
  152. /package/{dist/build_module → build_module}/window-wrapper.d.ts +0 -0
@@ -0,0 +1,338 @@
1
+ import { Vdom } from "./vdom";
2
+ import renderStylesheet from "../helpers/render-stylesheet";
3
+ import { EventManager } from "../events/event-manager";
4
+ import Watcher from "../reactivity/watcher";
5
+ import Binding from "../reactivity/binding";
6
+ import { scheduler } from "../reactivity/scheduler";
7
+ import { Priority } from "../reactivity/priority";
8
+ import { pushComponent, popComponent } from "./component-context";
9
+ import BaseVStyle from "../v-style-nodes/base-v-style";
10
+ import StyleVNode from "../v-meta-nodes/style-v-node";
11
+ import StyleSheetBuilder from "../v-style-nodes/style-sheet-builder";
12
+ let tagId = 0x10000;
13
+ export class ComponentVdom extends Vdom {
14
+ constructor(dot, component) {
15
+ super();
16
+ this.events = [];
17
+ this.styleVNodes = [];
18
+ this.isQueued = false;
19
+ this.computedWatchers = [];
20
+ this.disposables = [];
21
+ this.updateSubscription = {
22
+ active: true,
23
+ update: () => {
24
+ this.isQueued = false;
25
+ this.rebuild();
26
+ }
27
+ };
28
+ this.dot = dot;
29
+ this.component = component;
30
+ if (component._?._meta) {
31
+ throw new Error("Component has already been added to the VDOM.");
32
+ }
33
+ if (!component.constructor["_dotHtmlComponent"]) {
34
+ component.constructor["_dotHtmlComponent"] = {};
35
+ let ts = (Math.floor(performance.now() * 10000000000000)).toString(16);
36
+ let tId = (tagId++).toString(16);
37
+ component.constructor["_dotHtmlComponent"].tagName = `dothtml-${tId}${dot["_addTimestamp"] ? `-${ts}` : ""}`;
38
+ }
39
+ if (!component._) {
40
+ component._ = {};
41
+ }
42
+ component._.cvdom = this;
43
+ component._.refs = {};
44
+ component._._meta = component._._meta || {};
45
+ component._._meta.isRendered = false;
46
+ component._._meta.tagName = component.constructor["_dotHtmlComponent"].tagName;
47
+ component.emit = (name, detail) => {
48
+ if (this.shadowEl) {
49
+ this.shadowEl.dispatchEvent(new CustomEvent(name.toLowerCase(), {
50
+ detail,
51
+ bubbles: true,
52
+ composed: true
53
+ }));
54
+ }
55
+ };
56
+ if (component._trackedComputeds) {
57
+ for (const w of component._trackedComputeds) {
58
+ this.registerComputed(w);
59
+ }
60
+ delete component._trackedComputeds;
61
+ }
62
+ if (component._trackedDisposables) {
63
+ for (const d of component._trackedDisposables) {
64
+ this.registerDisposable(d);
65
+ }
66
+ delete component._trackedDisposables;
67
+ }
68
+ }
69
+ registerComputed(watcher) {
70
+ this.computedWatchers.push(watcher);
71
+ }
72
+ registerDisposable(disposable) {
73
+ this.disposables.push(disposable);
74
+ }
75
+ setRef(ref) {
76
+ this.ref = ref;
77
+ }
78
+ init() {
79
+ this.validateProps();
80
+ pushComponent(this);
81
+ try {
82
+ this.childShadowVdom = this.component.build(this.dot);
83
+ }
84
+ finally {
85
+ popComponent();
86
+ }
87
+ this.component.built && this.component.built();
88
+ this.subscribeToProps();
89
+ }
90
+ subscribeToProps() {
91
+ const props = this.component.props;
92
+ if (!props)
93
+ return;
94
+ for (const key in props) {
95
+ const prop = props[key];
96
+ if (prop instanceof Watcher || prop instanceof Binding) {
97
+ prop.subscribe(() => this.requestUpdate());
98
+ }
99
+ }
100
+ }
101
+ requestUpdate() {
102
+ if (!this.isQueued) {
103
+ this.isQueued = true;
104
+ scheduler.enqueue(this.updateSubscription, Priority.Normal);
105
+ }
106
+ }
107
+ rebuild() {
108
+ if (!this.shadowEl)
109
+ return;
110
+ this.childShadowVdom._unrender();
111
+ this.validateProps();
112
+ pushComponent(this);
113
+ try {
114
+ this.childShadowVdom = this.component.build(this.dot);
115
+ }
116
+ finally {
117
+ popComponent();
118
+ }
119
+ const shadow = this.component._._meta.shadowRoot;
120
+ this.childShadowVdom._render(shadow);
121
+ this.component.built && this.component.built();
122
+ }
123
+ validateProps() {
124
+ const schema = this.component.constructor.props;
125
+ if (!schema)
126
+ return;
127
+ const props = this.component.props || {};
128
+ const componentName = this.component.constructor.name;
129
+ for (const key in schema) {
130
+ const rule = schema[key];
131
+ let value = props[key];
132
+ if (value === undefined && rule.default !== undefined) {
133
+ if (typeof rule.default === "function" && (rule.type === Object || rule.type === Array)) {
134
+ value = rule.default();
135
+ }
136
+ else {
137
+ value = rule.default;
138
+ }
139
+ props[key] = value;
140
+ }
141
+ if (rule.required && value === undefined) {
142
+ throw new Error(`[${componentName}] Prop "${key}" is required.`);
143
+ }
144
+ let valueToValidate = value;
145
+ if (value instanceof Watcher || value instanceof Binding) {
146
+ valueToValidate = value.value;
147
+ }
148
+ if (valueToValidate !== undefined && valueToValidate !== null && rule.type) {
149
+ const actualType = typeof valueToValidate;
150
+ if (rule.type === String && actualType !== "string") {
151
+ throw new Error(`[${componentName}] Prop "${key}" expected string, but got ${actualType}.`);
152
+ }
153
+ else if (rule.type === Number && actualType !== "number") {
154
+ throw new Error(`[${componentName}] Prop "${key}" expected number, but got ${actualType}.`);
155
+ }
156
+ else if (rule.type === Boolean && actualType !== "boolean") {
157
+ throw new Error(`[${componentName}] Prop "${key}" expected boolean, but got ${actualType}.`);
158
+ }
159
+ else if (rule.type === Function && actualType !== "function") {
160
+ throw new Error(`[${componentName}] Prop "${key}" expected function, but got ${actualType}.`);
161
+ }
162
+ else if (rule.type === Array && !Array.isArray(valueToValidate)) {
163
+ throw new Error(`[${componentName}] Prop "${key}" expected array, but got ${actualType}.`);
164
+ }
165
+ else if (rule.type === Object && (actualType !== "object" || Array.isArray(valueToValidate))) {
166
+ throw new Error(`[${componentName}] Prop "${key}" expected object, but got ${Array.isArray(valueToValidate) ? "array" : actualType}.`);
167
+ }
168
+ }
169
+ if (valueToValidate !== undefined && typeof rule.validator === "function") {
170
+ if (!rule.validator(valueToValidate)) {
171
+ throw new Error(`[${componentName}] Prop "${key}" failed custom validation.`);
172
+ }
173
+ }
174
+ }
175
+ this.component.props = props;
176
+ }
177
+ setupCustomElement(document) {
178
+ let CustomElementConstructor = document.defaultView.customElements.get(this.component._._meta.tagName);
179
+ if (CustomElementConstructor == undefined) {
180
+ let cachedStyles = this.component.constructor._cachedStyles;
181
+ let sharedStylesheets = [];
182
+ let styleTags = [];
183
+ if (cachedStyles) {
184
+ sharedStylesheets = cachedStyles.sharedStylesheets;
185
+ styleTags = cachedStyles.styleTags;
186
+ }
187
+ else {
188
+ const builder = new StyleSheetBuilder();
189
+ let styles = this.component.stylize && this.component.stylize(builder) || [];
190
+ if (styles === builder || (!styles && builder.hasRules())) {
191
+ styles = builder.toString();
192
+ }
193
+ if (typeof styles == "string")
194
+ styles = [styles];
195
+ if (styles) {
196
+ for (let i = 0; i < styles.length; i++) {
197
+ let styleItem = renderStylesheet(styles[i], document);
198
+ if (styleItem instanceof document.defaultView.CSSStyleSheet) {
199
+ sharedStylesheets.push(styleItem);
200
+ }
201
+ else {
202
+ styleTags.push(styleItem);
203
+ }
204
+ }
205
+ }
206
+ this.component.constructor._cachedStyles = { sharedStylesheets, styleTags };
207
+ }
208
+ let allSharedStylesheets = [...sharedStylesheets];
209
+ let allStyleTags = [...styleTags];
210
+ let globalStyles = this.dot.globalStyles || [];
211
+ for (let gs of globalStyles) {
212
+ if (gs instanceof document.defaultView.CSSStyleSheet) {
213
+ allSharedStylesheets.push(gs);
214
+ }
215
+ else if (typeof gs === "string") {
216
+ let styleItem = renderStylesheet(gs, document);
217
+ if (styleItem instanceof document.defaultView.CSSStyleSheet) {
218
+ allSharedStylesheets.push(styleItem);
219
+ }
220
+ else {
221
+ allStyleTags.push(styleItem);
222
+ }
223
+ }
224
+ }
225
+ let DocSpecificHtmlEl = document.defaultView.HTMLElement;
226
+ CustomElementConstructor = class extends DocSpecificHtmlEl {
227
+ set component(value) {
228
+ this._component = value;
229
+ this._renderComponent();
230
+ }
231
+ _renderComponent() {
232
+ if (this.cvdom instanceof Vdom) {
233
+ let shadow = this.attachShadow({ mode: 'open' });
234
+ shadow.adoptedStyleSheets = allSharedStylesheets;
235
+ for (let i = 0; i < allStyleTags.length; i++) {
236
+ shadow.appendChild(allStyleTags[i].cloneNode(true));
237
+ }
238
+ this._component._._meta.shadowRoot = shadow;
239
+ this.cvdom.childShadowVdom._render(shadow);
240
+ }
241
+ else {
242
+ throw new Error("Component build function returned invalid object.");
243
+ }
244
+ }
245
+ };
246
+ document.defaultView.customElements.define(this.component._._meta.tagName, CustomElementConstructor);
247
+ }
248
+ }
249
+ _render(node) {
250
+ if (!this.component._)
251
+ throw new Error("Invalid component. Ensure components are created through the component factory or through decoration.");
252
+ if (this.component._?._meta?.isRendered)
253
+ throw new Error("Individual component instances cannot be rendered twice at once.");
254
+ if (!this.component._._meta)
255
+ this.component._._meta = {};
256
+ this.component.mounting && this.component.mounting();
257
+ this.component._._meta.isRendered = true;
258
+ let document = node.ownerDocument;
259
+ this.setupCustomElement(document);
260
+ this.shadowEl = document.createElement(this.component._._meta.tagName);
261
+ this.shadowEl["cvdom"] = this;
262
+ this.shadowEl["component"] = this.component;
263
+ if (this.ref) {
264
+ if (typeof this.ref === "function") {
265
+ this.ref(this.component);
266
+ }
267
+ else {
268
+ this.ref.value = this.component;
269
+ }
270
+ }
271
+ if (this.component.hostStyle) {
272
+ const hostStyleBuilder = new BaseVStyle();
273
+ this.component.hostStyle(hostStyleBuilder);
274
+ const hostStyleVNode = new StyleVNode(hostStyleBuilder);
275
+ hostStyleVNode.render(this.shadowEl, document);
276
+ this.styleVNodes.push(hostStyleVNode);
277
+ }
278
+ this.component._.restyle && this.component._.restyle();
279
+ node.appendChild(this.shadowEl);
280
+ for (let i = 0; i < this.events.length; i++) {
281
+ let e = this.events[i];
282
+ this.renderEvent(e.name, e.callback, e.modifiers);
283
+ }
284
+ this.component.mounted && this.component.mounted();
285
+ }
286
+ _unrender() {
287
+ this.component.unmounting && this.component.unmounting();
288
+ this.childShadowVdom._unrender();
289
+ const eventManager = EventManager.getForDocument(this.shadowEl.ownerDocument);
290
+ for (let i = 0; i < this.events.length; i++) {
291
+ let e = this.events[i];
292
+ eventManager.removeListener(this.shadowEl, e.name.toLowerCase(), e.callback);
293
+ }
294
+ this.shadowEl.remove();
295
+ this.shadowEl = null;
296
+ for (let i = 0; i < this.styleVNodes.length; i++) {
297
+ this.styleVNodes[i].unrender();
298
+ }
299
+ this.styleVNodes = [];
300
+ for (const watcher of this.computedWatchers) {
301
+ watcher.dispose();
302
+ }
303
+ this.computedWatchers = [];
304
+ for (const disposable of this.disposables) {
305
+ disposable();
306
+ }
307
+ this.disposables = [];
308
+ this.component._._meta.isRendered = false;
309
+ this.component.unmounted && this.component.unmounted();
310
+ if (this.ref) {
311
+ if (typeof this.ref === "function") {
312
+ this.ref(null);
313
+ }
314
+ else {
315
+ this.ref.value = null;
316
+ }
317
+ }
318
+ }
319
+ _getNodes() {
320
+ return this.shadowEl ? [this.shadowEl] : [];
321
+ }
322
+ addEventListener(event, callback, modifiers = []) {
323
+ this.events.push({ name: event, callback: callback, modifiers: modifiers });
324
+ if (this.shadowEl)
325
+ this.renderEvent(event, callback, modifiers);
326
+ }
327
+ renderEvent(e, callback, modifiers = []) {
328
+ EventManager.getForDocument(this.shadowEl.ownerDocument).addListener(this.shadowEl, e.toLowerCase(), callback, modifiers);
329
+ }
330
+ on(event, callback) {
331
+ this.addEventListener(event, callback);
332
+ return this;
333
+ }
334
+ toString() {
335
+ return `<${this.component._._meta.tagName}></${this.component._._meta.tagName}>`;
336
+ }
337
+ }
338
+ //# sourceMappingURL=component-vdom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/component-vdom.ts"],"names":[],"mappings":"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"}
@@ -11,5 +11,6 @@ export declare class ConditionalVdom extends Vdom {
11
11
  _render(node: HTMLElement): void;
12
12
  removeCNode(C: ConditionalNodeItem): void;
13
13
  _unrender(): void;
14
+ _getNodes(): Node[];
14
15
  updateConditions(): void;
15
16
  }
@@ -0,0 +1,112 @@
1
+ import Binding from "../reactivity/binding";
2
+ import { Vdom } from "./vdom";
3
+ export class ConditionalVdom extends Vdom {
4
+ constructor() {
5
+ super(...arguments);
6
+ this.conditions = [];
7
+ this.sealed = false;
8
+ this.renderedIndex = -1;
9
+ }
10
+ addCondition(condition, vNode, seal = false) {
11
+ if (this.sealed) {
12
+ throw new Error("Cannot add additional conditions to a sealed block.");
13
+ }
14
+ this.sealed = seal;
15
+ let C = {
16
+ condition,
17
+ vNode,
18
+ startAnchor: null,
19
+ endAnchor: null,
20
+ observerId: 0
21
+ };
22
+ this.conditions.push(C);
23
+ if (this._isRendered) {
24
+ this.renderClause(C, this.conditions[0].startAnchor.parentElement);
25
+ if (this.renderedIndex == -1) {
26
+ this.updateConditions();
27
+ }
28
+ }
29
+ }
30
+ renderClause(C, node) {
31
+ if (C.startAnchor)
32
+ throw new Error("Item is already rendered.");
33
+ C.startAnchor = node.ownerDocument.createTextNode("");
34
+ C.endAnchor = node.ownerDocument.createTextNode("");
35
+ node.appendChild(C.startAnchor);
36
+ node.appendChild(C.endAnchor);
37
+ if (C.condition instanceof Binding) {
38
+ C.observerId = C.condition._subscribe(this);
39
+ }
40
+ }
41
+ _render(node) {
42
+ this._isRendered = true;
43
+ for (let c = 0; c < this.conditions.length; c++) {
44
+ this.renderClause(this.conditions[c], node);
45
+ }
46
+ this.updateConditions();
47
+ }
48
+ removeCNode(C) {
49
+ if (C.condition instanceof Binding) {
50
+ C.condition._unsubscribe(C.observerId);
51
+ C.observerId = 0;
52
+ }
53
+ let start = C.startAnchor;
54
+ let end = C.endAnchor;
55
+ start.parentElement.removeChild(start);
56
+ end.parentElement.removeChild(end);
57
+ C.startAnchor = null;
58
+ C.endAnchor = null;
59
+ C.vNode._unrender();
60
+ }
61
+ _unrender() {
62
+ if (!this._isRendered)
63
+ return;
64
+ this._isRendered = false;
65
+ this.renderedIndex = -1;
66
+ for (let i = 0; i < this.conditions.length; i++) {
67
+ let C = this.conditions[i];
68
+ this.removeCNode(C);
69
+ }
70
+ }
71
+ _getNodes() {
72
+ if (!this._isRendered)
73
+ return [];
74
+ let nodes = [];
75
+ for (let i = 0; i < this.conditions.length; i++) {
76
+ let C = this.conditions[i];
77
+ nodes.push(C.startAnchor);
78
+ if (i == this.renderedIndex) {
79
+ nodes.push(...C.vNode._getNodes());
80
+ }
81
+ nodes.push(C.endAnchor);
82
+ }
83
+ return nodes;
84
+ }
85
+ updateConditions() {
86
+ let node = this.conditions[0].startAnchor.parentElement;
87
+ let newIndex = -1;
88
+ for (let c = 0; c < this.conditions.length; c++) {
89
+ let C = this.conditions[c];
90
+ if (C.condition instanceof Binding ? C.condition._get() : C.condition) {
91
+ newIndex = c;
92
+ break;
93
+ }
94
+ }
95
+ if (newIndex != this.renderedIndex) {
96
+ {
97
+ if (this.renderedIndex != -1) {
98
+ let C = this.conditions[this.renderedIndex];
99
+ C.vNode._unrender();
100
+ }
101
+ }
102
+ {
103
+ this.renderedIndex = newIndex;
104
+ if (newIndex != -1) {
105
+ let C = this.conditions[newIndex];
106
+ C.vNode._renderBefore(C.endAnchor);
107
+ }
108
+ }
109
+ }
110
+ }
111
+ }
112
+ //# sourceMappingURL=conditional-vdom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conditional-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/conditional-vdom.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
- import { IDotComponent, IDotCore } from "dothtml-interfaces";
1
+ import { IDotComponent, IDotCore, IDotCss } from "dothtml-interfaces";
2
2
  import Watcher from "../reactivity/watcher";
3
3
  import { ConditionalVdom } from "./conditional-vdom";
4
4
  import ElementVdom from "./element-vdom";
5
5
  import { Vdom } from "./vdom";
6
6
  import { ObservableCollection } from "./vdom-types";
7
7
  import Binding from "../reactivity/binding";
8
+ import BaseVStyle from "../v-style-nodes/base-v-style";
8
9
  type ParentVdom = ContainerVdom | ConditionalVdom | ElementVdom;
9
10
  export declare class ContainerVdom extends Vdom {
10
11
  _children: Array<Vdom>;
@@ -14,14 +15,17 @@ export declare class ContainerVdom extends Vdom {
14
15
  _addChild(content: Vdom): this;
15
16
  _render(node: HTMLElement): void;
16
17
  _unrender(): void;
18
+ _getNodes(): Node[];
17
19
  attr(A: string, c: any): void;
18
20
  html(c: string | Watcher | Binding): this;
19
21
  text(c: string | Watcher | Binding): this;
20
22
  md(c: string | Watcher): this;
21
- mount(c: IDotComponent): this;
23
+ style(c: string | Watcher | Binding | IDotCss | ((s: BaseVStyle) => void)): this;
24
+ mount(c: IDotComponent, attrs?: Record<string, any>): this;
22
25
  when(condition: Watcher | Binding | boolean, then: ContainerVdom | string | boolean | number): this;
23
26
  otherwiseWhen(condition: Watcher | Binding | boolean, then: ContainerVdom | string | boolean | number, seal?: boolean): this;
24
27
  otherwise(then: ContainerVdom | string | boolean | number): this;
28
+ on(event: string, callback: (e: any) => void): this;
25
29
  each(collection: ObservableCollection, callback: () => Vdom): this;
26
30
  }
27
31
  export {};