@thomas-siegfried/tapout 0.0.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 (223) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1206 -0
  3. package/dist/applyBindings.d.ts +10 -0
  4. package/dist/applyBindings.d.ts.map +1 -0
  5. package/dist/applyBindings.js +261 -0
  6. package/dist/applyBindings.js.map +1 -0
  7. package/dist/arrayToDomMapping.d.ts +14 -0
  8. package/dist/arrayToDomMapping.d.ts.map +1 -0
  9. package/dist/arrayToDomMapping.js +219 -0
  10. package/dist/arrayToDomMapping.js.map +1 -0
  11. package/dist/attributeInterpolationMarkup.d.ts +6 -0
  12. package/dist/attributeInterpolationMarkup.d.ts.map +1 -0
  13. package/dist/attributeInterpolationMarkup.js +70 -0
  14. package/dist/attributeInterpolationMarkup.js.map +1 -0
  15. package/dist/bindingContext.d.ts +38 -0
  16. package/dist/bindingContext.d.ts.map +1 -0
  17. package/dist/bindingContext.js +138 -0
  18. package/dist/bindingContext.js.map +1 -0
  19. package/dist/bindingEvent.d.ts +33 -0
  20. package/dist/bindingEvent.d.ts.map +1 -0
  21. package/dist/bindingEvent.js +144 -0
  22. package/dist/bindingEvent.js.map +1 -0
  23. package/dist/bindingProvider.d.ts +38 -0
  24. package/dist/bindingProvider.d.ts.map +1 -0
  25. package/dist/bindingProvider.js +145 -0
  26. package/dist/bindingProvider.js.map +1 -0
  27. package/dist/bindings.d.ts +2 -0
  28. package/dist/bindings.d.ts.map +1 -0
  29. package/dist/bindings.js +862 -0
  30. package/dist/bindings.js.map +1 -0
  31. package/dist/compareArrays.d.ts +13 -0
  32. package/dist/compareArrays.d.ts.map +1 -0
  33. package/dist/compareArrays.js +91 -0
  34. package/dist/compareArrays.js.map +1 -0
  35. package/dist/componentBinding.d.ts +4 -0
  36. package/dist/componentBinding.d.ts.map +1 -0
  37. package/dist/componentBinding.js +240 -0
  38. package/dist/componentBinding.js.map +1 -0
  39. package/dist/componentDecorator.d.ts +22 -0
  40. package/dist/componentDecorator.d.ts.map +1 -0
  41. package/dist/componentDecorator.js +32 -0
  42. package/dist/componentDecorator.js.map +1 -0
  43. package/dist/components.d.ts +34 -0
  44. package/dist/components.d.ts.map +1 -0
  45. package/dist/components.js +256 -0
  46. package/dist/components.js.map +1 -0
  47. package/dist/computed.d.ts +54 -0
  48. package/dist/computed.d.ts.map +1 -0
  49. package/dist/computed.js +376 -0
  50. package/dist/computed.js.map +1 -0
  51. package/dist/configure.d.ts +4 -0
  52. package/dist/configure.d.ts.map +1 -0
  53. package/dist/configure.js +48 -0
  54. package/dist/configure.js.map +1 -0
  55. package/dist/controlFlowBindings.d.ts +2 -0
  56. package/dist/controlFlowBindings.d.ts.map +1 -0
  57. package/dist/controlFlowBindings.js +151 -0
  58. package/dist/controlFlowBindings.js.map +1 -0
  59. package/dist/core.d.ts +29 -0
  60. package/dist/core.d.ts.map +1 -0
  61. package/dist/core.js +27 -0
  62. package/dist/core.js.map +1 -0
  63. package/dist/decorators.d.ts +40 -0
  64. package/dist/decorators.d.ts.map +1 -0
  65. package/dist/decorators.js +276 -0
  66. package/dist/decorators.js.map +1 -0
  67. package/dist/dependencyDetection.d.ts +21 -0
  68. package/dist/dependencyDetection.d.ts.map +1 -0
  69. package/dist/dependencyDetection.js +53 -0
  70. package/dist/dependencyDetection.js.map +1 -0
  71. package/dist/disposable.d.ts +12 -0
  72. package/dist/disposable.d.ts.map +1 -0
  73. package/dist/disposable.js +29 -0
  74. package/dist/disposable.js.map +1 -0
  75. package/dist/domData.d.ts +6 -0
  76. package/dist/domData.d.ts.map +1 -0
  77. package/dist/domData.js +40 -0
  78. package/dist/domData.js.map +1 -0
  79. package/dist/domNodeDisposal.d.ts +7 -0
  80. package/dist/domNodeDisposal.d.ts.map +1 -0
  81. package/dist/domNodeDisposal.js +78 -0
  82. package/dist/domNodeDisposal.js.map +1 -0
  83. package/dist/effects.d.ts +13 -0
  84. package/dist/effects.d.ts.map +1 -0
  85. package/dist/effects.js +24 -0
  86. package/dist/effects.js.map +1 -0
  87. package/dist/event.d.ts +38 -0
  88. package/dist/event.d.ts.map +1 -0
  89. package/dist/event.js +138 -0
  90. package/dist/event.js.map +1 -0
  91. package/dist/expressionRewriting.d.ts +22 -0
  92. package/dist/expressionRewriting.d.ts.map +1 -0
  93. package/dist/expressionRewriting.js +169 -0
  94. package/dist/expressionRewriting.js.map +1 -0
  95. package/dist/extenders.d.ts +17 -0
  96. package/dist/extenders.d.ts.map +1 -0
  97. package/dist/extenders.js +75 -0
  98. package/dist/extenders.js.map +1 -0
  99. package/dist/filters.d.ts +5 -0
  100. package/dist/filters.d.ts.map +1 -0
  101. package/dist/filters.js +81 -0
  102. package/dist/filters.js.map +1 -0
  103. package/dist/index.d.ts +45 -0
  104. package/dist/index.d.ts.map +1 -0
  105. package/dist/index.js +35 -0
  106. package/dist/index.js.map +1 -0
  107. package/dist/interpolationMarkup.d.ts +6 -0
  108. package/dist/interpolationMarkup.d.ts.map +1 -0
  109. package/dist/interpolationMarkup.js +110 -0
  110. package/dist/interpolationMarkup.js.map +1 -0
  111. package/dist/memoization.d.ts +7 -0
  112. package/dist/memoization.d.ts.map +1 -0
  113. package/dist/memoization.js +59 -0
  114. package/dist/memoization.js.map +1 -0
  115. package/dist/namespacedBindings.d.ts +7 -0
  116. package/dist/namespacedBindings.d.ts.map +1 -0
  117. package/dist/namespacedBindings.js +81 -0
  118. package/dist/namespacedBindings.js.map +1 -0
  119. package/dist/observable.d.ts +13 -0
  120. package/dist/observable.d.ts.map +1 -0
  121. package/dist/observable.js +39 -0
  122. package/dist/observable.js.map +1 -0
  123. package/dist/observableArray.d.ts +58 -0
  124. package/dist/observableArray.d.ts.map +1 -0
  125. package/dist/observableArray.js +328 -0
  126. package/dist/observableArray.js.map +1 -0
  127. package/dist/options.d.ts +14 -0
  128. package/dist/options.d.ts.map +1 -0
  129. package/dist/options.js +12 -0
  130. package/dist/options.js.map +1 -0
  131. package/dist/selectExtensions.d.ts +4 -0
  132. package/dist/selectExtensions.d.ts.map +1 -0
  133. package/dist/selectExtensions.js +67 -0
  134. package/dist/selectExtensions.js.map +1 -0
  135. package/dist/slotBinding.d.ts +2 -0
  136. package/dist/slotBinding.d.ts.map +1 -0
  137. package/dist/slotBinding.js +63 -0
  138. package/dist/slotBinding.js.map +1 -0
  139. package/dist/subscribable.d.ts +57 -0
  140. package/dist/subscribable.d.ts.map +1 -0
  141. package/dist/subscribable.js +211 -0
  142. package/dist/subscribable.js.map +1 -0
  143. package/dist/tasks.d.ts +8 -0
  144. package/dist/tasks.d.ts.map +1 -0
  145. package/dist/tasks.js +68 -0
  146. package/dist/tasks.js.map +1 -0
  147. package/dist/templateEngine.d.ts +37 -0
  148. package/dist/templateEngine.d.ts.map +1 -0
  149. package/dist/templateEngine.js +60 -0
  150. package/dist/templateEngine.js.map +1 -0
  151. package/dist/templateRendering.d.ts +8 -0
  152. package/dist/templateRendering.d.ts.map +1 -0
  153. package/dist/templateRendering.js +322 -0
  154. package/dist/templateRendering.js.map +1 -0
  155. package/dist/templateRewriting.d.ts +7 -0
  156. package/dist/templateRewriting.d.ts.map +1 -0
  157. package/dist/templateRewriting.js +63 -0
  158. package/dist/templateRewriting.js.map +1 -0
  159. package/dist/templateSources.d.ts +19 -0
  160. package/dist/templateSources.d.ts.map +1 -0
  161. package/dist/templateSources.js +110 -0
  162. package/dist/templateSources.js.map +1 -0
  163. package/dist/utils.d.ts +8 -0
  164. package/dist/utils.d.ts.map +1 -0
  165. package/dist/utils.js +100 -0
  166. package/dist/utils.js.map +1 -0
  167. package/dist/utilsDom.d.ts +8 -0
  168. package/dist/utilsDom.d.ts.map +1 -0
  169. package/dist/utilsDom.js +81 -0
  170. package/dist/utilsDom.js.map +1 -0
  171. package/dist/virtualElements.d.ts +12 -0
  172. package/dist/virtualElements.d.ts.map +1 -0
  173. package/dist/virtualElements.js +141 -0
  174. package/dist/virtualElements.js.map +1 -0
  175. package/dist/wireParams.d.ts +6 -0
  176. package/dist/wireParams.d.ts.map +1 -0
  177. package/dist/wireParams.js +39 -0
  178. package/dist/wireParams.js.map +1 -0
  179. package/package.json +55 -0
  180. package/src/applyBindings.ts +372 -0
  181. package/src/arrayToDomMapping.ts +300 -0
  182. package/src/attributeInterpolationMarkup.ts +91 -0
  183. package/src/bindingContext.ts +207 -0
  184. package/src/bindingEvent.ts +198 -0
  185. package/src/bindingProvider.ts +260 -0
  186. package/src/bindings.ts +963 -0
  187. package/src/compareArrays.ts +122 -0
  188. package/src/componentBinding.ts +318 -0
  189. package/src/componentDecorator.ts +62 -0
  190. package/src/components.ts +367 -0
  191. package/src/computed.ts +439 -0
  192. package/src/configure.ts +52 -0
  193. package/src/controlFlowBindings.ts +206 -0
  194. package/src/core.ts +60 -0
  195. package/src/decorators.ts +407 -0
  196. package/src/dependencyDetection.ts +76 -0
  197. package/src/disposable.ts +36 -0
  198. package/src/domData.ts +42 -0
  199. package/src/domNodeDisposal.ts +94 -0
  200. package/src/effects.ts +29 -0
  201. package/src/event.ts +173 -0
  202. package/src/expressionRewriting.ts +219 -0
  203. package/src/extenders.ts +102 -0
  204. package/src/filters.ts +91 -0
  205. package/src/index.ts +150 -0
  206. package/src/interpolationMarkup.ts +130 -0
  207. package/src/memoization.ts +71 -0
  208. package/src/namespacedBindings.ts +132 -0
  209. package/src/observable.ts +48 -0
  210. package/src/observableArray.ts +397 -0
  211. package/src/options.ts +25 -0
  212. package/src/selectExtensions.ts +68 -0
  213. package/src/slotBinding.ts +84 -0
  214. package/src/subscribable.ts +266 -0
  215. package/src/tasks.ts +79 -0
  216. package/src/templateEngine.ts +108 -0
  217. package/src/templateRendering.ts +399 -0
  218. package/src/templateRewriting.ts +94 -0
  219. package/src/templateSources.ts +134 -0
  220. package/src/utils.ts +123 -0
  221. package/src/utilsDom.ts +87 -0
  222. package/src/virtualElements.ts +153 -0
  223. package/src/wireParams.ts +49 -0
