taggedjs 2.5.4 → 2.5.6
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/bundle.js +3378 -2966
- package/bundle.js.map +1 -1
- package/js/Props.d.ts +1 -1
- package/js/Tag.class.d.ts +1 -1
- package/js/TemplaterResult.class.d.ts +14 -8
- package/js/TemplaterResult.class.js +13 -3
- package/js/TemplaterResult.class.js.map +1 -1
- package/js/afterInterpolateElement.function.d.ts +2 -2
- package/js/alterProps.function.d.ts +2 -3
- package/js/alterProps.function.js +6 -7
- package/js/alterProps.function.js.map +1 -1
- package/js/checkDestroyPrevious.function.d.ts +3 -3
- package/js/checkDestroyPrevious.function.js +2 -2
- package/js/checkDestroyPrevious.function.js.map +1 -1
- package/js/cloneValueArray.function.d.ts +1 -1
- package/js/destroy.support.d.ts +1 -1
- package/js/destroyTag.function.d.ts +1 -1
- package/js/hasTagSupportChanged.function.d.ts +1 -1
- package/js/index.d.ts +15 -12
- package/js/index.js +15 -12
- package/js/index.js.map +1 -1
- package/js/insertAfter.function.d.ts +1 -1
- package/js/interpolations/Clones.type.d.ts +3 -0
- package/js/interpolations/Clones.type.js +2 -0
- package/js/interpolations/Clones.type.js.map +1 -0
- package/js/interpolations/ElementTargetEvent.interface.d.ts +6 -0
- package/js/interpolations/ElementTargetEvent.interface.js +2 -0
- package/js/interpolations/ElementTargetEvent.interface.js.map +1 -0
- package/js/interpolations/afterInterpolateElement.function.d.ts +4 -0
- package/js/interpolations/afterInterpolateElement.function.js +12 -0
- package/js/interpolations/afterInterpolateElement.function.js.map +1 -0
- package/js/interpolations/bindSubjectCallback.function.d.ts +1 -1
- package/js/interpolations/bindSubjectCallback.function.js +11 -9
- package/js/interpolations/bindSubjectCallback.function.js.map +1 -1
- package/js/interpolations/interpolateAttributes.d.ts +2 -2
- package/js/interpolations/interpolateContentTemplates.d.ts +2 -2
- package/js/interpolations/interpolateElement.d.ts +2 -2
- package/js/interpolations/interpolateElement.js +1 -1
- package/js/interpolations/interpolateElement.js.map +1 -1
- package/js/interpolations/interpolateTemplate.d.ts +4 -4
- package/js/interpolations/interpolateTemplate.js +19 -4
- package/js/interpolations/interpolateTemplate.js.map +1 -1
- package/js/interpolations/processAttribute.function.d.ts +2 -2
- package/js/interpolations/scanTextAreaValue.function.d.ts +2 -2
- package/js/isInstance.d.ts +2 -2
- package/js/isInstance.js +2 -1
- package/js/isInstance.js.map +1 -1
- package/js/isLikeTags.function.d.ts +2 -1
- package/js/isLikeTags.function.js +3 -0
- package/js/isLikeTags.function.js.map +1 -1
- package/js/processNewValue.function.d.ts +1 -1
- package/js/processNewValue.function.js +1 -1
- package/js/processNewValue.function.js.map +1 -1
- package/js/processSubjectComponent.function.d.ts +1 -1
- package/js/processSubjectComponent.function.js +1 -1
- package/js/processSubjectComponent.function.js.map +1 -1
- package/js/processSubjectValue.function.d.ts +2 -2
- package/js/processSubjectValue.function.js +2 -2
- package/js/processSubjectValue.function.js.map +1 -1
- package/js/processTag.function.d.ts +1 -1
- package/js/processTag.function.js +1 -1
- package/js/processTag.function.js.map +1 -1
- package/js/processTagArray.d.ts +1 -1
- package/js/processTagArray.js +2 -2
- package/js/processTagArray.js.map +1 -1
- package/js/processTagResult.function.d.ts +2 -2
- package/js/render.d.ts +1 -1
- package/js/render.js +6 -5
- package/js/render.js.map +1 -1
- package/js/renderExistingTag.function.d.ts +1 -1
- package/js/renderExistingTag.function.js +3 -4
- package/js/renderExistingTag.function.js.map +1 -1
- package/js/renderSubjectComponent.function.d.ts +1 -1
- package/js/renderSubjectComponent.function.js +1 -1
- package/js/renderSubjectComponent.function.js.map +1 -1
- package/js/renderTagOnly.function.d.ts +4 -0
- package/js/renderTagOnly.function.js +39 -0
- package/js/renderTagOnly.function.js.map +1 -0
- package/js/renderTagSupport.function.d.ts +1 -1
- package/js/renderTagSupport.function.js +1 -1
- package/js/renderTagSupport.function.js.map +1 -1
- package/js/renderWithSupport.function.d.ts +2 -3
- package/js/renderWithSupport.function.js +4 -36
- package/js/renderWithSupport.function.js.map +1 -1
- package/js/state/callbackMaker.function.d.ts +3 -2
- package/js/state/callbackMaker.function.js +40 -18
- package/js/state/callbackMaker.function.js.map +1 -1
- package/js/state/children.d.ts +1 -0
- package/js/state/children.js +14 -0
- package/js/state/children.js.map +1 -0
- package/js/state/index.d.ts +2 -1
- package/js/state/index.js +2 -1
- package/js/state/index.js.map +1 -1
- package/js/state/provider.utils.d.ts +1 -1
- package/js/state/provider.utils.js +7 -7
- package/js/state/provider.utils.js.map +1 -1
- package/js/state/providers.d.ts +4 -2
- package/js/state/providers.js +56 -47
- package/js/state/providers.js.map +1 -1
- package/js/state/setUse.function.d.ts +9 -8
- package/js/state/setUse.function.js.map +1 -1
- package/js/state/state.function.js +17 -0
- package/js/state/state.function.js.map +1 -1
- package/js/state/state.utils.d.ts +1 -1
- package/js/state/state.utils.js +38 -24
- package/js/state/state.utils.js.map +1 -1
- package/js/state/subject.function.d.ts +12 -0
- package/js/state/subject.function.js +23 -0
- package/js/state/subject.function.js.map +1 -0
- package/js/state/syncStates.function.d.ts +2 -0
- package/js/state/syncStates.function.js +11 -0
- package/js/state/syncStates.function.js.map +1 -0
- package/js/state/watch.function.d.ts +20 -3
- package/js/state/watch.function.js +106 -10
- package/js/state/watch.function.js.map +1 -1
- package/js/subject/Subject.class.d.ts +9 -3
- package/js/subject/Subject.class.js +20 -54
- package/js/subject/Subject.class.js.map +1 -1
- package/js/subject/Subject.utils.d.ts +6 -3
- package/js/subject/Subject.utils.js +51 -3
- package/js/subject/Subject.utils.js.map +1 -1
- package/js/subject/ValueSubject.d.ts +2 -2
- package/js/subject/combineLatest.function.js +10 -2
- package/js/subject/combineLatest.function.js.map +1 -1
- package/js/subject/subject.cancel.d.ts +2 -0
- package/js/subject/subject.cancel.js +3 -0
- package/js/subject/subject.cancel.js.map +1 -0
- package/js/subject/will.functions.d.ts +1 -1
- package/js/subject.types.d.ts +2 -2
- package/js/tag/Tag.class.d.ts +43 -0
- package/js/tag/Tag.class.js +27 -0
- package/js/tag/Tag.class.js.map +1 -0
- package/js/tag/TagSupport.class.d.ts +58 -0
- package/js/tag/TagSupport.class.js +306 -0
- package/js/tag/TagSupport.class.js.map +1 -0
- package/js/tag/checkDestroyPrevious.function.d.ts +8 -0
- package/js/tag/checkDestroyPrevious.function.js +83 -0
- package/js/tag/checkDestroyPrevious.function.js.map +1 -0
- package/js/tag/cloneValueArray.function.d.ts +2 -0
- package/js/tag/cloneValueArray.function.js +19 -0
- package/js/tag/cloneValueArray.function.js.map +1 -0
- package/js/tag/destroy.support.d.ts +6 -0
- package/js/tag/destroy.support.js +10 -0
- package/js/tag/destroy.support.js.map +1 -0
- package/js/tag/destroyTag.function.d.ts +3 -0
- package/js/tag/destroyTag.function.js +12 -0
- package/js/tag/destroyTag.function.js.map +1 -0
- package/js/tag/elementDestroyCheck.function.d.ts +3 -0
- package/js/tag/elementDestroyCheck.function.js +17 -0
- package/js/tag/elementDestroyCheck.function.js.map +1 -0
- package/js/tag/getSupportInCycle.function.d.ts +1 -0
- package/js/tag/getSupportInCycle.function.js +5 -0
- package/js/tag/getSupportInCycle.function.js.map +1 -0
- package/js/tag/hasPropChanges.function.d.ts +9 -0
- package/js/tag/hasPropChanges.function.js +80 -0
- package/js/tag/hasPropChanges.function.js.map +1 -0
- package/js/tag/hasTagSupportChanged.function.d.ts +4 -0
- package/js/tag/hasTagSupportChanged.function.js +23 -0
- package/js/tag/hasTagSupportChanged.function.js.map +1 -0
- package/js/tag/html.d.ts +4 -0
- package/js/tag/html.js +5 -0
- package/js/tag/html.js.map +1 -0
- package/js/tag/isLikeTags.function.d.ts +5 -0
- package/js/tag/isLikeTags.function.js +42 -0
- package/js/tag/isLikeTags.function.js.map +1 -0
- package/js/tag/render/renderExistingTag.function.d.ts +7 -0
- package/js/tag/render/renderExistingTag.function.js +32 -0
- package/js/tag/render/renderExistingTag.function.js.map +1 -0
- package/js/tag/render/renderSubjectComponent.function.d.ts +3 -0
- package/js/tag/render/renderSubjectComponent.function.js +14 -0
- package/js/tag/render/renderSubjectComponent.function.js.map +1 -0
- package/js/tag/render/renderTagOnly.function.d.ts +3 -0
- package/js/tag/render/renderTagOnly.function.js +41 -0
- package/js/tag/render/renderTagOnly.function.js.map +1 -0
- package/js/tag/render/renderTagSupport.function.d.ts +4 -0
- package/js/tag/render/renderTagSupport.function.js +37 -0
- package/js/tag/render/renderTagSupport.function.js.map +1 -0
- package/js/tag/render/renderWithSupport.function.d.ts +5 -0
- package/js/tag/render/renderWithSupport.function.js +31 -0
- package/js/tag/render/renderWithSupport.function.js.map +1 -0
- package/js/tag/setTagPlaceholder.function.d.ts +4 -0
- package/js/tag/setTagPlaceholder.function.js +12 -0
- package/js/tag/setTagPlaceholder.function.js.map +1 -0
- package/js/tag/tag.d.ts +26 -0
- package/js/tag/tag.js +121 -0
- package/js/tag/tag.js.map +1 -0
- package/js/tag/tagElement.d.ts +9 -0
- package/js/tag/tagElement.js +60 -0
- package/js/tag/tagElement.js.map +1 -0
- package/js/tag/tagRunner.d.ts +5 -0
- package/js/tag/tagRunner.js +28 -0
- package/js/tag/tagRunner.js.map +1 -0
- package/js/tag/update/processNewValue.function.d.ts +3 -0
- package/js/tag/update/processNewValue.function.js +42 -0
- package/js/tag/update/processNewValue.function.js.map +1 -0
- package/js/tag/update/processRegularValue.function.d.ts +5 -0
- package/js/tag/update/processRegularValue.function.js +15 -0
- package/js/tag/update/processRegularValue.function.js.map +1 -0
- package/js/tag/update/processSubjectComponent.function.d.ts +9 -0
- package/js/tag/update/processSubjectComponent.function.js +35 -0
- package/js/tag/update/processSubjectComponent.function.js.map +1 -0
- package/js/tag/update/processSubjectValue.function.d.ts +27 -0
- package/js/tag/update/processSubjectValue.function.js +55 -0
- package/js/tag/update/processSubjectValue.function.js.map +1 -0
- package/js/tag/update/processTag.function.d.ts +11 -0
- package/js/tag/update/processTag.function.js +46 -0
- package/js/tag/update/processTag.function.js.map +1 -0
- package/js/tag/update/processTagArray.d.ts +22 -0
- package/js/tag/update/processTagArray.js +122 -0
- package/js/tag/update/processTagArray.js.map +1 -0
- package/js/tag/update/processTagResult.function.d.ts +11 -0
- package/js/tag/update/processTagResult.function.js +30 -0
- package/js/tag/update/processTagResult.function.js.map +1 -0
- package/js/tag/update/updateContextItem.function.d.ts +3 -0
- package/js/tag/update/updateContextItem.function.js +44 -0
- package/js/tag/update/updateContextItem.function.js.map +1 -0
- package/js/tag/update/updateExistingTagComponent.function.d.ts +5 -0
- package/js/tag/update/updateExistingTagComponent.function.js +116 -0
- package/js/tag/update/updateExistingTagComponent.function.js.map +1 -0
- package/js/tag/update/updateExistingValue.function.d.ts +4 -0
- package/js/tag/update/updateExistingValue.function.js +137 -0
- package/js/tag/update/updateExistingValue.function.js.map +1 -0
- package/js/tag/updates/processNewValue.function.d.ts +3 -0
- package/js/tag/updates/processNewValue.function.js +43 -0
- package/js/tag/updates/processNewValue.function.js.map +1 -0
- package/js/tag.js +1 -1
- package/js/tag.js.map +1 -1
- package/js/tagElement.d.ts +1 -1
- package/js/tagElement.js +1 -1
- package/js/tagElement.js.map +1 -1
- package/js/tagRunner.d.ts +1 -1
- package/js/updateBeforeTemplate.function.d.ts +1 -1
- package/js/updateBeforeTemplate.function.js.map +1 -1
- package/js/updateContextItem.function.d.ts +1 -1
- package/js/updateContextItem.function.js +1 -1
- package/js/updateContextItem.function.js.map +1 -1
- package/js/updateExistingTagComponent.function.d.ts +2 -2
- package/js/updateExistingTagComponent.function.js +3 -3
- package/js/updateExistingTagComponent.function.js.map +1 -1
- package/js/updateExistingValue.function.d.ts +3 -3
- package/js/updateExistingValue.function.js +6 -6
- package/js/updateExistingValue.function.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
import { escapeVariable, variablePrefix } from './Tag.class';
|
|
2
|
+
import { deepClone } from '../deepFunctions';
|
|
3
|
+
import { isTagComponent } from '../isInstance';
|
|
4
|
+
import { cloneValueArray } from './cloneValueArray.function';
|
|
5
|
+
import { restoreTagMarker } from './checkDestroyPrevious.function';
|
|
6
|
+
import { runBeforeDestroy } from './tagRunner';
|
|
7
|
+
import { getChildTagsToDestroy } from './destroy.support';
|
|
8
|
+
import { elementDestroyCheck } from './elementDestroyCheck.function';
|
|
9
|
+
import { updateContextItem } from './update/updateContextItem.function';
|
|
10
|
+
import { processNewValue } from './update/processNewValue.function';
|
|
11
|
+
import { setTagPlaceholder } from './setTagPlaceholder.function';
|
|
12
|
+
import { interpolateElement, interpolateString } from '../interpolations/interpolateElement';
|
|
13
|
+
import { subscribeToTemplate } from '../interpolations/interpolateTemplate';
|
|
14
|
+
import { afterInterpolateElement } from '../interpolations/afterInterpolateElement.function';
|
|
15
|
+
import { renderSubjectComponent } from './render/renderSubjectComponent.function';
|
|
16
|
+
const prefixSearch = new RegExp(variablePrefix, 'g');
|
|
17
|
+
/** used only for apps, otherwise use TagSupport */
|
|
18
|
+
export class BaseTagSupport {
|
|
19
|
+
templater;
|
|
20
|
+
subject;
|
|
21
|
+
isApp = true;
|
|
22
|
+
appElement; // only seen on this.getAppTagSupport().appElement
|
|
23
|
+
strings;
|
|
24
|
+
values;
|
|
25
|
+
lastTemplateString = undefined; // used to compare templates for updates
|
|
26
|
+
propsConfig;
|
|
27
|
+
// stays with current render
|
|
28
|
+
memory = {
|
|
29
|
+
state: [],
|
|
30
|
+
};
|
|
31
|
+
clones = []; // elements on document. Needed at destroy process to know what to destroy
|
|
32
|
+
// travels with all rerenderings
|
|
33
|
+
global = {
|
|
34
|
+
context: {}, // populated after reading interpolated.values array converted to an object {variable0, variable:1}
|
|
35
|
+
providers: [],
|
|
36
|
+
/** Indicator of re-rending. Saves from double rending something already rendered */
|
|
37
|
+
renderCount: 0,
|
|
38
|
+
deleted: false,
|
|
39
|
+
subscriptions: [],
|
|
40
|
+
};
|
|
41
|
+
hasLiveElements = false;
|
|
42
|
+
constructor(templater, subject) {
|
|
43
|
+
this.templater = templater;
|
|
44
|
+
this.subject = subject;
|
|
45
|
+
const children = templater.children; // children tags passed in as arguments
|
|
46
|
+
const kidValue = children.value;
|
|
47
|
+
const props = templater.props; // natural props
|
|
48
|
+
const latestCloned = props.map(props => deepClone(props));
|
|
49
|
+
this.propsConfig = {
|
|
50
|
+
latest: props,
|
|
51
|
+
latestCloned, // assume its HTML children and then detect
|
|
52
|
+
lastClonedKidValues: kidValue.map(kid => {
|
|
53
|
+
const cloneValues = cloneValueArray(kid.values);
|
|
54
|
+
return cloneValues;
|
|
55
|
+
})
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/** Function that kicks off actually putting tags down as HTML elements */
|
|
59
|
+
buildBeforeElement(insertBefore, options = {
|
|
60
|
+
forceElement: false,
|
|
61
|
+
counts: { added: 0, removed: 0 },
|
|
62
|
+
}) {
|
|
63
|
+
const subject = this.subject;
|
|
64
|
+
const global = this.global;
|
|
65
|
+
global.insertBefore = insertBefore;
|
|
66
|
+
if (!global.placeholder) {
|
|
67
|
+
setTagPlaceholder(global);
|
|
68
|
+
}
|
|
69
|
+
const placeholderElm = global.placeholder;
|
|
70
|
+
global.oldest = this;
|
|
71
|
+
global.newest = this;
|
|
72
|
+
subject.tagSupport = this;
|
|
73
|
+
this.hasLiveElements = true;
|
|
74
|
+
const context = this.update();
|
|
75
|
+
const template = this.getTemplate();
|
|
76
|
+
const isForceElement = options.forceElement;
|
|
77
|
+
const elementContainer = document.createElement('div');
|
|
78
|
+
elementContainer.id = 'tag-temp-holder';
|
|
79
|
+
// render content with a first child that we can know is our first element
|
|
80
|
+
elementContainer.innerHTML = `<template id="temp-template-tag-wrap">${template.string}</template>`;
|
|
81
|
+
// Search/replace innerHTML variables but don't interpolate tag components just yet
|
|
82
|
+
const { tagComponents } = interpolateElement(elementContainer, context, template, this, // ownerSupport,
|
|
83
|
+
{
|
|
84
|
+
forceElement: options.forceElement,
|
|
85
|
+
counts: options.counts
|
|
86
|
+
});
|
|
87
|
+
afterInterpolateElement(elementContainer, placeholderElm, this, // ownerSupport
|
|
88
|
+
context, options);
|
|
89
|
+
// Any tag components that were found should be processed AFTER the owner processes its elements. Avoid double processing of elements attributes like (oninit)=${}
|
|
90
|
+
tagComponents.forEach(tagComponent => {
|
|
91
|
+
subscribeToTemplate(tagComponent.insertBefore, tagComponent.subject, tagComponent.ownerSupport, options.counts, { isForceElement });
|
|
92
|
+
afterInterpolateElement(elementContainer, tagComponent.insertBefore, tagComponent.ownerSupport, context, options);
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
getTemplate() {
|
|
96
|
+
const thisTag = this.templater.tag;
|
|
97
|
+
const strings = this.strings || thisTag.strings;
|
|
98
|
+
const values = this.values || thisTag.values;
|
|
99
|
+
const string = strings.map((string, index) => {
|
|
100
|
+
const safeString = string.replace(prefixSearch, escapeVariable);
|
|
101
|
+
const endString = safeString + (values.length > index ? `{${variablePrefix}${index}}` : '');
|
|
102
|
+
const trimString = endString.replace(/>\s*/g, '>').replace(/\s*</g, '<');
|
|
103
|
+
return trimString;
|
|
104
|
+
}).join('');
|
|
105
|
+
const interpolation = interpolateString(string);
|
|
106
|
+
this.lastTemplateString = interpolation.string;
|
|
107
|
+
return {
|
|
108
|
+
interpolation,
|
|
109
|
+
string: interpolation.string,
|
|
110
|
+
strings,
|
|
111
|
+
values,
|
|
112
|
+
context: this.global.context || {},
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
update() {
|
|
116
|
+
return this.updateContext(this.global.context);
|
|
117
|
+
}
|
|
118
|
+
updateContext(context) {
|
|
119
|
+
const thisTag = this.templater.tag;
|
|
120
|
+
const strings = this.strings || thisTag.strings;
|
|
121
|
+
const values = this.values || thisTag.values;
|
|
122
|
+
strings.map((_string, index) => {
|
|
123
|
+
const variableName = variablePrefix + index;
|
|
124
|
+
const hasValue = values.length > index;
|
|
125
|
+
const value = values[index];
|
|
126
|
+
// is something already there?
|
|
127
|
+
const exists = variableName in context;
|
|
128
|
+
if (exists) {
|
|
129
|
+
return updateContextItem(context, variableName, value);
|
|
130
|
+
}
|
|
131
|
+
if (!hasValue) {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
// 🆕 First time values below
|
|
135
|
+
context[variableName] = processNewValue(hasValue, value, this);
|
|
136
|
+
});
|
|
137
|
+
return context;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
export class TagSupport extends BaseTagSupport {
|
|
141
|
+
templater;
|
|
142
|
+
ownerTagSupport;
|
|
143
|
+
subject;
|
|
144
|
+
version;
|
|
145
|
+
isApp = false;
|
|
146
|
+
childTags = []; // tags on me
|
|
147
|
+
constructor(templater, // at runtime rendering of a tag, it needs to be married to a new TagSupport()
|
|
148
|
+
ownerTagSupport, subject, version = 0) {
|
|
149
|
+
super(templater, subject);
|
|
150
|
+
this.templater = templater;
|
|
151
|
+
this.ownerTagSupport = ownerTagSupport;
|
|
152
|
+
this.subject = subject;
|
|
153
|
+
this.version = version;
|
|
154
|
+
}
|
|
155
|
+
destroy(options = {
|
|
156
|
+
stagger: 0,
|
|
157
|
+
byParent: false, // Only destroy clones of direct children
|
|
158
|
+
}) {
|
|
159
|
+
const firstDestroy = !options.byParent;
|
|
160
|
+
const global = this.global;
|
|
161
|
+
const subject = this.subject;
|
|
162
|
+
const childTags = options.byParent ? [] : getChildTagsToDestroy(this.childTags);
|
|
163
|
+
if (firstDestroy && isTagComponent(this.templater)) {
|
|
164
|
+
runBeforeDestroy(this, this);
|
|
165
|
+
}
|
|
166
|
+
// signify immediately child has been deleted (looked for during event processing)
|
|
167
|
+
childTags.forEach(child => {
|
|
168
|
+
const subGlobal = child.global;
|
|
169
|
+
delete subGlobal.newest;
|
|
170
|
+
subGlobal.deleted = true;
|
|
171
|
+
if (isTagComponent(child.templater)) {
|
|
172
|
+
runBeforeDestroy(child, child);
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
// HTML DOM manipulation. Put back down the template tag
|
|
176
|
+
const insertBefore = global.insertBefore;
|
|
177
|
+
if (insertBefore.nodeName === 'TEMPLATE') {
|
|
178
|
+
const placeholder = global.placeholder;
|
|
179
|
+
if (placeholder && !('arrayValue' in this.memory)) {
|
|
180
|
+
if (!options.byParent) {
|
|
181
|
+
restoreTagMarker(this);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
this.destroySubscriptions();
|
|
186
|
+
let mainPromise;
|
|
187
|
+
if (this.ownerTagSupport) {
|
|
188
|
+
this.ownerTagSupport.childTags = this.ownerTagSupport.childTags.filter(child => child !== this);
|
|
189
|
+
}
|
|
190
|
+
if (firstDestroy) {
|
|
191
|
+
const { stagger, promise } = this.destroyClones(options);
|
|
192
|
+
options.stagger = stagger;
|
|
193
|
+
if (promise) {
|
|
194
|
+
mainPromise = promise;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
this.destroyClones();
|
|
199
|
+
}
|
|
200
|
+
// data reset
|
|
201
|
+
delete global.placeholder;
|
|
202
|
+
global.context = {};
|
|
203
|
+
delete global.oldest;
|
|
204
|
+
delete global.newest;
|
|
205
|
+
global.deleted = true;
|
|
206
|
+
this.childTags.length = 0;
|
|
207
|
+
this.hasLiveElements = false;
|
|
208
|
+
delete subject.tagSupport;
|
|
209
|
+
if (mainPromise) {
|
|
210
|
+
mainPromise = mainPromise.then(async () => {
|
|
211
|
+
const promises = childTags.map(kid => kid.destroy({ stagger: 0, byParent: true }));
|
|
212
|
+
return Promise.all(promises);
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
mainPromise = Promise.all(childTags.map(kid => kid.destroy({ stagger: 0, byParent: true })));
|
|
217
|
+
}
|
|
218
|
+
return mainPromise.then(() => options.stagger);
|
|
219
|
+
}
|
|
220
|
+
destroySubscriptions() {
|
|
221
|
+
const global = this.global;
|
|
222
|
+
global.subscriptions.forEach(cloneSub => cloneSub.unsubscribe());
|
|
223
|
+
global.subscriptions.length = 0;
|
|
224
|
+
}
|
|
225
|
+
destroyClones({ stagger } = {
|
|
226
|
+
stagger: 0,
|
|
227
|
+
}) {
|
|
228
|
+
const oldClones = [...this.clones];
|
|
229
|
+
this.clones.length = 0; // tag maybe used for something else
|
|
230
|
+
const promises = oldClones.map(clone => this.checkCloneRemoval(clone, stagger)).filter(x => x); // only return promises
|
|
231
|
+
const oldContext = this.global.context;
|
|
232
|
+
Object.values(oldContext).forEach(value => {
|
|
233
|
+
const clone = value.clone;
|
|
234
|
+
if (clone && clone.parentNode) {
|
|
235
|
+
clone.parentNode.removeChild(clone);
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
if (promises.length) {
|
|
239
|
+
return { promise: Promise.all(promises), stagger };
|
|
240
|
+
}
|
|
241
|
+
return { stagger };
|
|
242
|
+
}
|
|
243
|
+
/** Reviews elements for the presences of ondestroy */
|
|
244
|
+
checkCloneRemoval(clone, stagger) {
|
|
245
|
+
let promise;
|
|
246
|
+
const customElm = clone;
|
|
247
|
+
if (customElm.ondestroy) {
|
|
248
|
+
promise = elementDestroyCheck(customElm, stagger);
|
|
249
|
+
}
|
|
250
|
+
const next = () => {
|
|
251
|
+
const parentNode = clone.parentNode;
|
|
252
|
+
if (parentNode) {
|
|
253
|
+
parentNode.removeChild(clone);
|
|
254
|
+
}
|
|
255
|
+
const ownerSupport = this.ownerTagSupport;
|
|
256
|
+
if (ownerSupport) {
|
|
257
|
+
// Sometimes my clones were first registered to my owner, remove them from owner
|
|
258
|
+
ownerSupport.clones = ownerSupport.clones.filter(compareClone => compareClone !== clone);
|
|
259
|
+
}
|
|
260
|
+
};
|
|
261
|
+
if (promise instanceof Promise) {
|
|
262
|
+
return promise.then(next);
|
|
263
|
+
}
|
|
264
|
+
else {
|
|
265
|
+
next();
|
|
266
|
+
}
|
|
267
|
+
return promise;
|
|
268
|
+
}
|
|
269
|
+
updateBy(tagSupport) {
|
|
270
|
+
const tempTag = tagSupport.templater.tag;
|
|
271
|
+
this.updateConfig(tempTag.strings, tempTag.values);
|
|
272
|
+
}
|
|
273
|
+
updateConfig(strings, values) {
|
|
274
|
+
this.strings = strings;
|
|
275
|
+
this.updateValues(values);
|
|
276
|
+
}
|
|
277
|
+
updateValues(values) {
|
|
278
|
+
this.values = values;
|
|
279
|
+
return this.updateContext(this.global.context);
|
|
280
|
+
}
|
|
281
|
+
/** Used during HMR only where static content itself could have been edited */
|
|
282
|
+
async rebuild() {
|
|
283
|
+
delete this.strings; // seek the templater strings instead now
|
|
284
|
+
delete this.values; // seek the templater strings instead now
|
|
285
|
+
restoreTagMarkers(this);
|
|
286
|
+
const newSupport = renderSubjectComponent(this.subject, this, this.ownerTagSupport);
|
|
287
|
+
await this.destroy();
|
|
288
|
+
newSupport.buildBeforeElement(this.global.insertBefore, {
|
|
289
|
+
forceElement: true,
|
|
290
|
+
counts: { added: 0, removed: 0 },
|
|
291
|
+
});
|
|
292
|
+
return newSupport;
|
|
293
|
+
}
|
|
294
|
+
getAppTagSupport() {
|
|
295
|
+
let tag = this;
|
|
296
|
+
while (tag.ownerTagSupport) {
|
|
297
|
+
tag = tag.ownerTagSupport;
|
|
298
|
+
}
|
|
299
|
+
return tag;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
function restoreTagMarkers(support) {
|
|
303
|
+
restoreTagMarker(support);
|
|
304
|
+
support.childTags.forEach(childTag => restoreTagMarkers(childTag.global.oldest));
|
|
305
|
+
}
|
|
306
|
+
//# sourceMappingURL=TagSupport.class.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TagSupport.class.js","sourceRoot":"","sources":["../../ts/tag/TagSupport.class.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { InterpolateSubject } from './update/processSubjectValue.function';
|
|
2
|
+
import { Counts } from '../interpolations/interpolateTemplate';
|
|
3
|
+
import { InsertBefore } from '../interpolations/Clones.type';
|
|
4
|
+
import { TagSupport } from './TagSupport.class';
|
|
5
|
+
export declare function checkDestroyPrevious(subject: InterpolateSubject, // existing.value is the old value
|
|
6
|
+
newValue: unknown, insertBefore: InsertBefore): false | "array" | 2 | "different-tag" | "changed-simple-value";
|
|
7
|
+
export declare function destroyArrayTag(tagSupport: TagSupport, counts: Counts): void;
|
|
8
|
+
export declare function restoreTagMarker(lastSupport: TagSupport): void;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { isTag, isTagArray, isTagComponent } from '../isInstance';
|
|
2
|
+
import { isLikeTags } from './isLikeTags.function';
|
|
3
|
+
import { destroyTagMemory, destroyTagSupportPast } from './destroyTag.function';
|
|
4
|
+
import { insertAfter } from '../insertAfter.function';
|
|
5
|
+
export function checkDestroyPrevious(subject, // existing.value is the old value
|
|
6
|
+
newValue, insertBefore) {
|
|
7
|
+
const arraySubject = subject;
|
|
8
|
+
const wasArray = arraySubject.lastArray;
|
|
9
|
+
// no longer an array
|
|
10
|
+
if (wasArray && !isTagArray(newValue)) {
|
|
11
|
+
const placeholderElm = arraySubject.placeholder;
|
|
12
|
+
delete arraySubject.lastArray;
|
|
13
|
+
delete arraySubject.placeholder;
|
|
14
|
+
insertAfter(insertBefore, placeholderElm);
|
|
15
|
+
wasArray.forEach(({ tagSupport }) => destroyArrayTag(tagSupport, { added: 0, removed: 0 }));
|
|
16
|
+
return 'array';
|
|
17
|
+
}
|
|
18
|
+
const tagSubject = subject;
|
|
19
|
+
const lastSupport = tagSubject.tagSupport;
|
|
20
|
+
// no longer tag or component?
|
|
21
|
+
if (lastSupport) {
|
|
22
|
+
const isValueTag = isTag(newValue);
|
|
23
|
+
const isSubjectTag = isTag(subject.value);
|
|
24
|
+
if (isSubjectTag && isValueTag) {
|
|
25
|
+
const newTag = newValue;
|
|
26
|
+
// its a different tag now
|
|
27
|
+
if (!isLikeTags(newTag, lastSupport)) {
|
|
28
|
+
// put template back down
|
|
29
|
+
restoreTagMarker(lastSupport);
|
|
30
|
+
destroyTagMemory(lastSupport);
|
|
31
|
+
return 2;
|
|
32
|
+
}
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
const isValueTagComponent = isTagComponent(newValue);
|
|
36
|
+
if (isValueTagComponent) {
|
|
37
|
+
return false; // its still a tag component
|
|
38
|
+
}
|
|
39
|
+
// put template back down
|
|
40
|
+
restoreTagMarker(lastSupport);
|
|
41
|
+
// destroy old component, value is not a component
|
|
42
|
+
destroyTagMemory(lastSupport);
|
|
43
|
+
return 'different-tag';
|
|
44
|
+
}
|
|
45
|
+
const displaySubject = subject;
|
|
46
|
+
const hasLastValue = 'lastValue' in displaySubject;
|
|
47
|
+
const lastValue = displaySubject.lastValue; // TODO: we maybe able to use displaySubject.value and remove concept of lastValue
|
|
48
|
+
// was simple value but now something bigger
|
|
49
|
+
if (hasLastValue && lastValue !== newValue) {
|
|
50
|
+
destroySimpleValue(insertBefore, displaySubject);
|
|
51
|
+
return 'changed-simple-value';
|
|
52
|
+
}
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
export function destroyArrayTag(tagSupport, counts) {
|
|
56
|
+
destroyTagSupportPast(tagSupport);
|
|
57
|
+
tagSupport.destroy({
|
|
58
|
+
stagger: counts.removed++,
|
|
59
|
+
});
|
|
60
|
+
const insertBefore = tagSupport.global.insertBefore;
|
|
61
|
+
const parentNode = insertBefore.parentNode;
|
|
62
|
+
parentNode.removeChild(insertBefore);
|
|
63
|
+
}
|
|
64
|
+
function destroySimpleValue(insertBefore, // always a template tag
|
|
65
|
+
subject) {
|
|
66
|
+
const clone = subject.clone;
|
|
67
|
+
const parent = clone.parentNode;
|
|
68
|
+
// 1 put the template back down
|
|
69
|
+
parent.insertBefore(insertBefore, clone);
|
|
70
|
+
parent.removeChild(clone);
|
|
71
|
+
delete subject.clone;
|
|
72
|
+
delete subject.lastValue;
|
|
73
|
+
}
|
|
74
|
+
export function restoreTagMarker(lastSupport) {
|
|
75
|
+
const insertBefore = lastSupport.global.insertBefore;
|
|
76
|
+
const global = lastSupport.global;
|
|
77
|
+
const placeholderElm = global.placeholder;
|
|
78
|
+
if (placeholderElm) {
|
|
79
|
+
insertAfter(insertBefore, placeholderElm);
|
|
80
|
+
delete global.placeholder;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=checkDestroyPrevious.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkDestroyPrevious.function.js","sourceRoot":"","sources":["../../ts/tag/checkDestroyPrevious.function.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { deepClone } from '../deepFunctions';
|
|
2
|
+
import { isTagArray, isTagClass, isTagComponent, isTagTemplater } from '../isInstance';
|
|
3
|
+
export function cloneValueArray(values) {
|
|
4
|
+
return values.map((value) => {
|
|
5
|
+
const tag = value;
|
|
6
|
+
if (isTagComponent(value)) {
|
|
7
|
+
const tagComponent = value;
|
|
8
|
+
return deepClone(tagComponent.props);
|
|
9
|
+
}
|
|
10
|
+
if (isTagClass(tag) || isTagTemplater(tag)) {
|
|
11
|
+
return cloneValueArray(tag.values);
|
|
12
|
+
}
|
|
13
|
+
if (isTagArray(tag)) {
|
|
14
|
+
return cloneValueArray(tag);
|
|
15
|
+
}
|
|
16
|
+
return deepClone(value);
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=cloneValueArray.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloneValueArray.function.js","sourceRoot":"","sources":["../../ts/tag/cloneValueArray.function.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAGtF,MAAM,UAAU,eAAe,CAAI,MAA2B;IAC5D,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,MAAM,GAAG,GAAG,KAAY,CAAA;QAExB,IAAG,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,YAAY,GAAG,KAAwB,CAAA;YAC7C,OAAO,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QACtC,CAAC;QAED,IAAG,UAAU,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1C,OAAO,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACpC,CAAC;QAED,IAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,eAAe,CAAC,GAAuB,CAAC,CAAA;QACjD,CAAC;QAED,OAAO,SAAS,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export function getChildTagsToDestroy(childTags, allTags = []) {
|
|
2
|
+
for (let index = childTags.length - 1; index >= 0; --index) {
|
|
3
|
+
const cTag = childTags[index];
|
|
4
|
+
allTags.push(cTag);
|
|
5
|
+
childTags.splice(index, 1);
|
|
6
|
+
getChildTagsToDestroy(cTag.childTags, allTags);
|
|
7
|
+
}
|
|
8
|
+
return allTags;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=destroy.support.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"destroy.support.js","sourceRoot":"","sources":["../../ts/tag/destroy.support.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,qBAAqB,CACnC,SAAuB,EACvB,UAAwB,EAAE;IAE1B,KAAK,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;QAC3D,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;QAE7B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClB,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QAC1B,qBAAqB,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAChD,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export function destroyTagMemory(oldTagSupport) {
|
|
2
|
+
// must destroy oldest which is tag with elements on stage
|
|
3
|
+
const oldest = oldTagSupport.global.oldest;
|
|
4
|
+
oldest.destroy();
|
|
5
|
+
destroyTagSupportPast(oldTagSupport);
|
|
6
|
+
oldTagSupport.global.context = {};
|
|
7
|
+
}
|
|
8
|
+
export function destroyTagSupportPast(oldTagSupport) {
|
|
9
|
+
delete oldTagSupport.global.oldest;
|
|
10
|
+
delete oldTagSupport.global.newest;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=destroyTag.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"destroyTag.function.js","sourceRoot":"","sources":["../../ts/tag/destroyTag.function.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,gBAAgB,CAC9B,aAAyB;IAEzB,0DAA0D;IAC1D,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,MAAoB,CAAA;IACxD,MAAM,CAAC,OAAO,EAAE,CAAA;IAEhB,qBAAqB,CAAC,aAAa,CAAC,CAAA;IAEpC,aAAa,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAA;AACnC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,aAAyB;IAC7D,OAAO,aAAa,CAAC,MAAM,CAAC,MAAM,CAAA;IAClC,OAAO,aAAa,CAAC,MAAM,CAAC,MAAM,CAAA;AACpC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export function elementDestroyCheck(nextSibling, stagger) {
|
|
2
|
+
const onDestroyDoubleWrap = nextSibling.ondestroy;
|
|
3
|
+
if (!onDestroyDoubleWrap) {
|
|
4
|
+
return;
|
|
5
|
+
}
|
|
6
|
+
const onDestroyWrap = onDestroyDoubleWrap.tagFunction;
|
|
7
|
+
if (!onDestroyWrap) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
const onDestroy = onDestroyWrap.tagFunction;
|
|
11
|
+
if (!onDestroy) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const event = { target: nextSibling, stagger };
|
|
15
|
+
return onDestroy(event);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=elementDestroyCheck.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elementDestroyCheck.function.js","sourceRoot":"","sources":["../../ts/tag/elementDestroyCheck.function.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,mBAAmB,CACjC,WAAwD,EACxD,OAAe;IAEf,MAAM,mBAAmB,GAAG,WAAW,CAAC,SAAS,CAAA;IACjD,IAAG,CAAC,mBAAmB,EAAE,CAAC;QACxB,OAAM;IACR,CAAC;IAED,MAAM,aAAa,GAAI,mBAA2B,CAAC,WAAW,CAAA;IAC9D,IAAG,CAAC,aAAa,EAAE,CAAC;QAClB,OAAM;IACR,CAAC;IAED,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,CAAA;IAC3C,IAAG,CAAC,SAAS,EAAE,CAAC;QACd,OAAM;IACR,CAAC;IAED,MAAM,KAAK,GAAG,EAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAqB,CAAA;IAChE,OAAO,SAAS,CAAC,KAAK,CAAC,CAAA;AACzB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getSupportInCycle(): import("./TagSupport.class").BaseTagSupport | undefined;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getSupportInCycle.function.js","sourceRoot":"","sources":["../../ts/tag/getSupportInCycle.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,MAAM,UAAU,iBAAiB;IAC/B,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAA;AAC7C,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Props } from "../Props";
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* @param props
|
|
5
|
+
* @param pastCloneProps
|
|
6
|
+
* @returns WHEN number then props have changed. WHEN false props have not changed
|
|
7
|
+
*/
|
|
8
|
+
export declare function hasPropChanges(props: Props, // natural props
|
|
9
|
+
pastCloneProps: Props): number | false;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { deepEqual } from "../deepFunctions";
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* @param props
|
|
5
|
+
* @param pastCloneProps
|
|
6
|
+
* @returns WHEN number then props have changed. WHEN false props have not changed
|
|
7
|
+
*/
|
|
8
|
+
export function hasPropChanges(props, // natural props
|
|
9
|
+
pastCloneProps) {
|
|
10
|
+
/*
|
|
11
|
+
const isCommonEqual = props === undefined && props === compareToProps
|
|
12
|
+
if(isCommonEqual) {
|
|
13
|
+
return false
|
|
14
|
+
}
|
|
15
|
+
*/
|
|
16
|
+
let castedProps = props;
|
|
17
|
+
let castedPastProps = pastCloneProps;
|
|
18
|
+
// check all prop functions match
|
|
19
|
+
if (typeof (props) === 'object') {
|
|
20
|
+
if (!pastCloneProps) {
|
|
21
|
+
return 3;
|
|
22
|
+
}
|
|
23
|
+
// castedProps = {...props}
|
|
24
|
+
castedProps = [...props];
|
|
25
|
+
// castedPastProps = {...(pastCloneProps || {})}
|
|
26
|
+
castedPastProps = [...(pastCloneProps || [])];
|
|
27
|
+
const allFunctionsMatch = castedProps.every((value, index) => {
|
|
28
|
+
let compare = castedPastProps[index];
|
|
29
|
+
if (value && typeof (value) === 'object') {
|
|
30
|
+
const subCastedProps = { ...value };
|
|
31
|
+
const subCompareProps = { ...compare || {} };
|
|
32
|
+
const matched = Object.entries(subCastedProps).every(([key, value]) => {
|
|
33
|
+
return compareProps(value, subCompareProps[key], () => {
|
|
34
|
+
delete subCastedProps[key]; // its a function and not needed to be compared
|
|
35
|
+
delete subCompareProps[key]; // its a function and not needed to be compared
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
return matched;
|
|
39
|
+
}
|
|
40
|
+
return compareProps(value, compare, () => {
|
|
41
|
+
castedProps.splice(index, 1);
|
|
42
|
+
castedPastProps.splice(index, 1);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
if (!allFunctionsMatch) {
|
|
46
|
+
return 6; // a change has been detected by function comparisons
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
// const isEqual = deepEqual(castedPastProps, castedProps)
|
|
50
|
+
// return isEqual ? false : 7 // if equal then no changes
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
/** returning a number means true good comparison */
|
|
54
|
+
function compareProps(value, compare, onDelete) {
|
|
55
|
+
if (!(value instanceof Function)) {
|
|
56
|
+
return deepEqual(value, compare) ? 4 : false;
|
|
57
|
+
}
|
|
58
|
+
const compareFn = compare;
|
|
59
|
+
if (!(compareFn instanceof Function)) {
|
|
60
|
+
return false; // its a function now but was not before
|
|
61
|
+
}
|
|
62
|
+
// ensure we are comparing apples to apples as function get wrapped
|
|
63
|
+
const compareOriginal = compare?.original;
|
|
64
|
+
if (compareOriginal) {
|
|
65
|
+
compare = compareOriginal;
|
|
66
|
+
}
|
|
67
|
+
const original = value.original;
|
|
68
|
+
if (original) {
|
|
69
|
+
value = value.original;
|
|
70
|
+
}
|
|
71
|
+
const valueString = value.toString();
|
|
72
|
+
const compareString = compare.toString();
|
|
73
|
+
if (valueString === compareString) {
|
|
74
|
+
onDelete();
|
|
75
|
+
return 3; // both are function the same
|
|
76
|
+
}
|
|
77
|
+
onDelete();
|
|
78
|
+
return 5;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=hasPropChanges.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hasPropChanges.function.js","sourceRoot":"","sources":["../../ts/tag/hasPropChanges.function.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { BaseTagSupport } from "./TagSupport.class";
|
|
2
|
+
import { TemplaterResult } from "../TemplaterResult.class";
|
|
3
|
+
export declare function hasTagSupportChanged(oldTagSupport: BaseTagSupport, newTagSupport: BaseTagSupport, newTemplater: TemplaterResult): number | false;
|
|
4
|
+
export declare function hasKidsChanged(oldTagSupport: BaseTagSupport, newTagSupport: BaseTagSupport): number | false;
|