taggedjs 2.5.5 → 2.5.7

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 (36) hide show
  1. package/bundle.js +151 -92
  2. package/bundle.js.map +1 -1
  3. package/js/render.js +6 -5
  4. package/js/render.js.map +1 -1
  5. package/js/state/callbackMaker.function.js +5 -2
  6. package/js/state/callbackMaker.function.js.map +1 -1
  7. package/js/state/index.d.ts +2 -0
  8. package/js/state/index.js +2 -0
  9. package/js/state/index.js.map +1 -1
  10. package/js/state/letProp.function.d.ts +7 -0
  11. package/js/state/letProp.function.js +16 -0
  12. package/js/state/letProp.function.js.map +1 -0
  13. package/js/state/providers.js +5 -3
  14. package/js/state/providers.js.map +1 -1
  15. package/js/state/state.function.js.map +1 -1
  16. package/js/state/state.utils.d.ts +1 -0
  17. package/js/state/state.utils.js +9 -6
  18. package/js/state/state.utils.js.map +1 -1
  19. package/js/state/subject.function.d.ts +12 -0
  20. package/js/state/subject.function.js +23 -0
  21. package/js/state/subject.function.js.map +1 -0
  22. package/js/subject/Subject.class.d.ts +1 -2
  23. package/js/subject/Subject.class.js +0 -10
  24. package/js/subject/Subject.class.js.map +1 -1
  25. package/js/tag/TagSupport.class.js +15 -30
  26. package/js/tag/TagSupport.class.js.map +1 -1
  27. package/js/tag/render/renderExistingTag.function.js +0 -13
  28. package/js/tag/render/renderExistingTag.function.js.map +1 -1
  29. package/js/tag/tagElement.js +3 -1
  30. package/js/tag/tagElement.js.map +1 -1
  31. package/js/tag/update/processTagArray.js +4 -2
  32. package/js/tag/update/processTagArray.js.map +1 -1
  33. package/js/tag/update/updateExistingValue.function.js +8 -6
  34. package/js/tag/update/updateExistingValue.function.js.map +1 -1
  35. package/js/updateBeforeTemplate.function.js.map +1 -1
  36. package/package.json +1 -1
package/bundle.js CHANGED
@@ -983,18 +983,19 @@ function buildClones(temporary, insertBefore) {
983
983
  const clones = [];
984
984
  const template = temporary.children[0];
985
985
  let nextSibling = template.content.firstChild;
986
+ const fragment = document.createDocumentFragment();
986
987
  while (nextSibling) {
987
988
  const nextNextSibling = nextSibling.nextSibling;
988
- buildSibling(nextSibling, insertBefore);
989
989
  clones.push(nextSibling);
990
+ fragment.appendChild(nextSibling);
990
991
  nextSibling = nextNextSibling;
991
992
  }
993
+ if (insertBefore.parentNode) {
994
+ const parentNode = insertBefore.parentNode;
995
+ parentNode.insertBefore(fragment, insertBefore);
996
+ }
992
997
  return clones;
993
998
  }
994
- function buildSibling(nextSibling, insertBefore) {
995
- const parentNode = insertBefore.parentNode;
996
- parentNode.insertBefore(nextSibling, insertBefore);
997
- }
998
999
 
999
1000
 
1000
1001
  /***/ }),
@@ -1065,14 +1066,17 @@ function initMemory(tagSupport) {
1065
1066
  }