@@ -0,0 +1,376 @@
1
+ import { Subscribable, valuesArePrimitiveAndEqual } from './subscribable.js';
2
+ import { begin, end, registerDependency } from './dependencyDetection.js';
3
+ import { options } from './options.js';
4
+ export class Computed extends Subscribable {
5
+ _latestValue = undefined;
6
+ _readFunction;
7
+ _writeFunction;
8
+ _isDisposed = false;
9
+ _isBeingEvaluated = false;
10
+ _isDirty = true;
11
+ _pure;
12
+ _isSleeping;
13
+ _dependencyTracking = {};
14
+ _dependenciesCount = 0;
15
+ _deferEvaluation;
16
+ constructor(evaluatorOrOptions) {
17
+ super();
18
+ if (typeof evaluatorOrOptions === 'function') {
19
+ this._readFunction = evaluatorOrOptions;
20
+ this._pure = false;
21
+ this._deferEvaluation = false;
22
+ }
23
+ else {
24
+ this._readFunction = evaluatorOrOptions.read;
25
+ this._writeFunction = evaluatorOrOptions.write;
26
+ this._pure = evaluatorOrOptions.pure ?? false;
27
+ this._deferEvaluation = evaluatorOrOptions.deferEvaluation ?? false;
28
+ }
29
+ this._isSleeping = this._pure;
30
+ this.equalityComparer = valuesArePrimitiveAndEqual;
31
+ if (!this._isSleeping && !this._deferEvaluation) {
32
+ this.evaluateImmediate();
33
+ }
34
+ if (options.deferUpdates) {
35
+ this.extend({ deferred: true });
36
+ }
37
+ }
38
+ get hasWriteFunction() {
39
+ return typeof this._writeFunction === 'function';
40
+ }
41
+ get isPure() {
42
+ return this._pure;
43
+ }
44
+ get() {
45
+ if (!this._isDisposed) {
46
+ registerDependency(this);
47
+ }
48
+ if (this._isDirty || (this._isSleeping && this.haveDependenciesChanged())) {
49
+ this.evaluateImmediate();
50
+ }
51
+ return this._latestValue;
52
+ }
53
+ peek() {
54
+ if ((this._isDirty && !this._dependenciesCount) ||
55
+ (this._isSleeping && this.haveDependenciesChanged())) {
56
+ this.evaluateImmediate();
57
+ }
58
+ return this._latestValue;
59
+ }
60
+ set(value) {
61
+ if (!this._writeFunction) {
62
+ throw new Error('Cannot write a value to a computed unless you specify a \'write\' option.');
63
+ }
64
+ this._writeFunction(value);
65
+ }
66
+ getVersion() {
67
+ if (this._isSleeping && (this._isDirty || this.haveDependenciesChanged())) {
68
+ this.evaluateImmediate();
69
+ }
70
+ return super.getVersion();
71
+ }
72
+ dispose() {
73
+ if (this._isDisposed)
74
+ return;
75
+ if (!this._isSleeping) {
76
+ for (const id of Object.keys(this._dependencyTracking)) {
77
+ const dep = this._dependencyTracking[Number(id)];
78
+ if (dep?.dispose) {
79
+ dep.dispose();
80
+ }
81
+ }
82
+ }
83
+ this._dependencyTracking = {};
84
+ this._dependenciesCount = 0;
85
+ this._isDisposed = true;
86
+ this._isDirty = false;
87
+ this._isSleeping = false;
88
+ this._readFunction = undefined;
89
+ }
90
+ getDependenciesCount() {
91
+ return this._dependenciesCount;
92
+ }
93
+ getDependencies() {
94
+ const deps = [];
95
+ for (const id of Object.keys(this._dependencyTracking)) {
96
+ const tracking = this._dependencyTracking[Number(id)];
97
+ if (tracking) {
98
+ deps[tracking._order] = tracking._target;
99
+ }
100
+ }
101
+ return deps;
102
+ }
103
+ isActive() {
104
+ return this._isDirty || this._dependenciesCount > 0;
105
+ }
106
+ /** @internal */
107
+ _isStale = false;
108
+ /** @internal */
109
+ _evalDelayed;
110
+ limit(limitFunction) {
111
+ super.limit(limitFunction);
112
+ this._evalIfChanged = () => {
113
+ if (!this._isSleeping) {
114
+ if (this._isStale) {
115
+ this.evaluateImmediate();
116
+ }
117
+ else {
118
+ this._isDirty = false;
119
+ }
120
+ }
121
+ return this._latestValue;
122
+ };
123
+ this._evalDelayed = (isChange) => {
124
+ this._limitBeforeChange(this._latestValue);
125
+ this._isDirty = true;
126
+ if (isChange) {
127
+ this._isStale = true;
128
+ }
129
+ this._limitChange(this, !isChange);
130
+ };
131
+ }
132
+ haveDependenciesChanged() {
133
+ if (this._isBeingEvaluated) {
134
+ return false;
135
+ }
136
+ this._isBeingEvaluated = true;
137
+ try {
138
+ for (const id of Object.keys(this._dependencyTracking)) {
139
+ const dep = this._dependencyTracking[Number(id)];
140
+ if (dep && dep._target.hasChanged(dep._version)) {
141
+ return true;
142
+ }
143
+ }
144
+ return false;
145
+ }
146
+ finally {
147
+ this._isBeingEvaluated = false;
148
+ }
149
+ }
150
+ beforeSubscriptionAdd(event) {
151
+ if (this._deferEvaluation && (event === 'change' || event === 'beforeChange')) {
152
+ this._deferEvaluation = false;
153
+ this.peek();
154
+ }
155
+ if (!this._pure || this._isDisposed || !this._isSleeping || event !== 'change') {
156
+ return;
157
+ }
158
+ this._wake();
159
+ }
160
+ afterSubscriptionRemove(event) {
161
+ if (!this._pure || this._isDisposed || event !== 'change') {
162
+ return;
163
+ }
164
+ if (!this.hasSubscriptionsForEvent('change')) {
165
+ this._sleep();
166
+ }
167
+ }
168
+ _wake() {
169
+ this._isSleeping = false;
170
+ if (this._isDirty || this.haveDependenciesChanged()) {
171
+ this._dependencyTracking = {};
172
+ this._dependenciesCount = 0;
173
+ if (this.evaluateImmediate()) {
174
+ this.updateVersion();
175
+ }
176
+ }
177
+ else {
178
+ const dependenciesOrder = [];
179
+ for (const id of Object.keys(this._dependencyTracking)) {
180
+ const dep = this._dependencyTracking[Number(id)];
181
+ if (dep) {
182
+ dependenciesOrder[dep._order] = Number(id);
183
+ }
184
+ }
185
+ for (let order = 0; order < dependenciesOrder.length; order++) {
186
+ const id = dependenciesOrder[order];
187
+ if (id === undefined)
188
+ continue;
189
+ const dep = this._dependencyTracking[id];
190
+ const subscription = this._subscribeToDependency(dep._target);
191
+ subscription._order = order;
192
+ subscription._version = dep._version;
193
+ this._dependencyTracking[id] = subscription;
194
+ }
195
+ if (this.haveDependenciesChanged()) {
196
+ if (this.evaluateImmediate()) {
197
+ this.updateVersion();
198
+ }
199
+ }
200
+ }
201
+ if (!this._isDisposed) {
202
+ this.notifySubscribers(this._latestValue, 'awake');
203
+ }
204
+ }
205
+ _sleep() {
206
+ for (const id of Object.keys(this._dependencyTracking)) {
207
+ const dep = this._dependencyTracking[Number(id)];
208
+ if (dep?.dispose) {
209
+ this._dependencyTracking[Number(id)] = {
210
+ _target: dep._target,
211
+ _order: dep._order,
212
+ _version: dep._version,
213
+ };
214
+ dep.dispose();
215
+ }
216
+ }
217
+ this._isSleeping = true;
218
+ this.notifySubscribers(undefined, 'asleep');
219
+ }
220
+ evaluateImmediate(notifyChange = false) {
221
+ if (this._isBeingEvaluated || this._isDisposed) {
222
+ return false;
223
+ }
224
+ this._isBeingEvaluated = true;
225
+ try {
226
+ return this._evaluateWithDependencyDetection(notifyChange);
227
+ }
228
+ finally {
229
+ this._isBeingEvaluated = false;
230
+ }
231
+ }
232
+ _evaluateWithDependencyDetection(notifyChange) {
233
+ const isInitial = this._pure ? undefined : this._dependenciesCount === 0;
234
+ const disposalCandidates = this._dependencyTracking;
235
+ let disposalCount = this._dependenciesCount;
236
+ this._dependencyTracking = {};
237
+ this._dependenciesCount = 0;
238
+ begin({
239
+ callback: (subscribable, id) => {
240
+ if (this._isDisposed)
241
+ return;
242
+ if (this._pure && subscribable === this) {
243
+ throw new Error("A 'pure' computed must not be called recursively");
244
+ }
245
+ if (disposalCount && disposalCandidates[id]) {
246
+ this._addDependencyTracking(id, subscribable, disposalCandidates[id]);
247
+ disposalCandidates[id] = null;
248
+ --disposalCount;
249
+ }
250
+ else if (!this._dependencyTracking[id]) {
251
+ const trackingObj = this._isSleeping
252
+ ? { _target: subscribable, _order: 0, _version: 0 }
253
+ : this._subscribeToDependency(subscribable);
254
+ this._addDependencyTracking(id, subscribable, trackingObj);
255
+ }
256
+ },
257
+ computed: this,
258
+ isInitial: isInitial === undefined ? undefined : !!isInitial,
259
+ });
260
+ let newValue;
261
+ try {
262
+ newValue = this._readFunction();
263
+ }
264
+ finally {
265
+ end();
266
+ if (disposalCount && !this._isSleeping) {
267
+ for (const id of Object.keys(disposalCandidates)) {
268
+ const entry = disposalCandidates[Number(id)];
269
+ if (entry?.dispose) {
270
+ entry.dispose();
271
+ }
272
+ }
273
+ }
274
+ this._isDirty = false;
275
+ }
276
+ let changed;
277
+ if (!this._dependenciesCount) {
278
+ this.dispose();
279
+ changed = true;
280
+ }
281
+ else {
282
+ changed = this.isDifferent(this._latestValue, newValue);
283
+ }
284
+ if (changed) {
285
+ if (!this._isSleeping) {
286
+ if (notifyChange) {
287
+ this.notifySubscribers(this._latestValue, 'beforeChange');
288
+ }
289
+ }
290
+ else {
291
+ this.updateVersion();
292
+ }
293
+ this._latestValue = newValue;
294
+ this.notifySubscribers(this._latestValue, 'spectate');
295
+ if (!this._isSleeping && notifyChange) {
296
+ this.notifySubscribers(this._latestValue);
297
+ }
298
+ if (this._recordUpdate) {
299
+ this._recordUpdate();
300
+ }
301
+ }
302
+ if (isInitial) {
303
+ this.notifySubscribers(this._latestValue, 'awake');
304
+ }
305
+ return changed;
306
+ }
307
+ _addDependencyTracking(id, target, trackingObj) {
308
+ this._dependencyTracking[id] = trackingObj;
309
+ trackingObj._order = this._dependenciesCount++;
310
+ trackingObj._version = target.getVersion();
311
+ }
312
+ _subscribeToDependency(target) {
313
+ if (target._deferUpdates) {
314
+ const dirtySub = target.subscribe(() => {
315
+ if (this._evalDelayed && !this._isBeingEvaluated) {
316
+ this._evalDelayed(false);
317
+ }
318
+ }, 'dirty');
319
+ const changeSub = target.subscribe(() => {
320
+ if (!this._notificationIsPending) {
321
+ if (this._evalDelayed) {
322
+ this._evalDelayed(true);
323
+ }
324
+ else {
325
+ this.evaluateImmediate(true);
326
+ }
327
+ }
328
+ else if (this._isDirty) {
329
+ this._isStale = true;
330
+ }
331
+ });
332
+ return {
333
+ _target: target,
334
+ _order: 0,
335
+ _version: 0,
336
+ dispose() {
337
+ dirtySub.dispose();
338
+ changeSub.dispose();
339
+ },
340
+ };
341
+ }
342
+ const subscription = target.subscribe(() => {
343
+ if (this._evalDelayed) {
344
+ this._evalDelayed(true);
345
+ }
346
+ else {
347
+ this.evaluateImmediate(true);
348
+ }
349
+ });
350
+ return {
351
+ _target: target,
352
+ _order: 0,
353
+ _version: 0,
354
+ dispose() {
355
+ subscription.dispose();
356
+ },
357
+ };
358
+ }
359
+ }
360
+ export class PureComputed extends Computed {
361
+ constructor(evaluatorOrOptions) {
362
+ if (typeof evaluatorOrOptions === 'function') {
363
+ super({ read: evaluatorOrOptions, pure: true });
364
+ }
365
+ else {
366
+ super({ ...evaluatorOrOptions, pure: true });
367
+ }
368
+ }
369
+ }
370
+ export function isComputed(value) {
371
+ return value instanceof Computed;
372
+ }
373
+ export function isPureComputed(value) {
374
+ return value instanceof Computed && value.isPure;
375
+ }
376
+ //# sourceMappingURL=computed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computed.js","sourceRoot":"","sources":["../src/computed.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function ensureConfigured(): void;
2
+ export declare function resetConfigured(): void;
3
+ export declare function enableAll(): void;
4
+ //# sourceMappingURL=configure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure.d.ts","sourceRoot":"","sources":["../src/configure.ts"],"names":[],"mappings":"AAkBA,wBAAgB,gBAAgB,IAAI,IAAI,CAiBvC;AAED,wBAAgB,eAAe,IAAI,IAAI,CAMtC;AAED,wBAAgB,SAAS,IAAI,IAAI,CAMhC"}
@@ -0,0 +1,48 @@
1
+ import { options } from './options.js';
2
+ import { bindingHandlers, instance as providerInstance } from './bindingProvider.js';
3
+ import { enableInterpolationMarkup } from './interpolationMarkup.js';
4
+ import { enableAttributeInterpolationMarkup } from './attributeInterpolationMarkup.js';
5
+ import { enableNamespacedBindings } from './namespacedBindings.js';
6
+ import { enableTextFilter } from './filters.js';
7
+ let _enabledInterpolation = false;
8
+ let _enabledAttributeInterpolation = false;
9
+ let _enabledNamespacedBindings = false;
10
+ let _enabledFilters = false;
11
+ function enableFiltersGlobal() {
12
+ for (const key of Object.keys(bindingHandlers)) {
13
+ enableTextFilter(key);
14
+ }
15
+ }
16
+ export function ensureConfigured() {
17
+ if (options.interpolation && !_enabledInterpolation) {
18
+ _enabledInterpolation = true;
19
+ enableInterpolationMarkup();
20
+ }
21
+ if (options.attributeInterpolation && !_enabledAttributeInterpolation) {
22
+ _enabledAttributeInterpolation = true;
23
+ enableAttributeInterpolationMarkup();
24
+ }
25
+ if (options.namespacedBindings && !_enabledNamespacedBindings) {
26
+ _enabledNamespacedBindings = true;
27
+ enableNamespacedBindings();
28
+ }
29
+ if (options.filters && !_enabledFilters) {
30
+ _enabledFilters = true;
31
+ enableFiltersGlobal();
32
+ }
33
+ }
34
+ export function resetConfigured() {
35
+ _enabledInterpolation = false;
36
+ _enabledAttributeInterpolation = false;
37
+ _enabledNamespacedBindings = false;
38
+ _enabledFilters = false;
39
+ providerInstance.bindingCache = {};
40
+ }
41
+ export function enableAll() {
42
+ options.interpolation = true;
43
+ options.attributeInterpolation = true;
44
+ options.namespacedBindings = true;
45
+ options.filters = true;
46
+ ensureConfigured();
47
+ }
48
+ //# sourceMappingURL=configure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure.js","sourceRoot":"","sources":["../src/configure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,QAAQ,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,kCAAkC,EAAE,MAAM,mCAAmC,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,IAAI,qBAAqB,GAAG,KAAK,CAAC;AAClC,IAAI,8BAA8B,GAAG,KAAK,CAAC;AAC3C,IAAI,0BAA0B,GAAG,KAAK,CAAC;AACvC,IAAI,eAAe,GAAG,KAAK,CAAC;AAE5B,SAAS,mBAAmB;IAC1B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;QAC/C,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,IAAI,OAAO,CAAC,aAAa,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACpD,qBAAqB,GAAG,IAAI,CAAC;QAC7B,yBAAyB,EAAE,CAAC;IAC9B,CAAC;IACD,IAAI,OAAO,CAAC,sBAAsB,IAAI,CAAC,8BAA8B,EAAE,CAAC;QACtE,8BAA8B,GAAG,IAAI,CAAC;QACtC,kCAAkC,EAAE,CAAC;IACvC,CAAC;IACD,IAAI,OAAO,CAAC,kBAAkB,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAC9D,0BAA0B,GAAG,IAAI,CAAC;QAClC,wBAAwB,EAAE,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;QACxC,eAAe,GAAG,IAAI,CAAC;QACvB,mBAAmB,EAAE,CAAC;IACxB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,qBAAqB,GAAG,KAAK,CAAC;IAC9B,8BAA8B,GAAG,KAAK,CAAC;IACvC,0BAA0B,GAAG,KAAK,CAAC;IACnC,eAAe,GAAG,KAAK,CAAC;IACxB,gBAAgB,CAAC,YAAY,GAAG,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAC7B,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IACtC,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAClC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IACvB,gBAAgB,EAAE,CAAC;AACrB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=controlFlowBindings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controlFlowBindings.d.ts","sourceRoot":"","sources":["../src/controlFlowBindings.ts"],"names":[],"mappings":""}
@@ -0,0 +1,151 @@
1
+ import { Computed } from './computed.js';
2
+ import { bindingHandlers } from './bindingProvider.js';
3
+ import { applyBindingsToDescendants } from './applyBindings.js';
4
+ import { addDisposeCallback } from './domNodeDisposal.js';
5
+ import { getDependenciesCount, getCurrentComputed } from './dependencyDetection.js';
6
+ import { bindingEvent } from './bindingEvent.js';
7
+ import { nativeTemplateEngine } from './templateEngine.js';
8
+ import { allowedVirtualElementBindings, virtualChildNodes, virtualEmptyNode, virtualSetChildren, } from './virtualElements.js';
9
+ import { unwrapObservable } from './utils.js';
10
+ import { cloneNodes } from './utilsDom.js';
11
+ // ---- if / ifnot / with ----
12
+ function makeWithIfBinding(bindingKey, isWith, isNot) {
13
+ const handler = {
14
+ init(element, valueAccessor, allBindings, _viewModel, bindingContext) {
15
+ let didDisplayOnLastUpdate;
16
+ let savedNodes;
17
+ let completeOnRender;
18
+ let needAsyncContext;
19
+ let renderOnEveryChange;
20
+ const contextOptions = {};
21
+ if (isWith) {
22
+ const as = allBindings.get('as');
23
+ const noChildContext = allBindings.get('noChildContext');
24
+ renderOnEveryChange = !(as && noChildContext);
25
+ contextOptions.as = as;
26
+ contextOptions.noChildContext = noChildContext;
27
+ contextOptions.exportDependencies = renderOnEveryChange;
28
+ }
29
+ completeOnRender = allBindings.get('completeOn') === 'render';
30
+ needAsyncContext = completeOnRender || allBindings.has(bindingEvent.descendantsComplete);
31
+ const computed = new Computed(() => {
32
+ const value = unwrapObservable(valueAccessor());
33
+ const shouldDisplay = !isNot !== !value;
34
+ const isInitial = !savedNodes;
35
+ let childContext;
36
+ if (!renderOnEveryChange && shouldDisplay === didDisplayOnLastUpdate) {
37
+ return;
38
+ }
39
+ let currentBindingContext = bindingContext;
40
+ if (needAsyncContext) {
41
+ currentBindingContext = bindingEvent.startPossiblyAsyncContentBinding(element, currentBindingContext);
42
+ }
43
+ if (shouldDisplay) {
44
+ if (!isWith || renderOnEveryChange) {
45
+ const currentComputed = getCurrentComputed();
46
+ if (currentComputed) {
47
+ contextOptions.dataDependency = currentComputed;
48
+ }
49
+ }
50
+ if (isWith) {
51
+ childContext = currentBindingContext.createChildContext(typeof value === 'function' ? value : valueAccessor, contextOptions);
52
+ }
53
+ else if (getDependenciesCount()) {
54
+ childContext = currentBindingContext.extend(null, contextOptions);
55
+ }
56
+ else {
57
+ childContext = currentBindingContext;
58
+ }
59
+ }
60
+ if (isInitial && getDependenciesCount()) {
61
+ savedNodes = cloneNodes(Array.from(virtualChildNodes(element)), true);
62
+ }
63
+ if (shouldDisplay) {
64
+ if (!isInitial) {
65
+ virtualSetChildren(element, cloneNodes(savedNodes));
66
+ }
67
+ applyBindingsToDescendants(childContext, element);
68
+ }
69
+ else {
70
+ virtualEmptyNode(element);
71
+ if (!completeOnRender) {
72
+ bindingEvent.notify(element, bindingEvent.childrenComplete);
73
+ }
74
+ }
75
+ didDisplayOnLastUpdate = shouldDisplay;
76
+ });
77
+ addDisposeCallback(element, () => computed.dispose());
78
+ return { controlsDescendantBindings: true };
79
+ },
80
+ };
81
+ bindingHandlers[bindingKey] = handler;
82
+ allowedVirtualElementBindings[bindingKey] = true;
83
+ }
84
+ makeWithIfBinding('if');
85
+ makeWithIfBinding('ifnot', false, true);
86
+ makeWithIfBinding('with', true);
87
+ // ---- let ----
88
+ const letHandler = {
89
+ init(element, valueAccessor, _allBindings, _viewModel, bindingContext) {
90
+ const innerContext = bindingContext.extend(valueAccessor);
91
+ applyBindingsToDescendants(innerContext, element);
92
+ return { controlsDescendantBindings: true };
93
+ },
94
+ };
95
+ bindingHandlers['let'] = letHandler;
96
+ allowedVirtualElementBindings['let'] = true;
97
+ // ---- using ----
98
+ const usingHandler = {
99
+ init(element, valueAccessor, allBindings, _viewModel, bindingContext) {
100
+ let options;
101
+ if (allBindings.has('as')) {
102
+ options = {
103
+ as: allBindings.get('as'),
104
+ noChildContext: allBindings.get('noChildContext'),
105
+ };
106
+ }
107
+ const innerContext = bindingContext.createChildContext(valueAccessor, options);
108
+ applyBindingsToDescendants(innerContext, element);
109
+ return { controlsDescendantBindings: true };
110
+ },
111
+ };
112
+ bindingHandlers['using'] = usingHandler;
113
+ allowedVirtualElementBindings['using'] = true;
114
+ // ---- foreach ----
115
+ function makeTemplateValueAccessor(valueAccessor) {
116
+ return () => {
117
+ const modelValue = valueAccessor();
118
+ // Peek without setting dependency
119
+ const unwrappedValue = (modelValue && typeof modelValue === 'object' && 'peek' in modelValue)
120
+ ? modelValue.peek()
121
+ : modelValue;
122
+ if (!unwrappedValue || typeof unwrappedValue.length === 'number') {
123
+ return { foreach: modelValue, templateEngine: nativeTemplateEngine };
124
+ }
125
+ unwrapObservable(modelValue);
126
+ const obj = unwrappedValue;
127
+ return {
128
+ foreach: obj.data,
129
+ as: obj.as,
130
+ noChildContext: obj.noChildContext,
131
+ includeDestroyed: obj.includeDestroyed,
132
+ afterAdd: obj.afterAdd,
133
+ beforeRemove: obj.beforeRemove,
134
+ afterRender: obj.afterRender,
135
+ beforeMove: obj.beforeMove,
136
+ afterMove: obj.afterMove,
137
+ templateEngine: nativeTemplateEngine,
138
+ };
139
+ };
140
+ }
141
+ const foreachHandler = {
142
+ init(element, valueAccessor, allBindings, viewModel, bindingContext) {
143
+ return bindingHandlers['template'].init(element, makeTemplateValueAccessor(valueAccessor), allBindings, viewModel, bindingContext);
144
+ },
145
+ update(element, valueAccessor, allBindings, viewModel, bindingContext) {
146
+ return bindingHandlers['template'].update(element, makeTemplateValueAccessor(valueAccessor), allBindings, viewModel, bindingContext);
147
+ },
148
+ };
149
+ bindingHandlers['foreach'] = foreachHandler;
150
+ allowedVirtualElementBindings['foreach'] = true;
151
+ //# sourceMappingURL=controlFlowBindings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controlFlowBindings.js","sourceRoot":"","sources":["../src/controlFlowBindings.ts"],"names":[],"mappings":"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"}
package/dist/core.d.ts ADDED
@@ -0,0 +1,29 @@
1
+ export { options } from './options.js';
2
+ export declare const version = "1.0.0";
3
+ export { Subscribable, Subscription, isSubscribable, isReadableSubscribable, valuesArePrimitiveAndEqual } from './subscribable.js';
4
+ export type { SubscriptionCallback, ReadableSubscribable } from './subscribable.js';
5
+ export { begin, end, registerDependency, ignore, getDependenciesCount, getDependencies, isInitial, getCurrentComputed, } from './dependencyDetection.js';
6
+ export type { TrackingFrame } from './dependencyDetection.js';
7
+ export { Observable, isObservable } from './observable.js';
8
+ export { ObservableArray, isObservableArray, DESTROY, isDestroyed } from './observableArray.js';
9
+ export { compareArrays, findMovesInArrayComparison } from './compareArrays.js';
10
+ export type { ArrayChange, CompareArraysOptions } from './compareArrays.js';
11
+ export { Computed, PureComputed, isComputed, isPureComputed } from './computed.js';
12
+ export type { ComputedOptions } from './computed.js';
13
+ export { registerExtender, throttle, debounce } from './extenders.js';
14
+ export type { ExtenderHandler, ExtenderMap, ExtenderOptions, RateLimitOptions } from './extenders.js';
15
+ export { effect, observe } from './effects.js';
16
+ export type { EffectHandle } from './effects.js';
17
+ export { Event, EventSubscribable, EventSubscription, AggregateEvent, isEvent, isEventSubscribable, isAggregateEvent } from './event.js';
18
+ export type { EventCallback, Constructor } from './event.js';
19
+ export { DisposableGroup } from './disposable.js';
20
+ export type { Disposable } from './disposable.js';
21
+ export { reactive, reactiveArray, computed, getObservable, replaceObservable } from './decorators.js';
22
+ export { unwrapObservable, peekObservable, toJS, toJSON, when, catchFunctionErrors, } from './utils.js';
23
+ export { schedule, cancel, runEarly, resetForTesting } from './tasks.js';
24
+ import * as tasks from './tasks.js';
25
+ export { tasks };
26
+ import { Observable } from './observable.js';
27
+ import { Computed } from './computed.js';
28
+ export declare function isWritableObservable(value: unknown): value is Observable<unknown> | Computed<unknown>;
29
+ //# sourceMappingURL=core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AACnI,YAAY,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEpF,OAAO,EACL,KAAK,EACL,GAAG,EACH,kBAAkB,EAClB,MAAM,EACN,oBAAoB,EACpB,eAAe,EACf,SAAS,EACT,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEhG,OAAO,EAAE,aAAa,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAC/E,YAAY,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE5E,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACnF,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACtE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEtG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC/C,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACzI,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE7D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEtG,OAAO,EACL,gBAAgB,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EACpD,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,CAAC;AAEjB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAIrG"}