dothtml 6.0.0-beta.44 → 6.0.0-beta.46

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 (129) hide show
  1. package/build_module/css/css-props.js +38 -1
  2. package/build_module/css/css-props.js.map +1 -1
  3. package/build_module/css/format-css-type.d.ts +4 -3
  4. package/build_module/css/format-css-type.js +7 -0
  5. package/build_module/css/format-css-type.js.map +1 -1
  6. package/build_module/decoration/component.d.ts +4 -14
  7. package/build_module/decoration/component.js +29 -29
  8. package/build_module/decoration/component.js.map +1 -1
  9. package/build_module/dot.js +130 -68
  10. package/build_module/dot.js.map +1 -1
  11. package/build_module/events/event-manager.d.ts +14 -0
  12. package/build_module/events/event-manager.js +98 -0
  13. package/build_module/events/event-manager.js.map +1 -0
  14. package/build_module/events/synthetic-event.d.ts +17 -0
  15. package/build_module/events/synthetic-event.js +33 -0
  16. package/build_module/events/synthetic-event.js.map +1 -0
  17. package/build_module/helpers/render-stylesheet.js +18 -9
  18. package/build_module/helpers/render-stylesheet.js.map +1 -1
  19. package/build_module/index.d.ts +3 -1
  20. package/build_module/index.js +14 -1
  21. package/build_module/index.js.map +1 -1
  22. package/build_module/reactivity/binding.d.ts +3 -1
  23. package/build_module/reactivity/binding.js +8 -2
  24. package/build_module/reactivity/binding.js.map +1 -1
  25. package/build_module/reactivity/computed.d.ts +18 -0
  26. package/build_module/reactivity/computed.js +106 -0
  27. package/build_module/reactivity/computed.js.map +1 -0
  28. package/build_module/reactivity/priority.d.ts +6 -0
  29. package/build_module/reactivity/priority.js +8 -0
  30. package/build_module/reactivity/priority.js.map +1 -0
  31. package/build_module/reactivity/ref-collection.d.ts +8 -0
  32. package/build_module/reactivity/ref-collection.js +32 -0
  33. package/build_module/reactivity/ref-collection.js.map +1 -0
  34. package/build_module/reactivity/ref.d.ts +5 -3
  35. package/build_module/reactivity/ref.js +31 -2
  36. package/build_module/reactivity/ref.js.map +1 -1
  37. package/build_module/reactivity/scheduler.d.ts +22 -0
  38. package/build_module/reactivity/scheduler.js +124 -0
  39. package/build_module/reactivity/scheduler.js.map +1 -0
  40. package/build_module/reactivity/store.d.ts +14 -0
  41. package/build_module/reactivity/store.js +91 -0
  42. package/build_module/reactivity/store.js.map +1 -0
  43. package/build_module/reactivity/subscription.d.ts +2 -1
  44. package/build_module/reactivity/subscription.js +4 -5
  45. package/build_module/reactivity/subscription.js.map +1 -1
  46. package/build_module/reactivity/watcher.d.ts +6 -3
  47. package/build_module/reactivity/watcher.js +31 -10
  48. package/build_module/reactivity/watcher.js.map +1 -1
  49. package/build_module/routing/helpers.d.ts +2 -0
  50. package/build_module/routing/helpers.js +21 -0
  51. package/build_module/routing/helpers.js.map +1 -0
  52. package/build_module/routing/index.d.ts +5 -0
  53. package/build_module/routing/index.js +6 -0
  54. package/build_module/routing/index.js.map +1 -0
  55. package/build_module/routing/link.d.ts +2 -0
  56. package/build_module/routing/link.js +45 -0
  57. package/build_module/routing/link.js.map +1 -0
  58. package/build_module/routing/router.d.ts +23 -0
  59. package/build_module/routing/router.js +209 -0
  60. package/build_module/routing/router.js.map +1 -0
  61. package/build_module/routing/scroll-manager.d.ts +1 -0
  62. package/build_module/routing/scroll-manager.js +33 -0
  63. package/build_module/routing/scroll-manager.js.map +1 -0
  64. package/build_module/routing/state.d.ts +7 -0
  65. package/build_module/routing/state.js +45 -0
  66. package/build_module/routing/state.js.map +1 -0
  67. package/build_module/v-meta-nodes/style-v-node.d.ts +17 -7
  68. package/build_module/v-meta-nodes/style-v-node.js +181 -85
  69. package/build_module/v-meta-nodes/style-v-node.js.map +1 -1
  70. package/build_module/v-style-nodes/base-v-style.d.ts +10 -11
  71. package/build_module/v-style-nodes/base-v-style.js +23 -95
  72. package/build_module/v-style-nodes/base-v-style.js.map +1 -1
  73. package/build_module/v-style-nodes/css-function-builder-v-style.d.ts +0 -3
  74. package/build_module/v-style-nodes/css-function-builder-v-style.js +10 -5
  75. package/build_module/v-style-nodes/css-function-builder-v-style.js.map +1 -1
  76. package/build_module/v-style-nodes/style-sheet-builder.d.ts +9 -0
  77. package/build_module/v-style-nodes/style-sheet-builder.js +51 -0
  78. package/build_module/v-style-nodes/style-sheet-builder.js.map +1 -0
  79. package/build_module/v-style-nodes/transform-v-style.js.map +1 -1
  80. package/build_module/vdom-nodes/collection-vdom.d.ts +3 -1
  81. package/build_module/vdom-nodes/collection-vdom.js +114 -97
  82. package/build_module/vdom-nodes/collection-vdom.js.map +1 -1
  83. package/build_module/vdom-nodes/component-context.d.ts +5 -0
  84. package/build_module/vdom-nodes/component-context.js +5 -0
  85. package/build_module/vdom-nodes/component-context.js.map +1 -0
  86. package/build_module/vdom-nodes/component-vdom.d.ts +22 -0
  87. package/build_module/vdom-nodes/component-vdom.js +250 -12
  88. package/build_module/vdom-nodes/component-vdom.js.map +1 -1
  89. package/build_module/vdom-nodes/conditional-vdom.d.ts +1 -0
  90. package/build_module/vdom-nodes/conditional-vdom.js +14 -0
  91. package/build_module/vdom-nodes/conditional-vdom.js.map +1 -1
  92. package/build_module/vdom-nodes/container-vdom.d.ts +6 -2
  93. package/build_module/vdom-nodes/container-vdom.js +54 -1
  94. package/build_module/vdom-nodes/container-vdom.js.map +1 -1
  95. package/build_module/vdom-nodes/element-vdom.d.ts +2 -1
  96. package/build_module/vdom-nodes/element-vdom.js +72 -18
  97. package/build_module/vdom-nodes/element-vdom.js.map +1 -1
  98. package/build_module/vdom-nodes/html-vdom.d.ts +1 -0
  99. package/build_module/vdom-nodes/html-vdom.js +12 -0
  100. package/build_module/vdom-nodes/html-vdom.js.map +1 -1
  101. package/build_module/vdom-nodes/text-vdom.d.ts +1 -0
  102. package/build_module/vdom-nodes/text-vdom.js +3 -0
  103. package/build_module/vdom-nodes/text-vdom.js.map +1 -1
  104. package/build_module/vdom-nodes/vdom.d.ts +2 -0
  105. package/build_module/vdom-nodes/vdom.js +17 -0
  106. package/build_module/vdom-nodes/vdom.js.map +1 -1
  107. package/package.json +58 -57
  108. package/readme.md +32 -26
  109. package/build_module/css/css.d.ts +0 -0
  110. package/build_module/css/css.js +0 -1
  111. package/build_module/css/css.js.map +0 -1
  112. package/build_module/decoration/use-styles.d.ts +0 -14
  113. package/build_module/decoration/use-styles.js +0 -19
  114. package/build_module/decoration/use-styles.js.map +0 -1
  115. package/build_module/helpers/render-css.d.ts +0 -2
  116. package/build_module/helpers/render-css.js +0 -20
  117. package/build_module/helpers/render-css.js.map +0 -1
  118. package/build_module/helpers.d.ts +0 -3
  119. package/build_module/helpers.js +0 -50
  120. package/build_module/helpers.js.map +0 -1
  121. package/build_module/reactive.d.ts +0 -46
  122. package/build_module/reactive.js +0 -150
  123. package/build_module/reactive.js.map +0 -1
  124. package/build_module/reactivity/bound-reactive.d.ts +0 -13
  125. package/build_module/reactivity/bound-reactive.js +0 -20
  126. package/build_module/reactivity/bound-reactive.js.map +0 -1
  127. package/build_module/reactivity/reactive.d.ts +0 -22
  128. package/build_module/reactivity/reactive.js +0 -54
  129. package/build_module/reactivity/reactive.js.map +0 -1