1066
1067
  function triggerStateUpdate(tagSupport, callback, oldState, ...args) {
1067
1068
  const state = tagSupport.memory.state;
1068
- // oldState = (tagSupport.global.oldest as TagSupport).memory.state
1069
1069
  // ensure that the oldest has the latest values first
1070
1070
  (0,_syncStates_function__WEBPACK_IMPORTED_MODULE_3__.syncStates)(state, oldState);
1071
1071
  // run the callback
1072
1072
  const maybePromise = callback(...args);
1073
- // const maybePromise = callback(...args as [any,any,any,any,any,any])
1074
1073
  // send the oldest state changes into the newest
1075
1074
  (0,_syncStates_function__WEBPACK_IMPORTED_MODULE_3__.syncStates)(oldState, state);
1075
+ /*
1076
+ if(tagSupport.global.deleted) {
1077
+ return maybePromise // While running callback the tag was deleted. Often that happens
1078
+ }
1079
+ */
1076
1080
  (0,_tag_render_renderTagSupport_function__WEBPACK_IMPORTED_MODULE_1__.renderTagSupport)(tagSupport, false);
1077
1081
  if (maybePromise instanceof Promise) {
1078
1082
  maybePromise.finally(() => {
@@ -1124,26 +1128,33 @@ function children() {
1124
1128
 
1125
1129
  __webpack_require__.r(__webpack_exports__);
1126
1130
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1127
- /* harmony export */ callback: () => (/* reexport safe */ _callbackMaker_function__WEBPACK_IMPORTED_MODULE_5__.callback),
1128
- /* harmony export */ callbackMaker: () => (/* reexport safe */ _callbackMaker_function__WEBPACK_IMPORTED_MODULE_5__.callbackMaker),
1129
- /* harmony export */ children: () => (/* reexport safe */ _children__WEBPACK_IMPORTED_MODULE_8__.children),
1130
- /* harmony export */ letState: () => (/* reexport safe */ _letState_function__WEBPACK_IMPORTED_MODULE_3__.letState),
1131
- /* harmony export */ onDestroy: () => (/* reexport safe */ _onDestroy__WEBPACK_IMPORTED_MODULE_7__.onDestroy),
1132
- /* harmony export */ onInit: () => (/* reexport safe */ _onInit__WEBPACK_IMPORTED_MODULE_6__.onInit),
1133
- /* harmony export */ providers: () => (/* reexport safe */ _providers__WEBPACK_IMPORTED_MODULE_4__.providers),
1131
+ /* harmony export */ callback: () => (/* reexport safe */ _callbackMaker_function__WEBPACK_IMPORTED_MODULE_7__.callback),
1132
+ /* harmony export */ callbackMaker: () => (/* reexport safe */ _callbackMaker_function__WEBPACK_IMPORTED_MODULE_7__.callbackMaker),
1133
+ /* harmony export */ children: () => (/* reexport safe */ _children__WEBPACK_IMPORTED_MODULE_10__.children),
1134
+ /* harmony export */ letProp: () => (/* reexport safe */ _letProp_function__WEBPACK_IMPORTED_MODULE_4__.letProp),
1135
+ /* harmony export */ letState: () => (/* reexport safe */ _letState_function__WEBPACK_IMPORTED_MODULE_5__.letState),
1136
+ /* harmony export */ onDestroy: () => (/* reexport safe */ _onDestroy__WEBPACK_IMPORTED_MODULE_9__.onDestroy),
1137
+ /* harmony export */ onInit: () => (/* reexport safe */ _onInit__WEBPACK_IMPORTED_MODULE_8__.onInit),
1138
+ /* harmony export */ providers: () => (/* reexport safe */ _providers__WEBPACK_IMPORTED_MODULE_6__.providers),
1134
1139
  /* harmony export */ setUse: () => (/* reexport safe */ _setUse_function__WEBPACK_IMPORTED_MODULE_1__.setUse),
1135
1140
  /* harmony export */ state: () => (/* reexport safe */ _state_function__WEBPACK_IMPORTED_MODULE_2__.state),
1141
+ /* harmony export */ subject: () => (/* reexport safe */ _subject_function__WEBPACK_IMPORTED_MODULE_3__.subject),
1136
1142
  /* harmony export */ watch: () => (/* reexport safe */ _watch_function__WEBPACK_IMPORTED_MODULE_0__.watch)
1137
1143
  /* harmony export */ });
1138
1144
  /* harmony import */ var _watch_function__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./watch.function */ "./ts/state/watch.function.ts");
1139
1145
  /* harmony import */ var _setUse_function__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./setUse.function */ "./ts/state/setUse.function.ts");
1140
1146
  /* harmony import */ var _state_function__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./state.function */ "./ts/state/state.function.ts");
1141
- /* harmony import */ var _letState_function__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./letState.function */ "./ts/state/letState.function.ts");
1142
- /* harmony import */ var _providers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./providers */ "./ts/state/providers.ts");
1143
- /* harmony import */ var _callbackMaker_function__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./callbackMaker.function */ "./ts/state/callbackMaker.function.ts");
1144
- /* harmony import */ var _onInit__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./onInit */ "./ts/state/onInit.ts");
1145
- /* harmony import */ var _onDestroy__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./onDestroy */ "./ts/state/onDestroy.ts");
1146
- /* harmony import */ var _children__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./children */ "./ts/state/children.ts");
1147
+ /* harmony import */ var _subject_function__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./subject.function */ "./ts/state/subject.function.ts");
1148
+ /* harmony import */ var _letProp_function__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./letProp.function */ "./ts/state/letProp.function.ts");
1149
+ /* harmony import */ var _letState_function__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./letState.function */ "./ts/state/letState.function.ts");
1150
+ /* harmony import */ var _providers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./providers */ "./ts/state/providers.ts");
1151
+ /* harmony import */ var _callbackMaker_function__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./callbackMaker.function */ "./ts/state/callbackMaker.function.ts");
1152
+ /* harmony import */ var _onInit__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./onInit */ "./ts/state/onInit.ts");
1153
+ /* harmony import */ var _onDestroy__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./onDestroy */ "./ts/state/onDestroy.ts");
1154
+ /* harmony import */ var _children__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./children */ "./ts/state/children.ts");
1155
+
1156
+
1157
+
1147
1158
 
