taggedjs 2.4.17 → 2.4.32

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 (164) hide show
  1. package/bundle.js +1314 -1241
  2. package/bundle.js.map +1 -1
  3. package/js/Clones.type.d.ts +1 -1
  4. package/js/Tag.class.d.ts +5 -40
  5. package/js/Tag.class.js +2 -347
  6. package/js/Tag.class.js.map +1 -1
  7. package/js/TagSupport.class.d.ts +40 -6
  8. package/js/TagSupport.class.js +268 -30
  9. package/js/TagSupport.class.js.map +1 -1
  10. package/js/TemplaterResult.class.d.ts +13 -13
  11. package/js/TemplaterResult.class.js +34 -45
  12. package/js/TemplaterResult.class.js.map +1 -1
  13. package/js/afterInterpolateElement.function.d.ts +4 -0
  14. package/js/afterInterpolateElement.function.js +14 -0
  15. package/js/afterInterpolateElement.function.js.map +1 -0
  16. package/js/alterProps.function.d.ts +2 -4
  17. package/js/alterProps.function.js +7 -15
  18. package/js/alterProps.function.js.map +1 -1
  19. package/js/bindSubjectCallback.function.js +0 -3
  20. package/js/bindSubjectCallback.function.js.map +1 -1
  21. package/js/checkDestroyPrevious.function.d.ts +5 -5
  22. package/js/checkDestroyPrevious.function.js +20 -17
  23. package/js/checkDestroyPrevious.function.js.map +1 -1
  24. package/js/cloneValueArray.function.d.ts +2 -0
  25. package/js/cloneValueArray.function.js +19 -0
  26. package/js/cloneValueArray.function.js.map +1 -0
  27. package/js/deepFunctions.js +36 -29
  28. package/js/deepFunctions.js.map +1 -1
  29. package/js/destroy.support.d.ts +6 -0
  30. package/js/destroy.support.js +10 -0
  31. package/js/destroy.support.js.map +1 -0
  32. package/js/destroyTag.function.d.ts +2 -3
  33. package/js/destroyTag.function.js +7 -11
  34. package/js/destroyTag.function.js.map +1 -1
  35. package/js/hasTagSupportChanged.function.js +0 -12
  36. package/js/hasTagSupportChanged.function.js.map +1 -1
  37. package/js/index.d.ts +2 -1
  38. package/js/index.js +2 -1
  39. package/js/index.js.map +1 -1
  40. package/js/interpolateTemplate.js +0 -3
  41. package/js/interpolateTemplate.js.map +1 -1
  42. package/js/interpolations/bindSubjectCallback.function.d.ts +7 -0
  43. package/js/interpolations/bindSubjectCallback.function.js +40 -0
  44. package/js/interpolations/bindSubjectCallback.function.js.map +1 -0
  45. package/js/interpolations/elementInitCheck.d.ts +2 -0
  46. package/js/interpolations/elementInitCheck.js +18 -0
  47. package/js/interpolations/elementInitCheck.js.map +1 -0
  48. package/js/interpolations/inputAttribute.d.ts +1 -0
  49. package/js/interpolations/inputAttribute.js +19 -0
  50. package/js/interpolations/inputAttribute.js.map +1 -0
  51. package/js/interpolations/interpolateAttributes.d.ts +4 -0
  52. package/js/interpolations/interpolateAttributes.js +20 -0
  53. package/js/interpolations/interpolateAttributes.js.map +1 -0
  54. package/js/interpolations/interpolateContentTemplates.d.ts +9 -0
  55. package/js/interpolations/interpolateContentTemplates.js +42 -0
  56. package/js/interpolations/interpolateContentTemplates.js.map +1 -0
  57. package/js/interpolations/interpolateElement.d.ts +14 -0
  58. package/js/interpolations/interpolateElement.js +36 -0
  59. package/js/interpolations/interpolateElement.js.map +1 -0
  60. package/js/interpolations/interpolateTemplate.d.ts +32 -0
  61. package/js/interpolations/interpolateTemplate.js +80 -0
  62. package/js/interpolations/interpolateTemplate.js.map +1 -0
  63. package/js/interpolations/interpolations.d.ts +7 -0
  64. package/js/interpolations/interpolations.js +18 -0
  65. package/js/interpolations/interpolations.js.map +1 -0
  66. package/js/interpolations/processAttribute.function.d.ts +5 -0
  67. package/js/interpolations/processAttribute.function.js +122 -0
  68. package/js/interpolations/processAttribute.function.js.map +1 -0
  69. package/js/interpolations/scanTextAreaValue.function.d.ts +3 -0
  70. package/js/interpolations/scanTextAreaValue.function.js +16 -0
  71. package/js/interpolations/scanTextAreaValue.function.js.map +1 -0
  72. package/js/interpolations.js +1 -2
  73. package/js/interpolations.js.map +1 -1
  74. package/js/isInstance.d.ts +4 -1
  75. package/js/isInstance.js +12 -4
  76. package/js/isInstance.js.map +1 -1
  77. package/js/isLikeTags.function.d.ts +3 -1
  78. package/js/isLikeTags.function.js +15 -6
  79. package/js/isLikeTags.function.js.map +1 -1
  80. package/js/processNewValue.function.d.ts +3 -2
  81. package/js/processNewValue.function.js +27 -11
  82. package/js/processNewValue.function.js.map +1 -1
  83. package/js/processRegularValue.function.d.ts +1 -1
  84. package/js/processSubjectComponent.function.d.ts +5 -5
  85. package/js/processSubjectComponent.function.js +26 -34
  86. package/js/processSubjectComponent.function.js.map +1 -1
  87. package/js/processSubjectValue.function.d.ts +11 -7
  88. package/js/processSubjectValue.function.js +20 -7
  89. package/js/processSubjectValue.function.js.map +1 -1
  90. package/js/processTag.function.d.ts +8 -4
  91. package/js/processTag.function.js +23 -39
  92. package/js/processTag.function.js.map +1 -1
  93. package/js/processTagArray.d.ts +6 -4
  94. package/js/processTagArray.js +41 -39
  95. package/js/processTagArray.js.map +1 -1
  96. package/js/processTagResult.function.d.ts +4 -4
  97. package/js/processTagResult.function.js +14 -30
  98. package/js/processTagResult.function.js.map +1 -1
  99. package/js/renderExistingTag.function.d.ts +6 -6
  100. package/js/renderExistingTag.function.js +26 -22
  101. package/js/renderExistingTag.function.js.map +1 -1
  102. package/js/renderTagSupport.function.d.ts +2 -3
  103. package/js/renderTagSupport.function.js +17 -20
  104. package/js/renderTagSupport.function.js.map +1 -1
  105. package/js/setTagPlaceholder.function.d.ts +2 -0
  106. package/js/setTagPlaceholder.function.js +8 -0
  107. package/js/setTagPlaceholder.function.js.map +1 -0
  108. package/js/state/callbackMaker.function.d.ts +2 -2
  109. package/js/state/callbackMaker.function.js +4 -5
  110. package/js/state/callbackMaker.function.js.map +1 -1
  111. package/js/state/onDestroy.js +2 -2
  112. package/js/state/onDestroy.js.map +1 -1
  113. package/js/state/onInit.js +4 -5
  114. package/js/state/onInit.js.map +1 -1
  115. package/js/state/provider.utils.d.ts +2 -2
  116. package/js/state/provider.utils.js +11 -16
  117. package/js/state/provider.utils.js.map +1 -1
  118. package/js/state/providers.d.ts +8 -3
  119. package/js/state/providers.js +15 -18
  120. package/js/state/providers.js.map +1 -1
  121. package/js/state/setUse.function.d.ts +12 -10
  122. package/js/state/setUse.function.js.map +1 -1
  123. package/js/state/state.utils.d.ts +1 -3
  124. package/js/state/state.utils.js +19 -13
  125. package/js/state/state.utils.js.map +1 -1
  126. package/js/state/watch.function.d.ts +6 -1
  127. package/js/state/watch.function.js +8 -3
  128. package/js/state/watch.function.js.map +1 -1
  129. package/js/subject/Subject.class.d.ts +10 -6
  130. package/js/subject/Subject.class.js +26 -10
  131. package/js/subject/Subject.class.js.map +1 -1
  132. package/js/subject/Subject.utils.d.ts +7 -5
  133. package/js/subject/Subject.utils.js.map +1 -1
  134. package/js/subject/ValueSubject.d.ts +2 -2
  135. package/js/subject/ValueSubject.js +1 -1
  136. package/js/subject/ValueSubject.js.map +1 -1
  137. package/js/subject/combineLatest.function.js.map +1 -1
  138. package/js/subject.types.d.ts +18 -0
  139. package/js/subject.types.js +2 -0
  140. package/js/subject.types.js.map +1 -0
  141. package/js/tag.d.ts +1 -1
  142. package/js/tag.js +25 -31
  143. package/js/tag.js.map +1 -1
  144. package/js/tagElement.d.ts +3 -7
  145. package/js/tagElement.js +24 -24
  146. package/js/tagElement.js.map +1 -1
  147. package/js/tagRunner.d.ts +7 -6
  148. package/js/tagRunner.js +16 -8
  149. package/js/tagRunner.js.map +1 -1
  150. package/js/updateBeforeTemplate.function.d.ts +1 -1
  151. package/js/updateBeforeTemplate.function.js.map +1 -1
  152. package/js/updateContextItem.function.d.ts +3 -0
  153. package/js/updateContextItem.function.js +43 -0
  154. package/js/updateContextItem.function.js.map +1 -0
  155. package/js/updateExistingTagComponent.function.d.ts +4 -4
  156. package/js/updateExistingTagComponent.function.js +49 -87
  157. package/js/updateExistingTagComponent.function.js.map +1 -1
  158. package/js/updateExistingValue.function.d.ts +2 -7
  159. package/js/updateExistingValue.function.js +94 -50
  160. package/js/updateExistingValue.function.js.map +1 -1
  161. package/package.json +1 -1
  162. /package/js/{errors.d.ts → Errors.d.ts} +0 -0
  163. /package/js/{errors.js → Errors.js} +0 -0
  164. /package/js/{errors.js.map → Errors.js.map} +0 -0
