taggedjs 2.4.32 → 2.5.5

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 (255) hide show
  1. package/bundle.js +3367 -2879
  2. package/bundle.js.map +1 -1
  3. package/js/Props.d.ts +1 -1
  4. package/js/Tag.class.d.ts +1 -1
  5. package/js/TagSupport.class.d.ts +1 -1
  6. package/js/TagSupport.class.js +26 -19
  7. package/js/TagSupport.class.js.map +1 -1
  8. package/js/TemplaterResult.class.d.ts +14 -12
  9. package/js/TemplaterResult.class.js +12 -58
  10. package/js/TemplaterResult.class.js.map +1 -1
  11. package/js/afterInterpolateElement.function.d.ts +2 -2
  12. package/js/alterProps.function.d.ts +3 -4
  13. package/js/alterProps.function.js +39 -16
  14. package/js/alterProps.function.js.map +1 -1
  15. package/js/checkDestroyPrevious.function.d.ts +4 -4
  16. package/js/checkDestroyPrevious.function.js +7 -5
  17. package/js/checkDestroyPrevious.function.js.map +1 -1
  18. package/js/cloneValueArray.function.d.ts +1 -1
  19. package/js/deepFunctions.js +1 -1
  20. package/js/deepFunctions.js.map +1 -1
  21. package/js/destroy.support.d.ts +1 -1
  22. package/js/destroyTag.function.d.ts +1 -1
  23. package/js/destroyTag.function.js +0 -2
  24. package/js/destroyTag.function.js.map +1 -1
  25. package/js/hasTagSupportChanged.function.d.ts +1 -1
  26. package/js/index.d.ts +18 -10
  27. package/js/index.js +17 -15
  28. package/js/index.js.map +1 -1
  29. package/js/insertAfter.function.d.ts +1 -1
  30. package/js/interpolations/Clones.type.d.ts +3 -0
  31. package/js/interpolations/Clones.type.js +2 -0
  32. package/js/interpolations/Clones.type.js.map +1 -0
  33. package/js/interpolations/ElementTargetEvent.interface.d.ts +6 -0
  34. package/js/interpolations/ElementTargetEvent.interface.js +2 -0
  35. package/js/interpolations/ElementTargetEvent.interface.js.map +1 -0
  36. package/js/interpolations/afterInterpolateElement.function.d.ts +4 -0
  37. package/js/interpolations/afterInterpolateElement.function.js +12 -0
  38. package/js/interpolations/afterInterpolateElement.function.js.map +1 -0
  39. package/js/interpolations/bindSubjectCallback.function.d.ts +1 -1
  40. package/js/interpolations/bindSubjectCallback.function.js +11 -7
  41. package/js/interpolations/bindSubjectCallback.function.js.map +1 -1
  42. package/js/interpolations/interpolateAttributes.d.ts +2 -2
  43. package/js/interpolations/interpolateAttributes.js +5 -0
  44. package/js/interpolations/interpolateAttributes.js.map +1 -1
  45. package/js/interpolations/interpolateContentTemplates.d.ts +2 -2
  46. package/js/interpolations/interpolateElement.d.ts +2 -2
  47. package/js/interpolations/interpolateElement.js +1 -1
  48. package/js/interpolations/interpolateElement.js.map +1 -1
  49. package/js/interpolations/interpolateTemplate.d.ts +4 -4
  50. package/js/interpolations/interpolateTemplate.js +19 -4
  51. package/js/interpolations/interpolateTemplate.js.map +1 -1
  52. package/js/interpolations/processAttribute.function.d.ts +2 -2
  53. package/js/interpolations/scanTextAreaValue.function.d.ts +2 -2
  54. package/js/isInstance.d.ts +2 -2
  55. package/js/isInstance.js +2 -1
  56. package/js/isInstance.js.map +1 -1
  57. package/js/isLikeTags.function.d.ts +2 -1
  58. package/js/isLikeTags.function.js +3 -0
  59. package/js/isLikeTags.function.js.map +1 -1
  60. package/js/processNewValue.function.d.ts +1 -1
  61. package/js/processNewValue.function.js +1 -1
  62. package/js/processNewValue.function.js.map +1 -1
  63. package/js/processSubjectComponent.function.d.ts +1 -1
  64. package/js/processSubjectComponent.function.js +2 -16
  65. package/js/processSubjectComponent.function.js.map +1 -1
  66. package/js/processSubjectValue.function.d.ts +2 -2
  67. package/js/processSubjectValue.function.js +2 -2
  68. package/js/processSubjectValue.function.js.map +1 -1
  69. package/js/processTag.function.d.ts +1 -1
  70. package/js/processTag.function.js +1 -1
  71. package/js/processTag.function.js.map +1 -1
  72. package/js/processTagArray.d.ts +1 -1
  73. package/js/processTagArray.js +2 -2
  74. package/js/processTagArray.js.map +1 -1
  75. package/js/processTagResult.function.d.ts +2 -2
  76. package/js/render.d.ts +1 -1
  77. package/js/renderExistingTag.function.d.ts +1 -1
  78. package/js/renderExistingTag.function.js +4 -7
  79. package/js/renderExistingTag.function.js.map +1 -1
  80. package/js/renderSubjectComponent.function.d.ts +3 -0
  81. package/js/renderSubjectComponent.function.js +14 -0
  82. package/js/renderSubjectComponent.function.js.map +1 -0
  83. package/js/renderTagOnly.function.d.ts +4 -0
  84. package/js/renderTagOnly.function.js +39 -0
  85. package/js/renderTagOnly.function.js.map +1 -0
  86. package/js/renderTagSupport.function.d.ts +3 -2
  87. package/js/renderTagSupport.function.js +7 -9
  88. package/js/renderTagSupport.function.js.map +1 -1
  89. package/js/renderWithSupport.function.d.ts +5 -0
  90. package/js/renderWithSupport.function.js +31 -0
  91. package/js/renderWithSupport.function.js.map +1 -0
  92. package/js/state/callbackMaker.function.d.ts +3 -2
  93. package/js/state/callbackMaker.function.js +37 -18
  94. package/js/state/callbackMaker.function.js.map +1 -1
  95. package/js/state/children.d.ts +1 -0
  96. package/js/state/children.js +14 -0
  97. package/js/state/children.js.map +1 -0
  98. package/js/state/index.d.ts +2 -2
  99. package/js/state/index.js +1 -1
  100. package/js/state/index.js.map +1 -1
  101. package/js/state/letState.function.js.map +1 -1
  102. package/js/state/onDestroy.js +8 -6
  103. package/js/state/onDestroy.js.map +1 -1
  104. package/js/state/onInit.js +2 -2
  105. package/js/state/onInit.js.map +1 -1
  106. package/js/state/provider.utils.d.ts +1 -1
  107. package/js/state/provider.utils.js +7 -7
  108. package/js/state/provider.utils.js.map +1 -1
  109. package/js/state/providers.d.ts +4 -2
  110. package/js/state/providers.js +56 -40
  111. package/js/state/providers.js.map +1 -1
  112. package/js/state/setProp.function.js.map +1 -1
  113. package/js/state/setUse.function.d.ts +9 -8
  114. package/js/state/setUse.function.js.map +1 -1
  115. package/js/state/state.function.js +17 -0
  116. package/js/state/state.function.js.map +1 -1
  117. package/js/state/state.utils.d.ts +5 -6
  118. package/js/state/state.utils.js +44 -27
  119. package/js/state/state.utils.js.map +1 -1
  120. package/js/state/syncStates.function.d.ts +2 -0
  121. package/js/state/syncStates.function.js +11 -0
  122. package/js/state/syncStates.function.js.map +1 -0
  123. package/js/state/watch.function.d.ts +20 -3
  124. package/js/state/watch.function.js +106 -10
  125. package/js/state/watch.function.js.map +1 -1
  126. package/js/subject/Subject.class.d.ts +10 -2
  127. package/js/subject/Subject.class.js +31 -54
  128. package/js/subject/Subject.class.js.map +1 -1
  129. package/js/subject/Subject.utils.d.ts +6 -3
  130. package/js/subject/Subject.utils.js +51 -3
  131. package/js/subject/Subject.utils.js.map +1 -1
  132. package/js/subject/ValueSubject.d.ts +2 -2
  133. package/js/subject/combineLatest.function.js +10 -2
  134. package/js/subject/combineLatest.function.js.map +1 -1
  135. package/js/subject/subject.cancel.d.ts +2 -0
  136. package/js/subject/subject.cancel.js +3 -0
  137. package/js/subject/subject.cancel.js.map +1 -0
  138. package/js/subject/will.functions.d.ts +1 -1
  139. package/js/subject.types.d.ts +2 -2
  140. package/js/tag/Tag.class.d.ts +43 -0
  141. package/js/tag/Tag.class.js +27 -0
  142. package/js/tag/Tag.class.js.map +1 -0
  143. package/js/tag/TagSupport.class.d.ts +58 -0
  144. package/js/tag/TagSupport.class.js +321 -0
  145. package/js/tag/TagSupport.class.js.map +1 -0
  146. package/js/tag/checkDestroyPrevious.function.d.ts +8 -0
  147. package/js/tag/checkDestroyPrevious.function.js +83 -0
  148. package/js/tag/checkDestroyPrevious.function.js.map +1 -0
  149. package/js/tag/cloneValueArray.function.d.ts +2 -0
  150. package/js/tag/cloneValueArray.function.js +19 -0
  151. package/js/tag/cloneValueArray.function.js.map +1 -0
  152. package/js/tag/destroy.support.d.ts +6 -0
  153. package/js/tag/destroy.support.js +10 -0
  154. package/js/tag/destroy.support.js.map +1 -0
  155. package/js/tag/destroyTag.function.d.ts +3 -0
  156. package/js/tag/destroyTag.function.js +12 -0
  157. package/js/tag/destroyTag.function.js.map +1 -0
  158. package/js/tag/elementDestroyCheck.function.d.ts +3 -0
  159. package/js/tag/elementDestroyCheck.function.js +17 -0
  160. package/js/tag/elementDestroyCheck.function.js.map +1 -0
  161. package/js/tag/getSupportInCycle.function.d.ts +1 -0
  162. package/js/tag/getSupportInCycle.function.js +5 -0
  163. package/js/tag/getSupportInCycle.function.js.map +1 -0
  164. package/js/tag/hasPropChanges.function.d.ts +9 -0
  165. package/js/tag/hasPropChanges.function.js +80 -0
  166. package/js/tag/hasPropChanges.function.js.map +1 -0
  167. package/js/tag/hasTagSupportChanged.function.d.ts +4 -0
  168. package/js/tag/hasTagSupportChanged.function.js +23 -0
  169. package/js/tag/hasTagSupportChanged.function.js.map +1 -0
  170. package/js/tag/html.d.ts +4 -0
  171. package/js/tag/html.js +5 -0
  172. package/js/tag/html.js.map +1 -0
  173. package/js/tag/isLikeTags.function.d.ts +5 -0
  174. package/js/tag/isLikeTags.function.js +42 -0
  175. package/js/tag/isLikeTags.function.js.map +1 -0
  176. package/js/tag/render/renderExistingTag.function.d.ts +7 -0
  177. package/js/tag/render/renderExistingTag.function.js +45 -0
  178. package/js/tag/render/renderExistingTag.function.js.map +1 -0
  179. package/js/tag/render/renderSubjectComponent.function.d.ts +3 -0
  180. package/js/tag/render/renderSubjectComponent.function.js +14 -0
  181. package/js/tag/render/renderSubjectComponent.function.js.map +1 -0
  182. package/js/tag/render/renderTagOnly.function.d.ts +3 -0
  183. package/js/tag/render/renderTagOnly.function.js +41 -0
  184. package/js/tag/render/renderTagOnly.function.js.map +1 -0
  185. package/js/tag/render/renderTagSupport.function.d.ts +4 -0
  186. package/js/tag/render/renderTagSupport.function.js +37 -0
  187. package/js/tag/render/renderTagSupport.function.js.map +1 -0
  188. package/js/tag/render/renderWithSupport.function.d.ts +5 -0
  189. package/js/tag/render/renderWithSupport.function.js +31 -0
  190. package/js/tag/render/renderWithSupport.function.js.map +1 -0
  191. package/js/tag/setTagPlaceholder.function.d.ts +4 -0
  192. package/js/tag/setTagPlaceholder.function.js +12 -0
  193. package/js/tag/setTagPlaceholder.function.js.map +1 -0
  194. package/js/tag/tag.d.ts +26 -0
  195. package/js/tag/tag.js +121 -0
  196. package/js/tag/tag.js.map +1 -0
  197. package/js/tag/tagElement.d.ts +9 -0
  198. package/js/tag/tagElement.js +58 -0
  199. package/js/tag/tagElement.js.map +1 -0
  200. package/js/tag/tagRunner.d.ts +5 -0
  201. package/js/tag/tagRunner.js +28 -0
  202. package/js/tag/tagRunner.js.map +1 -0
  203. package/js/tag/update/processNewValue.function.d.ts +3 -0
  204. package/js/tag/update/processNewValue.function.js +42 -0
  205. package/js/tag/update/processNewValue.function.js.map +1 -0
  206. package/js/tag/update/processRegularValue.function.d.ts +5 -0
  207. package/js/tag/update/processRegularValue.function.js +15 -0
  208. package/js/tag/update/processRegularValue.function.js.map +1 -0
  209. package/js/tag/update/processSubjectComponent.function.d.ts +9 -0
  210. package/js/tag/update/processSubjectComponent.function.js +35 -0
  211. package/js/tag/update/processSubjectComponent.function.js.map +1 -0
  212. package/js/tag/update/processSubjectValue.function.d.ts +27 -0
  213. package/js/tag/update/processSubjectValue.function.js +55 -0
  214. package/js/tag/update/processSubjectValue.function.js.map +1 -0
  215. package/js/tag/update/processTag.function.d.ts +11 -0
  216. package/js/tag/update/processTag.function.js +46 -0
  217. package/js/tag/update/processTag.function.js.map +1 -0
  218. package/js/tag/update/processTagArray.d.ts +22 -0
  219. package/js/tag/update/processTagArray.js +120 -0
  220. package/js/tag/update/processTagArray.js.map +1 -0
  221. package/js/tag/update/processTagResult.function.d.ts +11 -0
  222. package/js/tag/update/processTagResult.function.js +30 -0
  223. package/js/tag/update/processTagResult.function.js.map +1 -0
  224. package/js/tag/update/updateContextItem.function.d.ts +3 -0
  225. package/js/tag/update/updateContextItem.function.js +44 -0
  226. package/js/tag/update/updateContextItem.function.js.map +1 -0
  227. package/js/tag/update/updateExistingTagComponent.function.d.ts +5 -0
  228. package/js/tag/update/updateExistingTagComponent.function.js +116 -0
  229. package/js/tag/update/updateExistingTagComponent.function.js.map +1 -0
  230. package/js/tag/update/updateExistingValue.function.d.ts +4 -0
  231. package/js/tag/update/updateExistingValue.function.js +135 -0
  232. package/js/tag/update/updateExistingValue.function.js.map +1 -0
  233. package/js/tag/updates/processNewValue.function.d.ts +3 -0
  234. package/js/tag/updates/processNewValue.function.js +43 -0
  235. package/js/tag/updates/processNewValue.function.js.map +1 -0
  236. package/js/tag.d.ts +8 -1
  237. package/js/tag.js +3 -2
  238. package/js/tag.js.map +1 -1
  239. package/js/tagElement.d.ts +2 -2
  240. package/js/tagElement.js +7 -1
  241. package/js/tagElement.js.map +1 -1
  242. package/js/tagRunner.d.ts +2 -3
  243. package/js/tagRunner.js +6 -3
  244. package/js/tagRunner.js.map +1 -1
  245. package/js/updateBeforeTemplate.function.d.ts +1 -1
  246. package/js/updateContextItem.function.d.ts +1 -1
  247. package/js/updateContextItem.function.js +2 -3
  248. package/js/updateContextItem.function.js.map +1 -1
  249. package/js/updateExistingTagComponent.function.d.ts +2 -2
  250. package/js/updateExistingTagComponent.function.js +3 -5
  251. package/js/updateExistingTagComponent.function.js.map +1 -1
  252. package/js/updateExistingValue.function.d.ts +3 -3
  253. package/js/updateExistingValue.function.js +7 -10
  254. package/js/updateExistingValue.function.js.map +1 -1
  255. package/package.json +1 -1