1148
1159
 
1149
1160
 
@@ -1154,6 +1165,36 @@ __webpack_require__.r(__webpack_exports__);
1154
1165
 
1155
1166
 
1156
1167
 
1168
+ /***/ }),
1169
+
1170
+ /***/ "./ts/state/letProp.function.ts":
1171
+ /*!**************************************!*\
1172
+ !*** ./ts/state/letProp.function.ts ***!
1173
+ \**************************************/
1174
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1175
+
1176
+ __webpack_require__.r(__webpack_exports__);
1177
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1178
+ /* harmony export */ letProp: () => (/* binding */ letProp)
1179
+ /* harmony export */ });
1180
+ /* harmony import */ var _letState_function__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./letState.function */ "./ts/state/letState.function.ts");
1181
+ /* harmony import */ var _watch_function__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./watch.function */ "./ts/state/watch.function.ts");
1182
+
1183
+
1184
+ /**
1185
+ * Enables the ability to maintain a change to a props value until the prop itself changes
1186
+ * @param prop typically the name of an existing prop
1187
+ * @returns immediately call the returned function: letProp(y)(x => [y, y=x])
1188
+ */
1189
+ function letProp(prop) {
1190
+ return getSetProp => {
1191
+ let myProp = (0,_letState_function__WEBPACK_IMPORTED_MODULE_0__.letState)(prop)(getSetProp);
1192
+ (0,_watch_function__WEBPACK_IMPORTED_MODULE_1__.watch)([prop], () => getSetProp(myProp = prop));
1193
+ getSetProp(myProp);
1194
+ return myProp;
1195
+ };
1196
+ }
1197
+
1157
1198
 
1158
1199
  /***/ }),
1159
1200
 
@@ -1354,15 +1395,14 @@ _setUse_function__WEBPACK_IMPORTED_MODULE_1__.setUse.memory.providerConfig = {
1354
1395
  };
1355
1396
  const providers = {
1356
1397
  create: (constructMethod) => {
1357
- const cm = constructMethod;
1358
- const compareTo = cm.compareTo = cm.compareTo || cm.toString();
1359
1398
  const stateDiffMemory = (0,_state_function__WEBPACK_IMPORTED_MODULE_2__.state)(() => ({ stateDiff: 0, provider: undefined }));
1399
+ // mimic how many states were called the first time
1360
1400
  if (stateDiffMemory.stateDiff) {
1361
1401
  for (let x = stateDiffMemory.stateDiff; x > 0; --x) {
1362
1402
  (0,_state_function__WEBPACK_IMPORTED_MODULE_2__.state)(undefined);
1363
1403
  }
1364
1404
  const result = (0,_state_function__WEBPACK_IMPORTED_MODULE_2__.state)(undefined);
1365
- stateDiffMemory.provider.constructMethod.compareTo = compareTo;
1405
+ // stateDiffMemory.provider.constructMethod.compareTo = compareTo
1366
1406
  return result;
1367
1407
  }
1368
1408
  const result = (0,_state_function__WEBPACK_IMPORTED_MODULE_2__.state)(() => {
@@ -1384,6 +1424,9 @@ const providers = {
1384
1424
  stateDiffMemory.stateDiff = stateDiff;
1385
1425
  return instance;
1386
1426
  });
1427
+ const cm = constructMethod;
1428
+ // const compareTo = cm.compareTo = cm.compareTo || cm.toString()
1429
+ const compareTo = cm.compareTo = cm.toString();
1387
1430
  stateDiffMemory.provider.constructMethod.compareTo = compareTo;
1388
1431
  return result;
1389
1432
  },
@@ -1550,6 +1593,7 @@ function state(defaultValue) {
1550
1593
  __webpack_require__.r(__webpack_exports__);
1551
1594
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1552
1595
  /* harmony export */ StateEchoBack: () => (/* binding */ StateEchoBack),
1596
+ /* harmony export */ getCallbackValue: () => (/* binding */ getCallbackValue),
1553
1597
  /* harmony export */ getStateValue: () => (/* binding */ getStateValue)
1554
1598
  /* harmony export */ });
1555
1599
  /* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../errors */ "./ts/errors.ts");
