taggedjs 2.4.2 → 2.4.12

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 (186) hide show
  1. package/bundle.js +3612 -0
  2. package/bundle.js.map +1 -0
  3. package/index.js +1 -1
  4. package/js/Subject.d.ts +3 -4
  5. package/js/Subject.js +4 -4
  6. package/js/Subject.js.map +1 -1
  7. package/js/Tag.class.d.ts +25 -17
  8. package/js/Tag.class.js +208 -78
  9. package/js/Tag.class.js.map +1 -1
  10. package/js/Tag.utils.d.ts +13 -13
  11. package/js/Tag.utils.js +2 -18
  12. package/js/Tag.utils.js.map +1 -1
  13. package/js/TagSupport.class.d.ts +15 -14
  14. package/js/TagSupport.class.js +24 -46
  15. package/js/TagSupport.class.js.map +1 -1
  16. package/js/TemplaterResult.class.d.ts +36 -0
  17. package/js/TemplaterResult.class.js +73 -0
  18. package/js/TemplaterResult.class.js.map +1 -0
  19. package/js/ValueSubject.d.ts +4 -2
  20. package/js/ValueSubject.js +1 -1
  21. package/js/ValueSubject.js.map +1 -1
  22. package/js/alterProps.function.d.ts +4 -0
  23. package/js/alterProps.function.js +45 -0
  24. package/js/alterProps.function.js.map +1 -0
  25. package/js/bindSubjectCallback.function 9.27.33/342/200/257AM.js" +32 -0
  26. package/js/bindSubjectCallback.function.d 9.27.33/342/200/257AM.ts" +8 -0
  27. package/js/bindSubjectCallback.function.d.ts +3 -4
  28. package/js/bindSubjectCallback.function.js +20 -8
  29. package/js/bindSubjectCallback.function.js.map +1 -1
  30. package/js/checkDestroyPrevious.function.d.ts +6 -0
  31. package/js/checkDestroyPrevious.function.js +62 -0
  32. package/js/checkDestroyPrevious.function.js.map +1 -0
  33. package/js/destroyTag.function.d.ts +5 -0
  34. package/js/destroyTag.function.js +18 -0
  35. package/js/destroyTag.function.js.map +1 -0
  36. package/js/elementInitCheck.d.ts +1 -1
  37. package/js/getCallback.d.ts +1 -1
  38. package/js/getCallback.js +16 -15
  39. package/js/getCallback.js.map +1 -1
  40. package/js/hasTagSupportChanged.function.d.ts +6 -6
  41. package/js/hasTagSupportChanged.function.js +30 -21
  42. package/js/hasTagSupportChanged.function.js.map +1 -1
  43. package/js/html.d.ts +1 -1
  44. package/js/html.js +1 -1
  45. package/js/html.js.map +1 -1
  46. package/js/index.d.ts +22 -27
  47. package/js/index.js +26 -27
  48. package/js/index.js.map +1 -1
  49. package/js/interpolateAttributes.d.ts +2 -3
  50. package/js/interpolateAttributes.js +1 -127
  51. package/js/interpolateAttributes.js.map +1 -1
  52. package/js/interpolateContentTemplates.d.ts +9 -6
  53. package/js/interpolateContentTemplates.js +18 -28
  54. package/js/interpolateContentTemplates.js.map +1 -1
  55. package/js/interpolateElement.d.ts +7 -6
  56. package/js/interpolateElement.js +13 -10
  57. package/js/interpolateElement.js.map +1 -1
  58. package/js/interpolateTemplate.d.ts +22 -7
  59. package/js/interpolateTemplate.js +65 -27
  60. package/js/interpolateTemplate.js.map +1 -1
  61. package/js/isInstance.d.ts +3 -4
  62. package/js/isInstance.js.map +1 -1
  63. package/js/isLikeTags.function.d.ts +2 -0
  64. package/js/isLikeTags.function.js +30 -0
  65. package/js/isLikeTags.function.js.map +1 -0
  66. package/js/onDestroy.js +3 -3
  67. package/js/onDestroy.js.map +1 -1
  68. package/js/onInit.js +6 -4
  69. package/js/onInit.js.map +1 -1
  70. package/js/processAttribute.function.d.ts +3 -0
  71. package/js/processAttribute.function.js +122 -0
  72. package/js/processAttribute.function.js.map +1 -0
  73. package/js/processNewValue.function.d.ts +2 -2
  74. package/js/processNewValue.function.js +13 -15
  75. package/js/processNewValue.function.js.map +1 -1
  76. package/js/processRegularValue.function.d.ts +5 -7
  77. package/js/processRegularValue.function.js +10 -17
  78. package/js/processRegularValue.function.js.map +1 -1
  79. package/js/processSubjectComponent.function.d.ts +6 -6
  80. package/js/processSubjectComponent.function.js +30 -22
  81. package/js/processSubjectComponent.function.js.map +1 -1
  82. package/js/processSubjectValue.function.d.ts +17 -14
  83. package/js/processSubjectValue.function.js +55 -79
  84. package/js/processSubjectValue.function.js.map +1 -1
  85. package/js/processTagArray.d.ts +9 -8
  86. package/js/processTagArray.js +36 -37
  87. package/js/processTagArray.js.map +1 -1
  88. package/js/processTagResult.function.d.ts +7 -8
  89. package/js/processTagResult.function.js +40 -17
  90. package/js/processTagResult.function.js.map +1 -1
  91. package/js/provider.utils.d.ts +1 -1
  92. package/js/provider.utils.js +19 -8
  93. package/js/provider.utils.js.map +1 -1
  94. package/js/providers.js +6 -6
  95. package/js/providers.js.map +1 -1
  96. package/js/redrawTag.function.d.ts +5 -8
  97. package/js/redrawTag.function.js +16 -4
  98. package/js/redrawTag.function.js.map +1 -1
  99. package/js/render.d.ts +1 -1
  100. package/js/render.js.map +1 -1
  101. package/js/renderExistingTag.function.d.ts +7 -0
  102. package/js/renderExistingTag.function.js +30 -0
  103. package/js/renderExistingTag.function.js.map +1 -0
  104. package/js/renderTagSupport.function.d.ts +4 -0
  105. package/js/renderTagSupport.function.js +42 -0
  106. package/js/renderTagSupport.function.js.map +1 -0
  107. package/js/scanTextAreaValue.function.d.ts +2 -0
  108. package/js/scanTextAreaValue.function.js +16 -0
  109. package/js/scanTextAreaValue.function.js.map +1 -0
  110. package/js/set.function.d.ts +4 -3
  111. package/js/set.function.js +25 -34
  112. package/js/set.function.js.map +1 -1
  113. package/js/setLet.function.d.ts +1 -1
  114. package/js/setLet.function.js +14 -3
  115. package/js/setLet.function.js.map +1 -1
  116. package/js/setProp.function.d.ts +1 -1
  117. package/js/setProp.function.js +6 -3
  118. package/js/setProp.function.js.map +1 -1
  119. package/js/setUse.function.d.ts +11 -11
  120. package/js/tag.d.ts +6 -4
  121. package/js/tag.js +78 -71
  122. package/js/tag.js.map +1 -1
  123. package/js/tagElement.d.ts +5 -7
  124. package/js/tagElement.js +20 -31
  125. package/js/tagElement.js.map +1 -1
  126. package/js/tagRunner.d.ts +6 -6
  127. package/js/tagRunner.js +1 -1
  128. package/js/tagRunner.js.map +1 -1
  129. package/js/templater.utils.d.ts +23 -12
  130. package/js/templater.utils.js +55 -40
  131. package/js/templater.utils.js.map +1 -1
  132. package/js/updateExistingTag.function.d.ts +4 -4
  133. package/js/updateExistingTag.function.js +16 -7
  134. package/js/updateExistingTag.function.js.map +1 -1
  135. package/js/updateExistingTagComponent.function.d.ts +4 -4
  136. package/js/updateExistingTagComponent.function.js +105 -39
  137. package/js/updateExistingTagComponent.function.js.map +1 -1
  138. package/js/updateExistingValue.function.d.ts +8 -10
  139. package/js/updateExistingValue.function.js +62 -89
  140. package/js/updateExistingValue.function.js.map +1 -1
  141. package/js/watch.function.js +4 -3
  142. package/js/watch.function.js.map +1 -1
  143. package/package.json +1 -2
  144. package/js/CustomError.d.ts +0 -7
  145. package/js/CustomError.js +0 -9
  146. package/js/CustomError.js.map +0 -1
  147. package/js/ElementTarget.interface.d.ts +0 -7
  148. package/js/ElementTarget.interface.js +0 -2
  149. package/js/ElementTarget.interface.js.map +0 -1
  150. package/js/Errors2.d.ts +0 -14
  151. package/js/Errors2.js +0 -21
  152. package/js/Errors2.js.map +0 -1
  153. package/js/gateway/gateway.web.component.d.ts +0 -11
  154. package/js/gateway/gateway.web.component.js +0 -20
  155. package/js/gateway/gateway.web.component.js.map +0 -1
  156. package/js/gateway/index.d.ts +0 -3
  157. package/js/gateway/index.js +0 -4
  158. package/js/gateway/index.js.map +0 -1
  159. package/js/gateway/loadTagGateway.function.d.ts +0 -2
  160. package/js/gateway/loadTagGateway.function.js +0 -18
  161. package/js/gateway/loadTagGateway.function.js.map +0 -1
  162. package/js/gateway/tagGateway.function.d.ts +0 -5
  163. package/js/gateway/tagGateway.function.js +0 -49
  164. package/js/gateway/tagGateway.function.js.map +0 -1
  165. package/js/gateway/tagGateway.utils.d.ts +0 -22
  166. package/js/gateway/tagGateway.utils.js +0 -137
  167. package/js/gateway/tagGateway.utils.js.map +0 -1
  168. package/js/getTagSupport.d.ts +0 -20
  169. package/js/getTagSupport.js +0 -114
  170. package/js/getTagSupport.js.map +0 -1
  171. package/js/renderAppToElement.d.ts +0 -14
  172. package/js/renderAppToElement.js +0 -57
  173. package/js/renderAppToElement.js.map +0 -1
  174. package/js/state.d.ts +0 -22
  175. package/js/state.js +0 -128
  176. package/js/state.js.map +0 -1
  177. package/js/tagGateway.function.d.ts +0 -14
  178. package/js/tagGateway.function.js +0 -138
  179. package/js/tagGateway.function.js.map +0 -1
  180. package/js/updateTag.utils.d.ts +0 -8
  181. package/js/updateTag.utils.js +0 -83
  182. package/js/updateTag.utils.js.map +0 -1
  183. package/taggedjs.js +0 -1
  184. /package/js/{Errors.d.ts → errors.d.ts} +0 -0
  185. /package/js/{Errors.js → errors.js} +0 -0
  186. /package/js/{Errors.js.map → errors.js.map} +0 -0
