taggedjs 2.4.2 → 2.4.12
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 +3612 -0
- package/bundle.js.map +1 -0
- package/index.js +1 -1
- package/js/Subject.d.ts +3 -4
- package/js/Subject.js +4 -4
- package/js/Subject.js.map +1 -1
- package/js/Tag.class.d.ts +25 -17
- package/js/Tag.class.js +208 -78
- package/js/Tag.class.js.map +1 -1
- package/js/Tag.utils.d.ts +13 -13
- package/js/Tag.utils.js +2 -18
- package/js/Tag.utils.js.map +1 -1
- package/js/TagSupport.class.d.ts +15 -14
- package/js/TagSupport.class.js +24 -46
- package/js/TagSupport.class.js.map +1 -1
- package/js/TemplaterResult.class.d.ts +36 -0
- package/js/TemplaterResult.class.js +73 -0
- package/js/TemplaterResult.class.js.map +1 -0
- package/js/ValueSubject.d.ts +4 -2
- package/js/ValueSubject.js +1 -1
- package/js/ValueSubject.js.map +1 -1
- package/js/alterProps.function.d.ts +4 -0
- package/js/alterProps.function.js +45 -0
- package/js/alterProps.function.js.map +1 -0
- package/js/bindSubjectCallback.function 9.27.33/342/200/257AM.js" +32 -0
- package/js/bindSubjectCallback.function.d 9.27.33/342/200/257AM.ts" +8 -0
- package/js/bindSubjectCallback.function.d.ts +3 -4
- package/js/bindSubjectCallback.function.js +20 -8
- package/js/bindSubjectCallback.function.js.map +1 -1
- package/js/checkDestroyPrevious.function.d.ts +6 -0
- package/js/checkDestroyPrevious.function.js +62 -0
- package/js/checkDestroyPrevious.function.js.map +1 -0
- package/js/destroyTag.function.d.ts +5 -0
- package/js/destroyTag.function.js +18 -0
- package/js/destroyTag.function.js.map +1 -0
- package/js/elementInitCheck.d.ts +1 -1
- package/js/getCallback.d.ts +1 -1
- package/js/getCallback.js +16 -15
- package/js/getCallback.js.map +1 -1
- package/js/hasTagSupportChanged.function.d.ts +6 -6
- package/js/hasTagSupportChanged.function.js +30 -21
- package/js/hasTagSupportChanged.function.js.map +1 -1
- package/js/html.d.ts +1 -1
- package/js/html.js +1 -1
- package/js/html.js.map +1 -1
- package/js/index.d.ts +22 -27
- package/js/index.js +26 -27
- package/js/index.js.map +1 -1
- package/js/interpolateAttributes.d.ts +2 -3
- package/js/interpolateAttributes.js +1 -127
- package/js/interpolateAttributes.js.map +1 -1
- package/js/interpolateContentTemplates.d.ts +9 -6
- package/js/interpolateContentTemplates.js +18 -28
- package/js/interpolateContentTemplates.js.map +1 -1
- package/js/interpolateElement.d.ts +7 -6
- package/js/interpolateElement.js +13 -10
- package/js/interpolateElement.js.map +1 -1
- package/js/interpolateTemplate.d.ts +22 -7
- package/js/interpolateTemplate.js +65 -27
- package/js/interpolateTemplate.js.map +1 -1
- package/js/isInstance.d.ts +3 -4
- package/js/isInstance.js.map +1 -1
- package/js/isLikeTags.function.d.ts +2 -0
- package/js/isLikeTags.function.js +30 -0
- package/js/isLikeTags.function.js.map +1 -0
- package/js/onDestroy.js +3 -3
- package/js/onDestroy.js.map +1 -1
- package/js/onInit.js +6 -4
- package/js/onInit.js.map +1 -1
- package/js/processAttribute.function.d.ts +3 -0
- package/js/processAttribute.function.js +122 -0
- package/js/processAttribute.function.js.map +1 -0
- package/js/processNewValue.function.d.ts +2 -2
- package/js/processNewValue.function.js +13 -15
- package/js/processNewValue.function.js.map +1 -1
- package/js/processRegularValue.function.d.ts +5 -7
- package/js/processRegularValue.function.js +10 -17
- package/js/processRegularValue.function.js.map +1 -1
- package/js/processSubjectComponent.function.d.ts +6 -6
- package/js/processSubjectComponent.function.js +30 -22
- package/js/processSubjectComponent.function.js.map +1 -1
- package/js/processSubjectValue.function.d.ts +17 -14
- package/js/processSubjectValue.function.js +55 -79
- package/js/processSubjectValue.function.js.map +1 -1
- package/js/processTagArray.d.ts +9 -8
- package/js/processTagArray.js +36 -37
- package/js/processTagArray.js.map +1 -1
- package/js/processTagResult.function.d.ts +7 -8
- package/js/processTagResult.function.js +40 -17
- package/js/processTagResult.function.js.map +1 -1
- package/js/provider.utils.d.ts +1 -1
- package/js/provider.utils.js +19 -8
- package/js/provider.utils.js.map +1 -1
- package/js/providers.js +6 -6
- package/js/providers.js.map +1 -1
- package/js/redrawTag.function.d.ts +5 -8
- package/js/redrawTag.function.js +16 -4
- package/js/redrawTag.function.js.map +1 -1
- package/js/render.d.ts +1 -1
- package/js/render.js.map +1 -1
- package/js/renderExistingTag.function.d.ts +7 -0
- package/js/renderExistingTag.function.js +30 -0
- package/js/renderExistingTag.function.js.map +1 -0
- package/js/renderTagSupport.function.d.ts +4 -0
- package/js/renderTagSupport.function.js +42 -0
- package/js/renderTagSupport.function.js.map +1 -0
- package/js/scanTextAreaValue.function.d.ts +2 -0
- package/js/scanTextAreaValue.function.js +16 -0
- package/js/scanTextAreaValue.function.js.map +1 -0
- package/js/set.function.d.ts +4 -3
- package/js/set.function.js +25 -34
- package/js/set.function.js.map +1 -1
- package/js/setLet.function.d.ts +1 -1
- package/js/setLet.function.js +14 -3
- package/js/setLet.function.js.map +1 -1
- package/js/setProp.function.d.ts +1 -1
- package/js/setProp.function.js +6 -3
- package/js/setProp.function.js.map +1 -1
- package/js/setUse.function.d.ts +11 -11
- package/js/tag.d.ts +6 -4
- package/js/tag.js +78 -71
- package/js/tag.js.map +1 -1
- package/js/tagElement.d.ts +5 -7
- package/js/tagElement.js +20 -31
- package/js/tagElement.js.map +1 -1
- package/js/tagRunner.d.ts +6 -6
- package/js/tagRunner.js +1 -1
- package/js/tagRunner.js.map +1 -1
- package/js/templater.utils.d.ts +23 -12
- package/js/templater.utils.js +55 -40
- package/js/templater.utils.js.map +1 -1
- package/js/updateExistingTag.function.d.ts +4 -4
- package/js/updateExistingTag.function.js +16 -7
- package/js/updateExistingTag.function.js.map +1 -1
- package/js/updateExistingTagComponent.function.d.ts +4 -4
- package/js/updateExistingTagComponent.function.js +105 -39
- package/js/updateExistingTagComponent.function.js.map +1 -1
- package/js/updateExistingValue.function.d.ts +8 -10
- package/js/updateExistingValue.function.js +62 -89
- package/js/updateExistingValue.function.js.map +1 -1
- package/js/watch.function.js +4 -3
- package/js/watch.function.js.map +1 -1
- package/package.json +1 -2
- package/js/CustomError.d.ts +0 -7
- package/js/CustomError.js +0 -9
- package/js/CustomError.js.map +0 -1
- package/js/ElementTarget.interface.d.ts +0 -7
- package/js/ElementTarget.interface.js +0 -2
- package/js/ElementTarget.interface.js.map +0 -1
- package/js/Errors2.d.ts +0 -14
- package/js/Errors2.js +0 -21
- package/js/Errors2.js.map +0 -1
- package/js/gateway/gateway.web.component.d.ts +0 -11
- package/js/gateway/gateway.web.component.js +0 -20
- package/js/gateway/gateway.web.component.js.map +0 -1
- package/js/gateway/index.d.ts +0 -3
- package/js/gateway/index.js +0 -4
- package/js/gateway/index.js.map +0 -1
- package/js/gateway/loadTagGateway.function.d.ts +0 -2
- package/js/gateway/loadTagGateway.function.js +0 -18
- package/js/gateway/loadTagGateway.function.js.map +0 -1
- package/js/gateway/tagGateway.function.d.ts +0 -5
- package/js/gateway/tagGateway.function.js +0 -49
- package/js/gateway/tagGateway.function.js.map +0 -1
- package/js/gateway/tagGateway.utils.d.ts +0 -22
- package/js/gateway/tagGateway.utils.js +0 -137
- package/js/gateway/tagGateway.utils.js.map +0 -1
- package/js/getTagSupport.d.ts +0 -20
- package/js/getTagSupport.js +0 -114
- package/js/getTagSupport.js.map +0 -1
- package/js/renderAppToElement.d.ts +0 -14
- package/js/renderAppToElement.js +0 -57
- package/js/renderAppToElement.js.map +0 -1
- package/js/state.d.ts +0 -22
- package/js/state.js +0 -128
- package/js/state.js.map +0 -1
- package/js/tagGateway.function.d.ts +0 -14
- package/js/tagGateway.function.js +0 -138
- package/js/tagGateway.function.js.map +0 -1
- package/js/updateTag.utils.d.ts +0 -8
- package/js/updateTag.utils.js +0 -83
- package/js/updateTag.utils.js.map +0 -1
- package/taggedjs.js +0 -1
- /package/js/{Errors.d.ts → errors.d.ts} +0 -0
- /package/js/{Errors.js → errors.js} +0 -0
- /package/js/{Errors.js.map → errors.js.map} +0 -0
|
@@ -1,17 +1,32 @@
|
|
|
1
|
-
import { Context, ElementBuildOptions, Tag } from "./Tag.class
|
|
2
|
-
import { InterpolateOptions } from "./interpolateElement
|
|
3
|
-
import { Clones } from "./Clones.type
|
|
1
|
+
import { Context, ElementBuildOptions, Tag } from "./Tag.class";
|
|
2
|
+
import { InterpolateOptions } from "./interpolateElement";
|
|
3
|
+
import { Clones } from "./Clones.type";
|
|
4
|
+
import { InterpolateSubject } from "./processSubjectValue.function";
|
|
4
5
|
export type Template = Element & {
|
|
5
6
|
clone?: any;
|
|
6
7
|
};
|
|
7
|
-
export
|
|
8
|
+
export type InterpolateComponentResult = {
|
|
9
|
+
subject: InterpolateSubject;
|
|
10
|
+
insertBefore: Element | Text | Template;
|
|
11
|
+
ownerTag: Tag;
|
|
12
|
+
variableName: string;
|
|
13
|
+
};
|
|
14
|
+
export type InterpolateTemplateResult = {
|
|
15
|
+
clones: Clones;
|
|
16
|
+
tagComponent?: InterpolateComponentResult;
|
|
17
|
+
};
|
|
18
|
+
export declare function interpolateTemplate(insertBefore: Template, // <template end interpolate /> (will be removed)
|
|
8
19
|
context: Context, // variable scope of {`__tagvar${index}`:'x'}
|
|
9
|
-
|
|
20
|
+
ownerTag: Tag, // Tag class
|
|
10
21
|
counts: Counts, // used for animation stagger computing
|
|
11
|
-
options: InterpolateOptions):
|
|
22
|
+
options: InterpolateOptions): InterpolateTemplateResult;
|
|
23
|
+
export declare function subscribeToTemplate(insertBefore: Element | Text | Template, subject: InterpolateSubject, ownerTag: Tag, counts: Counts, // used for animation stagger computing
|
|
24
|
+
{ isForceElement }: {
|
|
25
|
+
isForceElement?: boolean;
|
|
26
|
+
}): void;
|
|
12
27
|
export declare function updateBetweenTemplates(value: string | undefined | boolean | number, lastFirstChild: Element | Text): Text;
|
|
13
28
|
export type Counts = {
|
|
14
29
|
added: number;
|
|
15
30
|
removed: number;
|
|
16
31
|
};
|
|
17
|
-
export declare function afterElmBuild(elm: Element | ChildNode, options: ElementBuildOptions): void;
|
|
32
|
+
export declare function afterElmBuild(elm: Element | ChildNode, options: ElementBuildOptions, context: Context, ownerTag: Tag): void;
|
|
@@ -1,35 +1,68 @@
|
|
|
1
|
-
import { variablePrefix } from "./Tag.class
|
|
2
|
-
import { elementInitCheck } from "./elementInitCheck
|
|
3
|
-
import { processSubjectValue } from "./processSubjectValue.function
|
|
4
|
-
|
|
1
|
+
import { variablePrefix } from "./Tag.class";
|
|
2
|
+
import { elementInitCheck } from "./elementInitCheck";
|
|
3
|
+
import { processSubjectValue } from "./processSubjectValue.function";
|
|
4
|
+
import { isTagArray, isTagComponent } from "./isInstance";
|
|
5
|
+
import { scanTextAreaValue } from "./scanTextAreaValue.function";
|
|
6
|
+
import { updateExistingValue } from "./updateExistingValue.function";
|
|
7
|
+
export function interpolateTemplate(insertBefore, // <template end interpolate /> (will be removed)
|
|
5
8
|
context, // variable scope of {`__tagvar${index}`:'x'}
|
|
6
|
-
|
|
9
|
+
ownerTag, // Tag class
|
|
7
10
|
counts, // used for animation stagger computing
|
|
8
11
|
options) {
|
|
12
|
+
// TODO: THe clones array is useless here
|
|
9
13
|
const clones = [];
|
|
10
|
-
if (!
|
|
11
|
-
return clones; // only care about
|
|
14
|
+
if (!insertBefore.hasAttribute('end')) {
|
|
15
|
+
return { clones }; // only care about <template end>
|
|
12
16
|
}
|
|
13
|
-
const variableName =
|
|
17
|
+
const variableName = insertBefore.getAttribute('id');
|
|
14
18
|
if (variableName?.substring(0, variablePrefix.length) !== variablePrefix) {
|
|
15
|
-
return clones; // ignore, not a tagVar
|
|
19
|
+
return { clones }; // ignore, not a tagVar
|
|
20
|
+
}
|
|
21
|
+
const existingSubject = context[variableName];
|
|
22
|
+
const isDynamic = isTagComponent(existingSubject.value) || isTagArray(existingSubject.value);
|
|
23
|
+
// process dynamics later
|
|
24
|
+
if (isDynamic) {
|
|
25
|
+
return {
|
|
26
|
+
clones,
|
|
27
|
+
tagComponent: {
|
|
28
|
+
variableName,
|
|
29
|
+
ownerTag,
|
|
30
|
+
subject: existingSubject,
|
|
31
|
+
insertBefore
|
|
32
|
+
}
|
|
33
|
+
};
|
|
16
34
|
}
|
|
17
|
-
const result = context[variableName];
|
|
18
35
|
let isForceElement = options.forceElement;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
36
|
+
subscribeToTemplate(insertBefore, existingSubject, ownerTag, counts, { isForceElement });
|
|
37
|
+
return { clones };
|
|
38
|
+
}
|
|
39
|
+
export function subscribeToTemplate(insertBefore, subject, ownerTag, counts, // used for animation stagger computing
|
|
40
|
+
{ isForceElement }) {
|
|
41
|
+
let called = false;
|
|
42
|
+
const callback = (value) => {
|
|
43
|
+
// const orgInsert = insertBefore
|
|
44
|
+
const clone = subject.clone;
|
|
45
|
+
if (clone && clone.parentNode) {
|
|
46
|
+
insertBefore = clone;
|
|
47
|
+
}
|
|
48
|
+
if (called) {
|
|
49
|
+
updateExistingValue(subject, value, ownerTag, insertBefore);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
processSubjectValue(value, subject, insertBefore, ownerTag, {
|
|
53
|
+
counts: { ...counts },
|
|
23
54
|
forceElement: isForceElement,
|
|
24
55
|
});
|
|
25
56
|
if (isForceElement) {
|
|
26
57
|
isForceElement = false; // only can happen once
|
|
27
58
|
}
|
|
28
|
-
clones.push(...clones)
|
|
59
|
+
// ownerTag.clones.push(...clones)
|
|
60
|
+
// ownerTag.clones.push(...nextClones)
|
|
61
|
+
// clones.push(...nextClones)
|
|
62
|
+
called = true;
|
|
29
63
|
};
|
|
30
|
-
const sub =
|
|
31
|
-
|
|
32
|
-
return clones;
|
|
64
|
+
const sub = subject.subscribe(callback);
|
|
65
|
+
ownerTag.cloneSubs.push(sub);
|
|
33
66
|
}
|
|
34
67
|
// Function to update the value of x
|
|
35
68
|
export function updateBetweenTemplates(value, lastFirstChild) {
|
|
@@ -45,24 +78,29 @@ export function updateBetweenTemplates(value, lastFirstChild) {
|
|
|
45
78
|
parent.removeChild(lastFirstChild);
|
|
46
79
|
return textNode;
|
|
47
80
|
}
|
|
48
|
-
export function afterElmBuild(elm, options) {
|
|
81
|
+
export function afterElmBuild(elm, options, context, ownerTag) {
|
|
49
82
|
if (!elm.getAttribute) {
|
|
50
83
|
return;
|
|
51
84
|
}
|
|
52
|
-
|
|
53
|
-
if (
|
|
54
|
-
|
|
85
|
+
const tagName = elm.nodeName; // elm.tagName
|
|
86
|
+
if (tagName === 'TEXTAREA') {
|
|
87
|
+
scanTextAreaValue(elm, context, ownerTag);
|
|
55
88
|
}
|
|
89
|
+
let diff = options.counts.added;
|
|
90
|
+
diff = elementInitCheck(elm, options.counts) - diff;
|
|
56
91
|
if (elm.children) {
|
|
92
|
+
/*
|
|
57
93
|
const subCounts = {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
94
|
+
added: options.counts.added, // - diff,
|
|
95
|
+
removed: options.counts.removed,
|
|
96
|
+
}
|
|
97
|
+
*/
|
|
61
98
|
new Array(...elm.children).forEach((child, index) => {
|
|
62
|
-
|
|
99
|
+
const subOptions = {
|
|
63
100
|
...options,
|
|
64
101
|
counts: options.counts,
|
|
65
|
-
}
|
|
102
|
+
};
|
|
103
|
+
return afterElmBuild(child, subOptions, context, ownerTag);
|
|
66
104
|
});
|
|
67
105
|
}
|
|
68
106
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interpolateTemplate.js","sourceRoot":"","sources":["../ts/interpolateTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"interpolateTemplate.js","sourceRoot":"","sources":["../ts/interpolateTemplate.ts"],"names":[],"mappings":"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"}
|
package/js/isInstance.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { SubjectLike } from "./Subject
|
|
2
|
-
import {
|
|
3
|
-
import { TemplaterResult } from "./templater.utils.js";
|
|
1
|
+
import { SubjectLike } from "./Subject";
|
|
2
|
+
import { TemplaterResult } from "./TemplaterResult.class";
|
|
4
3
|
export declare function isTagComponent(value?: TemplaterResult | unknown): boolean;
|
|
5
|
-
export declare function isTagInstance(tag?:
|
|
4
|
+
export declare function isTagInstance(tag?: TemplaterResult | unknown): boolean;
|
|
6
5
|
export declare function isSubjectInstance(subject?: SubjectLike | any): Boolean;
|
|
7
6
|
export declare function isTagArray(value: any): boolean;
|
package/js/isInstance.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isInstance.js","sourceRoot":"","sources":["../ts/isInstance.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,cAAc,CAAC,KAAiC;IAC9D,OAAQ,KAAyB,EAAE,WAAW,KAAK,IAAI,CAAA;AACzD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"isInstance.js","sourceRoot":"","sources":["../ts/isInstance.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,cAAc,CAAC,KAAiC;IAC9D,OAAQ,KAAyB,EAAE,WAAW,KAAK,IAAI,CAAA;AACzD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAA+B;IAC3D,OAAQ,GAAuB,EAAE,KAAK,KAAK,IAAI,CAAA;AACjD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,OAA2B;IAE3B,OAAO,CAAC,OAAO,EAAE,SAAS,KAAK,IAAI,IAAI,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA,CAAC,kCAAkC;AAC9G,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAU;IACnC,OAAO,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;AACrE,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export function isLikeTags(tag0, tag1) {
|
|
2
|
+
if (tag0.strings.length !== tag1.strings.length) {
|
|
3
|
+
return false;
|
|
4
|
+
}
|
|
5
|
+
const everyStringMatched = tag0.strings.every((string, index) => tag1.strings[index] === string);
|
|
6
|
+
if (!everyStringMatched) {
|
|
7
|
+
return false;
|
|
8
|
+
}
|
|
9
|
+
const valuesLengthsMatch = tag0.values.length === tag1.values.length;
|
|
10
|
+
if (!valuesLengthsMatch) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
const allVarsMatch = tag1.values.every((value, index) => {
|
|
14
|
+
const compareTo = tag0.values[index];
|
|
15
|
+
const isFunctions = value instanceof Function && compareTo instanceof Function;
|
|
16
|
+
if (isFunctions) {
|
|
17
|
+
const stringMatch = value.toString() === compareTo.toString();
|
|
18
|
+
if (stringMatch) {
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
return true; // deepEqual(value, compareTo)
|
|
24
|
+
});
|
|
25
|
+
if (allVarsMatch) {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=isLikeTags.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isLikeTags.function.js","sourceRoot":"","sources":["../ts/isLikeTags.function.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,UAAU,CAAC,IAAS,EAAE,IAAS;IAC7C,IAAG,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAC/C,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,CAAA;IAC/F,IAAG,CAAC,kBAAkB,EAAE,CAAC;QACvB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAA;IACpE,IAAG,CAAC,kBAAkB,EAAE,CAAC;QACvB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAC,EAAE;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACpC,MAAM,WAAW,GAAG,KAAK,YAAY,QAAQ,IAAI,SAAS,YAAY,QAAQ,CAAA;QAE9E,IAAG,WAAW,EAAE,CAAC;YACf,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,EAAE,KAAK,SAAS,CAAC,QAAQ,EAAE,CAAA;YAC7D,IAAG,WAAW,EAAE,CAAC;gBACf,OAAO,IAAI,CAAA;YACb,CAAC;YAED,OAAO,KAAK,CAAA;QACd,CAAC;QAED,OAAO,IAAI,CAAA,CAAC,8BAA8B;IAC5C,CAAC,CAAC,CAAA;IAEF,IAAG,YAAY,EAAE,CAAC;QAChB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC"}
|
package/js/onDestroy.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { setUse } from "./setUse.function
|
|
1
|
+
import { setUse } from "./setUse.function";
|
|
2
2
|
/** When undefined, it means a tag is being built for the first time so do run destroy(s) */
|
|
3
3
|
let destroyCurrentTagSupport;
|
|
4
4
|
export function onDestroy(callback) {
|
|
5
|
-
destroyCurrentTagSupport.
|
|
5
|
+
destroyCurrentTagSupport.templater.global.destroyCallback = callback;
|
|
6
6
|
}
|
|
7
7
|
setUse({
|
|
8
8
|
beforeRender: tagSupport => destroyCurrentTagSupport = tagSupport,
|
|
9
9
|
beforeRedraw: tagSupport => destroyCurrentTagSupport = tagSupport,
|
|
10
10
|
beforeDestroy: (tagSupport, tag) => {
|
|
11
|
-
const callback = tagSupport.
|
|
11
|
+
const callback = tagSupport.templater.global.destroyCallback;
|
|
12
12
|
if (callback) {
|
|
13
13
|
callback();
|
|
14
14
|
}
|
package/js/onDestroy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onDestroy.js","sourceRoot":"","sources":["../ts/onDestroy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"onDestroy.js","sourceRoot":"","sources":["../ts/onDestroy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAI1C,4FAA4F;AAC5F,IAAI,wBAAwC,CAAA;AAE5C,MAAM,UAAU,SAAS,CACvB,QAA2B;IAE3B,wBAAwB,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,GAAG,QAAQ,CAAA;AACtE,CAAC;AAED,MAAM,CAAC;IACL,YAAY,EAAE,UAAU,CAAC,EAAE,CAAC,wBAAwB,GAAG,UAAU;IACjE,YAAY,EAAE,UAAU,CAAC,EAAE,CAAC,wBAAwB,GAAG,UAAU;IACjE,aAAa,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,EAAE;QACjC,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAA;QAE5D,IAAG,QAAQ,EAAE,CAAC;YACZ,QAAQ,EAAE,CAAA;QACZ,CAAC;IACH,CAAC;CACF,CAAC,CAAA"}
|
package/js/onInit.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { setUse } from "./setUse.function
|
|
1
|
+
import { setUse } from "./setUse.function";
|
|
2
2
|
function setCurrentTagSupport(support) {
|
|
3
|
-
setUse.memory.
|
|
3
|
+
setUse.memory.initCurrentTemplater = support.templater;
|
|
4
4
|
}
|
|
5
5
|
export function onInit(callback) {
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
const templater = setUse.memory.initCurrentTemplater;
|
|
7
|
+
if (!templater.global.init) {
|
|
8
|
+
;
|
|
9
|
+
templater.global.init = callback;
|
|
8
10
|
callback(); // fire init
|
|
9
11
|
}
|
|
10
12
|
}
|
package/js/onInit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onInit.js","sourceRoot":"","sources":["../ts/onInit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"onInit.js","sourceRoot":"","sources":["../ts/onInit.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAI1C,SAAS,oBAAoB,CAAC,OAAuB;IACnD,MAAM,CAAC,MAAM,CAAC,oBAAoB,GAAG,OAAO,CAAC,SAAS,CAAA;AACxD,CAAC;AAED,MAAM,UAAU,MAAM,CACpB,QAAwB;IAExB,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAuC,CAAA;IACvE,IAAG,CAAE,SAAS,CAAC,MAAc,CAAC,IAAI,EAAE,CAAC;QACnC,CAAC;QAAC,SAAS,CAAC,MAAc,CAAC,IAAI,GAAG,QAAQ,CAAA;QAC1C,QAAQ,EAAE,CAAA,CAAC,YAAY;IACzB,CAAC;AACH,CAAC;AAED,MAAM,CAAC;IACL,YAAY,EAAE,UAAU,CAAC,EAAE,CAAC,oBAAoB,CAAC,UAAU,CAAC;IAC5D,YAAY,EAAE,UAAU,CAAC,EAAE,CAAC,oBAAoB,CAAC,UAAU,CAAC;CAC7D,CAAC,CAAA"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { inputAttribute } from './inputAttribute';
|
|
2
|
+
import { isSubjectInstance } from './isInstance';
|
|
3
|
+
import { bindSubjectCallback } from './bindSubjectCallback.function';
|
|
4
|
+
const startRegX = /^\s*{__tagvar/;
|
|
5
|
+
const endRegX = /}\s*$/;
|
|
6
|
+
function isTagVar(value) {
|
|
7
|
+
return value && value.search(startRegX) >= 0 && value.search(endRegX) >= 0;
|
|
8
|
+
}
|
|
9
|
+
export function processAttribute(attrName, value, child, scope, ownerTag, howToSet) {
|
|
10
|
+
if (isTagVar(value)) {
|
|
11
|
+
return processScopedNameValueAttr(attrName, value, child, scope, ownerTag, howToSet);
|
|
12
|
+
}
|
|
13
|
+
if (isTagVar(attrName)) {
|
|
14
|
+
const contextValueSubject = getContextValueByVarString(scope, attrName);
|
|
15
|
+
let lastValue;
|
|
16
|
+
// the above callback gets called immediately since its a ValueSubject()
|
|
17
|
+
const sub = contextValueSubject.subscribe((value) => {
|
|
18
|
+
processNameOnlyAttr(value, lastValue, child, ownerTag, howToSet);
|
|
19
|
+
lastValue = value;
|
|
20
|
+
});
|
|
21
|
+
ownerTag.cloneSubs.push(sub); // this is where unsubscribe is picked up
|
|
22
|
+
child.removeAttribute(attrName);
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
// Non dynamic
|
|
26
|
+
const isSpecial = isSpecialAttr(attrName);
|
|
27
|
+
if (isSpecial) {
|
|
28
|
+
return inputAttribute(attrName, value, child);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function processScopedNameValueAttr(attrName, value, // {__tagVarN}
|
|
32
|
+
child, scope, ownerTag, howToSet) {
|
|
33
|
+
// get the code inside the brackets like "variable0" or "{variable0}"
|
|
34
|
+
const result = getContextValueByVarString(scope, value);
|
|
35
|
+
return processNameValueAttr(attrName, result, child, ownerTag, howToSet);
|
|
36
|
+
}
|
|
37
|
+
function getContextValueByVarString(scope, value) {
|
|
38
|
+
const code = value.replace('{', '').split('').reverse().join('').replace('}', '').split('').reverse().join('');
|
|
39
|
+
return scope[code];
|
|
40
|
+
}
|
|
41
|
+
function processNameOnlyAttr(attrValue, lastValue, child, ownerTag, howToSet) {
|
|
42
|
+
if (lastValue && lastValue != attrValue) {
|
|
43
|
+
if (typeof (lastValue) === 'string') {
|
|
44
|
+
child.removeAttribute(lastValue);
|
|
45
|
+
}
|
|
46
|
+
else if (lastValue instanceof Object) {
|
|
47
|
+
Object.entries(lastValue).forEach(([name]) => child.removeAttribute(name));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
if (typeof (attrValue) === 'string') {
|
|
51
|
+
if (!attrValue.length) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
processNameValueAttr(attrValue, '', child, ownerTag, howToSet);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
if (attrValue instanceof Object) {
|
|
58
|
+
Object.entries(attrValue).forEach(([name, value]) => processNameValueAttr(name, value, child, ownerTag, howToSet));
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function processNameValueAttr(attrName, result, child, ownerTag, howToSet) {
|
|
63
|
+
const isSpecial = isSpecialAttr(attrName);
|
|
64
|
+
// attach as callback?
|
|
65
|
+
if (result instanceof Function) {
|
|
66
|
+
const action = function (...args) {
|
|
67
|
+
const result2 = result(child, args);
|
|
68
|
+
return result2;
|
|
69
|
+
};
|
|
70
|
+
child[attrName].action = action;
|
|
71
|
+
// child.addEventListener(attrName, action)
|
|
72
|
+
}
|
|
73
|
+
// Most every variable comes in here since everything is made a ValueSubject
|
|
74
|
+
if (isSubjectInstance(result)) {
|
|
75
|
+
child.removeAttribute(attrName);
|
|
76
|
+
const callback = (newAttrValue) => {
|
|
77
|
+
if (newAttrValue instanceof Function) {
|
|
78
|
+
newAttrValue = bindSubjectCallback(newAttrValue, ownerTag);
|
|
79
|
+
}
|
|
80
|
+
return processAttributeSubjectValue(newAttrValue, child, attrName, isSpecial, howToSet);
|
|
81
|
+
};
|
|
82
|
+
// 🗞️ Subscribe. Above callback called immediately since its a ValueSubject()
|
|
83
|
+
const sub = result.subscribe(callback);
|
|
84
|
+
// Record subscription for later unsubscribe when element destroyed
|
|
85
|
+
ownerTag.cloneSubs.push(sub);
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
howToSet(child, attrName, result);
|
|
89
|
+
// child.setAttribute(attrName, result.value)
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
function processAttributeSubjectValue(newAttrValue, child, attrName, isSpecial, howToSet) {
|
|
93
|
+
if (newAttrValue instanceof Function) {
|
|
94
|
+
const fun = function (...args) {
|
|
95
|
+
return newAttrValue(child, args);
|
|
96
|
+
};
|
|
97
|
+
// access to original function
|
|
98
|
+
fun.tagFunction = newAttrValue;
|
|
99
|
+
child[attrName] = fun;
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
if (isSpecial) {
|
|
103
|
+
inputAttribute(attrName, newAttrValue, child);
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
if (newAttrValue) {
|
|
107
|
+
howToSet(child, attrName, newAttrValue);
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
const isDeadValue = newAttrValue === undefined || newAttrValue === false || newAttrValue === null;
|
|
111
|
+
if (isDeadValue) {
|
|
112
|
+
child.removeAttribute(attrName);
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
// value is 0
|
|
116
|
+
howToSet(child, attrName, newAttrValue);
|
|
117
|
+
}
|
|
118
|
+
/** Looking for (class | style) followed by a period */
|
|
119
|
+
function isSpecialAttr(attrName) {
|
|
120
|
+
return attrName.search(/^(class|style)(\.)/) >= 0;
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=processAttribute.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processAttribute.function.js","sourceRoot":"","sources":["../ts/processAttribute.function.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare function processNewValue(hasValue: boolean, value: any,
|
|
1
|
+
import { Tag } from './Tag.class';
|
|
2
|
+
export declare function processNewValue(hasValue: boolean, value: any, ownerTag: Tag): any;
|
|
@@ -1,29 +1,27 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
export function processNewValue(hasValue, value, context, variableName, ownerTag) {
|
|
1
|
+
import { ValueSubject } from './ValueSubject';
|
|
2
|
+
import { isSubjectInstance, isTagComponent, isTagInstance } from './isInstance';
|
|
3
|
+
export function processNewValue(hasValue, value, ownerTag) {
|
|
5
4
|
if (isTagComponent(value)) {
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
return;
|
|
5
|
+
const tagSubject = new ValueSubject(value);
|
|
6
|
+
return tagSubject;
|
|
9
7
|
}
|
|
10
8
|
if (value instanceof Function) {
|
|
11
|
-
|
|
12
|
-
return;
|
|
9
|
+
// return getSubjectFunction(value, ownerTag)
|
|
10
|
+
return new ValueSubject(value);
|
|
13
11
|
}
|
|
14
12
|
if (!hasValue) {
|
|
15
13
|
return; // more strings than values, stop here
|
|
16
14
|
}
|
|
17
15
|
if (isTagInstance(value)) {
|
|
18
16
|
value.ownerTag = ownerTag;
|
|
19
|
-
ownerTag.
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
if (ownerTag.childTags.find(x => x === value)) {
|
|
18
|
+
throw new Error('about to reattach tag already present - 2');
|
|
19
|
+
}
|
|
20
|
+
return new ValueSubject(value);
|
|
22
21
|
}
|
|
23
22
|
if (isSubjectInstance(value)) {
|
|
24
|
-
|
|
25
|
-
return;
|
|
23
|
+
return value; // its already a value subject
|
|
26
24
|
}
|
|
27
|
-
|
|
25
|
+
return new ValueSubject(value);
|
|
28
26
|
}
|
|
29
27
|
//# sourceMappingURL=processNewValue.function.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processNewValue.function.js","sourceRoot":"","sources":["../ts/processNewValue.function.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"processNewValue.function.js","sourceRoot":"","sources":["../ts/processNewValue.function.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE/E,MAAM,UAAU,eAAe,CAC7B,QAAiB,EACjB,KAAU,EACV,QAAa;IAEb,IAAG,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,IAAI,YAAY,CAAC,KAAK,CAAe,CAAA;QACxD,OAAO,UAAU,CAAA;IACnB,CAAC;IAED,IAAG,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC7B,6CAA6C;QAC7C,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAA;IAChC,CAAC;IAED,IAAG,CAAC,QAAQ,EAAE,CAAC;QACb,OAAM,CAAC,sCAAsC;IAC/C,CAAC;IAED,IAAG,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAEzB,IAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;QAC9D,CAAC;QAED,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAA;IAChC,CAAC;IAED,IAAG,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAA,CAAC,8BAA8B;IAC7C,CAAC;IAED,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAA;AAChC,CAAC"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
template: Template, // <template end interpolate /> (will be removed)
|
|
7
|
-
ownerTag: Tag): Clones;
|
|
1
|
+
import { DisplaySubject } from './Tag.utils';
|
|
2
|
+
import { Template } from './interpolateTemplate';
|
|
3
|
+
export type RegularValue = string | number | undefined | boolean;
|
|
4
|
+
export declare function processRegularValue(value: RegularValue, subject: DisplaySubject, // could be tag via subject.tag
|
|
5
|
+
template: Element | Text | Template): void;
|
|
@@ -1,21 +1,14 @@
|
|
|
1
|
-
import { updateBetweenTemplates } from
|
|
2
|
-
export function processRegularValue(value,
|
|
3
|
-
template
|
|
4
|
-
|
|
5
|
-
const before =
|
|
6
|
-
|
|
1
|
+
import { updateBetweenTemplates } from './interpolateTemplate';
|
|
2
|
+
export function processRegularValue(value, subject, // could be tag via subject.tag
|
|
3
|
+
template) {
|
|
4
|
+
subject.template = template;
|
|
5
|
+
const before = subject.clone || template; // Either the template is on the doc OR its the first element we last put on doc
|
|
6
|
+
if (subject.lastValue === value) {
|
|
7
|
+
return; // no need to update display, its the same
|
|
8
|
+
}
|
|
9
|
+
subject.lastValue = value;
|
|
7
10
|
// Processing of regular values
|
|
8
11
|
const clone = updateBetweenTemplates(value, before);
|
|
9
|
-
|
|
10
|
-
const clones = [];
|
|
11
|
-
const oldPos = ownerTag.clones.indexOf(before); // is the insertBefore guide being considered one of the tags clones?
|
|
12
|
-
const isOnlyGuideInClones = oldPos >= 0 && !ownerTag.clones.includes(clone);
|
|
13
|
-
const exchangeGuideForClone = isOnlyGuideInClones && !before.parentNode; // guide is in clones AND guide is not on the document
|
|
14
|
-
if (exchangeGuideForClone) {
|
|
15
|
-
ownerTag.clones.splice(oldPos, 1); // remove insertBefore guide from tag
|
|
16
|
-
ownerTag.clones.push(clone); // exchange guide for element actually on document
|
|
17
|
-
clones.push(clone); // record the one element that in the end is on the document
|
|
18
|
-
}
|
|
19
|
-
return clones;
|
|
12
|
+
subject.clone = clone; // remember single element put down, for future updates
|
|
20
13
|
}
|
|
21
14
|
//# sourceMappingURL=processRegularValue.function.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processRegularValue.function.js","sourceRoot":"","sources":["../ts/processRegularValue.function.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"processRegularValue.function.js","sourceRoot":"","sources":["../ts/processRegularValue.function.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAIxE,MAAM,UAAU,mBAAmB,CACjC,KAAmB,EACnB,OAAuB,EAAE,+BAA+B;AACxD,QAAmC;IAEnC,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAA,CAAC,gFAAgF;IAEzH,IAAG,OAAO,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;QAC/B,OAAM,CAAC,0CAA0C;IACnD,CAAC;IAED,OAAO,CAAC,SAAS,GAAG,KAAK,CAAA;IAEzB,+BAA+B;IAC/B,MAAM,KAAK,GAAG,sBAAsB,CAClC,KAAK,EACL,MAAM,CACP,CAAA;IAED,OAAO,CAAC,KAAK,GAAG,KAAK,CAAA,CAAC,uDAAuD;AAC/E,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { TemplaterResult } from
|
|
2
|
-
import { Counts } from
|
|
3
|
-
import { Tag } from
|
|
4
|
-
import { TagSubject } from
|
|
5
|
-
export declare function processSubjectComponent(
|
|
1
|
+
import { TemplaterResult } from './TemplaterResult.class';
|
|
2
|
+
import { Counts, Template } from './interpolateTemplate';
|
|
3
|
+
import { Tag } from './Tag.class';
|
|
4
|
+
import { TagSubject } from './Tag.utils';
|
|
5
|
+
export declare function processSubjectComponent(templater: TemplaterResult, subject: TagSubject, template: Element | Text | Template, ownerTag: Tag, options: {
|
|
6
6
|
counts: Counts;
|
|
7
7
|
forceElement?: boolean;
|
|
8
|
-
}):
|
|
8
|
+
}): void;
|