@@ -1598,19 +1642,16 @@ function getStateValue(state) {
1598
1642
  if (!callback) {
1599
1643
  return state.defaultValue;
1600
1644
  }
1601
- const oldState = callback(StateEchoBack); // get value and set to undefined
1602
- const [oldValue] = oldState;
1603
- const [checkValue] = callback(oldValue); // set back to original value
1645
+ const [value, checkValue] = getCallbackValue(callback);
1604
1646
  if (checkValue !== StateEchoBack) {
1605
1647
  const message = 'State property not used correctly. Second item in array is not setting value as expected.\n\n' +
1606
1648
  'For "let" state use `let name = state(default)(x => [name, name = x])`\n\n' +
1607
1649
  'For "const" state use `const name = state(default)()`\n\n' +
1608
1650
  'Problem state:\n' + (callback ? callback.toString() : JSON.stringify(state)) + '\n';
1609
- console.error(message, { state, callback, oldState, oldValue, checkValue });
1651
+ console.error(message, { state, callback, value, checkValue });
1610
1652
  throw new Error(message);
1611
1653
  }
1612
- // state.lastValue = oldValue
1613
- return oldValue;
1654
+ return value;
1614
1655
  }
1615
1656
  class StateEchoBack {
1616
1657
  }
@@ -1661,6 +1702,53 @@ function checkStateMismatch(
1661
1702
  })
1662
1703
  }
1663
1704
  */
1705
+ function getCallbackValue(callback) {
1706
+ const oldState = callback(StateEchoBack); // get value and set to undefined
1707
+ const [value] = oldState;
1708
+ const [checkValue] = callback(value); // set back to original value
1709
+ return [value, checkValue];
1710
+ }
1711
+
1712
+
1713
+ /***/ }),
1714
+
1715
+ /***/ "./ts/state/subject.function.ts":
1716
+ /*!**************************************!*\
1717
+ !*** ./ts/state/subject.function.ts ***!
1718
+ \**************************************/
1719
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1720
+
1721
+ __webpack_require__.r(__webpack_exports__);
1722
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1723
+ /* harmony export */ subject: () => (/* binding */ subject)
1724
+ /* harmony export */ });
1725
+ /* harmony import */ var _subject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../subject */ "./ts/subject/index.ts");
1726
+ /* harmony import */ var _tag_getSupportInCycle_function__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../tag/getSupportInCycle.function */ "./ts/tag/getSupportInCycle.function.ts");
1727
+ /* harmony import */ var _setUse_function__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./setUse.function */ "./ts/state/setUse.function.ts");
1728
+ /* harmony import */ var _state_function__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./state.function */ "./ts/state/state.function.ts");
1729
+ /* harmony import */ var _syncStates_function__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./syncStates.function */ "./ts/state/syncStates.function.ts");
1730
+
1731
+
1732
+
1733
+
1734
+
1735
+ function subject(value, onSubscription) {
1736
+ const oldestState = (0,_state_function__WEBPACK_IMPORTED_MODULE_3__.state)(() => _setUse_function__WEBPACK_IMPORTED_MODULE_2__.setUse.memory.stateConfig.array);
1737
+ const nowTagSupport = (0,_tag_getSupportInCycle_function__WEBPACK_IMPORTED_MODULE_1__.getSupportInCycle)();
1738
+ return new _subject__WEBPACK_IMPORTED_MODULE_0__.Subject(value, onSubscription).pipe(x => {
1739
+ (0,_syncStates_function__WEBPACK_IMPORTED_MODULE_4__.syncStates)(nowTagSupport.memory.state, oldestState);
1740
+ return x;
1741
+ });
1742
+ }
1743
+ function all(args) {
1744
+ const oldestState = (0,_state_function__WEBPACK_IMPORTED_MODULE_3__.state)(() => _setUse_function__WEBPACK_IMPORTED_MODULE_2__.setUse.memory.stateConfig.array);
1745
+ const nowTagSupport = (0,_tag_getSupportInCycle_function__WEBPACK_IMPORTED_MODULE_1__.getSupportInCycle)();
1746
+ return _subject__WEBPACK_IMPORTED_MODULE_0__.Subject.all(args).pipe(x => {
1747
+ (0,_syncStates_function__WEBPACK_IMPORTED_MODULE_4__.syncStates)(nowTagSupport.memory.state, oldestState);
1748
+ return x;
1749
+ });
1750
+ }
1751
+ subject.all = all;
1664
1752
 
1665
1753
 
1666
1754
  /***/ }),
@@ -1926,16 +2014,6 @@ class Subject {
1926
2014
  }
1927
2015
  static globalSubCount$ = new Subject(0); // for ease of debugging
1928
2016
  }