package/js/Tag.class.js CHANGED
@@ -1,10 +1,11 @@
1
- import { runBeforeDestroy } from "./tagRunner.js";
2
- import { buildClones } from "./render.js";
3
- import { interpolateElement, interpolateString } from "./interpolateElement.js";
4
- import { afterElmBuild } from "./interpolateTemplate.js";
5
- import { elementDestroyCheck } from "./elementDestroyCheck.function.js";
6
- import { updateExistingValue } from "./updateExistingValue.function.js";
7
- import { processNewValue } from "./processNewValue.function.js";
1
+ import { runBeforeDestroy } from './tagRunner';
2
+ import { buildClones } from './render';
3
+ import { interpolateElement, interpolateString } from './interpolateElement';
4
+ import { afterElmBuild, subscribeToTemplate } from './interpolateTemplate';
5
+ import { elementDestroyCheck } from './elementDestroyCheck.function';
6
+ import { processNewValue } from './processNewValue.function';
7
+ import { isSubjectInstance, isTagComponent } from './isInstance';
8
+ import { isLikeTags } from './isLikeTags.function';
8
9
  export const variablePrefix = '__tagvar';
9
10
  export const escapeVariable = '--' + variablePrefix + '--';
10
11
  const prefixSearch = new RegExp(variablePrefix, 'g');