@@ -0,0 +1,51 @@
1
+ import BaseVStyle from "./base-v-style";
2
+ import cssProps from "../css/css-props";
3
+ import { formatCssLength } from "../css/format-css-type";
4
+ import Watcher from "../reactivity/watcher";
5
+ import Binding from "../reactivity/binding";
6
+ export default class StyleSheetBuilder {
7
+ constructor() {
8
+ this.rules = [];
9
+ }
10
+ class(name, callback) {
11
+ return this.rule(`.${name}`, callback);
12
+ }
13
+ rule(selector, callback) {
14
+ const style = new BaseVStyle();
15
+ callback(style);
16
+ this.rules.push({ selector, style });
17
+ return this;
18
+ }
19
+ v(name) {
20
+ if (!name.startsWith("--"))
21
+ name = "--" + name;
22
+ return `var(${name})`;
23
+ }
24
+ toString() {
25
+ return this.rules.map(r => {
26
+ const props = r.style.getProps().map(p => {
27
+ const registered = cssProps[p.prop];
28
+ let cssProp = p.prop;
29
+ let cssValue = p.value;
30
+ if (cssValue instanceof Watcher || cssValue instanceof Binding) {
31
+ throw new Error(`[DOThtml] Reactive values (Watchers/Bindings) cannot be used directly in stylize(). Use CSS variables instead. Prop: "${p.prop}" in selector: "${r.selector}"`);
32
+ }
33
+ if (registered) {
34
+ cssProp = registered.cssName;
35
+ if (registered.type === "length" && typeof p.value === "number") {
36
+ cssValue = formatCssLength(p.value, registered.unit);
37
+ }
38
+ else if (registered.unit && typeof p.value === "number") {
39
+ cssValue = `${p.value}${registered.unit}`;
40
+ }
41
+ }
42
+ return `${cssProp}: ${cssValue};`;
43
+ }).join(" ");
44
+ return `${r.selector} { ${props} }`;
45
+ }).join("\n");
46
+ }
47
+ hasRules() {
48
+ return this.rules.length > 0;
49
+ }
50
+ }
51
+ //# sourceMappingURL=style-sheet-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style-sheet-builder.js","sourceRoot":"","sources":["../../src/v-style-nodes/style-sheet-builder.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,gBAAgB,CAAC;AACxC,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,iBAAiB;IAAtC;QACS,UAAK,GAAmD,EAAE,CAAC;IAmDpE,CAAC;IAjDA,KAAK,CAAC,IAAY,EAAE,QAAiC;QACpD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,CAAC,QAAgB,EAAE,QAAiC;QACvD,MAAM,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;QAC/B,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACb,CAAC;IAOD,CAAC,CAAC,IAAY;QACb,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QAC/C,OAAO,OAAO,IAAI,GAAG,CAAC;IACvB,CAAC;IAED,QAAQ;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACzB,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBACxC,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACpC,IAAI,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC;gBACrB,IAAI,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC;gBAEvB,IAAI,QAAQ,YAAY,OAAO,IAAI,QAAQ,YAAY,OAAO,EAAE;oBAC/D,MAAM,IAAI,KAAK,CAAC,yHAAyH,CAAC,CAAC,IAAI,mBAAmB,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;iBACjL;gBAED,IAAI,UAAU,EAAE;oBACf,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;oBAC7B,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,EAAE;wBAChE,QAAQ,GAAG,eAAe,CAAC,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;qBACrD;yBAAM,IAAI,UAAU,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,EAAE;wBAC1D,QAAQ,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;qBAC1C;iBACD;gBACD,OAAO,GAAG,OAAO,KAAK,QAAQ,GAAG,CAAC;YACnC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACb,OAAO,GAAG,CAAC,CAAC,QAAQ,MAAM,KAAK,IAAI,CAAC;QACrC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAED,QAAQ;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9B,CAAC;CACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"transform-v-style.js","sourceRoot":"","sources":["../../src/v-style-nodes/transform-v-style.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transform-v-style.js","sourceRoot":"","sources":["../../src/v-style-nodes/transform-v-style.ts"],"names":[],"mappings":"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"}
@@ -15,10 +15,12 @@ export default class CollectionVdom extends Vdom {
15
15
  endNode: Node;
16
16
  observerId: number;
17
17
  mappedItems: Array<DatumMap>;
18
+ private updateState;
18
19
  constructor(value: ObservableCollection, renderCallback: (x: any, i: number | string, k: string) => Vdom);
19
20
  _render(target: HTMLElement): void;
20
21
  _unrender(): void;
22
+ _getNodes(): Node[];
21
23
  private removeItem;
22
- updateList(): void;
24
+ updateList(): boolean;
23
25
  }
