taggedjs 2.1.2 → 2.3.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +1 -1
- package/js/Clones.type.d.ts +1 -0
- package/js/Clones.type.js +2 -0
- package/js/Clones.type.js.map +1 -0
- package/js/Props.d.ts +1 -0
- package/js/Props.js +2 -0
- package/js/Props.js.map +1 -0
- package/js/Subject.d.ts +7 -2
- package/js/Subject.js +15 -10
- package/js/Subject.js.map +1 -1
- package/js/Tag.class.d.ts +37 -13
- package/js/Tag.class.js +133 -99
- package/js/Tag.class.js.map +1 -1
- package/js/Tag.utils.d.ts +8 -20
- package/js/Tag.utils.js +17 -88
- package/js/Tag.utils.js.map +1 -1
- package/js/ValueSubject.d.ts +1 -1
- package/js/ValueSubject.js.map +1 -1
- package/js/bindSubjectCallback.function.d.ts +5 -0
- package/js/bindSubjectCallback.function.js +19 -0
- package/js/bindSubjectCallback.function.js.map +1 -0
- package/js/elementDestroyCheck.function.d.ts +3 -0
- package/js/elementDestroyCheck.function.js +17 -0
- package/js/elementDestroyCheck.function.js.map +1 -0
- package/js/elementInitCheck.js.map +1 -1
- package/js/gateway/gateway.web.component.d.ts +11 -0
- package/js/gateway/gateway.web.component.js +20 -0
- package/js/gateway/gateway.web.component.js.map +1 -0
- package/js/gateway/index.d.ts +3 -0
- package/js/gateway/index.js +3 -0
- package/js/gateway/index.js.map +1 -0
- package/js/gateway/loadTagGateway.function.d.ts +2 -0
- package/js/gateway/loadTagGateway.function.js +18 -0
- package/js/gateway/loadTagGateway.function.js.map +1 -0
- package/js/gateway/tagGateway.function.d.ts +31 -0
- package/js/gateway/tagGateway.function.js +187 -0
- package/js/gateway/tagGateway.function.js.map +1 -0
- package/js/getCallback.js +39 -42
- package/js/getCallback.js.map +1 -1
- package/js/getTagSupport.d.ts +18 -17
- package/js/getTagSupport.js +104 -15
- package/js/getTagSupport.js.map +1 -1
- package/js/html.d.ts +1 -1
- package/js/html.js.map +1 -1
- package/js/index.d.ts +16 -7
- package/js/index.js +20 -8
- package/js/index.js.map +1 -1
- package/js/inputAttribute.js +3 -3
- package/js/inputAttribute.js.map +1 -1
- package/js/interpolateAttributes.d.ts +2 -1
- package/js/interpolateAttributes.js +126 -60
- package/js/interpolateAttributes.js.map +1 -1
- package/js/interpolateContentTemplates.d.ts +4 -1
- package/js/interpolateContentTemplates.js +32 -25
- package/js/interpolateContentTemplates.js.map +1 -1
- package/js/interpolateElement.d.ts +8 -13
- package/js/interpolateElement.js +26 -22
- package/js/interpolateElement.js.map +1 -1
- package/js/interpolateTemplate.d.ts +15 -19
- package/js/interpolateTemplate.js +33 -231
- package/js/interpolateTemplate.js.map +1 -1
- package/js/interpolations.d.ts +3 -2
- package/js/interpolations.js +2 -1
- package/js/interpolations.js.map +1 -1
- package/js/isInstance.d.ts +6 -0
- package/js/isInstance.js +10 -0
- package/js/isInstance.js.map +1 -0
- package/js/js/Clones.type.d.ts +1 -0
- package/js/js/Clones.type.js +2 -0
- package/js/js/Clones.type.js.map +1 -0
- package/js/js/Props.d.ts +1 -0
- package/js/js/Props.js +2 -0
- package/js/js/Props.js.map +1 -0
- package/js/js/Subject.d.ts +7 -2
- package/js/js/Subject.js +15 -10
- package/js/js/Subject.js.map +1 -1
- package/js/js/Tag.class.d.ts +27 -5
- package/js/js/Tag.class.js +109 -81
- package/js/js/Tag.class.js.map +1 -1
- package/js/js/Tag.utils.d.ts +8 -20
- package/js/js/Tag.utils.js +17 -88
- package/js/js/Tag.utils.js.map +1 -1
- package/js/js/ValueSubject.d.ts +1 -1
- package/js/js/ValueSubject.js.map +1 -1
- package/js/js/bindSubjectCallback.function.d.ts +5 -0
- package/js/js/bindSubjectCallback.function.js +19 -0
- package/js/js/bindSubjectCallback.function.js.map +1 -0
- package/js/js/elementDestroyCheck.function.d.ts +3 -0
- package/js/js/elementDestroyCheck.function.js +17 -0
- package/js/js/elementDestroyCheck.function.js.map +1 -0
- package/js/js/elementInitCheck.js.map +1 -1
- package/js/js/getCallback.js +39 -42
- package/js/js/getCallback.js.map +1 -1
- package/js/js/getTagSupport.d.ts +19 -17
- package/js/js/getTagSupport.js +111 -15
- package/js/js/getTagSupport.js.map +1 -1
- package/js/js/html.d.ts +1 -1
- package/js/js/html.js.map +1 -1
- package/js/js/index.d.ts +16 -7
- package/js/js/index.js +20 -8
- package/js/js/index.js.map +1 -1
- package/js/js/interpolateAttributes.d.ts +2 -1
- package/js/js/interpolateAttributes.js +118 -60
- package/js/js/interpolateAttributes.js.map +1 -1
- package/js/js/interpolateContentTemplates.d.ts +3 -1
- package/js/js/interpolateContentTemplates.js +32 -22
- package/js/js/interpolateContentTemplates.js.map +1 -1
- package/js/js/interpolateElement.d.ts +7 -12
- package/js/js/interpolateElement.js +18 -21
- package/js/js/interpolateElement.js.map +1 -1
- package/js/js/interpolateTemplate.d.ts +15 -19
- package/js/js/interpolateTemplate.js +33 -231
- package/js/js/interpolateTemplate.js.map +1 -1
- package/js/js/interpolations.d.ts +3 -1
- package/js/js/interpolations.js +3 -3
- package/js/js/interpolations.js.map +1 -1
- package/js/js/isInstance.d.ts +6 -0
- package/js/js/isInstance.js +10 -0
- package/js/js/isInstance.js.map +1 -0
- package/js/js/onDestroy.d.ts +2 -0
- package/js/js/onDestroy.js +20 -0
- package/js/js/onDestroy.js.map +1 -0
- package/js/js/onInit.d.ts +0 -4
- package/js/js/onInit.js +12 -10
- package/js/js/onInit.js.map +1 -1
- package/js/js/processSubjectComponent.function.d.ts +8 -0
- package/js/js/processSubjectComponent.function.js +53 -0
- package/js/js/processSubjectComponent.function.js.map +1 -0
- package/js/js/processSubjectValue.function.d.ts +16 -0
- package/js/js/processSubjectValue.function.js +122 -0
- package/js/js/processSubjectValue.function.js.map +1 -0
- package/js/js/processTagArray.d.ts +5 -1
- package/js/js/processTagArray.js +21 -10
- package/js/js/processTagArray.js.map +1 -1
- package/js/js/processTagResult.function.d.ts +10 -0
- package/js/js/processTagResult.function.js +42 -0
- package/js/js/processTagResult.function.js.map +1 -0
- package/js/js/providers.d.ts +4 -12
- package/js/js/providers.js +28 -20
- package/js/js/providers.js.map +1 -1
- package/js/js/redrawTag.function.d.ts +7 -0
- package/js/js/redrawTag.function.js +9 -0
- package/js/js/redrawTag.function.js.map +1 -0
- package/js/js/render.d.ts +1 -6
- package/js/js/render.js +8 -15
- package/js/js/render.js.map +1 -1
- package/js/js/renderAppToElement.d.ts +8 -2
- package/js/js/renderAppToElement.js +40 -21
- package/js/js/renderAppToElement.js.map +1 -1
- package/js/js/setUse.function.d.ts +23 -0
- package/js/js/setUse.function.js +14 -0
- package/js/js/setUse.function.js.map +1 -0
- package/js/js/state.d.ts +14 -11
- package/js/js/state.js +68 -33
- package/js/js/state.js.map +1 -1
- package/js/js/tag.d.ts +7 -16
- package/js/js/tag.js +33 -44
- package/js/js/tag.js.map +1 -1
- package/js/js/tagElement.d.ts +14 -0
- package/js/js/tagElement.js +57 -0
- package/js/js/tagElement.js.map +1 -0
- package/js/js/tagGateway.function.d.ts +5 -0
- package/js/js/tagGateway.function.js +119 -0
- package/js/js/tagGateway.function.js.map +1 -0
- package/js/js/tagRunner.d.ts +2 -13
- package/js/js/tagRunner.js +12 -12
- package/js/js/tagRunner.js.map +1 -1
- package/js/js/templater.utils.d.ts +28 -0
- package/js/js/templater.utils.js +99 -0
- package/js/js/templater.utils.js.map +1 -0
- package/js/js/updateTag.utils.d.ts +6 -0
- package/js/js/updateTag.utils.js +84 -0
- package/js/js/updateTag.utils.js.map +1 -0
- package/js/onDestroy.d.ts +2 -0
- package/js/onDestroy.js +20 -0
- package/js/onDestroy.js.map +1 -0
- package/js/onInit.d.ts +0 -4
- package/js/onInit.js +12 -10
- package/js/onInit.js.map +1 -1
- package/js/processSubjectComponent.function.d.ts +8 -0
- package/js/processSubjectComponent.function.js +53 -0
- package/js/processSubjectComponent.function.js.map +1 -0
- package/js/processSubjectValue.function.d.ts +16 -0
- package/js/processSubjectValue.function.js +122 -0
- package/js/processSubjectValue.function.js.map +1 -0
- package/js/processTagArray.d.ts +5 -1
- package/js/processTagArray.js +21 -10
- package/js/processTagArray.js.map +1 -1
- package/js/processTagResult.function.d.ts +10 -0
- package/js/processTagResult.function.js +39 -0
- package/js/processTagResult.function.js.map +1 -0
- package/js/providers.d.ts +4 -12
- package/js/providers.js +28 -20
- package/js/providers.js.map +1 -1
- package/js/redrawTag.function.d.ts +7 -0
- package/js/redrawTag.function.js +8 -0
- package/js/redrawTag.function.js.map +1 -0
- package/js/render.d.ts +1 -6
- package/js/render.js +5 -19
- package/js/render.js.map +1 -1
- package/js/renderAppToElement.d.ts +8 -2
- package/js/renderAppToElement.js +40 -21
- package/js/renderAppToElement.js.map +1 -1
- package/js/setUse.function.d.ts +23 -0
- package/js/setUse.function.js +14 -0
- package/js/setUse.function.js.map +1 -0
- package/js/state.d.ts +14 -11
- package/js/state.js +68 -33
- package/js/state.js.map +1 -1
- package/js/tag.d.ts +6 -16
- package/js/tag.js +32 -43
- package/js/tag.js.map +1 -1
- package/js/tagElement.d.ts +14 -0
- package/js/tagElement.js +57 -0
- package/js/tagElement.js.map +1 -0
- package/js/tagGateway.function.d.ts +14 -0
- package/js/tagGateway.function.js +138 -0
- package/js/tagGateway.function.js.map +1 -0
- package/js/tagRunner.d.ts +2 -13
- package/js/tagRunner.js +12 -12
- package/js/tagRunner.js.map +1 -1
- package/js/templater.utils.d.ts +27 -0
- package/js/templater.utils.js +98 -0
- package/js/templater.utils.js.map +1 -0
- package/js/updateTag.utils.d.ts +6 -0
- package/js/updateTag.utils.js +102 -0
- package/js/updateTag.utils.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,42 +1,38 @@
|
|
|
1
1
|
import { interpolateTemplate } from "./interpolateTemplate.js";
|
|
2
|
+
const templateSearch = new RegExp('\\s*<template interpolate end id="__tagvar(\\d{1,4})"([^>]*)></template>(\\s*)');
|
|
2
3
|
/** Returns subscriptions[] that will need to be unsubscribed from when element is destroyed */
|
|
3
|
-
export function interpolateContentTemplates(element,
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
export function interpolateContentTemplates(element, // <div><div></div><template tag-wrap="22">...</template></div>
|
|
5
|
+
variable, tag, options, children) {
|
|
6
|
+
if (!children || element.tagName === 'TEMPLATE') {
|
|
7
|
+
return []; // done
|
|
6
8
|
}
|
|
7
9
|
const counts = {
|
|
8
10
|
added: 0,
|
|
9
11
|
removed: 0,
|
|
10
12
|
};
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
const clones = [];
|
|
14
|
+
const childArray = new Array(...children);
|
|
15
|
+
if (element.tagName === 'TEXTAREA') {
|
|
16
|
+
scanTextAreaValue(element);
|
|
17
|
+
}
|
|
18
|
+
childArray.forEach(child => {
|
|
19
|
+
const nextClones = interpolateTemplate(child, variable, tag, counts, options);
|
|
20
|
+
if (child.tagName === 'TEXTAREA') {
|
|
21
|
+
scanTextAreaValue(child);
|
|
22
|
+
}
|
|
23
|
+
clones.push(...nextClones);
|
|
14
24
|
if (child.children) {
|
|
15
25
|
const nextKids = new Array(...child.children);
|
|
16
|
-
nextKids.forEach(
|
|
26
|
+
nextKids.forEach(subChild => {
|
|
17
27
|
if (isRenderEndTemplate(subChild)) {
|
|
18
|
-
|
|
28
|
+
interpolateTemplate(subChild, variable, tag, counts, options);
|
|
19
29
|
}
|
|
20
|
-
interpolateContentTemplates(subChild, variable,
|
|
30
|
+
const nextClones = interpolateContentTemplates(subChild, variable, tag, options, subChild.children);
|
|
31
|
+
clones.push(...nextClones);
|
|
21
32
|
});
|
|
22
33
|
}
|
|
23
34
|
});
|
|
24
|
-
|
|
25
|
-
children.forEach((child, subIndex) => {
|
|
26
|
-
if (subIndex < index) {
|
|
27
|
-
return; // too low
|
|
28
|
-
}
|
|
29
|
-
if (child.tagName !== 'TEMPLATE') {
|
|
30
|
-
return; // not a template
|
|
31
|
-
}
|
|
32
|
-
if (child.getAttribute('interpolate') === undefined || child.getAttribute('end') === undefined) {
|
|
33
|
-
return; // not a rendering template
|
|
34
|
-
}
|
|
35
|
-
return child;
|
|
36
|
-
});
|
|
37
|
-
interpolateTemplate(child, variable, ownerTag, counts);
|
|
38
|
-
}
|
|
39
|
-
return;
|
|
35
|
+
return clones;
|
|
40
36
|
}
|
|
41
37
|
function isRenderEndTemplate(child) {
|
|
42
38
|
const isTemplate = child.tagName === 'TEMPLATE';
|
|
@@ -44,4 +40,15 @@ function isRenderEndTemplate(child) {
|
|
|
44
40
|
child.getAttribute('interpolate') !== undefined &&
|
|
45
41
|
child.getAttribute('end') !== undefined;
|
|
46
42
|
}
|
|
43
|
+
function scanTextAreaValue(textarea) {
|
|
44
|
+
const value = textarea.value;
|
|
45
|
+
if (value.search(templateSearch) >= 0) {
|
|
46
|
+
const match = value.match(/__tagvar(\d{1,4})/);
|
|
47
|
+
const result = match ? match[0] : '';
|
|
48
|
+
const token = '{' + result + '}';
|
|
49
|
+
// textarea.value = token
|
|
50
|
+
textarea.value = '';
|
|
51
|
+
textarea.setAttribute('textVarValue', token);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
47
54
|
//# sourceMappingURL=interpolateContentTemplates.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interpolateContentTemplates.js","sourceRoot":"","sources":["../ts/interpolateContentTemplates.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"interpolateContentTemplates.js","sourceRoot":"","sources":["../ts/interpolateContentTemplates.ts"],"names":[],"mappings":"AAGA,OAAO,EAAoB,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAEhF,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,gFAAgF,CAAC,CAAA;AAEnH,+FAA+F;AAC/F,MAAM,UAAU,2BAA2B,CACzC,OAAgB,EAAE,+DAA+D;AACjF,QAAa,EACb,GAAQ,EACR,OAA2B,EAC3B,QAAwB;IAGxB,IAAK,CAAC,QAAQ,IAAI,OAAO,CAAC,OAAO,KAAK,UAAU,EAAG,CAAC;QAClD,OAAO,EAAE,CAAA,CAAC,OAAO;IACnB,CAAC;IAED,MAAM,MAAM,GAAW;QACrB,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,CAAC;KACX,CAAA;IACD,MAAM,MAAM,GAAW,EAAE,CAAA;IAEzB,MAAM,UAAU,GAAG,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAA;IAEzC,IAAG,OAAO,CAAC,OAAO,KAAG,UAAU,EAAE,CAAC;QAChC,iBAAiB,CAAC,OAA8B,CAAC,CAAA;IACnD,CAAC;IAED,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACzB,MAAM,UAAU,GAAG,mBAAmB,CACpC,KAAiB,EACjB,QAAQ,EACR,GAAG,EACH,MAAM,EACN,OAAO,CACR,CAAA;QAED,IAAG,KAAK,CAAC,OAAO,KAAG,UAAU,EAAE,CAAC;YAC9B,iBAAiB,CAAC,KAA4B,CAAC,CAAA;QACjD,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAA;QAE1B,IAAK,KAAK,CAAC,QAAQ,EAAG,CAAC;YACrB,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;YAC7C,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAC1B,IAAK,mBAAmB,CAAC,QAAQ,CAAC,EAAG,CAAC;oBACpC,mBAAmB,CAAC,QAAoB,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;gBAC3E,CAAC;gBAED,MAAM,UAAU,GAAG,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAA;gBACnG,MAAM,CAAC,IAAI,CAAE,GAAG,UAAU,CAAE,CAAA;YAC9B,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,KAAG,UAAU,CAAA;IAC7C,OAAO,UAAU;QACjB,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,SAAS;QAC/C,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,SAAS,CAAA;AACzC,CAAC;AAED,SAAS,iBAAiB,CAAC,QAA6B;IACtD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAA;IAC5B,IAAI,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,IAAG,CAAC,EAAG,CAAC;QACtC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACpC,MAAM,KAAK,GAAG,GAAG,GAAG,MAAM,GAAG,GAAG,CAAA;QAChC,yBAAyB;QACzB,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAA;QACnB,QAAQ,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;IAC9C,CAAC;AACH,CAAC"}
|
|
@@ -1,14 +1,9 @@
|
|
|
1
|
-
import { Context, Tag } from "./Tag.class.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
* @param {Tag} ownerTag
|
|
7
|
-
*/
|
|
8
|
-
export declare function interpolateElement(element: Element, context: Context, // variables used to evaluate
|
|
9
|
-
ownerTag: Tag): void;
|
|
10
|
-
/** Convert interpolations into template tags */
|
|
11
|
-
export declare function interpolateElementChild(child: Element): {
|
|
12
|
-
string: string;
|
|
13
|
-
keys: string[];
|
|
1
|
+
import { Context, Tag, TagTemplate } from "./Tag.class.js";
|
|
2
|
+
import { Clones } from "./Clones.type.js";
|
|
3
|
+
export type InterpolateOptions = {
|
|
4
|
+
/** make the element go on document */
|
|
5
|
+
forceElement?: boolean;
|
|
14
6
|
};
|
|
7
|
+
export declare function interpolateElement(element: Element, context: Context, // variables used to evaluate
|
|
8
|
+
interpolatedTemplates: TagTemplate, tagOwner: Tag, options: InterpolateOptions): Clones;
|
|
9
|
+
export declare function interpolateString(string: string): import("./interpolations.js").InterpolatedTemplates;
|
package/js/interpolateElement.js
CHANGED
|
@@ -2,34 +2,38 @@ import { interpolateAttributes } from "./interpolateAttributes.js";
|
|
|
2
2
|
import { interpolateToTemplates } from "./interpolations.js";
|
|
3
3
|
import { interpolateContentTemplates } from "./interpolateContentTemplates.js";
|
|
4
4
|
import { escapeSearch, variablePrefix } from "./Tag.class.js";
|
|
5
|
-
/**
|
|
6
|
-
*
|
|
7
|
-
* @param {*} element
|
|
8
|
-
* @param {*} context
|
|
9
|
-
* @param {Tag} ownerTag
|
|
10
|
-
*/
|
|
11
5
|
export function interpolateElement(element, context, // variables used to evaluate
|
|
12
|
-
|
|
13
|
-
const
|
|
6
|
+
interpolatedTemplates, tagOwner, options) {
|
|
7
|
+
const clones = [];
|
|
8
|
+
const result = interpolatedTemplates.interpolation; // interpolateElementChild(element)
|
|
9
|
+
// const result = interpolateElementChild(element)
|
|
10
|
+
const template = element.children[0];
|
|
11
|
+
const children = template.content.children;
|
|
14
12
|
if (result.keys.length) {
|
|
15
|
-
interpolateContentTemplates(element, context,
|
|
13
|
+
const nextClones = interpolateContentTemplates(element, context, tagOwner, options, children);
|
|
14
|
+
clones.push(...nextClones);
|
|
16
15
|
}
|
|
17
|
-
interpolateAttributes(element, context,
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
16
|
+
interpolateAttributes(element, context, tagOwner);
|
|
17
|
+
processChildrenAttributes(children, context, tagOwner);
|
|
18
|
+
return clones;
|
|
19
|
+
}
|
|
20
|
+
function processChildrenAttributes(children, context, ownerTag) {
|
|
21
|
+
new Array(...children).forEach(child => {
|
|
22
|
+
interpolateAttributes(child, context, ownerTag);
|
|
23
|
+
if (child.children) {
|
|
24
|
+
processChildrenAttributes(child.children, context, ownerTag);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
27
|
}
|
|
28
28
|
/** Convert interpolations into template tags */
|
|
29
|
-
|
|
30
|
-
const result =
|
|
31
|
-
result.string = result.string.replace(escapeSearch, variablePrefix);
|
|
29
|
+
function interpolateElementChild(child) {
|
|
30
|
+
const result = interpolateString(child.innerHTML);
|
|
32
31
|
child.innerHTML = result.string;
|
|
33
32
|
return result;
|
|
34
33
|
}
|
|
34
|
+
export function interpolateString(string) {
|
|
35
|
+
const result = interpolateToTemplates(string);
|
|
36
|
+
result.string = result.string.replace(escapeSearch, variablePrefix);
|
|
37
|
+
return result;
|
|
38
|
+
}
|
|
35
39
|
//# sourceMappingURL=interpolateElement.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interpolateElement.js","sourceRoot":"","sources":["../ts/interpolateElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAA;AAC9E,OAAO,
|
|
1
|
+
{"version":3,"file":"interpolateElement.js","sourceRoot":"","sources":["../ts/interpolateElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAA;AAC9E,OAAO,EAA6B,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAQxF,MAAM,UAAU,kBAAkB,CAChC,OAAgB,EAChB,OAAgB,EAAE,6BAA6B;AAC/C,qBAAkC,EAClC,QAAa,EACb,OAA2B;IAE3B,MAAM,MAAM,GAAG,EAAE,CAAA;IACjB,MAAM,MAAM,GAAG,qBAAqB,CAAC,aAAa,CAAA,CAAC,mCAAmC;IACtF,kDAAkD;IAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAwB,CAAA;IAC3D,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAA;IAE1C,IAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,2BAA2B,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC7F,MAAM,CAAC,IAAI,CAAE,GAAG,UAAU,CAAE,CAAA;IAC9B,CAAC;IAED,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IACjD,yBAAyB,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAEtD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,yBAAyB,CAChC,QAAwB,EACxB,OAAgB,EAChB,QAAa;IAEb,IAAI,KAAK,CAAC,GAAG,QAAe,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAC5C,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;QAE/C,IAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;YAClB,yBAAyB,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC9D,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,gDAAgD;AAChD,SAAS,uBAAuB,CAC9B,KAAc;IAEd,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IACjD,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAA;IAC/B,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAA;IAC7C,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,cAAc,CAAC,CAAA;IACnE,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -1,21 +1,17 @@
|
|
|
1
|
-
import { Context, Tag } from "./Tag.class.js";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { Context, ElementBuildOptions, Tag } from "./Tag.class.js";
|
|
2
|
+
import { InterpolateOptions } from "./interpolateElement.js";
|
|
3
|
+
import { Clones } from "./Clones.type.js";
|
|
4
|
+
export type Template = Element & {
|
|
5
|
+
clone: any;
|
|
6
|
+
};
|
|
7
|
+
export declare function interpolateTemplate(template: Template, // <template end interpolate /> (will be removed)
|
|
8
|
+
context: Context, // variable scope of {`__tagvar${index}`:'x'}
|
|
9
|
+
tag: Tag, // Tag class
|
|
10
|
+
counts: Counts, // {added:0, removed:0}
|
|
11
|
+
options: InterpolateOptions): Clones;
|
|
12
|
+
export declare function updateBetweenTemplates(value: string | undefined | boolean | number, lastFirstChild: Element): Text;
|
|
10
13
|
export type Counts = {
|
|
11
|
-
added:
|
|
12
|
-
removed:
|
|
14
|
+
added: number;
|
|
15
|
+
removed: number;
|
|
13
16
|
};
|
|
14
|
-
|
|
15
|
-
export declare function processTagResult(tag: Tag, result: any, // used for recording past and current value
|
|
16
|
-
insertBefore: Element, // <template end interpolate />
|
|
17
|
-
{ index, counts, }: {
|
|
18
|
-
index?: number;
|
|
19
|
-
counts: Counts;
|
|
20
|
-
}): void;
|
|
21
|
-
export declare function isTagComponent(value: unknown | TemplaterResult): boolean;
|
|
17
|
+
export declare function afterElmBuild(elm: Element | ChildNode, options: ElementBuildOptions): void;
|
|
@@ -1,98 +1,37 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Tag, variablePrefix } from "./Tag.class.js";
|
|
3
|
-
import { Subject } from "./Subject.js";
|
|
4
|
-
import { processTagArray } from "./processTagArray.js";
|
|
5
|
-
import { getTagSupport } from "./getTagSupport.js";
|
|
6
|
-
import { deepClone, deepEqual } from "./deepFunctions.js";
|
|
7
|
-
import { config as providers } from "./providers.js";
|
|
1
|
+
import { variablePrefix } from "./Tag.class.js";
|
|
8
2
|
import { elementInitCheck } from "./elementInitCheck.js";
|
|
9
|
-
import {
|
|
10
|
-
import { TemplaterResult } from "./tag.js";
|
|
3
|
+
import { processSubjectValue } from "./processSubjectValue.function.js";
|
|
11
4
|
export function interpolateTemplate(template, // <template end interpolate /> (will be removed)
|
|
12
|
-
context, // variable scope of {`
|
|
13
|
-
|
|
14
|
-
counts
|
|
5
|
+
context, // variable scope of {`__tagvar${index}`:'x'}
|
|
6
|
+
tag, // Tag class
|
|
7
|
+
counts, // {added:0, removed:0}
|
|
8
|
+
options) {
|
|
9
|
+
const clones = [];
|
|
15
10
|
if (!template.hasAttribute('end')) {
|
|
16
|
-
return; // only care about starts
|
|
11
|
+
return clones; // only care about starts
|
|
17
12
|
}
|
|
18
13
|
const variableName = template.getAttribute('id');
|
|
19
14
|
if (variableName?.substring(0, variablePrefix.length) !== variablePrefix) {
|
|
20
|
-
return; // ignore, not a tagVar
|
|
15
|
+
return clones; // ignore, not a tagVar
|
|
21
16
|
}
|
|
22
17
|
const result = context[variableName];
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}, 0);
|
|
30
|
-
};
|
|
31
|
-
const sub = result.subscribe(callback);
|
|
32
|
-
ownerTag.cloneSubs.push(sub);
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
const clone = updateBetweenTemplates(result, template.clone || template);
|
|
36
|
-
ownerTag.clones.push(clone);
|
|
37
|
-
template.clone = clone;
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
*
|
|
42
|
-
* @param {*} value
|
|
43
|
-
* @param {*} result
|
|
44
|
-
* @param {*} template
|
|
45
|
-
* @param {Tag} ownerTag
|
|
46
|
-
* @param {{added: number, removed: number}} counts
|
|
47
|
-
* @returns
|
|
48
|
-
*/
|
|
49
|
-
function processSubjectValue(value, result, // could be tag via result.tag
|
|
50
|
-
template, // <template end interpolate /> (will be removed)
|
|
51
|
-
ownerTag, counts) {
|
|
52
|
-
if (value instanceof Tag) {
|
|
53
|
-
// first time seeing this tag?
|
|
54
|
-
if (!value.tagSupport) {
|
|
55
|
-
value.tagSupport = getTagSupport();
|
|
56
|
-
value.tagSupport.mutatingRender = ownerTag.tagSupport.mutatingRender;
|
|
57
|
-
value.tagSupport.oldest = value.tagSupport.oldest || value;
|
|
58
|
-
ownerTag.children.push(value);
|
|
59
|
-
value.ownerTag = ownerTag;
|
|
18
|
+
// const isSubject = isSubjectInstance(result)
|
|
19
|
+
let isForceElement = options.forceElement;
|
|
20
|
+
const callback = (templateNewValue) => {
|
|
21
|
+
const { clones } = processSubjectValue(templateNewValue, result, template, tag, { counts, forceElement: isForceElement });
|
|
22
|
+
if (isForceElement) {
|
|
23
|
+
isForceElement = false; // only can happen once
|
|
60
24
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
return processSubjectComponent(value, result, template, ownerTag, counts);
|
|
72
|
-
}
|
|
73
|
-
// *if processing WAS a tag BUT NOW its some other non-tag value
|
|
74
|
-
if (result.tag) {
|
|
75
|
-
// put the template back
|
|
76
|
-
const lastFirstChild = template.clone || template; // result.tag.clones[0] // template.lastFirstChild
|
|
77
|
-
lastFirstChild.parentNode.insertBefore(template, lastFirstChild);
|
|
78
|
-
const stagger = counts.removed;
|
|
79
|
-
const animated = result.tag.destroy(stagger);
|
|
80
|
-
counts.removed = stagger + animated;
|
|
81
|
-
delete result.tag;
|
|
82
|
-
const clone = updateBetweenTemplates(value, lastFirstChild // ✅ this will be removed
|
|
83
|
-
); // the template will be remove in here
|
|
84
|
-
template.clone = clone;
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
const before = template.clone || template; // Either the template is on the doc OR its the first element we last put on doc
|
|
88
|
-
// Processing of regular values
|
|
89
|
-
const clone = updateBetweenTemplates(value, before);
|
|
90
|
-
template.clone = clone;
|
|
91
|
-
const oldPos = ownerTag.clones.indexOf(before);
|
|
92
|
-
if (oldPos >= 0 && !ownerTag.clones.includes(clone) && !before.parentNode) {
|
|
93
|
-
ownerTag.clones.splice(oldPos, 1);
|
|
94
|
-
ownerTag.clones.push(clone);
|
|
95
|
-
}
|
|
25
|
+
clones.push(...clones);
|
|
26
|
+
// TODO: See if we can remove
|
|
27
|
+
setTimeout(() => {
|
|
28
|
+
counts.added = 0; // reset
|
|
29
|
+
counts.removed = 0; // reset
|
|
30
|
+
}, 0);
|
|
31
|
+
};
|
|
32
|
+
const sub = result.subscribe(callback);
|
|
33
|
+
tag.cloneSubs.push(sub);
|
|
34
|
+
return clones;
|
|
96
35
|
}
|
|
97
36
|
// Function to update the value of x
|
|
98
37
|
export function updateBetweenTemplates(value, lastFirstChild) {
|
|
@@ -106,157 +45,20 @@ export function updateBetweenTemplates(value, lastFirstChild) {
|
|
|
106
45
|
parent.insertBefore(textNode, lastFirstChild);
|
|
107
46
|
/* remove existing nodes */
|
|
108
47
|
parent.removeChild(lastFirstChild);
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
/** Returns {clones:[], subs:[]} */
|
|
112
|
-
export function processTagResult(tag, result, // used for recording past and current value
|
|
113
|
-
insertBefore, // <template end interpolate />
|
|
114
|
-
{ index, counts, }) {
|
|
115
|
-
const template = tag.getTemplate();
|
|
116
|
-
// *for
|
|
117
|
-
if (index !== undefined) {
|
|
118
|
-
const existing = result.lastArray[index];
|
|
119
|
-
if (existing?.tag.isLikeTag(tag)) {
|
|
120
|
-
existing.tag.updateByTag(tag);
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
|
-
const lastFirstChild = insertBefore; // tag.clones[0] // insertBefore.lastFirstChild
|
|
124
|
-
const clones = buildItemTagMap(tag, template, lastFirstChild);
|
|
125
|
-
clones.forEach(clone => afterElmBuild(clone, counts));
|
|
126
|
-
result.lastArray.push({
|
|
127
|
-
tag, index
|
|
128
|
-
});
|
|
129
|
-
return;
|
|
48
|
+
if (lastFirstChild.nodeName === 'TEMPLATE') {
|
|
49
|
+
lastFirstChild.setAttribute('removedAt', Date.now().toString());
|
|
130
50
|
}
|
|
131
|
-
|
|
132
|
-
if (result.tag) {
|
|
133
|
-
// are we just updating an if we already had?
|
|
134
|
-
if (result.tag.isLikeTag(tag)) {
|
|
135
|
-
// components
|
|
136
|
-
if (result instanceof Function) {
|
|
137
|
-
const newTag = result(result.tag.tagSupport);
|
|
138
|
-
result.tag.updateByTag(newTag);
|
|
139
|
-
return;
|
|
140
|
-
}
|
|
141
|
-
result.tag.updateByTag(tag);
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
// *if just now appearing to be a Tag
|
|
146
|
-
const before = insertBefore.clone || insertBefore;
|
|
147
|
-
const clones = buildItemTagMap(tag, template, before);
|
|
148
|
-
clones.forEach(clone => afterElmBuild(clone, counts));
|
|
149
|
-
result.tag = tag; // let reprocessing know we saw this previously as an if
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
152
|
-
export function isTagComponent(value) {
|
|
153
|
-
return value instanceof TemplaterResult;
|
|
154
|
-
}
|
|
155
|
-
function processSubjectComponent(value, result, template, ownerTag, counts) {
|
|
156
|
-
if (value.tagged !== true) {
|
|
157
|
-
let name = value.name || value.constructor?.name;
|
|
158
|
-
if (name === 'Function') {
|
|
159
|
-
name = undefined;
|
|
160
|
-
}
|
|
161
|
-
const error = new Error(`Not a tag component. Wrap your function with tag(). Example tag(props => html\`\`) on component:\n\n${name || value.toString().substring(0, 120)}\n\n`);
|
|
162
|
-
throw error;
|
|
163
|
-
}
|
|
164
|
-
/** @type {TagSupport} */
|
|
165
|
-
const tagSupport = result.tagSupport || getTagSupport(value);
|
|
166
|
-
tagSupport.mutatingRender = () => {
|
|
167
|
-
const preRenderCount = tagSupport.renderCount;
|
|
168
|
-
// Is this NOT my first render
|
|
169
|
-
if (result.tag) {
|
|
170
|
-
providersChangeCheck(result.tag);
|
|
171
|
-
// When the providers were checked, a render to myself occurred and I do not need to re-render again
|
|
172
|
-
if (preRenderCount !== tagSupport.renderCount) {
|
|
173
|
-
return tagSupport.newest;
|
|
174
|
-
}
|
|
175
|
-
const hasPropsChanged = tagSupport.hasPropChanges(value.props, value.newProps, result.tag.tagSupport.templater.props);
|
|
176
|
-
if (!hasPropsChanged) {
|
|
177
|
-
tagSupport.newest = value.redraw(value.newProps); // No change detected, just redraw me only
|
|
178
|
-
return tagSupport.newest;
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
// draw to my parent
|
|
182
|
-
const newest = tagSupport.newest = ownerTag.tagSupport.render();
|
|
183
|
-
return newest;
|
|
184
|
-
};
|
|
185
|
-
const templater = value;
|
|
186
|
-
let tag = templater.newest;
|
|
187
|
-
providers.ownerTag = ownerTag;
|
|
188
|
-
const isFirstTime = !tag;
|
|
189
|
-
runBeforeRender(tagSupport, tag);
|
|
190
|
-
if (isFirstTime) {
|
|
191
|
-
tag = templater.wrapper();
|
|
192
|
-
tag.tagSupport = tagSupport;
|
|
193
|
-
tag.afterRender();
|
|
194
|
-
templater.oldest = tag;
|
|
195
|
-
tagSupport.oldest = tag;
|
|
196
|
-
value.oldest = tag;
|
|
197
|
-
}
|
|
198
|
-
templater.newest = tag;
|
|
199
|
-
tag.ownerTag = ownerTag;
|
|
200
|
-
tag.ownerTag = ownerTag;
|
|
201
|
-
ownerTag.children.push(tag);
|
|
202
|
-
tag.setSupport(tagSupport);
|
|
203
|
-
processTagResult(tag, result, // The element set here will be removed from document
|
|
204
|
-
template, // <template end interpolate /> (will be removed)
|
|
205
|
-
{
|
|
206
|
-
counts,
|
|
207
|
-
});
|
|
208
|
-
return;
|
|
51
|
+
return textNode;
|
|
209
52
|
}
|
|
210
|
-
function afterElmBuild(elm,
|
|
53
|
+
export function afterElmBuild(elm, options) {
|
|
211
54
|
if (!elm.getAttribute) {
|
|
212
55
|
return;
|
|
213
56
|
}
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
new Array(...elm.children).forEach(child => afterElmBuild(child, counts));
|
|
57
|
+
if (!options.forceElement) {
|
|
58
|
+
elementInitCheck(elm, options.counts);
|
|
217
59
|
}
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
const providersWithChanges = tag.providers.filter(provider => {
|
|
221
|
-
return !deepEqual(provider.instance, provider.clone);
|
|
222
|
-
});
|
|
223
|
-
// reset clones
|
|
224
|
-
providersWithChanges.forEach(provider => {
|
|
225
|
-
const appElement = tag.getAppElement();
|
|
226
|
-
handleProviderChanges(appElement, provider);
|
|
227
|
-
provider.clone = deepClone(provider.instance);
|
|
228
|
-
});
|
|
229
|
-
}
|
|
230
|
-
/**
|
|
231
|
-
*
|
|
232
|
-
* @param {Tag} appElement
|
|
233
|
-
* @param {Provider} provider
|
|
234
|
-
*/
|
|
235
|
-
function handleProviderChanges(appElement, provider) {
|
|
236
|
-
const tagsWithProvider = getTagsWithProvider(appElement, provider);
|
|
237
|
-
tagsWithProvider.forEach(({ tag, renderCount, provider }) => {
|
|
238
|
-
if (renderCount === tag.tagSupport.renderCount) {
|
|
239
|
-
provider.clone = deepClone(provider.instance);
|
|
240
|
-
tag.tagSupport.render();
|
|
241
|
-
}
|
|
242
|
-
});
|
|
243
|
-
}
|
|
244
|
-
/**
|
|
245
|
-
*
|
|
246
|
-
* @param {Tag} appElement
|
|
247
|
-
* @param {Provider} provider
|
|
248
|
-
* @returns {{tag: Tag, renderCount: numer, provider: Provider}[]}
|
|
249
|
-
*/
|
|
250
|
-
function getTagsWithProvider(tag, provider, memory = []) {
|
|
251
|
-
const hasProvider = tag.providers.find(xProvider => xProvider.constructMethod === provider.constructMethod);
|
|
252
|
-
if (hasProvider) {
|
|
253
|
-
memory.push({
|
|
254
|
-
tag,
|
|
255
|
-
renderCount: tag.tagSupport.renderCount,
|
|
256
|
-
provider: hasProvider
|
|
257
|
-
});
|
|
60
|
+
if (elm.children) {
|
|
61
|
+
new Array(...elm.children).forEach(child => afterElmBuild(child, options));
|
|
258
62
|
}
|
|
259
|
-
tag.children.forEach(child => getTagsWithProvider(child, provider, memory));
|
|
260
|
-
return memory;
|
|
261
63
|
}
|
|
262
64
|
//# sourceMappingURL=interpolateTemplate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interpolateTemplate.js","sourceRoot":"","sources":["../ts/interpolateTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"interpolateTemplate.js","sourceRoot":"","sources":["../ts/interpolateTemplate.ts"],"names":[],"mappings":"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"}
|
package/js/interpolations.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export declare const interpolateReplace: RegExp;
|
|
2
|
-
|
|
3
|
-
export declare function interpolateToTemplates(template: string): {
|
|
2
|
+
export type InterpolatedTemplates = {
|
|
4
3
|
string: string;
|
|
5
4
|
keys: string[];
|
|
6
5
|
};
|
|
6
|
+
/** replaces ${x} with <template id="x-start"></template><template id="x-end"></template> */
|
|
7
|
+
export declare function interpolateToTemplates(template: string): InterpolatedTemplates;
|
package/js/interpolations.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
// support arrow functions in attributes
|
|
2
|
+
export const interpolateReplace = /(?:<[^>]*?(?:(?:\s+\w+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^>\s]+)))*\s*)\/?>)|({__tagvar[^}]+})/g;
|
|
2
3
|
/** replaces ${x} with <template id="x-start"></template><template id="x-end"></template> */
|
|
3
4
|
export function interpolateToTemplates(template) {
|
|
4
5
|
const keys = [];
|
package/js/interpolations.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interpolations.js","sourceRoot":"","sources":["../ts/interpolations.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,
|
|
1
|
+
{"version":3,"file":"interpolations.js","sourceRoot":"","sources":["../ts/interpolations.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,MAAM,CAAC,MAAM,kBAAkB,GAAG,4FAA4F,CAAA;AAU9H,4FAA4F;AAC5F,MAAM,UAAU,sBAAsB,CACpC,QAAgB;IAEhB,MAAM,IAAI,GAAa,EAAE,CAAA;IACzB,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;QACxE,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,6CAA6C;YAC7C,OAAO,KAAK,CAAA;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,GAAC,CAAC,CAAC,CAAA;QAC7D,MAAM,EAAE,GAAG,QAAQ,CAAA;QACnB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACb,OAAO,iCAAiC,EAAE,eAAe,CAAA;IAC3D,CAAC,CAAC,CAAA;IAEF,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;AACzB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { SubjectLike } from "./Subject.js";
|
|
2
|
+
import { Tag } from "./Tag.class.js";
|
|
3
|
+
import { TemplaterResult } from "./templater.utils.js";
|
|
4
|
+
export declare function isTagComponent(value?: TemplaterResult): boolean;
|
|
5
|
+
export declare function isTagInstance(tag?: Tag | unknown): boolean;
|
|
6
|
+
export declare function isSubjectInstance(subject?: SubjectLike): Boolean;
|
package/js/isInstance.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export function isTagComponent(value) {
|
|
2
|
+
return value?.isTemplater === true;
|
|
3
|
+
}
|
|
4
|
+
export function isTagInstance(tag) {
|
|
5
|
+
return tag?.isTag === true;
|
|
6
|
+
}
|
|
7
|
+
export function isSubjectInstance(subject) {
|
|
8
|
+
return (subject?.isSubject === true || subject?.subscribe) ? true : false; // subject?.isSubject === true ||
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=isInstance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isInstance.js","sourceRoot":"","sources":["../ts/isInstance.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,cAAc,CAAC,KAAuB;IACpD,OAAO,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;AACpC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAmB;IAC/C,OAAQ,GAAW,EAAE,KAAK,KAAK,IAAI,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,OAAqB;IAErB,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type Clones = (Element | Text | ChildNode)[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Clones.type.js","sourceRoot":"","sources":["../ts/Clones.type.ts"],"names":[],"mappings":""}
|
package/js/js/Props.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type Props = unknown;
|
package/js/js/Props.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Props.js","sourceRoot":"","sources":["../ts/Props.ts"],"names":[],"mappings":""}
|