taggedjs 2.5.19 → 2.5.21
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 +1 -1
- package/bundle.js.gz +0 -0
- package/bundle.js.map +1 -1
- package/bundle.js.map.gz +0 -0
- package/js/alterProp.function.d.ts +3 -1
- package/js/alterProp.function.js +43 -18
- package/js/alterProp.function.js.map +1 -1
- package/js/interpolations/bindSubjectCallback.function.js +45 -21
- package/js/interpolations/bindSubjectCallback.function.js.map +1 -1
- package/js/interpolations/interpolateContentTemplates.js +3 -3
- package/js/interpolations/interpolateContentTemplates.js.map +1 -1
- package/js/interpolations/interpolateTemplate.d.ts +2 -7
- package/js/interpolations/interpolateTemplate.js +19 -14
- package/js/interpolations/interpolateTemplate.js.map +1 -1
- package/js/interpolations/processAttribute.function.d.ts +2 -1
- package/js/interpolations/processAttribute.function.js +28 -10
- package/js/interpolations/processAttribute.function.js.map +1 -1
- package/js/interpolations/specialAttribute.d.ts +1 -0
- package/js/interpolations/specialAttribute.js +22 -0
- package/js/interpolations/specialAttribute.js.map +1 -0
- package/js/state/callbackMaker.function.d.ts +1 -0
- package/js/state/callbackMaker.function.js +1 -0
- package/js/state/callbackMaker.function.js.map +1 -1
- package/js/state/callbackStateUpdate.function.js +4 -2
- package/js/state/callbackStateUpdate.function.js.map +1 -1
- package/js/state/handleProviderChanges.function.d.ts +3 -0
- package/js/state/handleProviderChanges.function.js +36 -0
- package/js/state/handleProviderChanges.function.js.map +1 -0
- package/js/state/letProp.function.js +1 -1
- package/js/state/letProp.function.js.map +1 -1
- package/js/state/letState.function.d.ts +1 -1
- package/js/state/letState.function.js +1 -1
- package/js/state/letState.function.js.map +1 -1
- package/js/state/provider.utils.js +19 -14
- package/js/state/provider.utils.js.map +1 -1
- package/js/state/providers.d.ts +3 -5
- package/js/state/providers.js +13 -32
- package/js/state/providers.js.map +1 -1
- package/js/state/providersChangeCheck.function.d.ts +2 -0
- package/js/state/providersChangeCheck.function.js +14 -0
- package/js/state/providersChangeCheck.function.js.map +1 -0
- package/js/state/setUse.function.d.ts +0 -2
- package/js/state/setUse.function.js.map +1 -1
- package/js/state/state.utils.js.map +1 -1
- package/js/subject/Subject.class.js +1 -4
- package/js/subject/Subject.class.js.map +1 -1
- package/js/subject.types.d.ts +1 -1
- package/js/tag/Tag.class.js +0 -1
- package/js/tag/Tag.class.js.map +1 -1
- package/js/tag/TagSupport.class.d.ts +9 -3
- package/js/tag/TagSupport.class.js +26 -20
- package/js/tag/TagSupport.class.js.map +1 -1
- package/js/tag/TemplaterResult.class.d.ts +4 -1
- package/js/tag/TemplaterResult.class.js.map +1 -1
- package/js/tag/checkDestroyPrevious.function.js +4 -3
- package/js/tag/checkDestroyPrevious.function.js.map +1 -1
- package/js/tag/destroy.support.js +1 -1
- package/js/tag/destroy.support.js.map +1 -1
- package/js/tag/destroyTag.function.d.ts +0 -1
- package/js/tag/destroyTag.function.js +0 -5
- package/js/tag/destroyTag.function.js.map +1 -1
- package/js/tag/getTagWrap.function.js +12 -10
- package/js/tag/getTagWrap.function.js.map +1 -1
- package/js/tag/hasTagSupportChanged.function.d.ts +1 -1
- package/js/tag/hasTagSupportChanged.function.js +9 -3
- package/js/tag/hasTagSupportChanged.function.js.map +1 -1
- package/js/tag/render/destroyUnlikeTags.function.d.ts +5 -0
- package/js/tag/render/destroyUnlikeTags.function.js +23 -0
- package/js/tag/render/destroyUnlikeTags.function.js.map +1 -0
- package/js/tag/render/renderExistingTag.function.js +4 -5
- package/js/tag/render/renderExistingTag.function.js.map +1 -1
- package/js/tag/render/renderSubjectComponent.function.js +0 -2
- package/js/tag/render/renderSubjectComponent.function.js.map +1 -1
- package/js/tag/render/renderTagOnly.function.js +7 -10
- package/js/tag/render/renderTagOnly.function.js.map +1 -1
- package/js/tag/render/renderTagSupport.function.d.ts +2 -2
- package/js/tag/render/renderTagSupport.function.js +8 -8
- package/js/tag/render/renderTagSupport.function.js.map +1 -1
- package/js/tag/render/renderWithSupport.function.js +2 -16
- package/js/tag/render/renderWithSupport.function.js.map +1 -1
- package/js/tag/tag.types.d.ts +2 -2
- package/js/tag/tagElement.js +1 -1
- package/js/tag/tagElement.js.map +1 -1
- package/js/tag/tagRunner.js +12 -3
- package/js/tag/tagRunner.js.map +1 -1
- package/js/tag/update/processFirstSubjectValue.function.d.ts +1 -1
- package/js/tag/update/processFirstSubjectValue.function.js +2 -2
- package/js/tag/update/processFirstSubjectValue.function.js.map +1 -1
- package/js/tag/update/processNewValue.function.js +1 -0
- package/js/tag/update/processNewValue.function.js.map +1 -1
- package/js/tag/update/processSubjectComponent.function.d.ts +1 -0
- package/js/tag/update/processSubjectComponent.function.js +4 -4
- package/js/tag/update/processSubjectComponent.function.js.map +1 -1
- package/js/tag/update/processTag.function.d.ts +2 -2
- package/js/tag/update/processTag.function.js +4 -3
- package/js/tag/update/processTag.function.js.map +1 -1
- package/js/tag/update/processTagArray.js +2 -3
- package/js/tag/update/processTagArray.js.map +1 -1
- package/js/tag/update/processTagResult.function.d.ts +4 -3
- package/js/tag/update/processTagResult.function.js +4 -2
- package/js/tag/update/processTagResult.function.js.map +1 -1
- package/js/tag/update/updateContextItem.function.js +1 -35
- package/js/tag/update/updateContextItem.function.js.map +1 -1
- package/js/tag/update/updateExistingTagComponent.function.d.ts +2 -1
- package/js/tag/update/updateExistingTagComponent.function.js +100 -45
- package/js/tag/update/updateExistingTagComponent.function.js.map +1 -1
- package/js/tag/update/updateExistingValue.function.js +2 -0
- package/js/tag/update/updateExistingValue.function.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { deepClone } from '../deepFunctions.js';
|
|
2
|
+
import { renderTagSupport } from '../tag/render/renderTagSupport.function.js';
|
|
3
|
+
export function handleProviderChanges(appSupport, provider) {
|
|
4
|
+
const tagsWithProvider = getTagsWithProvider(appSupport, provider);
|
|
5
|
+
for (let index = tagsWithProvider.length - 1; index >= 0; --index) {
|
|
6
|
+
const { tagSupport, renderCount, provider } = tagsWithProvider[index];
|
|
7
|
+
if (tagSupport.global.deleted) {
|
|
8
|
+
continue; // i was deleted after another tag processed
|
|
9
|
+
}
|
|
10
|
+
const notRendered = renderCount === tagSupport.global.renderCount;
|
|
11
|
+
if (notRendered) {
|
|
12
|
+
provider.clone = deepClone(provider.instance);
|
|
13
|
+
renderTagSupport(tagSupport.global.newest, // tagSupport, // tagSupport.global.newest as TagSupport,
|
|
14
|
+
false);
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/** Updates and returns memory of tag providers */
|
|
20
|
+
function getTagsWithProvider(tagSupport, provider, memory = []) {
|
|
21
|
+
memory.push({
|
|
22
|
+
tagSupport,
|
|
23
|
+
renderCount: tagSupport.global.renderCount,
|
|
24
|
+
provider,
|
|
25
|
+
});
|
|
26
|
+
const childTags = provider.children;
|
|
27
|
+
for (let index = childTags.length - 1; index >= 0; --index) {
|
|
28
|
+
memory.push({
|
|
29
|
+
tagSupport: childTags[index],
|
|
30
|
+
renderCount: childTags[index].global.renderCount,
|
|
31
|
+
provider,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
return memory;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=handleProviderChanges.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleProviderChanges.function.js","sourceRoot":"","sources":["../../ts/state/handleProviderChanges.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE/C,OAAO,EAAE,gBAAgB,EAAE,MAAK,4CAA4C,CAAA;AAG5E,MAAM,UAAU,qBAAqB,CACnC,UAAsB,EACtB,QAAkB;IAElB,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IAClE,KAAK,IAAI,KAAK,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;QAClE,MAAM,EAAC,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;QACnE,IAAG,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC7B,SAAQ,CAAC,4CAA4C;QACvD,CAAC;QAED,MAAM,WAAW,GAAG,WAAW,KAAK,UAAU,CAAC,MAAM,CAAC,WAAW,CAAA;QACjE,IAAG,WAAW,EAAE,CAAC;YACf,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YAC7C,gBAAgB,CACd,UAAU,CAAC,MAAM,CAAC,MAAoB,EAAE,yDAAyD;YACjG,KAAK,CACN,CAAA;YACD,SAAQ;QACV,CAAC;IACH,CAAC;AACH,CAAC;AAED,kDAAkD;AAClD,SAAS,mBAAmB,CAC1B,UAAsB,EACtB,QAAkB,EAClB,SAA4B,EAAE;IAE9B,MAAM,CAAC,IAAI,CAAC;QACV,UAAU;QACV,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,WAAW;QAC1C,QAAQ;KACT,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAA;IACnC,KAAK,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;QAC3D,MAAM,CAAC,IAAI,CAAC;YACV,UAAU,EAAE,SAAS,CAAC,KAAK,CAAC;YAC5B,WAAW,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW;YAChD,QAAQ;SACT,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -9,7 +9,7 @@ export function letProp(prop) {
|
|
|
9
9
|
return getSetProp => {
|
|
10
10
|
let myProp = letState(prop)(getSetProp);
|
|
11
11
|
watch([prop], () => getSetProp(myProp = prop));
|
|
12
|
-
getSetProp(myProp);
|
|
12
|
+
getSetProp(myProp); // always reset to my value and right await so that the old prop value never slips through
|
|
13
13
|
return myProp;
|
|
14
14
|
};
|
|
15
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"letProp.function.js","sourceRoot":"","sources":["../../ts/state/letProp.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAK,wBAAwB,CAAA;AAEhD,OAAO,EAAE,KAAK,EAAE,MAAK,qBAAqB,CAAA;AAE1C;;;;GAIG;AACH,MAAM,UAAU,OAAO,CACrB,IAAO;IAEP,OAAO,UAAU,CAAC,EAAE;QAClB,IAAI,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAA;QAEvC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"letProp.function.js","sourceRoot":"","sources":["../../ts/state/letProp.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAK,wBAAwB,CAAA;AAEhD,OAAO,EAAE,KAAK,EAAE,MAAK,qBAAqB,CAAA;AAE1C;;;;GAIG;AACH,MAAM,UAAU,OAAO,CACrB,IAAO;IAEP,OAAO,UAAU,CAAC,EAAE;QAClB,IAAI,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAA;QAEvC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAA;QAC9C,UAAU,CAAC,MAAM,CAAC,CAAA,CAAC,0FAA0F;QAC7G,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;AACH,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { GetSet } from './state.utils.js';
|
|
2
|
-
/** Used for variables that need to remain the same variable during render passes */
|
|
2
|
+
/** Used for variables that need to remain the same variable during render passes. If defaultValue is a function it is called only once, its return value is first state, and let value can changed */
|
|
3
3
|
export declare function letState<T>(defaultValue: T | (() => T)): ((getSet: GetSet<T>) => T);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { getStateValue } from './state.utils.js';
|
|
2
2
|
import { setUse } from './setUse.function.js';
|
|
3
|
-
/** Used for variables that need to remain the same variable during render passes */
|
|
3
|
+
/** Used for variables that need to remain the same variable during render passes. If defaultValue is a function it is called only once, its return value is first state, and let value can changed */
|
|
4
4
|
export function letState(defaultValue) {
|
|
5
5
|
const config = setUse.memory.stateConfig;
|
|
6
6
|
const rearray = config.rearray;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"letState.function.js","sourceRoot":"","sources":["../../ts/state/letState.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuD,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACrG,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAE7C,
|
|
1
|
+
{"version":3,"file":"letState.function.js","sourceRoot":"","sources":["../../ts/state/letState.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuD,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACrG,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAE7C,sMAAsM;AACtM,MAAM,UAAU,QAAQ,CACtB,YAA2B;IAE3B,MAAM,MAAM,GAAW,MAAM,CAAC,MAAM,CAAC,WAAW,CAAA;IAChD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAgB,CAAA;IACvC,IAAI,YAA4B,CAAA;IAEhC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAE5C,IAAG,OAAO,EAAE,CAAC;QACX,IAAI,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAM,CAAA;QAE1C,YAAY,GAAG,CAAC,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAA;QACnD,MAAM,IAAI,GAAuB;YAC/B,GAAG,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAM;YACnC,QAAQ,EAAE,YAAY;YACtB,SAAS,EAAE,QAAQ;YACnB,YAAY,EAAE,OAAO,CAAC,YAAY;SACnC,CAAA;QAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEvB,OAAO,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IACxC,CAAC;IAED,uBAAuB;IACvB,MAAM,SAAS,GAAG,YAAY,YAAY,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,YAAY,CAAA;IACtF,IAAI,SAAS,GAAG,SAAS,EAAE,CAAA;IAE3B,YAAY,GAAG,CAAC,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,CAAA;IACrD,MAAM,IAAI,GAAuB;QAC/B,GAAG,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAM;QACnC,QAAQ,EAAE,YAAY;QACtB,SAAS,EAAE,SAAS;QACpB,YAAY,EAAE,SAAS;KACxB,CAAA;IACD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEvB,OAAO,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;AACzC,CAAC;AAED,SAAS,eAAe,CACtB,SAAY,EACZ,IAAwB;IAExB,mBAAmB;IACnB,MAAM,MAAM,GAAI,CAAC,CAAM,EAAE,EAAE;QACzB,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,CAAA;QAEtD,OAAO,SAAS,CAAA;IAClB,CAAC,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -3,45 +3,50 @@ import { renderTagSupport } from '../tag/render/renderTagSupport.function.js';
|
|
|
3
3
|
export function providersChangeCheck(tagSupport) {
|
|
4
4
|
const global = tagSupport.global;
|
|
5
5
|
const providersWithChanges = global.providers.filter(provider => !deepEqual(provider.instance, provider.clone));
|
|
6
|
+
console.log('providersWithChanges', providersWithChanges);
|
|
6
7
|
// reset clones
|
|
7
8
|
for (let index = providersWithChanges.length - 1; index >= 0; --index) {
|
|
8
9
|
const provider = providersWithChanges[index];
|
|
9
|
-
const
|
|
10
|
-
handleProviderChanges(
|
|
10
|
+
const owner = provider.owner;
|
|
11
|
+
handleProviderChanges(owner, provider);
|
|
11
12
|
provider.clone = deepClone(provider.instance);
|
|
12
13
|
}
|
|
13
14
|
}
|
|
14
15
|
function handleProviderChanges(appSupport, provider) {
|
|
15
16
|
const tagsWithProvider = getTagsWithProvider(appSupport, provider);
|
|
17
|
+
console.log('tagsWithProvider', tagsWithProvider.length);
|
|
16
18
|
for (let index = tagsWithProvider.length - 1; index >= 0; --index) {
|
|
17
19
|
const { tagSupport, renderCount, provider } = tagsWithProvider[index];
|
|
18
20
|
if (tagSupport.global.deleted) {
|
|
21
|
+
console.log('?!?!?!?!? deleted -------');
|
|
19
22
|
continue; // i was deleted after another tag processed
|
|
20
23
|
}
|
|
21
24
|
const notRendered = renderCount === tagSupport.global.renderCount;
|
|
25
|
+
console.log(' ------- notRendered', { index, notRendered });
|
|
22
26
|
if (notRendered) {
|
|
23
27
|
provider.clone = deepClone(provider.instance);
|
|
24
|
-
renderTagSupport(tagSupport,
|
|
28
|
+
renderTagSupport(tagSupport.global.newest, // tagSupport, // tagSupport.global.newest as TagSupport,
|
|
29
|
+
false);
|
|
25
30
|
continue;
|
|
26
31
|
}
|
|
27
32
|
}
|
|
28
33
|
}
|
|
29
34
|
/** Updates and returns memory of tag providers */
|
|
30
35
|
function getTagsWithProvider(tagSupport, provider, memory = []) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
36
|
+
memory.push({
|
|
37
|
+
tagSupport,
|
|
38
|
+
renderCount: tagSupport.global.renderCount,
|
|
39
|
+
provider,
|
|
40
|
+
});
|
|
41
|
+
const childTags = provider.children;
|
|
42
|
+
console.log('childTags', childTags.length);
|
|
43
|
+
for (let index = childTags.length - 1; index >= 0; --index) {
|
|
35
44
|
memory.push({
|
|
36
|
-
tagSupport,
|
|
37
|
-
renderCount: global.renderCount,
|
|
38
|
-
provider
|
|
45
|
+
tagSupport: childTags[index],
|
|
46
|
+
renderCount: childTags[index].global.renderCount,
|
|
47
|
+
provider,
|
|
39
48
|
});
|
|
40
49
|
}
|
|
41
|
-
const childTags = tagSupport.childTags;
|
|
42
|
-
for (let index = childTags.length - 1; index >= 0; --index) {
|
|
43
|
-
getTagsWithProvider(childTags[index], provider, memory);
|
|
44
|
-
}
|
|
45
50
|
return memory;
|
|
46
51
|
}
|
|
47
52
|
//# sourceMappingURL=provider.utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.utils.js","sourceRoot":"","sources":["../../ts/state/provider.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAK,4CAA4C,CAAA;AAG5E,MAAM,UAAU,oBAAoB,CAClC,UAAuC;IAEvC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;IAChC,MAAM,oBAAoB,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"provider.utils.js","sourceRoot":"","sources":["../../ts/state/provider.utils.ts"],"names":[],"mappings":"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"}
|
package/js/state/providers.d.ts
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TagSupport } from '../tag/TagSupport.class.js';
|
|
2
2
|
export type Provider = {
|
|
3
3
|
constructMethod: any;
|
|
4
4
|
instance: any;
|
|
5
5
|
clone: any;
|
|
6
6
|
stateDiff: number;
|
|
7
|
+
owner: TagSupport;
|
|
8
|
+
children: TagSupport[];
|
|
7
9
|
};
|
|
8
10
|
type ProviderConstructor<T> = (new (...args: any[]) => T) | (() => T);
|
|
9
|
-
export type ProviderConfig = {
|
|
10
|
-
providers: Provider[];
|
|
11
|
-
ownerSupport?: TagSupport | BaseTagSupport;
|
|
12
|
-
};
|
|
13
11
|
type functionProvider<T> = () => T;
|
|
14
12
|
type classProvider<T> = new (...args: any[]) => T;
|
|
15
13
|
type Construct<T> = classProvider<T> | functionProvider<T>;
|
package/js/state/providers.js
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import { deepClone } from '../deepFunctions.js';
|
|
2
2
|
import { setUse } from './setUse.function.js';
|
|
3
3
|
import { state } from './state.function.js';
|
|
4
|
-
setUse.memory.providerConfig = {
|
|
5
|
-
providers: [],
|
|
6
|
-
ownerSupport: undefined,
|
|
7
|
-
};
|
|
8
4
|
export const providers = {
|
|
9
5
|
create: (constructMethod) => {
|
|
10
6
|
const stateDiffMemory = state(() => ({ stateDiff: 0, provider: undefined }));
|
|
@@ -14,7 +10,6 @@ export const providers = {
|
|
|
14
10
|
state(undefined);
|
|
15
11
|
}
|
|
16
12
|
const result = state(undefined);
|
|
17
|
-
// stateDiffMemory.provider.constructMethod.compareTo = compareTo
|
|
18
13
|
return result;
|
|
19
14
|
}
|
|
20
15
|
const result = state(() => {
|
|
@@ -23,16 +18,18 @@ export const providers = {
|
|
|
23
18
|
const oldStateCount = stateConfig.array.length;
|
|
24
19
|
// Providers with provider requirements just need to use providers.create() and providers.inject()
|
|
25
20
|
const instance = 'prototype' in constructMethod ? new constructMethod() : constructMethod();
|
|
21
|
+
const tagSupport = stateConfig.tagSupport;
|
|
26
22
|
const stateDiff = stateConfig.array.length - oldStateCount;
|
|
27
|
-
const config = memory.providerConfig;
|
|
28
23
|
const provider = {
|
|
29
24
|
constructMethod,
|
|
30
25
|
instance,
|
|
31
26
|
clone: deepClone(instance),
|
|
32
27
|
stateDiff,
|
|
28
|
+
owner: tagSupport,
|
|
29
|
+
children: [],
|
|
33
30
|
};
|
|
34
31
|
stateDiffMemory.provider = provider;
|
|
35
|
-
|
|
32
|
+
tagSupport.global.providers.push(provider);
|
|
36
33
|
stateDiffMemory.stateDiff = stateDiff;
|
|
37
34
|
return instance;
|
|
38
35
|
});
|
|
@@ -50,15 +47,18 @@ export const providers = {
|
|
|
50
47
|
inject: (constructor) => {
|
|
51
48
|
// find once, return same every time after
|
|
52
49
|
return state(() => {
|
|
53
|
-
const
|
|
50
|
+
const memory = setUse.memory;
|
|
54
51
|
const cm = constructor;
|
|
55
52
|
const compareTo = cm.compareTo = cm.compareTo || constructor.toString();
|
|
53
|
+
const tagSupport = memory.stateConfig.tagSupport;
|
|
54
|
+
const providers = [];
|
|
56
55
|
let owner = {
|
|
57
|
-
ownerTagSupport:
|
|
56
|
+
ownerTagSupport: tagSupport.ownerTagSupport
|
|
58
57
|
};
|
|
59
58
|
while (owner.ownerTagSupport) {
|
|
60
59
|
const ownerProviders = owner.ownerTagSupport.global.providers;
|
|
61
60
|
const provider = ownerProviders.find(provider => {
|
|
61
|
+
providers.push(provider);
|
|
62
62
|
const constructorMatch = provider.constructMethod.compareTo === compareTo;
|
|
63
63
|
if (constructorMatch) {
|
|
64
64
|
return true;
|
|
@@ -66,36 +66,17 @@ export const providers = {
|
|
|
66
66
|
});
|
|
67
67
|
if (provider) {
|
|
68
68
|
provider.clone = deepClone(provider.instance); // keep a copy of the latest before any change occur
|
|
69
|
-
|
|
69
|
+
const tagSupport = memory.stateConfig.tagSupport;
|
|
70
|
+
tagSupport.global.providers.push(provider);
|
|
71
|
+
provider.children.push(tagSupport);
|
|
70
72
|
return provider.instance;
|
|
71
73
|
}
|
|
72
74
|
owner = owner.ownerTagSupport; // cause reloop checking next parent
|
|
73
75
|
}
|
|
74
76
|
const msg = `Could not inject provider: ${constructor.name} ${constructor}`;
|
|
75
|
-
console.warn(`${msg}. Available providers`,
|
|
77
|
+
console.warn(`${msg}. Available providers`, providers);
|
|
76
78
|
throw new Error(msg);
|
|
77
79
|
});
|
|
78
80
|
}
|
|
79
81
|
};
|
|
80
|
-
setUse({
|
|
81
|
-
beforeRender: (tagSupport, ownerSupport) => {
|
|
82
|
-
run(tagSupport, ownerSupport);
|
|
83
|
-
},
|
|
84
|
-
beforeRedraw: (tagSupport, newTagSupport) => {
|
|
85
|
-
run(tagSupport, newTagSupport.ownerTagSupport);
|
|
86
|
-
},
|
|
87
|
-
afterRender: (tagSupport) => {
|
|
88
|
-
const config = setUse.memory.providerConfig;
|
|
89
|
-
tagSupport.global.providers = [...config.providers];
|
|
90
|
-
config.providers.length = 0;
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
function run(tagSupport, ownerSupport) {
|
|
94
|
-
const config = setUse.memory.providerConfig;
|
|
95
|
-
config.ownerSupport = ownerSupport;
|
|
96
|
-
if (tagSupport.global.providers.length) {
|
|
97
|
-
config.providers.length = 0;
|
|
98
|
-
config.providers.push(...tagSupport.global.providers);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
82
|
//# sourceMappingURL=providers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../ts/state/providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAK,sBAAsB,CAAA;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAK,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../ts/state/providers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { deepClone, deepEqual } from '../deepFunctions.js';
|
|
2
|
+
import { handleProviderChanges } from './handleProviderChanges.function.js';
|
|
3
|
+
export function providersChangeCheck(tagSupport) {
|
|
4
|
+
const global = tagSupport.global;
|
|
5
|
+
const providersWithChanges = global.providers.filter(provider => !deepEqual(provider.instance, provider.clone));
|
|
6
|
+
// reset clones
|
|
7
|
+
for (let index = providersWithChanges.length - 1; index >= 0; --index) {
|
|
8
|
+
const provider = providersWithChanges[index];
|
|
9
|
+
const owner = provider.owner;
|
|
10
|
+
handleProviderChanges(owner, provider);
|
|
11
|
+
provider.clone = deepClone(provider.instance);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=providersChangeCheck.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providersChangeCheck.function.js","sourceRoot":"","sources":["../../ts/state/providersChangeCheck.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAA;AAG3E,MAAM,UAAU,oBAAoB,CAClC,UAAuC;IAEvC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;IAChC,MAAM,oBAAoB,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;IAE/G,eAAe;IACf,KAAK,IAAI,KAAK,GAAG,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;QACtE,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAA;QAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAA;QAE5B,qBAAqB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QAEtC,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC/C,CAAC;AACH,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { BaseTagSupport, TagSupport } from '../tag/TagSupport.class.js';
|
|
2
|
-
import { ProviderConfig } from './providers.js';
|
|
3
2
|
import { Config } from './state.utils.js';
|
|
4
3
|
interface TagUse {
|
|
5
4
|
beforeRender: (tagSupport: BaseTagSupport | TagSupport, ownerTag?: TagSupport | BaseTagSupport) => void;
|
|
@@ -20,7 +19,6 @@ export declare namespace setUse {
|
|
|
20
19
|
}
|
|
21
20
|
type UseMemory = (Record<string, any> & {
|
|
22
21
|
stateConfig: Config;
|
|
23
|
-
providerConfig: ProviderConfig;
|
|
24
22
|
currentSupport: TagSupport;
|
|
25
23
|
});
|
|
26
24
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setUse.function.js","sourceRoot":"","sources":["../../ts/state/setUse.function.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setUse.function.js","sourceRoot":"","sources":["../../ts/state/setUse.function.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,GAAa,EAAE,CAAA;AAyB3B,MAAM,UAAU,MAAM,CAAC,GAAe;IACpC,wBAAwB;IACxB,MAAM,KAAK,GAAW;QACpB,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;QACnD,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;QACnD,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;QACjD,aAAa,EAAE,GAAG,CAAC,aAAa,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;KACtD,CAAA;IAED,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC3B,CAAC;AAED,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;AACtB,MAAM,CAAC,MAAM,GAAG,EAAe,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.utils.js","sourceRoot":"","sources":["../../ts/state/state.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAGjD,OAAO,EAAE,MAAM,EAAE,MAAK,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"state.utils.js","sourceRoot":"","sources":["../../ts/state/state.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,9 +36,6 @@ export class Subject {
|
|
|
36
36
|
return subscribeWith(callback);
|
|
37
37
|
}
|
|
38
38
|
this.subscribers.push(subscription);
|
|
39
|
-
// Subject.globalSubs.push(subscription) // 🔬 testing
|
|
40
|
-
const count = Subject.globalSubCount$.value;
|
|
41
|
-
Subject.globalSubCount$.next(count + 1); // 🔬 testing
|
|
42
39
|
if (this.onSubscription) {
|
|
43
40
|
this.onSubscription(subscription);
|
|
44
41
|
}
|
|
@@ -68,7 +65,7 @@ export class Subject {
|
|
|
68
65
|
}
|
|
69
66
|
/** like toPromise but faster */
|
|
70
67
|
toCallback(callback) {
|
|
71
|
-
this.subscribe((x,
|
|
68
|
+
const subscription = this.subscribe((x, _subscription) => {
|
|
72
69
|
subscription.unsubscribe();
|
|
73
70
|
callback(x);
|
|
74
71
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Subject.class.js","sourceRoot":"","sources":["../../ts/subject/Subject.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAkE,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAIrI,MAAM,OAAO,OAAO;IAaT;IAEA;IAdT,WAAW;IACX,OAAO,GAAsC,EAAE,CAAA;IAC/C,SAAS,GAAG,IAAI,CAAA;IAChB,WAAW;IACX,WAAW,GAAsB,EAAE,CAAA;IACnC,aAAa,CAA+C;IACrD,MAAM,CAAI;IAEjB,uGAAuG;IACvG,GAAG,CAAI,CAAC,+CAA+C;IAEvD,YACS,KAAS;IAChB,WAAW;IACJ,cAAkC;QAFlC,UAAK,GAAL,KAAK,CAAI;QAET,mBAAc,GAAd,cAAc,CAAoB;QAEzC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,aAAa,CAAC,IAAI,CAAC,CAAA;IACrB,CAAC;IAED,SAAS,CAAC,QAA8B;QACtC,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;QAEtE,wBAAwB;QACxB,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAA;QACxC,IAAG,aAAa,EAAE,CAAC;YACjB,oBAAoB;YACpB,IAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACvB,MAAM,WAAW,GAAG,QAAQ,CAAA;gBAC5B,QAAQ,GAAG,CACT,KAAU,EAEV,EAAE;oBACF,eAAe,CACb,KAAK,EACL,IAAI,CAAC,OAAO,EACZ,SAAS,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,YAAY,CAAC,CAClD,CAAA;gBACH,CAAC,CAAA;YACH,CAAC;YAED,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAA;QAChC,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"Subject.class.js","sourceRoot":"","sources":["../../ts/subject/Subject.class.ts"],"names":[],"mappings":"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"}
|
package/js/subject.types.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export type WasTagSubject = Subject<TemplaterResult> & {
|
|
|
8
8
|
tagSupport?: BaseTagSupport | TagSupport;
|
|
9
9
|
};
|
|
10
10
|
export type TagSubject = ValueSubject<TemplaterResult> & {
|
|
11
|
-
tagSupport:
|
|
11
|
+
tagSupport: TagSupport;
|
|
12
12
|
};
|
|
13
13
|
export type RegularValue = string | number | boolean;
|
|
14
14
|
export type DisplaySubject = Subject<RegularValue> & {
|
package/js/tag/Tag.class.js
CHANGED
package/js/tag/Tag.class.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tag.class.js","sourceRoot":"","sources":["../../ts/tag/Tag.class.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAA;AACxC,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,GAAG,cAAc,GAAG,IAAI,CAAA;AAE1D,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,CAAA;AAkB3D,MAAM,OAAO,GAAG;IAYL;IACA;IAZT,SAAS,GAAG,UAAU,CAAC,GAAG,CAAA;IAE1B,qDAAqD;IACrD,MAAM,GAAG,EAGR,CAAA;IAED,SAAS,CAAkB;IAE3B,YACS,OAAiB,EACjB,MAAa;QADb,YAAO,GAAP,OAAO,CAAU;QACjB,WAAM,GAAN,MAAM,CAAO;IACnB,CAAC;IAEJ,mFAAmF;IACnF,GAAG,CAAC,UAAmB;QACrB,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAA;QACnC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"Tag.class.js","sourceRoot":"","sources":["../../ts/tag/Tag.class.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAA;AACxC,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,GAAG,cAAc,GAAG,IAAI,CAAA;AAE1D,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,CAAA;AAkB3D,MAAM,OAAO,GAAG;IAYL;IACA;IAZT,SAAS,GAAG,UAAU,CAAC,GAAG,CAAA;IAE1B,qDAAqD;IACrD,MAAM,GAAG,EAGR,CAAA;IAED,SAAS,CAAkB;IAE3B,YACS,OAAiB,EACjB,MAAa;QADb,YAAO,GAAP,OAAO,CAAU;QACjB,WAAM,GAAN,MAAM,CAAO;IACnB,CAAC;IAEJ,mFAAmF;IACnF,GAAG,CAAC,UAAmB;QACrB,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAA;QACnC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,QAAQ,CAAgE;IAExE,IAAI,CACF,OAAwC,EACxC,GAAG,MAAiB;QAEpB,IAAI,CAAC,QAAQ,GAAG,EAAC,OAAO,EAAE,MAAM,EAAC,CAAA;QACjC,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
|
|
@@ -16,13 +16,19 @@ export declare class BaseTagSupport {
|
|
|
16
16
|
latest: Props;
|
|
17
17
|
latestCloned: Props;
|
|
18
18
|
lastClonedKidValues: unknown[][];
|
|
19
|
+
castProps?: Props;
|
|
19
20
|
};
|
|
20
21
|
memory: TagMemory;
|
|
21
22
|
clones: (Element | Text | ChildNode)[];
|
|
22
23
|
global: TagGlobal;
|
|
23
24
|
hasLiveElements: boolean;
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
constructor(templater: TemplaterResult, subject: TagSubject, castedProps?: Props);
|
|
26
|
+
clonePropsBy(props: Props, castedProps?: Props): {
|
|
27
|
+
latest: Props;
|
|
28
|
+
latestCloned: any[];
|
|
29
|
+
castProps: Props | undefined;
|
|
30
|
+
lastClonedKidValues: any[][];
|
|
31
|
+
};
|
|
26
32
|
/** Function that kicks off actually putting tags down as HTML elements */
|
|
27
33
|
buildBeforeElement(insertBefore: InsertBefore, options?: ElementBuildOptions): void;
|
|
28
34
|
getTemplate(): TagTemplate;
|
|
@@ -50,6 +56,6 @@ export declare class TagSupport extends BaseTagSupport {
|
|
|
50
56
|
version: number;
|
|
51
57
|
isApp: boolean;
|
|
52
58
|
constructor(templater: TemplaterResult, // at runtime rendering of a tag, it needs to be married to a new TagSupport()
|
|
53
|
-
ownerTagSupport: TagSupport, subject: TagSubject, version?: number);
|
|
59
|
+
ownerTagSupport: TagSupport, subject: TagSubject, castedProps?: Props, version?: number);
|
|
54
60
|
getAppTagSupport(): TagSupport;
|
|
55
61
|
}
|
|
@@ -35,22 +35,26 @@ export class BaseTagSupport {
|
|
|
35
35
|
providers: [],
|
|
36
36
|
/** Indicator of re-rending. Saves from double rending something already rendered */
|
|
37
37
|
renderCount: 0,
|
|
38
|
-
deleted: false,
|
|
39
38
|
subscriptions: [],
|
|
40
|
-
oldest: this
|
|
39
|
+
oldest: this,
|
|
40
|
+
blocked: [], // renders that did not occur because an event was processing
|
|
41
|
+
childTags: [], // tags on me
|
|
41
42
|
};
|
|
42
43
|
hasLiveElements = false;
|
|
43
|
-
|
|
44
|
-
constructor(templater, subject) {
|
|
44
|
+
constructor(templater, subject, castedProps) {
|
|
45
45
|
this.templater = templater;
|
|
46
46
|
this.subject = subject;
|
|
47
|
-
const children = templater.children; // children tags passed in as arguments
|
|
48
|
-
const kidValue = children.value;
|
|
49
47
|
const props = templater.props; // natural props
|
|
48
|
+
this.propsConfig = this.clonePropsBy(props, castedProps);
|
|
49
|
+
}
|
|
50
|
+
clonePropsBy(props, castedProps) {
|
|
51
|
+
const children = this.templater.children; // children tags passed in as arguments
|
|
52
|
+
const kidValue = children.value;
|
|
50
53
|
const latestCloned = props.map(props => deepClone(props));
|
|
51
|
-
this.propsConfig = {
|
|
54
|
+
return this.propsConfig = {
|
|
52
55
|
latest: props,
|
|
53
56
|
latestCloned, // assume its HTML children and then detect
|
|
57
|
+
castProps: castedProps, //?? castProps(props, this, this.memory.state),
|
|
54
58
|
lastClonedKidValues: kidValue.map(kid => {
|
|
55
59
|
const cloneValues = cloneValueArray(kid.values);
|
|
56
60
|
return cloneValues;
|
|
@@ -119,7 +123,7 @@ export class BaseTagSupport {
|
|
|
119
123
|
const thisTag = this.templater.tag;
|
|
120
124
|
const strings = this.strings || thisTag.strings;
|
|
121
125
|
const values = this.values || thisTag.values;
|
|
122
|
-
strings.
|
|
126
|
+
strings.forEach((_string, index) => {
|
|
123
127
|
const hasValue = values.length > index;
|
|
124
128
|
if (!hasValue) {
|
|
125
129
|
return;
|
|
@@ -129,6 +133,13 @@ export class BaseTagSupport {
|
|
|
129
133
|
// is something already there?
|
|
130
134
|
const exists = variableName in context;
|
|
131
135
|
if (exists) {
|
|
136
|
+
if (this.global.deleted) {
|
|
137
|
+
const valueSupport = (value && value.tagSupport);
|
|
138
|
+
if (valueSupport) {
|
|
139
|
+
valueSupport.destroy();
|
|
140
|
+
return context; // item was deleted, no need to emit
|
|
141
|
+
}
|
|
142
|
+
}
|
|
132
143
|
return updateContextItem(context, variableName, value);
|
|
133
144
|
}
|
|
134
145
|
// 🆕 First time values below
|
|
@@ -155,7 +166,7 @@ export class BaseTagSupport {
|
|
|
155
166
|
const firstDestroy = !options.byParent;
|
|
156
167
|
const global = this.global;
|
|
157
168
|
const subject = this.subject;
|
|
158
|
-
const childTags = options.byParent ? [] : getChildTagsToDestroy(this.childTags);
|
|
169
|
+
const childTags = options.byParent ? [] : getChildTagsToDestroy(this.global.childTags);
|
|
159
170
|
if (firstDestroy && isTagComponent(this.templater)) {
|
|
160
171
|
global.destroy$.next();
|
|
161
172
|
runBeforeDestroy(this, this);
|
|
@@ -171,8 +182,10 @@ export class BaseTagSupport {
|
|
|
171
182
|
runBeforeDestroy(child, child);
|
|
172
183
|
}
|
|
173
184
|
}
|
|
185
|
+
let mainPromise;
|
|
174
186
|
// HTML DOM manipulation. Put back down the template tag
|
|
175
187
|
const insertBefore = global.insertBefore;
|
|
188
|
+
// FIRST DOM Manipulation to cause painting cycle
|
|
176
189
|
if (insertBefore.nodeName === 'TEMPLATE') {
|
|
177
190
|
const placeholder = global.placeholder;
|
|
178
191
|
if (placeholder && !('arrayValue' in this.memory)) {
|
|
@@ -181,11 +194,6 @@ export class BaseTagSupport {
|
|
|
181
194
|
}
|
|
182
195
|
}
|
|
183
196
|
}
|
|
184
|
-
let mainPromise;
|
|
185
|
-
const ownerTagSupport = this.ownerTagSupport;
|
|
186
|
-
if (ownerTagSupport) {
|
|
187
|
-
ownerTagSupport.childTags = ownerTagSupport.childTags.filter(child => child !== this);
|
|
188
|
-
}
|
|
189
197
|
if (firstDestroy) {
|
|
190
198
|
const { stagger, promise } = this.destroyClones(options);
|
|
191
199
|
options.stagger = stagger;
|
|
@@ -201,9 +209,7 @@ export class BaseTagSupport {
|
|
|
201
209
|
global.context = {};
|
|
202
210
|
delete global.oldest; // may not be needed
|
|
203
211
|
delete global.newest;
|
|
204
|
-
global.
|
|
205
|
-
this.childTags.length = 0;
|
|
206
|
-
this.hasLiveElements = false;
|
|
212
|
+
this.global.childTags.length = 0;
|
|
207
213
|
delete subject.tagSupport;
|
|
208
214
|
if (mainPromise) {
|
|
209
215
|
mainPromise = mainPromise.then(async () => {
|
|
@@ -277,8 +283,8 @@ export class TagSupport extends BaseTagSupport {
|
|
|
277
283
|
version;
|
|
278
284
|
isApp = false;
|
|
279
285
|
constructor(templater, // at runtime rendering of a tag, it needs to be married to a new TagSupport()
|
|
280
|
-
ownerTagSupport, subject, version = 0) {
|
|
281
|
-
super(templater, subject);
|
|
286
|
+
ownerTagSupport, subject, castedProps, version = 0) {
|
|
287
|
+
super(templater, subject, castedProps);
|
|
282
288
|
this.templater = templater;
|
|
283
289
|
this.ownerTagSupport = ownerTagSupport;
|
|
284
290
|
this.subject = subject;
|
|
@@ -294,7 +300,7 @@ export class TagSupport extends BaseTagSupport {
|
|
|
294
300
|
}
|
|
295
301
|
function restoreTagMarkers(support) {
|
|
296
302
|
restoreTagMarker(support);
|
|
297
|
-
const childTags = support.childTags;
|
|
303
|
+
const childTags = support.global.childTags;
|
|
298
304
|
for (let index = childTags.length - 1; index >= 0; --index) {
|
|
299
305
|
restoreTagMarkers(childTags[index].global.oldest);
|
|
300
306
|
}
|