taggedjs 2.4.2 → 2.4.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/bundle.js +3612 -0
  2. package/bundle.js.map +1 -0
  3. package/index.js +1 -1
  4. package/js/Subject.d.ts +3 -4
  5. package/js/Subject.js +4 -4
  6. package/js/Subject.js.map +1 -1
  7. package/js/Tag.class.d.ts +25 -17
  8. package/js/Tag.class.js +208 -78
  9. package/js/Tag.class.js.map +1 -1
  10. package/js/Tag.utils.d.ts +13 -13
  11. package/js/Tag.utils.js +2 -18
  12. package/js/Tag.utils.js.map +1 -1
  13. package/js/TagSupport.class.d.ts +15 -14
  14. package/js/TagSupport.class.js +24 -46
  15. package/js/TagSupport.class.js.map +1 -1
  16. package/js/TemplaterResult.class.d.ts +36 -0
  17. package/js/TemplaterResult.class.js +73 -0
  18. package/js/TemplaterResult.class.js.map +1 -0
  19. package/js/ValueSubject.d.ts +4 -2
  20. package/js/ValueSubject.js +1 -1
  21. package/js/ValueSubject.js.map +1 -1
  22. package/js/alterProps.function.d.ts +4 -0
  23. package/js/alterProps.function.js +45 -0
  24. package/js/alterProps.function.js.map +1 -0
  25. package/js/bindSubjectCallback.function 9.27.33/342/200/257AM.js" +32 -0
  26. package/js/bindSubjectCallback.function.d 9.27.33/342/200/257AM.ts" +8 -0
  27. package/js/bindSubjectCallback.function.d.ts +3 -4
  28. package/js/bindSubjectCallback.function.js +20 -8
  29. package/js/bindSubjectCallback.function.js.map +1 -1
  30. package/js/checkDestroyPrevious.function.d.ts +6 -0
  31. package/js/checkDestroyPrevious.function.js +62 -0
  32. package/js/checkDestroyPrevious.function.js.map +1 -0
  33. package/js/destroyTag.function.d.ts +5 -0
  34. package/js/destroyTag.function.js +18 -0
  35. package/js/destroyTag.function.js.map +1 -0
  36. package/js/elementInitCheck.d.ts +1 -1
  37. package/js/getCallback.d.ts +1 -1
  38. package/js/getCallback.js +16 -15
  39. package/js/getCallback.js.map +1 -1
  40. package/js/hasTagSupportChanged.function.d.ts +6 -6
  41. package/js/hasTagSupportChanged.function.js +30 -21
  42. package/js/hasTagSupportChanged.function.js.map +1 -1
  43. package/js/html.d.ts +1 -1
  44. package/js/html.js +1 -1
  45. package/js/html.js.map +1 -1
  46. package/js/index.d.ts +22 -27
  47. package/js/index.js +26 -27
  48. package/js/index.js.map +1 -1
  49. package/js/interpolateAttributes.d.ts +2 -3
  50. package/js/interpolateAttributes.js +1 -127
  51. package/js/interpolateAttributes.js.map +1 -1
  52. package/js/interpolateContentTemplates.d.ts +9 -6
  53. package/js/interpolateContentTemplates.js +18 -28
  54. package/js/interpolateContentTemplates.js.map +1 -1
  55. package/js/interpolateElement.d.ts +7 -6
  56. package/js/interpolateElement.js +13 -10
  57. package/js/interpolateElement.js.map +1 -1
  58. package/js/interpolateTemplate.d.ts +22 -7
  59. package/js/interpolateTemplate.js +65 -27
  60. package/js/interpolateTemplate.js.map +1 -1
  61. package/js/isInstance.d.ts +3 -4
  62. package/js/isInstance.js.map +1 -1
  63. package/js/isLikeTags.function.d.ts +2 -0
  64. package/js/isLikeTags.function.js +30 -0
  65. package/js/isLikeTags.function.js.map +1 -0
  66. package/js/onDestroy.js +3 -3
  67. package/js/onDestroy.js.map +1 -1
  68. package/js/onInit.js +6 -4
  69. package/js/onInit.js.map +1 -1
  70. package/js/processAttribute.function.d.ts +3 -0
  71. package/js/processAttribute.function.js +122 -0
  72. package/js/processAttribute.function.js.map +1 -0
  73. package/js/processNewValue.function.d.ts +2 -2
  74. package/js/processNewValue.function.js +13 -15
  75. package/js/processNewValue.function.js.map +1 -1
  76. package/js/processRegularValue.function.d.ts +5 -7
  77. package/js/processRegularValue.function.js +10 -17
  78. package/js/processRegularValue.function.js.map +1 -1
  79. package/js/processSubjectComponent.function.d.ts +6 -6
  80. package/js/processSubjectComponent.function.js +30 -22
  81. package/js/processSubjectComponent.function.js.map +1 -1
  82. package/js/processSubjectValue.function.d.ts +17 -14
  83. package/js/processSubjectValue.function.js +55 -79
  84. package/js/processSubjectValue.function.js.map +1 -1
  85. package/js/processTagArray.d.ts +9 -8
  86. package/js/processTagArray.js +36 -37
  87. package/js/processTagArray.js.map +1 -1
  88. package/js/processTagResult.function.d.ts +7 -8
  89. package/js/processTagResult.function.js +40 -17
  90. package/js/processTagResult.function.js.map +1 -1
  91. package/js/provider.utils.d.ts +1 -1
  92. package/js/provider.utils.js +19 -8
  93. package/js/provider.utils.js.map +1 -1
  94. package/js/providers.js +6 -6
  95. package/js/providers.js.map +1 -1
  96. package/js/redrawTag.function.d.ts +5 -8
  97. package/js/redrawTag.function.js +16 -4
  98. package/js/redrawTag.function.js.map +1 -1
  99. package/js/render.d.ts +1 -1
  100. package/js/render.js.map +1 -1
  101. package/js/renderExistingTag.function.d.ts +7 -0
  102. package/js/renderExistingTag.function.js +30 -0
  103. package/js/renderExistingTag.function.js.map +1 -0
  104. package/js/renderTagSupport.function.d.ts +4 -0
  105. package/js/renderTagSupport.function.js +42 -0
  106. package/js/renderTagSupport.function.js.map +1 -0
  107. package/js/scanTextAreaValue.function.d.ts +2 -0
  108. package/js/scanTextAreaValue.function.js +16 -0
  109. package/js/scanTextAreaValue.function.js.map +1 -0
  110. package/js/set.function.d.ts +4 -3
  111. package/js/set.function.js +25 -34
  112. package/js/set.function.js.map +1 -1
  113. package/js/setLet.function.d.ts +1 -1
  114. package/js/setLet.function.js +14 -3
  115. package/js/setLet.function.js.map +1 -1
  116. package/js/setProp.function.d.ts +1 -1
  117. package/js/setProp.function.js +6 -3
  118. package/js/setProp.function.js.map +1 -1
  119. package/js/setUse.function.d.ts +11 -11
  120. package/js/tag.d.ts +6 -4
  121. package/js/tag.js +78 -71
  122. package/js/tag.js.map +1 -1
  123. package/js/tagElement.d.ts +5 -7
  124. package/js/tagElement.js +20 -31
  125. package/js/tagElement.js.map +1 -1
  126. package/js/tagRunner.d.ts +6 -6
  127. package/js/tagRunner.js +1 -1
  128. package/js/tagRunner.js.map +1 -1
  129. package/js/templater.utils.d.ts +23 -12
  130. package/js/templater.utils.js +55 -40
  131. package/js/templater.utils.js.map +1 -1
  132. package/js/updateExistingTag.function.d.ts +4 -4
  133. package/js/updateExistingTag.function.js +16 -7
  134. package/js/updateExistingTag.function.js.map +1 -1
  135. package/js/updateExistingTagComponent.function.d.ts +4 -4
  136. package/js/updateExistingTagComponent.function.js +105 -39
  137. package/js/updateExistingTagComponent.function.js.map +1 -1
  138. package/js/updateExistingValue.function.d.ts +8 -10
  139. package/js/updateExistingValue.function.js +62 -89
  140. package/js/updateExistingValue.function.js.map +1 -1
  141. package/js/watch.function.js +4 -3
  142. package/js/watch.function.js.map +1 -1
  143. package/package.json +1 -2
  144. package/js/CustomError.d.ts +0 -7
  145. package/js/CustomError.js +0 -9
  146. package/js/CustomError.js.map +0 -1
  147. package/js/ElementTarget.interface.d.ts +0 -7
  148. package/js/ElementTarget.interface.js +0 -2
  149. package/js/ElementTarget.interface.js.map +0 -1
  150. package/js/Errors2.d.ts +0 -14
  151. package/js/Errors2.js +0 -21
  152. package/js/Errors2.js.map +0 -1
  153. package/js/gateway/gateway.web.component.d.ts +0 -11
  154. package/js/gateway/gateway.web.component.js +0 -20
  155. package/js/gateway/gateway.web.component.js.map +0 -1
  156. package/js/gateway/index.d.ts +0 -3
  157. package/js/gateway/index.js +0 -4
  158. package/js/gateway/index.js.map +0 -1
  159. package/js/gateway/loadTagGateway.function.d.ts +0 -2
  160. package/js/gateway/loadTagGateway.function.js +0 -18
  161. package/js/gateway/loadTagGateway.function.js.map +0 -1
  162. package/js/gateway/tagGateway.function.d.ts +0 -5
  163. package/js/gateway/tagGateway.function.js +0 -49
  164. package/js/gateway/tagGateway.function.js.map +0 -1
  165. package/js/gateway/tagGateway.utils.d.ts +0 -22
  166. package/js/gateway/tagGateway.utils.js +0 -137
  167. package/js/gateway/tagGateway.utils.js.map +0 -1
  168. package/js/getTagSupport.d.ts +0 -20
  169. package/js/getTagSupport.js +0 -114
  170. package/js/getTagSupport.js.map +0 -1
  171. package/js/renderAppToElement.d.ts +0 -14
  172. package/js/renderAppToElement.js +0 -57
  173. package/js/renderAppToElement.js.map +0 -1
  174. package/js/state.d.ts +0 -22
  175. package/js/state.js +0 -128
  176. package/js/state.js.map +0 -1
  177. package/js/tagGateway.function.d.ts +0 -14
  178. package/js/tagGateway.function.js +0 -138
  179. package/js/tagGateway.function.js.map +0 -1
  180. package/js/updateTag.utils.d.ts +0 -8
  181. package/js/updateTag.utils.js +0 -83
  182. package/js/updateTag.utils.js.map +0 -1
  183. package/taggedjs.js +0 -1
  184. /package/js/{Errors.d.ts → errors.d.ts} +0 -0
  185. /package/js/{Errors.js → errors.js} +0 -0
  186. /package/js/{Errors.js.map → errors.js.map} +0 -0