24
26
  export {};
@@ -3,11 +3,13 @@ import Binding from "../reactivity/binding";
3
3
  import Watcher from "../reactivity/watcher";
4
4
  import { TextVdom } from "./text-vdom";
5
5
  import { Vdom } from "./vdom";
6
+ import { scheduler } from "../reactivity/scheduler";
6
7
  export default class CollectionVdom extends Vdom {
7
8
  constructor(value, renderCallback) {
8
9
  super();
9
10
  this.observerId = 0;
10
11
  this.mappedItems = [];
12
+ this.updateState = null;
11
13
  this.value = value;
12
14
  this.renderCallback = renderCallback;
13
15
  }
@@ -19,7 +21,14 @@ export default class CollectionVdom extends Vdom {
19
21
  this.endNode = target.ownerDocument.createTextNode("");
20
22
  target.appendChild(this.startNode);
21
23
  target.appendChild(this.endNode);
22
- this.updateList();
24
+ const originalShouldYield = scheduler.shouldYield;
25
+ scheduler.shouldYield = () => false;
26
+ try {
27
+ this.updateList();
28
+ }
29
+ finally {
30
+ scheduler.shouldYield = originalShouldYield;
31
+ }
23
32
  }
24
33
  _unrender() {
25
34
  if (this.observerId && this.value instanceof Binding) {
@@ -37,121 +46,129 @@ export default class CollectionVdom extends Vdom {
37
46
  this.startNode = null;
38
47
  this.endNode = null;
39
48
  }
49
+ _getNodes() {
50
+ if (!this.startNode)
51
+ return [];
52
+ let nodes = [this.startNode];
53
+ for (let i = 0; i < this.mappedItems.length; i++) {
54
+ nodes.push(...this.mappedItems[i].vdom._getNodes());
55
+ nodes.push(this.mappedItems[i].afterNode);
56
+ }
57
+ nodes.push(this.endNode);
58
+ return nodes;
59
+ }
40
60
  removeItem(item) {
41
61
  item.vdom._unrender();
42
- item.afterNode.parentElement.removeChild(item.afterNode);
62
+ if (item.afterNode.parentElement) {
63
+ item.afterNode.parentElement.removeChild(item.afterNode);
64
+ }
43
65
  }
44
66
  updateList() {
45
- let key = null;
46
- let mappedData;
47
- {
48
- let unmappedCollection = null;
67
+ let unmappedCollection = null;
68
+ if (this.value instanceof Binding) {
69
+ unmappedCollection = this.value._get();
70
+ }
71
+ else {
72
+ unmappedCollection = this.value;
73
+ }
74
+ const currentItems = Array.isArray(unmappedCollection)
75
+ ? unmappedCollection
76
+ : Object.values(unmappedCollection);
77
+ if (this.updateState) {
78
+ if (!deepEqual(this.updateState.newItems, currentItems)) {
79
+ this.updateState = null;
80
+ }
81
+ }
82
+ if (!this.updateState) {
83
+ let key = null;
49
84
  if (this.value instanceof Binding) {
50
- unmappedCollection = this.value._get();
51
85
  key = this.value._source.key ?? null;
52
86
  }
53
- else {
54
- unmappedCollection = this.value;
55
- }
56
- if (unmappedCollection instanceof Array) {
57
- mappedData = unmappedCollection.map((v, i) => {
58
- let kv = !!key ? v[key] : null;
59
- let reactive = new Watcher();
60
- return {
61
- vdom: null,
62
- value: v,
63
- keyValue: kv,
64
- afterNode: null,
65
- observableIndex: reactive.bind()
66
- };
67
- });
68
- }
69
- else {
70
- mappedData = [];
71
- for (let k in unmappedCollection) {
72
- let v = unmappedCollection[k];
73
- let kv = !!key ? v[key] : k;
74
- let reactive = new Watcher();
75
- mappedData.push({
76
- vdom: null,
77
- value: v,
78
- keyValue: kv,
79
- afterNode: null,
80
- observableIndex: reactive.bind()
81
- });
82
- }
87
+ const newItems = currentItems;
88
+ const newKeys = Array.isArray(unmappedCollection)
89
+ ? newItems.map((v, i) => key ? v[key] : i)
90
+ : Object.keys(unmappedCollection).map((k, i) => key ? unmappedCollection[k][key] : k);
91
+ const oldMap = new Map();
92
+ for (const item of this.mappedItems) {
93
+ oldMap.set(item.keyValue, item);
83
94
  }
95
+ this.updateState = {
96
+ newItems,
97
+ newKeys,
98
+ oldMap,
99
+ nextMappedItems: [],
100
+ currentIndex: 0,
101
+ lastNode: this.startNode,
102
+ step: "diff"
103
+ };
84
104
  }
85
- {
86
- let oi = 0;
87
- let ns = 0;
88
- let ni = 0;
89
- while (oi < this.mappedItems.length) {
90
- let existing = this.mappedItems[oi];
91
- let candidate = mappedData[ni];
92
- if (!candidate) {
93
- this.removeItem(existing);
94
- this.mappedItems.splice(oi, 1);
95
- ni = ns;
96
- continue;
97
- }
98
- else if ((candidate == existing) || (key && candidate.keyValue == existing.keyValue)) {
99
- ns++;
100
- oi++;
101
- ni = ns;
102
- continue;
105
+ const state = this.updateState;
106
+ if (state.step === "diff") {
107
+ while (state.currentIndex < state.newItems.length) {
108
+ const value = state.newItems[state.currentIndex];
109
+ const keyValue = state.newKeys[state.currentIndex];
110
+ let existing = state.oldMap.get(keyValue);
111
+ if (existing) {
112
+ state.oldMap.delete(keyValue);
113
+ if (!deepEqual(existing.value, value)) {
114
+ existing.vdom._unrender();
115
+ existing.value = value;
116
+ let vdomOrContent = this.renderCallback(value, this.value instanceof Binding ? existing.observableIndex : state.currentIndex, keyValue);
117
+ existing.vdom = vdomOrContent instanceof Vdom ? vdomOrContent : new TextVdom(vdomOrContent);
118
+ }
119
+ else {
120
+ existing.observableIndex._set(state.currentIndex);
121
+ }
122
+ state.nextMappedItems.push(existing);
103
123
  }
104
124
  else {
105
- ni++;
125
+ const reactive = new Watcher();
126
+ const observableIndex = reactive.bind();
127
+ observableIndex._set(state.currentIndex);
128
+ const vdomOrContent = this.renderCallback(value, this.value instanceof Binding ? observableIndex : state.currentIndex, keyValue);
129
+ const vdom = vdomOrContent instanceof Vdom ? vdomOrContent : new TextVdom(vdomOrContent);
130
+ const afterNode = this.startNode.ownerDocument.createTextNode("");
131
+ state.nextMappedItems.push({
132
+ vdom, value, keyValue, afterNode, observableIndex
133
+ });
134
+ }
135
+ state.currentIndex++;
136
+ if (scheduler.shouldYield()) {
137
+ return true;
106
138
  }
107
139
  }
140
+ state.step = "cleanup";
108
141
  }
109
- {
110
- let oi = 0;
111
- let ni = 0;
112
- let afterTarget = this.startNode;
113
- while (ni < mappedData.length) {
114
- let existing = this.mappedItems[oi];
115
- let candidate = mappedData[ni];
116
- if (existing && ((candidate == existing) || (key && candidate.keyValue == existing.keyValue))) {
117
- if (!deepEqual(existing.value, candidate.value)) {
118
- existing.vdom._unrender();
119
- existing.vdom = this.renderCallback(candidate.value, this.value instanceof Binding ? existing.observableIndex : ni, candidate.keyValue);
120
- existing.value = candidate.value;
121
- existing.vdom._renderBefore(existing.afterNode);
122
- }
123
- else {
124
- existing.observableIndex._set(ni);
125
- }
126
- afterTarget = existing.afterNode;
127
- ni++;
128
- oi++;
129
- continue;
142
+ if (state.step === "cleanup") {
143
+ const oldItems = Array.from(state.oldMap.values());
144
+ for (const item of oldItems) {
145
+ this.removeItem(item);
146
+ }
147
+ state.step = "reorder";
148
+ state.currentIndex = 0;
149
+ this.mappedItems = [];
150
+ }
151
+ if (state.step === "reorder") {
152
+ while (state.currentIndex < state.nextMappedItems.length) {
153
+ const item = state.nextMappedItems[state.currentIndex];
154
+ if (!item.vdom._isRendered) {
155
+ item.vdom._renderAfter(state.lastNode);
156
+ state.lastNode.parentElement.insertBefore(item.afterNode, item.vdom._getNodes().slice(-1)[0].nextSibling);
130
157
  }
131
158
  else {
132
- let beforeTarget = afterTarget.ownerDocument.createTextNode("");
133
- let ns = afterTarget.parentElement.nextSibling;
134
- if (ns) {
135
- this.startNode.parentElement.insertBefore(beforeTarget, ns);
136
- }
137
- else {
138
- this.startNode.parentElement.appendChild(beforeTarget);
139
- }
140
- candidate.afterNode = beforeTarget;
141
- candidate.observableIndex._set(ni);
142
- let content = this.renderCallback(candidate.value, this.value instanceof Binding ? candidate.observableIndex : ni, candidate.keyValue);
143
- if (content instanceof Vdom) {
144
- candidate.vdom = content;
145
- }
146
- else {
147
- candidate.vdom = new TextVdom(content);
148
- }
149
- candidate.vdom._renderBefore(candidate.afterNode);
150
- this.mappedItems.splice(ni, 0, candidate);
151
- ni++;
159
+ item.vdom._moveBefore(state.lastNode.nextSibling, state.lastNode.parentElement);
160
+ state.lastNode.parentElement.insertBefore(item.afterNode, item.vdom._getNodes().slice(-1)[0].nextSibling);
161
+ }
162
+ state.lastNode = item.afterNode;
163
+ this.mappedItems.push(item);
164
+ state.currentIndex++;
165
+ if (scheduler.shouldYield()) {
166
+ return true;
152
167
  }
153
168
  }
154
169
  }
170
+ this.updateState = null;
171
+ return false;
155
172
  }
156
173
  }
157
174
  //# sourceMappingURL=collection-vdom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"collection-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/collection-vdom.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collection-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/collection-vdom.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { ComponentVdom } from "./component-vdom";
2
+ export declare const componentStack: ComponentVdom[];
3
+ export declare const getCurrentComponent: () => ComponentVdom;
4
+ export declare const pushComponent: (component: ComponentVdom) => number;
5
+ export declare const popComponent: () => ComponentVdom;
@@ -0,0 +1,5 @@
1
+ export const componentStack = [];
2
+ export const getCurrentComponent = () => componentStack[componentStack.length - 1] || null;
3
+ export const pushComponent = (component) => componentStack.push(component);
4
+ export const popComponent = () => componentStack.pop();
5
+ //# sourceMappingURL=component-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-context.js","sourceRoot":"","sources":["../../src/vdom-nodes/component-context.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAoB,EAAE,CAAC;AAClD,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;AAC3F,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,SAAwB,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC1F,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC"}
@@ -1,13 +1,35 @@
1
1
  import { IDotComponent, IDotCore } from "dothtml-interfaces";
2
2
  import { Vdom } from "./vdom";
3
3
  import { ContainerVdom } from "./container-vdom";
4
+ import Computed from "../reactivity/computed";
5
+ import Ref from "../reactivity/ref";
4
6
  export declare class ComponentVdom extends Vdom {
5
7
  component: IDotComponent;
6
8
  shadowEl: HTMLElement;
7
9
  childShadowVdom: ContainerVdom;
10
+ private dot;
11
+ private events;
12
+ private styleVNodes;
13
+ private isQueued;
14
+ private computedWatchers;
15
+ private disposables;
16
+ private ref;
17
+ private updateSubscription;
8
18
  constructor(dot: IDotCore, component: IDotComponent);
19
+ registerComputed(watcher: Computed<any>): void;
20
+ registerDisposable(disposable: () => void): void;
21
+ setRef(ref: Ref<any> | ((comp: IDotComponent | null) => void)): void;
22
+ init(): void;
23
+ private subscribeToProps;
24
+ private requestUpdate;
25
+ private rebuild;
26
+ private validateProps;
9
27
  private setupCustomElement;
10
28
  _render(node: HTMLElement): void;
11
29
  _unrender(): void;
30
+ _getNodes(): Node[];
31
+ addEventListener(event: string, callback: (e: any) => void, modifiers?: string[]): void;
32
+ private renderEvent;
33
+ on(event: string, callback: (e: any) => void): this;
12
34
  toString(): string;
13
35
  }