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
package/js/tagElement.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { runBeforeRender } from "./tagRunner.js";
|
|
1
|
+
import { runAfterRender, runBeforeRedraw, runBeforeRender } from "./tagRunner.js";
|
|
2
|
+
import { providersChangeCheck } from "./provider.utils.js";
|
|
2
3
|
const appElements = [];
|
|
3
4
|
export function tagElement(app, // (...args: unknown[]) => TemplaterResult,
|
|
4
5
|
element, props) {
|
|
@@ -14,9 +15,10 @@ element, props) {
|
|
|
14
15
|
// have a function setup and call the tagWrapper with (props, {update, async, on})
|
|
15
16
|
const result = applyTagUpdater(wrapper);
|
|
16
17
|
const { tag, tagSupport } = result;
|
|
18
|
+
// wrapper.tagSupport = tagSupport
|
|
17
19
|
tag.appElement = element;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
+
tag.tagSupport.oldest = tag;
|
|
21
|
+
addAppTagRender(tag.tagSupport, tag);
|
|
20
22
|
const templateElm = document.createElement('template');
|
|
21
23
|
templateElm.setAttribute('tag-detail', 'app-template-placeholder');
|
|
22
24
|
element.appendChild(templateElm);
|
|
@@ -26,34 +28,31 @@ element, props) {
|
|
|
26
28
|
return { tag, tags: app.original.tags };
|
|
27
29
|
}
|
|
28
30
|
export function applyTagUpdater(wrapper) {
|
|
29
|
-
const tagSupport = wrapper.tagSupport;
|
|
31
|
+
const tagSupport = wrapper.tagSupport;
|
|
30
32
|
runBeforeRender(tagSupport, undefined);
|
|
31
33
|
// Call the apps function for our tag templater
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
tag.tagSupport = tagSupport;
|
|
35
|
-
tag.afterRender();
|
|
34
|
+
const tag = wrapper.wrapper();
|
|
35
|
+
runAfterRender(tagSupport, tag);
|
|
36
36
|
return { tag, tagSupport };
|
|
37
37
|
}
|
|
38
38
|
/** Overwrites arguments.tagSupport.mutatingRender */
|
|
39
39
|
export function addAppTagRender(tagSupport, tag) {
|
|
40
|
-
let lastTag;
|
|
40
|
+
let lastTag = tag;
|
|
41
41
|
tagSupport.mutatingRender = () => {
|
|
42
|
-
|
|
42
|
+
const preRenderCount = tagSupport.memory.renderCount;
|
|
43
|
+
providersChangeCheck(tag);
|
|
44
|
+
// When the providers were checked, a render to myself occurred and I do not need to re-render again
|
|
45
|
+
if (preRenderCount !== tagSupport.memory.renderCount) {
|
|
46
|
+
return lastTag;
|
|
47
|
+
}
|
|
48
|
+
runBeforeRedraw(tag.tagSupport, tag);
|
|
43
49
|
const templater = tagSupport.templater; // wrapper
|
|
44
50
|
const fromTag = lastTag = templater.wrapper();
|
|
45
|
-
|
|
46
|
-
tagSupport.
|
|
47
|
-
tagSupport.
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
tag.afterRender();
|
|
51
|
-
tag.updateByTag(fromTag);
|
|
52
|
-
/*
|
|
53
|
-
if(lastTag) {
|
|
54
|
-
lastTag.destroy({stagger: 0})
|
|
55
|
-
}
|
|
56
|
-
*/
|
|
51
|
+
fromTag.tagSupport.memory = tagSupport.memory;
|
|
52
|
+
tagSupport.propsConfig = { ...fromTag.tagSupport.propsConfig };
|
|
53
|
+
tag.tagSupport.newest = fromTag;
|
|
54
|
+
runAfterRender(tag.tagSupport, tag);
|
|
55
|
+
tagSupport.oldest.updateByTag(fromTag);
|
|
57
56
|
tagSupport.newest = fromTag;
|
|
58
57
|
return lastTag;
|
|
59
58
|
};
|
package/js/tagElement.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tagElement.js","sourceRoot":"","sources":["../ts/tagElement.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"tagElement.js","sourceRoot":"","sources":["../ts/tagElement.ts"],"names":[],"mappings":"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"}
|
package/js/tagRunner.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Tag } from "./Tag.class.js";
|
|
2
|
-
import { TagSupport } from "./
|
|
2
|
+
import { TagSupport } from "./TagSupport.class.js";
|
|
3
3
|
export declare function runBeforeRender(tagSupport: TagSupport, tagOwner: Tag): void;
|
|
4
4
|
export declare function runAfterRender(tagSupport: TagSupport, tag: Tag): void;
|
|
5
5
|
export declare function runBeforeRedraw(tagSupport: TagSupport, tag: Tag): void;
|
package/js/templater.utils.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Tag } from "./Tag.class.js";
|
|
2
|
-
import { TagSupport } from "./
|
|
2
|
+
import { TagSupport } from "./TagSupport.class.js";
|
|
3
3
|
import { Props } from "./Props.js";
|
|
4
|
+
import { TagChildren } from "./tag.js";
|
|
4
5
|
export type Wrapper = (() => Tag) & {
|
|
5
6
|
original: () => Tag;
|
|
6
7
|
};
|
|
@@ -10,7 +11,7 @@ export declare class TemplaterResult {
|
|
|
10
11
|
newest?: Tag;
|
|
11
12
|
oldest?: Tag;
|
|
12
13
|
tagSupport: TagSupport;
|
|
13
|
-
constructor(props: Props);
|
|
14
|
+
constructor(props: Props, children: TagChildren);
|
|
14
15
|
redraw?: (force?: boolean) => Tag | undefined;
|
|
15
16
|
isTemplater: boolean;
|
|
16
17
|
forceRenderTemplate(tagSupport: TagSupport, ownerTag: Tag): Tag;
|
|
@@ -22,6 +23,4 @@ export declare class TemplaterResult {
|
|
|
22
23
|
export interface TemplateRedraw extends TemplaterResult {
|
|
23
24
|
redraw: () => Tag | undefined;
|
|
24
25
|
}
|
|
25
|
-
export
|
|
26
|
-
children?: Tag) => Tag;
|
|
27
|
-
export declare function getNewProps(props: Props, templater: TemplaterResult): any;
|
|
26
|
+
export declare function alterProps(props: Props, templater: TemplaterResult): any;
|
package/js/templater.utils.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TagSupport } from "./TagSupport.class.js";
|
|
2
2
|
import { isTagInstance } from "./isInstance.js";
|
|
3
3
|
import { runAfterRender, runBeforeRedraw, runBeforeRender } from "./tagRunner.js";
|
|
4
4
|
import { setUse } from "./setUse.function.js";
|
|
@@ -8,15 +8,14 @@ export class TemplaterResult {
|
|
|
8
8
|
newest;
|
|
9
9
|
oldest;
|
|
10
10
|
tagSupport;
|
|
11
|
-
constructor(props) {
|
|
12
|
-
this.tagSupport =
|
|
11
|
+
constructor(props, children) {
|
|
12
|
+
this.tagSupport = new TagSupport(this, children, props);
|
|
13
13
|
}
|
|
14
14
|
redraw;
|
|
15
15
|
isTemplater = true;
|
|
16
16
|
forceRenderTemplate(tagSupport, ownerTag) {
|
|
17
17
|
const tag = this.wrapper();
|
|
18
|
-
|
|
19
|
-
tag.afterRender();
|
|
18
|
+
runAfterRender(tagSupport, tag);
|
|
20
19
|
this.oldest = tag;
|
|
21
20
|
tagSupport.oldest = tag;
|
|
22
21
|
this.oldest = tag;
|
|
@@ -29,12 +28,9 @@ export class TemplaterResult {
|
|
|
29
28
|
// signify to other operations that a rendering has occurred so they do not need to render again
|
|
30
29
|
++tagSupport.memory.renderCount;
|
|
31
30
|
const runtimeOwnerTag = existingTag?.ownerTag || ownerTag;
|
|
32
|
-
if (
|
|
33
|
-
|
|
34
|
-
tagSupport
|
|
35
|
-
tagSupport.clonedProps = tagSupport.latestClonedProps;
|
|
36
|
-
// tagSupport.latestClonedProps = tagSupport.latestClonedProps
|
|
37
|
-
runBeforeRedraw(tagSupport, tagSupport.oldest);
|
|
31
|
+
if (existingTag) {
|
|
32
|
+
tagSupport.propsConfig = { ...existingTag.tagSupport.propsConfig };
|
|
33
|
+
runBeforeRedraw(tagSupport, existingTag);
|
|
38
34
|
}
|
|
39
35
|
else {
|
|
40
36
|
// first time render
|
|
@@ -47,33 +43,30 @@ export class TemplaterResult {
|
|
|
47
43
|
const templater = this;
|
|
48
44
|
const retag = templater.wrapper();
|
|
49
45
|
/* AFTER */
|
|
50
|
-
tagSupport.latestProps = retag.tagSupport.props;
|
|
51
|
-
tagSupport.latestClonedProps = retag.tagSupport.clonedProps;
|
|
52
|
-
// tagSupport.latestClonedProps = retag.tagSupport.latestClonedProps
|
|
53
|
-
retag.setSupport(tagSupport);
|
|
54
46
|
runAfterRender(tagSupport, retag);
|
|
55
47
|
templater.newest = retag;
|
|
56
48
|
retag.ownerTag = runtimeOwnerTag;
|
|
57
49
|
const oldest = tagSupport.oldest = tagSupport.oldest || retag;
|
|
58
50
|
tagSupport.newest = retag;
|
|
59
|
-
const oldestTagSupport = oldest.tagSupport;
|
|
60
|
-
oldest.tagSupport = oldestTagSupport || tagSupport;
|
|
61
51
|
oldest.tagSupport.templater = templater;
|
|
62
|
-
|
|
52
|
+
oldest.tagSupport.memory = retag.tagSupport.memory;
|
|
63
53
|
const isSameTag = existingTag && existingTag.isLikeTag(retag);
|
|
64
54
|
// If previously was a tag and seems to be same tag, then just update current tag with new values
|
|
65
55
|
if (isSameTag) {
|
|
66
|
-
|
|
56
|
+
existingTag.updateByTag(retag);
|
|
67
57
|
return { remit: false, retag };
|
|
68
58
|
}
|
|
69
59
|
return { remit: true, retag };
|
|
70
60
|
}
|
|
71
61
|
}
|
|
72
|
-
/*
|
|
73
|
-
export function
|
|
62
|
+
/* Used to rewrite props that are functions. When they are called it should cause parent rendering */
|
|
63
|
+
export function alterProps(props, templater) {
|
|
74
64
|
function callback(toCall, callWith) {
|
|
75
65
|
const callbackResult = toCall(...callWith);
|
|
76
|
-
templater.newest?.ownerTag?.tagSupport
|
|
66
|
+
const tagSupport = templater.newest?.ownerTag?.tagSupport;
|
|
67
|
+
if (tagSupport) {
|
|
68
|
+
tagSupport.render();
|
|
69
|
+
}
|
|
77
70
|
return callbackResult;
|
|
78
71
|
}
|
|
79
72
|
const isPropTag = isTagInstance(props);
|
|
@@ -85,15 +78,25 @@ function resetFunctionProps(props, callback) {
|
|
|
85
78
|
if (typeof (props) !== 'object') {
|
|
86
79
|
return props;
|
|
87
80
|
}
|
|
88
|
-
const newProps =
|
|
81
|
+
const newProps = props;
|
|
82
|
+
// BELOW: Do not clone because if first argument is object, the memory ref back is lost
|
|
83
|
+
// const newProps = {...props}
|
|
89
84
|
Object.entries(newProps).forEach(([name, value]) => {
|
|
90
85
|
if (value instanceof Function) {
|
|
86
|
+
const original = newProps[name].original;
|
|
87
|
+
if (original) {
|
|
88
|
+
newProps[name] = (...args) => {
|
|
89
|
+
return callback(value, args);
|
|
90
|
+
};
|
|
91
|
+
newProps[name].original = original;
|
|
92
|
+
return; // already previously converted
|
|
93
|
+
}
|
|
91
94
|
newProps[name] = (...args) => {
|
|
92
95
|
return callback(value, args);
|
|
93
96
|
};
|
|
97
|
+
newProps[name].original = value;
|
|
94
98
|
return;
|
|
95
99
|
}
|
|
96
|
-
newProps[name] = value;
|
|
97
100
|
});
|
|
98
101
|
return newProps;
|
|
99
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templater.utils.js","sourceRoot":"","sources":["../ts/templater.utils.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"templater.utils.js","sourceRoot":"","sources":["../ts/templater.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { runAfterRender, runBeforeRedraw } from "./tagRunner.js";
|
|
2
|
+
export function updateExistingTag(templater, ogTag, existingSubject) {
|
|
3
|
+
const tagSupport = ogTag.tagSupport;
|
|
4
|
+
const oldest = tagSupport.oldest;
|
|
5
|
+
const newest = tagSupport.newest;
|
|
6
|
+
runBeforeRedraw(oldest.tagSupport, newest || oldest);
|
|
7
|
+
const retag = templater.wrapper();
|
|
8
|
+
templater.newest = retag;
|
|
9
|
+
tagSupport.newest = retag;
|
|
10
|
+
runAfterRender(oldest.tagSupport, oldest);
|
|
11
|
+
ogTag.updateByTag(retag);
|
|
12
|
+
existingSubject.set(templater);
|
|
13
|
+
return [];
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=updateExistingTag.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateExistingTag.function.js","sourceRoot":"","sources":["../ts/updateExistingTag.function.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAGhE,MAAM,UAAU,iBAAiB,CAC/B,SAA0B,EAC1B,KAAU,EACV,eAA2B;IAE3B,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAA;IACnC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAa,CAAA;IACvC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAa,CAAA;IAEvC,eAAe,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,IAAI,MAAM,CAAC,CAAA;IAEpD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,EAAE,CAAA;IAEjC,SAAS,CAAC,MAAM,GAAG,KAAK,CAAA;IACxB,UAAU,CAAC,MAAM,GAAG,KAAK,CAAA;IACzB,cAAc,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;IACzC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;IAExB,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAE9B,OAAO,EAAE,CAAA;AACX,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { TagSubject } from "./Tag.utils.js";
|
|
2
|
+
import { TemplateRedraw } from "./templater.utils.js";
|
|
3
|
+
import { Tag } from "./Tag.class.js";
|
|
4
|
+
export declare function updateExistingTagComponent(tag: Tag, tempResult: TemplateRedraw, existingSubject: TagSubject, subjectValue: any): void;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { setValueRedraw } from "./Tag.utils.js";
|
|
2
|
+
import { deepClone } from "./deepFunctions.js";
|
|
3
|
+
import { isTagInstance } from "./isInstance.js";
|
|
4
|
+
import { destroyTagMemory } from "./updateExistingValue.function.js";
|
|
5
|
+
import { hasTagSupportChanged } from "./hasTagSupportChanged.function.js";
|
|
6
|
+
export function updateExistingTagComponent(tag, tempResult, existingSubject, subjectValue) {
|
|
7
|
+
let existingTag = existingSubject.tag;
|
|
8
|
+
// previously was something else, now a tag component
|
|
9
|
+
if (!existingTag) {
|
|
10
|
+
setValueRedraw(tempResult, existingSubject, tag);
|
|
11
|
+
tempResult.redraw();
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
// tag existingTag
|
|
15
|
+
const oldWrapper = existingTag.tagSupport.templater.wrapper;
|
|
16
|
+
const newWrapper = tempResult.wrapper;
|
|
17
|
+
let isSameTag = false;
|
|
18
|
+
if (oldWrapper && newWrapper) {
|
|
19
|
+
const oldFunction = oldWrapper.original;
|
|
20
|
+
const newFunction = newWrapper.original;
|
|
21
|
+
isSameTag = oldFunction === newFunction;
|
|
22
|
+
}
|
|
23
|
+
const latestProps = tempResult.tagSupport.propsConfig.latest;
|
|
24
|
+
const oldTagSetup = existingTag.tagSupport;
|
|
25
|
+
oldTagSetup.propsConfig.latest = latestProps;
|
|
26
|
+
if (!isSameTag) {
|
|
27
|
+
destroyTagMemory(existingTag, existingSubject);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
const subjectTagSupport = subjectValue?.tagSupport;
|
|
31
|
+
// old props may have changed, reclone first
|
|
32
|
+
let oldCloneProps = subjectTagSupport.props;
|
|
33
|
+
// if the new props are NOT HTML children, then clone the props for later render cycle comparing
|
|
34
|
+
if (!isTagInstance(subjectTagSupport.props)) {
|
|
35
|
+
oldCloneProps = deepClone(subjectTagSupport.props);
|
|
36
|
+
}
|
|
37
|
+
if (existingTag) {
|
|
38
|
+
const newTagSupport = tempResult.tagSupport;
|
|
39
|
+
const hasChanged = hasTagSupportChanged(oldTagSetup, newTagSupport);
|
|
40
|
+
if (!hasChanged) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
setValueRedraw(tempResult, existingSubject, tag);
|
|
46
|
+
oldTagSetup.templater = tempResult;
|
|
47
|
+
const redraw = tempResult.redraw();
|
|
48
|
+
/*
|
|
49
|
+
// ???
|
|
50
|
+
const redraw = tempResult.redraw() as Tag
|
|
51
|
+
existingSubject.value.tag = oldTagSetup.newest = redraw
|
|
52
|
+
*/
|
|
53
|
+
oldTagSetup.propsConfig = { ...tempResult.tagSupport.propsConfig };
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=updateExistingTagComponent.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateExistingTagComponent.function.js","sourceRoot":"","sources":["../ts/updateExistingTagComponent.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAA;AAEzE,MAAM,UAAU,0BAA0B,CACxC,GAAQ,EACR,UAA0B,EAC1B,eAA2B,EAC3B,YAAiB;IAEjB,IAAI,WAAW,GAAoB,eAAe,CAAC,GAAG,CAAA;IAEtD,qDAAqD;IACrD,IAAI,CAAC,WAAW,EAAG,CAAC;QAClB,cAAc,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,CAAC,CAAA;QAChD,UAAU,CAAC,MAAM,EAAE,CAAA;QACnB,OAAM;IACR,CAAC;IAED,kBAAkB;IAClB,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAA;IAC3D,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAA;IACrC,IAAI,SAAS,GAAG,KAAK,CAAA;IAErB,IAAG,UAAU,IAAI,UAAU,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAA;QACvC,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAA;QACvC,SAAS,GAAG,WAAW,KAAK,WAAW,CAAA;IACzC,CAAC;IAED,MAAM,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAA;IAC5D,MAAM,WAAW,GAAG,WAAW,CAAC,UAAU,CAAA;IAC1C,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,WAAW,CAAA;IAE5C,IAAG,CAAC,SAAS,EAAE,CAAC;QACd,gBAAgB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAA;IAChD,CAAC;SAAM,CAAC;QACN,MAAM,iBAAiB,GAAG,YAAY,EAAE,UAAU,CAAA;QAClD,4CAA4C;QAE5C,IAAI,aAAa,GAAG,iBAAiB,CAAC,KAAK,CAAA;QAE3C,gGAAgG;QAChG,IAAG,CAAC,aAAa,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3C,aAAa,GAAG,SAAS,CAAE,iBAAiB,CAAC,KAAK,CAAE,CAAA;QACtD,CAAC;QAED,IAAG,WAAW,EAAE,CAAC;YACf,MAAM,aAAa,GAAG,UAAU,CAAC,UAAU,CAAA;YAC3C,MAAM,UAAU,GAAG,oBAAoB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;YACnE,IAAG,CAAC,UAAU,EAAE,CAAC;gBACf,OAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,cAAc,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,CAAC,CAAA;IAEhD,WAAW,CAAC,SAAS,GAAG,UAAU,CAAA;IAElC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAS,CAAA;IACzC;;;;MAIE;IACF,WAAW,CAAC,WAAW,GAAG,EAAC,GAAG,UAAU,CAAC,UAAU,CAAC,WAAW,EAAC,CAAA;IAEhE,OAAM;AACR,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DisplaySubject, TagSubject } from "./Tag.utils.js";
|
|
2
|
+
import { TagSupport } from "./TagSupport.class.js";
|
|
3
|
+
import { Subject } from "./Subject.js";
|
|
4
|
+
import { TemplaterResult } from "./templater.utils.js";
|
|
5
|
+
import { Tag } from "./Tag.class.js";
|
|
6
|
+
import { TagArraySubject } from "./processTagArray.js";
|
|
7
|
+
type ExistingSubject = Subject<Tag> | TemplaterResult | TagSubject | TagArraySubject | DisplaySubject;
|
|
8
|
+
export declare function updateExistingValue(existing: ExistingSubject, value: TemplaterResult | Tag[] | TagSupport | Function | Subject<any>, ownerTag: Tag): void;
|
|
9
|
+
export declare function destroyTagMemory(existingTag: Tag, existingSubject: TagSubject): void;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { isSubjectInstance, isTagArray, isTagComponent, isTagInstance } from "./isInstance.js";
|
|
2
|
+
import { bindSubjectCallback } from "./bindSubjectCallback.function.js";
|
|
3
|
+
import { destroySimpleValue, processTag } from "./processSubjectValue.function.js";
|
|
4
|
+
import { processTagArray } from "./processTagArray.js";
|
|
5
|
+
import { updateExistingTagComponent } from "./updateExistingTagComponent.function.js";
|
|
6
|
+
import { updateExistingTag } from "./updateExistingTag.function.js";
|
|
7
|
+
import { processRegularValue } from "./processRegularValue.function.js";
|
|
8
|
+
function checkDestroyPrevious(existing, value) {
|
|
9
|
+
const existingSubArray = existing;
|
|
10
|
+
const wasArray = existingSubArray.lastArray;
|
|
11
|
+
// no longer an array
|
|
12
|
+
if (wasArray && !isTagArray(value)) {
|
|
13
|
+
wasArray.forEach(({ tag }) => tag.destroy());
|
|
14
|
+
delete existing.lastArray;
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const existingTagSubject = existing;
|
|
18
|
+
const existingTag = existingTagSubject.tag;
|
|
19
|
+
const isValueTagComponent = isTagComponent(value);
|
|
20
|
+
const isSimpleValue = !(isValueTagComponent || isTagArray(value) || isTagInstance(value));
|
|
21
|
+
// no longer tag or component?
|
|
22
|
+
if (existingTag) {
|
|
23
|
+
// no longer a component
|
|
24
|
+
if (isTagComponent(existingTag) && !isValueTagComponent) {
|
|
25
|
+
destroyTagMemory(existingTag, existingTagSubject);
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
// no longer a tag
|
|
29
|
+
if (!isTagInstance(value)) {
|
|
30
|
+
destroyTagMemory(existingTag, existingTagSubject);
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
return; // was tag and still is tag
|
|
34
|
+
}
|
|
35
|
+
const displaySubject = existing;
|
|
36
|
+
const clone = displaySubject.clone;
|
|
37
|
+
// was simple value but now something bigger
|
|
38
|
+
if (clone && !isSimpleValue) {
|
|
39
|
+
destroySimpleValue(displaySubject.template, displaySubject);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
export function updateExistingValue(existing, value, ownerTag) {
|
|
43
|
+
const subjectValue = existing.value;
|
|
44
|
+
const tempResult = value;
|
|
45
|
+
const existingSubArray = existing;
|
|
46
|
+
const existingSubTag = existing;
|
|
47
|
+
checkDestroyPrevious(existing, value);
|
|
48
|
+
// If we are working with tag component 2nd argument children, the value has to be digged
|
|
49
|
+
if (existingSubArray.isChildSubject) {
|
|
50
|
+
value = value.value; // A subject contains the value
|
|
51
|
+
}
|
|
52
|
+
// was component but no longer
|
|
53
|
+
const existingTag = existingSubTag.tag;
|
|
54
|
+
if (existingTag) {
|
|
55
|
+
handleStillTag(existingTag, existing, value, ownerTag);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
// its another tag array
|
|
59
|
+
if (isTagArray(value)) {
|
|
60
|
+
const insertBefore = existingSubArray.template || existingSubTag.tag?.insertBefore;
|
|
61
|
+
processTagArray(existing, value, insertBefore, ownerTag, { counts: {
|
|
62
|
+
added: 0,
|
|
63
|
+
removed: 0,
|
|
64
|
+
} });
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
// handle already seen tag components
|
|
68
|
+
if (isTagComponent(tempResult)) {
|
|
69
|
+
return updateExistingTagComponent(ownerTag, tempResult, existingSubTag, subjectValue);
|
|
70
|
+
}
|
|
71
|
+
// now its a function
|
|
72
|
+
if (value instanceof Function) {
|
|
73
|
+
existingSubTag.set(bindSubjectCallback(value, ownerTag));
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
// we have been given a subject
|
|
77
|
+
if (isSubjectInstance(value)) {
|
|
78
|
+
existingSubTag.set(value.value); // let ValueSubject now of newest value
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
existingSubTag.set(value); // let ValueSubject now of newest value
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
function handleStillTag(existingTag, existing, value, ownerTag) {
|
|
85
|
+
const oldWrapper = existingTag.tagSupport.templater.wrapper;
|
|
86
|
+
const newWrapper = value?.wrapper;
|
|
87
|
+
const wrapMatch = oldWrapper && newWrapper && oldWrapper?.original === newWrapper?.original;
|
|
88
|
+
// TODO: We shouldn't need both of these
|
|
89
|
+
const isSameTag = value && existingTag.lastTemplateString === value.lastTemplateString;
|
|
90
|
+
const isSameTag2 = value && value.getTemplate && existingTag.isLikeTag(value);
|
|
91
|
+
if (isSameTag || isSameTag2) {
|
|
92
|
+
return processTag(value, existing, existing.template, ownerTag, // existingTag, // tag,
|
|
93
|
+
{
|
|
94
|
+
counts: {
|
|
95
|
+
added: 0,
|
|
96
|
+
removed: 0,
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
if (wrapMatch) {
|
|
101
|
+
return updateExistingTag(value, existingTag, existing);
|
|
102
|
+
}
|
|
103
|
+
const subject = existing;
|
|
104
|
+
return processRegularValue(value, subject, subject.template, ownerTag);
|
|
105
|
+
}
|
|
106
|
+
export function destroyTagMemory(existingTag, existingSubject) {
|
|
107
|
+
delete existingSubject.tag;
|
|
108
|
+
delete existingSubject.tagSupport;
|
|
109
|
+
// delete subjectValue.tagSupport
|
|
110
|
+
existingTag.destroy();
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=updateExistingValue.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateExistingValue.function.js","sourceRoot":"","sources":["../ts/updateExistingValue.function.ts"],"names":[],"mappings":"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"}
|
package/js/updateTag.utils.d.ts
CHANGED
|
@@ -5,3 +5,4 @@ import { TemplaterResult } from "./templater.utils.js";
|
|
|
5
5
|
import { Tag } from "./Tag.class.js";
|
|
6
6
|
import { TagArraySubject } from "./processTagArray.js";
|
|
7
7
|
export declare function updateExistingValue(existing: Subject<Tag> | TemplaterResult | TagSubject | TagArraySubject, value: TemplaterResult | TagSupport | Function | Subject<any>, tag: Tag): void;
|
|
8
|
+
export declare function destroyTagMemory(existingTag: Tag, existingSubject: TagSubject, subjectValue: any): void;
|
package/js/updateTag.utils.js
CHANGED
|
@@ -1,83 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { deepClone } from "./deepFunctions.js";
|
|
3
|
-
import { isSubjectInstance, isTagComponent, isTagInstance } from "./isInstance.js";
|
|
1
|
+
import { isSubjectInstance, isTagArray, isTagComponent } from "./isInstance.js";
|
|
4
2
|
import { bindSubjectCallback } from "./bindSubjectCallback.function.js";
|
|
5
|
-
import {
|
|
3
|
+
import { processTag } from "./processSubjectValue.function.js";
|
|
6
4
|
import { processTagArray } from "./processTagArray.js";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
let existingTag = existingSubject.tag;
|
|
10
|
-
// previously was something else, now a tag component
|
|
11
|
-
if (!existingTag) {
|
|
12
|
-
setValueRedraw(tempResult, existingSubject, tag);
|
|
13
|
-
tempResult.redraw();
|
|
14
|
-
return;
|
|
15
|
-
}
|
|
16
|
-
// tag existingTag
|
|
17
|
-
const oldWrapper = existingTag.tagSupport.templater.wrapper;
|
|
18
|
-
const newWrapper = tempResult.wrapper;
|
|
19
|
-
let isSameTag = false;
|
|
20
|
-
if (oldWrapper && newWrapper) {
|
|
21
|
-
const oldFunction = oldWrapper.original;
|
|
22
|
-
const newFunction = newWrapper.original;
|
|
23
|
-
isSameTag = oldFunction === newFunction;
|
|
24
|
-
}
|
|
25
|
-
const oldTagSetup = existingTag.tagSupport;
|
|
26
|
-
const oldProps = oldTagSetup.props;
|
|
27
|
-
oldTagSetup.latestProps = latestProps;
|
|
28
|
-
const oldClonedProps = oldTagSetup.latestClonedProps;
|
|
29
|
-
oldTagSetup.latestClonedProps = tempResult.tagSupport.clonedProps;
|
|
30
|
-
// oldTagSetup.latestClonedProps = tempResult.tagSupport.latestClonedProps
|
|
31
|
-
if (!isSameTag) {
|
|
32
|
-
// TODO: this may not be in use
|
|
33
|
-
destroyTagMemory(existingTag, existingSubject, subjectValue);
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
const subjectTagSupport = subjectValue?.tagSupport;
|
|
37
|
-
// old props may have changed, reclone first
|
|
38
|
-
let oldCloneProps = subjectTagSupport.props;
|
|
39
|
-
// if the new props are NOT HTML children, then clone the props for later render cycle comparing
|
|
40
|
-
if (!isTagInstance(subjectTagSupport.props)) {
|
|
41
|
-
oldCloneProps = deepClone(subjectTagSupport.props);
|
|
42
|
-
}
|
|
43
|
-
// const oldProps = subjectTagSupport?.props // tagSupport.props
|
|
44
|
-
if (existingTag) {
|
|
45
|
-
// const equal = oldTagSetup.hasPropChanges(oldProps, oldCloneProps, latestProps)
|
|
46
|
-
const equal = oldTagSetup.hasPropChanges(latestProps, oldClonedProps, oldProps);
|
|
47
|
-
// no changes detected so no need to continue to render
|
|
48
|
-
if (!equal) {
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
setValueRedraw(tempResult, existingSubject, tag);
|
|
54
|
-
oldTagSetup.templater = tempResult;
|
|
55
|
-
const redraw = tempResult.redraw();
|
|
56
|
-
existingSubject.value.tag = oldTagSetup.newest = redraw;
|
|
57
|
-
if (!isSameTag) {
|
|
58
|
-
existingSubject.tag = redraw;
|
|
59
|
-
subjectValue.tagSupport = tempResult.tagSupport;
|
|
60
|
-
}
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
function updateExistingTag(templater, ogTag, existingSubject) {
|
|
64
|
-
const tagSupport = ogTag.tagSupport;
|
|
65
|
-
const oldest = tagSupport.oldest;
|
|
66
|
-
oldest.beforeRedraw();
|
|
67
|
-
const retag = templater.wrapper();
|
|
68
|
-
// move my props onto tagSupport
|
|
69
|
-
tagSupport.latestProps = retag.tagSupport.props;
|
|
70
|
-
tagSupport.latestClonedProps = retag.tagSupport.clonedProps;
|
|
71
|
-
// tagSupport.latestClonedProps = retag.tagSupport.latestClonedProps
|
|
72
|
-
tagSupport.memory = retag.tagSupport.memory;
|
|
73
|
-
retag.setSupport(tagSupport);
|
|
74
|
-
templater.newest = retag;
|
|
75
|
-
tagSupport.newest = retag;
|
|
76
|
-
oldest.afterRender();
|
|
77
|
-
ogTag.updateByTag(retag);
|
|
78
|
-
existingSubject.set(templater);
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
5
|
+
import { updateExistingTagComponent } from "./updateExistingTagComponent.function.js";
|
|
6
|
+
import { updateExistingTag } from "./updateExistingTag.function.js";
|
|
81
7
|
export function updateExistingValue(existing, value, tag) {
|
|
82
8
|
const subjectValue = existing.value;
|
|
83
9
|
const ogTag = subjectValue?.tag;
|
|
@@ -148,7 +74,7 @@ export function updateExistingValue(existing, value, tag) {
|
|
|
148
74
|
existingSubTag.set(value); // let ValueSubject now of newest value
|
|
149
75
|
return;
|
|
150
76
|
}
|
|
151
|
-
function destroyTagMemory(existingTag, existingSubject, subjectValue) {
|
|
77
|
+
export function destroyTagMemory(existingTag, existingSubject, subjectValue) {
|
|
152
78
|
delete existingSubject.tag;
|
|
153
79
|
delete existingSubject.tagSupport;
|
|
154
80
|
delete subjectValue.tagSupport;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateTag.utils.js","sourceRoot":"","sources":["../ts/updateTag.utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"updateTag.utils.js","sourceRoot":"","sources":["../ts/updateTag.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export type WatchCallback = (currentValues: any[], previousValues: any[] | undefined) => unknown | ((currentValues: any[]) => unknown) | (() => unknown);
|
|
2
|
+
/** When an item in watch array changes, callback function will be triggered */
|
|
3
|
+
export declare function watch<T>(currentValues: T[], callback: WatchCallback): T[];
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { setLet } from "./setLet.function.js";
|
|
2
|
+
/** When an item in watch array changes, callback function will be triggered */
|
|
3
|
+
export function watch(currentValues, callback) {
|
|
4
|
+
let previousValues = setLet(undefined)(x => [previousValues, previousValues = x]);
|
|
5
|
+
if (previousValues === undefined) {
|
|
6
|
+
callback(currentValues, previousValues);
|
|
7
|
+
const result = { currentValues, previousValues };
|
|
8
|
+
previousValues = currentValues;
|
|
9
|
+
return currentValues;
|
|
10
|
+
}
|
|
11
|
+
const allExact = currentValues.every((item, index) => item === previousValues[index]);
|
|
12
|
+
if (allExact) {
|
|
13
|
+
return currentValues;
|
|
14
|
+
}
|
|
15
|
+
callback(currentValues, previousValues);
|
|
16
|
+
previousValues = currentValues;
|
|
17
|
+
return currentValues;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=watch.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch.function.js","sourceRoot":"","sources":["../ts/watch.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAO7C,+EAA+E;AAC/E,MAAM,UAAU,KAAK,CACnB,aAAkB,EAClB,QAAuB;IAEvB,IAAI,cAAc,GAAG,MAAM,CAAC,SAAkC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,cAAc,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC,CAAA;IAE1G,IAAG,cAAc,KAAK,SAAS,EAAE,CAAC;QAChC,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC,CAAA;QACvC,MAAM,MAAM,GAAG,EAAC,aAAa,EAAE,cAAc,EAAC,CAAA;QAC9C,cAAc,GAAG,aAAa,CAAA;QAC9B,OAAO,aAAa,CAAA;IACtB,CAAC;IAED,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,KAAM,cAAwB,CAAC,KAAK,CAAC,CAAC,CAAA;IAEhG,IAAG,QAAQ,EAAE,CAAC;QACZ,OAAO,aAAa,CAAA;IACtB,CAAC;IAED,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC,CAAA;IACvC,cAAc,GAAG,aAAa,CAAA;IAE9B,OAAO,aAAa,CAAA;AACtB,CAAC"}
|