taggedjs 2.5.22 → 2.5.24

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 (245) hide show
  1. package/bundle.js +1 -1
  2. package/bundle.js.gz +0 -0
  3. package/bundle.js.map +1 -1
  4. package/bundle.js.map.gz +0 -0
  5. package/js/alterProp.function.d.ts +7 -7
  6. package/js/alterProp.function.js +78 -43
  7. package/js/alterProp.function.js.map +1 -1
  8. package/js/buildClones.function.d.ts +2 -0
  9. package/js/buildClones.function.js +12 -0
  10. package/js/buildClones.function.js.map +1 -0
  11. package/js/deepFunctions.js +40 -18
  12. package/js/deepFunctions.js.map +1 -1
  13. package/js/index.d.ts +4 -5
  14. package/js/index.js +4 -5
  15. package/js/index.js.map +1 -1
  16. package/js/interpolations/afterInterpolateElement.function.d.ts +3 -3
  17. package/js/interpolations/afterInterpolateElement.function.js +6 -5
  18. package/js/interpolations/afterInterpolateElement.function.js.map +1 -1
  19. package/js/interpolations/bindSubjectCallback.function.d.ts +9 -3
  20. package/js/interpolations/bindSubjectCallback.function.js +76 -35
  21. package/js/interpolations/bindSubjectCallback.function.js.map +1 -1
  22. package/js/interpolations/interpolateAttributes.d.ts +3 -2
  23. package/js/interpolations/interpolateAttributes.js +6 -10
  24. package/js/interpolations/interpolateAttributes.js.map +1 -1
  25. package/js/interpolations/interpolateContentTemplates.d.ts +3 -7
  26. package/js/interpolations/interpolateContentTemplates.js +16 -12
  27. package/js/interpolations/interpolateContentTemplates.js.map +1 -1
  28. package/js/interpolations/interpolateElement.d.ts +4 -6
  29. package/js/interpolations/interpolateElement.js +4 -13
  30. package/js/interpolations/interpolateElement.js.map +1 -1
  31. package/js/interpolations/interpolateTemplate.d.ts +8 -11
  32. package/js/interpolations/interpolateTemplate.js +0 -66
  33. package/js/interpolations/interpolateTemplate.js.map +1 -1
  34. package/js/interpolations/interpolations.d.ts +0 -3
  35. package/js/interpolations/interpolations.js +1 -17
  36. package/js/interpolations/interpolations.js.map +1 -1
  37. package/js/interpolations/optimizers/ObjectNode.types.d.ts +31 -0
  38. package/js/interpolations/optimizers/ObjectNode.types.js +2 -0
  39. package/js/interpolations/optimizers/ObjectNode.types.js.map +1 -0
  40. package/js/interpolations/optimizers/htmlInterpolationToDomMeta.function.d.ts +4 -0
  41. package/js/interpolations/optimizers/htmlInterpolationToDomMeta.function.js +136 -0
  42. package/js/interpolations/optimizers/htmlInterpolationToDomMeta.function.js.map +1 -0
  43. package/js/interpolations/optimizers/metaAttachDomElements.function.d.ts +6 -0
  44. package/js/interpolations/optimizers/metaAttachDomElements.function.js +43 -0
  45. package/js/interpolations/optimizers/metaAttachDomElements.function.js.map +1 -0
  46. package/js/interpolations/optimizers/replacePlaceholders.function.d.ts +2 -0
  47. package/js/interpolations/optimizers/replacePlaceholders.function.js +92 -0
  48. package/js/interpolations/optimizers/replacePlaceholders.function.js.map +1 -0
  49. package/js/interpolations/optimizers/restorePlaceholders.function.d.ts +3 -0
  50. package/js/interpolations/optimizers/restorePlaceholders.function.js +39 -0
  51. package/js/interpolations/optimizers/restorePlaceholders.function.js.map +1 -0
  52. package/js/interpolations/processAttribute.function.d.ts +8 -3
  53. package/js/interpolations/processAttribute.function.js +42 -45
  54. package/js/interpolations/processAttribute.function.js.map +1 -1
  55. package/js/interpolations/scanTextAreaValue.function.d.ts +2 -2
  56. package/js/interpolations/scanTextAreaValue.function.js +11 -6
  57. package/js/interpolations/scanTextAreaValue.function.js.map +1 -1
  58. package/js/interpolations/specialAttribute.js +4 -2
  59. package/js/interpolations/specialAttribute.js.map +1 -1
  60. package/js/interpolations/subscribeToTemplate.function.d.ts +5 -0
  61. package/js/interpolations/subscribeToTemplate.function.js +28 -0
  62. package/js/interpolations/subscribeToTemplate.function.js.map +1 -0
  63. package/js/isInstance.d.ts +2 -2
  64. package/js/isInstance.js +9 -3
  65. package/js/isInstance.js.map +1 -1
  66. package/js/render.js +17 -4
  67. package/js/render.js.map +1 -1
  68. package/js/state/callbackMaker.function.js +13 -14
  69. package/js/state/callbackMaker.function.js.map +1 -1
  70. package/js/state/callbackStateUpdate.function.d.ts +2 -2
  71. package/js/state/callbackStateUpdate.function.js +5 -5
  72. package/js/state/callbackStateUpdate.function.js.map +1 -1
  73. package/js/state/children.js +5 -5
  74. package/js/state/children.js.map +1 -1
  75. package/js/state/handleProviderChanges.function.d.ts +2 -2
  76. package/js/state/handleProviderChanges.function.js +13 -10
  77. package/js/state/handleProviderChanges.function.js.map +1 -1
  78. package/js/state/onDestroy.js +2 -2
  79. package/js/state/onDestroy.js.map +1 -1
  80. package/js/state/providers.d.ts +3 -3
  81. package/js/state/providers.js +11 -11
  82. package/js/state/providers.js.map +1 -1
  83. package/js/state/providersChangeCheck.function.d.ts +2 -2
  84. package/js/state/providersChangeCheck.function.js +7 -3
  85. package/js/state/providersChangeCheck.function.js.map +1 -1
  86. package/js/state/setUse.function.d.ts +10 -10
  87. package/js/state/state.function.js +3 -3
  88. package/js/state/state.function.js.map +1 -1
  89. package/js/state/state.utils.d.ts +2 -2
  90. package/js/state/state.utils.js +15 -16
  91. package/js/state/state.utils.js.map +1 -1
  92. package/js/state/subject.function.js +6 -6
  93. package/js/state/subject.function.js.map +1 -1
  94. package/js/state/watch.function.js +3 -3
  95. package/js/state/watch.function.js.map +1 -1
  96. package/js/subject/Subject.class.d.ts +2 -2
  97. package/js/subject/Subject.class.js +5 -11
  98. package/js/subject/Subject.class.js.map +1 -1
  99. package/js/subject/ValueSubject.d.ts +1 -1
  100. package/js/subject/combineLatest.function.js +3 -1
  101. package/js/subject/combineLatest.function.js.map +1 -1
  102. package/js/subject/subject.utils.js +15 -13
  103. package/js/subject/subject.utils.js.map +1 -1
  104. package/js/subject/will.functions.js.map +1 -1
  105. package/js/subject.types.d.ts +6 -10
  106. package/js/tag/Support.class.d.ts +69 -0
  107. package/js/tag/Support.class.js +290 -0
  108. package/js/tag/Support.class.js.map +1 -0
  109. package/js/tag/Tag.class.d.ts +30 -18
  110. package/js/tag/Tag.class.js +36 -8
  111. package/js/tag/Tag.class.js.map +1 -1
  112. package/js/tag/TagSupport.class.d.ts +1 -1
  113. package/js/tag/TagSupport.class.js +23 -27
  114. package/js/tag/TagSupport.class.js.map +1 -1
  115. package/js/tag/TemplaterResult.class.d.ts +17 -9
  116. package/js/tag/TemplaterResult.class.js +12 -2
  117. package/js/tag/TemplaterResult.class.js.map +1 -1
  118. package/js/tag/ValueTypes.enum.d.ts +7 -1
  119. package/js/tag/ValueTypes.enum.js +6 -0
  120. package/js/tag/ValueTypes.enum.js.map +1 -1
  121. package/js/tag/checkDestroyPrevious.function.d.ts +3 -5
  122. package/js/tag/checkDestroyPrevious.function.js +16 -38
  123. package/js/tag/checkDestroyPrevious.function.js.map +1 -1
  124. package/js/tag/cloneValueArray.function.d.ts +1 -0
  125. package/js/tag/cloneValueArray.function.js +16 -14
  126. package/js/tag/cloneValueArray.function.js.map +1 -1
  127. package/js/tag/destroy.support.d.ts +2 -2
  128. package/js/tag/destroy.support.js +1 -2
  129. package/js/tag/destroy.support.js.map +1 -1
  130. package/js/tag/destroyTag.function.d.ts +2 -2
  131. package/js/tag/destroyTag.function.js +4 -3
  132. package/js/tag/destroyTag.function.js.map +1 -1
  133. package/js/tag/domMetaCollector.d.ts +3 -0
  134. package/js/tag/domMetaCollector.js +26 -0
  135. package/js/tag/domMetaCollector.js.map +1 -0
  136. package/js/tag/getStringsId.function.d.ts +1 -0
  137. package/js/tag/getStringsId.function.js +7 -0
  138. package/js/tag/getStringsId.function.js.map +1 -0
  139. package/js/tag/getSupportInCycle.function.d.ts +1 -1
  140. package/js/tag/getSupportInCycle.function.js +1 -1
  141. package/js/tag/getSupportInCycle.function.js.map +1 -1
  142. package/js/tag/getTagWrap.function.js +66 -57
  143. package/js/tag/getTagWrap.function.js.map +1 -1
  144. package/js/tag/getValueType.function.js +15 -10
  145. package/js/tag/getValueType.function.js.map +1 -1
  146. package/js/tag/hasPropChanges.function.d.ts +1 -1
  147. package/js/tag/hasPropChanges.function.js +8 -11
  148. package/js/tag/hasPropChanges.function.js.map +1 -1
  149. package/js/tag/hasSupportChanged.function.d.ts +4 -0
  150. package/js/tag/hasSupportChanged.function.js +27 -0
  151. package/js/tag/hasSupportChanged.function.js.map +1 -0
  152. package/js/tag/hasTagSupportChanged.function.js +15 -2
  153. package/js/tag/hasTagSupportChanged.function.js.map +1 -1
  154. package/js/tag/html.d.ts +5 -1
  155. package/js/tag/html.js +4 -1
  156. package/js/tag/html.js.map +1 -1
  157. package/js/tag/index.d.ts +3 -1
  158. package/js/tag/index.js +3 -1
  159. package/js/tag/index.js.map +1 -1
  160. package/js/tag/isLastRunMatched.function.d.ts +2 -0
  161. package/js/tag/isLastRunMatched.function.js +14 -0
  162. package/js/tag/isLastRunMatched.function.js.map +1 -0
  163. package/js/tag/isLikeTags.function.d.ts +3 -3
  164. package/js/tag/isLikeTags.function.js +43 -9
  165. package/js/tag/isLikeTags.function.js.map +1 -1
  166. package/js/tag/kidsToTagArraySubject.function.d.ts +2 -2
  167. package/js/tag/kidsToTagArraySubject.function.js +1 -1
  168. package/js/tag/kidsToTagArraySubject.function.js.map +1 -1
  169. package/js/tag/render/destroyUnlikeTags.function.d.ts +3 -3
  170. package/js/tag/render/destroyUnlikeTags.function.js +2 -12
  171. package/js/tag/render/destroyUnlikeTags.function.js.map +1 -1
  172. package/js/tag/render/renderExistingTag.function.d.ts +5 -5
  173. package/js/tag/render/renderExistingTag.function.js +9 -6
  174. package/js/tag/render/renderExistingTag.function.js.map +1 -1
  175. package/js/tag/render/renderSubjectComponent.function.d.ts +2 -2
  176. package/js/tag/render/renderSubjectComponent.function.js +7 -5
  177. package/js/tag/render/renderSubjectComponent.function.js.map +1 -1
  178. package/js/tag/render/renderSupport.function.d.ts +4 -0
  179. package/js/tag/render/renderSupport.function.js +43 -0
  180. package/js/tag/render/renderSupport.function.js.map +1 -0
  181. package/js/tag/render/renderTagOnly.function.d.ts +2 -2
  182. package/js/tag/render/renderTagOnly.function.js +19 -20
  183. package/js/tag/render/renderTagOnly.function.js.map +1 -1
  184. package/js/tag/render/renderWithSupport.function.d.ts +3 -3
  185. package/js/tag/render/renderWithSupport.function.js +38 -5
  186. package/js/tag/render/renderWithSupport.function.js.map +1 -1
  187. package/js/tag/render/softDestroySupport.function.d.ts +2 -2
  188. package/js/tag/render/softDestroySupport.function.js +11 -8
  189. package/js/tag/render/softDestroySupport.function.js.map +1 -1
  190. package/js/tag/setTagPlaceholder.function.js +2 -1
  191. package/js/tag/setTagPlaceholder.function.js.map +1 -1
  192. package/js/tag/tag.d.ts +2 -2
  193. package/js/tag/tag.js +1 -0
  194. package/js/tag/tag.js.map +1 -1
  195. package/js/tag/tag.types.d.ts +4 -4
  196. package/js/tag/tag.utils.d.ts +10 -7
  197. package/js/tag/tag.utils.js.map +1 -1
  198. package/js/tag/tagElement.d.ts +3 -3
  199. package/js/tag/tagElement.js +36 -31
  200. package/js/tag/tagElement.js.map +1 -1
  201. package/js/tag/tagRunner.d.ts +5 -5
  202. package/js/tag/tagRunner.js +15 -15
  203. package/js/tag/tagRunner.js.map +1 -1
  204. package/js/tag/textNode.d.ts +4 -0
  205. package/js/tag/textNode.js +9 -0
  206. package/js/tag/textNode.js.map +1 -0
  207. package/js/tag/update/TagJsSubject.class.d.ts +8 -0
  208. package/js/tag/update/TagJsSubject.class.js +23 -0
  209. package/js/tag/update/TagJsSubject.class.js.map +1 -0
  210. package/js/tag/update/oneRenderToSupport.function.d.ts +4 -0
  211. package/js/tag/update/oneRenderToSupport.function.js +19 -0
  212. package/js/tag/update/oneRenderToSupport.function.js.map +1 -0
  213. package/js/tag/update/processFirstSubject.utils.d.ts +5 -4
  214. package/js/tag/update/processFirstSubjectValue.function.d.ts +4 -3
  215. package/js/tag/update/processFirstSubjectValue.function.js +12 -10
  216. package/js/tag/update/processFirstSubjectValue.function.js.map +1 -1
  217. package/js/tag/update/processNewValue.function.d.ts +3 -2
  218. package/js/tag/update/processNewValue.function.js +11 -8
  219. package/js/tag/update/processNewValue.function.js.map +1 -1
  220. package/js/tag/update/processRegularValue.function.js +5 -5
  221. package/js/tag/update/processRegularValue.function.js.map +1 -1
  222. package/js/tag/update/processSubjectComponent.function.d.ts +3 -3
  223. package/js/tag/update/processSubjectComponent.function.js +13 -11
  224. package/js/tag/update/processSubjectComponent.function.js.map +1 -1
  225. package/js/tag/update/processTag.function.d.ts +10 -9
  226. package/js/tag/update/processTag.function.js +30 -23
  227. package/js/tag/update/processTag.function.js.map +1 -1
  228. package/js/tag/update/processTagArray.d.ts +15 -9
  229. package/js/tag/update/processTagArray.js +56 -52
  230. package/js/tag/update/processTagArray.js.map +1 -1
  231. package/js/tag/update/processTagResult.function.d.ts +4 -6
  232. package/js/tag/update/processTagResult.function.js +22 -16
  233. package/js/tag/update/processTagResult.function.js.map +1 -1
  234. package/js/tag/update/updateContextItem.function.d.ts +1 -1
  235. package/js/tag/update/updateContextItem.function.js +4 -3
  236. package/js/tag/update/updateContextItem.function.js.map +1 -1
  237. package/js/tag/update/updateExistingTagComponent.function.d.ts +7 -4
  238. package/js/tag/update/updateExistingTagComponent.function.js +78 -86
  239. package/js/tag/update/updateExistingTagComponent.function.js.map +1 -1
  240. package/js/tag/update/updateExistingValue.function.d.ts +3 -2
  241. package/js/tag/update/updateExistingValue.function.js +35 -45
  242. package/js/tag/update/updateExistingValue.function.js.map +1 -1
  243. package/js/updateBeforeTemplate.function.js +2 -1
  244. package/js/updateBeforeTemplate.function.js.map +1 -1
  245. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