@@ -15,14 +16,17 @@ export class ArrayValueNeverSet {
15
16
  export class Tag {
16
17
  strings;
17
18
  values;
19
+ version = 0;
18
20
  isTag = true;
19
- clones = []; // elements on document
21
+ hasLiveElements = false;
22
+ clones = []; // elements on document. Needed at destroy process to know what to destroy
20
23
  cloneSubs = []; // subscriptions created by clones
21
- children = []; // tags on me
24
+ childTags = []; // tags on me
22
25
  tagSupport;
26
+ lastTemplateString = undefined; // used to compare templates for updates
23
27
  // only present when a child of a tag
24
28
  ownerTag;
25
- insertBefore;
29
+ // insertBefore?: Element
26
30
  appElement; // only seen on this.getAppElement().appElement
27
31
  // present only when an array. Populated by this.key()
28
32
  arrayValue = new ArrayValueNeverSet();
@@ -35,71 +39,98 @@ export class Tag {
35
39
  this.arrayValue = arrayValue;
36
40
  return this;
37
41
  }
38
- async destroy(options = {
42
+ destroy(options = {
39
43
  stagger: 0,
40
44
  byParent: false, // Only destroy clones of direct children
41
45
  }) {
46
+ if (!this.hasLiveElements) {
47
+ throw new Error('destroying wrong tag');
48
+ }
49
+ const tagSupport = this.tagSupport;
50
+ const global = tagSupport.templater.global;
51
+ // removing is considered rendering. Prevents after event processing of this tag even tho possibly deleted
52
+ // ++this.tagSupport.templater.global.renderCount
42
53
  // the isComponent check maybe able to be removed
43
- const isComponent = this.tagSupport ? true : false;
54
+ const isComponent = tagSupport ? true : false;
44
55
  if (isComponent) {
45
- runBeforeDestroy(this.tagSupport, this);
56
+ runBeforeDestroy(tagSupport, this);
46
57
  }
58
+ const childTags = options.byParent ? [] : getChildTagsToDestroy(this.childTags);
59
+ // signify that no further event rendering should take place by making logic think a render occurred during event
60
+ // childTags.forEach(child => ++child.tagSupport.templater.global.renderCount)
61
+ // signify immediately child has been deleted (looked for during event processing)
62
+ childTags.forEach(child => {
63
+ const subGlobal = child.tagSupport.templater.global;
64
+ delete subGlobal.newest;
65
+ subGlobal.deleted = true;
66
+ });
67
+ delete global.oldest;
68
+ delete global.newest;
69
+ global.deleted = true;
70
+ this.hasLiveElements = false;
71
+ delete tagSupport.subject.tag;
47
72
  this.destroySubscriptions();
48
- const promises = this.children.map((kid) => kid.destroy({ ...options, byParent: true }));
73
+ let mainPromise;
49
74
  if (this.ownerTag) {
50
- this.ownerTag.children = this.ownerTag.children.filter(child => child !== this);
75
+ this.ownerTag.childTags = this.ownerTag.childTags.filter(child => child !== this);
51
76
  }
52
77
  if (!options.byParent) {
53
- options.stagger = await this.destroyClones(options);
78
+ const { stagger, promise } = this.destroyClones(options);
79
+ options.stagger = stagger;
80
+ if (promise) {
81
+ mainPromise = promise;
82
+ }
83
+ }
84
+ else {
85
+ this.destroyClones();
86
+ }
87
+ if (mainPromise) {
88
+ mainPromise = mainPromise.then(async () => {
89
+ const promises = childTags.map(kid => kid.destroy({ stagger: 0, byParent: true }));
90
+ return Promise.all(promises);
91
+ });
92
+ }
93
+ else {
94
+ mainPromise = Promise.all(childTags.map(kid => kid.destroy({ stagger: 0, byParent: true })));
54
95
  }
55
- await Promise.all(promises);
56
- return options.stagger;
96
+ return mainPromise.then(() => options.stagger);
57
97
  }
58
98
  destroySubscriptions() {
59
99
  this.cloneSubs.forEach(cloneSub => cloneSub.unsubscribe());
60
100
  this.cloneSubs.length = 0;
61
101
  }
62
- async destroyClones({ stagger } = {
102
+ destroyClones({ stagger } = {
63
103
  stagger: 0,
64
104
  }) {
65
- let hasPromise = false;
66
- const promises = this.clones.reverse().map((clone, index) => {
67
- let promise;
68
- if (clone.ondestroy) {
69
- promise = elementDestroyCheck(clone, stagger);
70
- }
71
- const next = () => {
72
- clone.parentNode?.removeChild(clone);
73
- const ownerTag = this.ownerTag;
74
- if (ownerTag) {
75
- // Sometimes my clones were first registered to my owner, remove them
76
- ownerTag.clones = ownerTag.clones.filter(compareClone => compareClone !== clone);
77
- }
78
- };
79
- if (promise instanceof Promise) {
80
- hasPromise = true;
81
- promise.then(next);
82
- }
83
- else {
84
- next();
85
- }
86
- return promise;
87
- });
88
- if (hasPromise) {
89
- await Promise.all(promises);
105
+ //const promises = this.clones.reverse().map(
106
+ const promises = this.clones.map(clone => this.checkCloneRemoval(clone, stagger)).filter(x => x); // only return promises
107
+ this.clones.length = 0; // tag maybe used for something else
108
+ if (promises.length) {
109
+ return { promise: Promise.all(promises), stagger };
90
110
  }
91
- return stagger;
111
+ return { stagger };
92
112
  }
93
- updateByTag(tag) {
94
- this.updateConfig(tag.strings, tag.values);
95
- this.tagSupport.templater = tag.tagSupport.templater;
96
- this.tagSupport.propsConfig = { ...tag.tagSupport.propsConfig };
97
- this.tagSupport.newest = tag;
98
- }
99
- lastTemplateString = undefined; // used to compare templates for updates
100
- updateConfig(strings, values) {
101
- this.strings = strings;
102
- this.updateValues(values);
113
+ checkCloneRemoval(clone, stagger) {
114
+ let promise;
115
+ const customElm = clone;
116
+ if (customElm.ondestroy) {
117
+ promise = elementDestroyCheck(customElm, stagger);
118
+ }
119
+ const next = () => {
120
+ clone.parentNode?.removeChild(clone);
121
+ const ownerTag = this.ownerTag;
122
+ if (ownerTag) {
123
+ // Sometimes my clones were first registered to my owner, remove them from owner
124
+ ownerTag.clones = ownerTag.clones.filter(compareClone => compareClone !== clone);
125
+ }
126
+ };
127
+ if (promise instanceof Promise) {
128
+ return promise.then(next);
129
+ }
130
+ else {
131
+ next();
132
+ }
133
+ return promise;
103
134
  }
104
135
  getTemplate() {
105
136
  const string = this.strings.map((string, index) => {
@@ -117,11 +148,13 @@ export class Tag {
117
148
  string: interpolation.string,
118
149
  strings: this.strings,
119
150
  values: this.values,
120
- context: this.tagSupport?.memory.context || {},
151
+ context: this.tagSupport.templater.global.context || {},
121
152
  };
122
153
  }
123
154
  isLikeTag(tag) {
155
+ return isLikeTags(this, tag);
124
156
  const { string } = tag.getTemplate();
157
+ // TODO: most likely remove?
125
158
  if (!this.lastTemplateString) {
126
159
  throw new Error('no template here');
127
160
  }
@@ -146,12 +179,29 @@ export class Tag {
146
179
  }
147
180
  return false;
148
181
  }
182
+ updateByTag(tag) {
183
+ if (!this.tagSupport.templater.global.oldest) {
184
+ throw new Error('no oldest here');
185
+ }
186
+ if (!this.hasLiveElements) {
187
+ throw new Error('trying to update a tag with no elements on stage');
188
+ }
189
+ this.tagSupport.templater.global.newest = tag;
190
+ if (!this.tagSupport.templater.global.context) {
191
+ throw new Error('issue back here');
192
+ }
193
+ this.updateConfig(tag.strings, tag.values);
194
+ }
195
+ updateConfig(strings, values) {
196
+ this.strings = strings;
197
+ this.updateValues(values);
198
+ }
149
199
  update() {
150
- return this.updateContext(this.tagSupport.memory.context);
200
+ return this.updateContext(this.tagSupport.templater.global.context);
151
201
  }
152
202
  updateValues(values) {
153
203
  this.values = values;
154
- return this.updateContext(this.tagSupport.memory.context);
204
+ return this.updateContext(this.tagSupport.templater.global.context);
155
205
  }
156
206
  updateContext(context) {
157
207
  this.strings.map((_string, index) => {
@@ -159,13 +209,15 @@ export class Tag {
159
209
  const hasValue = this.values.length > index;
160
210
  const value = this.values[index];
161
211
  // is something already there?
162
- const existing = variableName in context;
163
- if (existing) {
164
- const existing = context[variableName];
165
- return updateExistingValue(existing, value, this);
212
+ const exists = variableName in context;
213
+ if (exists) {
214
+ return updateContextItem(context, variableName, value);
215
+ }
216
+ if (!hasValue) {
217
+ return;
166
218
  }
167
219
  // 🆕 First time values below
168
- processNewValue(hasValue, value, context, variableName, this);
220
+ context[variableName] = processNewValue(hasValue, value, this);
169
221
  });
170
222
  return context;
171
223
  }
@@ -178,7 +230,8 @@ export class Tag {
178
230
  }
179
231
  /** Used during HMR only where static content itself could have been edited */
180
232
  rebuild() {
181
- const insertBefore = this.insertBefore;
233
+ // const insertBefore = this.insertBefore
234
+ const insertBefore = this.tagSupport.templater.global.insertBefore;
182
235
  if (!insertBefore) {
183
236
  const err = new Error('Cannot rebuild. Previous insertBefore element is not defined on tag');
184
237
  err.tag = this;
@@ -186,34 +239,111 @@ export class Tag {
186
239
  }
187
240
  this.buildBeforeElement(insertBefore, {
188
241
  forceElement: true,
189
- counts: { added: 0, removed: 0 },
242
+ counts: { added: 0, removed: 0 }, test: false,
190
243
  });
191
244
  }
192
245
  buildBeforeElement(insertBefore, options = {
193
246
  forceElement: false,
194
247
  counts: { added: 0, removed: 0 },
248
+ test: false
195
249
  }) {
196
- this.insertBefore = insertBefore;
250
+ if (!insertBefore.parentNode) {
251
+ throw new Error('no parent before removing clones');
252
+ }
253
+ this.tagSupport.templater.global.oldest = this;
254
+ this.tagSupport.templater.global.newest = this;
255
+ this.tagSupport.subject.tag = this;
256
+ this.hasLiveElements = true;
257
+ // remove old clones
258
+ if (this.clones.length) {
259
+ this.clones.forEach(clone => this.checkCloneRemoval(clone, 0));
260
+ }
261
+ // this.insertBefore = insertBefore
262
+ this.tagSupport.templater.global.insertBefore = insertBefore;
263
+ // const context = this.tagSupport.memory.context // this.update()
197
264
  const context = this.update();
198
265
  const template = this.getTemplate();
199
- const temporary = document.createElement('div');
200
- temporary.id = 'tag-temp-holder';
266
+ if (!insertBefore.parentNode) {
267
+ throw new Error('no parent before building tag');
268
+ }
269
+ const elementContainer = document.createElement('div');
270
+ elementContainer.id = 'tag-temp-holder';
201
271
  // render content with a first child that we can know is our first element
202
- temporary.innerHTML = `<template tag-wrap="22">${template.string}</template>`;
203
- // const clonesBefore = this.clones.map(clone => clone)
204
- const intClones = interpolateElement(temporary, context, template, this, // this.ownerTag || this,
272
+ elementContainer.innerHTML = `<template id="temp-template-tag-wrap">${template.string}</template>`;
273
+ // Search/replace innerHTML variables but don't interpolate tag components just yet
274
+ const { tagComponents } = interpolateElement(elementContainer, context, template, this, // ownerTag,
205
275
  {
206
276
  forceElement: options.forceElement,
207
277
  counts: options.counts
278
+ }, options.test);
279
+ if (!insertBefore.parentNode) {
280
+ throw new Error('no parent building tag');
281
+ }
282
+ afterInterpolateElement(elementContainer, insertBefore, this, // ownerTag
283
+ context, options);
284
+ // this.clones.push(...clones)
285
+ // Any tag components that were found should be processed AFTER the owner processes its elements. Avoid double processing of elements attributes like (oninit)=${}
286
+ let isForceElement = options.forceElement;
287
+ tagComponents.forEach(tagComponent => {
288
+ // const preClones = this.clones.map(clone => clone)
289
+ subscribeToTemplate(tagComponent.insertBefore, // temporary,
290
+ tagComponent.subject, tagComponent.ownerTag, options.counts, { isForceElement });
291
+ if (!insertBefore.parentNode) {
292
+ throw new Error('no parent building tag components');
293
+ }
294
+ afterInterpolateElement(elementContainer, insertBefore, this, context, options);
295
+ // remove component clones from ownerTag as they will belong to the components they live on
296
+ /*
297
+ if( preClones.length ) {
298
+ this.clones = this.clones.filter(cloneFilter => !preClones.find(clone => clone === cloneFilter))
299
+ }
300
+ */
208
301
  });
209
- this.clones.length = 0;
210
- const clones = buildClones(temporary, insertBefore);
211
- this.clones.push(...clones);
212
- if (intClones.length) {
213
- this.clones = this.clones.filter(cloneFilter => !intClones.find(clone => clone === cloneFilter));
302
+ }
303
+ }
304
+ function afterInterpolateElement(container, insertBefore, ownerTag,
305
+ // preClones: Clones,
306
+ context, options) {
307
+ const clones = buildClones(container, insertBefore);
308
+ ownerTag.clones.push(...clones);
309
+ clones.forEach(clone => afterElmBuild(clone, options, context, ownerTag));
310
+ return clones;
311
+ }
312
+ function getChildTagsToDestroy(childTags, allTags = []) {
313
+ for (let index = childTags.length - 1; index >= 0; --index) {
314
+ const cTag = childTags[index];
315
+ if (allTags.find(x => x === cTag)) {
316
+ // TODO: Lets find why a child tag is attached twice to owner
317
+ throw new Error('child tag registered twice for delete');
214
318
  }
215
- this.clones.forEach(clone => afterElmBuild(clone, options));
216
- return this.clones;
319
+ allTags.push(cTag);
320
+ childTags.splice(index, 1);
321
+ getChildTagsToDestroy(cTag.childTags, allTags);
322
+ }
323
+ return allTags;
324
+ }
325
+ function updateContextItem(context, variableName, value) {
326
+ const subject = context[variableName];
327
+ const tag = subject.tag;
328
+ if (tag) {
329
+ const oldTemp = tag.tagSupport.templater;
330
+ const oldWrap = oldTemp.wrapper; // tag versus component
331
+ if (value.global !== oldTemp.global) {
332
+ if (oldWrap && isTagComponent(value)) {
333
+ const oldValueFn = oldWrap.original;
334
+ const newValueFn = value.wrapper?.original;
335
+ const fnMatched = oldValueFn === newValueFn;
336
+ if (fnMatched) {
337
+ value.global = oldTemp.global;
338
+ }
339
+ }
340
+ }
341
+ }
342
+ // return updateExistingValue(subject, value, this)
343
+ if (isSubjectInstance(value)) {
344
+ return;
217
345
  }
346
+ subject.set(value); // listeners will evaluate updated values to possibly update display(s)
347
+ return;
218
348
  }
219
349
  //# sourceMappingURL=Tag.class.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tag.class.js","sourceRoot":"","sources":["../ts/Tag.class.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Tag.class.js","sourceRoot":"","sources":["../ts/Tag.class.ts"],"names":[],"mappings":"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"}
package/js/Tag.utils.d.ts CHANGED
@@ -1,17 +1,17 @@
1
- import { TagSupport } from "./TagSupport.class.js";
2
- import { ValueSubject } from "./ValueSubject.js";
3
- import { Subject } from "./Subject.js";
4
- import { Tag } from "./Tag.class.js";
5
- import { TemplaterResult } from "./templater.utils.js";
1
+ import { ValueSubject } from "./ValueSubject";
2
+ import { Subject } from "./Subject";
3
+ import { Tag } from "./Tag.class";
4
+ import { TemplaterResult } from "./TemplaterResult.class";
5
+ import { Template } from "./interpolateTemplate";
6
6
  export type TagSubject = Subject<TemplaterResult> & {
7
- tagSupport: TagSupport;
8
7
  tag: Tag;
9
- template: Element;
8
+ template: Element | Text | Template;
10
9
  };
11
- export type DisplaySubject = Subject<TemplaterResult> & {
12
- clone?: Element | Text;
13
- template: Element;
10
+ type RegularValue = string | number | boolean;
11
+ export type DisplaySubject = Subject<RegularValue> & {
12
+ lastValue?: RegularValue;
13
+ clone?: Element | Text | Template;
14
+ template: Element | Text | Template;
14
15
  };
15
- export declare function getSubjectFunction(value: any, tag: Tag): ValueSubject<(...args: any[]) => any>;
16
- export declare function setValueRedraw(templater: TemplaterResult, // latest tag function to call for rendering
17
- existing: TagSubject, ownerTag: Tag): void;
16
+ export declare function getSubjectFunction(value: any, tag: Tag): ValueSubject<import("./bindSubjectCallback.function").Callback>;
17
+ export {};
package/js/Tag.utils.js CHANGED
@@ -1,22 +1,6 @@
1
- import { ValueSubject } from "./ValueSubject.js";
2
- import { redrawTag } from "./redrawTag.function.js";
3
- import { bindSubjectCallback } from "./bindSubjectCallback.function.js";
1
+ import { ValueSubject } from "./ValueSubject";
2
+ import { bindSubjectCallback } from "./bindSubjectCallback.function";
4
3
  export function getSubjectFunction(value, tag) {
5
4
  return new ValueSubject(bindSubjectCallback(value, tag));
6
5
  }
7
- export function setValueRedraw(templater, // latest tag function to call for rendering
8
- existing, ownerTag) {
9
- // redraw does not communicate to parent
10
- templater.redraw = () => {
11
- const existingTag = existing.tag;
12
- const newest = templater.tagSupport.newest;
13
- const tagSupport = existingTag?.tagSupport || templater.tagSupport;
14
- const { remit, retag } = redrawTag(tagSupport, templater, newest, ownerTag);
15
- if (!remit) {
16
- return;
17
- }
18
- existing.set(templater);
19
- return retag;
20
- };
21
- }
22
6
  //# sourceMappingURL=Tag.utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tag.utils.js","sourceRoot":"","sources":["../ts/Tag.utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGhD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAEnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAavE,MAAM,UAAU,kBAAkB,CAChC,KAAU,EACV,GAAQ;IAER,OAAO,IAAI,YAAY,CAAE,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAE,CAAA;AAC5D,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,SAA0B,EAAE,4CAA4C;AACxE,QAAoB,EACpB,QAAa;IAEb,wCAAwC;IACxC,SAAS,CAAC,MAAM,GAAG,GAAG,EAAE;QACtB,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAA;QAChC,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,CAAA;QAC1C,MAAM,UAAU,GAAG,WAAW,EAAE,UAAU,IAAI,SAAS,CAAC,UAAU,CAAA;QAElE,MAAM,EAAC,KAAK,EAAE,KAAK,EAAC,GAAG,SAAS,CAC9B,UAAU,EACV,SAAS,EACT,MAAM,EACN,QAAQ,CACT,CAAA;QAED,IAAG,CAAC,KAAK,EAAE,CAAC;YACV,OAAM;QACR,CAAC;QAED,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAEvB,OAAO,KAAK,CAAA;IACd,CAAC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"Tag.utils.js","sourceRoot":"","sources":["../ts/Tag.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAI7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AAepE,MAAM,UAAU,kBAAkB,CAChC,KAAU,EACV,GAAQ;IAER,OAAO,IAAI,YAAY,CAAE,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAE,CAAA;AAC5D,CAAC"}
@@ -1,10 +1,11 @@
1
- import { Props } from "./Props.js";
2
- import { Tag, TagMemory } from "./Tag.class.js";
3
- import { TagChildren } from "./tag.js";
4
- import { TemplaterResult } from "./templater.utils.js";
5
- export declare class TagSupport {
1
+ import { Props } from './Props';
2
+ import { TagMemory } from './Tag.class';
3
+ import { TemplaterResult } from './TemplaterResult.class';
4
+ import { TagSubject } from './Tag.utils';
5
+ export declare class BaseTagSupport {
6
6
  templater: TemplaterResult;
7
- children: TagChildren;
7
+ subject: TagSubject;
8
+ isApp: boolean;
8
9
  propsConfig: {
9
10
  latest: Props;
10
11
  latestCloned: Props;
@@ -12,12 +13,12 @@ export declare class TagSupport {
12
13
  clonedProps: Props;
13
14
  };
14
15
  memory: TagMemory;
15
- constructor(templater: TemplaterResult, children: TagChildren, // children tags passed in as arguments
16
- props?: Props);
17
- oldest?: Tag;
18
- newest?: Tag;
19
- mutatingRender(): Tag;
20
- render(): Tag;
21
- /** Returns true when rendering owner is not needed. Returns false when rendering owner should occur */
22
- renderExistingTag(tag: Tag, newTemplater: TemplaterResult): boolean;
16
+ constructor(templater: TemplaterResult, subject: TagSubject);
17
+ }
18
+ export declare class TagSupport extends BaseTagSupport {
19
+ ownerTagSupport: TagSupport;
20
+ templater: TemplaterResult;
21
+ subject: TagSubject;
22
+ isApp: boolean;
23
+ constructor(ownerTagSupport: TagSupport, templater: TemplaterResult, subject: TagSubject);
23
24
  }
@@ -1,26 +1,22 @@
1
- import { deepClone } from "./deepFunctions.js";
2
- import { hasTagSupportChanged } from "./hasTagSupportChanged.function.js";
3
- import { isTagArray, isTagComponent, isTagInstance } from "./isInstance.js";
4
- import { providersChangeCheck } from "./provider.utils.js";
5
- import { alterProps } from "./templater.utils.js";
6
- export class TagSupport {
1
+ import { deepClone } from './deepFunctions';
2
+ import { isTagArray, isTagComponent, isTagInstance } from './isInstance';
3
+ export class BaseTagSupport {
7
4
  templater;
8
- children;
5
+ subject;
6
+ isApp = true;
9
7
  propsConfig;
10
8
  memory = {
11
- context: {}, // populated after reading interpolated.values array converted to an object {variable0, variable:1}
9
+ // context: {}, // populated after reading interpolated.values array converted to an object {variable0, variable:1}
12
10
  state: {
13
11
  newest: [],
14
12
  },
15
- providers: [],
16
- /** Indicator of re-rending. Saves from double rending something already rendered */
17
- renderCount: 0,
18
13
  };
19
- constructor(templater, children, // children tags passed in as arguments
20
- props) {
14
+ constructor(templater, subject) {
21
15
  this.templater = templater;
22
- this.children = children;
23
- const latestCloned = alterProps(props, templater);
16
+ this.subject = subject;
17
+ const children = this.templater.children; // children tags passed in as arguments
18
+ const props = this.templater.props; // natural props
19
+ const latestCloned = deepClone(props); // alterProps(props, templater)
24
20
  this.propsConfig = {
25
21
  latest: props,
26
22
  latestCloned, // assume its HTML children and then detect
@@ -36,36 +32,6 @@ export class TagSupport {
36
32
  this.propsConfig.clonedProps = this.propsConfig.latestCloned;
37
33
  }
38
34
  }
39
- // TODO: these below may not be in use
40
- oldest;
41
- newest;
42
- mutatingRender() {
43
- const message = 'Tag function "render()" was called in sync but can only be called async';
44
- console.error(message, { tagSupport: this });
45
- throw new Error(message);
46
- } // loaded later and only callable async
47
- render() {
48
- ++this.memory.renderCount;
49
- return this.mutatingRender();
50
- } // ensure this function still works even during deconstructing
51
- /** Returns true when rendering owner is not needed. Returns false when rendering owner should occur */
52
- renderExistingTag(tag, newTemplater) {
53
- const preRenderCount = this.memory.renderCount;
54
- providersChangeCheck(tag);
55
- // When the providers were checked, a render to myself occurred and I do not need to re-render again
56
- if (preRenderCount !== this.memory.renderCount) {
57
- return true;
58
- }
59
- // const oldTemplater = tag.tagSupport.templater
60
- const oldTagSupport = tag.tagSupport;
61
- // const oldTagSupport = this
62
- const hasChanged = hasTagSupportChanged(oldTagSupport, newTemplater.tagSupport);
63
- this.newest = this.templater.redraw(); // No change detected, just redraw me only
64
- if (!hasChanged) {
65
- return true;
66
- }
67
- return false;
68
- }
69
35
  }
70
36
  function cloneValueArray(values) {
71
37
  return values.map((value) => {
@@ -75,7 +41,7 @@ function cloneValueArray(values) {
75
41
  }
76
42
  if (isTagComponent(tag)) {
77
43
  const tagComponent = tag;
78
- return deepClone(tagComponent.tagSupport.propsConfig.latestCloned);
44
+ return deepClone(tagComponent.props);
79
45
  }
80
46
  if (isTagArray(tag)) {
81
47
  return cloneValueArray(tag);
@@ -83,4 +49,16 @@ function cloneValueArray(values) {
83
49
  return deepClone(value);
84
50
  });
85
51
  }
52
+ export class TagSupport extends BaseTagSupport {
53
+ ownerTagSupport;
54
+ templater;
55
+ subject;
56
+ isApp = false;
57
+ constructor(ownerTagSupport, templater, subject) {
58
+ super(templater, subject);
59
+ this.ownerTagSupport = ownerTagSupport;
60
+ this.templater = templater;
61
+ this.subject = subject;
62
+ }
63
+ }
86
64
  //# sourceMappingURL=TagSupport.class.js.map