taggedjs 2.1.2 → 2.3.25

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 (228) hide show
  1. package/index.js +1 -1
  2. package/js/Clones.type.d.ts +1 -0
  3. package/js/Clones.type.js +2 -0
  4. package/js/Clones.type.js.map +1 -0
  5. package/js/Props.d.ts +1 -0
  6. package/js/Props.js +2 -0
  7. package/js/Props.js.map +1 -0
  8. package/js/Subject.d.ts +7 -2
  9. package/js/Subject.js +15 -10
  10. package/js/Subject.js.map +1 -1
  11. package/js/Tag.class.d.ts +37 -13
  12. package/js/Tag.class.js +133 -99
  13. package/js/Tag.class.js.map +1 -1
  14. package/js/Tag.utils.d.ts +8 -20
  15. package/js/Tag.utils.js +17 -88
  16. package/js/Tag.utils.js.map +1 -1
  17. package/js/ValueSubject.d.ts +1 -1
  18. package/js/ValueSubject.js.map +1 -1
  19. package/js/bindSubjectCallback.function.d.ts +5 -0
  20. package/js/bindSubjectCallback.function.js +19 -0
  21. package/js/bindSubjectCallback.function.js.map +1 -0
  22. package/js/elementDestroyCheck.function.d.ts +3 -0
  23. package/js/elementDestroyCheck.function.js +17 -0
  24. package/js/elementDestroyCheck.function.js.map +1 -0
  25. package/js/elementInitCheck.js.map +1 -1
  26. package/js/gateway/gateway.web.component.d.ts +11 -0
  27. package/js/gateway/gateway.web.component.js +20 -0
  28. package/js/gateway/gateway.web.component.js.map +1 -0
  29. package/js/gateway/index.d.ts +3 -0
  30. package/js/gateway/index.js +3 -0
  31. package/js/gateway/index.js.map +1 -0
  32. package/js/gateway/loadTagGateway.function.d.ts +2 -0
  33. package/js/gateway/loadTagGateway.function.js +18 -0
  34. package/js/gateway/loadTagGateway.function.js.map +1 -0
  35. package/js/gateway/tagGateway.function.d.ts +31 -0
  36. package/js/gateway/tagGateway.function.js +187 -0
  37. package/js/gateway/tagGateway.function.js.map +1 -0
  38. package/js/getCallback.js +39 -42
  39. package/js/getCallback.js.map +1 -1
  40. package/js/getTagSupport.d.ts +18 -17
  41. package/js/getTagSupport.js +104 -15
  42. package/js/getTagSupport.js.map +1 -1
  43. package/js/html.d.ts +1 -1
  44. package/js/html.js.map +1 -1
  45. package/js/index.d.ts +16 -7
  46. package/js/index.js +20 -8
  47. package/js/index.js.map +1 -1
  48. package/js/inputAttribute.js +3 -3
  49. package/js/inputAttribute.js.map +1 -1
  50. package/js/interpolateAttributes.d.ts +2 -1
  51. package/js/interpolateAttributes.js +126 -60
  52. package/js/interpolateAttributes.js.map +1 -1
  53. package/js/interpolateContentTemplates.d.ts +4 -1
  54. package/js/interpolateContentTemplates.js +32 -25
  55. package/js/interpolateContentTemplates.js.map +1 -1
  56. package/js/interpolateElement.d.ts +8 -13
  57. package/js/interpolateElement.js +26 -22
  58. package/js/interpolateElement.js.map +1 -1
  59. package/js/interpolateTemplate.d.ts +15 -19
  60. package/js/interpolateTemplate.js +33 -231
  61. package/js/interpolateTemplate.js.map +1 -1
  62. package/js/interpolations.d.ts +3 -2
  63. package/js/interpolations.js +2 -1
  64. package/js/interpolations.js.map +1 -1
  65. package/js/isInstance.d.ts +6 -0
  66. package/js/isInstance.js +10 -0
  67. package/js/isInstance.js.map +1 -0
  68. package/js/js/Clones.type.d.ts +1 -0
  69. package/js/js/Clones.type.js +2 -0
  70. package/js/js/Clones.type.js.map +1 -0
  71. package/js/js/Props.d.ts +1 -0
  72. package/js/js/Props.js +2 -0
  73. package/js/js/Props.js.map +1 -0
  74. package/js/js/Subject.d.ts +7 -2
  75. package/js/js/Subject.js +15 -10
  76. package/js/js/Subject.js.map +1 -1
  77. package/js/js/Tag.class.d.ts +27 -5
  78. package/js/js/Tag.class.js +109 -81
  79. package/js/js/Tag.class.js.map +1 -1
  80. package/js/js/Tag.utils.d.ts +8 -20
  81. package/js/js/Tag.utils.js +17 -88
  82. package/js/js/Tag.utils.js.map +1 -1
  83. package/js/js/ValueSubject.d.ts +1 -1
  84. package/js/js/ValueSubject.js.map +1 -1
  85. package/js/js/bindSubjectCallback.function.d.ts +5 -0
  86. package/js/js/bindSubjectCallback.function.js +19 -0
  87. package/js/js/bindSubjectCallback.function.js.map +1 -0
  88. package/js/js/elementDestroyCheck.function.d.ts +3 -0
  89. package/js/js/elementDestroyCheck.function.js +17 -0
  90. package/js/js/elementDestroyCheck.function.js.map +1 -0
  91. package/js/js/elementInitCheck.js.map +1 -1
  92. package/js/js/getCallback.js +39 -42
  93. package/js/js/getCallback.js.map +1 -1
  94. package/js/js/getTagSupport.d.ts +19 -17
  95. package/js/js/getTagSupport.js +111 -15
  96. package/js/js/getTagSupport.js.map +1 -1
  97. package/js/js/html.d.ts +1 -1
  98. package/js/js/html.js.map +1 -1
  99. package/js/js/index.d.ts +16 -7
  100. package/js/js/index.js +20 -8
  101. package/js/js/index.js.map +1 -1
  102. package/js/js/interpolateAttributes.d.ts +2 -1
  103. package/js/js/interpolateAttributes.js +118 -60
  104. package/js/js/interpolateAttributes.js.map +1 -1
  105. package/js/js/interpolateContentTemplates.d.ts +3 -1
  106. package/js/js/interpolateContentTemplates.js +32 -22
  107. package/js/js/interpolateContentTemplates.js.map +1 -1
  108. package/js/js/interpolateElement.d.ts +7 -12
  109. package/js/js/interpolateElement.js +18 -21
  110. package/js/js/interpolateElement.js.map +1 -1
  111. package/js/js/interpolateTemplate.d.ts +15 -19
  112. package/js/js/interpolateTemplate.js +33 -231
  113. package/js/js/interpolateTemplate.js.map +1 -1
  114. package/js/js/interpolations.d.ts +3 -1
  115. package/js/js/interpolations.js +3 -3
  116. package/js/js/interpolations.js.map +1 -1
  117. package/js/js/isInstance.d.ts +6 -0
  118. package/js/js/isInstance.js +10 -0
  119. package/js/js/isInstance.js.map +1 -0
  120. package/js/js/onDestroy.d.ts +2 -0
  121. package/js/js/onDestroy.js +20 -0
  122. package/js/js/onDestroy.js.map +1 -0
  123. package/js/js/onInit.d.ts +0 -4
  124. package/js/js/onInit.js +12 -10
  125. package/js/js/onInit.js.map +1 -1
  126. package/js/js/processSubjectComponent.function.d.ts +8 -0
  127. package/js/js/processSubjectComponent.function.js +53 -0
  128. package/js/js/processSubjectComponent.function.js.map +1 -0
  129. package/js/js/processSubjectValue.function.d.ts +16 -0
  130. package/js/js/processSubjectValue.function.js +122 -0
  131. package/js/js/processSubjectValue.function.js.map +1 -0
  132. package/js/js/processTagArray.d.ts +5 -1
  133. package/js/js/processTagArray.js +21 -10
  134. package/js/js/processTagArray.js.map +1 -1
  135. package/js/js/processTagResult.function.d.ts +10 -0
  136. package/js/js/processTagResult.function.js +42 -0
  137. package/js/js/processTagResult.function.js.map +1 -0
  138. package/js/js/providers.d.ts +4 -12
  139. package/js/js/providers.js +28 -20
  140. package/js/js/providers.js.map +1 -1
  141. package/js/js/redrawTag.function.d.ts +7 -0
  142. package/js/js/redrawTag.function.js +9 -0
  143. package/js/js/redrawTag.function.js.map +1 -0
  144. package/js/js/render.d.ts +1 -6
  145. package/js/js/render.js +8 -15
  146. package/js/js/render.js.map +1 -1
  147. package/js/js/renderAppToElement.d.ts +8 -2
  148. package/js/js/renderAppToElement.js +40 -21
  149. package/js/js/renderAppToElement.js.map +1 -1
  150. package/js/js/setUse.function.d.ts +23 -0
  151. package/js/js/setUse.function.js +14 -0
  152. package/js/js/setUse.function.js.map +1 -0
  153. package/js/js/state.d.ts +14 -11
  154. package/js/js/state.js +68 -33
  155. package/js/js/state.js.map +1 -1
  156. package/js/js/tag.d.ts +7 -16
  157. package/js/js/tag.js +33 -44
  158. package/js/js/tag.js.map +1 -1
  159. package/js/js/tagElement.d.ts +14 -0
  160. package/js/js/tagElement.js +57 -0
  161. package/js/js/tagElement.js.map +1 -0
  162. package/js/js/tagGateway.function.d.ts +5 -0
  163. package/js/js/tagGateway.function.js +119 -0
  164. package/js/js/tagGateway.function.js.map +1 -0
  165. package/js/js/tagRunner.d.ts +2 -13
  166. package/js/js/tagRunner.js +12 -12
  167. package/js/js/tagRunner.js.map +1 -1
  168. package/js/js/templater.utils.d.ts +28 -0
  169. package/js/js/templater.utils.js +99 -0
  170. package/js/js/templater.utils.js.map +1 -0
  171. package/js/js/updateTag.utils.d.ts +6 -0
  172. package/js/js/updateTag.utils.js +84 -0
  173. package/js/js/updateTag.utils.js.map +1 -0
  174. package/js/onDestroy.d.ts +2 -0
  175. package/js/onDestroy.js +20 -0
  176. package/js/onDestroy.js.map +1 -0
  177. package/js/onInit.d.ts +0 -4
  178. package/js/onInit.js +12 -10
  179. package/js/onInit.js.map +1 -1
  180. package/js/processSubjectComponent.function.d.ts +8 -0
  181. package/js/processSubjectComponent.function.js +53 -0
  182. package/js/processSubjectComponent.function.js.map +1 -0
  183. package/js/processSubjectValue.function.d.ts +16 -0
  184. package/js/processSubjectValue.function.js +122 -0
  185. package/js/processSubjectValue.function.js.map +1 -0
  186. package/js/processTagArray.d.ts +5 -1
  187. package/js/processTagArray.js +21 -10
  188. package/js/processTagArray.js.map +1 -1
  189. package/js/processTagResult.function.d.ts +10 -0
  190. package/js/processTagResult.function.js +39 -0
  191. package/js/processTagResult.function.js.map +1 -0
  192. package/js/providers.d.ts +4 -12
  193. package/js/providers.js +28 -20
  194. package/js/providers.js.map +1 -1
  195. package/js/redrawTag.function.d.ts +7 -0
  196. package/js/redrawTag.function.js +8 -0
  197. package/js/redrawTag.function.js.map +1 -0
  198. package/js/render.d.ts +1 -6
  199. package/js/render.js +5 -19
  200. package/js/render.js.map +1 -1
  201. package/js/renderAppToElement.d.ts +8 -2
  202. package/js/renderAppToElement.js +40 -21
  203. package/js/renderAppToElement.js.map +1 -1
  204. package/js/setUse.function.d.ts +23 -0
  205. package/js/setUse.function.js +14 -0
  206. package/js/setUse.function.js.map +1 -0
  207. package/js/state.d.ts +14 -11
  208. package/js/state.js +68 -33
  209. package/js/state.js.map +1 -1
  210. package/js/tag.d.ts +6 -16
  211. package/js/tag.js +32 -43
  212. package/js/tag.js.map +1 -1
  213. package/js/tagElement.d.ts +14 -0
  214. package/js/tagElement.js +57 -0
  215. package/js/tagElement.js.map +1 -0
  216. package/js/tagGateway.function.d.ts +14 -0
  217. package/js/tagGateway.function.js +138 -0
  218. package/js/tagGateway.function.js.map +1 -0
  219. package/js/tagRunner.d.ts +2 -13
  220. package/js/tagRunner.js +12 -12
  221. package/js/tagRunner.js.map +1 -1
  222. package/js/templater.utils.d.ts +27 -0
  223. package/js/templater.utils.js +98 -0
  224. package/js/templater.utils.js.map +1 -0
  225. package/js/updateTag.utils.d.ts +6 -0
  226. package/js/updateTag.utils.js +102 -0
  227. package/js/updateTag.utils.js.map +1 -0
  228. package/package.json +1 -1