@@ -2,11 +2,12 @@ import { renderWithSupport } from './TemplaterResult.class';
2
2
  import { setUse } from './state';
3
3
  import { processTagResult } from './processTagResult.function';
4
4
  import { TagSupport } from './TagSupport.class';
5
- export function processSubjectComponent(templater, subject, insertBefore, ownerTag, options) {
5
+ export function processSubjectComponent(templater, subject, insertBefore, ownerSupport, options) {
6
6
  // Check if function component is wrapped in a tag() call
7
7
  // TODO: This below check not needed in production mode
8
8
  if (templater.tagged !== true) {
9
- const original = templater.wrapper.original;
9
+ const wrapper = templater.wrapper;
10
+ const original = wrapper.original;
10
11
  let name = original.name || original.constructor?.name;
11
12
  if (name === 'Function') {
12
13
  name = undefined;
@@ -15,43 +16,34 @@ export function processSubjectComponent(templater, subject, insertBefore, ownerT
15
16
  const error = new Error(`Not a tag component. Wrap your function with tag(). Example tag(props => html\`\`) on component:\n\n${label}\n\n`);
16
17
  throw error;
17
18
  }
18
- templater.tagSupport = new TagSupport(ownerTag.tagSupport, templater, subject);
19
- // templater.oldest = subject.tag?.tagSupport.oldest || templater.oldest
20
- if (insertBefore.nodeName != 'TEMPLATE') {
21
- throw new Error('9');
22
- }
23
- templater.global.insertBefore = insertBefore;
24
- let retag = subject.tag;
19
+ const tagSupport = new TagSupport(templater, ownerSupport, subject);
20
+ let reSupport = subject.tagSupport;
21
+ const global = tagSupport.global = reSupport?.global || tagSupport.global;
22
+ global.insertBefore = insertBefore;
25
23
  const providers = setUse.memory.providerConfig;
26
- providers.ownerTag = ownerTag;
27
- const isRedraw = !retag || options.forceElement;
28
- if (isRedraw) {
29
- retag = redrawSubjectComponent(templater, subject, retag, ownerTag, insertBefore);
24
+ providers.ownerSupport = ownerSupport;
25
+ const isRender = !reSupport || options.forceElement;
26
+ if (isRender) {
27
+ const support = reSupport || tagSupport;
28
+ reSupport = renderSubjectComponent(subject, support, ownerSupport);
30
29
  }
31
- processTagResult(retag, subject, // The element set here will be removed from document. Also result.tag will be added in here
30
+ processTagResult(reSupport, subject, // The element set here will be removed from document. Also result.tag will be added in here
32
31
  insertBefore, // <template end interpolate /> (will be removed)
33
32
  options);
34
- return retag;
33
+ return reSupport;
35
34
  }
36
- function redrawSubjectComponent(templater, subject, retag, ownerTag, insertBefore) {
37
- const preClones = ownerTag.clones.map(clone => clone);
38
- retag = renderWithSupport(templater.tagSupport, subject.tag, // existing tag
39
- subject, ownerTag);
40
- if (retag.tagSupport.templater.global.newest != retag) {
41
- throw new Error('mismatch result newest');
42
- }
43
- templater.global.newest = retag;
44
- if (ownerTag.clones.length > preClones.length) {
45
- const myClones = ownerTag.clones.filter(fClone => !preClones.find(clone => clone === fClone));
46
- retag.clones.push(...myClones);
47
- if (myClones.find(x => x === insertBefore)) {
48
- throw new Error('way back here we add marker');
49
- }
50
- }
51
- if (ownerTag.childTags.find(x => x === retag)) {
52
- throw new Error('about to reattach tag already present');
35
+ function renderSubjectComponent(subject, reSupport, ownerSupport) {
36
+ const preClones = ownerSupport.clones.map(clone => clone);
37
+ reSupport = renderWithSupport(reSupport, subject.tagSupport, // existing tag
38
+ subject, ownerSupport);
39
+ reSupport.global.newest = reSupport;
40
+ // ??? - mirroring add 0
41
+ // reSupport.ownerTagSupport = ownerSupport
42
+ if (ownerSupport.clones.length > preClones.length) {
43
+ const myClones = ownerSupport.clones.filter(fClone => !preClones.find(clone => clone === fClone));
44
+ reSupport.clones.push(...myClones);
53
45
  }
54
- ownerTag.childTags.push(retag);
55
- return retag;
46
+ ownerSupport.childTags.push(reSupport);
47
+ return reSupport;
56
48
  }
57
49
  //# sourceMappingURL=processSubjectComponent.function.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"processSubjectComponent.function.js","sourceRoot":"","sources":["../ts/processSubjectComponent.function.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processSubjectComponent.function.js","sourceRoot":"","sources":["../ts/processSubjectComponent.function.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,14 @@
1
1
  import { TagArraySubject } from './processTagArray';
2
2
  import { TemplaterResult } from './TemplaterResult.class';
3
3
  import { Clones, InsertBefore } from './Clones.type';
4
- import { Tag } from './Tag.class';
5
- import { Counts } from './interpolateTemplate';
6
- import { DisplaySubject, TagSubject } from './Tag.utils';
4
+ import { Counts } from './interpolations/interpolateTemplate';
5
+ import { DisplaySubject, TagSubject } from './subject.types';
7
6
  import { ValueSubject } from './subject/ValueSubject';
8
- import { Callback } from './bindSubjectCallback.function';
7
+ import { RegularValue } from './processRegularValue.function';
8
+ import { Callback } from './interpolations/bindSubjectCallback.function';
9
+ import { TagSupport } from './TagSupport.class';
10
+ import { Tag } from './Tag.class';
11
+ import { Subject } from './subject';
9
12
  type processOptions = {
10
13
  forceElement?: boolean;
11
14
  counts: Counts;
@@ -13,9 +16,10 @@ type processOptions = {
13
16
  export type ClonesAndPromise = {
14
17
  clones: Clones;
15
18
  };
16
- export type InterpolateSubject = TagArraySubject | TagSubject | DisplaySubject | ValueSubject<Callback>;
17
- export declare function processSubjectValue(value: any | TemplaterResult, subject: InterpolateSubject, // could be tag via result.tag
19
+ export type InterpolateSubject = ValueSubject<undefined> | TagArraySubject | TagSubject | DisplaySubject | ValueSubject<Callback>;
20
+ export type TemplateValue = Tag | TemplaterResult | (Tag | TemplaterResult)[] | RegularValue | Subject<any> | Callback;
21
+ export declare function processSubjectValue(value: TemplateValue, subject: InterpolateSubject, // could be tag via result.tag
18
22
  insertBefore: InsertBefore, // <template end interpolate /> (will be removed)
19
- ownerTag: Tag, // owner
23
+ ownerSupport: TagSupport, // owner
20
24
  options: processOptions): Clones | undefined;
21
25
  export {};
@@ -1,11 +1,12 @@
1
1
  import { processSubjectComponent } from './processSubjectComponent.function';
2
- import { isTagArray, isTagComponent, isTagInstance } from './isInstance';
2
+ import { isTagArray, isTagClass, isTagComponent, isTagTemplater } from './isInstance';
3
3
  import { processTagArray } from './processTagArray';
4
4
  import { processRegularValue } from './processRegularValue.function';
5
- import { processTag } from './processTag.function';
5
+ import { processTag, tagFakeTemplater } from './processTag.function';
6
6
  var ValueTypes;
7
7
  (function (ValueTypes) {
8
8
  ValueTypes["tag"] = "tag";
9
+ ValueTypes["templater"] = "templater";
9
10
  ValueTypes["tagArray"] = "tag-array";
10
11
  ValueTypes["tagComponent"] = "tag-component";
11
12
  ValueTypes["value"] = "value";
@@ -14,7 +15,10 @@ function getValueType(value) {
14
15
  if (isTagComponent(value)) {
15
16
  return ValueTypes.tagComponent;
16
17
  }
17
- if (isTagInstance(value)) {
18
+ if (isTagTemplater(value)) {
19
+ return ValueTypes.templater;
20
+ }
21
+ if (isTagClass(value)) {
18
22
  return ValueTypes.tag;
19
23
  }
20
24
  if (isTagArray(value)) {
@@ -22,19 +26,28 @@ function getValueType(value) {
22
26
  }
23
27
  return ValueTypes.value;
24
28
  }
29
+ // export type ExistingValue = TemplaterResult | Tag[] | TagSupport | Function | Subject<unknown> | RegularValue | Tag
25
30
  export function processSubjectValue(value, subject, // could be tag via result.tag
26
31
  insertBefore, // <template end interpolate /> (will be removed)
27
- ownerTag, // owner
32
+ ownerSupport, // owner
28
33
  options) {
29
34
  const valueType = getValueType(value);
30
35
  switch (valueType) {
36
+ case ValueTypes.templater:
37
+ processTag(value, insertBefore, ownerSupport, subject);
38
+ return;
31
39
  case ValueTypes.tag:
32
- processTag(value, subject, insertBefore, ownerTag);
40
+ const tag = value;
41
+ let templater = tag.templater;
42
+ if (!templater) {
43
+ templater = tagFakeTemplater(tag);
44
+ }
45
+ processTag(templater, insertBefore, ownerSupport, subject);
33
46
  return;
34
47
  case ValueTypes.tagArray:
35
- return processTagArray(subject, value, insertBefore, ownerTag, options);
48
+ return processTagArray(subject, value, insertBefore, ownerSupport, options);
36
49
  case ValueTypes.tagComponent:
37
- processSubjectComponent(value, subject, insertBefore, ownerTag, options);
50
+ processSubjectComponent(value, subject, insertBefore, ownerSupport, options);
38
51
  return;
39
52
  }
40
53
  processRegularValue(value, subject, insertBefore);
@@ -1 +1 @@
1
- {"version":3,"file":"processSubjectValue.function.js","sourceRoot":"","sources":["../ts/processSubjectValue.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAA;AAC5E,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACxE,OAAO,EAAmB,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAOpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AAEpE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAElD,IAAK,UAKJ;AALD,WAAK,UAAU;IACb,yBAAW,CAAA;IACX,oCAAsB,CAAA;IACtB,4CAA8B,CAAA;IAC9B,6BAAe,CAAA;AACjB,CAAC,EALI,UAAU,KAAV,UAAU,QAKd;AAED,SAAS,YAAY,CAAC,KAAU;IAC9B,IAAG,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,UAAU,CAAC,YAAY,CAAA;IAChC,CAAC;IAED,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,UAAU,CAAC,GAAG,CAAA;IACvB,CAAC;IAED,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,UAAU,CAAC,QAAQ,CAAA;IAC5B,CAAC;IAED,OAAO,UAAU,CAAC,KAAK,CAAA;AACzB,CAAC;AAcD,MAAM,UAAU,mBAAmB,CACjC,KAA4B,EAC5B,OAA2B,EAAE,8BAA8B;AAC3D,YAA0B,EAAE,iDAAiD;AAC7E,QAAa,EAAE,QAAQ;AACvB,OAAuB;IAEvB,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IAErC,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,UAAU,CAAC,GAAG;YACjB,UAAU,CACR,KAAK,EACL,OAAqB,EACrB,YAAY,EACZ,QAAQ,CACT,CAAA;YACD,OAAM;QAER,KAAK,UAAU,CAAC,QAAQ;YACtB,OAAO,eAAe,CACpB,OAA0B,EAC1B,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,OAAO,CACR,CAAA;QAEH,KAAK,UAAU,CAAC,YAAY;YAC1B,uBAAuB,CACrB,KAAwB,EACxB,OAAqB,EACrB,YAAY,EACZ,QAAQ,EACR,OAAO,CACR,CAAA;YACD,OAAM;IACV,CAAC;IAED,mBAAmB,CACjB,KAAK,EACL,OAAyB,EACzB,YAAY,CACb,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"processSubjectValue.function.js","sourceRoot":"","sources":["../ts/processSubjectValue.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAA;AAC5E,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AACrF,OAAO,EAAmB,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAMpE,OAAO,EAAgB,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AAElF,OAAO,EAAoB,UAAU,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAKtF,IAAK,UAMJ;AAND,WAAK,UAAU;IACb,yBAAW,CAAA;IACX,qCAAuB,CAAA;IACvB,oCAAsB,CAAA;IACtB,4CAA8B,CAAA;IAC9B,6BAAe,CAAA;AACjB,CAAC,EANI,UAAU,KAAV,UAAU,QAMd;AAED,SAAS,YAAY,CAAC,KAAU;IAC9B,IAAG,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,UAAU,CAAC,YAAY,CAAA;IAChC,CAAC;IAED,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,UAAU,CAAC,SAAS,CAAA;IAC7B,CAAC;IAED,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,UAAU,CAAC,GAAG,CAAA;IACvB,CAAC;IAED,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,UAAU,CAAC,QAAQ,CAAA;IAC5B,CAAC;IAED,OAAO,UAAU,CAAC,KAAK,CAAA;AACzB,CAAC;AAgBD,sHAAsH;AAEtH,MAAM,UAAU,mBAAmB,CACjC,KAAoB,EACpB,OAA2B,EAAE,8BAA8B;AAC3D,YAA0B,EAAE,iDAAiD;AAC7E,YAAwB,EAAE,QAAQ;AAClC,OAAuB;IAEvB,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IAErC,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,UAAU,CAAC,SAAS;YACvB,UAAU,CACR,KAAwB,EACxB,YAAY,EACZ,YAAY,EACZ,OAAqB,CACtB,CAAA;YACD,OAAM;QAER,KAAK,UAAU,CAAC,GAAG;YACjB,MAAM,GAAG,GAAG,KAAY,CAAA;YACxB,IAAI,SAAS,GAAG,GAAG,CAAC,SAAS,CAAA;YAE7B,IAAG,CAAC,SAAS,EAAE,CAAC;gBACd,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAA;YACnC,CAAC;YAED,UAAU,CACR,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,OAAqB,CACtB,CAAA;YACD,OAAM;QAER,KAAK,UAAU,CAAC,QAAQ;YACtB,OAAO,eAAe,CACpB,OAA0B,EAC1B,KAAkC,EAClC,YAAY,EACZ,YAAY,EACZ,OAAO,CACR,CAAA;QAEH,KAAK,UAAU,CAAC,YAAY;YAC1B,uBAAuB,CACrB,KAAwB,EACxB,OAAqB,EACrB,YAAY,EACZ,YAAY,EACZ,OAAO,CACR,CAAA;YACD,OAAM;IACV,CAAC;IAED,mBAAmB,CACjB,KAAqB,EACrB,OAAyB,EACzB,YAAY,CACb,CAAA;AACH,CAAC"}
@@ -1,7 +1,11 @@
1
1
  import { InsertBefore } from './Clones.type';
2
2
  import { Tag } from './Tag.class';
3
- import { TagSubject } from './Tag.utils';
3
+ import { TagSubject } from './subject.types';
4
+ import { TagSupport } from './TagSupport.class';
5
+ import { TemplaterResult } from './TemplaterResult.class';
4
6
  /** Could be a regular tag or a component. Both are Tag.class */
5
- export declare function processTag(tag: Tag, subject: TagSubject, // could be tag via result.tag
6
- insertBefore: InsertBefore, ownerTag: Tag): void;
7
- export declare function applyFakeTemplater(tag: Tag, ownerTag: Tag, subject: TagSubject): void;
7
+ export declare function processTag(templater: TemplaterResult, insertBefore: InsertBefore, ownerSupport: TagSupport, // owner
8
+ subject: TagSubject): void;
9
+ export declare function setupNewTemplater(tagSupport: TagSupport, ownerSupport: TagSupport, subject: TagSubject): void;
10
+ export declare function tagFakeTemplater(tag: Tag): TemplaterResult;
11
+ export declare function getFakeTemplater(): TemplaterResult;
@@ -1,59 +1,43 @@
1
- import { isTagInstance } from './isInstance';
2
1
  import { TagSupport } from './TagSupport.class';
3
2
  import { ValueSubject } from './subject';
4
3
  /** Could be a regular tag or a component. Both are Tag.class */
5
- export function processTag(tag, subject, // could be tag via result.tag
6
- insertBefore, ownerTag) {
4
+ export function processTag(templater, insertBefore, ownerSupport, // owner
5
+ subject) {
6
+ let tagSupport = subject.tagSupport;
7
7
  // first time seeing this tag?
8
- if (!tag.tagSupport) {
9
- if (!isTagInstance(tag)) {
10
- throw new Error('issue non-tag here');
11
- }
12
- applyFakeTemplater(tag, ownerTag, subject);
13
- if (ownerTag.childTags.find(x => x === tag)) {
14
- throw new Error('about to reattach tag already present - 5');
15
- }
16
- ownerTag.childTags.push(tag);
8
+ if (!tagSupport) {
9
+ tagSupport = new TagSupport(templater, ownerSupport, subject);
10
+ setupNewTemplater(tagSupport, ownerSupport, subject);
11
+ ownerSupport.childTags.push(tagSupport);
17
12
  }
18
- tag.ownerTag = ownerTag;
19
- if (insertBefore.tagName !== 'TEMPLATE') {
20
- throw new Error(`processTag.function.ts - insertBefore is not TEMPLATE ${insertBefore.tagName}`);
21
- }
22
- tag.buildBeforeElement(insertBefore, {
13
+ subject.tagSupport = tagSupport;
14
+ tagSupport.ownerTagSupport = ownerSupport;
15
+ tagSupport.buildBeforeElement(insertBefore, {
23
16
  counts: { added: 0, removed: 0 },
24
17
  forceElement: true,
25
18
  });
26
19
  }
27
- export function applyFakeTemplater(tag, ownerTag, subject) {
28
- if (!ownerTag) {
29
- throw new Error('no owner error');
30
- }
31
- const fakeTemplater = getFakeTemplater();
32
- tag.tagSupport = new TagSupport(ownerTag.tagSupport, fakeTemplater, // the template is provided via html`` call
33
- subject);
34
- fakeTemplater.global.oldest = tag;
35
- fakeTemplater.global.newest = tag;
36
- fakeTemplater.tagSupport = tag.tagSupport;
20
+ export function setupNewTemplater(tagSupport, ownerSupport, subject) {
21
+ tagSupport.global.oldest = tagSupport;
22
+ tagSupport.global.newest = tagSupport;
37
23
  // asking me to render will cause my parent to render
38
- tag.ownerTag = ownerTag;
24
+ tagSupport.ownerTagSupport = ownerSupport;
25
+ subject.tagSupport = tagSupport;
26
+ }
27
+ export function tagFakeTemplater(tag) {
28
+ const templater = getFakeTemplater();
29
+ templater.tag = tag;
30
+ tag.templater = templater;
31
+ return templater;
39
32
  }
40
- function getFakeTemplater() {
33
+ export function getFakeTemplater() {
41
34
  return {
42
- global: {
43
- renderCount: 0,
44
- providers: [],
45
- context: {},
46
- subscriptions: [],
47
- deleted: false,
48
- newestTemplater: {},
49
- },
50
35
  children: new ValueSubject([]), // no children
51
36
  props: {},
52
37
  isTag: true,
53
38
  isTemplater: false,
54
39
  tagged: false,
55
- wrapper: (() => undefined),
56
- tagSupport: {},
40
+ // wrapper: (() => undefined) as unknown as Wrapper,
57
41
  };
58
42
  }
59
43
  //# sourceMappingURL=processTag.function.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"processTag.function.js","sourceRoot":"","sources":["../ts/processTag.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAI5C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAGxC,gEAAgE;AAChE,MAAM,UAAU,UAAU,CACxB,GAAQ,EACR,OAAmB,EAAE,8BAA8B;AACnD,YAA0B,EAC1B,QAAa;IAEb,8BAA8B;IAC9B,IAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QACnB,IAAG,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;QACvC,CAAC;QAED,kBAAkB,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;QAE1C,IAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;QAC9D,CAAC;QAED,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,GAAU,CAAC,CAAA;IACrC,CAAC;IAED,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAEvB,IAAI,YAAoB,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,yDAA0D,YAAoB,CAAC,OAAO,EAAE,CAAC,CAAA;IAC3G,CAAC;IAED,GAAG,CAAC,kBAAkB,CAAC,YAAY,EAAE;QACnC,MAAM,EAAE,EAAC,KAAK,EAAC,CAAC,EAAE,OAAO,EAAC,CAAC,EAAC;QAC5B,YAAY,EAAE,IAAI;KACnB,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,GAAQ,EACR,QAAa,EACb,OAAmB;IAEnB,IAAG,CAAC,QAAQ,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;IACnC,CAAC;IACD,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;IAExC,GAAG,CAAC,UAAU,GAAG,IAAI,UAAU,CAC7B,QAAQ,CAAC,UAAU,EACnB,aAAa,EAAE,2CAA2C;IAC1D,OAAO,CACR,CAAA;IAED,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAA;IACjC,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAA;IACjC,aAAa,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAA;IAEzC,qDAAqD;IACrD,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAA;AACzB,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO;QACL,MAAM,EAAC;YACL,WAAW,EAAE,CAAC;YACd,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,EAAE;YACX,aAAa,EAAE,EAAE;YACjB,OAAO,EAAE,KAAK;YAEd,eAAe,EAAE,EAAqB;SACvC;QACD,QAAQ,EAAE,IAAI,YAAY,CAAQ,EAAE,CAAC,EAAE,cAAc;QACrD,KAAK,EAAE,EAAW;QAElB,KAAK,EAAE,IAAI;QACX,WAAW,EAAE,KAAK;QAClB,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,SAAS,CAAuB;QAChD,UAAU,EAAE,EAAgB;KACV,CAAA;AACtB,CAAC"}
1
+ {"version":3,"file":"processTag.function.js","sourceRoot":"","sources":["../ts/processTag.function.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAGxC,gEAAgE;AAChE,MAAM,UAAU,UAAU,CACxB,SAA0B,EAC1B,YAA0B,EAC1B,YAAwB,EAAE,QAAQ;AAClC,OAAmB;IAEnB,IAAI,UAAU,GAAe,OAAO,CAAC,UAAU,CAAA;IAE/C,8BAA8B;IAC9B,IAAG,CAAC,UAAU,EAAE,CAAC;QACf,UAAU,GAAG,IAAI,UAAU,CACzB,SAAS,EACT,YAAY,EACZ,OAAO,CACR,CAAA;QAED,iBAAiB,CAAC,UAAU,EAAE,YAAY,EAAE,OAAO,CAAC,CAAA;QAEpD,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACzC,CAAC;IAED,OAAO,CAAC,UAAU,GAAG,UAAU,CAAA;IAC/B,UAAU,CAAC,eAAe,GAAG,YAAY,CAAA;IAEzC,UAAU,CAAC,kBAAkB,CAC3B,YAAY,EAAE;QACZ,MAAM,EAAE,EAAC,KAAK,EAAC,CAAC,EAAE,OAAO,EAAC,CAAC,EAAC;QAC5B,YAAY,EAAE,IAAI;KACnB,CACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,UAAsB,EACtB,YAAwB,EACxB,OAAmB;IAEnB,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,UAAU,CAAA;IACrC,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,UAAU,CAAA;IAErC,qDAAqD;IACrD,UAAU,CAAC,eAAe,GAAG,YAAY,CAAA;IACzC,OAAO,CAAC,UAAU,GAAG,UAAU,CAAA;AACjC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,GAAQ;IAER,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAA;IACpC,SAAS,CAAC,GAAG,GAAG,GAAG,CAAA;IACnB,GAAG,CAAC,SAAS,GAAG,SAAS,CAAA;IAEzB,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAQ;QACN,QAAQ,EAAE,IAAI,YAAY,CAAQ,EAAE,CAAC,EAAE,cAAc;QACrD,KAAK,EAAE,EAAW;QAElB,KAAK,EAAE,IAAI;QACX,WAAW,EAAE,KAAK;QAClB,MAAM,EAAE,KAAK;QACb,oDAAoD;KAClC,CAAA;AACtB,CAAC"}
@@ -1,9 +1,11 @@
1
1
  import { Clones, InsertBefore } from './Clones.type';
2
2
  import { Tag } from './Tag.class';
3
3
  import { ValueSubject } from './subject/ValueSubject';
4
- import { Counts } from './interpolateTemplate';
4
+ import { Counts } from './interpolations/interpolateTemplate';
5
+ import { TagSupport } from './TagSupport.class';
6
+ import { TemplaterResult } from './TemplaterResult.class';
5
7
  export type LastArrayItem = {
6
- tag: Tag;
8
+ tagSupport: TagSupport;
7
9
  index: number;
8
10
  deleted?: boolean;
9
11
  };
@@ -13,9 +15,9 @@ export type TagArraySubject = ValueSubject<Tag[]> & {
13
15
  lastArray?: LastArrayItem[];
14
16
  isChildSubject?: boolean;
15
17
  };
16
- export declare function processTagArray(subject: TagArraySubject, value: Tag[], // arry of Tag classes
18
+ export declare function processTagArray(subject: TagArraySubject, value: (TemplaterResult | Tag)[], // arry of Tag classes
17
19
  insertBefore: InsertBefore, // <template end interpolate />
18
- ownerTag: Tag, options: {
20
+ ownerSupport: TagSupport, options: {
19
21
  counts: Counts;
20
22
  forceElement?: boolean;
21
23
  }): Clones;
@@ -1,11 +1,13 @@
1
1
  import { ValueSubject } from './subject/ValueSubject';
2
2
  import { ArrayNoKeyError } from './errors';
3
3
  import { destroyArrayTag } from './checkDestroyPrevious.function';
4
- import { applyFakeTemplater } from './processTag.function';
4
+ import { setupNewTemplater, tagFakeTemplater } from './processTag.function';
5
+ import { TagSupport } from './TagSupport.class';
6
+ import { isTagClass } from './isInstance';
5
7
  export function processTagArray(subject, value, // arry of Tag classes
6
8
  insertBefore, // <template end interpolate />
7
- ownerTag, options) {
8
- const clones = ownerTag.clones; // []
9
+ ownerSupport, options) {
10
+ const clones = ownerSupport.clones; // []
9
11
  let lastArray = subject.lastArray = subject.lastArray || [];
10
12
  if (!subject.placeholder) {
11
13
  setPlaceholderElm(insertBefore, subject);
@@ -17,14 +19,17 @@ ownerTag, options) {
17
19
  const newLength = value.length - 1;
18
20
  const at = index - removed;
19
21
  const lessLength = newLength < at;
20
- const subTag = value[index - removed];
21
- const subArrayValue = subTag?.memory.arrayValue;
22
- const tag = item.tag;
23
- const destroyItem = lessLength || !areLikeValues(subArrayValue, tag.memory.arrayValue);
22
+ const subValue = value[index - removed];
23
+ const subTag = subValue;
24
+ // const tag = subTag?.templater.tag as Tag
25
+ const lastTag = item.tagSupport.templater.tag;
26
+ const newArrayValue = subTag?.memory.arrayValue;
27
+ const lastArrayValue = lastTag.memory.arrayValue;
28
+ const destroyItem = lessLength || !areLikeValues(newArrayValue, lastArrayValue);
24
29
  if (destroyItem) {
25
30
  const last = lastArray[index];
26
- const tag = last.tag;
27
- destroyArrayTag(tag, options.counts);
31
+ const tagSupport = last.tagSupport;
32
+ destroyArrayTag(tagSupport, options.counts);
28
33
  last.deleted = true;
29
34
  ++removed;
30
35
  ++options.counts.removed;
@@ -32,22 +37,28 @@ ownerTag, options) {
32
37
  }
33
38
  return true;
34
39
  });
35
- value.forEach((subTag, index) => {
40
+ value.forEach((item, index) => {
36
41
  const previous = lastArray[index];
37
- const previousSupport = previous?.tag.tagSupport;
38
- const fakeSubject = new ValueSubject({});
39
- applyFakeTemplater(subTag, ownerTag, fakeSubject);
42
+ const previousSupport = previous?.tagSupport;
43
+ const subTag = item;
44
+ if (isTagClass(subTag) && !subTag.templater) {
45
+ tagFakeTemplater(subTag);
46
+ }
47
+ const tagSupport = new TagSupport(subTag.templater, ownerSupport, new ValueSubject(undefined));
48
+ // tagSupport.templater = subTag.templater
40
49
  if (previousSupport) {
41
- subTag.tagSupport.templater.global = previousSupport.templater.global;
42
- previousSupport.templater.global.newest = subTag;
50
+ setupNewTemplater(tagSupport, ownerSupport, previousSupport.subject);
51
+ const global = previousSupport.global;
52
+ tagSupport.global = global;
53
+ global.newest = tagSupport;
43
54
  }
44
55
  // check for html``.key()
45
56
  const keySet = 'arrayValue' in subTag.memory;
46
57
  if (!keySet) {
47
58
  const details = {
48
- template: subTag.getTemplate().string,
59
+ template: tagSupport.getTemplate().string,
49
60
  array: value,
50
- ownerTagContent: ownerTag.lastTemplateString,
61
+ ownerTagContent: ownerSupport.lastTemplateString,
51
62
  };
52
63
  const message = 'Use html`...`.key(item) instead of html`...` to template an Array';
53
64
  console.error(message, details);
@@ -56,22 +67,15 @@ ownerTag, options) {
56
67
  }
57
68
  const couldBeSame = lastArray.length > index;
58
69
  if (couldBeSame) {
59
- const prevSupport = previous.tag.tagSupport;
60
- const prevGlobal = prevSupport.templater.global;
61
- const isSame = areLikeValues(previous.tag.memory.arrayValue, subTag.memory.arrayValue);
62
- if (isSame) {
63
- subTag.tagSupport = subTag.tagSupport || prevSupport;
64
- const oldest = prevGlobal.oldest;
65
- oldest.updateByTag(subTag);
66
- return [];
67
- }
68
- // TODO: should not get here?
69
- processAddTagArrayItem(runtimeInsertBefore, subTag, index, options, lastArray);
70
- throw new Error('item should be back');
71
- // return [] // removed: item should have been previously deleted and will be added back
70
+ const prevSupport = previous.tagSupport;
71
+ const prevGlobal = prevSupport.global;
72
+ // subTag.tagSupport = subTag.tagSupport || prevSupport
73
+ const oldest = prevGlobal.oldest;
74
+ oldest.updateBy(tagSupport);
75
+ return [];
72
76
  }
73
- processAddTagArrayItem(runtimeInsertBefore, subTag, index, options, lastArray);
74
- ownerTag.childTags.push(subTag);
77
+ processAddTagArrayItem(runtimeInsertBefore, tagSupport, index, options, lastArray);
78
+ ownerSupport.childTags.push(tagSupport);
75
79
  });
76
80
  return clones;
77
81
  }
@@ -85,9 +89,9 @@ function setPlaceholderElm(insertBefore, subject) {
85
89
  parentNode.insertBefore(placeholder, insertBefore);
86
90
  parentNode.removeChild(insertBefore);
87
91
  }
88
- function processAddTagArrayItem(before, subTag, index, options, lastArray) {
92
+ function processAddTagArrayItem(before, tagSupport, index, options, lastArray) {
89
93
  const lastValue = {
90
- tag: subTag, index
94
+ tagSupport, index
91
95
  };
92
96
  // Added to previous array
93
97
  lastArray.push(lastValue);
@@ -95,12 +99,10 @@ function processAddTagArrayItem(before, subTag, index, options, lastArray) {
95
99
  added: options.counts.added + index,
96
100
  removed: options.counts.removed,
97
101
  };
98
- if (!before.parentNode) {
99
- throw new Error('issue adding array item');
100
- }
101
102
  const newTempElm = document.createElement('template');
102
- before.parentNode.insertBefore(newTempElm, before);
103
- subTag.buildBeforeElement(newTempElm, // before,
103
+ const parent = before.parentNode;
104
+ parent.insertBefore(newTempElm, before);
105
+ tagSupport.buildBeforeElement(newTempElm, // before,
104
106
  { counts, forceElement: options.forceElement });
105
107
  }
106
108
  /** compare two values. If both values are arrays then the items will be compared */
@@ -1 +1 @@
1
- {"version":3,"file":"processTagArray.js","sourceRoot":"","sources":["../ts/processTagArray.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processTagArray.js","sourceRoot":"","sources":["../ts/processTagArray.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { Tag } from './Tag.class';
2
- import { Counts } from './interpolateTemplate';
1
+ import { Counts } from './interpolations/interpolateTemplate';
3
2
  import { TagArraySubject } from './processTagArray';
4
- import { TagSubject } from './Tag.utils';
3
+ import { TagSubject } from './subject.types';
5
4
  import { InsertBefore } from './Clones.type';
6
- export declare function processTagResult(tag: Tag, subject: TagArraySubject | TagSubject | Function, // used for recording past and current value
5
+ import { TagSupport } from './TagSupport.class';
6
+ export declare function processTagResult(tagSupport: TagSupport, subject: TagArraySubject | TagSubject | Function, // used for recording past and current value
7
7
  insertBefore: InsertBefore, // <template end interpolate />
8
8
  { counts, forceElement, }: {
9
9
  counts: Counts;
@@ -1,46 +1,30 @@
1
- export function processTagResult(tag, subject, // used for recording past and current value
1
+ export function processTagResult(tagSupport, subject, // used for recording past and current value
2
2
  insertBefore, // <template end interpolate />
3
3
  { counts, forceElement, }) {
4
- if (!insertBefore.parentNode) {
5
- throw new Error(`before here processTagResult ${insertBefore.nodeName}`);
6
- }
7
4
  // *if appears we already have seen
8
5
  const subjectTag = subject;
9
- const existingTag = subjectTag.tag;
10
- const previousTag = existingTag?.tagSupport.templater.global.oldest || undefined; // || tag.tagSupport.oldest // subjectTag.tag
11
- const justUpdate = previousTag; // && !forceElement
12
- if (previousTag && justUpdate) {
13
- /*
14
- const areLike = previousTag.isLikeTag(tag)
15
-
16
- // are we just updating an if we already had?
17
- if(areLike) {
18
- return processTagResultUpdate(tag, subjectTag, previousTag)
19
- }
20
- */
21
- return processTagResultUpdate(tag, subjectTag, previousTag);
22
- }
23
- /*
24
- if(insertBefore.nodeName !== 'TEMPLATE') {
25
- throw new Error(`processTagResult.function.ts insertBefore is not template ${insertBefore.nodeName}`)
6
+ const lastSupport = subjectTag.tagSupport;
7
+ const prevSupport = lastSupport?.global.oldest || undefined; // || tag.tagSupport.oldest // subjectTag.tag
8
+ const justUpdate = prevSupport; // && !forceElement
9
+ if (prevSupport && justUpdate) {
10
+ return processTagResultUpdate(tagSupport, subjectTag, prevSupport);
26
11
  }
27
- */
28
- tag.buildBeforeElement(insertBefore, {
12
+ tagSupport.buildBeforeElement(insertBefore, {
29
13
  counts,
30
14
  forceElement,
31
15
  });
32
16
  }
33
- function processTagResultUpdate(tag, subject, // used for recording past and current value
34
- previousTag) {
17
+ function processTagResultUpdate(tagSupport, subject, // used for recording past and current value
18
+ prevSupport) {
35
19
  // components
36
20
  if (subject instanceof Function) {
37
- const newTag = subject(previousTag.tagSupport);
38
- previousTag.updateByTag(newTag);
39
- subject.tag = newTag;
21
+ const newSupport = subject(prevSupport);
22
+ prevSupport.updateBy(newSupport);
23
+ subject.tagSupport = newSupport;
40
24
  return;
41
25
  }
42
- previousTag.updateByTag(tag);
43
- subject.tag = tag;
26
+ prevSupport.updateBy(tagSupport);
27
+ subject.tagSupport = tagSupport;
44
28
  return;
45
29
  }
46
30
  //# sourceMappingURL=processTagResult.function.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"processTagResult.function.js","sourceRoot":"","sources":["../ts/processTagResult.function.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,gBAAgB,CAC9B,GAAQ,EACR,OAAgD,EAAE,4CAA4C;AAC9F,YAA0B,EAAE,+BAA+B;AAC3D,EACE,MAAM,EAAE,YAAY,GAIrB;IAED,IAAG,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,gCAAgC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC1E,CAAC;IAED,mCAAmC;IACnC,MAAM,UAAU,GAAG,OAAqB,CAAA;IACxC,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAA;IAClC,MAAM,WAAW,GAAG,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,MAAa,IAAI,SAAS,CAAA,CAAC,6CAA6C;IACrI,MAAM,UAAU,GAAG,WAAW,CAAA,CAAC,mBAAmB;IAElD,IAAG,WAAW,IAAI,UAAU,EAAE,CAAC;QAC7B;;;;;;;UAOE;QACF,OAAO,sBAAsB,CAAC,GAAG,EAAE,UAAU,EAAE,WAAW,CAAC,CAAA;IAC7D,CAAC;IAGD;;;;MAIE;IAEF,GAAG,CAAC,kBAAkB,CAAC,YAAY,EAAE;QACnC,MAAM;QACN,YAAY;KACb,CAAC,CAAA;AACJ,CAAC;AAGD,SAAS,sBAAsB,CAC7B,GAAQ,EACR,OAAmB,EAAE,4CAA4C;AACjE,WAAgB;IAEhB,aAAa;IACb,IAAG,OAAO,YAAY,QAAQ,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAQ,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;QACnD,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;QAC/B,OAAO,CAAC,GAAG,GAAG,MAAM,CAAA;QAEpB,OAAM;IACR,CAAC;IAED,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IAC5B,OAAO,CAAC,GAAG,GAAG,GAAG,CAAA;IAEjB,OAAM;AACR,CAAC"}
1
+ {"version":3,"file":"processTagResult.function.js","sourceRoot":"","sources":["../ts/processTagResult.function.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,gBAAgB,CAC9B,UAAsB,EACtB,OAAgD,EAAE,4CAA4C;AAC9F,YAA0B,EAAE,+BAA+B;AAC3D,EACE,MAAM,EAAE,YAAY,GAIrB;IAED,mCAAmC;IACnC,MAAM,UAAU,GAAG,OAAqB,CAAA;IACxC,MAAM,WAAW,GAAG,UAAU,CAAC,UAAU,CAAA;IACzC,MAAM,WAAW,GAAG,WAAW,EAAE,MAAM,CAAC,MAAM,IAAI,SAAS,CAAA,CAAC,6CAA6C;IACzG,MAAM,UAAU,GAAG,WAAW,CAAA,CAAC,mBAAmB;IAElD,IAAG,WAAW,IAAI,UAAU,EAAE,CAAC;QAC7B,OAAO,sBAAsB,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,CAAA;IACpE,CAAC;IAED,UAAU,CAAC,kBAAkB,CAAC,YAAY,EAAE;QAC1C,MAAM;QACN,YAAY;KACb,CAAC,CAAA;AACJ,CAAC;AAGD,SAAS,sBAAsB,CAC7B,UAAsB,EACtB,OAAqD,EAAE,4CAA4C;AACnG,WAAuB;IAEvB,aAAa;IACb,IAAG,OAAO,YAAY,QAAQ,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;QACvC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAE/B;QAAC,OAAiC,CAAC,UAAU,GAAG,UAAU,CAAA;QAC3D,OAAM;IACR,CAAC;IAED,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;IAChC,OAAO,CAAC,UAAU,GAAG,UAAU,CAAA;IAE/B,OAAM;AACR,CAAC"}
@@ -1,7 +1,7 @@
1
- import { Tag } from './Tag.class';
2
- import { BaseTagSupport } from './TagSupport.class';
3
- import { TemplaterResult } from './TemplaterResult.class';
4
- import { TagSubject } from './Tag.utils';
1
+ import { BaseTagSupport, TagSupport } from './TagSupport.class';
2
+ import { TagSubject } from './subject.types';
5
3
  /** Returns true when rendering owner is not needed. Returns false when rendering owner should occur */
6
- export declare function renderExistingTag(oldestTag: Tag, // existing tag already there
7
- newTemplater: TemplaterResult, tagSupport: BaseTagSupport, subject: TagSubject): Tag;
4
+ export declare function renderExistingTag(oldestSupport: TagSupport, // oldest with elements on html
5
+ newSupport: TagSupport, // new to be rendered
6
+ ownerSupport: BaseTagSupport, // ownerSupport
7
+ subject: TagSubject): TagSupport;