taggedjs 2.4.12 → 2.4.16

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 (114) hide show
  1. package/bundle.js +782 -439
  2. package/bundle.js.map +1 -1
  3. package/js/Clones.type.d.ts +3 -1
  4. package/js/Tag.class.d.ts +7 -10
  5. package/js/Tag.class.js +90 -73
  6. package/js/Tag.class.js.map +1 -1
  7. package/js/Tag.utils.d.ts +5 -5
  8. package/js/Tag.utils.js +1 -1
  9. package/js/Tag.utils.js.map +1 -1
  10. package/js/TemplaterResult.class.d.ts +19 -14
  11. package/js/TemplaterResult.class.js +19 -12
  12. package/js/TemplaterResult.class.js.map +1 -1
  13. package/js/alterProps.function.d.ts +2 -0
  14. package/js/alterProps.function.js +18 -12
  15. package/js/alterProps.function.js.map +1 -1
  16. package/js/checkDestroyPrevious.function.d.ts +3 -1
  17. package/js/checkDestroyPrevious.function.js +27 -11
  18. package/js/checkDestroyPrevious.function.js.map +1 -1
  19. package/js/destroyTag.function.js +4 -4
  20. package/js/destroyTag.function.js.map +1 -1
  21. package/js/hasTagSupportChanged.function.js +0 -3
  22. package/js/hasTagSupportChanged.function.js.map +1 -1
  23. package/js/index.d.ts +1 -2
  24. package/js/index.js +1 -2
  25. package/js/index.js.map +1 -1
  26. package/js/insertAfter.function.d.ts +2 -0
  27. package/js/insertAfter.function.js +6 -0
  28. package/js/insertAfter.function.js.map +1 -0
  29. package/js/interpolateElement.d.ts +3 -2
  30. package/js/interpolateElement.js +3 -2
  31. package/js/interpolateElement.js.map +1 -1
  32. package/js/interpolateTemplate.d.ts +2 -3
  33. package/js/interpolateTemplate.js +11 -24
  34. package/js/interpolateTemplate.js.map +1 -1
  35. package/js/interpolations.js +2 -1
  36. package/js/interpolations.js.map +1 -1
  37. package/js/isInstance.d.ts +2 -2
  38. package/js/isInstance.js.map +1 -1
  39. package/js/processAttribute.function.d.ts +1 -0
  40. package/js/processAttribute.function.js +3 -3
  41. package/js/processAttribute.function.js.map +1 -1
  42. package/js/processNewValue.function.js +1 -1
  43. package/js/processNewValue.function.js.map +1 -1
  44. package/js/processRegularValue.function.d.ts +2 -2
  45. package/js/processRegularValue.function.js +7 -6
  46. package/js/processRegularValue.function.js.map +1 -1
  47. package/js/processSubjectComponent.function.d.ts +4 -3
  48. package/js/processSubjectComponent.function.js +29 -18
  49. package/js/processSubjectComponent.function.js.map +1 -1
  50. package/js/processSubjectValue.function.d.ts +4 -9
  51. package/js/processSubjectValue.function.js +6 -54
  52. package/js/processSubjectValue.function.js.map +1 -1
  53. package/js/processTag.function.d.ts +7 -0
  54. package/js/processTag.function.js +59 -0
  55. package/js/processTag.function.js.map +1 -0
  56. package/js/processTagArray.d.ts +6 -5
  57. package/js/processTagArray.js +36 -19
  58. package/js/processTagArray.js.map +1 -1
  59. package/js/processTagResult.function.d.ts +3 -2
  60. package/js/processTagResult.function.js +29 -33
  61. package/js/processTagResult.function.js.map +1 -1
  62. package/js/render.d.ts +2 -1
  63. package/js/render.js.map +1 -1
  64. package/js/renderExistingTag.function.js +4 -3
  65. package/js/renderExistingTag.function.js.map +1 -1
  66. package/js/subject/Subject.class.d.ts +24 -0
  67. package/js/subject/Subject.class.js +103 -0
  68. package/js/subject/Subject.class.js.map +1 -0
  69. package/js/subject/Subject.utils.d.ts +27 -0
  70. package/js/subject/Subject.utils.js +4 -0
  71. package/js/subject/Subject.utils.js.map +1 -0
  72. package/js/subject/ValueSubject.d.ts +9 -0
  73. package/js/{ValueSubject.js → subject/ValueSubject.js} +4 -4
  74. package/js/subject/ValueSubject.js.map +1 -0
  75. package/js/subject/combineLatest.function.d.ts +2 -0
  76. package/js/subject/combineLatest.function.js +24 -0
  77. package/js/subject/combineLatest.function.js.map +1 -0
  78. package/js/subject/index.d.ts +4 -0
  79. package/js/subject/index.js +5 -0
  80. package/js/subject/index.js.map +1 -0
  81. package/js/subject/will.functions.d.ts +8 -0
  82. package/js/subject/will.functions.js +32 -0
  83. package/js/subject/will.functions.js.map +1 -0
  84. package/js/tag.d.ts +1 -1
  85. package/js/tag.js +2 -2
  86. package/js/tag.js.map +1 -1
  87. package/js/tagElement.js +1 -1
  88. package/js/tagElement.js.map +1 -1
  89. package/js/updateBeforeTemplate.function.d.ts +3 -0
  90. package/js/updateBeforeTemplate.function.js +16 -0
  91. package/js/updateBeforeTemplate.function.js.map +1 -0
  92. package/js/updateExistingTagComponent.function.d.ts +2 -1
  93. package/js/updateExistingTagComponent.function.js +52 -25
  94. package/js/updateExistingTagComponent.function.js.map +1 -1
  95. package/js/updateExistingValue.function.d.ts +3 -2
  96. package/js/updateExistingValue.function.js +19 -10
  97. package/js/updateExistingValue.function.js.map +1 -1
  98. package/package.json +1 -1
  99. package/js/Subject.d.ts +0 -17
  100. package/js/Subject.js +0 -47
  101. package/js/Subject.js.map +0 -1
  102. package/js/ValueSubject.d.ts +0 -8
  103. package/js/ValueSubject.js.map +0 -1
  104. package/js/bindSubjectCallback.function 9.27.33/342/200/257AM.js" +0 -32
  105. package/js/bindSubjectCallback.function.d 9.27.33/342/200/257AM.ts" +0 -8
  106. package/js/redrawTag.function.d.ts +0 -5
  107. package/js/redrawTag.function.js +0 -18
  108. package/js/redrawTag.function.js.map +0 -1
  109. package/js/templater.utils.d.ts +0 -37
  110. package/js/templater.utils.js +0 -118
  111. package/js/templater.utils.js.map +0 -1
  112. package/js/updateExistingTag.function.d.ts +0 -4
  113. package/js/updateExistingTag.function.js +0 -24
  114. package/js/updateExistingTag.function.js.map +0 -1