@@ -1,3 +1,6 @@
1
+ import { isSubjectInstance } from "../isInstance";
2
+ import { combineLatest } from "./combineLatest.function";
3
+ import { getSubscription, runPipedMethods } from "./subject.utils";
1
4
  export class Subject {
2
5
  value;
3
6
  onSubscription;
@@ -25,7 +28,9 @@ export class Subject {
25
28
  return subscribeWith(callback);
26
29
  }
27
30
  this.subscribers.push(subscription);
28
- SubjectClass.globalSubs.push(subscription); // 🔬 testing
31
+ // Subject.globalSubs.push(subscription) // 🔬 testing
32
+ const count = Subject.globalSubCount$.value;
33
+ Subject.globalSubCount$.set(count + 1); // 🔬 testing
29
34
  if (this.onSubscription) {
30
35
  this.onSubscription(subscription);
31
36
  }
@@ -39,6 +44,7 @@ export class Subject {
39
44
  sub.callback(value, sub);
40
45
  });
41
46
  }
47
+ // next() is available for rxjs compatibility
42
48
  next = this.set;
43
49
  toPromise() {
44
50
  return new Promise((res, rej) => {
@@ -48,12 +54,13 @@ export class Subject {
48
54
  });
49
55
  });
50
56
  }
51
- // like toPromise but faster
57
+ /** like toPromise but faster */
52
58
  toCallback(callback) {
53
59
  this.subscribe((x, subscription) => {
54
60
  subscription.unsubscribe();
55
61
  callback(x);
56
62
  });
63
+ return this;
57
64
  }
