taggedjs 2.3.27 → 2.3.30
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.
- package/index.js +1 -1
- package/js/CustomError.d.ts +7 -0
- package/js/CustomError.js +9 -0
- package/js/CustomError.js.map +1 -0
- package/js/Errors.d.ts +14 -0
- package/js/Errors.js +21 -0
- package/js/Errors.js.map +1 -0
- package/js/Errors2.d.ts +14 -0
- package/js/Errors2.js +21 -0
- package/js/Errors2.js.map +1 -0
- package/js/Subject.d.ts +3 -2
- package/js/Subject.js +11 -7
- package/js/Subject.js.map +1 -1
- package/js/Tag.class.d.ts +6 -8
- package/js/Tag.class.js +35 -63
- package/js/Tag.class.js.map +1 -1
- package/js/Tag.utils.d.ts +9 -5
- package/js/Tag.utils.js +4 -16
- package/js/Tag.utils.js.map +1 -1
- package/js/TagSupport.class.d.ts +23 -0
- package/js/TagSupport.class.js +86 -0
- package/js/TagSupport.class.js.map +1 -0
- package/js/ValueSubject.d.ts +2 -2
- package/js/ValueSubject.js +3 -3
- package/js/ValueSubject.js.map +1 -1
- package/js/bindSubjectCallback.function.d.ts +6 -3
- package/js/bindSubjectCallback.function.js +25 -13
- package/js/bindSubjectCallback.function.js.map +1 -1
- package/js/deepFunctions.js +9 -4
- package/js/deepFunctions.js.map +1 -1
- package/js/elementDestroyCheck.function.d.ts +3 -3
- package/js/elementDestroyCheck.function.js.map +1 -1
- package/js/elementInitCheck.d.ts +1 -1
- package/js/elementInitCheck.js +4 -4
- package/js/elementInitCheck.js.map +1 -1
- package/js/gateway/loadTagGateway.function.d.ts +2 -2
- package/js/gateway/loadTagGateway.function.js.map +1 -1
- package/js/gateway/tagGateway.function.d.ts +3 -2
- package/js/gateway/tagGateway.function.js.map +1 -1
- package/js/gateway/tagGateway.utils.d.ts +4 -3
- package/js/gateway/tagGateway.utils.js +5 -7
- package/js/gateway/tagGateway.utils.js.map +1 -1
- package/js/getCallback.js +1 -1
- package/js/getCallback.js.map +1 -1
- package/js/getTagSupport.d.ts +1 -2
- package/js/getTagSupport.js +7 -11
- package/js/getTagSupport.js.map +1 -1
- package/js/hasTagSupportChanged.function.d.ts +7 -0
- package/js/hasTagSupportChanged.function.js +76 -0
- package/js/hasTagSupportChanged.function.js.map +1 -0
- package/js/index.d.ts +17 -7
- package/js/index.js +16 -7
- package/js/index.js.map +1 -1
- package/js/interpolateAttributes.js +24 -16
- package/js/interpolateAttributes.js.map +1 -1
- package/js/interpolateContentTemplates.d.ts +1 -1
- package/js/interpolateContentTemplates.js +8 -10
- package/js/interpolateContentTemplates.js.map +1 -1
- package/js/interpolateElement.d.ts +2 -0
- package/js/interpolateElement.js +1 -8
- package/js/interpolateElement.js.map +1 -1
- package/js/interpolateTemplate.d.ts +3 -3
- package/js/interpolateTemplate.js +18 -13
- package/js/interpolateTemplate.js.map +1 -1
- package/js/isInstance.d.ts +3 -2
- package/js/isInstance.js +3 -0
- package/js/isInstance.js.map +1 -1
- package/js/onDestroy.js +0 -3
- package/js/onDestroy.js.map +1 -1
- package/js/onInit.js +0 -4
- package/js/onInit.js.map +1 -1
- package/js/processNewValue.function.d.ts +2 -0
- package/js/processNewValue.function.js +29 -0
- package/js/processNewValue.function.js.map +1 -0
- package/js/processRegularValue.function.d.ts +7 -0
- package/js/processRegularValue.function.js +21 -0
- package/js/processRegularValue.function.js.map +1 -0
- package/js/processSubjectComponent.function.js +5 -21
- package/js/processSubjectComponent.function.js.map +1 -1
- package/js/processSubjectValue.function.d.ts +6 -6
- package/js/processSubjectValue.function.js +33 -48
- package/js/processSubjectValue.function.js.map +1 -1
- package/js/processTagArray.d.ts +1 -0
- package/js/processTagArray.js +60 -24
- package/js/processTagArray.js.map +1 -1
- package/js/processTagResult.function.d.ts +1 -2
- package/js/processTagResult.function.js +1 -17
- package/js/processTagResult.function.js.map +1 -1
- package/js/propState.function.d.ts +2 -0
- package/js/propState.function.js +3 -0
- package/js/propState.function.js.map +1 -0
- package/js/provider.utils.d.ts +2 -0
- package/js/provider.utils.js +34 -0
- package/js/provider.utils.js.map +1 -0
- package/js/providers.d.ts +2 -1
- package/js/providers.js +2 -2
- package/js/providers.js.map +1 -1
- package/js/redrawTag.function.d.ts +3 -2
- package/js/redrawTag.function.js +2 -4
- package/js/redrawTag.function.js.map +1 -1
- package/js/set.function.d.ts +23 -0
- package/{_js/state.js → js/set.function.js} +60 -64
- package/js/set.function.js.map +1 -0
- package/js/setLet.function.d.ts +3 -0
- package/js/setLet.function.js +31 -0
- package/js/setLet.function.js.map +1 -0
- package/js/setProp.function.d.ts +3 -0
- package/js/setProp.function.js +34 -0
- package/js/setProp.function.js.map +1 -0
- package/js/setUse.function.d.ts +2 -2
- package/js/state.d.ts +8 -6
- package/js/state.js +35 -15
- package/js/state.js.map +1 -1
- package/js/tag.d.ts +11 -6
- package/js/tag.js +84 -11
- package/js/tag.js.map +1 -1
- package/js/tagElement.d.ts +3 -2
- package/js/tagElement.js +21 -22
- package/js/tagElement.js.map +1 -1
- package/js/tagRunner.d.ts +1 -1
- package/js/templater.utils.d.ts +4 -5
- package/js/templater.utils.js +27 -24
- package/js/templater.utils.js.map +1 -1
- package/js/updateExistingTag.function.d.ts +4 -0
- package/js/updateExistingTag.function.js +15 -0
- package/js/updateExistingTag.function.js.map +1 -0
- package/js/updateExistingTagComponent.function.d.ts +4 -0
- package/js/updateExistingTagComponent.function.js +56 -0
- package/js/updateExistingTagComponent.function.js.map +1 -0
- package/js/updateExistingValue.function.d.ts +10 -0
- package/js/updateExistingValue.function.js +112 -0
- package/js/updateExistingValue.function.js.map +1 -0
- package/js/updateTag.utils.d.ts +1 -0
- package/js/updateTag.utils.js +5 -79
- package/js/updateTag.utils.js.map +1 -1
- package/js/watch.function.d.ts +3 -0
- package/js/watch.function.js +19 -0
- package/js/watch.function.js.map +1 -0
- package/package.json +1 -1
- package/_js/Clones.type.d.ts +0 -1
- package/_js/Clones.type.js +0 -2
- package/_js/Clones.type.js.map +0 -1
- package/_js/ElementTarget.interface.d.ts +0 -7
- package/_js/ElementTarget.interface.js +0 -2
- package/_js/ElementTarget.interface.js.map +0 -1
- package/_js/ElementTargetEvent.interface.d.ts +0 -6
- package/_js/ElementTargetEvent.interface.js +0 -2
- package/_js/ElementTargetEvent.interface.js.map +0 -1
- package/_js/Props.d.ts +0 -1
- package/_js/Props.js +0 -2
- package/_js/Props.js.map +0 -1
- package/_js/Subject.d.ts +0 -17
- package/_js/Subject.js +0 -43
- package/_js/Subject.js.map +0 -1
- package/_js/Tag.class.d.ts +0 -69
- package/_js/Tag.class.js +0 -258
- package/_js/Tag.class.js.map +0 -1
- package/_js/Tag.utils.d.ts +0 -12
- package/_js/Tag.utils.js +0 -31
- package/_js/Tag.utils.js.map +0 -1
- package/_js/ValueSubject.d.ts +0 -6
- package/_js/ValueSubject.js +0 -15
- package/_js/ValueSubject.js.map +0 -1
- package/_js/bindSubjectCallback.function.d.ts +0 -5
- package/_js/bindSubjectCallback.function.js +0 -19
- package/_js/bindSubjectCallback.function.js.map +0 -1
- package/_js/deepFunctions.d.ts +0 -2
- package/_js/deepFunctions.js +0 -76
- package/_js/deepFunctions.js.map +0 -1
- package/_js/elementDestroyCheck.function.d.ts +0 -3
- package/_js/elementDestroyCheck.function.js +0 -17
- package/_js/elementDestroyCheck.function.js.map +0 -1
- package/_js/elementInitCheck.d.ts +0 -2
- package/_js/elementInitCheck.js +0 -18
- package/_js/elementInitCheck.js.map +0 -1
- package/_js/gateway/gateway.web.component.d.ts +0 -11
- package/_js/gateway/gateway.web.component.js +0 -20
- package/_js/gateway/gateway.web.component.js.map +0 -1
- package/_js/gateway/index.d.ts +0 -3
- package/_js/gateway/index.js +0 -4
- package/_js/gateway/index.js.map +0 -1
- package/_js/gateway/loadTagGateway.function.d.ts +0 -2
- package/_js/gateway/loadTagGateway.function.js +0 -18
- package/_js/gateway/loadTagGateway.function.js.map +0 -1
- package/_js/gateway/tagGateway.function.d.ts +0 -4
- package/_js/gateway/tagGateway.function.js +0 -49
- package/_js/gateway/tagGateway.function.js.map +0 -1
- package/_js/gateway/tagGateway.utils.d.ts +0 -21
- package/_js/gateway/tagGateway.utils.js +0 -139
- package/_js/gateway/tagGateway.utils.js.map +0 -1
- package/_js/getCallback.d.ts +0 -3
- package/_js/getCallback.js +0 -50
- package/_js/getCallback.js.map +0 -1
- package/_js/getTagSupport.d.ts +0 -21
- package/_js/getTagSupport.js +0 -110
- package/_js/getTagSupport.js.map +0 -1
- package/_js/html.d.ts +0 -2
- package/_js/html.js +0 -5
- package/_js/html.js.map +0 -1
- package/_js/index.d.ts +0 -20
- package/_js/index.js +0 -25
- package/_js/index.js.map +0 -1
- package/_js/inputAttribute.d.ts +0 -1
- package/_js/inputAttribute.js +0 -19
- package/_js/inputAttribute.js.map +0 -1
- package/_js/interpolateAttributes.d.ts +0 -4
- package/_js/interpolateAttributes.js +0 -135
- package/_js/interpolateAttributes.js.map +0 -1
- package/_js/interpolateContentTemplates.d.ts +0 -6
- package/_js/interpolateContentTemplates.js +0 -54
- package/_js/interpolateContentTemplates.js.map +0 -1
- package/_js/interpolateElement.d.ts +0 -9
- package/_js/interpolateElement.js +0 -39
- package/_js/interpolateElement.js.map +0 -1
- package/_js/interpolateTemplate.d.ts +0 -17
- package/_js/interpolateTemplate.js +0 -64
- package/_js/interpolateTemplate.js.map +0 -1
- package/_js/interpolations.d.ts +0 -7
- package/_js/interpolations.js +0 -18
- package/_js/interpolations.js.map +0 -1
- package/_js/isInstance.d.ts +0 -6
- package/_js/isInstance.js +0 -10
- package/_js/isInstance.js.map +0 -1
- package/_js/js/Clones.type.d.ts +0 -1
- package/_js/js/Clones.type.js +0 -2
- package/_js/js/Clones.type.js.map +0 -1
- package/_js/js/Props.d.ts +0 -1
- package/_js/js/Props.js +0 -2
- package/_js/js/Props.js.map +0 -1
- package/_js/js/Subject.d.ts +0 -17
- package/_js/js/Subject.js +0 -43
- package/_js/js/Subject.js.map +0 -1
- package/_js/js/Tag.class.d.ts +0 -67
- package/_js/js/Tag.class.js +0 -241
- package/_js/js/Tag.class.js.map +0 -1
- package/_js/js/Tag.utils.d.ts +0 -12
- package/_js/js/Tag.utils.js +0 -31
- package/_js/js/Tag.utils.js.map +0 -1
- package/_js/js/ValueSubject.d.ts +0 -6
- package/_js/js/ValueSubject.js +0 -15
- package/_js/js/ValueSubject.js.map +0 -1
- package/_js/js/bindSubjectCallback.function.d.ts +0 -5
- package/_js/js/bindSubjectCallback.function.js +0 -19
- package/_js/js/bindSubjectCallback.function.js.map +0 -1
- package/_js/js/deepFunctions.d.ts +0 -2
- package/_js/js/deepFunctions.js +0 -76
- package/_js/js/deepFunctions.js.map +0 -1
- package/_js/js/elementDestroyCheck.function.d.ts +0 -3
- package/_js/js/elementDestroyCheck.function.js +0 -17
- package/_js/js/elementDestroyCheck.function.js.map +0 -1
- package/_js/js/elementInitCheck.d.ts +0 -2
- package/_js/js/elementInitCheck.js +0 -18
- package/_js/js/elementInitCheck.js.map +0 -1
- package/_js/js/getCallback.d.ts +0 -3
- package/_js/js/getCallback.js +0 -50
- package/_js/js/getCallback.js.map +0 -1
- package/_js/js/getTagSupport.d.ts +0 -22
- package/_js/js/getTagSupport.js +0 -116
- package/_js/js/getTagSupport.js.map +0 -1
- package/_js/js/html.d.ts +0 -2
- package/_js/js/html.js +0 -5
- package/_js/js/html.js.map +0 -1
- package/_js/js/index.d.ts +0 -19
- package/_js/js/index.js +0 -24
- package/_js/js/index.js.map +0 -1
- package/_js/js/inputAttribute.d.ts +0 -1
- package/_js/js/inputAttribute.js +0 -19
- package/_js/js/inputAttribute.js.map +0 -1
- package/_js/js/interpolateAttributes.d.ts +0 -4
- package/_js/js/interpolateAttributes.js +0 -127
- package/_js/js/interpolateAttributes.js.map +0 -1
- package/_js/js/interpolateContentTemplates.d.ts +0 -5
- package/_js/js/interpolateContentTemplates.js +0 -57
- package/_js/js/interpolateContentTemplates.js.map +0 -1
- package/_js/js/interpolateElement.d.ts +0 -9
- package/_js/js/interpolateElement.js +0 -32
- package/_js/js/interpolateElement.js.map +0 -1
- package/_js/js/interpolateTemplate.d.ts +0 -17
- package/_js/js/interpolateTemplate.js +0 -64
- package/_js/js/interpolateTemplate.js.map +0 -1
- package/_js/js/interpolations.d.ts +0 -8
- package/_js/js/interpolations.js +0 -17
- package/_js/js/interpolations.js.map +0 -1
- package/_js/js/isInstance.d.ts +0 -6
- package/_js/js/isInstance.js +0 -10
- package/_js/js/isInstance.js.map +0 -1
- package/_js/js/onDestroy.d.ts +0 -2
- package/_js/js/onDestroy.js +0 -20
- package/_js/js/onDestroy.js.map +0 -1
- package/_js/js/onInit.d.ts +0 -2
- package/_js/js/onInit.js +0 -19
- package/_js/js/onInit.js.map +0 -1
- package/_js/js/processSubjectComponent.function.d.ts +0 -8
- package/_js/js/processSubjectComponent.function.js +0 -53
- package/_js/js/processSubjectComponent.function.js.map +0 -1
- package/_js/js/processSubjectValue.function.d.ts +0 -16
- package/_js/js/processSubjectValue.function.js +0 -122
- package/_js/js/processSubjectValue.function.js.map +0 -1
- package/_js/js/processTagArray.d.ts +0 -9
- package/_js/js/processTagArray.js +0 -60
- package/_js/js/processTagArray.js.map +0 -1
- package/_js/js/processTagResult.function.d.ts +0 -10
- package/_js/js/processTagResult.function.js +0 -42
- package/_js/js/processTagResult.function.js.map +0 -1
- package/_js/js/providers.d.ts +0 -17
- package/_js/js/providers.js +0 -86
- package/_js/js/providers.js.map +0 -1
- package/_js/js/redrawTag.function.d.ts +0 -7
- package/_js/js/redrawTag.function.js +0 -9
- package/_js/js/redrawTag.function.js.map +0 -1
- package/_js/js/render.d.ts +0 -1
- package/_js/js/render.js +0 -24
- package/_js/js/render.js.map +0 -1
- package/_js/js/renderAppToElement.d.ts +0 -14
- package/_js/js/renderAppToElement.js +0 -57
- package/_js/js/renderAppToElement.js.map +0 -1
- package/_js/js/setUse.function.d.ts +0 -23
- package/_js/js/setUse.function.js +0 -14
- package/_js/js/setUse.function.js.map +0 -1
- package/_js/js/state.d.ts +0 -24
- package/_js/js/state.js +0 -98
- package/_js/js/state.js.map +0 -1
- package/_js/js/tag.d.ts +0 -8
- package/_js/js/tag.js +0 -46
- package/_js/js/tag.js.map +0 -1
- package/_js/js/tagElement.d.ts +0 -14
- package/_js/js/tagElement.js +0 -57
- package/_js/js/tagElement.js.map +0 -1
- package/_js/js/tagGateway.function.d.ts +0 -5
- package/_js/js/tagGateway.function.js +0 -119
- package/_js/js/tagGateway.function.js.map +0 -1
- package/_js/js/tagRunner.d.ts +0 -6
- package/_js/js/tagRunner.js +0 -19
- package/_js/js/tagRunner.js.map +0 -1
- package/_js/js/templater.utils.d.ts +0 -28
- package/_js/js/templater.utils.js +0 -99
- package/_js/js/templater.utils.js.map +0 -1
- package/_js/js/updateTag.utils.d.ts +0 -6
- package/_js/js/updateTag.utils.js +0 -84
- package/_js/js/updateTag.utils.js.map +0 -1
- package/_js/js/wait.d.ts +0 -1
- package/_js/js/wait.js +0 -8
- package/_js/js/wait.js.map +0 -1
- package/_js/onDestroy.d.ts +0 -2
- package/_js/onDestroy.js +0 -20
- package/_js/onDestroy.js.map +0 -1
- package/_js/onInit.d.ts +0 -2
- package/_js/onInit.js +0 -19
- package/_js/onInit.js.map +0 -1
- package/_js/processSubjectComponent.function.d.ts +0 -8
- package/_js/processSubjectComponent.function.js +0 -53
- package/_js/processSubjectComponent.function.js.map +0 -1
- package/_js/processSubjectValue.function.d.ts +0 -16
- package/_js/processSubjectValue.function.js +0 -122
- package/_js/processSubjectValue.function.js.map +0 -1
- package/_js/processTagArray.d.ts +0 -9
- package/_js/processTagArray.js +0 -60
- package/_js/processTagArray.js.map +0 -1
- package/_js/processTagResult.function.d.ts +0 -10
- package/_js/processTagResult.function.js +0 -40
- package/_js/processTagResult.function.js.map +0 -1
- package/_js/providers.d.ts +0 -17
- package/_js/providers.js +0 -86
- package/_js/providers.js.map +0 -1
- package/_js/redrawTag.function.d.ts +0 -7
- package/_js/redrawTag.function.js +0 -8
- package/_js/redrawTag.function.js.map +0 -1
- package/_js/render.d.ts +0 -1
- package/_js/render.js +0 -17
- package/_js/render.js.map +0 -1
- package/_js/renderAppToElement.d.ts +0 -14
- package/_js/renderAppToElement.js +0 -57
- package/_js/renderAppToElement.js.map +0 -1
- package/_js/setUse.function.d.ts +0 -23
- package/_js/setUse.function.js +0 -14
- package/_js/setUse.function.js.map +0 -1
- package/_js/state.d.ts +0 -21
- package/_js/state.js.map +0 -1
- package/_js/tag.d.ts +0 -7
- package/_js/tag.js +0 -46
- package/_js/tag.js.map +0 -1
- package/_js/tagElement.d.ts +0 -14
- package/_js/tagElement.js +0 -57
- package/_js/tagElement.js.map +0 -1
- package/_js/tagGateway.function.d.ts +0 -14
- package/_js/tagGateway.function.js +0 -138
- package/_js/tagGateway.function.js.map +0 -1
- package/_js/tagRunner.d.ts +0 -6
- package/_js/tagRunner.js +0 -19
- package/_js/tagRunner.js.map +0 -1
- package/_js/templater.utils.d.ts +0 -27
- package/_js/templater.utils.js +0 -98
- package/_js/templater.utils.js.map +0 -1
- package/_js/updateTag.utils.d.ts +0 -6
- package/_js/updateTag.utils.js +0 -102
- package/_js/updateTag.utils.js.map +0 -1
- package/_js/wait.d.ts +0 -1
- package/_js/wait.js +0 -8
- package/_js/wait.js.map +0 -1
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { updateBetweenTemplates } from "./interpolateTemplate.js";
|
|
2
|
+
export function processRegularValue(value, result, // could be tag via result.tag
|
|
3
|
+
template, // <template end interpolate /> (will be removed)
|
|
4
|
+
ownerTag) {
|
|
5
|
+
const before = result.clone || template; // Either the template is on the doc OR its the first element we last put on doc
|
|
6
|
+
result.template = template;
|
|
7
|
+
// Processing of regular values
|
|
8
|
+
const clone = updateBetweenTemplates(value, before);
|
|
9
|
+
result.clone = clone; // remember single element put down, for future updates
|
|
10
|
+
const clones = [];
|
|
11
|
+
const oldPos = ownerTag.clones.indexOf(before); // is the insertBefore guide being considered one of the tags clones?
|
|
12
|
+
const isOnlyGuideInClones = oldPos >= 0 && !ownerTag.clones.includes(clone);
|
|
13
|
+
const exchangeGuideForClone = isOnlyGuideInClones && !before.parentNode; // guide is in clones AND guide is not on the document
|
|
14
|
+
if (exchangeGuideForClone) {
|
|
15
|
+
ownerTag.clones.splice(oldPos, 1); // remove insertBefore guide from tag
|
|
16
|
+
ownerTag.clones.push(clone); // exchange guide for element actually on document
|
|
17
|
+
clones.push(clone); // record the one element that in the end is on the document
|
|
18
|
+
}
|
|
19
|
+
return clones;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=processRegularValue.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processRegularValue.function.js","sourceRoot":"","sources":["../ts/processRegularValue.function.ts"],"names":[],"mappings":"AAGA,OAAO,EAAY,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAE3E,MAAM,UAAU,mBAAmB,CACjC,KAAU,EACV,MAAsB,EAAE,8BAA8B;AACtD,QAAkB,EAAE,iDAAiD;AACrE,QAAa;IAEb,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAA,CAAC,gFAAgF;IACxH,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAE1B,+BAA+B;IAC/B,MAAM,KAAK,GAAG,sBAAsB,CAClC,KAAK,EACL,MAAM,CACP,CAAA;IAED,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA,CAAC,uDAAuD;IAE5E,MAAM,MAAM,GAAW,EAAE,CAAA;IACzB,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA,CAAC,qEAAqE;IACpH,MAAM,mBAAmB,GAAG,MAAM,IAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACzE,MAAM,qBAAqB,GAAG,mBAAmB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAA,CAAC,sDAAsD;IAE9H,IAAI,qBAAqB,EAAG,CAAC;QAC3B,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA,CAAC,qCAAqC;QACvE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA,CAAC,kDAAkD;QAC9E,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA,CAAC,4DAA4D;IACjF,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -14,38 +14,22 @@ export function processSubjectComponent(value, result, template, ownerTag, optio
|
|
|
14
14
|
}
|
|
15
15
|
const templater = value;
|
|
16
16
|
const tagSupport = value.tagSupport;
|
|
17
|
-
tagSupport.mutatingRender = () => {
|
|
18
|
-
// Is this NOT my first render
|
|
19
|
-
if (result.tag) {
|
|
20
|
-
const exit = tagSupport.renderExistingTag(result.tag, templater);
|
|
21
|
-
if (exit) {
|
|
22
|
-
return result.tag;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
// draw to my parent
|
|
26
|
-
const newest = tagSupport.newest = ownerTag.tagSupport.render();
|
|
27
|
-
return newest;
|
|
28
|
-
};
|
|
29
17
|
let retag = templater.newest;
|
|
30
18
|
const providers = setUse.memory.providerConfig;
|
|
31
19
|
providers.ownerTag = ownerTag;
|
|
32
20
|
const isFirstTime = !retag || options.forceElement;
|
|
33
21
|
if (isFirstTime) {
|
|
34
|
-
if (!retag) {
|
|
35
|
-
runBeforeRender(tagSupport, ownerTag);
|
|
36
|
-
}
|
|
37
|
-
// only true when options.forceElement
|
|
38
22
|
if (retag) {
|
|
39
23
|
runBeforeRedraw(tagSupport, retag);
|
|
40
24
|
}
|
|
25
|
+
else {
|
|
26
|
+
runBeforeRender(tagSupport, ownerTag);
|
|
27
|
+
}
|
|
41
28
|
retag = templater.forceRenderTemplate(tagSupport, ownerTag);
|
|
29
|
+
templater.newest = retag;
|
|
42
30
|
}
|
|
43
31
|
ownerTag.children.push(retag);
|
|
44
|
-
tagSupport.
|
|
45
|
-
tagSupport.latestClonedProps = retag.tagSupport.clonedProps;
|
|
46
|
-
// tagSupport.latestClonedProps = retag.tagSupport.latestClonedProps
|
|
47
|
-
tagSupport.memory = retag.tagSupport.memory;
|
|
48
|
-
retag.setSupport(tagSupport);
|
|
32
|
+
tagSupport.templater = retag.tagSupport.templater;
|
|
49
33
|
const clones = processTagResult(retag, result, // The element set here will be removed from document. Also result.tag will be added in here
|
|
50
34
|
template, // <template end interpolate /> (will be removed)
|
|
51
35
|
options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processSubjectComponent.function.js","sourceRoot":"","sources":["../ts/processSubjectComponent.function.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAEjE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAG7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAGjE,MAAM,UAAU,uBAAuB,CACrC,KAAsB,EACtB,MAAkB,EAClB,QAAiB,EACjB,QAAa,EACb,OAAiD;IAEjD,uDAAuD;IACvD,IAAG,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QACzB,IAAI,IAAI,GAAuB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAA;QAEtG,IAAG,IAAI,KAAK,UAAU,EAAE,CAAC;YACvB,IAAI,GAAG,SAAS,CAAA;QAClB,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAC,GAAG,CAAC,CAAA;QACxE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,uGAAuG,KAAK,MAAM,CAAC,CAAA;QAC3I,MAAM,KAAK,CAAA;IACb,CAAC;IAED,MAAM,SAAS,GAAG,KAAwB,CAAA;IAC1C,MAAM,UAAU,GAAe,KAAK,CAAC,UAAU,CAAA;IAE/C,
|
|
1
|
+
{"version":3,"file":"processSubjectComponent.function.js","sourceRoot":"","sources":["../ts/processSubjectComponent.function.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAEjE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAG7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAGjE,MAAM,UAAU,uBAAuB,CACrC,KAAsB,EACtB,MAAkB,EAClB,QAAiB,EACjB,QAAa,EACb,OAAiD;IAEjD,uDAAuD;IACvD,IAAG,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QACzB,IAAI,IAAI,GAAuB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAA;QAEtG,IAAG,IAAI,KAAK,UAAU,EAAE,CAAC;YACvB,IAAI,GAAG,SAAS,CAAA;QAClB,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAC,GAAG,CAAC,CAAA;QACxE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,uGAAuG,KAAK,MAAM,CAAC,CAAA;QAC3I,MAAM,KAAK,CAAA;IACb,CAAC;IAED,MAAM,SAAS,GAAG,KAAwB,CAAA;IAC1C,MAAM,UAAU,GAAe,KAAK,CAAC,UAAU,CAAA;IAE/C,IAAI,KAAK,GAAG,SAAS,CAAC,MAAa,CAAA;IAEnC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAA;IAC9C,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAE7B,MAAM,WAAW,GAAG,CAAC,KAAK,IAAI,OAAO,CAAC,YAAY,CAAA;IAElD,IAAG,WAAW,EAAE,CAAC;QACf,IAAG,KAAK,EAAE,CAAC;YACT,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;QACpC,CAAC;aAAM,CAAC;YACN,eAAe,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QACvC,CAAC;QAED,KAAK,GAAG,SAAS,CAAC,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAE3D,SAAS,CAAC,MAAM,GAAG,KAAK,CAAA;IAC1B,CAAC;IAED,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAE7B,UAAU,CAAC,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,SAAS,CAAA;IAEjD,MAAM,MAAM,GAAG,gBAAgB,CAC7B,KAAK,EACL,MAAM,EAAE,4FAA4F;IACpG,QAAQ,EAAE,iDAAiD;IAC3D,OAAO,CACR,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -2,8 +2,7 @@ import { TagArraySubject } from "./processTagArray.js";
|
|
|
2
2
|
import { Clones } from "./Clones.type.js";
|
|
3
3
|
import { Tag } from "./Tag.class.js";
|
|
4
4
|
import { Counts, Template } from "./interpolateTemplate.js";
|
|
5
|
-
import { TagSubject } from "./Tag.utils.js";
|
|
6
|
-
export declare function isTagArray(value: any): boolean;
|
|
5
|
+
import { DisplaySubject, TagSubject } from "./Tag.utils.js";
|
|
7
6
|
type processOptions = {
|
|
8
7
|
forceElement?: boolean;
|
|
9
8
|
counts: Counts;
|
|
@@ -12,12 +11,13 @@ export type ClonesAndPromise = {
|
|
|
12
11
|
clones: Clones;
|
|
13
12
|
promise?: Promise<any>;
|
|
14
13
|
};
|
|
15
|
-
export declare function processSubjectValue(value: any, result: TagArraySubject | TagSubject, // could be tag via result.tag
|
|
14
|
+
export declare function processSubjectValue(value: any, result: TagArraySubject | TagSubject | DisplaySubject, // could be tag via result.tag
|
|
16
15
|
template: Template, // <template end interpolate /> (will be removed)
|
|
17
|
-
|
|
16
|
+
ownerTag: Tag, // owner
|
|
18
17
|
options: processOptions): ClonesAndPromise;
|
|
19
|
-
export declare function processTag(value: any, result: TagSubject
|
|
18
|
+
export declare function processTag(value: any, result: TagSubject, // could be tag via result.tag
|
|
20
19
|
template: Template, // <template end interpolate /> (will be removed)
|
|
21
|
-
|
|
20
|
+
ownerTag: Tag, // owner
|
|
22
21
|
options: processOptions): Clones;
|
|
22
|
+
export declare function destroySimpleValue(template: Element, resultTag: DisplaySubject): void;
|
|
23
23
|
export {};
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { processSubjectComponent } from "./processSubjectComponent.function.js";
|
|
2
2
|
import { processTagResult } from "./processTagResult.function.js";
|
|
3
|
-
import { isTagComponent, isTagInstance } from "./isInstance.js";
|
|
3
|
+
import { isTagArray, isTagComponent, isTagInstance } from "./isInstance.js";
|
|
4
4
|
import { processTagArray } from "./processTagArray.js";
|
|
5
|
-
import {
|
|
5
|
+
import { TagSupport } from "./TagSupport.class.js";
|
|
6
6
|
import { updateBetweenTemplates } from "./interpolateTemplate.js";
|
|
7
|
+
import { ValueSubject } from "./ValueSubject.js";
|
|
8
|
+
import { processRegularValue } from "./processRegularValue.function.js";
|
|
7
9
|
var ValueTypes;
|
|
8
10
|
(function (ValueTypes) {
|
|
9
11
|
ValueTypes["tag"] = "tag";
|
|
@@ -23,37 +25,30 @@ function getValueType(value) {
|
|
|
23
25
|
}
|
|
24
26
|
return ValueTypes.value;
|
|
25
27
|
}
|
|
26
|
-
export function isTagArray(value) {
|
|
27
|
-
return value instanceof Array && value.every(x => isTagInstance(x));
|
|
28
|
-
}
|
|
29
28
|
export function processSubjectValue(value, result, // could be tag via result.tag
|
|
30
29
|
template, // <template end interpolate /> (will be removed)
|
|
31
|
-
|
|
30
|
+
ownerTag, // owner
|
|
32
31
|
options) {
|
|
33
32
|
const valueType = getValueType(value);
|
|
34
33
|
// Previously was simple value, now its a tag of some sort
|
|
35
34
|
const resultTag = result;
|
|
36
35
|
const clone = resultTag.clone;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
template
|
|
40
|
-
parent.insertBefore(template, clone);
|
|
41
|
-
parent.removeChild(clone);
|
|
42
|
-
delete resultTag.clone;
|
|
43
|
-
// result.clone = template
|
|
36
|
+
const noLongerSimpleValue = valueType !== ValueTypes.value && clone;
|
|
37
|
+
if (noLongerSimpleValue) {
|
|
38
|
+
destroySimpleValue(template, resultTag);
|
|
44
39
|
}
|
|
45
40
|
switch (valueType) {
|
|
46
41
|
case ValueTypes.tag:
|
|
47
42
|
return {
|
|
48
|
-
clones: processTag(value, result, template,
|
|
43
|
+
clones: processTag(value, result, template, ownerTag, options)
|
|
49
44
|
};
|
|
50
45
|
case ValueTypes.tagArray:
|
|
51
46
|
return {
|
|
52
|
-
clones: processTagArray(result, value, template,
|
|
47
|
+
clones: processTagArray(result, value, template, ownerTag, options)
|
|
53
48
|
};
|
|
54
49
|
case ValueTypes.tagComponent:
|
|
55
50
|
return {
|
|
56
|
-
clones: processSubjectComponent(value, result, template,
|
|
51
|
+
clones: processSubjectComponent(value, result, template, ownerTag, options)
|
|
57
52
|
};
|
|
58
53
|
}
|
|
59
54
|
// *if processing WAS a tag BUT NOW its some other non-tag value
|
|
@@ -64,42 +59,25 @@ options) {
|
|
|
64
59
|
};
|
|
65
60
|
}
|
|
66
61
|
return {
|
|
67
|
-
clones: processRegularValue(value, result, template,
|
|
62
|
+
clones: processRegularValue(value, result, template, ownerTag)
|
|
68
63
|
};
|
|
69
64
|
}
|
|
70
|
-
function processRegularValue(value, result, // could be tag via result.tag
|
|
71
|
-
template, // <template end interpolate /> (will be removed)
|
|
72
|
-
tag) {
|
|
73
|
-
const before = result.clone || template; // Either the template is on the doc OR its the first element we last put on doc
|
|
74
|
-
// Processing of regular values
|
|
75
|
-
const clone = updateBetweenTemplates(value, before);
|
|
76
|
-
result.clone = clone; // remember single element put down, for future updates
|
|
77
|
-
const clones = [];
|
|
78
|
-
const oldPos = tag.clones.indexOf(before); // is the insertBefore guide being considered one of the tags clones?
|
|
79
|
-
const isOnlyGuideInClones = oldPos >= 0 && !tag.clones.includes(clone);
|
|
80
|
-
const exchangeGuideForClone = isOnlyGuideInClones && !before.parentNode; // guide is in clones AND guide is not on the document
|
|
81
|
-
if (exchangeGuideForClone) {
|
|
82
|
-
tag.clones.splice(oldPos, 1); // remove insertBefore guide from tag
|
|
83
|
-
tag.clones.push(clone); // exchange guide for element actually on document
|
|
84
|
-
clones.push(clone); // record the one element that in the end is on the document
|
|
85
|
-
}
|
|
86
|
-
return clones;
|
|
87
|
-
}
|
|
88
65
|
export function processTag(value, result, // could be tag via result.tag
|
|
89
66
|
template, // <template end interpolate /> (will be removed)
|
|
90
|
-
|
|
67
|
+
ownerTag, // owner
|
|
91
68
|
options) {
|
|
92
69
|
// first time seeing this tag?
|
|
93
70
|
if (!value.tagSupport) {
|
|
94
|
-
value.tagSupport =
|
|
71
|
+
value.tagSupport = new TagSupport({}, // the template is provided via html`` call
|
|
72
|
+
new ValueSubject([]));
|
|
95
73
|
// asking me to render will cause my parent to render
|
|
96
|
-
value.tagSupport.mutatingRender =
|
|
74
|
+
value.tagSupport.mutatingRender = () => {
|
|
75
|
+
ownerTag.tagSupport.render();
|
|
76
|
+
};
|
|
97
77
|
value.tagSupport.oldest = value.tagSupport.oldest || value;
|
|
98
|
-
|
|
99
|
-
value.ownerTag =
|
|
100
|
-
result.sideTag = tag;
|
|
78
|
+
ownerTag.children.push(value);
|
|
79
|
+
value.ownerTag = ownerTag;
|
|
101
80
|
}
|
|
102
|
-
// (result as any).template = template
|
|
103
81
|
result.template = template;
|
|
104
82
|
const clones = processTagResult(value, result, // Function will attach result.tag
|
|
105
83
|
template, options);
|
|
@@ -114,16 +92,23 @@ options) {
|
|
|
114
92
|
// const parentNode = lastFirstChild.parentNode || template.parentNode
|
|
115
93
|
// put the template back down
|
|
116
94
|
lastFirstChild.parentNode.insertBefore(template, lastFirstChild);
|
|
95
|
+
const clone = updateBetweenTemplates(value,
|
|
96
|
+
// template // template, // this will be removed from document inside this function
|
|
97
|
+
lastFirstChild);
|
|
98
|
+
result.clone = clone;
|
|
117
99
|
// cleanup old
|
|
118
|
-
if (result.clone) {
|
|
119
|
-
result.clone.parentNode.removeChild(result.clone);
|
|
120
|
-
}
|
|
121
100
|
delete result.tag;
|
|
101
|
+
/* destroy logic */
|
|
122
102
|
const stagger = options.counts.removed;
|
|
123
103
|
const promise = tag.destroy({ stagger }).then(animated => options.counts.removed = stagger + animated);
|
|
124
|
-
|
|
125
|
-
const clone = updateBetweenTemplates(value, template);
|
|
126
|
-
result.clone = clone;
|
|
104
|
+
/* end: destroy logic */
|
|
127
105
|
return promise;
|
|
128
106
|
}
|
|
107
|
+
export function destroySimpleValue(template, resultTag) {
|
|
108
|
+
const clone = resultTag.clone;
|
|
109
|
+
const parent = clone.parentNode;
|
|
110
|
+
parent.insertBefore(template, clone);
|
|
111
|
+
parent.removeChild(clone);
|
|
112
|
+
delete resultTag.clone;
|
|
113
|
+
}
|
|
129
114
|
//# sourceMappingURL=processSubjectValue.function.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processSubjectValue.function.js","sourceRoot":"","sources":["../ts/processSubjectValue.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAA;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"processSubjectValue.function.js","sourceRoot":"","sources":["../ts/processSubjectValue.function.ts"],"names":[],"mappings":"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"}
|
package/js/processTagArray.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export type LastArrayItem = {
|
|
|
9
9
|
export type TagArraySubject = ValueSubject<Tag[]> & {
|
|
10
10
|
lastArray: LastArrayItem[];
|
|
11
11
|
template: Element;
|
|
12
|
+
isChildSubject?: boolean;
|
|
12
13
|
};
|
|
13
14
|
export declare function processTagArray(result: TagArraySubject, value: Tag[], // arry of Tag classes
|
|
14
15
|
template: Element, // <template end interpolate />
|
package/js/processTagArray.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { ValueSubject } from "./ValueSubject.js";
|
|
2
|
+
import { TagSupport } from "./TagSupport.class.js";
|
|
3
|
+
import { ArrayNoKeyError } from "./errors.js";
|
|
3
4
|
export function processTagArray(result, value, // arry of Tag classes
|
|
4
5
|
template, // <template end interpolate />
|
|
5
6
|
ownerTag, options) {
|
|
@@ -14,7 +15,7 @@ ownerTag, options) {
|
|
|
14
15
|
const lessLength = newLength < at;
|
|
15
16
|
const subTag = value[index - removed];
|
|
16
17
|
const subArrayValue = subTag?.arrayValue;
|
|
17
|
-
const destroyItem = lessLength || subArrayValue
|
|
18
|
+
const destroyItem = lessLength || !areLikeValues(subArrayValue, item.tag.arrayValue);
|
|
18
19
|
if (destroyItem) {
|
|
19
20
|
const last = result.lastArray[index];
|
|
20
21
|
const tag = last.tag;
|
|
@@ -31,36 +32,71 @@ ownerTag, options) {
|
|
|
31
32
|
// const masterBefore = template || (template as any).clone
|
|
32
33
|
const before = template || template.clone;
|
|
33
34
|
value.forEach((subTag, index) => {
|
|
34
|
-
|
|
35
|
-
subTag.tagSupport
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
const previous = result.lastArray[index];
|
|
36
|
+
const previousSupport = subTag.tagSupport || previous?.tag.tagSupport;
|
|
37
|
+
subTag.tagSupport = previousSupport || new TagSupport({}, new ValueSubject([]));
|
|
38
|
+
if (previousSupport) {
|
|
39
|
+
previousSupport.newest = subTag;
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
subTag.tagSupport.mutatingRender = () => {
|
|
43
|
+
ownerTag.tagSupport.render(); // call owner for needed updates
|
|
44
|
+
return subTag;
|
|
45
|
+
};
|
|
46
|
+
ownerTag.children.push(subTag);
|
|
47
|
+
}
|
|
39
48
|
subTag.ownerTag = ownerTag;
|
|
40
|
-
ownerTag.children.push(subTag);
|
|
41
49
|
// check for html``.key()
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}
|
|
50
|
+
const keyNotSet = subTag.arrayValue;
|
|
51
|
+
if (keyNotSet?.isArrayValueNeverSet) {
|
|
52
|
+
const details = {
|
|
53
|
+
template: subTag.getTemplate().string,
|
|
54
|
+
array: value,
|
|
55
|
+
ownerTagContent: ownerTag.lastTemplateString,
|
|
56
|
+
};
|
|
57
|
+
const message = 'Use html`...`.key(item) instead of html`...` to template an Array';
|
|
58
|
+
console.error(message, details);
|
|
59
|
+
const err = new ArrayNoKeyError(message, details);
|
|
60
|
+
throw err;
|
|
49
61
|
}
|
|
50
|
-
const
|
|
51
|
-
if (
|
|
52
|
-
const isSame = previous.tag.arrayValue
|
|
62
|
+
const couldBeSame = result.lastArray.length > index;
|
|
63
|
+
if (couldBeSame) {
|
|
64
|
+
const isSame = areLikeValues(previous.tag.arrayValue, subTag.arrayValue);
|
|
53
65
|
if (isSame) {
|
|
54
|
-
previous.tag.
|
|
66
|
+
subTag.tagSupport = subTag.tagSupport || previous.tag.tagSupport;
|
|
67
|
+
previous.tag.updateByTag(subTag);
|
|
68
|
+
return [];
|
|
55
69
|
}
|
|
56
70
|
return [];
|
|
57
71
|
}
|
|
58
|
-
const nextClones =
|
|
59
|
-
index,
|
|
60
|
-
...options,
|
|
61
|
-
});
|
|
72
|
+
const nextClones = processAddTagArrayItem(before, subTag, result, index, options);
|
|
62
73
|
clones.push(...nextClones);
|
|
63
74
|
});
|
|
64
75
|
return clones;
|
|
65
76
|
}
|
|
77
|
+
function processAddTagArrayItem(before, subTag, result, index, options) {
|
|
78
|
+
// Added to previous array
|
|
79
|
+
result.lastArray.push({
|
|
80
|
+
tag: subTag, index
|
|
81
|
+
});
|
|
82
|
+
const counts = {
|
|
83
|
+
added: options.counts.added + index,
|
|
84
|
+
removed: options.counts.removed,
|
|
85
|
+
};
|
|
86
|
+
const lastFirstChild = before; // tag.clones[0] // insertBefore.lastFirstChild
|
|
87
|
+
const nextClones = subTag.buildBeforeElement(lastFirstChild, { counts, forceElement: options.forceElement });
|
|
88
|
+
return nextClones;
|
|
89
|
+
}
|
|
90
|
+
/** compare two values. If both values are arrays then the items will be compared */
|
|
91
|
+
function areLikeValues(valueA, valueB) {
|
|
92
|
+
if (valueA === valueB) {
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
const bothArrays = valueA instanceof Array && valueB instanceof Array;
|
|
96
|
+
const matchLengths = bothArrays && valueA.length == valueB.length;
|
|
97
|
+
if (matchLengths) {
|
|
98
|
+
return valueA.every((item, index) => item == valueB[index]);
|
|
99
|
+
}
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
66
102
|
//# sourceMappingURL=processTagArray.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processTagArray.js","sourceRoot":"","sources":["../ts/processTagArray.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"processTagArray.js","sourceRoot":"","sources":["../ts/processTagArray.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,7 @@ import { TagArraySubject } from "./processTagArray.js";
|
|
|
5
5
|
import { TagSubject } from "./Tag.utils.js";
|
|
6
6
|
export declare function processTagResult(tag: Tag, result: TagArraySubject | TagSubject | Function, // used for recording past and current value
|
|
7
7
|
insertBefore: Element, // <template end interpolate />
|
|
8
|
-
{
|
|
9
|
-
index?: number;
|
|
8
|
+
{ counts, forceElement, }: {
|
|
10
9
|
counts: Counts;
|
|
11
10
|
forceElement?: boolean;
|
|
12
11
|
}): Clones;
|
|
@@ -1,22 +1,6 @@
|
|
|
1
1
|
export function processTagResult(tag, result, // used for recording past and current value
|
|
2
2
|
insertBefore, // <template end interpolate />
|
|
3
|
-
{
|
|
4
|
-
// *for
|
|
5
|
-
if (index !== undefined) {
|
|
6
|
-
const resultArray = result.lastArray;
|
|
7
|
-
const existing = resultArray[index];
|
|
8
|
-
if (existing?.tag.isLikeTag(tag)) {
|
|
9
|
-
existing.tag.updateByTag(tag);
|
|
10
|
-
return [];
|
|
11
|
-
}
|
|
12
|
-
// Added to previous array
|
|
13
|
-
resultArray.push({
|
|
14
|
-
tag, index
|
|
15
|
-
});
|
|
16
|
-
const lastFirstChild = insertBefore; // tag.clones[0] // insertBefore.lastFirstChild
|
|
17
|
-
const clones = tag.buildBeforeElement(lastFirstChild, { counts, forceElement });
|
|
18
|
-
return clones;
|
|
19
|
-
}
|
|
3
|
+
{ counts, forceElement, }) {
|
|
20
4
|
// *if appears we already have seen
|
|
21
5
|
const subjectTag = result;
|
|
22
6
|
const rTag = subjectTag.tag;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processTagResult.function.js","sourceRoot":"","sources":["../ts/processTagResult.function.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,gBAAgB,CAC9B,GAAQ,EACR,MAA+C,EAAE,4CAA4C;AAC7F,YAAqB,EAAE,+BAA+B;AACtD,EACE,
|
|
1
|
+
{"version":3,"file":"processTagResult.function.js","sourceRoot":"","sources":["../ts/processTagResult.function.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,gBAAgB,CAC9B,GAAQ,EACR,MAA+C,EAAE,4CAA4C;AAC7F,YAAqB,EAAE,+BAA+B;AACtD,EACE,MAAM,EAAE,YAAY,GAIrB;IAED,mCAAmC;IACnC,MAAM,UAAU,GAAG,MAAoB,CAAA;IACvC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAA;IAC3B,IAAG,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACzB,6CAA6C;QAC7C,IAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,aAAa;YACb,IAAG,MAAM,YAAY,QAAQ,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;gBACtC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;gBACxB,OAAO,EAAE,CAAA;YACX,CAAC;YAED,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YAErB,OAAO,EAAE,CAAA,CAAC,gDAAgD;QAC5D,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,CAAC,kBAAkB,CAAC,YAAY,EAAE;QAClD,MAAM;QACN,YAAY;KACb,CAAC,CAAA;IACF,UAAU,CAAC,GAAG,GAAG,GAAG,CAAA,CAAC,wDAAwD;IAE7E,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"propState.function.js","sourceRoot":"","sources":["../ts/propState.function.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS,CACvB,cAAiB,EACjB,MAAiB;AAGnB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { deepClone, deepEqual } from "./deepFunctions.js";
|
|
2
|
+
export function providersChangeCheck(tag) {
|
|
3
|
+
const providersWithChanges = tag.tagSupport.memory.providers.filter(provider => !deepEqual(provider.instance, provider.clone));
|
|
4
|
+
// reset clones
|
|
5
|
+
providersWithChanges.forEach(provider => {
|
|
6
|
+
const appElement = tag.getAppElement();
|
|
7
|
+
handleProviderChanges(appElement, provider);
|
|
8
|
+
provider.clone = deepClone(provider.instance);
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
function handleProviderChanges(appElement, provider) {
|
|
12
|
+
const tagsWithProvider = getTagsWithProvider(appElement, provider);
|
|
13
|
+
tagsWithProvider.forEach(({ tag, renderCount, provider }) => {
|
|
14
|
+
const notRendered = renderCount === tag.tagSupport.memory.renderCount;
|
|
15
|
+
if (notRendered) {
|
|
16
|
+
provider.clone = deepClone(provider.instance);
|
|
17
|
+
tag.tagSupport.render();
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
function getTagsWithProvider(tag, provider, memory = []) {
|
|
22
|
+
const compare = tag.tagSupport.memory.providers;
|
|
23
|
+
const hasProvider = compare.find(xProvider => xProvider.constructMethod === provider.constructMethod);
|
|
24
|
+
if (hasProvider) {
|
|
25
|
+
memory.push({
|
|
26
|
+
tag,
|
|
27
|
+
renderCount: tag.tagSupport.memory.renderCount,
|
|
28
|
+
provider: hasProvider
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
tag.children.forEach(child => getTagsWithProvider(child, provider, memory));
|
|
32
|
+
return memory;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=provider.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.utils.js","sourceRoot":"","sources":["../ts/provider.utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAGzD,MAAM,UAAU,oBAAoB,CAAC,GAAQ;IAC3C,MAAM,oBAAoB,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAC7E,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAC9C,CAAA;IAED,eAAe;IACf,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QACtC,MAAM,UAAU,GAAG,GAAG,CAAC,aAAa,EAAE,CAAA;QAEtC,qBAAqB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAE3C,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,UAAe,EACf,QAAkB;IAElB,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IAElE,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAC,EAAE,EAAE;QACxD,MAAM,WAAW,GAAG,WAAW,KAAK,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAA;QACrE,IAAG,WAAW,EAAE,CAAC;YACf,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YAC7C,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,CAAA;QACzB,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,GAAQ,EACR,QAAkB,EAClB,SAIM,EAAE;IAER,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAA;IAE/C,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAC9B,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,eAAe,KAAK,QAAQ,CAAC,eAAe,CACpE,CAAA;IAED,IAAG,WAAW,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC;YACV,GAAG;YACH,WAAW,EAAE,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW;YAC9C,QAAQ,EAAE,WAAW;SACtB,CAAC,CAAA;IACJ,CAAC;IAED,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAA;IAE3E,OAAO,MAAM,CAAA;AACf,CAAC"}
|
package/js/providers.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export type Provider = {
|
|
|
3
3
|
instance: any;
|
|
4
4
|
clone: any;
|
|
5
5
|
};
|
|
6
|
+
type ProviderConstructor<T> = (new (...args: any[]) => T) | (() => T);
|
|
6
7
|
type functionProvider = <T>() => T;
|
|
7
8
|
type classProvider = new <T>(...args: any[]) => T;
|
|
8
9
|
export declare const providers: {
|
|
@@ -12,6 +13,6 @@ export declare const providers: {
|
|
|
12
13
|
* @param {(new (...args: any[]) => T) | () => T} constructor
|
|
13
14
|
* @returns {T}
|
|
14
15
|
*/
|
|
15
|
-
inject: (constructor:
|
|
16
|
+
inject: <T_1>(constructor: ProviderConstructor<T_1>) => T_1;
|
|
16
17
|
};
|
|
17
18
|
export {};
|
package/js/providers.js
CHANGED
|
@@ -3,7 +3,7 @@ import { setUse } from "./setUse.function.js";
|
|
|
3
3
|
// TODO: rename
|
|
4
4
|
setUse.memory.providerConfig = {
|
|
5
5
|
providers: [],
|
|
6
|
-
currentTagSupport: undefined,
|
|
6
|
+
//currentTagSupport: undefined as TagSupport | undefined,
|
|
7
7
|
ownerTag: undefined,
|
|
8
8
|
};
|
|
9
9
|
function get(constructMethod) {
|
|
@@ -76,7 +76,7 @@ setUse({
|
|
|
76
76
|
});
|
|
77
77
|
function run(tagSupport, ownerTag) {
|
|
78
78
|
const config = setUse.memory.providerConfig;
|
|
79
|
-
config.
|
|
79
|
+
// config.currentTagSupport = tagSupport
|
|
80
80
|
config.ownerTag = ownerTag;
|
|
81
81
|
if (tagSupport.memory.providers.length) {
|
|
82
82
|
config.providers.length = 0;
|
package/js/providers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../ts/providers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAE9C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../ts/providers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { TagSupport } from "./TagSupport.class.js";
|
|
1
2
|
import { TemplaterResult } from "./templater.utils.js";
|
|
2
3
|
import { Tag } from "./Tag.class.js";
|
|
3
|
-
export declare function redrawTag(
|
|
4
|
-
ownerTag?: Tag): {
|
|
4
|
+
export declare function redrawTag(tagSupport: TagSupport, templater: TemplaterResult, // latest tag function to call for rendering
|
|
5
|
+
existingTag?: Tag, ownerTag?: Tag): {
|
|
5
6
|
remit: boolean;
|
|
6
7
|
retag: Tag;
|
|
7
8
|
};
|
package/js/redrawTag.function.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
ownerTag) {
|
|
4
|
-
const tagSupport = existingTag?.tagSupport || getTagSupport(templater);
|
|
1
|
+
export function redrawTag(tagSupport, templater, // latest tag function to call for rendering
|
|
2
|
+
existingTag, ownerTag) {
|
|
5
3
|
const result = templater.renderWithSupport(tagSupport, existingTag, ownerTag);
|
|
6
4
|
return result;
|
|
7
5
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redrawTag.function.js","sourceRoot":"","sources":["../ts/redrawTag.function.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"redrawTag.function.js","sourceRoot":"","sources":["../ts/redrawTag.function.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,SAAS,CACvB,UAAsB,EACtB,SAA0B,EAAE,4CAA4C;AACxE,WAAiB,EACjB,QAAc;IAEd,MAAM,MAAM,GAAG,SAAS,CAAC,iBAAiB,CACxC,UAAU,EACV,WAAW,EACX,QAAQ,CACT,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export type StateConfig<T> = (x: T) => [T, T];
|
|
2
|
+
export type StateConfigItem<T> = {
|
|
3
|
+
callback?: StateConfig<T>;
|
|
4
|
+
lastValue?: T;
|
|
5
|
+
defaultValue?: T;
|
|
6
|
+
watch?: T;
|
|
7
|
+
};
|
|
8
|
+
export type StateConfigArray = StateConfigItem<any>[];
|
|
9
|
+
export type Config = {
|
|
10
|
+
array: StateConfigArray;
|
|
11
|
+
rearray: StateConfigArray;
|
|
12
|
+
};
|
|
13
|
+
export type State = {
|
|
14
|
+
newest: StateConfigArray;
|
|
15
|
+
};
|
|
16
|
+
export type GetSet<T> = (y: T) => [T, T];
|
|
17
|
+
export declare function makeStateResult<T>(initValue: T, push: StateConfigItem<T>): (y: any) => T;
|
|
18
|
+
export declare function onNextStateOnly(callback: () => unknown): void;
|
|
19
|
+
export declare function getStateValue<T>(state: StateConfigItem<T>): T | undefined;
|
|
20
|
+
export declare class StateEchoBack {
|
|
21
|
+
}
|
|
22
|
+
/** Used for variables that need to remain the same variable during render passes */
|
|
23
|
+
export declare function set<T>(defaultValue: T | (() => T)): T;
|