@@ -1 +1,3 @@
1
- export type Clones = (Element | Text | ChildNode)[];
1
+ import { Template } from "./interpolateTemplate";
2
+ export type InsertBefore = Element | Text | Template | ChildNode;
3
+ export type Clones = InsertBefore[];
package/js/Tag.class.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import { TagSupport } from './TagSupport.class';
2
- import { Subscription } from './Subject';
3
2
  import { Counts } from './interpolateTemplate';
4
3
  import { State } from './set.function';
5
4
  import { InterpolatedTemplates } from './interpolations';
6
5
  import { InterpolateSubject } from './processSubjectValue.function';
6
+ import { InsertBefore } from './Clones.type';
7
7
  export declare const variablePrefix = "__tagvar";
8
8
  export declare const escapeVariable: string;
9
9
  export declare const escapeSearch: RegExp;
@@ -20,9 +20,6 @@ export interface TagTemplate {
20
20
  values: unknown[];
21
21
  context: Context;
22
22
  }
23
- export declare class ArrayValueNeverSet {
24
- isArrayValueNeverSet: boolean;
25
- }
26
23
  export declare class Tag {
27
24
  strings: string[];
28
25
  values: any[];
@@ -30,13 +27,14 @@ export declare class Tag {
30
27
  isTag: boolean;
31
28
  hasLiveElements: boolean;
32
29
  clones: (Element | Text | ChildNode)[];
33
- cloneSubs: Subscription[];
34
30
  childTags: Tag[];
35
31
  tagSupport: TagSupport;
36
32
  lastTemplateString: string | undefined;
37
33
  ownerTag?: Tag;
38
34
  appElement?: Element;
39
- arrayValue: unknown | ArrayValueNeverSet;
35
+ memory: {
36
+ arrayValue?: unknown;
37
+ };
40
38
  constructor(strings: string[], values: any[]);
41
39
  /** Used for array, such as array.map(), calls aka array.map(x => html``.key(x)) */
42
40
  key(arrayValue: unknown): this;
@@ -49,9 +47,10 @@ export declare class Tag {
49
47
  stagger: number;
50
48
  promise?: undefined;
51
49
  };
50
+ /** Reviews elements for the presences of ondestroy */
52
51
  checkCloneRemoval(clone: Element | Text | ChildNode, stagger: number): Promise<void> | undefined;
53
52
  getTemplate(): TagTemplate;
54
- isLikeTag(tag: Tag): boolean | Boolean;
53
+ isLikeTag(tag: Tag): Boolean;
55
54
  updateByTag(tag: Tag): void;
56
55
  updateConfig(strings: string[], values: any[]): void;
57
56
  update(): Context;
@@ -60,9 +59,7 @@ export declare class Tag {
60
59
  getAppElement(): Tag;
61
60
  /** Used during HMR only where static content itself could have been edited */
62
61
  rebuild(): void;
63
- buildBeforeElement(insertBefore: Element | Text, options?: ElementBuildOptions & {
64
- test: boolean;
65
- }): void;
62
+ buildBeforeElement(insertBefore: InsertBefore, options?: ElementBuildOptions): void;
66
63
  }
67
64
  type DestroyOptions = {
68
65
  stagger: number;
package/js/Tag.class.js CHANGED
@@ -6,13 +6,11 @@ import { elementDestroyCheck } from './elementDestroyCheck.function';
6
6
  import { processNewValue } from './processNewValue.function';
7
7
  import { isSubjectInstance, isTagComponent } from './isInstance';
8
8
  import { isLikeTags } from './isLikeTags.function';
9
+ import { restoreTagMarker } from './checkDestroyPrevious.function';
9
10
  export const variablePrefix = '__tagvar';
10
11
  export const escapeVariable = '--' + variablePrefix + '--';
11
12
  const prefixSearch = new RegExp(variablePrefix, 'g');
12
13
  export const escapeSearch = new RegExp(escapeVariable, 'g');
13
- export class ArrayValueNeverSet {
14
- isArrayValueNeverSet = true;
15
- }
16
14
  export class Tag {
17
15
  strings;
18
16
  values;
@@ -20,7 +18,6 @@ export class Tag {
20
18
  isTag = true;
21
19
  hasLiveElements = false;
22
20
  clones = []; // elements on document. Needed at destroy process to know what to destroy
23
- cloneSubs = []; // subscriptions created by clones
24
21
  childTags = []; // tags on me
25
22
  tagSupport;
26
23
  lastTemplateString = undefined; // used to compare templates for updates
@@ -28,15 +25,15 @@ export class Tag {
28
25
  ownerTag;
29
26
  // insertBefore?: Element
30
27
  appElement; // only seen on this.getAppElement().appElement
31
- // present only when an array. Populated by this.key()
32
- arrayValue = new ArrayValueNeverSet();
28
+ // present only when an array. Populated by Tag.key()
29
+ memory = {};
33
30
  constructor(strings, values) {
34
31
  this.strings = strings;
35
32
  this.values = values;
36
33
  }
37
34
  /** Used for array, such as array.map(), calls aka array.map(x => html``.key(x)) */
38
35
  key(arrayValue) {
39
- this.arrayValue = arrayValue;
36
+ this.memory.arrayValue = arrayValue;
40
37
  return this;
41
38
  }
42
39
  destroy(options = {
@@ -50,6 +47,18 @@ export class Tag {
50
47
  const global = tagSupport.templater.global;
51
48
  // removing is considered rendering. Prevents after event processing of this tag even tho possibly deleted
52
49
  // ++this.tagSupport.templater.global.renderCount
50
+ const subject = tagSupport.subject;
51
+ // put back down the template tag
52
+ const insertBefore = global.insertBefore;
53
+ if (insertBefore.nodeName === 'TEMPLATE') {
54
+ const placeholder = global.placeholder;
55
+ if (placeholder && !('arrayValue' in this.memory)) {
56
+ if (!options.byParent) {
57
+ restoreTagMarker(this, insertBefore);
58
+ }
59
+ }
60
+ }
61
+ delete global.placeholder;
53
62
  // the isComponent check maybe able to be removed
54
63
  const isComponent = tagSupport ? true : false;
55
64
  if (isComponent) {
@@ -57,7 +66,6 @@ export class Tag {
57
66
  }
58
67
  const childTags = options.byParent ? [] : getChildTagsToDestroy(this.childTags);
59
68
  // signify that no further event rendering should take place by making logic think a render occurred during event
60
- // childTags.forEach(child => ++child.tagSupport.templater.global.renderCount)
61
69
  // signify immediately child has been deleted (looked for during event processing)
62
70
  childTags.forEach(child => {
63
71
  const subGlobal = child.tagSupport.templater.global;
@@ -68,7 +76,7 @@ export class Tag {
68
76
  delete global.newest;
69
77
  global.deleted = true;
70
78
  this.hasLiveElements = false;
71
- delete tagSupport.subject.tag;
79
+ delete subject.tag;
72
80
  this.destroySubscriptions();
73
81
  let mainPromise;
74
82
  if (this.ownerTag) {
@@ -96,8 +104,9 @@ export class Tag {
96
104
  return mainPromise.then(() => options.stagger);
97
105
  }
98
106
  destroySubscriptions() {
99
- this.cloneSubs.forEach(cloneSub => cloneSub.unsubscribe());
100
- this.cloneSubs.length = 0;
107
+ const global = this.tagSupport.templater.global;
108
+ global.subscriptions.forEach(cloneSub => cloneSub.unsubscribe());
109
+ global.subscriptions.length = 0;
101
110
  }
102
111
  destroyClones({ stagger } = {
103
112
  stagger: 0,
@@ -110,6 +119,7 @@ export class Tag {
110
119
  }
111
120
  return { stagger };
112
121
  }
122
+ /** Reviews elements for the presences of ondestroy */
113
123
  checkCloneRemoval(clone, stagger) {
114
124
  let promise;
115
125
  const customElm = clone;
@@ -153,31 +163,6 @@ export class Tag {
153
163
  }
154
164
  isLikeTag(tag) {
155
165
  return isLikeTags(this, tag);
156
- const { string } = tag.getTemplate();
157
- // TODO: most likely remove?
158
- if (!this.lastTemplateString) {
159
- throw new Error('no template here');
160
- }
161
- const stringMatched = string === this.lastTemplateString;
162
- if (!stringMatched || tag.values.length !== this.values.length) {
163
- return false;
164
- }
165
- const allVarsMatch = tag.values.every((value, index) => {
166
- const compareTo = this.values[index];
167
- const isFunctions = value instanceof Function && compareTo instanceof Function;
168
- if (isFunctions) {
169
- const stringMatch = value.toString() === compareTo.toString();
170
- if (stringMatch) {
171
- return true;
172
- }
173
- return false;
174
- }
175
- return true;
176
- });
177
- if (allVarsMatch) {
178
- return true;
179
- }
180
- return false;
181
166
  }
182
167
  updateByTag(tag) {
183
168
  if (!this.tagSupport.templater.global.oldest) {
@@ -239,31 +224,43 @@ export class Tag {
239
224
  }
240
225
  this.buildBeforeElement(insertBefore, {
241
226
  forceElement: true,
242
- counts: { added: 0, removed: 0 }, test: false,
227
+ counts: { added: 0, removed: 0 },
243
228
  });
244
229
  }
245
230
  buildBeforeElement(insertBefore, options = {
246
231
  forceElement: false,
247
232
  counts: { added: 0, removed: 0 },
248
- test: false
249
233
  }) {
250
- if (!insertBefore.parentNode) {
251
- throw new Error('no parent before removing clones');
234
+ const subject = this.tagSupport.subject;
235
+ const thisTemplater = this.tagSupport.templater;
236
+ const global = thisTemplater.global;
237
+ global.insertBefore = insertBefore;
238
+ if (!global.placeholder) {
239
+ if (insertBefore.nodeName !== 'TEMPLATE') {
240
+ throw new Error(' no template at insertBefore');
241
+ global.placeholder = insertBefore;
242
+ }
243
+ else {
244
+ setTagPlaceholder(global);
245
+ }
246
+ }
247
+ if (!global.placeholder?.parentNode) {
248
+ throw new Error('????');
252
249
  }
253
- this.tagSupport.templater.global.oldest = this;
254
- this.tagSupport.templater.global.newest = this;
255
- this.tagSupport.subject.tag = this;
250
+ const placeholderElm = global.placeholder;
251
+ global.oldest = this;
252
+ global.newest = this;
253
+ subject.tag = this;
256
254
  this.hasLiveElements = true;
257
255
  // remove old clones
258
256
  if (this.clones.length) {
259
257
  this.clones.forEach(clone => this.checkCloneRemoval(clone, 0));
260
258
  }
261
- // this.insertBefore = insertBefore
262
- this.tagSupport.templater.global.insertBefore = insertBefore;
259
+ global.insertBefore = insertBefore;
263
260
  // const context = this.tagSupport.memory.context // this.update()
264
261
  const context = this.update();
265
262
  const template = this.getTemplate();
266
- if (!insertBefore.parentNode) {
263
+ if (!placeholderElm.parentNode) {
267
264
  throw new Error('no parent before building tag');
268
265
  }
269
266
  const elementContainer = document.createElement('div');
@@ -275,38 +272,55 @@ export class Tag {
275
272
  {
276
273
  forceElement: options.forceElement,
277
274
  counts: options.counts
278
- }, options.test);
279
- if (!insertBefore.parentNode) {
280
- throw new Error('no parent building tag');
275
+ });
276
+ if (!placeholderElm.parentNode) {
277
+ throw new Error('no parent after building tag');
281
278
  }
282
- afterInterpolateElement(elementContainer, insertBefore, this, // ownerTag
279
+ afterInterpolateElement(elementContainer, placeholderElm, this, // ownerTag
283
280
  context, options);
284
- // this.clones.push(...clones)
281
+ if (!global.placeholder?.parentNode) {
282
+ throw new Error('???? - 2');
283
+ }
285
284
  // Any tag components that were found should be processed AFTER the owner processes its elements. Avoid double processing of elements attributes like (oninit)=${}
286
285
  let isForceElement = options.forceElement;
287
286
  tagComponents.forEach(tagComponent => {
288
- // const preClones = this.clones.map(clone => clone)
289
- subscribeToTemplate(tagComponent.insertBefore, // temporary,
290
- tagComponent.subject, tagComponent.ownerTag, options.counts, { isForceElement });
291
- if (!insertBefore.parentNode) {
287
+ const tagSupport = tagComponent.ownerTag.tagSupport;
288
+ const tagGlobal = tagSupport.templater.global;
289
+ const placeholderElm = tagGlobal.placeholder; // global.placeholderElm
290
+ if (!placeholderElm && !insertBefore.parentNode) {
292
291
  throw new Error('no parent building tag components');
293
292
  }
294
- afterInterpolateElement(elementContainer, insertBefore, this, context, options);
295
- // remove component clones from ownerTag as they will belong to the components they live on
296
- /*
297
- if( preClones.length ) {
298
- this.clones = this.clones.filter(cloneFilter => !preClones.find(clone => clone === cloneFilter))
293
+ if (!global.placeholder?.parentNode) {
294
+ throw new Error('???? - 3');
295
+ }
296
+ subscribeToTemplate(tagComponent.insertBefore, tagComponent.subject, tagComponent.ownerTag, options.counts, { isForceElement });
297
+ if (!global.placeholder?.parentNode) {
298
+ throw new Error('???? - 4');
299
+ }
300
+ afterInterpolateElement(elementContainer, tagComponent.insertBefore, tagComponent.ownerTag, // this, // ownerTag
301
+ context, options);
302
+ if (!global.placeholder?.parentNode) {
303
+ throw new Error('???? - 5');
299
304
  }
300
- */
301
305
  });
302
306
  }
303
307
  }
304
- function afterInterpolateElement(container, insertBefore, ownerTag,
308
+ function setTagPlaceholder(global) {
309
+ const insertBefore = global.insertBefore;
310
+ const placeholder = global.placeholder = document.createTextNode('');
311
+ const parentNode = insertBefore.parentNode;
312
+ parentNode.insertBefore(placeholder, insertBefore);
313
+ parentNode.removeChild(insertBefore);
314
+ }
315
+ function afterInterpolateElement(container, insertBefore, tag,
305
316
  // preClones: Clones,
306
317
  context, options) {
307
318
  const clones = buildClones(container, insertBefore);
308
- ownerTag.clones.push(...clones);
309
- clones.forEach(clone => afterElmBuild(clone, options, context, ownerTag));
319
+ if (!clones.length) {
320
+ return clones;
321
+ }
322
+ clones.forEach(clone => afterElmBuild(clone, options, context, tag));
323
+ tag.clones.push(...clones);
310
324
  return clones;
311
325
  }
312
326
  function getChildTagsToDestroy(childTags, allTags = []) {
@@ -327,15 +341,9 @@ function updateContextItem(context, variableName, value) {
327
341
  const tag = subject.tag;
328
342
  if (tag) {
329
343
  const oldTemp = tag.tagSupport.templater;
330
- const oldWrap = oldTemp.wrapper; // tag versus component
331
- if (value.global !== oldTemp.global) {
332
- if (oldWrap && isTagComponent(value)) {
333
- const oldValueFn = oldWrap.original;
334
- const newValueFn = value.wrapper?.original;
335
- const fnMatched = oldValueFn === newValueFn;
336
- if (fnMatched) {
337
- value.global = oldTemp.global;
338
- }
344
+ if (value && value.global !== oldTemp.global) {
345
+ if (isTagComponent(value)) {
346
+ shareTemplaterGlobal(oldTemp, value);
339
347
  }
340
348
  }
341
349
  }
@@ -346,4 +354,13 @@ function updateContextItem(context, variableName, value) {
346
354
  subject.set(value); // listeners will evaluate updated values to possibly update display(s)
347
355
  return;
348
356
  }
357
+ function shareTemplaterGlobal(oldTemp, value) {
358
+ const oldWrap = oldTemp.wrapper; // tag versus component
359
+ const oldValueFn = oldWrap.original;
360
+ const newValueFn = value.wrapper?.original;
361
+ const fnMatched = oldValueFn === newValueFn;
362
+ if (fnMatched) {
363
+ value.global = oldTemp.global;
364
+ }
365
+ }
349
366
  //# sourceMappingURL=Tag.class.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tag.class.js","sourceRoot":"","sources":["../ts/Tag.class.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Tag.class.js","sourceRoot":"","sources":["../ts/Tag.class.ts"],"names":[],"mappings":"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"}
package/js/Tag.utils.d.ts CHANGED
@@ -1,17 +1,17 @@
1
- import { ValueSubject } from "./ValueSubject";
2
- import { Subject } from "./Subject";
1
+ import { InsertBefore } from "./Clones.type";
3
2
  import { Tag } from "./Tag.class";
4
3
  import { TemplaterResult } from "./TemplaterResult.class";
5
4
  import { Template } from "./interpolateTemplate";
5
+ import { Subject } from "./subject/Subject.class";
6
+ import { ValueSubject } from "./subject/ValueSubject";
6
7
  export type TagSubject = Subject<TemplaterResult> & {
7
- tag: Tag;
8
- template: Element | Text | Template;
8
+ tag?: Tag;
9
9
  };
10
10
  type RegularValue = string | number | boolean;
11
11
  export type DisplaySubject = Subject<RegularValue> & {
12
12
  lastValue?: RegularValue;
13
13
  clone?: Element | Text | Template;
14
- template: Element | Text | Template;
14
+ insertBefore: InsertBefore;
15
15
  };
16
16
  export declare function getSubjectFunction(value: any, tag: Tag): ValueSubject<import("./bindSubjectCallback.function").Callback>;
17
17
  export {};
package/js/Tag.utils.js CHANGED
@@ -1,5 +1,5 @@
1
- import { ValueSubject } from "./ValueSubject";
2
1
  import { bindSubjectCallback } from "./bindSubjectCallback.function";
2
+ import { ValueSubject } from "./subject/ValueSubject";
3
3
  export function getSubjectFunction(value, tag) {
4
4
  return new ValueSubject(bindSubjectCallback(value, tag));
5
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Tag.utils.js","sourceRoot":"","sources":["../ts/Tag.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAI7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AAepE,MAAM,UAAU,kBAAkB,CAChC,KAAU,EACV,GAAQ;IAER,OAAO,IAAI,YAAY,CAAE,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAE,CAAA;AAC5D,CAAC"}
1
+ {"version":3,"file":"Tag.utils.js","sourceRoot":"","sources":["../ts/Tag.utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AAGpE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAcrD,MAAM,UAAU,kBAAkB,CAChC,KAAU,EACV,GAAQ;IAER,OAAO,IAAI,YAAY,CAAE,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAE,CAAA;AAC5D,CAAC"}
@@ -6,29 +6,34 @@ import { Provider } from './providers';
6
6
  import { OnDestroyCallback } from './onDestroy';
7
7
  import { TagSubject } from './Tag.utils';
8
8
  import { OnInitCallback } from './onInit';
9
+ import { Subscription } from './subject/Subject.utils';
10
+ import { InsertBefore } from './Clones.type';
9
11
  export type Wrapper = ((tagSupport: BaseTagSupport, subject: TagSubject) => Tag) & {
10
12
  original: () => Tag;
11
13
  };
14
+ export type TagGlobal = {
15
+ newestTemplater: TemplaterResult;
16
+ oldest?: Tag;
17
+ newest?: Tag;
18
+ context: Context;
19
+ providers: Provider[];
20
+ /** Indicator of re-rending. Saves from double rending something already rendered */
21
+ renderCount: number;
22
+ deleted: boolean;
23
+ isApp?: boolean;
24
+ insertBefore?: InsertBefore;
25
+ placeholder?: Text;
26
+ subscriptions: Subscription[];
27
+ destroyCallback?: OnDestroyCallback;
28
+ init?: OnInitCallback;
29
+ };
12
30
  export declare class TemplaterResult {
13
31
  props: Props;
14
32
  children: TagChildren;
15
33
  isTag: boolean;
16
34
  tagged: boolean;
17
35
  wrapper: Wrapper;
18
- global: {
19
- newestTemplater: TemplaterResult;
20
- oldest?: Tag;
21
- newest?: Tag;
22
- context: Context;
23
- providers: Provider[];
24
- /** Indicator of re-rending. Saves from double rending something already rendered */
25
- renderCount: number;
26
- insertBefore?: Element | Text;
27
- deleted: boolean;
28
- isApp?: boolean;
29
- destroyCallback?: OnDestroyCallback;
30
- init?: OnInitCallback;
31
- };
36
+ global: TagGlobal;
32
37
  tagSupport: BaseTagSupport;
33
38
  constructor(props: Props, children: TagChildren);
34
39
  isTemplater: boolean;
@@ -14,7 +14,8 @@ export class TemplaterResult {
14
14
  providers: [],
15
15
  /** Indicator of re-rending. Saves from double rending something already rendered */
16
16
  renderCount: 0,
17
- deleted: false
17
+ deleted: false,
18
+ subscriptions: []
18
19
  };
19
20
  tagSupport;
20
21
  constructor(props, children) {
@@ -49,25 +50,31 @@ export function renderWithSupport(tagSupport, existingTag, subject, ownerTag) {
49
50
  }
50
51
  /* END: BEFORE RENDER */
51
52
  const templater = wrapTagSupport.templater;
53
+ // NEW TAG CREATED HERE
52
54
  const retag = templater.wrapper(wrapTagSupport, subject);
53
55
  /* AFTER */
54
56
  runAfterRender(wrapTagSupport, retag);
55
57
  const isLikeTag = !existingTag || isLikeTags(existingTag, retag);
56
58
  if (!isLikeTag) {
57
- destroyTagMemory(existingTag, subject);
58
- delete templater.global.oldest;
59
- delete templater.global.newest;
60
- delete subject.tag;
61
- templater.global.insertBefore = existingTag.tagSupport.templater.global.insertBefore;
59
+ destroyUnlikeTags(existingTag, templater, subject);
62
60
  }
63
61
  retag.ownerTag = runtimeOwnerTag;
64
62
  wrapTagSupport.templater.global.newest = retag;
65
- if (wrapTagSupport.templater.global.oldest && !wrapTagSupport.templater.global.oldest.hasLiveElements) {
66
- throw new Error('56513540');
67
- }
68
- if (wrapTagSupport.templater.global.oldest && !wrapTagSupport.templater.global.oldest.hasLiveElements) {
69
- throw new Error('5555 - 10');
70
- }
71
63
  return retag;
72
64
  }
65
+ function destroyUnlikeTags(existingTag, // old
66
+ templater, // new
67
+ subject) {
68
+ const oldGlobal = existingTag.tagSupport.templater.global;
69
+ const insertBefore = oldGlobal.insertBefore;
70
+ destroyTagMemory(existingTag, subject);
71
+ // ??? - new so that when a tag is destroy the unlike does not carry the destroy signifier
72
+ templater.global = { ...templater.global }; // break memory references
73
+ const global = templater.global;
74
+ global.insertBefore = insertBefore;
75
+ global.deleted = false;
76
+ delete global.oldest;
77
+ delete global.newest;
78
+ delete subject.tag;
79
+ }
73
80
  //# sourceMappingURL=TemplaterResult.class.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TemplaterResult.class.js","sourceRoot":"","sources":["../ts/TemplaterResult.class.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TemplaterResult.class.js","sourceRoot":"","sources":["../ts/TemplaterResult.class.ts"],"names":[],"mappings":"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"}
@@ -2,3 +2,5 @@ import { Props } from './Props';
2
2
  import { TagSupport } from './TagSupport.class';
3
3
  import { TemplaterResult } from './TemplaterResult.class';
4
4
  export declare function alterProps(props: Props, templater: TemplaterResult, ownerSupport: TagSupport): any;
5
+ export declare function callbackPropOwner(toCall: (...args: any[]) => any, callWith: any, templater: TemplaterResult, // only used to prevent rendering double
6
+ ownerSupport: TagSupport): any;
@@ -3,17 +3,7 @@ import { renderTagSupport } from './renderTagSupport.function';
3
3
  /* Used to rewrite props that are functions. When they are called it should cause parent rendering */
4
4
  export function alterProps(props, templater, ownerSupport) {
5
5
  function callback(toCall, callWith) {
6
- const renderCount = templater.global.renderCount;
7
- const callbackResult = toCall(...callWith);
8
- if (templater.global.renderCount > renderCount) {
9
- throw new Error('already rendered');
10
- }
11
- const lastestOwner = ownerSupport.templater.global.newest;
12
- const newOwner = renderTagSupport(lastestOwner.tagSupport, true);
13
- if (newOwner.tagSupport.templater.global.newest != newOwner) {
14
- throw new Error('newest assignment issue?');
15
- }
16
- return callbackResult;
6
+ return callbackPropOwner(toCall, callWith, templater, ownerSupport);
17
7
  }
18
8
  const isPropTag = isTagInstance(props);
19
9
  const watchProps = isPropTag ? 0 : props;
@@ -34,12 +24,28 @@ function resetFunctionProps(props, callback) {
34
24
  return; // already previously converted
35
25
  }
36
26
  newProps[name] = (...args) => {
37
- return callback(value, args);
27
+ return newProps[name].toCall(...args); // what gets called can switch over parent state changes
38
28
  };
29
+ // Currently, call self but over parent state changes, I may need to call a newer parent tag owner
30
+ newProps[name].toCall = (...args) => callback(value, args);
39
31
  newProps[name].original = value;
40
32
  return;
41
33
  }
42
34
  });
43
35
  return newProps;
44
36
  }
37
+ export function callbackPropOwner(toCall, callWith, templater, // only used to prevent rendering double
38
+ ownerSupport) {
39
+ const renderCount = templater.global.renderCount;
40
+ const callbackResult = toCall(...callWith);
41
+ if (templater.global.renderCount > renderCount) {
42
+ throw new Error('already rendered');
43
+ }
44
+ const lastestOwner = ownerSupport.templater.global.newest;
45
+ const newOwner = renderTagSupport(lastestOwner.tagSupport, true);
46
+ if (newOwner.tagSupport.templater.global.newest != newOwner) {
47
+ throw new Error('newest assignment issue?');
48
+ }
49
+ return callbackResult;
50
+ }
45
51
  //# sourceMappingURL=alterProps.function.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"alterProps.function.js","sourceRoot":"","sources":["../ts/alterProps.function.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAE9D,qGAAqG;AACrG,MAAM,UAAU,UAAU,CACxB,KAAY,EACZ,SAA0B,EAC1B,YAAwB;IAExB,SAAS,QAAQ,CAAC,MAAW,EAAE,QAAa;QAC1C,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,WAAW,CAAA;QAChD,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAA;QAE1C,IAAG,SAAS,CAAC,MAAM,CAAC,WAAW,GAAG,WAAW,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;QACrC,CAAC;QAED,MAAM,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,MAAa,CAAA;QAChE,MAAM,QAAQ,GAAG,gBAAgB,CAC/B,YAAY,CAAC,UAAU,EACvB,IAAI,CACL,CAAA;QAED,IAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAC7C,CAAC;QAED,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;IACtC,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IACxC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IAEzD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAU,EACV,QAAiD;IAEjD,IAAG,OAAM,CAAC,KAAK,CAAC,KAAG,QAAQ,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAA;IACtB,uFAAuF;IACvF,+BAA+B;IAE/B,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;QACjD,IAAG,KAAK,YAAY,QAAQ,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAA;YAExC,IAAG,QAAQ,EAAE,CAAC;gBACZ,OAAM,CAAC,+BAA+B;YACxC,CAAC;YAED,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE;gBAClC,OAAO,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YAC9B,CAAC,CAAA;YAED,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAA;YAE/B,OAAM;QACR,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAA;AACjB,CAAC"}
1
+ {"version":3,"file":"alterProps.function.js","sourceRoot":"","sources":["../ts/alterProps.function.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAE9D,qGAAqG;AACrG,MAAM,UAAU,UAAU,CACxB,KAAY,EACZ,SAA0B,EAC1B,YAAwB;IAExB,SAAS,QAAQ,CAAC,MAAW,EAAE,QAAa;QAC1C,OAAO,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,CAAA;IACrE,CAAC;IAED,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;IACtC,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IACxC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IAEzD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAU,EACV,QAAiD;IAEjD,IAAG,OAAM,CAAC,KAAK,CAAC,KAAG,QAAQ,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAA;IACtB,uFAAuF;IACvF,+BAA+B;IAE/B,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;QACjD,IAAG,KAAK,YAAY,QAAQ,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAA;YAExC,IAAG,QAAQ,EAAE,CAAC;gBACZ,OAAM,CAAC,+BAA+B;YACxC,CAAC;YAED,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE;gBAClC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA,CAAC,wDAAwD;YAChG,CAAC,CAAA;YAED,kGAAkG;YAClG,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YACjE,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAA;YAE/B,OAAM;QACR,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,MAA+B,EAC/B,QAAa,EACb,SAA0B,EAAE,wCAAwC;AACpE,YAAwB;IAExB,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,WAAW,CAAA;IAChD,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAA;IAE1C,IAAG,SAAS,CAAC,MAAM,CAAC,WAAW,GAAG,WAAW,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IAED,MAAM,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,MAAa,CAAA;IAChE,MAAM,QAAQ,GAAG,gBAAgB,CAC/B,YAAY,CAAC,UAAU,EACvB,IAAI,CACL,CAAA;IAED,IAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;IAC7C,CAAC;IAED,OAAO,cAAc,CAAA;AACvB,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import { Tag } from './Tag.class';
2
2
  import { InterpolateSubject } from './processSubjectValue.function';
3
3
  import { Counts } from './interpolateTemplate';
4
+ import { InsertBefore } from './Clones.type';
4
5
  export declare function checkDestroyPrevious(subject: InterpolateSubject, // existing.value is the old value
5
- newValue: unknown): false | 1 | 2 | 3 | 4;
6
+ newValue: unknown, insertBefore: InsertBefore): false | "array" | 2 | "different-tag" | 4;
6
7
  export declare function destroyArrayTag(tag: Tag, counts: Counts): void;
8
+ export declare function restoreTagMarker(existingTag: Tag, insertBefore: InsertBefore): void;