58
65
  pipe(...operations) {
59
66
  const subject = new Subject();
@@ -61,59 +68,29 @@ export class Subject {
61
68
  subject.subscribeWith = (x) => this.subscribe(x);
62
69
  return subject;
63
70
  }
64
- }
65
- function removeSubFromArray(subscribers, callback) {
66
- const index = subscribers.findIndex(sub => sub.callback === callback);
67
- if (index !== -1) {
68
- subscribers.splice(index, 1);
71
+ static all(args) {
72
+ const switched = args.map(arg => {
73
+ if (isSubjectInstance(arg))
74
+ return arg;
75
+ // Call the callback immediately with the current value
76
+ const x = new Subject(arg, subscription => {
77
+ subscription.next(arg);
78
+ return subscription;
79
+ });
80
+ return x;
81
+ });
82
+ return combineLatest(switched);
69
83
  }
84
+ static globalSubCount$ = new Subject(0); // for ease of debugging
70
85
  }
71
- const SubjectClass = Subject;
72
- SubjectClass.globalSubs = []; // 🔬 for testing
73
- SubjectClass.globalSubCount$ = new Subject(); // for ease of debugging
74
- SubjectClass.globalSubCount$.set(0);
75
- function getSubscription(subject, callback) {
76
- const countSubject = SubjectClass.globalSubCount$;
77
- SubjectClass.globalSubCount$.set(countSubject.value + 1);
78
- const subscription = () => {
79
- subscription.unsubscribe();
80
- };
81
- subscription.callback = callback;
82
- subscription.subscriptions = [];
83
- // Return a function to unsubscribe from the BehaviorSubject
84
- subscription.unsubscribe = () => {
85
- removeSubFromArray(subject.subscribers, callback); // each will be called when update comes in
86
- removeSubFromArray(SubjectClass.globalSubs, callback); // 🔬 testing
87
- SubjectClass.globalSubCount$.set(countSubject.value - 1);
88
- // any double unsubscribes will be ignored
89
- subscription.unsubscribe = () => subscription;
90
- // unsubscribe from any combined subjects
91
- subscription.subscriptions.forEach(subscription => subscription.unsubscribe());
92
- return subscription;
93
- };
94
- subscription.add = (sub) => {
95
- subscription.subscriptions.push(sub);
96
- return subscription;
97
- };
98
- subscription.next = (value) => {
99
- callback(value, subscription);
100
- };
101
- return subscription;
102
- }
103
- function runPipedMethods(value, methods, onComplete) {
104
- const cloneMethods = [...methods];
105
- const firstMethod = cloneMethods.shift();
106
- const next = (newValue) => {
107
- if (cloneMethods.length) {
108
- return runPipedMethods(newValue, cloneMethods, onComplete);
109
- }
110
- onComplete(newValue);
111
- // return newValue = next
112
- };
113
- let handler = next;
114
- const setHandler = (x) => handler = x;
115
- const pipeUtils = { setHandler, next };
116
- const methodResponse = firstMethod(value, pipeUtils);
117
- handler(methodResponse);
86
+ /*
87
+ export const Subject = (<T>(value?: T, onSubscription?: OnSubscription<T>) => {
88
+ return new Subject(value, onSubscription)
89
+ }) as (<T>(value?: T, onSubscription?: OnSubscription<T>) => Subject<T>) & {
90
+ globalSubCount$: Subject<number>
91
+ // globalSubs: Subscription<any>[]
92
+ all: <T>(...args: (T | Subject<T>)[]) => Subject<T>[]
118
93
  }
94
+ */
95
+ // Subject.globalSubs = [] // 🔬 for testing
119
96
  //# sourceMappingURL=Subject.class.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Subject.class.js","sourceRoot":"","sources":["../../ts/subject/Subject.class.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Subject.class.js","sourceRoot":"","sources":["../../ts/subject/Subject.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAkE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAIlI,MAAM,OAAO,OAAO;IAQT;IACA;IART,OAAO,GAAsC,EAAE,CAAA;IAC/C,SAAS,GAAG,IAAI,CAAA;IAChB,WAAW,GAAsB,EAAE,CAAA;IACnC,aAAa,CAA+C;IAC5D,+BAA+B;IAE/B,YACS,KAAS,EACT,cAAkC;QADlC,UAAK,GAAL,KAAK,CAAI;QACT,mBAAc,GAAd,cAAc,CAAoB;IACxC,CAAC;IAEJ,SAAS,CAAC,QAA8B;QACtC,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QAEpD,wBAAwB;QACxB,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAA;QACxC,IAAG,aAAa,EAAE,CAAC;YACjB,oBAAoB;YACpB,IAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACvB,MAAM,WAAW,GAAG,QAAQ,CAAA;gBAC5B,QAAQ,GAAG,CACT,KAAU,EAEV,EAAE;oBACF,eAAe,CACb,KAAK,EACL,IAAI,CAAC,OAAO,EACZ,SAAS,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,YAAY,CAAC,CAClD,CAAA;gBACH,CAAC,CAAA;YACH,CAAC;YAED,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAA;QAChC,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACnC,sDAAsD;QACtD,MAAM,KAAK,GAAG,OAAO,CAAC,eAAe,CAAC,KAAe,CAAA;QACrD,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA,CAAC,aAAa;QAEpD,IAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAA;QACnC,CAAC;QAED,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,GAAG,CAAC,KAAW;QACb,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAElB,4CAA4C;QAC5C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC7B,sCAAsC;YACtC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QAC1B,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,6CAA6C;IAC7C,IAAI,GAAG,IAAI,CAAC,GAAG,CAAA;IAEf,SAAS;QACP,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC9B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE;gBACjC,YAAY,CAAC,WAAW,EAAE,CAAA;gBAC1B,GAAG,CAAC,CAAC,CAAC,CAAA;YACR,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,gCAAgC;IAChC,UAAU,CAAC,QAAuB;QAChC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE;YACjC,YAAY,CAAC,WAAW,EAAE,CAAA;YAC1B,QAAQ,CAAC,CAAC,CAAC,CAAA;QACb,CAAC,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAsED,IAAI,CAAC,GAAG,UAA6C;QACnD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAK,CAAA;QAChC,OAAO,CAAC,OAAO,GAAG,UAAU,CAAA;QAC5B,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAQ,CAAC,CAAA;QACvD,OAAO,OAAO,CAAA;IAChB,CAAC;IAQD,MAAM,CAAC,GAAG,CAAC,IAAW;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC9B,IAAG,iBAAiB,CAAC,GAAG,CAAC;gBAAE,OAAO,GAAG,CAAC;YAEtC,uDAAuD;YACvD,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE;gBACxC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBACtB,OAAO,YAAY,CAAA;YACrB,CAAC,CAAC,CAAA;YAEF,OAAO,CAAC,CAAA;QACV,CAAC,CAAC,CAAA;QAEF,OAAO,aAAa,CAAC,QAA0B,CAAQ,CAAA;IACzD,CAAC;IAED,MAAM,CAAC,eAAe,GAAG,IAAI,OAAO,CAAS,CAAC,CAAC,CAAA,CAAC,wBAAwB;;AAG1E;;;;;;;;EAQE;AAEF,4CAA4C"}
@@ -1,5 +1,6 @@
1
+ import { Subject } from "./Subject.class";
1
2
  export type Resolve<T> = (x: T) => any;
2
- export type Subscription<T> = (() => void) & {
3
+ export type Subscription<T> = ((arg: T) => void) & {
3
4
  callback: SubjectSubscriber<T>;
4
5
  unsubscribe: () => Subscription<T>;
5
6
  add: (sub: Subscription<T>) => Subscription<T>;
@@ -7,10 +8,10 @@ export type Subscription<T> = (() => void) & {
7
8
  subscriptions: Subscription<T>[];
8
9
  };
9
10
  export type SubjectSubscriber<T> = (value: T, subscription: Subscription<T>) => unknown;
10
- export interface SubjectLike<T> {
11
+ export type SubjectLike<T> = {
11
12
  subscribe?: (callback: SubjectSubscriber<T>) => any;
12
13
  isSubject?: boolean;
13
- }
14
+ };
14
15
  export type Closer<T> = {
15
16
  createCallback: (callback: (result: T) => any) => any;
16
17
  subscribe: (subject: SubjectLike<T>) => any;
@@ -27,3 +28,5 @@ export type PipeUtils<H> = {
27
28
  setHandler: setHandler<H>;
28
29
  next: (newValue: any) => any;
29
30
  };
31
+ export declare function getSubscription<T>(subject: Subject<T>, callback: SubjectSubscriber<any>): Subscription<any>;
32
+ export declare function runPipedMethods(value: any, methods: OperatorFunction<any, any, any>[], onComplete: (lastValue: any) => any): void;
@@ -1,4 +1,52 @@
1
- class CANCEL {
1
+ import { Subject } from "./Subject.class";
2
+ function removeSubFromArray(subscribers, callback) {
3
+ const index = subscribers.findIndex(sub => sub.callback === callback);
4
+ if (index !== -1) {
5
+ subscribers.splice(index, 1);
6
+ }
2
7
  }
3
- export {};
4
- //# sourceMappingURL=Subject.utils.js.map
8
+ export function getSubscription(subject, callback) {
9
+ const countSubject = Subject.globalSubCount$;
10
+ Subject.globalSubCount$.set(countSubject.value + 1);
11
+ const subscription = () => {
12
+ subscription.unsubscribe();
13
+ };
14
+ subscription.callback = callback;
15
+ subscription.subscriptions = [];
16
+ // Return a function to unsubscribe from the BehaviorSubject
17
+ subscription.unsubscribe = () => {
18
+ removeSubFromArray(subject.subscribers, callback); // each will be called when update comes in
19
+ // removeSubFromArray(Subject.globalSubs, callback) // 🔬 testing
20
+ Subject.globalSubCount$.set(countSubject.value - 1);
21
+ // any double unsubscribes will be ignored
22
+ subscription.unsubscribe = () => subscription;
23
+ // unsubscribe from any combined subjects
24
+ subscription.subscriptions.forEach(subscription => subscription.unsubscribe());
25
+ return subscription;
26
+ };
27
+ subscription.add = (sub) => {
28
+ subscription.subscriptions.push(sub);
29
+ return subscription;
30
+ };
31
+ subscription.next = (value) => {
32
+ callback(value, subscription);
33
+ };
34
+ return subscription;
35
+ }
36
+ export function runPipedMethods(value, methods, onComplete) {
37
+ const cloneMethods = [...methods];
38
+ const firstMethod = cloneMethods.shift();
39
+ const next = (newValue) => {
40
+ if (cloneMethods.length) {
41
+ return runPipedMethods(newValue, cloneMethods, onComplete);
42
+ }
43
+ onComplete(newValue);
44
+ // return newValue = next
45
+ };
46
+ let handler = next;
47
+ const setHandler = (x) => handler = x;
48
+ const pipeUtils = { setHandler, next };
49
+ const methodResponse = firstMethod(value, pipeUtils);
50
+ handler(methodResponse);
51
+ }
52
+ //# sourceMappingURL=subject.utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Subject.utils.js","sourceRoot":"","sources":["../../ts/subject/Subject.utils.ts"],"names":[],"mappings":"AA0CA,MAAM,MAAM;CAAG"}
1
+ {"version":3,"file":"subject.utils.js","sourceRoot":"","sources":["../../ts/subject/subject.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AA4CzC,SAAS,kBAAkB,CACzB,WAAgC,EAChC,QAAgC;IAEhC,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAA;IACrE,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IAC9B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,OAAmB,EACnB,QAAgC;IAEhC,MAAM,YAAY,GAAG,OAAO,CAAC,eAAkC,CAAA;IAC/D,OAAO,CAAC,eAAe,CAAC,GAAG,CAAE,YAAY,CAAC,KAAK,GAAG,CAAC,CAAE,CAAA;IAErD,MAAM,YAAY,GAAsB,GAAG,EAAE;QAC3C,YAAY,CAAC,WAAW,EAAE,CAAA;IAC5B,CAAC,CAAA;IAED,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAChC,YAAY,CAAC,aAAa,GAAG,EAAE,CAAA;IAE/B,4DAA4D;IAC5D,YAAY,CAAC,WAAW,GAAG,GAAG,EAAE;QAC9B,kBAAkB,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA,CAAC,2CAA2C;QAC7F,iEAAiE;QACjE,OAAO,CAAC,eAAe,CAAC,GAAG,CAAE,YAAY,CAAC,KAAK,GAAG,CAAC,CAAE,CAAA;QAErD,0CAA0C;QAC1C,YAAY,CAAC,WAAW,GAAG,GAAG,EAAE,CAAC,YAAY,CAAA;QAE7C,yCAAyC;QACzC,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAA;QAE9E,OAAO,YAAY,CAAA;IACrB,CAAC,CAAA;IAED,YAAY,CAAC,GAAG,GAAG,CAAC,GAAoB,EAAE,EAAE;QAC1C,YAAY,CAAC,aAAa,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;QACtC,OAAO,YAAY,CAAA;IACrB,CAAC,CAAA;IAED,YAAY,CAAC,IAAI,GAAG,CAAC,KAAU,EAAE,EAAE;QACjC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;IAC/B,CAAC,CAAA;IAED,OAAO,YAAY,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,KAAU,EACV,OAA0C,EAC1C,UAAmC;IAEnC,MAAM,YAAY,GAAG,CAAC,GAAG,OAAO,CAAC,CAAA;IAEjC,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,EAAqC,CAAA;IAE3E,MAAM,IAAI,GAAG,CAAC,QAAa,EAAE,EAAE;QAC7B,IAAG,YAAY,CAAC,MAAM,EAAE,CAAC;YACvB,OAAO,eAAe,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,CAAC,CAAA;QAC5D,CAAC;QAED,UAAU,CAAC,QAAQ,CAAC,CAAA;QACpB,yBAAyB;IAC3B,CAAC,CAAA;IAED,IAAI,OAAO,GAAiB,IAAI,CAAA;IAEhC,MAAM,UAAU,GAAoB,CAAC,CAAe,EAAE,EAAE,CAAC,OAAO,GAAG,CAAC,CAAA;IACpE,MAAM,SAAS,GAAG,EAAC,UAAU,EAAE,IAAI,EAAC,CAAA;IACpC,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IACpD,OAAO,CAAC,cAAc,CAAC,CAAA;AACzB,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import { Subject } from './Subject.class';
2
- import { Subscription } from './Subject.utils';
2
+ import { Subscription } from './subject.utils';
3
3
  type ValueSubjectSubscriber<T> = (value: T, subscription: Subscription<T>) => unknown;
4
4
  export declare class ValueSubject<T> extends Subject<T> {
5
5
  value: T;
6
6
  constructor(value: T);
7
- subscribe(callback: ValueSubjectSubscriber<T>): Subscription<any> | Subscription<T>;
7
+ subscribe(callback: ValueSubjectSubscriber<T>): Subscription<T> | Subscription<any>;
8
8
  }
9
9
  export {};
@@ -7,9 +7,17 @@ export function combineLatest(subjects) {
7
7
  const setValue = (x, index) => {
8
8
  valuesSeen[index] = true;
9
9
  values[index] = x;
10
- if (valuesSeen.length === subjects.length && valuesSeen.every(x => x)) {
11
- callback(values, subscription);
10
+ const countMatched = valuesSeen.length === subjects.length;
11
+ if (!countMatched) {
12
+ return;
12
13
  }
14
+ for (let index = valuesSeen.length - 1; index >= 0; --index) {
15
+ if (!valuesSeen[index]) {
16
+ return;
17
+ }
18
+ }
19
+ // everyone has reported values
20
+ callback(values, subscription);
13
21
  };
14
22
  const clones = [...subjects];
15
23
  const firstSub = clones.shift();
@@ -1 +1 @@
1
- {"version":3,"file":"combineLatest.function.js","sourceRoot":"","sources":["../../ts/subject/combineLatest.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAGzC,MAAM,UAAU,aAAa,CAC3B,QAAwB;IAExB,MAAM,MAAM,GAAG,IAAI,OAAO,EAAE,CAAA;IAE5B,MAAM,SAAS,GAAG,CAChB,QAAgC,EAChC,EAAE;QACF,MAAM,UAAU,GAAW,EAAE,CAAA;QAC7B,MAAM,MAAM,GAAU,EAAE,CAAA;QACxB,MAAM,QAAQ,GAAG,CAAC,CAAM,EAAE,KAAa,EAAE,EAAE;YACzC,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;YACxB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAEjB,IAAG,UAAU,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrE,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;YAChC,CAAC;QACH,CAAC,CAAA;QAED,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAA;QAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAkB,CAAA;QAC/C,MAAM,YAAY,GAAsB,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAE/E,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAEpG,YAAY,CAAC,aAAa,GAAG,aAAa,CAAA;QAE1C,OAAO,YAAY,CAAA;IACrB,CAAC,CAAA;IAED,MAAM,CAAC,aAAa,GAAG,SAAS,CAAA;IAEhC,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"combineLatest.function.js","sourceRoot":"","sources":["../../ts/subject/combineLatest.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAGzC,MAAM,UAAU,aAAa,CAC3B,QAAwB;IAExB,MAAM,MAAM,GAAG,IAAI,OAAO,EAAE,CAAA;IAE5B,MAAM,SAAS,GAAG,CAChB,QAAgC,EAChC,EAAE;QACF,MAAM,UAAU,GAAW,EAAE,CAAA;QAC7B,MAAM,MAAM,GAAU,EAAE,CAAA;QACxB,MAAM,QAAQ,GAAG,CAAC,CAAM,EAAE,KAAa,EAAE,EAAE;YACzC,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;YACxB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACjB,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,CAAA;YAE1D,IAAG,CAAC,YAAY,EAAE,CAAC;gBACjB,OAAM;YACR,CAAC;YAED,KAAK,IAAI,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;gBAC5D,IAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;oBACtB,OAAM;gBACR,CAAC;YACH,CAAC;YAED,+BAA+B;YAC/B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;QAChC,CAAC,CAAA;QAED,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAA;QAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAkB,CAAA;QAC/C,MAAM,YAAY,GAAsB,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAE/E,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAEpG,YAAY,CAAC,aAAa,GAAG,aAAa,CAAA;QAE1C,OAAO,YAAY,CAAA;IACrB,CAAC,CAAA;IAED,MAAM,CAAC,aAAa,GAAG,SAAS,CAAA;IAEhC,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare class CANCEL {
2
+ }
@@ -0,0 +1,3 @@
1
+ export class CANCEL {
2
+ }
3
+ //# sourceMappingURL=subject.cancel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subject.cancel.js","sourceRoot":"","sources":["../../ts/subject/subject.cancel.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,MAAM;CAAG"}
@@ -1,4 +1,4 @@
1
- import { OperatorFunction, SubjectLike } from "./Subject.utils";
1
+ import { OperatorFunction, SubjectLike } from "./subject.utils";
2
2
  type WillCallback<T, R> = (lastValue: T, resolve: (result: R) => void) => void;
3
3
  export declare function willCallback<T = any, R = any>(callback: WillCallback<T, R>): OperatorFunction<T, R, any>;
4
4
  /** .pipe( promise((x) => Promise.resolve(44)) ) */
@@ -1,5 +1,5 @@
1
- import { InsertBefore } from "./Clones.type";
2
- import { TagSupport } from "./TagSupport.class";
1
+ import { InsertBefore } from "./interpolations/Clones.type";
2
+ import { TagSupport } from "./tag/TagSupport.class";
3
3
  import { TemplaterResult } from "./TemplaterResult.class";
4
4
  import { Template } from "./interpolations/interpolateTemplate";
5
5
  import { Subject } from "./subject/Subject.class";
@@ -0,0 +1,43 @@
1
+ import { Counts } from '../interpolations/interpolateTemplate';
2
+ import { State } from '../state';
3
+ import { InterpolatedTemplates } from '../interpolations/interpolations';
4
+ import { InterpolateSubject } from './update/processSubjectValue.function';
5
+ import { TemplaterResult } from '../TemplaterResult.class';
6
+ import { TagValues } from './html';
7
+ export declare const variablePrefix = "__tagvar";
8
+ export declare const escapeVariable: string;
9
+ export declare const escapeSearch: RegExp;
10
+ export type Context = {
11
+ [index: string]: InterpolateSubject;
12
+ };
13
+ export type TagMemory = {
14
+ state: State;
15
+ };
16
+ export interface TagTemplate {
17
+ interpolation: InterpolatedTemplates;
18
+ string: string;
19
+ strings: string[];
20
+ values: unknown[];
21
+ context: Context;
22
+ }
23
+ export declare class Tag {
24
+ strings: string[];
25
+ values: any[];
26
+ isTagClass: boolean;
27
+ memory: {
28
+ arrayValue?: unknown;
29
+ };
30
+ templater: TemplaterResult;
31
+ constructor(strings: string[], values: any[]);
32
+ /** Used for array, such as array.map(), calls aka array.map(x => html``.key(x)) */
33
+ key(arrayValue: unknown): this;
34
+ children?: {
35
+ strings: string[] | TemplateStringsArray;
36
+ values: TagValues;
37
+ };
38
+ html(strings: string[] | TemplateStringsArray, ...values: TagValues): this;
39
+ }
40
+ export type ElementBuildOptions = {
41
+ counts: Counts;
42
+ forceElement?: boolean;
43
+ };
@@ -0,0 +1,27 @@
1
+ export const variablePrefix = '__tagvar';
2
+ export const escapeVariable = '--' + variablePrefix + '--';
3
+ export const escapeSearch = new RegExp(escapeVariable, 'g');
4
+ export class Tag {
5
+ strings;
6
+ values;
7
+ isTagClass = true;
8
+ // present only when an array. Populated by Tag.key()
9
+ memory = {};
10
+ templater;
11
+ constructor(strings, values) {
12
+ this.strings = strings;
13
+ this.values = values;
14
+ }
15
+ /** Used for array, such as array.map(), calls aka array.map(x => html``.key(x)) */
16
+ key(arrayValue) {
17
+ this.memory.arrayValue = arrayValue;
18
+ return this;
19
+ }
20
+ // TODO: Is this just a fake function that can be data typed?
21
+ children;
22
+ html(strings, ...values) {
23
+ this.children = { strings, values };
24
+ return this;
25
+ }
26
+ }
27
+ //# sourceMappingURL=Tag.class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tag.class.js","sourceRoot":"","sources":["../../ts/tag/Tag.class.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAA;AACxC,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,GAAG,cAAc,GAAG,IAAI,CAAA;AAE1D,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,CAAA;AAkB3D,MAAM,OAAO,GAAG;IAYL;IACA;IAZT,UAAU,GAAG,IAAI,CAAA;IAEjB,qDAAqD;IACrD,MAAM,GAAG,EAGR,CAAA;IAED,SAAS,CAAkB;IAE3B,YACS,OAAiB,EACjB,MAAa;QADb,YAAO,GAAP,OAAO,CAAU;QACjB,WAAM,GAAN,MAAM,CAAO;IACnB,CAAC;IAEJ,mFAAmF;IACnF,GAAG,CAAC,UAAmB;QACrB,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAA;QACnC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,6DAA6D;IAC7D,QAAQ,CAAgE;IACxE,IAAI,CACF,OAAwC,EACxC,GAAG,MAAiB;QAEpB,IAAI,CAAC,QAAQ,GAAG,EAAC,OAAO,EAAE,MAAM,EAAC,CAAA;QACjC,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
@@ -0,0 +1,58 @@
1
+ import { Props } from '../Props';
2
+ import { Context, ElementBuildOptions, TagMemory, TagTemplate } from './Tag.class';
3
+ import { TagGlobal, TemplaterResult } from '../TemplaterResult.class';
4
+ import { TagSubject } from '../subject.types';
5
+ import { DestroyOptions } from './destroy.support';
6
+ import { InsertBefore } from '../interpolations/Clones.type';
7
+ /** used only for apps, otherwise use TagSupport */
8
+ export declare class BaseTagSupport {
9
+ templater: TemplaterResult;
10
+ subject: TagSubject;
11
+ isApp: boolean;
12
+ appElement?: Element;
13
+ strings?: string[];
14
+ values?: any[];
15
+ lastTemplateString: string | undefined;
16
+ propsConfig: {
17
+ latest: Props;
18
+ latestCloned: Props;
19
+ lastClonedKidValues: unknown[][];
20
+ };
21
+ memory: TagMemory;
22
+ clones: (Element | Text | ChildNode)[];
23
+ global: TagGlobal;
24
+ hasLiveElements: boolean;
25
+ constructor(templater: TemplaterResult, subject: TagSubject);
26
+ /** Function that kicks off actually putting tags down as HTML elements */
27
+ buildBeforeElement(insertBefore: InsertBefore, options?: ElementBuildOptions): void;
28
+ getTemplate(): TagTemplate;
29
+ update(): Context;
30
+ updateContext(context: Context): Context;
31
+ }
32
+ export declare class TagSupport extends BaseTagSupport {
33
+ templater: TemplaterResult;
34
+ ownerTagSupport: TagSupport;
35
+ subject: TagSubject;
36
+ version: number;
37
+ isApp: boolean;
38
+ childTags: TagSupport[];
39
+ constructor(templater: TemplaterResult, // at runtime rendering of a tag, it needs to be married to a new TagSupport()
40
+ ownerTagSupport: TagSupport, subject: TagSubject, version?: number);
41
+ destroy(options?: DestroyOptions): Promise<number>;
42
+ destroySubscriptions(): void;
43
+ destroyClones({ stagger }?: DestroyOptions): {
44
+ promise: Promise<(void | undefined)[]>;
45
+ stagger: number;
46
+ } | {
47
+ stagger: number;
48
+ promise?: undefined;
49
+ };
50
+ /** Reviews elements for the presences of ondestroy */
51
+ checkCloneRemoval(clone: Element | Text | ChildNode, stagger: number): Promise<void> | undefined;
52
+ updateBy(tagSupport: TagSupport): void;
53
+ updateConfig(strings: string[], values: any[]): void;
54
+ updateValues(values: any[]): Context;
55
+ /** Used during HMR only where static content itself could have been edited */
56
+ rebuild(): Promise<TagSupport>;
57
+ getAppTagSupport(): TagSupport;
58
+ }