1929
- /*
1930
- export const Subject = (<T>(value?: T, onSubscription?: OnSubscription<T>) => {
1931
- return new Subject(value, onSubscription)
1932
- }) as (<T>(value?: T, onSubscription?: OnSubscription<T>) => Subject<T>) & {
1933
- globalSubCount$: Subject<number>
1934
- // globalSubs: Subscription<any>[]
1935
- all: <T>(...args: (T | Subject<T>)[]) => Subject<T>[]
1936
- }
1937
- */
1938
- // Subject.globalSubs = [] // 🔬 for testing
1939
2017
 
1940
2018
 
1941
2019
  /***/ }),
@@ -2298,12 +2376,6 @@ class BaseTagSupport {
2298
2376
  global.newest = this;
2299
2377
  subject.tagSupport = this;
2300
2378
  this.hasLiveElements = true;
2301
- // remove old clones
2302
- if (this.clones.length) {
2303
- // this.destroyClones()
2304
- // this.clones.forEach(clone => this.checkCloneRemoval(clone, 0))
2305
- }
2306
- global.insertBefore = insertBefore;
2307
2379
  const context = this.update();
2308
2380
  const template = this.getTemplate();
2309
2381
  const isForceElement = options.forceElement;
@@ -2389,12 +2461,23 @@ class TagSupport extends BaseTagSupport {
2389
2461
  stagger: 0,
2390
2462
  byParent: false, // Only destroy clones of direct children
2391
2463
  }) {
2464
+ const firstDestroy = !options.byParent;
2392
2465
  const global = this.global;
2393
2466
  const subject = this.subject;
2394
- if (subject.clone) {
2395
- throw new Error('maybe issue here?');
2467
+ const childTags = options.byParent ? [] : (0,_destroy_support__WEBPACK_IMPORTED_MODULE_6__.getChildTagsToDestroy)(this.childTags);
2468
+ if (firstDestroy && (0,_isInstance__WEBPACK_IMPORTED_MODULE_2__.isTagComponent)(this.templater)) {
2469
+ (0,_tagRunner__WEBPACK_IMPORTED_MODULE_5__.runBeforeDestroy)(this, this);
2396
2470
  }
2397
- // put back down the template tag
2471
+ // signify immediately child has been deleted (looked for during event processing)
2472
+ childTags.forEach(child => {
2473
+ const subGlobal = child.global;
2474
+ delete subGlobal.newest;
2475
+ subGlobal.deleted = true;
2476
+ if ((0,_isInstance__WEBPACK_IMPORTED_MODULE_2__.isTagComponent)(child.templater)) {
2477
+ (0,_tagRunner__WEBPACK_IMPORTED_MODULE_5__.runBeforeDestroy)(child, child);
2478
+ }
2479
+ });
2480
+ // HTML DOM manipulation. Put back down the template tag
2398
2481
  const insertBefore = global.insertBefore;
2399
2482
  if (insertBefore.nodeName === 'TEMPLATE') {
2400
2483
  const placeholder = global.placeholder;
@@ -2404,25 +2487,12 @@ class TagSupport extends BaseTagSupport {
2404
2487
  }
2405
2488
  }
2406
2489
  }
2407
- // the isComponent check maybe able to be removed
2408
- const isComponent = (0,_isInstance__WEBPACK_IMPORTED_MODULE_2__.isTagComponent)(this.templater) ? true : false;
2409
- if (isComponent) {
2410
- (0,_tagRunner__WEBPACK_IMPORTED_MODULE_5__.runBeforeDestroy)(this, this);
2411
- }
2412
- const childTags = options.byParent ? [] : (0,_destroy_support__WEBPACK_IMPORTED_MODULE_6__.getChildTagsToDestroy)(this.childTags);
2413
- // signify that no further event rendering should take place by making logic think a render occurred during event
2414
- // signify immediately child has been deleted (looked for during event processing)
2415
- childTags.forEach(child => {
2416
- const subGlobal = child.global;
2417
- delete subGlobal.newest;
2418
- subGlobal.deleted = true;
2419
- });
2420
2490
  this.destroySubscriptions();
2421
2491
  let mainPromise;
2422
2492
  if (this.ownerTagSupport) {
2423
2493
  this.ownerTagSupport.childTags = this.ownerTagSupport.childTags.filter(child => child !== this);
2424
2494
  }
2425
- if (!options.byParent) {
2495
+ if (firstDestroy) {
2426
2496
  const { stagger, promise } = this.destroyClones(options);
2427
2497
  options.stagger = stagger;
2428
2498
  if (promise) {
@@ -2485,13 +2555,6 @@ class TagSupport extends BaseTagSupport {
2485
2555
  const next = () => {
2486
2556
  const parentNode = clone.parentNode;
2487
2557
  if (parentNode) {
2488
- /*
2489
- const stillHas = Array.from(parentNode.children).includes(clone as Element)
2490
- if(stillHas) {
2491
- console.log('stillHas', {clone})
2492
- parentNode.removeChild(clone)
2493
- }
2494
- */
2495
2558
  parentNode.removeChild(clone);
2496
2559
  }
2497
2560
  const ownerSupport = this.ownerTagSupport;
@@ -3024,19 +3087,6 @@ subject) {
3024
3087
  return prevSupport; // already rendered during triggered events
3025
3088
  }
3026
3089
  const toRedrawTag = prevSupport || lastSupport || global.oldest;
3027
- /*
3028
- if(oldestSupport === newSupport) {
3029
- newSupport = new TagSupport(
3030
- newSupport.templater,
3031
- newSupport.ownerTagSupport,
3032
- newSupport.subject,
3033
- )
3034
-
3035
- newSupport.memory = {...oldestSupport.memory}
3036
- newSupport.memory.state = [...oldestSupport.memory.state]
3037
- newSupport.global = oldestSupport.global
3038
- }
3039
- */
3040
3090
  const reSupport = (0,_renderWithSupport_function__WEBPACK_IMPORTED_MODULE_2__.renderWithSupport)(newSupport, toRedrawTag, subject, ownerSupport);
3041
3091
  const oldest = global.oldest || oldestSupport;
3042
3092
  reSupport.global.oldest = oldest;
@@ -3444,7 +3494,8 @@ element, props) {
3444
3494
  const templateElm = document.createElement('template');
3445
3495
  templateElm.setAttribute('id', 'app-tag-' + appElements.length);
3446
3496
  templateElm.setAttribute('app-tag-detail', appElements.length.toString());
3447
- element.appendChild(templateElm);
3497
+ const fragment = document.createDocumentFragment();
3498
+ fragment.appendChild(templateElm);
3448
3499
  element.destroy = async () => {
3449
3500
  await tagSupport.destroy();
3450
3501
  const insertBefore = tagSupport.global.insertBefore;
@@ -3456,6 +3507,7 @@ element, props) {
3456
3507
  tagSupport.global.newest = tagSupport;
3457
3508
  element.setUse = app.original.setUse;
3458
3509
  appElements.push({ element, tagSupport });
3510
+ element.appendChild(fragment);
3459
3511
  return {
3460
3512
  tagSupport,
3461
3513
  tags: app.original.tags,
@@ -3920,11 +3972,13 @@ function processAddTagArrayItem(before, tagSupport, index, options, lastArray) {
3920
3972
  added: options.counts.added + index,
3921
3973
  removed: options.counts.removed,
3922
3974
  };
3975
+ const fragment = document.createDocumentFragment();
3923
3976
  const newTempElm = document.createElement('template');
3924
- const parent = before.parentNode;
3925
- parent.insertBefore(newTempElm, before);
3977
+ fragment.appendChild(newTempElm);
3926
3978
  tagSupport.buildBeforeElement(newTempElm, // before,
3927
3979
  { counts, forceElement: options.forceElement });
3980
+ const parent = before.parentNode;
3981
+ parent.insertBefore(fragment, before);
3928
3982
  }
3929
3983
  /** compare two values. If both values are arrays then the items will be compared */
3930
3984
  function areLikeValues(valueA, valueB) {
@@ -4200,8 +4254,6 @@ __webpack_require__.r(__webpack_exports__);
4200
4254
  /* harmony import */ var _isLikeTags_function__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../isLikeTags.function */ "./ts/tag/isLikeTags.function.ts");
4201
4255
  /* harmony import */ var _interpolations_bindSubjectCallback_function__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../interpolations/bindSubjectCallback.function */ "./ts/interpolations/bindSubjectCallback.function.ts");
4202
4256
  /* harmony import */ var _processTag_function__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./processTag.function */ "./ts/tag/update/processTag.function.ts");
4203
- /* harmony import */ var _insertAfter_function__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../insertAfter.function */ "./ts/insertAfter.function.ts");
4204
-
4205
4257
 
4206
4258
 
4207
4259
 
@@ -4318,11 +4370,14 @@ function prepareUpdateToComponent(templater, subjectTag, insertBefore, ownerSupp
4318
4370
  tagSupport.memory.state.push(...newestState);
4319
4371
  }
4320
4372
  else {
4321
- const placeholder = subjectSup.global.placeholder;
4322
- if (placeholder && !insertBefore.parentNode) {
4323
- (0,_insertAfter_function__WEBPACK_IMPORTED_MODULE_11__.insertAfter)(insertBefore, placeholder);
4324
- delete subjectSup.global.placeholder;
4373
+ (0,_checkDestroyPrevious_function__WEBPACK_IMPORTED_MODULE_6__.restoreTagMarker)(subjectSup);
4374
+ /*
4375
+ const placeholder = subjectSup.global.placeholder
4376
+ if(placeholder && !insertBefore.parentNode) {
4377
+ insertAfter(insertBefore,placeholder)
4378
+ delete subjectSup.global.placeholder
4325
4379
  }
4380
+ */
4326
4381
  (0,_processSubjectComponent_function__WEBPACK_IMPORTED_MODULE_7__.processSubjectComponent)(templater, subjectTag, insertBefore, ownerSupport, {
4327
4382
  forceElement: true,
4328
4383
  counts: { added: 0, removed: 0 },
@@ -4457,6 +4512,7 @@ __webpack_require__.r(__webpack_exports__);
4457
4512
  /* harmony export */ isTagComponent: () => (/* reexport safe */ _isInstance__WEBPACK_IMPORTED_MODULE_3__.isTagComponent),
4458
4513
  /* harmony export */ isTagTemplater: () => (/* reexport safe */ _isInstance__WEBPACK_IMPORTED_MODULE_3__.isTagTemplater),
4459
4514
  /* harmony export */ kidsToTagArraySubject: () => (/* reexport safe */ _tag_tag__WEBPACK_IMPORTED_MODULE_0__.kidsToTagArraySubject),
4515
+ /* harmony export */ letProp: () => (/* reexport safe */ _state_index__WEBPACK_IMPORTED_MODULE_4__.letProp),
4460
4516
  /* harmony export */ letState: () => (/* reexport safe */ _state_index__WEBPACK_IMPORTED_MODULE_4__.letState),
4461
4517
  /* harmony export */ onDestroy: () => (/* reexport safe */ _state_index__WEBPACK_IMPORTED_MODULE_4__.onDestroy),
4462
4518
  /* harmony export */ onInit: () => (/* reexport safe */ _state_index__WEBPACK_IMPORTED_MODULE_4__.onInit),
@@ -4466,6 +4522,7 @@ __webpack_require__.r(__webpack_exports__);
4466
4522
  /* harmony export */ runBeforeRender: () => (/* reexport safe */ _tag_tagRunner__WEBPACK_IMPORTED_MODULE_11__.runBeforeRender),
4467
4523
  /* harmony export */ setUse: () => (/* reexport safe */ _state_index__WEBPACK_IMPORTED_MODULE_4__.setUse),
4468
4524
  /* harmony export */ state: () => (/* reexport safe */ _state_index__WEBPACK_IMPORTED_MODULE_4__.state),
4525
+ /* harmony export */ subject: () => (/* reexport safe */ _state_index__WEBPACK_IMPORTED_MODULE_4__.subject),
4469
4526
  /* harmony export */ tag: () => (/* reexport safe */ _tag_tag__WEBPACK_IMPORTED_MODULE_0__.tag),
4470
4527
  /* harmony export */ tagElement: () => (/* reexport safe */ _tag_tagElement__WEBPACK_IMPORTED_MODULE_9__.tagElement),
4471
4528
  /* harmony export */ tags: () => (/* reexport safe */ _tag_tag__WEBPACK_IMPORTED_MODULE_0__.tags),
@@ -4541,6 +4598,7 @@ var __webpack_exports__isTagClass = __webpack_exports__.isTagClass;
4541
4598
  var __webpack_exports__isTagComponent = __webpack_exports__.isTagComponent;
4542
4599
  var __webpack_exports__isTagTemplater = __webpack_exports__.isTagTemplater;
4543
4600
  var __webpack_exports__kidsToTagArraySubject = __webpack_exports__.kidsToTagArraySubject;
4601
+ var __webpack_exports__letProp = __webpack_exports__.letProp;
4544
4602
  var __webpack_exports__letState = __webpack_exports__.letState;
4545
4603
  var __webpack_exports__onDestroy = __webpack_exports__.onDestroy;
4546
4604
  var __webpack_exports__onInit = __webpack_exports__.onInit;
@@ -4550,6 +4608,7 @@ var __webpack_exports__renderWithSupport = __webpack_exports__.renderWithSupport
4550
4608
  var __webpack_exports__runBeforeRender = __webpack_exports__.runBeforeRender;
4551
4609
  var __webpack_exports__setUse = __webpack_exports__.setUse;
4552
4610
  var __webpack_exports__state = __webpack_exports__.state;
4611
+ var __webpack_exports__subject = __webpack_exports__.subject;
4553
4612
  var __webpack_exports__tag = __webpack_exports__.tag;
4554
4613
  var __webpack_exports__tagElement = __webpack_exports__.tagElement;
4555
4614
  var __webpack_exports__tags = __webpack_exports__.tags;
@@ -4557,6 +4616,6 @@ var __webpack_exports__watch = __webpack_exports__.watch;
4557
4616
  var __webpack_exports__willCallback = __webpack_exports__.willCallback;
4558
4617
  var __webpack_exports__willPromise = __webpack_exports__.willPromise;
4559
4618
  var __webpack_exports__willSubscribe = __webpack_exports__.willSubscribe;
4560
- export { __webpack_exports__ArrayNoKeyError as ArrayNoKeyError, __webpack_exports__BaseTagSupport as BaseTagSupport, __webpack_exports__StateMismatchError as StateMismatchError, __webpack_exports__Subject as Subject, __webpack_exports__SyncCallbackError as SyncCallbackError, __webpack_exports__Tag as Tag, __webpack_exports__TagError as TagError, __webpack_exports__TagSupport as TagSupport, __webpack_exports__ValueSubject as ValueSubject, __webpack_exports__callback as callback, __webpack_exports__callbackMaker as callbackMaker, __webpack_exports__children as children, __webpack_exports__combineLatest as combineLatest, __webpack_exports__hmr as hmr, __webpack_exports__html as html, __webpack_exports__interpolateElement as interpolateElement, __webpack_exports__interpolateString as interpolateString, __webpack_exports__isLikeValueSets as isLikeValueSets, __webpack_exports__isSubjectInstance as isSubjectInstance, __webpack_exports__isTag as isTag, __webpack_exports__isTagArray as isTagArray, __webpack_exports__isTagClass as isTagClass, __webpack_exports__isTagComponent as isTagComponent, __webpack_exports__isTagTemplater as isTagTemplater, __webpack_exports__kidsToTagArraySubject as kidsToTagArraySubject, __webpack_exports__letState as letState, __webpack_exports__onDestroy as onDestroy, __webpack_exports__onInit as onInit, __webpack_exports__providers as providers, __webpack_exports__renderTagSupport as renderTagSupport, __webpack_exports__renderWithSupport as renderWithSupport, __webpack_exports__runBeforeRender as runBeforeRender, __webpack_exports__setUse as setUse, __webpack_exports__state as state, __webpack_exports__tag as tag, __webpack_exports__tagElement as tagElement, __webpack_exports__tags as tags, __webpack_exports__watch as watch, __webpack_exports__willCallback as willCallback, __webpack_exports__willPromise as willPromise, __webpack_exports__willSubscribe as willSubscribe };
4619
+ export { __webpack_exports__ArrayNoKeyError as ArrayNoKeyError, __webpack_exports__BaseTagSupport as BaseTagSupport, __webpack_exports__StateMismatchError as StateMismatchError, __webpack_exports__Subject as Subject, __webpack_exports__SyncCallbackError as SyncCallbackError, __webpack_exports__Tag as Tag, __webpack_exports__TagError as TagError, __webpack_exports__TagSupport as TagSupport, __webpack_exports__ValueSubject as ValueSubject, __webpack_exports__callback as callback, __webpack_exports__callbackMaker as callbackMaker, __webpack_exports__children as children, __webpack_exports__combineLatest as combineLatest, __webpack_exports__hmr as hmr, __webpack_exports__html as html, __webpack_exports__interpolateElement as interpolateElement, __webpack_exports__interpolateString as interpolateString, __webpack_exports__isLikeValueSets as isLikeValueSets, __webpack_exports__isSubjectInstance as isSubjectInstance, __webpack_exports__isTag as isTag, __webpack_exports__isTagArray as isTagArray, __webpack_exports__isTagClass as isTagClass, __webpack_exports__isTagComponent as isTagComponent, __webpack_exports__isTagTemplater as isTagTemplater, __webpack_exports__kidsToTagArraySubject as kidsToTagArraySubject, __webpack_exports__letProp as letProp, __webpack_exports__letState as letState, __webpack_exports__onDestroy as onDestroy, __webpack_exports__onInit as onInit, __webpack_exports__providers as providers, __webpack_exports__renderTagSupport as renderTagSupport, __webpack_exports__renderWithSupport as renderWithSupport, __webpack_exports__runBeforeRender as runBeforeRender, __webpack_exports__setUse as setUse, __webpack_exports__state as state, __webpack_exports__subject as subject, __webpack_exports__tag as tag, __webpack_exports__tagElement as tagElement, __webpack_exports__tags as tags, __webpack_exports__watch as watch, __webpack_exports__willCallback as willCallback, __webpack_exports__willPromise as willPromise, __webpack_exports__willSubscribe as willSubscribe };
4561
4620
 
4562
4621
  //# sourceMappingURL=bundle.js.map