- import { Context, Tag } from './Tag.class.js';
2
- import { BaseTagSupport, TagSupport } from './TagSupport.class.js';
1
+ import { Context, Tag, Dom } from './Tag.class.js';
2
+ import { BaseSupport, Support } from './Support.class.js';
3
3
  import { Props } from '../Props.js';
4
4
  import { TagChildren, TagWrapper } from './tag.utils.js';
5
5
  import { Provider } from '../state/providers.js';
@@ -10,16 +10,18 @@ import { Subscription } from '../subject/subject.utils.js';
10
10
  import { InsertBefore } from '../interpolations/InsertBefore.type.js';
11
11
  import { TagValues } from './html.js';
12
12
  import { Subject } from '../subject/index.js';
13
+ import { ValueTypes } from './ValueTypes.enum.js';
14
+ import { ObjectChildren } from '../interpolations/optimizers/ObjectNode.types.js';
13
15
  export type OriginalFunction = (() => Tag) & {
14
16
  compareTo: string;
15
17
  };
16
- export type Wrapper = ((tagSupport: BaseTagSupport | TagSupport, subject: TagSubject) => TagSupport) & {
18
+ export type Wrapper = ((newSupport: BaseSupport | Support, subject: TagSubject, prevSupport?: BaseSupport | Support) => Support) & {
17
19
  parentWrap: TagWrapper<any>;
18
20
  };
19
21
  export type TagGlobal = {
20
22
  destroy$: Subject<any>;
21
- oldest: BaseTagSupport | TagSupport;
22
- newest?: BaseTagSupport | TagSupport;
23
+ oldest: BaseSupport | Support;
24
+ newest?: BaseSupport | Support;
23
25
  context: Context;
24
26
  providers: Provider[];
25
27
  /** Indicator of re-rending. Saves from double rending something already rendered */
@@ -32,19 +34,25 @@ export type TagGlobal = {
32
34
  destroyCallback?: OnDestroyCallback;
33
35
  init?: OnInitCallback;
34
36
  locked?: true;
35
- blocked: (BaseTagSupport | TagSupport)[];
36
- childTags: TagSupport[];
37
+ blocked: (BaseSupport | Support)[];
38
+ childTags: Support[];
39
+ clones: Clone[];
40
+ callbackMaker?: true;
37
41
  };
42
+ export type Clone = (Element | Text | ChildNode);
38
43
  export declare class TemplaterResult {
39
44
  props: Props;
40
- tagJsType: string;
45
+ tagJsType: ValueTypes;
41
46
  tagged: boolean;
42
47
  wrapper?: Wrapper;
43
48
  madeChildIntoSubject?: boolean;
44
- tag?: Tag;
49
+ tag?: Tag | Dom;
45
50
  children: TagChildren;
46
51
  arrayValue?: unknown;
47
52
  constructor(props: Props);
48
53
  key(arrayValue: unknown): this;
54
+ /** children */
49
55
  html(strings: string[] | TemplateStringsArray, ...values: TagValues): this;
56
+ /** children */
57
+ dom(strings: ObjectChildren, ...values: TagValues): this;
50
58
  }
@@ -1,9 +1,10 @@
1
- import { Tag } from './Tag.class.js';
1
+ import { Tag, Dom } from './Tag.class.js';
2
2
  import { ValueSubject } from '../subject/index.js';
3
3
  import { kidsToTagArraySubject } from './kidsToTagArraySubject.function.js';
4
+ import { ValueTypes } from './ValueTypes.enum.js';
4
5
  export class TemplaterResult {
5
6
  props;
6
- tagJsType = 'templater';
7
+ tagJsType = ValueTypes.templater;
7
8
  tagged;
8
9
  wrapper;
9
10
  madeChildIntoSubject;
@@ -12,16 +13,25 @@ export class TemplaterResult {
12
13
  arrayValue; // used for tag components used in arrays
13
14
  constructor(props) {
14
15
  this.props = props;
16
+ this.html.dom = this.dom.bind(this);
15
17
  }
16
18
  key(arrayValue) {
17
19
  this.arrayValue = arrayValue;
18
20
  return this;
19
21
  }
22
+ /** children */
20
23
  html(strings, ...values) {
21
24
  const children = new Tag(strings, values);
22
25
  const childSubject = kidsToTagArraySubject(children, this);
23
26
  this.children = childSubject;
24
27
  return this;
25
28
  }
29
+ /** children */
30
+ dom(strings, ...values) {
31
+ const children = new Dom(strings, values);
32
+ const childSubject = kidsToTagArraySubject(children, this);
33
+ this.children = childSubject;
34
+ return this;
35
+ }
26
36
  }
27
37
  //# sourceMappingURL=TemplaterResult.class.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TemplaterResult.class.js","sourceRoot":"","sources":["../../ts/tag/TemplaterResult.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAW7C,OAAO,EAAW,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAA;AAsC3E,MAAM,OAAO,eAAe;IAWP;IAVnB,SAAS,GAAG,WAAW,CAAA;IACvB,MAAM,CAAU;IAChB,OAAO,CAAU;IAEjB,oBAAoB,CAAU;IAE9B,GAAG,CAAM;IACT,QAAQ,GAAgB,IAAI,YAAY,CAAC,EAAW,CAAC,CAAA;IACrD,UAAU,CAAU,CAAC,yCAAyC;IAE9D,YAAmB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;IAAG,CAAC;IAEnC,GAAG,CAAE,UAAmB;QACtB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,CACF,OAAwC,EACxC,GAAG,MAAiB;QAEpB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAmB,EAAE,MAAM,CAAC,CAAA;QACrD,MAAM,YAAY,GAAG,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QAC1D,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
1
+ {"version":3,"file":"TemplaterResult.class.js","sourceRoot":"","sources":["../../ts/tag/TemplaterResult.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,GAAG,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAWlD,OAAO,EAAW,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAA;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AA4CjD,MAAM,OAAO,eAAe;IAWP;IAVnB,SAAS,GAAG,UAAU,CAAC,SAAS,CAAA;IAChC,MAAM,CAAU;IAChB,OAAO,CAAU;IAEjB,oBAAoB,CAAU;IAE9B,GAAG,CAAY;IACf,QAAQ,GAAgB,IAAI,YAAY,CAAgB,EAAE,CAAC,CAAA;IAC3D,UAAU,CAAU,CAAC,yCAAyC;IAE9D,YAAmB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;QAC5B,IAAI,CAAC,IAAY,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9C,CAAC;IAED,GAAG,CAAE,UAAmB;QACtB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,eAAe;IACf,IAAI,CACF,OAAwC,EACxC,GAAG,MAAiB;QAEpB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAmB,EAAE,MAAM,CAAC,CAAA;QACrD,MAAM,YAAY,GAAG,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QAC1D,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,eAAe;IACf,GAAG,CACD,OAAuB,EACvB,GAAG,MAAiB;QAEpB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QACzC,MAAM,YAAY,GAAG,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QAC1D,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
@@ -1,12 +1,18 @@
1
+ export declare const empty = "";
1
2
  export declare enum ValueTypes {
2
3
  unknown = "unknown",
3
- tag = "tag",// this one might be bad
4
+ tag = "tag",// html''
5
+ dom = "dom",// compiled version of html''
4
6
  templater = "templater",
5
7
  tagComponent = "tag-component",
8
+ object = "object",
6
9
  tagArray = "tag-array",
7
10
  subject = "subject",
11
+ tagJsSubject = "tagJsSubject",
12
+ oneRender = "oneRender",
8
13
  date = "date",
9
14
  string = "string",
15
+ number = "number",
10
16
  boolean = "boolean",
11
17
  function = "function",
12
18
  undefined = "undefined"
@@ -1,13 +1,19 @@
1
+ export const empty = '';
1
2
  export var ValueTypes;
2
3
  (function (ValueTypes) {
3
4
  ValueTypes["unknown"] = "unknown";
4
5
  ValueTypes["tag"] = "tag";
6
+ ValueTypes["dom"] = "dom";
5
7
  ValueTypes["templater"] = "templater";
6
8
  ValueTypes["tagComponent"] = "tag-component";
9
+ ValueTypes["object"] = "object";
7
10
  ValueTypes["tagArray"] = "tag-array";
8
11
  ValueTypes["subject"] = "subject";
12
+ ValueTypes["tagJsSubject"] = "tagJsSubject";
13
+ ValueTypes["oneRender"] = "oneRender";
9
14
  ValueTypes["date"] = "date";
10
15
  ValueTypes["string"] = "string";
16
+ ValueTypes["number"] = "number";
11
17
  ValueTypes["boolean"] = "boolean";
12
18
  ValueTypes["function"] = "function";
13
19
  ValueTypes["undefined"] = "undefined";
@@ -1 +1 @@
1
- {"version":3,"file":"ValueTypes.enum.js","sourceRoot":"","sources":["../../ts/tag/ValueTypes.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,UAeX;AAfD,WAAY,UAAU;IACpB,iCAAmB,CAAA;IAEnB,yBAAW,CAAA;IACX,qCAAuB,CAAA;IACvB,4CAA8B,CAAA;IAE9B,oCAAsB,CAAA;IACtB,iCAAmB,CAAA;IAEnB,2BAAa,CAAA;IACb,+BAAiB,CAAA;IACjB,iCAAmB,CAAA;IACnB,mCAAqB,CAAA;IACrB,qCAAuB,CAAA;AACzB,CAAC,EAfW,UAAU,KAAV,UAAU,QAerB"}
1
+ {"version":3,"file":"ValueTypes.enum.js","sourceRoot":"","sources":["../../ts/tag/ValueTypes.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,CAAA;AAEvB,MAAM,CAAN,IAAY,UAqBX;AArBD,WAAY,UAAU;IACpB,iCAAmB,CAAA;IAEnB,yBAAW,CAAA;IACX,yBAAW,CAAA;IAEX,qCAAuB,CAAA;IACvB,4CAA8B,CAAA;IAC9B,+BAAiB,CAAA;IAEjB,oCAAsB,CAAA;IACtB,iCAAmB,CAAA;IACnB,2CAA6B,CAAA;IAC7B,qCAAuB,CAAA;IAEvB,2BAAa,CAAA;IACb,+BAAiB,CAAA;IACjB,+BAAiB,CAAA;IACjB,iCAAmB,CAAA;IACnB,mCAAqB,CAAA;IACrB,qCAAuB,CAAA;AACzB,CAAC,EArBW,UAAU,KAAV,UAAU,QAqBrB"}
@@ -1,10 +1,8 @@
1
1
  import { InterpolateSubject } from './update/processFirstSubject.utils.js';
2
2
  import { Counts } from '../interpolations/interpolateTemplate.js';
3
- import { InsertBefore } from '../interpolations/InsertBefore.type.js';
4
- import { BaseTagSupport, TagSupport } from './TagSupport.class.js';
3
+ import { Support } from './Support.class.js';
5
4
  import { ValueTypes } from './ValueTypes.enum.js';
6
5
  export declare function checkDestroyPrevious(subject: InterpolateSubject, // existing.value is the old value
7
- newValue: unknown, insertBefore: InsertBefore, valueType: ValueTypes): false | "changed-simple-value" | "array" | 2 | "different-tag";
6
+ newValue: unknown, valueType: ValueTypes): false | "changed-simple-value" | "array" | 2 | "different-tag";
8
7
  export declare function isSimpleType(value: any): boolean;
9
- export declare function destroyArrayTag(tagSupport: TagSupport, counts: Counts): void;
10
- export declare function restoreTagMarker(lastSupport: BaseTagSupport | TagSupport): void;
8
+ export declare function destroyArrayTag(support: Support, counts: Counts): void;
@@ -1,10 +1,9 @@
1
1
  import { isStaticTag } from '../isInstance.js';
2
2
  import { isLikeTags } from './isLikeTags.function.js';
3
3
  import { destroyTagMemory } from './destroyTag.function.js';
4
- import { insertAfter } from '../insertAfter.function.js';
5
4
  import { ValueTypes } from './ValueTypes.enum.js';
6
5
  export function checkDestroyPrevious(subject, // existing.value is the old value
7
- newValue, insertBefore, valueType) {
6
+ newValue, valueType) {
8
7
  const displaySubject = subject;
9
8
  const hasLastValue = 'lastValue' in displaySubject;
10
9
  const lastValue = displaySubject.lastValue; // TODO: we maybe able to use displaySubject.value and remove concept of lastValue
@@ -18,25 +17,22 @@ newValue, insertBefore, valueType) {
18
17
  if (newValue instanceof Function && lastValue instanceof Function) {
19
18
  return false;
20
19
  }
21
- destroySimpleValue(insertBefore, displaySubject);
20
+ destroySimpleValue(displaySubject);
22
21
  return 'changed-simple-value';
23
22
  }
24
23
  const arraySubject = subject;
25
24
  const wasArray = arraySubject.lastArray;
26
25
  // no longer an array
27
26
  if (wasArray && valueType !== ValueTypes.tagArray) {
28
- const placeholderElm = arraySubject.placeholder;
29
27
  delete arraySubject.lastArray;
30
- delete arraySubject.placeholder;
31
- insertAfter(insertBefore, placeholderElm);
32
- for (let index = wasArray.length - 1; index >= 0; --index) {
33
- const { tagSupport } = wasArray[index];
34
- destroyArrayTag(tagSupport, { added: 0, removed: 0 });
28
+ for (let index = wasArray.array.length - 1; index >= 0; --index) {
29
+ const { support } = wasArray.array[index];
30
+ destroyArrayTag(support, { added: 0, removed: 0 });
35
31
  }
36
32
  return 'array';
37
33
  }
38
34
  const tagSubject = subject;
39
- const lastSupport = tagSubject.tagSupport;
35
+ const lastSupport = tagSubject.support;
40
36
  // no longer tag or component?
41
37
  if (lastSupport) {
42
38
  const isValueTag = isStaticTag(newValue);
@@ -44,11 +40,10 @@ newValue, insertBefore, valueType) {
44
40
  const newTag = newValue;
45
41
  if (isSubjectTag && isValueTag) {
46
42
  // its a different tag now
47
- if (!isLikeTags(newTag, lastSupport)) {
43
+ const likeTags = isLikeTags(newTag, lastSupport);
44
+ if (!likeTags) {
48
45
  // put template back down
49
- restoreTagMarker(lastSupport);
50
46
  destroyTagMemory(lastSupport);
51
- // delete lastSupport.global.deleted // ???
52
47
  return 2;
53
48
  }
54
49
  return false;
@@ -59,8 +54,6 @@ newValue, insertBefore, valueType) {
59
54
  if (newValue && newValue.oneRender) {
60
55
  return false;
61
56
  }
62
- // put template back down
63
- restoreTagMarker(lastSupport);
64
57
  // destroy old component, value is not a component
65
58
  destroyTagMemory(lastSupport);
66
59
  // delete lastSupport.global.deleted // ???
@@ -69,33 +62,18 @@ newValue, insertBefore, valueType) {
69
62
  return false;
70
63
  }
71
64
  export function isSimpleType(value) {
72
- return ['string', 'number', 'boolean'].includes(value);
65
+ return [
66
+ ValueTypes.string,
67
+ ValueTypes.number,
68
+ ValueTypes.boolean,
69
+ ].includes(value);
73
70
  }
74
- export function destroyArrayTag(tagSupport, counts) {
75
- tagSupport.destroy({
71
+ export function destroyArrayTag(support, counts) {
72
+ support.destroy({
76
73
  stagger: counts.removed++,
77
74
  });
78
- const insertBefore = tagSupport.global.insertBefore;
79
- const parentNode = insertBefore.parentNode;
80
- parentNode.removeChild(insertBefore);
81
75
  }
82
- function destroySimpleValue(insertBefore, // always a template tag
83
- subject) {
84
- const clone = subject.clone;
85
- const parent = clone.parentNode;
86
- // 1 put the template back down
87
- parent.insertBefore(insertBefore, clone);
88
- parent.removeChild(clone);
89
- delete subject.clone;
76
+ function destroySimpleValue(subject) {
90
77
  delete subject.lastValue;
91
78
  }
92
- export function restoreTagMarker(lastSupport) {
93
- const insertBefore = lastSupport.global.insertBefore;
94
- const global = lastSupport.global;
95
- const placeholderElm = global.placeholder;
96
- if (placeholderElm) {
97
- insertAfter(insertBefore, placeholderElm);
98
- delete global.placeholder;
99
- }
100
- }
101
79
  //# sourceMappingURL=checkDestroyPrevious.function.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkDestroyPrevious.function.js","sourceRoot":"","sources":["../../ts/tag/checkDestroyPrevious.function.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkDestroyPrevious.function.js","sourceRoot":"","sources":["../../ts/tag/checkDestroyPrevious.function.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  import { Tag } from './Tag.class.js';
2
2
  export declare function cloneValueArray<T>(values: (T | Tag | Tag[])[]): T[];
3
+ export declare function cloneTagJsValue<T>(value: T | Tag | Tag[]): T;
@@ -2,19 +2,21 @@ import { deepClone } from '../deepFunctions.js';
2
2
  import { ValueTypes } from './ValueTypes.enum.js';
3
3
  import { getValueType } from './getValueType.function.js';
4
4
  export function cloneValueArray(values) {
5
- return values.map((value) => {
6
- const tag = value;
7
- switch (getValueType(value)) {
8
- case ValueTypes.tagComponent:
9
- const tagComponent = value;
10
- return deepClone(tagComponent.props);
11
- case ValueTypes.tag:
12
- case ValueTypes.templater:
13
- return cloneValueArray(tag.values);
14
- case ValueTypes.tagArray:
15
- return cloneValueArray(tag);
16
- }
17
- return deepClone(value);
18
- });
5
+ return values.map(cloneTagJsValue);
6
+ }
7
+ export function cloneTagJsValue(value) {
8
+ const tag = value;
9
+ switch (getValueType(value)) {
10
+ case ValueTypes.tagComponent:
11
+ const tagComponent = value;
12
+ return deepClone(tagComponent.props);
13
+ case ValueTypes.dom:
14
+ case ValueTypes.tag:
15
+ case ValueTypes.templater:
16
+ return cloneValueArray(tag.values);
17
+ case ValueTypes.tagArray:
18
+ return cloneValueArray(tag);
19
+ }
20
+ return deepClone(value);
19
21
  }
20
22
  //# sourceMappingURL=cloneValueArray.function.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cloneValueArray.function.js","sourceRoot":"","sources":["../../ts/tag/cloneValueArray.function.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEzD,MAAM,UAAU,eAAe,CAAI,MAA2B;IAC5D,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,MAAM,GAAG,GAAG,KAAY,CAAA;QAExB,QAAQ,YAAY,CAAC,KAAK,CAAC,EAAG,CAAC;YAC7B,KAAK,UAAU,CAAC,YAAY;gBAC1B,MAAM,YAAY,GAAG,KAAwB,CAAA;gBAC7C,OAAO,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;YAEtC,KAAK,UAAU,CAAC,GAAG,CAAC;YACpB,KAAK,UAAU,CAAC,SAAS;gBACvB,OAAO,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAEpC,KAAK,UAAU,CAAC,QAAQ;gBACtB,OAAO,eAAe,CAAC,GAAuB,CAAC,CAAA;QACnD,CAAC;QAED,OAAO,SAAS,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"cloneValueArray.function.js","sourceRoot":"","sources":["../../ts/tag/cloneValueArray.function.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEzD,MAAM,UAAU,eAAe,CAAI,MAA2B;IAC5D,OAAO,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;AACpC,CAAC;AAED,MAAM,UAAU,eAAe,CAAI,KAAsB;IACvD,MAAM,GAAG,GAAG,KAAY,CAAA;IAExB,QAAQ,YAAY,CAAC,KAAK,CAAC,EAAG,CAAC;QAC7B,KAAK,UAAU,CAAC,YAAY;YAC1B,MAAM,YAAY,GAAG,KAAwB,CAAA;YAC7C,OAAO,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QAEtC,KAAK,UAAU,CAAC,GAAG,CAAC;QACpB,KAAK,UAAU,CAAC,GAAG,CAAC;QACpB,KAAK,UAAU,CAAC,SAAS;YACvB,OAAO,eAAe,CAAC,GAAG,CAAC,MAAM,CAAM,CAAA;QAEzC,KAAK,UAAU,CAAC,QAAQ;YACtB,OAAO,eAAe,CAAC,GAAuB,CAAM,CAAA;IACxD,CAAC;IAED,OAAO,SAAS,CAAC,KAAK,CAAC,CAAA;AACzB,CAAC"}
@@ -1,6 +1,6 @@
1
- import { TagSupport } from './TagSupport.class.js';
1
+ import { Support } from './Support.class.js';
2
2
  export type DestroyOptions = {
3
3
  stagger: number;
4
4
  byParent?: boolean;
5
5
  };
6
- export declare function getChildTagsToDestroy(childTags: TagSupport[], allTags?: TagSupport[]): TagSupport[];
6
+ export declare function getChildTagsToDestroy(childTags: Support[], allTags?: Support[]): Support[];
@@ -2,8 +2,7 @@ export function getChildTagsToDestroy(childTags, allTags = []) {
2
2
  for (let index = childTags.length - 1; index >= 0; --index) {
3
3
  const cTag = childTags[index];
4
4
  allTags.push(cTag);
5
- childTags.splice(index, 1);
6
- getChildTagsToDestroy(cTag.global.childTags, allTags);
5
+ getChildTagsToDestroy(cTag.subject.global.childTags, allTags);
7
6
  }
8
7
  return allTags;
9
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"destroy.support.js","sourceRoot":"","sources":["../../ts/tag/destroy.support.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,qBAAqB,CACnC,SAAuB,EACvB,UAAwB,EAAE;IAE1B,KAAK,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;QAC3D,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;QAE7B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClB,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QAC1B,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IACvD,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
1
+ {"version":3,"file":"destroy.support.js","sourceRoot":"","sources":["../../ts/tag/destroy.support.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,qBAAqB,CACnC,SAAoB,EACpB,UAAqB,EAAE;IAEvB,KAAK,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;QAC3D,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;QAE7B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClB,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAC/D,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -1,2 +1,2 @@
1
- import { BaseTagSupport, TagSupport } from './TagSupport.class.js';
2
- export declare function destroyTagMemory(oldTagSupport: TagSupport | BaseTagSupport): void;
1
+ import { BaseSupport, Support } from './Support.class.js';
2
+ export declare function destroyTagMemory(oldSupport: Support | BaseSupport): void;
@@ -1,7 +1,8 @@
1
- export function destroyTagMemory(oldTagSupport) {
1
+ export function destroyTagMemory(oldSupport) {
2
+ const global = oldSupport.subject.global;
2
3
  // must destroy oldest which is tag with elements on stage
3
- const oldest = oldTagSupport.global.oldest;
4
+ const oldest = global.oldest;
4
5
  oldest.destroy();
5
- oldTagSupport.global.context = {};
6
+ oldSupport.subject.global.context = [];
6
7
  }
7
8
  //# sourceMappingURL=destroyTag.function.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"destroyTag.function.js","sourceRoot":"","sources":["../../ts/tag/destroyTag.function.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gBAAgB,CAC9B,aAA0C;IAE1C,0DAA0D;IAC1D,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,MAAoB,CAAA;IACxD,MAAM,CAAC,OAAO,EAAE,CAAA;IAEhB,aAAa,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAA;AACnC,CAAC"}
1
+ {"version":3,"file":"destroyTag.function.js","sourceRoot":"","sources":["../../ts/tag/destroyTag.function.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gBAAgB,CAC9B,UAAiC;IAEjC,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAA;IACxC,0DAA0D;IAC1D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAiB,CAAA;IACvC,MAAM,CAAC,OAAO,EAAE,CAAA;IAEhB,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAA;AACxC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ObjectChildren } from '../interpolations/optimizers/ObjectNode.types.js';
2
+ /** Converts strings & values into dom meta */
3
+ export declare function getDomMeta(strings: string[], values: unknown[]): ObjectChildren;
@@ -0,0 +1,26 @@
1
+ import { htmlInterpolationToDomMeta } from '../interpolations/optimizers/htmlInterpolationToDomMeta.function.js';
2
+ import { getStringsId } from './getStringsId.function.js';
3
+ import { isLastRunMatched } from './isLastRunMatched.function.js';
4
+ const lastRuns = {};
5
+ /** Converts strings & values into dom meta */
6
+ export function getDomMeta(strings, values) {
7
+ const stringId = getStringsId(strings, values);
8
+ const lastRun = lastRuns[stringId];
9
+ const matches = lastRun && isLastRunMatched(strings, values, lastRun);
10
+ let domMeta;
11
+ if (matches) {
12
+ domMeta = lastRun.domMeta;
13
+ return domMeta;
14
+ }
15
+ domMeta = htmlInterpolationToDomMeta(strings, values);
16
+ const template = {
17
+ interpolation: undefined,
18
+ string: undefined,
19
+ strings,
20
+ values,
21
+ domMeta,
22
+ };
23
+ lastRuns[stringId] = template;
24
+ return domMeta;
25
+ }
26
+ //# sourceMappingURL=domMetaCollector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domMetaCollector.js","sourceRoot":"","sources":["../../ts/tag/domMetaCollector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,qEAAqE,CAAA;AAChH,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAGjE,MAAM,QAAQ,GAAmC,EAAE,CAAA;AAEnD,8CAA8C;AAC9C,MAAM,UAAU,UAAU,CACxB,OAAiB,EACjB,MAAiB;IAEjB,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC9C,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAClC,MAAM,OAAO,GAAG,OAAO,IAAI,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IACrE,IAAI,OAAuB,CAAA;IAE3B,IAAG,OAAO,EAAE,CAAC;QACX,OAAO,GAAG,OAAO,CAAC,OAAyB,CAAA;QAC3C,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,OAAO,GAAG,0BAA0B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACrD,MAAM,QAAQ,GAAG;QACf,aAAa,EAAE,SAAgB;QAC/B,MAAM,EAAE,SAAgB;QACxB,OAAO;QACP,MAAM;QAEN,OAAO;KACR,CAAA;IAED,QAAQ,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAA;IAE7B,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function getStringsId(strings: string[], values: any[]): number;
@@ -0,0 +1,7 @@
1
+ export function getStringsId(strings, values) {
2
+ const array = strings.map(x => x.length);
3
+ array.push(strings.length);
4
+ // array.push(values.length)
5
+ return Number(array.join(''));
6
+ }
7
+ //# sourceMappingURL=getStringsId.function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getStringsId.function.js","sourceRoot":"","sources":["../../ts/tag/getStringsId.function.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,YAAY,CAC1B,OAAiB,EACjB,MAAa;IAEb,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IACxC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC1B,4BAA4B;IAC5B,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;AAC/B,CAAC"}
@@ -1 +1 @@
1
- export declare function getSupportInCycle(): import("./TagSupport.class.js").BaseTagSupport | import("./TagSupport.class.js").TagSupport | undefined;
1
+ export declare function getSupportInCycle(): import("./Support.class.js").BaseSupport | import("./Support.class.js").Support | undefined;
@@ -1,5 +1,5 @@
1
1
  import { setUse } from '../state/index.js';
2
2
  export function getSupportInCycle() {
3
- return setUse.memory.stateConfig.tagSupport;
3
+ return setUse.memory.stateConfig.support;
4
4
  }
5
5
  //# sourceMappingURL=getSupportInCycle.function.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getSupportInCycle.function.js","sourceRoot":"","sources":["../../ts/tag/getSupportInCycle.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAK,mBAAmB,CAAA;AAEzC,MAAM,UAAU,iBAAiB;IAC/B,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAA;AAC7C,CAAC"}
1
+ {"version":3,"file":"getSupportInCycle.function.js","sourceRoot":"","sources":["../../ts/tag/getSupportInCycle.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAK,mBAAmB,CAAA;AAEzC,MAAM,UAAU,iBAAiB;IAC/B,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAA;AAC1C,CAAC"}
@@ -1,73 +1,82 @@
1
1
  import { runTagCallback } from '../interpolations/bindSubjectCallback.function.js';
2
- import { deepClone } from '../deepFunctions.js';
3
- import { TagSupport } from './TagSupport.class.js';
2
+ import { Support } from './Support.class.js';
4
3
  import { castProps } from '../alterProp.function.js';
5
4
  import { setUse } from '../state/setUse.function.js';
6
5
  import { ValueTypes } from './ValueTypes.enum.js';
7
6
  import { html } from './html.js';
7
+ import { syncFunctionProps } from './update/updateExistingTagComponent.function.js';
8
8
  /** creates/returns a function that when called then calls the original component function
9
9
  * Gets used as templater.wrapper()
10
10
  */
11
11
  export function getTagWrap(templater, result) {
12
12
  const stateArray = setUse.memory.stateConfig.array;
13
13
  // this function gets called by taggedjs
14
- const wrapper = function (lastTagSupport, subject) {
15
- const global = lastTagSupport.global;
16
- ++global.renderCount;
17
- const childSubject = templater.children;
18
- const lastArray = global.oldest?.templater.children.lastArray;
19
- if (lastArray) {
20
- childSubject.lastArray = lastArray;
21
- }
22
- // result.original
23
- const originalFunction = result.original; // (innerTagWrap as any).original as unknown as TagComponent
24
- let props = templater.props;
25
- // When defined, this must be an update where my new props have already been made for me
26
- const preCastedProps = lastTagSupport.propsConfig.castProps;
27
- const castedProps = preCastedProps || castProps(props, lastTagSupport, stateArray);
28
- const latestCloned = props.map(props => deepClone(props)); // castedProps
29
- // CALL ORIGINAL COMPONENT FUNCTION
30
- let tag = originalFunction(...castedProps);
31
- if (tag instanceof Function) {
32
- tag = tag();
33
- }
34
- if (!tag || tag.tagJsType !== ValueTypes.tag) {
35
- tag = html `${tag}`; // component returned a non-component value
36
- }
37
- tag.templater = templater;
38
- templater.tag = tag;
39
- tag.memory.arrayValue = templater.arrayValue; // tag component could have been used in array.map
40
- const tagSupport = new TagSupport(templater, lastTagSupport.ownerTagSupport, subject, castedProps, global.renderCount);
41
- tagSupport.global = global;
42
- const nowState = setUse.memory.stateConfig.array;
43
- tagSupport.memory.state.push(...nowState);
44
- if (templater.madeChildIntoSubject) {
45
- const value = childSubject.value;
46
- for (let index = value.length - 1; index >= 0; --index) {
47
- const kid = value[index];
48
- const values = kid.values;
49
- for (let index = values.length - 1; index >= 0; --index) {
50
- const value = values[index];
51
- if (!(value instanceof Function)) {
52
- continue;
53
- }
54
- const valuesValue = kid.values[index];
55
- if (valuesValue.isChildOverride) {
56
- continue; // already overwritten
57
- }
58
- // all functions need to report to me
59
- kid.values[index] = function (...args) {
60
- const ownerSupport = tagSupport.ownerTagSupport;
61
- return runTagCallback(value, // callback
62
- ownerSupport, this, // bindTo
63
- args);
64
- };
65
- valuesValue.isChildOverride = true;
14
+ const wrapper = (newSupport, subject, lastSupport) => executeWrap(stateArray, templater, result, newSupport, subject, lastSupport);
15
+ return wrapper;
16
+ }
17
+ function executeWrap(stateArray, templater, result, newSupport, subject, lastSupport) {
18
+ const global = newSupport.subject.global;
19
+ ++global.renderCount;
20
+ const childSubject = templater.children;
21
+ const lastArray = global.oldest?.templater.children.lastArray;
22
+ if (lastArray) {
23
+ childSubject.lastArray = lastArray;
24
+ }
25
+ // result.original
26
+ const originalFunction = result.original; // (innerTagWrap as any).original as unknown as TagComponent
27
+ let props = templater.props;
28
+ // When defined, this must be an update where my new props have already been made for me
29
+ let preCastedProps = newSupport.propsConfig.castProps;
30
+ const lastCastProps = lastSupport?.propsConfig.castProps;
31
+ if (lastCastProps) {
32
+ newSupport.propsConfig.castProps = lastCastProps;
33
+ preCastedProps = syncFunctionProps(newSupport, lastSupport, lastSupport.ownerSupport, props);
34
+ }
35
+ const castedProps = preCastedProps || castProps(props, newSupport, stateArray, 0);
36
+ // CALL ORIGINAL COMPONENT FUNCTION
37
+ let tag = originalFunction(...castedProps);
38
+ if (tag instanceof Function) {
39
+ tag = tag();
40
+ }
41
+ const unknown = !tag || (tag.tagJsType && ![ValueTypes.tag, ValueTypes.dom].includes(tag.tagJsType));
42
+ if (unknown) {
43
+ tag = html `${tag}`; // component returned a non-component value
44
+ }
45
+ tag.templater = templater;
46
+ templater.tag = tag;
47
+ tag.arrayValue = templater.arrayValue; // tag component could have been used in array.map
48
+ const support = new Support(templater, newSupport.ownerSupport, subject, castedProps, global.renderCount);
49
+ support.subject.global = global;
50
+ // ??? this should be set by outside?
51
+ global.oldest = global.oldest || support;
52
+ // ??? new - removed
53
+ // global.newest = support
54
+ const nowState = setUse.memory.stateConfig.array;
55
+ support.state.push(...nowState);
56
+ if (templater.madeChildIntoSubject) {
57
+ const value = childSubject.value;
58
+ for (let index = value.length - 1; index >= 0; --index) {
59
+ const kid = value[index];
60
+ const values = kid.values;
61
+ for (let index = values.length - 1; index >= 0; --index) {
62
+ const value = values[index];
63
+ if (!(value instanceof Function)) {
64
+ continue;
65
+ }
66
+ const valuesValue = kid.values[index];
67
+ if (valuesValue.isChildOverride) {
68
+ continue; // already overwritten
66
69
  }
70
+ // all functions need to report to me
71
+ kid.values[index] = function (...args) {
72
+ return runTagCallback(value, // callback
73
+ support.ownerSupport, this, // bindTo
74
+ args, support.state);
75
+ };
76
+ valuesValue.isChildOverride = true;
67
77
  }
68
78
  }
69
- return tagSupport;
70
- };
71
- return wrapper;
79
+ }
80
+ return support;
72
81
  }
73
82
  //# sourceMappingURL=getTagWrap.function.js.map