@@ -1,98 +1,37 @@
1
- import { buildItemTagMap } from "./render.js";
2
- import { Tag, variablePrefix } from "./Tag.class.js";
3
- import { Subject } from "./Subject.js";
4
- import { processTagArray } from "./processTagArray.js";
5
- import { getTagSupport } from "./getTagSupport.js";
6
- import { deepClone, deepEqual } from "./deepFunctions.js";
7
- import { config as providers } from "./providers.js";
1
+ import { variablePrefix } from "./Tag.class.js";
8
2
  import { elementInitCheck } from "./elementInitCheck.js";
9
- import { runBeforeRender } from "./tagRunner.js";
10
- import { TemplaterResult } from "./tag.js";
3
+ import { processSubjectValue } from "./processSubjectValue.function.js";
11
4
  export function interpolateTemplate(template, // <template end interpolate /> (will be removed)
12
- context, // variable scope of {`__tagVar${index}`:'x'}
13
- ownerTag, // Tag class
14
- counts) {
5
+ context, // variable scope of {`__tagvar${index}`:'x'}
6
+ tag, // Tag class
7
+ counts, // {added:0, removed:0}
8
+ options) {
9
+ const clones = [];
15
10
  if (!template.hasAttribute('end')) {
16
- return; // only care about starts
11
+ return clones; // only care about starts
17
12
  }
18
13
  const variableName = template.getAttribute('id');
19
14
  if (variableName?.substring(0, variablePrefix.length) !== variablePrefix) {
20
- return; // ignore, not a tagVar
15
+ return clones; // ignore, not a tagVar
21
16
  }
22
17
  const result = context[variableName];
23
- if (result instanceof Subject) {
24
- const callback = (templateNewValue) => {
25
- processSubjectValue(templateNewValue, result, template, ownerTag, counts);
26
- setTimeout(() => {
27
- counts.added = 0; // reset
28
- counts.removed = 0; // reset
29
- }, 0);
30
- };
31
- const sub = result.subscribe(callback);
32
- ownerTag.cloneSubs.push(sub);
33
- return;
34
- }
35
- const clone = updateBetweenTemplates(result, template.clone || template);
36
- ownerTag.clones.push(clone);
37
- template.clone = clone;
38
- return;
39
- }
40
- /**
41
- *
42
- * @param {*} value
43
- * @param {*} result
44
- * @param {*} template
45
- * @param {Tag} ownerTag
46
- * @param {{added: number, removed: number}} counts
47
- * @returns
48
- */
49
- function processSubjectValue(value, result, // could be tag via result.tag
50
- template, // <template end interpolate /> (will be removed)
51
- ownerTag, counts) {
52
- if (value instanceof Tag) {
53
- // first time seeing this tag?
54
- if (!value.tagSupport) {
55
- value.tagSupport = getTagSupport();
56
- value.tagSupport.mutatingRender = ownerTag.tagSupport.mutatingRender;
57
- value.tagSupport.oldest = value.tagSupport.oldest || value;
58
- ownerTag.children.push(value);
59
- value.ownerTag = ownerTag;
18
+ // const isSubject = isSubjectInstance(result)
19
+ let isForceElement = options.forceElement;
20
+ const callback = (templateNewValue) => {
21
+ const { clones } = processSubjectValue(templateNewValue, result, template, tag, { counts, forceElement: isForceElement });
22
+ if (isForceElement) {
23
+ isForceElement = false; // only can happen once
60
24
  }
61
- // value.tagSupport.newest = value
62
- processTagResult(value, result, // Function will attach result.tag
63
- template, { counts });
64
- return;
65
- }
66
- // *for map
67
- if (value instanceof Array && value.every(x => x instanceof Tag)) {
68
- return processTagArray(result, value, template, ownerTag, counts);
69
- }
70
- if (isTagComponent(value)) {
71
- return processSubjectComponent(value, result, template, ownerTag, counts);
72
- }
73
- // *if processing WAS a tag BUT NOW its some other non-tag value
74
- if (result.tag) {
75
- // put the template back
76
- const lastFirstChild = template.clone || template; // result.tag.clones[0] // template.lastFirstChild
77
- lastFirstChild.parentNode.insertBefore(template, lastFirstChild);
78
- const stagger = counts.removed;
79
- const animated = result.tag.destroy(stagger);
80
- counts.removed = stagger + animated;
81
- delete result.tag;
82
- const clone = updateBetweenTemplates(value, lastFirstChild // ✅ this will be removed
83
- ); // the template will be remove in here
84
- template.clone = clone;
85
- return;
86
- }
87
- const before = template.clone || template; // Either the template is on the doc OR its the first element we last put on doc
88
- // Processing of regular values
89
- const clone = updateBetweenTemplates(value, before);
90
- template.clone = clone;
91
- const oldPos = ownerTag.clones.indexOf(before);
92
- if (oldPos >= 0 && !ownerTag.clones.includes(clone) && !before.parentNode) {
93
- ownerTag.clones.splice(oldPos, 1);
94
- ownerTag.clones.push(clone);
95
- }
25
+ clones.push(...clones);
26
+ // TODO: See if we can remove
27
+ setTimeout(() => {
28
+ counts.added = 0; // reset
29
+ counts.removed = 0; // reset
30
+ }, 0);
31
+ };
32
+ const sub = result.subscribe(callback);
33
+ tag.cloneSubs.push(sub);
34
+ return clones;
96
35
  }
97
36
  // Function to update the value of x
98
37
  export function updateBetweenTemplates(value, lastFirstChild) {
@@ -106,157 +45,20 @@ export function updateBetweenTemplates(value, lastFirstChild) {
106
45
  parent.insertBefore(textNode, lastFirstChild);
107
46
  /* remove existing nodes */
108
47
  parent.removeChild(lastFirstChild);
109
- return textNode;
110
- }
111
- /** Returns {clones:[], subs:[]} */
112
- export function processTagResult(tag, result, // used for recording past and current value
113
- insertBefore, // <template end interpolate />
114
- { index, counts, }) {
115
- const template = tag.getTemplate();
116
- // *for
117
- if (index !== undefined) {
118
- const existing = result.lastArray[index];
119
- if (existing?.tag.isLikeTag(tag)) {
120
- existing.tag.updateByTag(tag);
121
- return;
122
- }
123
- const lastFirstChild = insertBefore; // tag.clones[0] // insertBefore.lastFirstChild
124
- const clones = buildItemTagMap(tag, template, lastFirstChild);
125
- clones.forEach(clone => afterElmBuild(clone, counts));
126
- result.lastArray.push({
127
- tag, index
128
- });
129
- return;
48
+ if (lastFirstChild.nodeName === 'TEMPLATE') {
49
+ lastFirstChild.setAttribute('removedAt', Date.now().toString());
130
50
  }
131
- // *if appears we already have seen
132
- if (result.tag) {
133
- // are we just updating an if we already had?
134
- if (result.tag.isLikeTag(tag)) {
135
- // components
136
- if (result instanceof Function) {
137
- const newTag = result(result.tag.tagSupport);
138
- result.tag.updateByTag(newTag);
139
- return;
140
- }
141
- result.tag.updateByTag(tag);
142
- return;
143
- }
144
- }
145
- // *if just now appearing to be a Tag
146
- const before = insertBefore.clone || insertBefore;
147
- const clones = buildItemTagMap(tag, template, before);
148
- clones.forEach(clone => afterElmBuild(clone, counts));
149
- result.tag = tag; // let reprocessing know we saw this previously as an if
150
- return;
151
- }
152
- export function isTagComponent(value) {
153
- return value instanceof TemplaterResult;
154
- }
155
- function processSubjectComponent(value, result, template, ownerTag, counts) {
156
- if (value.tagged !== true) {
157
- let name = value.name || value.constructor?.name;
158
- if (name === 'Function') {
159
- name = undefined;
160
- }
161
- const error = new Error(`Not a tag component. Wrap your function with tag(). Example tag(props => html\`\`) on component:\n\n${name || value.toString().substring(0, 120)}\n\n`);
162
- throw error;
163
- }
164
- /** @type {TagSupport} */
165
- const tagSupport = result.tagSupport || getTagSupport(value);
166
- tagSupport.mutatingRender = () => {
167
- const preRenderCount = tagSupport.renderCount;
168
- // Is this NOT my first render
169
- if (result.tag) {
170
- providersChangeCheck(result.tag);
171
- // When the providers were checked, a render to myself occurred and I do not need to re-render again
172
- if (preRenderCount !== tagSupport.renderCount) {
173
- return tagSupport.newest;
174
- }
175
- const hasPropsChanged = tagSupport.hasPropChanges(value.props, value.newProps, result.tag.tagSupport.templater.props);
176
- if (!hasPropsChanged) {
177
- tagSupport.newest = value.redraw(value.newProps); // No change detected, just redraw me only
178
- return tagSupport.newest;
179
- }
180
- }
181
- // draw to my parent
182
- const newest = tagSupport.newest = ownerTag.tagSupport.render();
183
- return newest;
184
- };
185
- const templater = value;
186
- let tag = templater.newest;
187
- providers.ownerTag = ownerTag;
188
- const isFirstTime = !tag;
189
- runBeforeRender(tagSupport, tag);
190
- if (isFirstTime) {
191
- tag = templater.wrapper();
192
- tag.tagSupport = tagSupport;
193
- tag.afterRender();
194
- templater.oldest = tag;
195
- tagSupport.oldest = tag;
196
- value.oldest = tag;
197
- }
198
- templater.newest = tag;
199
- tag.ownerTag = ownerTag;
200
- tag.ownerTag = ownerTag;
201
- ownerTag.children.push(tag);
202
- tag.setSupport(tagSupport);
203
- processTagResult(tag, result, // The element set here will be removed from document
204
- template, // <template end interpolate /> (will be removed)
205
- {
206
- counts,
207
- });
208
- return;
51
+ return textNode;
209
52
  }
210
- function afterElmBuild(elm, counts) {
53
+ export function afterElmBuild(elm, options) {
211
54
  if (!elm.getAttribute) {
212
55
  return;
213
56
  }
214
- elementInitCheck(elm, counts);
215
- if (elm.children) {
216
- new Array(...elm.children).forEach(child => afterElmBuild(child, counts));
57
+ if (!options.forceElement) {
58
+ elementInitCheck(elm, options.counts);
217
59
  }
218
- }
219
- function providersChangeCheck(tag) {
220
- const providersWithChanges = tag.providers.filter(provider => {
221
- return !deepEqual(provider.instance, provider.clone);
222
- });
223
- // reset clones
224
- providersWithChanges.forEach(provider => {
225
- const appElement = tag.getAppElement();
226
- handleProviderChanges(appElement, provider);
227
- provider.clone = deepClone(provider.instance);
228
- });
229
- }
230
- /**
231
- *
232
- * @param {Tag} appElement
233
- * @param {Provider} provider
234
- */
235
- function handleProviderChanges(appElement, provider) {
236
- const tagsWithProvider = getTagsWithProvider(appElement, provider);
237
- tagsWithProvider.forEach(({ tag, renderCount, provider }) => {
238
- if (renderCount === tag.tagSupport.renderCount) {
239
- provider.clone = deepClone(provider.instance);
240
- tag.tagSupport.render();
241
- }
242
- });
243
- }
244
- /**
245
- *
246
- * @param {Tag} appElement
247
- * @param {Provider} provider
248
- * @returns {{tag: Tag, renderCount: numer, provider: Provider}[]}
249
- */
250
- function getTagsWithProvider(tag, provider, memory = []) {
251
- const hasProvider = tag.providers.find(xProvider => xProvider.constructMethod === provider.constructMethod);
252
- if (hasProvider) {
253
- memory.push({
254
- tag,
255
- renderCount: tag.tagSupport.renderCount,
256
- provider: hasProvider
257
- });
60
+ if (elm.children) {
61
+ new Array(...elm.children).forEach(child => afterElmBuild(child, options));
258
62
  }
259
- tag.children.forEach(child => getTagsWithProvider(child, provider, memory));
260
- return memory;
261
63
  }
262
64
  //# sourceMappingURL=interpolateTemplate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interpolateTemplate.js","sourceRoot":"","sources":["../ts/interpolateTemplate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interpolateTemplate.js","sourceRoot":"","sources":["../ts/interpolateTemplate.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  export declare const interpolateReplace: RegExp;
2
2
  /** replaces ${x} with <template id="x-start"></template><template id="x-end"></template> */
3
- export declare function interpolateToTemplates(template: string): {
3
+ export declare function interpolateToTemplates(template: string, { depth }: {
4
+ depth: number;
5
+ }): {
4
6
  string: string;
5
7
  keys: string[];
6
8
  };
@@ -1,6 +1,6 @@
1
- export const interpolateReplace = /(?:<[^>]*>)|({__tagVar[^}]+})/g;
1
+ export const interpolateReplace = /(?:<[^>]*>)|({__tagvar[^}]+})/g;
2
2
  /** replaces ${x} with <template id="x-start"></template><template id="x-end"></template> */
3
- export function interpolateToTemplates(template) {
3
+ export function interpolateToTemplates(template, { depth }) {
4
4
  const keys = [];
5
5
  const string = template.replace(interpolateReplace, (match, expression) => {
6
6
  if (match.startsWith('<')) {
@@ -10,7 +10,7 @@ export function interpolateToTemplates(template) {
10
10
  const noBraces = expression.substring(1, expression.length - 1);
11
11
  const id = noBraces;
12
12
  keys.push(id);
13
- return `<template interpolate end id="${id}"></template>`;
13
+ return `<template interpolate end id="${id}" depth="${depth}"></template>`;
14
14
  });
15
15
  return { string, keys };
16
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"interpolations.js","sourceRoot":"","sources":["../ts/interpolations.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,gCAAgC,CAAA;AAElE,4FAA4F;AAC5F,MAAM,UAAU,sBAAsB,CACpC,QAAgB;IAEhB,MAAM,IAAI,GAAa,EAAE,CAAA;IACzB,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;QACxE,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,6CAA6C;YAC7C,OAAO,KAAK,CAAA;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,GAAC,CAAC,CAAC,CAAA;QAC7D,MAAM,EAAE,GAAG,QAAQ,CAAA;QACnB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACb,OAAO,iCAAiC,EAAE,eAAe,CAAA;IAC3D,CAAC,CAAC,CAAA;IAEF,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;AACzB,CAAC"}
1
+ {"version":3,"file":"interpolations.js","sourceRoot":"","sources":["../ts/interpolations.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,gCAAgC,CAAA;AAElE,4FAA4F;AAC5F,MAAM,UAAU,sBAAsB,CACpC,QAAgB,EAChB,EAAC,KAAK,EAAkB;IAExB,MAAM,IAAI,GAAa,EAAE,CAAA;IACzB,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;QACxE,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,6CAA6C;YAC7C,OAAO,KAAK,CAAA;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,GAAC,CAAC,CAAC,CAAA;QAC7D,MAAM,EAAE,GAAG,QAAQ,CAAA;QACnB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACb,OAAO,iCAAiC,EAAE,YAAY,KAAK,eAAe,CAAA;IAC5E,CAAC,CAAC,CAAA;IAEF,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;AACzB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { SubjectLike } from "./Subject.js";
2
+ import { Tag } from "./Tag.class.js";
3
+ import { TemplaterResult } from "./templater.utils.js";
4
+ export declare function isTagComponent(value?: TemplaterResult): boolean;
5
+ export declare function isTagInstance(tag?: Tag | unknown): boolean;
6
+ export declare function isSubjectInstance(subject?: SubjectLike): Boolean;
@@ -0,0 +1,10 @@
1
+ export function isTagComponent(value) {
2
+ return value?.isTemplater === true;
3
+ }
4
+ export function isTagInstance(tag) {
5
+ return tag?.isTag === true;
6
+ }
7
+ export function isSubjectInstance(subject) {
8
+ return (subject?.isSubject === true || subject?.subscribe) ? true : false; // subject?.isSubject === true ||
9
+ }
10
+ //# sourceMappingURL=isInstance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isInstance.js","sourceRoot":"","sources":["../ts/isInstance.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,cAAc,CAAC,KAAuB;IACpD,OAAO,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;AACpC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAmB;IAC/C,OAAQ,GAAW,EAAE,KAAK,KAAK,IAAI,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,OAAqB;IAErB,OAAO,CAAC,OAAO,EAAE,SAAS,KAAK,IAAI,IAAI,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA,CAAC,kCAAkC;AAC9G,CAAC"}
@@ -0,0 +1,2 @@
1
+ export type OnDestroyCallback = () => unknown;
2
+ export declare function onDestroy(callback: OnDestroyCallback): void;
@@ -0,0 +1,20 @@
1
+ import { setUse } from "./setUse.function.js";
2
+ /** When undefined, it means a tag is being built for the first time so do run destroy(s) */
3
+ let destroyCurrentTagSupport;
4
+ export function onDestroy(callback) {
5
+ if (!destroyCurrentTagSupport.memory) {
6
+ console.error('xxx', destroyCurrentTagSupport);
7
+ }
8
+ destroyCurrentTagSupport.memory.destroyCallback = callback;
9
+ }
10
+ setUse({
11
+ beforeRender: tagSupport => destroyCurrentTagSupport = tagSupport,
12
+ beforeRedraw: tagSupport => destroyCurrentTagSupport = tagSupport,
13
+ beforeDestroy: (tagSupport, tag) => {
14
+ const callback = tagSupport.memory.destroyCallback;
15
+ if (callback) {
16
+ callback();
17
+ }
18
+ }
19
+ });
20
+ //# sourceMappingURL=onDestroy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onDestroy.js","sourceRoot":"","sources":["../ts/onDestroy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAI7C,4FAA4F;AAC5F,IAAI,wBAAoC,CAAA;AAExC,MAAM,UAAU,SAAS,CACvB,QAA2B;IAE3B,IAAG,CAAC,wBAAwB,CAAC,MAAM,EAAE,CAAC;QACpC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAC,wBAAwB,CAAC,CAAA;IAC/C,CAAC;IAED,wBAAwB,CAAC,MAAM,CAAC,eAAe,GAAG,QAAQ,CAAA;AAC5D,CAAC;AAED,MAAM,CAAC;IACL,YAAY,EAAE,UAAU,CAAC,EAAE,CAAC,wBAAwB,GAAG,UAAU;IACjE,YAAY,EAAE,UAAU,CAAC,EAAE,CAAC,wBAAwB,GAAG,UAAU;IACjE,aAAa,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,EAAE;QACjC,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,eAAe,CAAA;QAElD,IAAG,QAAQ,EAAE,CAAC;YACZ,QAAQ,EAAE,CAAA;QACZ,CAAC;IACH,CAAC;CACF,CAAC,CAAA"}
package/js/js/onInit.d.ts CHANGED
@@ -1,6 +1,2 @@
1
- import { Tag } from "./Tag.class.js";
2
1
  export type OnInitCallback = () => unknown;
3
- /** When undefined, it means a tag is being built for the first time so do run init(s) */
4
- export declare let initCurrentTag: Tag | undefined;
5
- export declare function setCurrentInitTag(tag: Tag | undefined): void;
6
2
  export declare function onInit(callback: OnInitCallback): void;
package/js/js/onInit.js CHANGED
@@ -1,17 +1,19 @@
1
- import { setUse } from "./tagRunner.js";
2
- /** When undefined, it means a tag is being built for the first time so do run init(s) */
3
- export let initCurrentTag;
4
- export function setCurrentInitTag(tag) {
5
- initCurrentTag = tag;
1
+ import { setUse } from "./setUse.function.js";
2
+ function setCurrentTagSupport(support) {
3
+ setUse.memory.initCurrentSupport = support;
6
4
  }
7
5
  export function onInit(callback) {
8
- if (!initCurrentTag) {
9
- callback();
6
+ if (!setUse.memory.initCurrentSupport) {
7
+ console.warn('possible init issue?');
8
+ return;
9
+ }
10
+ if (!setUse.memory.initCurrentSupport.memory.init) {
11
+ setUse.memory.initCurrentSupport.memory.init = callback;
12
+ callback(); // fire init
10
13
  }
11
14
  }
12
15
  setUse({
13
- beforeRender: (_tagSupport, tag) => {
14
- setCurrentInitTag(tag);
15
- }
16
+ beforeRender: tagSupport => setCurrentTagSupport(tagSupport),
17
+ beforeRedraw: tagSupport => setCurrentTagSupport(tagSupport),
16
18
  });
17
19
  //# sourceMappingURL=onInit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"onInit.js","sourceRoot":"","sources":["../ts/onInit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAIvC,yFAAyF;AACzF,MAAM,CAAC,IAAI,cAA+B,CAAA;AAE1C,MAAM,UAAU,iBAAiB,CAAC,GAAoB;IACpD,cAAc,GAAG,GAAG,CAAA;AACtB,CAAC;AAED,MAAM,UAAU,MAAM,CACpB,QAAwB;IAExB,IAAG,CAAC,cAAc,EAAE,CAAC;QACnB,QAAQ,EAAE,CAAA;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC;IACL,YAAY,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,EAAE;QACjC,iBAAiB,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;CACF,CAAC,CAAA"}
1
+ {"version":3,"file":"onInit.js","sourceRoot":"","sources":["../ts/onInit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAI7C,SAAS,oBAAoB,CAAC,OAAmB;IAC/C,MAAM,CAAC,MAAM,CAAC,kBAAkB,GAAG,OAAO,CAAA;AAC5C,CAAC;AAED,MAAM,UAAU,MAAM,CACpB,QAAwB;IAExB,IAAG,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;QACpC,OAAM;IACR,CAAC;IAED,IAAG,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAA;QACvD,QAAQ,EAAE,CAAA,CAAC,YAAY;IACzB,CAAC;AACH,CAAC;AAED,MAAM,CAAC;IACL,YAAY,EAAE,UAAU,CAAC,EAAE,CAAC,oBAAoB,CAAC,UAAU,CAAC;IAC5D,YAAY,EAAE,UAAU,CAAC,EAAE,CAAC,oBAAoB,CAAC,UAAU,CAAC;CAC7D,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { TemplaterResult } from "./templater.utils.js";
2
+ import { Counts } from "./interpolateTemplate.js";
3
+ import { Tag } from "./Tag.class.js";
4
+ import { TagSubject } from "./Tag.utils.js";
5
+ export declare function processSubjectComponent(value: TemplaterResult, result: TagSubject, template: Element, ownerTag: Tag, options: {
6
+ counts: Counts;
7
+ forceElement?: boolean;
8
+ }): import("./Clones.type.js").Clones;
@@ -0,0 +1,53 @@
1
+ import { runBeforeRedraw, runBeforeRender } from "./tagRunner.js";
2
+ import { setUse } from "./setUse.function.js";
3
+ import { processTagResult } from "./processTagResult.function.js";
4
+ export function processSubjectComponent(value, result, template, ownerTag, options) {
5
+ // TODO: This below check not needed in production mode
6
+ if (value.tagged !== true) {
7
+ let name = value.wrapper.original.name || value.wrapper.original.constructor?.name;
8
+ if (name === 'Function') {
9
+ name = undefined;
10
+ }
11
+ const label = name || value.wrapper.original.toString().substring(0, 120);
12
+ const error = new Error(`Not a tag component. Wrap your function with tag(). Example tag(props => html\`\`) on component:\n\n${label}\n\n`);
13
+ throw error;
14
+ }
15
+ const templater = value;
16
+ const tagSupport = value.tagSupport; // || getTagSupport(ownerTag.tagSupport.depth+1, templater )
17
+ tagSupport.mutatingRender = () => {
18
+ // Is this NOT my first render
19
+ if (result.tag) {
20
+ const exit = tagSupport.renderExistingTag(result.tag, templater);
21
+ if (exit) {
22
+ return result.tag;
23
+ }
24
+ }
25
+ // draw to my parent
26
+ const newest = tagSupport.newest = ownerTag.tagSupport.render();
27
+ return newest;
28
+ };
29
+ let retag = templater.newest;
30
+ const providers = setUse.memory.providerConfig;
31
+ providers.ownerTag = ownerTag;
32
+ const isFirstTime = !retag || options.forceElement;
33
+ if (isFirstTime) {
34
+ if (!retag) {
35
+ runBeforeRender(tagSupport, ownerTag);
36
+ }
37
+ // only true when options.forceElement
38
+ if (retag) {
39
+ runBeforeRedraw(tagSupport, retag);
40
+ }
41
+ retag = templater.forceRenderTemplate(tagSupport, ownerTag);
42
+ }
43
+ ownerTag.children.push(retag);
44
+ tagSupport.latestProps = retag.tagSupport.props;
45
+ tagSupport.latestClonedProps = retag.tagSupport.clonedProps;
46
+ tagSupport.memory = retag.tagSupport.memory;
47
+ retag.setSupport(tagSupport);
48
+ const clones = processTagResult(retag, result, // The element set here will be removed from document. Also result.tag will be added in here
49
+ template, // <template end interpolate /> (will be removed)
50
+ options);
51
+ return clones;
52
+ }
53
+ //# sourceMappingURL=processSubjectComponent.function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processSubjectComponent.function.js","sourceRoot":"","sources":["../ts/processSubjectComponent.function.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAEjE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAG7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAGjE,MAAM,UAAU,uBAAuB,CACrC,KAAsB,EACtB,MAAkB,EAClB,QAAiB,EACjB,QAAa,EACb,OAAiD;IAEjD,uDAAuD;IACvD,IAAG,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QACzB,IAAI,IAAI,GAAuB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAA;QAEtG,IAAG,IAAI,KAAK,UAAU,EAAE,CAAC;YACvB,IAAI,GAAG,SAAS,CAAA;QAClB,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAC,GAAG,CAAC,CAAA;QACxE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,uGAAuG,KAAK,MAAM,CAAC,CAAA;QAC3I,MAAM,KAAK,CAAA;IACb,CAAC;IAED,MAAM,SAAS,GAAG,KAAwB,CAAA;IAC1C,MAAM,UAAU,GAAe,KAAK,CAAC,UAAU,CAAA,CAAC,4DAA4D;IAE5G,UAAU,CAAC,cAAc,GAAG,GAAG,EAAE;QAC/B,8BAA8B;QAC9B,IAAG,MAAM,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,IAAI,GAAG,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;YAChE,IAAG,IAAI,EAAE,CAAC;gBACR,OAAO,MAAM,CAAC,GAAG,CAAA;YACnB,CAAC;QACH,CAAC;QAED,oBAAoB;QACpB,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,CAAA;QAC/D,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;IAED,IAAI,KAAK,GAAG,SAAS,CAAC,MAAa,CAAA;IAEnC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAA;IAC9C,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAE7B,MAAM,WAAW,GAAG,CAAC,KAAK,IAAI,OAAO,CAAC,YAAY,CAAA;IAElD,IAAG,WAAW,EAAE,CAAC;QACf,IAAG,CAAC,KAAK,EAAE,CAAC;YACV,eAAe,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QACvC,CAAC;QAED,sCAAsC;QACtC,IAAG,KAAK,EAAE,CAAC;YACT,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;QACpC,CAAC;QAED,KAAK,GAAG,SAAS,CAAC,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IAC7D,CAAC;IAED,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAE7B,UAAU,CAAC,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAA;IAC/C,UAAU,CAAC,iBAAiB,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAA;IAC3D,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAA;IAE3C,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;IAE5B,MAAM,MAAM,GAAG,gBAAgB,CAC7B,KAAK,EACL,MAAM,EAAE,4FAA4F;IACpG,QAAQ,EAAE,iDAAiD;IAC3D,OAAO,CACR,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { Clones } from "./Clones.type.js";
2
+ import { Tag } from "./Tag.class.js";
3
+ import { Counts, Template } from "./interpolateTemplate.js";
4
+ type processOptions = {
5
+ forceElement?: boolean;
6
+ counts: Counts;
7
+ };
8
+ export type ClonesAndPromise = {
9
+ clones: Clones;
10
+ promise?: Promise<any>;
11
+ };
12
+ export declare function processSubjectValue(value: any, result: any, // could be tag via result.tag
13
+ template: Template, // <template end interpolate /> (will be removed)
14
+ tag: Tag, // owner
15
+ options: processOptions): ClonesAndPromise;
16
+ export {};