taggedjs 2.5.23 → 2.5.24
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 +7 -7
- package/js/alterProp.function.js +78 -43
- package/js/alterProp.function.js.map +1 -1
- package/js/buildClones.function.d.ts +2 -0
- package/js/buildClones.function.js +12 -0
- package/js/buildClones.function.js.map +1 -0
- package/js/deepFunctions.js +40 -18
- package/js/deepFunctions.js.map +1 -1
- package/js/index.d.ts +4 -5
- package/js/index.js +4 -5
- package/js/index.js.map +1 -1
- package/js/interpolations/afterInterpolateElement.function.d.ts +3 -3
- package/js/interpolations/afterInterpolateElement.function.js +6 -5
- package/js/interpolations/afterInterpolateElement.function.js.map +1 -1
- package/js/interpolations/bindSubjectCallback.function.d.ts +9 -3
- package/js/interpolations/bindSubjectCallback.function.js +76 -35
- package/js/interpolations/bindSubjectCallback.function.js.map +1 -1
- package/js/interpolations/interpolateAttributes.d.ts +3 -2
- package/js/interpolations/interpolateAttributes.js +6 -10
- package/js/interpolations/interpolateAttributes.js.map +1 -1
- package/js/interpolations/interpolateContentTemplates.d.ts +3 -7
- package/js/interpolations/interpolateContentTemplates.js +16 -12
- package/js/interpolations/interpolateContentTemplates.js.map +1 -1
- package/js/interpolations/interpolateElement.d.ts +4 -6
- package/js/interpolations/interpolateElement.js +4 -13
- package/js/interpolations/interpolateElement.js.map +1 -1
- package/js/interpolations/interpolateTemplate.d.ts +8 -11
- package/js/interpolations/interpolateTemplate.js +0 -66
- package/js/interpolations/interpolateTemplate.js.map +1 -1
- package/js/interpolations/interpolations.d.ts +0 -3
- package/js/interpolations/interpolations.js +1 -17
- package/js/interpolations/interpolations.js.map +1 -1
- package/js/interpolations/optimizers/ObjectNode.types.d.ts +31 -0
- package/js/interpolations/optimizers/ObjectNode.types.js +2 -0
- package/js/interpolations/optimizers/ObjectNode.types.js.map +1 -0
- package/js/interpolations/optimizers/htmlInterpolationToDomMeta.function.d.ts +4 -0
- package/js/interpolations/optimizers/htmlInterpolationToDomMeta.function.js +136 -0
- package/js/interpolations/optimizers/htmlInterpolationToDomMeta.function.js.map +1 -0
- package/js/interpolations/optimizers/metaAttachDomElements.function.d.ts +6 -0
- package/js/interpolations/optimizers/metaAttachDomElements.function.js +43 -0
- package/js/interpolations/optimizers/metaAttachDomElements.function.js.map +1 -0
- package/js/interpolations/optimizers/replacePlaceholders.function.d.ts +2 -0
- package/js/interpolations/optimizers/replacePlaceholders.function.js +92 -0
- package/js/interpolations/optimizers/replacePlaceholders.function.js.map +1 -0
- package/js/interpolations/optimizers/restorePlaceholders.function.d.ts +3 -0
- package/js/interpolations/optimizers/restorePlaceholders.function.js +39 -0
- package/js/interpolations/optimizers/restorePlaceholders.function.js.map +1 -0
- package/js/interpolations/processAttribute.function.d.ts +8 -3
- package/js/interpolations/processAttribute.function.js +42 -45
- package/js/interpolations/processAttribute.function.js.map +1 -1
- package/js/interpolations/scanTextAreaValue.function.d.ts +2 -2
- package/js/interpolations/scanTextAreaValue.function.js +11 -6
- package/js/interpolations/scanTextAreaValue.function.js.map +1 -1
- package/js/interpolations/specialAttribute.js +4 -2
- package/js/interpolations/specialAttribute.js.map +1 -1
- package/js/interpolations/subscribeToTemplate.function.d.ts +5 -0
- package/js/interpolations/subscribeToTemplate.function.js +28 -0
- package/js/interpolations/subscribeToTemplate.function.js.map +1 -0
- package/js/isInstance.d.ts +2 -2
- package/js/isInstance.js +9 -3
- package/js/isInstance.js.map +1 -1
- package/js/render.js +17 -4
- package/js/render.js.map +1 -1
- package/js/state/callbackMaker.function.js +13 -14
- package/js/state/callbackMaker.function.js.map +1 -1
- package/js/state/callbackStateUpdate.function.d.ts +2 -2
- package/js/state/callbackStateUpdate.function.js +5 -5
- package/js/state/callbackStateUpdate.function.js.map +1 -1
- package/js/state/children.js +5 -5
- package/js/state/children.js.map +1 -1
- package/js/state/handleProviderChanges.function.d.ts +2 -2
- package/js/state/handleProviderChanges.function.js +13 -10
- package/js/state/handleProviderChanges.function.js.map +1 -1
- package/js/state/onDestroy.js +2 -2
- package/js/state/onDestroy.js.map +1 -1
- package/js/state/providers.d.ts +3 -3
- package/js/state/providers.js +11 -11
- package/js/state/providers.js.map +1 -1
- package/js/state/providersChangeCheck.function.d.ts +2 -2
- package/js/state/providersChangeCheck.function.js +7 -3
- package/js/state/providersChangeCheck.function.js.map +1 -1
- package/js/state/setUse.function.d.ts +10 -10
- package/js/state/state.function.js +3 -3
- package/js/state/state.function.js.map +1 -1
- package/js/state/state.utils.d.ts +2 -2
- package/js/state/state.utils.js +15 -16
- package/js/state/state.utils.js.map +1 -1
- package/js/state/subject.function.js +6 -6
- package/js/state/subject.function.js.map +1 -1
- package/js/state/watch.function.js +3 -3
- package/js/state/watch.function.js.map +1 -1
- package/js/subject/Subject.class.d.ts +2 -2
- package/js/subject/Subject.class.js +5 -11
- package/js/subject/Subject.class.js.map +1 -1
- package/js/subject/ValueSubject.d.ts +1 -1
- package/js/subject/combineLatest.function.js +3 -1
- package/js/subject/combineLatest.function.js.map +1 -1
- package/js/subject/subject.utils.js +15 -13
- package/js/subject/subject.utils.js.map +1 -1
- package/js/subject/will.functions.js.map +1 -1
- package/js/subject.types.d.ts +6 -10
- package/js/tag/Support.class.d.ts +69 -0
- package/js/tag/Support.class.js +290 -0
- package/js/tag/Support.class.js.map +1 -0
- package/js/tag/Tag.class.d.ts +30 -18
- package/js/tag/Tag.class.js +36 -8
- package/js/tag/Tag.class.js.map +1 -1
- package/js/tag/TagSupport.class.d.ts +1 -0
- package/js/tag/TagSupport.class.js +19 -23
- package/js/tag/TagSupport.class.js.map +1 -1
- package/js/tag/TemplaterResult.class.d.ts +17 -10
- package/js/tag/TemplaterResult.class.js +12 -2
- package/js/tag/TemplaterResult.class.js.map +1 -1
- package/js/tag/ValueTypes.enum.d.ts +7 -1
- package/js/tag/ValueTypes.enum.js +6 -0
- package/js/tag/ValueTypes.enum.js.map +1 -1
- package/js/tag/checkDestroyPrevious.function.d.ts +3 -5
- package/js/tag/checkDestroyPrevious.function.js +16 -38
- package/js/tag/checkDestroyPrevious.function.js.map +1 -1
- package/js/tag/cloneValueArray.function.d.ts +1 -0
- package/js/tag/cloneValueArray.function.js +16 -14
- package/js/tag/cloneValueArray.function.js.map +1 -1
- package/js/tag/destroy.support.d.ts +2 -2
- package/js/tag/destroy.support.js +1 -2
- package/js/tag/destroy.support.js.map +1 -1
- package/js/tag/destroyTag.function.d.ts +2 -2
- package/js/tag/destroyTag.function.js +4 -3
- package/js/tag/destroyTag.function.js.map +1 -1
- package/js/tag/domMetaCollector.d.ts +3 -0
- package/js/tag/domMetaCollector.js +26 -0
- package/js/tag/domMetaCollector.js.map +1 -0
- package/js/tag/getStringsId.function.d.ts +1 -0
- package/js/tag/getStringsId.function.js +7 -0
- package/js/tag/getStringsId.function.js.map +1 -0
- package/js/tag/getSupportInCycle.function.d.ts +1 -1
- package/js/tag/getSupportInCycle.function.js +1 -1
- package/js/tag/getSupportInCycle.function.js.map +1 -1
- package/js/tag/getTagWrap.function.js +66 -57
- package/js/tag/getTagWrap.function.js.map +1 -1
- package/js/tag/getValueType.function.js +15 -10
- package/js/tag/getValueType.function.js.map +1 -1
- package/js/tag/hasPropChanges.function.d.ts +1 -1
- package/js/tag/hasPropChanges.function.js +8 -11
- package/js/tag/hasPropChanges.function.js.map +1 -1
- package/js/tag/hasSupportChanged.function.d.ts +4 -0
- package/js/tag/hasSupportChanged.function.js +27 -0
- package/js/tag/hasSupportChanged.function.js.map +1 -0
- package/js/tag/hasTagSupportChanged.function.js +15 -2
- package/js/tag/hasTagSupportChanged.function.js.map +1 -1
- package/js/tag/html.d.ts +5 -1
- package/js/tag/html.js +4 -1
- package/js/tag/html.js.map +1 -1
- package/js/tag/index.d.ts +3 -1
- package/js/tag/index.js +3 -1
- package/js/tag/index.js.map +1 -1
- package/js/tag/isLastRunMatched.function.d.ts +2 -0
- package/js/tag/isLastRunMatched.function.js +14 -0
- package/js/tag/isLastRunMatched.function.js.map +1 -0
- package/js/tag/isLikeTags.function.d.ts +3 -3
- package/js/tag/isLikeTags.function.js +43 -9
- package/js/tag/isLikeTags.function.js.map +1 -1
- package/js/tag/kidsToTagArraySubject.function.d.ts +2 -2
- package/js/tag/kidsToTagArraySubject.function.js +1 -1
- package/js/tag/kidsToTagArraySubject.function.js.map +1 -1
- package/js/tag/render/destroyUnlikeTags.function.d.ts +3 -3
- package/js/tag/render/destroyUnlikeTags.function.js +2 -12
- package/js/tag/render/destroyUnlikeTags.function.js.map +1 -1
- package/js/tag/render/renderExistingTag.function.d.ts +5 -5
- package/js/tag/render/renderExistingTag.function.js +9 -6
- package/js/tag/render/renderExistingTag.function.js.map +1 -1
- package/js/tag/render/renderSubjectComponent.function.d.ts +2 -2
- package/js/tag/render/renderSubjectComponent.function.js +7 -5
- package/js/tag/render/renderSubjectComponent.function.js.map +1 -1
- package/js/tag/render/renderSupport.function.d.ts +4 -0
- package/js/tag/render/renderSupport.function.js +43 -0
- package/js/tag/render/renderSupport.function.js.map +1 -0
- package/js/tag/render/renderTagOnly.function.d.ts +2 -2
- package/js/tag/render/renderTagOnly.function.js +19 -20
- package/js/tag/render/renderTagOnly.function.js.map +1 -1
- package/js/tag/render/renderWithSupport.function.d.ts +3 -3
- package/js/tag/render/renderWithSupport.function.js +38 -5
- package/js/tag/render/renderWithSupport.function.js.map +1 -1
- package/js/tag/render/softDestroySupport.function.d.ts +2 -2
- package/js/tag/render/softDestroySupport.function.js +11 -8
- package/js/tag/render/softDestroySupport.function.js.map +1 -1
- package/js/tag/setTagPlaceholder.function.js +2 -1
- package/js/tag/setTagPlaceholder.function.js.map +1 -1
- package/js/tag/tag.d.ts +2 -2
- package/js/tag/tag.js +1 -0
- package/js/tag/tag.js.map +1 -1
- package/js/tag/tag.types.d.ts +4 -4
- package/js/tag/tag.utils.d.ts +10 -7
- package/js/tag/tag.utils.js.map +1 -1
- package/js/tag/tagElement.d.ts +3 -3
- package/js/tag/tagElement.js +36 -31
- package/js/tag/tagElement.js.map +1 -1
- package/js/tag/tagRunner.d.ts +5 -5
- package/js/tag/tagRunner.js +15 -15
- package/js/tag/tagRunner.js.map +1 -1
- package/js/tag/textNode.d.ts +4 -0
- package/js/tag/textNode.js +9 -0
- package/js/tag/textNode.js.map +1 -0
- package/js/tag/update/TagJsSubject.class.d.ts +8 -0
- package/js/tag/update/TagJsSubject.class.js +23 -0
- package/js/tag/update/TagJsSubject.class.js.map +1 -0
- package/js/tag/update/oneRenderToSupport.function.d.ts +4 -0
- package/js/tag/update/oneRenderToSupport.function.js +19 -0
- package/js/tag/update/oneRenderToSupport.function.js.map +1 -0
- package/js/tag/update/processFirstSubject.utils.d.ts +5 -4
- package/js/tag/update/processFirstSubjectValue.function.d.ts +4 -3
- package/js/tag/update/processFirstSubjectValue.function.js +12 -10
- package/js/tag/update/processFirstSubjectValue.function.js.map +1 -1
- package/js/tag/update/processNewValue.function.d.ts +3 -2
- package/js/tag/update/processNewValue.function.js +11 -8
- package/js/tag/update/processNewValue.function.js.map +1 -1
- package/js/tag/update/processRegularValue.function.js +5 -5
- package/js/tag/update/processRegularValue.function.js.map +1 -1
- package/js/tag/update/processSubjectComponent.function.d.ts +3 -3
- package/js/tag/update/processSubjectComponent.function.js +13 -11
- package/js/tag/update/processSubjectComponent.function.js.map +1 -1
- package/js/tag/update/processTag.function.d.ts +10 -9
- package/js/tag/update/processTag.function.js +30 -23
- package/js/tag/update/processTag.function.js.map +1 -1
- package/js/tag/update/processTagArray.d.ts +15 -9
- package/js/tag/update/processTagArray.js +56 -52
- package/js/tag/update/processTagArray.js.map +1 -1
- package/js/tag/update/processTagResult.function.d.ts +4 -6
- package/js/tag/update/processTagResult.function.js +22 -16
- package/js/tag/update/processTagResult.function.js.map +1 -1
- package/js/tag/update/updateContextItem.function.d.ts +1 -1
- package/js/tag/update/updateContextItem.function.js +4 -3
- package/js/tag/update/updateContextItem.function.js.map +1 -1
- package/js/tag/update/updateExistingTagComponent.function.d.ts +7 -4
- package/js/tag/update/updateExistingTagComponent.function.js +78 -86
- package/js/tag/update/updateExistingTagComponent.function.js.map +1 -1
- package/js/tag/update/updateExistingValue.function.d.ts +3 -2
- package/js/tag/update/updateExistingValue.function.js +35 -45
- package/js/tag/update/updateExistingValue.function.js.map +1 -1
- package/js/updateBeforeTemplate.function.js +2 -1
- package/js/updateBeforeTemplate.function.js.map +1 -1
- package/package.json +1 -1
package/bundle.js.map.gz
CHANGED
|
Binary file
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BaseSupport, Support } from './tag/Support.class.js';
|
|
2
2
|
import { State } from './state/index.js';
|
|
3
3
|
import { Props } from './Props.js';
|
|
4
|
-
export declare function castProps(props: Props,
|
|
5
|
-
export declare function alterProp(prop: unknown, ownerSupport:
|
|
6
|
-
export declare function checkProp(value: any, ownerSupport:
|
|
7
|
-
export declare function getPropWrap(value: any, ownerSupport:
|
|
4
|
+
export declare function castProps(props: Props, newSupport: BaseSupport | Support, stateArray: State, depth: number): any[];
|
|
5
|
+
export declare function alterProp(prop: unknown, ownerSupport: BaseSupport | Support, stateArray: State, newSupport: BaseSupport | Support, depth: number): any;
|
|
6
|
+
export declare function checkProp(value: any, ownerSupport: BaseSupport | Support, stateArray: State, newSupport: BaseSupport | Support, depth: number, index?: string | number, newProp?: any): any;
|
|
7
|
+
export declare function getPropWrap(value: any, ownerSupport: BaseSupport | Support, stateArray: State): any;
|
|
8
8
|
/** Function shared by alterProps() and updateExistingTagComponent... TODO: May want to have to functions to reduce cycle checking? */
|
|
9
|
-
export declare function callbackPropOwner(toCall: Function, callWith: any, ownerSupport:
|
|
10
|
-
|
|
9
|
+
export declare function callbackPropOwner(toCall: Function, callWith: any, ownerSupport: BaseSupport | Support): any;
|
|
10
|
+
export declare function isSkipPropValue(value: unknown): boolean;
|
package/js/alterProp.function.js
CHANGED
|
@@ -1,49 +1,60 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { deepEqual } from './deepFunctions.js';
|
|
2
2
|
import { isStaticTag } from './isInstance.js';
|
|
3
|
-
import {
|
|
3
|
+
import { renderSupport } from './tag/render/renderSupport.function.js';
|
|
4
4
|
import { setUse } from './state/index.js';
|
|
5
5
|
import { getSupportInCycle } from './tag/getSupportInCycle.function.js';
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
import { runBlocked } from './interpolations/bindSubjectCallback.function.js';
|
|
7
|
+
import { cloneTagJsValue } from './tag/cloneValueArray.function.js';
|
|
8
|
+
export function castProps(props, newSupport, stateArray, depth) {
|
|
9
|
+
return props.map(prop => alterProp(prop, newSupport.ownerSupport, stateArray, newSupport, depth));
|
|
8
10
|
}
|
|
9
11
|
/* Used to rewrite props that are functions. When they are called it should cause parent rendering */
|
|
10
|
-
export function alterProp(prop, ownerSupport, stateArray,
|
|
12
|
+
export function alterProp(prop, ownerSupport, stateArray, newSupport, depth) {
|
|
11
13
|
if (isStaticTag(prop) || !prop) {
|
|
12
14
|
return prop;
|
|
13
15
|
}
|
|
14
16
|
if (!ownerSupport) {
|
|
15
17
|
return prop; // no one above me
|
|
16
18
|
}
|
|
17
|
-
return checkProp(prop, ownerSupport, stateArray,
|
|
19
|
+
return checkProp(prop, ownerSupport, stateArray, newSupport, depth);
|
|
18
20
|
}
|
|
19
|
-
export function checkProp(value, ownerSupport, stateArray,
|
|
21
|
+
export function checkProp(value, ownerSupport, stateArray, newSupport, depth, index, newProp) {
|
|
20
22
|
if (value instanceof Function) {
|
|
21
|
-
return getPropWrap(value, ownerSupport, stateArray
|
|
23
|
+
return getPropWrap(value, ownerSupport, stateArray);
|
|
22
24
|
}
|
|
23
|
-
if
|
|
25
|
+
// if(seen.includes(value)) {
|
|
26
|
+
if (depth === 15) {
|
|
24
27
|
return value;
|
|
25
28
|
}
|
|
26
|
-
seen.push(value)
|
|
27
|
-
|
|
29
|
+
// seen.push(value)
|
|
30
|
+
const skip = isSkipPropValue(value);
|
|
31
|
+
if (skip) {
|
|
28
32
|
return value; // no children to crawl through
|
|
29
33
|
}
|
|
30
34
|
if (value instanceof Array) {
|
|
31
35
|
for (let index = value.length - 1; index >= 0; --index) {
|
|
32
36
|
const subValue = value[index];
|
|
33
|
-
value[index] = checkProp(subValue, ownerSupport, stateArray,
|
|
37
|
+
value[index] = checkProp(subValue, ownerSupport, stateArray, newSupport, depth + 1, index, value);
|
|
34
38
|
if (subValue instanceof Function) {
|
|
35
39
|
if (subValue.toCall) {
|
|
36
40
|
continue;
|
|
37
41
|
}
|
|
38
|
-
afterCheckProp(index, subValue, value,
|
|
42
|
+
afterCheckProp(depth + 1, index, subValue, value, newSupport);
|
|
39
43
|
}
|
|
40
44
|
}
|
|
41
45
|
return value;
|
|
42
46
|
}
|
|
43
|
-
for
|
|
47
|
+
// for(const name in value){
|
|
48
|
+
// ??? new we want below
|
|
49
|
+
const keys = Object.keys(value);
|
|
50
|
+
for (const name of keys) {
|
|
44
51
|
const subValue = value[name];
|
|
45
|
-
const result = checkProp(subValue, ownerSupport, stateArray,
|
|
46
|
-
|
|
52
|
+
const result = checkProp(subValue, ownerSupport, stateArray, newSupport, depth + 1, name, value);
|
|
53
|
+
if (value[name] === result) {
|
|
54
|
+
continue; // ??? new
|
|
55
|
+
}
|
|
56
|
+
const getset = Object.getOwnPropertyDescriptor(value, name);
|
|
57
|
+
const hasSetter = getset?.get || getset?.set;
|
|
47
58
|
if (hasSetter) {
|
|
48
59
|
continue;
|
|
49
60
|
}
|
|
@@ -52,19 +63,25 @@ export function checkProp(value, ownerSupport, stateArray, newTagSupport, index,
|
|
|
52
63
|
if (subValue.toCall) {
|
|
53
64
|
continue;
|
|
54
65
|
}
|
|
55
|
-
afterCheckProp(name, subValue, value,
|
|
66
|
+
afterCheckProp(depth + 1, name, subValue, value, newSupport);
|
|
56
67
|
}
|
|
57
68
|
}
|
|
58
69
|
return value;
|
|
59
70
|
}
|
|
60
|
-
function afterCheckProp(index,
|
|
61
|
-
if (
|
|
71
|
+
function afterCheckProp(depth, index, originalValue, newProp, newSupport) {
|
|
72
|
+
if (originalValue?.toCall) {
|
|
73
|
+
throw new Error('meg');
|
|
62
74
|
return; // already been done
|
|
63
75
|
}
|
|
64
76
|
// restore object to have original function on destroy
|
|
65
|
-
|
|
77
|
+
if (depth > 0) {
|
|
78
|
+
const global = newSupport.subject.global;
|
|
79
|
+
newProp[index].subscription = global.destroy$.toCallback(() => {
|
|
80
|
+
newProp[index] = originalValue;
|
|
81
|
+
});
|
|
82
|
+
}
|
|
66
83
|
}
|
|
67
|
-
export function getPropWrap(value, ownerSupport, stateArray
|
|
84
|
+
export function getPropWrap(value, ownerSupport, stateArray) {
|
|
68
85
|
const toCall = value.toCall;
|
|
69
86
|
// already previously converted by a parent?
|
|
70
87
|
if (toCall) {
|
|
@@ -73,50 +90,68 @@ export function getPropWrap(value, ownerSupport, stateArray, newTagSupport, name
|
|
|
73
90
|
const wrap = (...args) => wrap.toCall(...args); // what gets called can switch over parent state changes
|
|
74
91
|
// Currently, call self but over parent state changes, I may need to call a newer parent tag owner
|
|
75
92
|
wrap.toCall = (...args) => {
|
|
76
|
-
return callbackPropOwner(wrap.prop, args, ownerSupport
|
|
93
|
+
return callbackPropOwner(wrap.mem.prop, args, ownerSupport);
|
|
77
94
|
};
|
|
78
95
|
wrap.original = value;
|
|
79
|
-
wrap.
|
|
80
|
-
|
|
96
|
+
wrap.mem = {
|
|
97
|
+
prop: value,
|
|
98
|
+
// stateArray: stateArray
|
|
99
|
+
};
|
|
81
100
|
// copy data properties that maybe on source function
|
|
82
101
|
Object.assign(wrap, value);
|
|
83
102
|
return wrap;
|
|
84
103
|
}
|
|
85
104
|
/** Function shared by alterProps() and updateExistingTagComponent... TODO: May want to have to functions to reduce cycle checking? */
|
|
86
|
-
export function callbackPropOwner(toCall, callWith, ownerSupport
|
|
87
|
-
|
|
88
|
-
const newest =
|
|
89
|
-
|
|
90
|
-
const noCycle =
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
105
|
+
export function callbackPropOwner(toCall, callWith, ownerSupport) {
|
|
106
|
+
const global = ownerSupport.subject.global;
|
|
107
|
+
const newest = global.newest;
|
|
108
|
+
const supportInCycle = getSupportInCycle();
|
|
109
|
+
const noCycle = supportInCycle === undefined;
|
|
110
|
+
if (supportInCycle) {
|
|
111
|
+
supportInCycle.subject.global.locked = true;
|
|
112
|
+
}
|
|
113
|
+
const callbackResult = toCall(...callWith);
|
|
114
|
+
if (supportInCycle) {
|
|
115
|
+
const blocked = supportInCycle?.subject.global.blocked;
|
|
116
|
+
if (supportInCycle && blocked?.length) {
|
|
117
|
+
setUse.memory.tagClosed$.toCallback(() => {
|
|
118
|
+
let lastResult = supportInCycle;
|
|
119
|
+
// throw new Error('cycles ready')
|
|
120
|
+
// syncStates(supportInCycle.state, (supportInCycle.subject.global.newest as Support).state)
|
|
121
|
+
delete supportInCycle.subject.global.locked;
|
|
122
|
+
lastResult = runBlocked(supportInCycle, supportInCycle.state, supportInCycle);
|
|
123
|
+
// syncStates((supportInCycle.subject.global.newest as Support).state, supportInCycle.state)
|
|
124
|
+
// delete supportInCycle.subject.global.locked
|
|
125
|
+
renderSupport(lastResult, false);
|
|
126
|
+
});
|
|
127
|
+
return callbackResult;
|
|
128
|
+
}
|
|
129
|
+
delete supportInCycle.subject.global.locked;
|
|
130
|
+
}
|
|
99
131
|
const run = () => {
|
|
100
132
|
// are we in a rendering cycle? then its being called by alterProps
|
|
101
133
|
if (noCycle === false) {
|
|
102
134
|
// appears a prop function was called sync/immediately so lets see if owner changed state
|
|
103
|
-
const allMatched = newest.
|
|
135
|
+
const allMatched = newest.state.every(state => {
|
|
104
136
|
const lastValue = state.lastValue;
|
|
105
137
|
const get = state.get();
|
|
106
|
-
const equal = deepEqual(
|
|
138
|
+
const equal = deepEqual(cloneTagJsValue(lastValue), get);
|
|
107
139
|
return equal;
|
|
108
140
|
});
|
|
109
141
|
if (allMatched) {
|
|
110
|
-
return
|
|
142
|
+
return callbackResult; // owner did not change
|
|
111
143
|
}
|
|
112
144
|
}
|
|
113
|
-
|
|
114
|
-
return
|
|
145
|
+
renderSupport(newest, true);
|
|
146
|
+
return callbackResult;
|
|
115
147
|
};
|
|
116
148
|
if (noCycle) {
|
|
117
149
|
return run();
|
|
118
150
|
}
|
|
119
151
|
setUse.memory.tagClosed$.toCallback(run);
|
|
120
|
-
return
|
|
152
|
+
return callbackResult;
|
|
153
|
+
}
|
|
154
|
+
export function isSkipPropValue(value) {
|
|
155
|
+
return typeof (value) !== 'object' || !value; // || isSubjectInstance(value)
|
|
121
156
|
}
|
|
122
157
|
//# sourceMappingURL=alterProp.function.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alterProp.function.js","sourceRoot":"","sources":["../ts/alterProp.function.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"alterProp.function.js","sourceRoot":"","sources":["../ts/alterProp.function.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export function buildClones(fragment, template) {
|
|
2
|
+
const clones = [];
|
|
3
|
+
let nextSibling = template.content.firstChild;
|
|
4
|
+
while (nextSibling) {
|
|
5
|
+
const nextNextSibling = nextSibling.nextSibling;
|
|
6
|
+
fragment.appendChild(nextSibling);
|
|
7
|
+
clones.push(nextSibling);
|
|
8
|
+
nextSibling = nextNextSibling;
|
|
9
|
+
}
|
|
10
|
+
return clones;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=buildClones.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildClones.function.js","sourceRoot":"","sources":["../ts/buildClones.function.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,WAAW,CACzB,QAA0B,EAC1B,QAAkB;IAElB,MAAM,MAAM,GAAgB,EAAE,CAAA;IAC9B,IAAI,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAA;IAE7C,OAAO,WAAW,EAAE,CAAC;QACnB,MAAM,eAAe,GAAG,WAAW,CAAC,WAAwB,CAAA;QAC5D,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAA;QACjC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACxB,WAAW,GAAG,eAAe,CAAA;IAC/B,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
|
package/js/deepFunctions.js
CHANGED
|
@@ -1,14 +1,23 @@
|
|
|
1
|
+
import { ValueTypes } from './tag/ValueTypes.enum.js';
|
|
1
2
|
export function deepClone(obj) {
|
|
2
|
-
return makeDeepClone(obj, new WeakMap())
|
|
3
|
+
// return makeDeepClone(obj, new WeakMap())
|
|
4
|
+
return makeDeepClone(obj, 0);
|
|
3
5
|
}
|
|
4
|
-
function makeDeepClone(obj,
|
|
6
|
+
function makeDeepClone(obj,
|
|
7
|
+
// visited: WeakMap<any, any>
|
|
8
|
+
depth) {
|
|
5
9
|
// If obj is a primitive type or null, return it directly
|
|
6
|
-
if (obj === null || typeof obj !==
|
|
10
|
+
if (obj === null || typeof obj !== ValueTypes.object) {
|
|
7
11
|
return obj;
|
|
8
12
|
}
|
|
9
13
|
// If obj is already visited, return the cloned reference
|
|
14
|
+
/*
|
|
10
15
|
if (visited.has(obj)) {
|
|
11
|
-
|
|
16
|
+
return visited.get(obj)
|
|
17
|
+
}
|
|
18
|
+
*/
|
|
19
|
+
if (depth === 15) {
|
|
20
|
+
return obj;
|
|
12
21
|
}
|
|
13
22
|
// Handle special cases like Date and RegExp
|
|
14
23
|
if (obj instanceof Date) {
|
|
@@ -20,54 +29,64 @@ function makeDeepClone(obj, visited) {
|
|
|
20
29
|
// Create an empty object or array with the same prototype
|
|
21
30
|
const clone = Array.isArray(obj) ? [] : Object.create(Object.getPrototypeOf(obj));
|
|
22
31
|
// Register the cloned object to avoid cyclic references
|
|
23
|
-
visited.set(obj, clone)
|
|
32
|
+
// visited.set(obj, clone)
|
|
24
33
|
// Clone each property or element of the object or array
|
|
25
34
|
if (Array.isArray(obj)) {
|
|
26
35
|
for (let i = 0; i < obj.length; i++) {
|
|
27
|
-
clone[i] = makeDeepClone(obj[i], visited)
|
|
36
|
+
// clone[i] = makeDeepClone(obj[i], visited)
|
|
37
|
+
clone[i] = makeDeepClone(obj[i], depth + 1);
|
|
28
38
|
}
|
|
29
39
|
}
|
|
30
40
|
else {
|
|
31
41
|
for (const key in obj) {
|
|
32
42
|
if (obj.hasOwnProperty(key)) {
|
|
33
|
-
clone[key] = makeDeepClone(obj[key], visited)
|
|
43
|
+
// clone[key] = makeDeepClone(obj[key], visited)
|
|
44
|
+
clone[key] = makeDeepClone(obj[key], depth + 1);
|
|
34
45
|
}
|
|
35
46
|
}
|
|
36
47
|
}
|
|
37
48
|
return clone;
|
|
38
49
|
}
|
|
39
50
|
export function deepEqual(obj1, obj2) {
|
|
40
|
-
return isDeepEqual(obj1, obj2, new WeakMap())
|
|
51
|
+
// return isDeepEqual(obj1, obj2, new WeakMap())
|
|
52
|
+
return isDeepEqual(obj1, obj2, 0);
|
|
41
53
|
}
|
|
42
|
-
function isDeepEqual(obj1, obj2,
|
|
54
|
+
function isDeepEqual(obj1, obj2,
|
|
55
|
+
// visited: WeakMap<any, any>,
|
|
56
|
+
depth) {
|
|
43
57
|
const directEqual = obj1 === obj2;
|
|
44
58
|
if (directEqual || isSameFunctions(obj1, obj2)) {
|
|
45
59
|
return true;
|
|
46
60
|
}
|
|
47
61
|
// If obj is already visited, return the cloned reference
|
|
48
|
-
if (visited.has(obj1)) {
|
|
62
|
+
// if (visited.has(obj1)) {
|
|
63
|
+
if (depth === 15) {
|
|
49
64
|
return true;
|
|
50
65
|
}
|
|
51
|
-
if (typeof obj1 ===
|
|
66
|
+
if (typeof obj1 === ValueTypes.object && typeof obj2 === ValueTypes.object) {
|
|
52
67
|
// both are dates and were already determined not the same
|
|
53
68
|
if (obj1 instanceof Date && obj2 instanceof Date) {
|
|
54
69
|
return obj1.getTime() === obj2.getTime();
|
|
55
70
|
}
|
|
56
71
|
// Register the cloned object to avoid cyclic references
|
|
57
|
-
visited.set(obj1, 0)
|
|
72
|
+
// visited.set(obj1, 0)
|
|
58
73
|
// Check if obj1 and obj2 are both arrays
|
|
59
74
|
if (Array.isArray(obj1) && Array.isArray(obj2)) {
|
|
60
|
-
return isArrayDeepEqual(obj1, obj2, visited)
|
|
75
|
+
// return isArrayDeepEqual(obj1, obj2, visited)
|
|
76
|
+
return isArrayDeepEqual(obj1, obj2, depth + 1);
|
|
61
77
|
}
|
|
62
78
|
else if (Array.isArray(obj1) || Array.isArray(obj2)) {
|
|
63
79
|
// One is an array, and the other is not
|
|
64
80
|
return false;
|
|
65
81
|
}
|
|
66
|
-
return isObjectDeepEqual(obj1, obj2, visited)
|
|
82
|
+
// return isObjectDeepEqual(obj1, obj2, visited)
|
|
83
|
+
return isObjectDeepEqual(obj1, obj2, depth + 1);
|
|
67
84
|
}
|
|
68
85
|
return false;
|
|
69
86
|
}
|
|
70
|
-
function isObjectDeepEqual(obj1, obj2,
|
|
87
|
+
function isObjectDeepEqual(obj1, obj2,
|
|
88
|
+
// visited: WeakMap<any, any>,
|
|
89
|
+
depth) {
|
|
71
90
|
const keys1 = Object.keys(obj1);
|
|
72
91
|
const keys2 = Object.keys(obj2);
|
|
73
92
|
if (keys1.length === 0 && keys2.length === 0) {
|
|
@@ -78,18 +97,21 @@ function isObjectDeepEqual(obj1, obj2, visited) {
|
|
|
78
97
|
}
|
|
79
98
|
for (const key of keys1) {
|
|
80
99
|
const keyFound = keys2.includes(key);
|
|
81
|
-
if (!keyFound || !isDeepEqual(obj1[key], obj2[key],
|
|
100
|
+
if (!keyFound || !isDeepEqual(obj1[key], obj2[key], depth + 1)) {
|
|
82
101
|
return false;
|
|
83
102
|
}
|
|
84
103
|
}
|
|
85
104
|
return true;
|
|
86
105
|
}
|
|
87
|
-
function isArrayDeepEqual(obj1, obj2,
|
|
106
|
+
function isArrayDeepEqual(obj1, obj2,
|
|
107
|
+
// visited: WeakMap<any, any>,
|
|
108
|
+
depth) {
|
|
88
109
|
if (obj1.length !== obj2.length) {
|
|
89
110
|
return false;
|
|
90
111
|
}
|
|
91
112
|
for (let i = 0; i < obj1.length; i++) {
|
|
92
|
-
if (!isDeepEqual(obj1[i], obj2[i], visited)) {
|
|
113
|
+
// if (!isDeepEqual(obj1[i], obj2[i], visited)) {
|
|
114
|
+
if (!isDeepEqual(obj1[i], obj2[i], depth + 1)) {
|
|
93
115
|
return false;
|
|
94
116
|
}
|
|
95
117
|
}
|
package/js/deepFunctions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deepFunctions.js","sourceRoot":"","sources":["../ts/deepFunctions.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CACvB,GAAQ;IAER,OAAO,aAAa,CAAC,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"deepFunctions.js","sourceRoot":"","sources":["../ts/deepFunctions.ts"],"names":[],"mappings":"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"}
|
package/js/index.d.ts
CHANGED
|
@@ -4,24 +4,23 @@ export * from './subject.types.js';
|
|
|
4
4
|
export * from './isInstance.js';
|
|
5
5
|
export * from './state/index.js';
|
|
6
6
|
export * from './subject/index.js';
|
|
7
|
-
export * from './tag/
|
|
7
|
+
export * from './tag/Support.class.js';
|
|
8
8
|
export * from './interpolations/ElementTargetEvent.interface.js';
|
|
9
|
-
export * from './interpolations/interpolateElement.js';
|
|
10
9
|
export * from './interpolations/InsertBefore.type.js';
|
|
11
10
|
export { tagElement } from './tag/tagElement.js';
|
|
12
11
|
export { Tag, variablePrefix } from './tag/Tag.class.js';
|
|
13
12
|
export { runBeforeRender } from './tag/tagRunner.js';
|
|
14
|
-
export {
|
|
13
|
+
export { renderSupport } from './tag/render/renderSupport.function.js';
|
|
15
14
|
export { renderWithSupport } from './tag/render/renderWithSupport.function.js';
|
|
16
15
|
export { isLikeValueSets } from './tag/isLikeTags.function.js';
|
|
17
16
|
import { renderTagOnly } from './tag/render/renderTagOnly.function.js';
|
|
18
|
-
import {
|
|
17
|
+
import { renderSupport } from './tag/render/renderSupport.function.js';
|
|
19
18
|
import { renderWithSupport } from './tag/render/renderWithSupport.function.js';
|
|
20
19
|
import { tagElement } from './tag/tagElement.js';
|
|
21
20
|
export declare const hmr: {
|
|
22
21
|
tagElement: typeof tagElement;
|
|
23
22
|
renderWithSupport: typeof renderWithSupport;
|
|
24
|
-
|
|
23
|
+
renderSupport: typeof renderSupport;
|
|
25
24
|
renderTagOnly: typeof renderTagOnly;
|
|
26
25
|
};
|
|
27
26
|
export { type Wrapper } from './tag/TemplaterResult.class.js';
|
package/js/index.js
CHANGED
|
@@ -4,22 +4,21 @@ export * from './subject.types.js';
|
|
|
4
4
|
export * from './isInstance.js';
|
|
5
5
|
export * from './state/index.js';
|
|
6
6
|
export * from './subject/index.js';
|
|
7
|
-
export * from './tag/
|
|
7
|
+
export * from './tag/Support.class.js';
|
|
8
8
|
export * from './interpolations/ElementTargetEvent.interface.js';
|
|
9
|
-
export * from './interpolations/interpolateElement.js';
|
|
10
9
|
export * from './interpolations/InsertBefore.type.js';
|
|
11
10
|
export { tagElement } from './tag/tagElement.js';
|
|
12
11
|
export { Tag, variablePrefix } from './tag/Tag.class.js';
|
|
13
12
|
export { runBeforeRender } from './tag/tagRunner.js';
|
|
14
|
-
export {
|
|
13
|
+
export { renderSupport } from './tag/render/renderSupport.function.js';
|
|
15
14
|
export { renderWithSupport } from './tag/render/renderWithSupport.function.js';
|
|
16
15
|
export { isLikeValueSets } from './tag/isLikeTags.function.js';
|
|
17
16
|
import { renderTagOnly } from './tag/render/renderTagOnly.function.js';
|
|
18
|
-
import {
|
|
17
|
+
import { renderSupport } from './tag/render/renderSupport.function.js';
|
|
19
18
|
import { renderWithSupport } from './tag/render/renderWithSupport.function.js';
|
|
20
19
|
import { tagElement } from './tag/tagElement.js';
|
|
21
20
|
export const hmr = {
|
|
22
|
-
tagElement, renderWithSupport,
|
|
21
|
+
tagElement, renderWithSupport, renderSupport,
|
|
23
22
|
renderTagOnly,
|
|
24
23
|
};
|
|
25
24
|
//# sourceMappingURL=index.js.map
|
package/js/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,kDAAkD,CAAA;AAChE,cAAa,uCAAuC,CAAA;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAA;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAA;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAA;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAA;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAA;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,UAAU,EAAE,iBAAiB,EAAE,aAAa;IAC5C,aAAa;CACd,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Template } from './interpolateTemplate.js';
|
|
2
2
|
import { Context, ElementBuildOptions } from '../tag/Tag.class.js';
|
|
3
|
-
import {
|
|
4
|
-
export declare function afterInterpolateElement(container: DocumentFragment,
|
|
3
|
+
import { Support } from '../tag/Support.class.js';
|
|
4
|
+
export declare function afterInterpolateElement(container: DocumentFragment, template: Template, support: Support, context: Context, options: ElementBuildOptions): ChildNode[];
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import { buildClones } from '../
|
|
1
|
+
import { buildClones } from '../buildClones.function.js';
|
|
2
2
|
import { afterElmBuild } from './interpolateTemplate.js';
|
|
3
|
-
export function afterInterpolateElement(container,
|
|
4
|
-
const clones = buildClones(container,
|
|
3
|
+
export function afterInterpolateElement(container, template, support, context, options) {
|
|
4
|
+
const clones = buildClones(container, template);
|
|
5
5
|
if (!clones.length) {
|
|
6
6
|
return clones;
|
|
7
7
|
}
|
|
8
|
+
const global = support.subject.global;
|
|
8
9
|
for (let index = clones.length - 1; index >= 0; --index) {
|
|
9
10
|
const clone = clones[index];
|
|
10
|
-
afterElmBuild(clone, options, context,
|
|
11
|
-
tagSupport.global.clones.push(clone);
|
|
11
|
+
afterElmBuild(clone, options, context, support);
|
|
12
12
|
}
|
|
13
|
+
global.clones.push(...clones);
|
|
13
14
|
return clones;
|
|
14
15
|
}
|
|
15
16
|
//# sourceMappingURL=afterInterpolateElement.function.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"afterInterpolateElement.function.js","sourceRoot":"","sources":["../../ts/interpolations/afterInterpolateElement.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"afterInterpolateElement.function.js","sourceRoot":"","sources":["../../ts/interpolations/afterInterpolateElement.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAY,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAIlE,MAAM,UAAU,uBAAuB,CACrC,SAA2B,EAC3B,QAAkB,EAClB,OAAgB,EAChB,OAAgB,EAChB,OAA4B;IAE5B,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IAC/C,IAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAA;IACrC,KAAK,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;QACxD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3B,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IACjD,CAAC;IACD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAE,GAAG,MAAM,CAAE,CAAA;IAE/B,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
/** File largely responsible for reacting to element events, such as onclick */
|
|
2
|
-
import {
|
|
2
|
+
import { State } from '../state/state.utils.js';
|
|
3
|
+
import { BaseSupport, Support } from '../tag/Support.class.js';
|
|
4
|
+
import { TagGlobal } from '../tag/TemplaterResult.class.js';
|
|
3
5
|
export type Callback = (...args: any[]) => any & {
|
|
4
6
|
isChildOverride?: true;
|
|
5
7
|
};
|
|
6
|
-
export declare function bindSubjectCallback(value: Callback,
|
|
7
|
-
export declare function runTagCallback(value: Callback,
|
|
8
|
+
export declare function bindSubjectCallback(value: Callback, support: BaseSupport | Support): Callback;
|
|
9
|
+
export declare function runTagCallback(value: Callback, support: BaseSupport | Support, bindTo: unknown, args: any[], state: State): "no-data-ever" | Promise<string>;
|
|
10
|
+
export declare function afterTagCallback(tag: BaseSupport | Support, callbackResult: any, state: State): "no-data-ever" | Promise<string>;
|
|
11
|
+
export declare function findTagToCallback(support: BaseSupport | Support): BaseSupport | Support;
|
|
12
|
+
export declare function checkAfterCallbackPromise(callbackResult: any, last: BaseSupport | Support, global: TagGlobal): "no-data-ever" | Promise<string>;
|
|
13
|
+
export declare function runBlocked(tag: BaseSupport | Support, state: State, lastResult?: BaseSupport | Support): BaseSupport | Support | undefined;
|