@@ -1,38 +1,46 @@
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) {
1
+ import { renderWithSupport } from './TemplaterResult.class';
2
+ import { setUse } from './setUse.function';
3
+ import { processTagResult } from './processTagResult.function';
4
+ import { TagSupport } from './TagSupport.class';
5
+ export function processSubjectComponent(templater, subject, template, ownerTag, options) {
6
+ // Check if function component is wrapped in a tag() call
5
7
  // 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 (templater.tagged !== true) {
9
+ const original = templater.wrapper.original;
10
+ let name = original.name || original.constructor?.name;
8
11
  if (name === 'Function') {
9
12
  name = undefined;
10
13
  }
11
- const label = name || value.wrapper.original.toString().substring(0, 120);
14
+ const label = name || original.toString().substring(0, 120);
12
15
  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
16
  throw error;
14
17
  }
15
- const templater = value;
16
- const tagSupport = value.tagSupport;
17
- let retag = templater.newest;
18
+ templater.tagSupport = new TagSupport(ownerTag.tagSupport, templater, subject);
19
+ // templater.oldest = subject.tag?.tagSupport.oldest || templater.oldest
20
+ templater.global.insertBefore = template;
21
+ let retag = subject.tag;
18
22
  const providers = setUse.memory.providerConfig;
19
23
  providers.ownerTag = ownerTag;
20
- const isFirstTime = !retag || options.forceElement;
21
- if (isFirstTime) {
22
- if (retag) {
23
- runBeforeRedraw(tagSupport, retag);
24
+ const isRedraw = !retag || options.forceElement;
25
+ if (isRedraw) {
26
+ const preClones = ownerTag.clones.map(clone => clone);
27
+ retag = renderWithSupport(templater.tagSupport, subject.tag, // existing tag
28
+ subject, ownerTag);
29
+ if (retag.tagSupport.templater.global.newest != retag) {
30
+ throw new Error('mismatch result newest');
24
31
  }
25
- else {
26
- runBeforeRender(tagSupport, ownerTag);
32
+ templater.global.newest = retag;
33
+ if (ownerTag.clones.length > preClones.length) {
34
+ const myClones = ownerTag.clones.filter(fClone => !preClones.find(clone => clone === fClone));
35
+ retag.clones.push(...myClones);
27
36
  }
28
- retag = templater.forceRenderTemplate(tagSupport, ownerTag);
29
- templater.newest = retag;
37
+ if (ownerTag.childTags.find(x => x === retag)) {
38
+ throw new Error('about to reattach tag already present');
39
+ }
40
+ ownerTag.childTags.push(retag);
30
41
  }
31
- ownerTag.children.push(retag);
32
- tagSupport.templater = retag.tagSupport.templater;
33
- const clones = processTagResult(retag, result, // The element set here will be removed from document. Also result.tag will be added in here
42
+ processTagResult(retag, subject, // The element set here will be removed from document. Also result.tag will be added in here
34
43
  template, // <template end interpolate /> (will be removed)
35
44
  options);
36
- return clones;
37
45
  }
38
46
  //# sourceMappingURL=processSubjectComponent.function.js.map
@@ -1 +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;IAE/C,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,KAAK,EAAE,CAAC;YACT,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;QACpC,CAAC;aAAM,CAAC;YACN,eAAe,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QACvC,CAAC;QAED,KAAK,GAAG,SAAS,CAAC,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAE3D,SAAS,CAAC,MAAM,GAAG,KAAK,CAAA;IAC1B,CAAC;IAED,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAE7B,UAAU,CAAC,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,SAAS,CAAA;IAEjD,MAAM,MAAM,GAAG,gBAAgB,CAC7B,KAAK,EACL,MAAM,EAAE,4FAA4F;IACpG,QAAQ,EAAE,iDAAiD;IAC3D,OAAO,CACR,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"processSubjectComponent.function.js","sourceRoot":"","sources":["../ts/processSubjectComponent.function.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,26 @@
1
- import { TagArraySubject } from "./processTagArray.js";
2
- import { Clones } from "./Clones.type.js";
3
- import { Tag } from "./Tag.class.js";
4
- import { Counts, Template } from "./interpolateTemplate.js";
5
- import { DisplaySubject, TagSubject } from "./Tag.utils.js";
1
+ import { TagArraySubject } from './processTagArray';
2
+ import { TemplaterResult } from './TemplaterResult.class';
3
+ import { Clones } from './Clones.type';
4
+ import { Tag } from './Tag.class';
5
+ import { Counts, Template } from './interpolateTemplate';
6
+ import { DisplaySubject, TagSubject } from './Tag.utils';
7
+ import { ValueSubject } from './ValueSubject';
8
+ import { Callback } from './bindSubjectCallback.function';
6
9
  type processOptions = {
7
10
  forceElement?: boolean;
8
11
  counts: Counts;
9
12
  };
10
13
  export type ClonesAndPromise = {
11
14
  clones: Clones;
12
- promise?: Promise<any>;
13
15
  };
14
- export declare function processSubjectValue(value: any, result: TagArraySubject | TagSubject | DisplaySubject, // could be tag via result.tag
15
- template: Template, // <template end interpolate /> (will be removed)
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
18
+ template: Element | Text | Template, // <template end interpolate /> (will be removed)
16
19
  ownerTag: Tag, // owner
17
- options: processOptions): ClonesAndPromise;
18
- export declare function processTag(value: any, result: TagSubject, // could be tag via result.tag
19
- template: Template, // <template end interpolate /> (will be removed)
20
- ownerTag: Tag, // owner
21
- options: processOptions): Clones;
22
- export declare function destroySimpleValue(template: Element, resultTag: DisplaySubject): void;
20
+ options: processOptions): Clones | undefined;
21
+ /** Could be a regular tag or a component. Both are Tag.class */
22
+ export declare function processTag(tag: Tag, subject: TagSubject, // could be tag via result.tag
23
+ insertBefore: Element | Text | Template, // <template end interpolate /> (will be removed)
24
+ ownerTag: Tag): void;
25
+ export declare function applyFakeTemplater(tag: Tag, ownerTag: Tag, subject: TagSubject): void;
23
26
  export {};
@@ -1,11 +1,9 @@
1
- import { processSubjectComponent } from "./processSubjectComponent.function.js";
2
- import { processTagResult } from "./processTagResult.function.js";
3
- import { isTagArray, isTagComponent, isTagInstance } from "./isInstance.js";
4
- import { processTagArray } from "./processTagArray.js";
5
- import { TagSupport } from "./TagSupport.class.js";
6
- import { updateBetweenTemplates } from "./interpolateTemplate.js";
7
- import { ValueSubject } from "./ValueSubject.js";
8
- import { processRegularValue } from "./processRegularValue.function.js";
1
+ import { processSubjectComponent } from './processSubjectComponent.function';
2
+ import { isTagArray, isTagComponent, isTagInstance } from './isInstance';
3
+ import { processTagArray } from './processTagArray';
4
+ import { TagSupport } from './TagSupport.class';
5
+ import { ValueSubject } from './ValueSubject';
6
+ import { processRegularValue } from './processRegularValue.function';
9
7
  var ValueTypes;
10
8
  (function (ValueTypes) {
11
9
  ValueTypes["tag"] = "tag";
@@ -25,90 +23,68 @@ function getValueType(value) {
25
23
  }
26
24
  return ValueTypes.value;
27
25
  }
28
- export function processSubjectValue(value, result, // could be tag via result.tag
26
+ export function processSubjectValue(value, subject, // could be tag via result.tag
29
27
  template, // <template end interpolate /> (will be removed)
30
28
  ownerTag, // owner
31
29
  options) {
32
30
  const valueType = getValueType(value);
33
- // Previously was simple value, now its a tag of some sort
34
- const resultTag = result;
35
- const clone = resultTag.clone;
36
- const noLongerSimpleValue = valueType !== ValueTypes.value && clone;
37
- if (noLongerSimpleValue) {
38
- destroySimpleValue(template, resultTag);
39
- }
40
31
  switch (valueType) {
41
32
  case ValueTypes.tag:
42
- return {
43
- clones: processTag(value, result, template, ownerTag, options)
44
- };
33
+ processTag(value, subject, template, ownerTag);
34
+ return;
45
35
  case ValueTypes.tagArray:
46
- return {
47
- clones: processTagArray(result, value, template, ownerTag, options)
48
- };
36
+ return processTagArray(subject, value, template, ownerTag, options);
49
37
  case ValueTypes.tagComponent:
50
- return {
51
- clones: processSubjectComponent(value, result, template, ownerTag, options)
52
- };
53
- }
54
- // *if processing WAS a tag BUT NOW its some other non-tag value
55
- if (result.tag) {
56
- return {
57
- clones: [],
58
- promise: processWasTag(value, result, template, options),
59
- };
38
+ processSubjectComponent(value, subject, template, ownerTag, options);
39
+ return;
60
40
  }
61
- return {
62
- clones: processRegularValue(value, result, template, ownerTag)
63
- };
41
+ processRegularValue(value, subject, template);
64
42
  }
65
- export function processTag(value, result, // could be tag via result.tag
66
- template, // <template end interpolate /> (will be removed)
67
- ownerTag, // owner
68
- options) {
43
+ /** Could be a regular tag or a component. Both are Tag.class */
44
+ export function processTag(tag, subject, // could be tag via result.tag
45
+ insertBefore, // <template end interpolate /> (will be removed)
46
+ ownerTag) {
69
47
  // first time seeing this tag?
70
- if (!value.tagSupport) {
71
- value.tagSupport = new TagSupport({}, // the template is provided via html`` call
72
- new ValueSubject([]));
73
- // asking me to render will cause my parent to render
74
- value.tagSupport.mutatingRender = () => {
75
- ownerTag.tagSupport.render();
76
- };
77
- value.tagSupport.oldest = value.tagSupport.oldest || value;
78
- ownerTag.children.push(value);
79
- value.ownerTag = ownerTag;
48
+ if (!tag.tagSupport) {
49
+ if (!isTagInstance(tag)) {
50
+ throw new Error('issue non-tag here');
51
+ }
52
+ applyFakeTemplater(tag, ownerTag, subject);
53
+ if (ownerTag.childTags.find(x => x === tag)) {
54
+ throw new Error('about to reattach tag already present - 5');
55
+ }
56
+ ownerTag.childTags.push(tag);
80
57
  }
81
- result.template = template;
82
- const clones = processTagResult(value, result, // Function will attach result.tag
83
- template, options);
84
- return clones;
58
+ tag.ownerTag = ownerTag;
59
+ subject.template = insertBefore;
60
+ tag.buildBeforeElement(insertBefore, {
61
+ counts: { added: 0, removed: 0 },
62
+ forceElement: true, test: false,
63
+ });
85
64
  }
86
- function processWasTag(value, result, // could be tag via result.tag,
87
- template, // <template end interpolate /> (will be removed)
88
- options) {
89
- const tag = result.tag;
90
- // put the template back
91
- const lastFirstChild = result.clone || template; // result.tag.clones[0] // template.lastFirstChild
92
- // const parentNode = lastFirstChild.parentNode || template.parentNode
93
- // put the template back down
94
- lastFirstChild.parentNode.insertBefore(template, lastFirstChild);
95
- const clone = updateBetweenTemplates(value,
96
- // template // template, // this will be removed from document inside this function
97
- lastFirstChild);
98
- result.clone = clone;
99
- // cleanup old
100
- delete result.tag;
101
- /* destroy logic */
102
- const stagger = options.counts.removed;
103
- const promise = tag.destroy({ stagger }).then(animated => options.counts.removed = stagger + animated);
104
- /* end: destroy logic */
105
- return promise;
65
+ export function applyFakeTemplater(tag, ownerTag, subject) {
66
+ if (!ownerTag) {
67
+ throw new Error('no owner error');
68
+ }
69
+ const fakeTemplater = getFakeTemplater();
70
+ tag.tagSupport = new TagSupport(ownerTag.tagSupport, fakeTemplater, // the template is provided via html`` call
71
+ subject);
72
+ fakeTemplater.global.oldest = tag;
73
+ fakeTemplater.global.newest = tag;
74
+ fakeTemplater.tagSupport = tag.tagSupport;
75
+ // asking me to render will cause my parent to render
76
+ tag.ownerTag = ownerTag;
106
77
  }
107
- export function destroySimpleValue(template, resultTag) {
108
- const clone = resultTag.clone;
109
- const parent = clone.parentNode;
110
- parent.insertBefore(template, clone);
111
- parent.removeChild(clone);
112
- delete resultTag.clone;
78
+ function getFakeTemplater() {
79
+ return {
80
+ global: {
81
+ renderCount: 0,
82
+ providers: [],
83
+ context: {},
84
+ },
85
+ children: new ValueSubject([]), // no children
86
+ props: {},
87
+ isTag: true,
88
+ };
113
89
  }
114
90
  //# sourceMappingURL=processSubjectValue.function.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"processSubjectValue.function.js","sourceRoot":"","sources":["../ts/processSubjectValue.function.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processSubjectValue.function.js","sourceRoot":"","sources":["../ts/processSubjectValue.function.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,19 @@
1
- import { Clones } from "./Clones.type.js";
2
- import { Tag } from "./Tag.class.js";
3
- import { ValueSubject } from "./ValueSubject.js";
4
- import { Counts } from "./interpolateTemplate.js";
1
+ import { Clones } from './Clones.type';
2
+ import { Tag } from './Tag.class';
3
+ import { ValueSubject } from './ValueSubject';
4
+ import { Counts, Template } from './interpolateTemplate';
5
5
  export type LastArrayItem = {
6
6
  tag: Tag;
7
7
  index: number;
8
+ deleted?: boolean;
8
9
  };
9
10
  export type TagArraySubject = ValueSubject<Tag[]> & {
10
- lastArray: LastArrayItem[];
11
- template: Element;
11
+ lastArray?: LastArrayItem[];
12
+ template: Element | Text | Template;
12
13
  isChildSubject?: boolean;
13
14
  };
14
- export declare function processTagArray(result: TagArraySubject, value: Tag[], // arry of Tag classes
15
- template: Element, // <template end interpolate />
15
+ export declare function processTagArray(subject: TagArraySubject, value: Tag[], // arry of Tag classes
16
+ template: Element | Text | Template, // <template end interpolate />
16
17
  ownerTag: Tag, options: {
17
18
  counts: Counts;
18
19
  forceElement?: boolean;
@@ -1,15 +1,16 @@
1
- import { ValueSubject } from "./ValueSubject.js";
2
- import { TagSupport } from "./TagSupport.class.js";
3
- import { ArrayNoKeyError } from "./errors.js";
4
- export function processTagArray(result, value, // arry of Tag classes
1
+ import { ValueSubject } from './ValueSubject';
2
+ import { ArrayNoKeyError } from './errors';
3
+ import { destroyArrayTag } from './checkDestroyPrevious.function';
4
+ import { applyFakeTemplater } from './processSubjectValue.function';
5
+ export function processTagArray(subject, value, // arry of Tag classes
5
6
  template, // <template end interpolate />
6
7
  ownerTag, options) {
7
- const clones = [];
8
- result.lastArray = result.lastArray || []; // {tag, index}[] populated in processTagResult
9
- result.template = template;
8
+ const clones = ownerTag.clones; // []
9
+ let lastArray = subject.lastArray = subject.lastArray || [];
10
+ subject.template = template;
10
11
  let removed = 0;
11
12
  /** 🗑️ remove previous items first */
12
- result.lastArray = result.lastArray.filter((item, index) => {
13
+ lastArray = subject.lastArray = subject.lastArray.filter((item, index) => {
13
14
  const newLength = value.length - 1;
14
15
  const at = index - removed;
15
16
  const lessLength = newLength < at;
@@ -17,12 +18,10 @@ ownerTag, options) {
17
18
  const subArrayValue = subTag?.arrayValue;
18
19
  const destroyItem = lessLength || !areLikeValues(subArrayValue, item.tag.arrayValue);
19
20
  if (destroyItem) {
20
- const last = result.lastArray[index];
21
+ const last = lastArray[index];
21
22
  const tag = last.tag;
22
- tag.destroy({
23
- stagger: options.counts.removed,
24
- byParent: false
25
- });
23
+ destroyArrayTag(tag, options.counts);
24
+ last.deleted = true;
26
25
  ++removed;
27
26
  ++options.counts.removed;
28
27
  return false;
@@ -30,22 +29,16 @@ ownerTag, options) {
30
29
  return true;
31
30
  });
32
31
  // const masterBefore = template || (template as any).clone
33
- const before = template || template.clone;
32
+ const before = template || subject.value.insertBefore || template.clone;
34
33
  value.forEach((subTag, index) => {
35
- const previous = result.lastArray[index];
36
- const previousSupport = subTag.tagSupport || previous?.tag.tagSupport;
37
- subTag.tagSupport = previousSupport || new TagSupport({}, new ValueSubject([]));
34
+ const previous = lastArray[index];
35
+ const previousSupport = previous?.tag.tagSupport;
36
+ const fakeSubject = new ValueSubject({});
37
+ applyFakeTemplater(subTag, ownerTag, fakeSubject);
38
38
  if (previousSupport) {
39
- previousSupport.newest = subTag;
39
+ subTag.tagSupport.templater.global = previousSupport.templater.global;
40
+ previousSupport.templater.global.newest = subTag;
40
41
  }
41
- else {
42
- subTag.tagSupport.mutatingRender = () => {
43
- ownerTag.tagSupport.render(); // call owner for needed updates
44
- return subTag;
45
- };
46
- ownerTag.children.push(subTag);
47
- }
48
- subTag.ownerTag = ownerTag;
49
42
  // check for html``.key()
50
43
  const keyNotSet = subTag.arrayValue;
51
44
  if (keyNotSet?.isArrayValueNeverSet) {
@@ -59,33 +52,39 @@ ownerTag, options) {
59
52
  const err = new ArrayNoKeyError(message, details);
60
53
  throw err;
61
54
  }
62
- const couldBeSame = result.lastArray.length > index;
55
+ const couldBeSame = lastArray.length > index;
63
56
  if (couldBeSame) {
64
57
  const isSame = areLikeValues(previous.tag.arrayValue, subTag.arrayValue);
65
58
  if (isSame) {
66
59
  subTag.tagSupport = subTag.tagSupport || previous.tag.tagSupport;
67
- previous.tag.updateByTag(subTag);
60
+ const oldest = previous.tag.tagSupport.templater.global.oldest;
61
+ oldest.updateByTag(subTag);
68
62
  return [];
69
63
  }
70
- return [];
64
+ processAddTagArrayItem(before, subTag, index, options, lastArray, true);
65
+ throw new Error('item should be back');
66
+ // return [] // removed: item should have been previously deleted and will be added back
71
67
  }
72
- const nextClones = processAddTagArrayItem(before, subTag, result, index, options);
73
- clones.push(...nextClones);
68
+ processAddTagArrayItem(before, subTag, index, options, lastArray, true);
69
+ ownerTag.childTags.push(subTag);
74
70
  });
75
71
  return clones;
76
72
  }
77
- function processAddTagArrayItem(before, subTag, result, index, options) {
78
- // Added to previous array
79
- result.lastArray.push({
73
+ function processAddTagArrayItem(before, subTag, index, options, lastArray, test) {
74
+ const lastValue = {
80
75
  tag: subTag, index
81
- });
76
+ };
77
+ // Added to previous array
78
+ lastArray.push(lastValue);
82
79
  const counts = {
83
80
  added: options.counts.added + index,
84
81
  removed: options.counts.removed,
85
82
  };
86
83
  const lastFirstChild = before; // tag.clones[0] // insertBefore.lastFirstChild
87
- const nextClones = subTag.buildBeforeElement(lastFirstChild, { counts, forceElement: options.forceElement });
88
- return nextClones;
84
+ if (!lastFirstChild.parentNode) {
85
+ throw new Error('issue adding array item');
86
+ }
87
+ subTag.buildBeforeElement(lastFirstChild, { counts, forceElement: options.forceElement, test });
89
88
  }
90
89
  /** compare two values. If both values are arrays then the items will be compared */
91
90
  function areLikeValues(valueA, valueB) {
@@ -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,11 +1,10 @@
1
- import { Tag } from "./Tag.class.js";
2
- import { Clones } from "./Clones.type.js";
3
- import { Counts } from "./interpolateTemplate.js";
4
- import { TagArraySubject } from "./processTagArray.js";
5
- import { TagSubject } from "./Tag.utils.js";
6
- export declare function processTagResult(tag: Tag, result: TagArraySubject | TagSubject | Function, // used for recording past and current value
7
- insertBefore: Element, // <template end interpolate />
1
+ import { Tag } from './Tag.class';
2
+ import { Counts, Template } from './interpolateTemplate';
3
+ import { TagArraySubject } from './processTagArray';
4
+ import { TagSubject } from './Tag.utils';
5
+ export declare function processTagResult(tag: Tag, subject: TagArraySubject | TagSubject | Function, // used for recording past and current value
6
+ insertBefore: Element | Text | Template, // <template end interpolate />
8
7
  { counts, forceElement, }: {
9
8
  counts: Counts;
10
9
  forceElement?: boolean;
11
- }): Clones;
10
+ }): void;
@@ -1,27 +1,50 @@
1
- export function processTagResult(tag, result, // used for recording past and current value
1
+ import { destroyTagMemory } from './destroyTag.function';
2
+ export function processTagResult(tag, subject, // used for recording past and current value
2
3
  insertBefore, // <template end interpolate />
3
4
  { counts, forceElement, }) {
5
+ if (!insertBefore.parentNode) {
6
+ throw new Error('before here processTagResult');
7
+ }
4
8
  // *if appears we already have seen
5
- const subjectTag = result;
6
- const rTag = subjectTag.tag;
7
- if (rTag && !forceElement) {
8
- // are we just updating an if we already had?
9
- if (rTag.isLikeTag(tag)) {
10
- // components
11
- if (result instanceof Function) {
12
- const newTag = result(rTag.tagSupport);
13
- rTag.updateByTag(newTag);
14
- return [];
9
+ const subjectTag = subject;
10
+ const existingTag = subjectTag.tag;
11
+ const previousTag = existingTag?.tagSupport.templater.global.oldest || undefined; // || tag.tagSupport.oldest // subjectTag.tag
12
+ const justUpdate = previousTag; // && !forceElement
13
+ if (previousTag) {
14
+ if (justUpdate) {
15
+ const areLike = previousTag.isLikeTag(tag);
16
+ // are we just updating an if we already had?
17
+ if (areLike) {
18
+ // components
19
+ if (subject instanceof Function) {
20
+ const newTag = subject(previousTag.tagSupport);
21
+ previousTag.updateByTag(newTag);
22
+ if (!newTag.tagSupport.templater.global.oldest) {
23
+ throw new Error('maybe 0');
24
+ }
25
+ subjectTag.tag = newTag;
26
+ if (!newTag.hasLiveElements) {
27
+ throw new Error('44444 - 2');
28
+ }
29
+ return;
30
+ }
31
+ previousTag.updateByTag(tag);
32
+ if (!tag.tagSupport.templater.global.oldest) {
33
+ throw new Error('maybe 1');
34
+ }
35
+ subjectTag.tag = tag;
36
+ if (!tag.hasLiveElements) {
37
+ throw new Error('44444 - 3');
38
+ }
39
+ return;
15
40
  }
16
- rTag.updateByTag(tag);
17
- return []; // no clones created in element already on stage
41
+ destroyTagMemory(previousTag, subject);
42
+ throw new Error('585 - think we never get here');
18
43
  }
19
44
  }
20
- const clones = tag.buildBeforeElement(insertBefore, {
45
+ tag.buildBeforeElement(insertBefore, {
21
46
  counts,
22
- forceElement,
47
+ forceElement, test: false,
23
48
  });
24
- subjectTag.tag = tag; // let reprocessing know we saw this previously as an if
25
- return clones;
26
49
  }
27
50
  //# 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,MAA+C,EAAE,4CAA4C;AAC7F,YAAqB,EAAE,+BAA+B;AACtD,EACE,MAAM,EAAE,YAAY,GAIrB;IAED,mCAAmC;IACnC,MAAM,UAAU,GAAG,MAAoB,CAAA;IACvC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAA;IAC3B,IAAG,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACzB,6CAA6C;QAC7C,IAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,aAAa;YACb,IAAG,MAAM,YAAY,QAAQ,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;gBACtC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;gBACxB,OAAO,EAAE,CAAA;YACX,CAAC;YAED,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YAErB,OAAO,EAAE,CAAA,CAAC,gDAAgD;QAC5D,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,CAAC,kBAAkB,CAAC,YAAY,EAAE;QAClD,MAAM;QACN,YAAY;KACb,CAAC,CAAA;IACF,UAAU,CAAC,GAAG,GAAG,GAAG,CAAA,CAAC,wDAAwD;IAE7E,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"processTagResult.function.js","sourceRoot":"","sources":["../ts/processTagResult.function.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,MAAM,UAAU,gBAAgB,CAC9B,GAAQ,EACR,OAAgD,EAAE,4CAA4C;AAC9F,YAAuC,EAAE,+BAA+B;AACxE,EACE,MAAM,EAAE,YAAY,GAIrB;IAED,IAAG,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;IACjD,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,EAAE,CAAC;QACf,IAAG,UAAU,EAAE,CAAC;YACd,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;YAE1C,6CAA6C;YAC7C,IAAG,OAAO,EAAE,CAAC;gBACX,aAAa;gBACb,IAAG,OAAO,YAAY,QAAQ,EAAE,CAAC;oBAC/B,MAAM,MAAM,GAAQ,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;oBACnD,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;oBAC/B,IAAG,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;wBAC9C,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAA;oBAC5B,CAAC;oBACD,UAAU,CAAC,GAAG,GAAG,MAAM,CAAA;oBAEvB,IAAG,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;wBAC3B,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAA;oBAC9B,CAAC;oBAED,OAAM;gBACR,CAAC;gBAED,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;gBAC5B,IAAG,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;oBAC3C,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAA;gBAC5B,CAAC;gBAED,UAAU,CAAC,GAAG,GAAG,GAAG,CAAA;gBAEpB,IAAG,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;oBACxB,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAA;gBAC9B,CAAC;gBAED,OAAM;YACR,CAAC;YAED,gBAAgB,CAAC,WAAW,EAAE,OAAqB,CAAC,CAAA;YACpD,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAClD,CAAC;IACH,CAAC;IAED,GAAG,CAAC,kBAAkB,CAAC,YAAY,EAAE;QACnC,MAAM;QACN,YAAY,EAAE,IAAI,EAAE,KAAK;KAC1B,CAAC,CAAA;AACJ,CAAC"}
@@ -1,2 +1,2 @@
1
- import { Tag } from "./Tag.class.js";
1
+ import { Tag } from './Tag.class';
2
2
  export declare function providersChangeCheck(tag: Tag): void;