taggedjs 2.1.1 → 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 +17 -0
- package/js/Subject.js +43 -0
- package/js/Subject.js.map +1 -0
- package/js/Tag.class.d.ts +69 -0
- package/js/Tag.class.js +247 -0
- package/js/Tag.class.js.map +1 -0
- package/js/Tag.utils.d.ts +12 -0
- package/js/Tag.utils.js +31 -0
- package/js/Tag.utils.js.map +1 -0
- package/js/ValueSubject.d.ts +6 -0
- package/js/ValueSubject.js +15 -0
- package/js/ValueSubject.js.map +1 -0
- 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/deepFunctions.d.ts +2 -0
- package/js/deepFunctions.js +76 -0
- package/js/deepFunctions.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.d.ts +2 -0
- package/js/elementInitCheck.js +18 -0
- package/js/elementInitCheck.js.map +1 -0
- 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.d.ts +3 -0
- package/js/getCallback.js +50 -0
- package/js/getCallback.js.map +1 -0
- package/js/getTagSupport.d.ts +21 -0
- package/js/getTagSupport.js +109 -0
- package/js/getTagSupport.js.map +1 -0
- package/js/html.d.ts +2 -0
- package/js/html.js +5 -0
- package/js/html.js.map +1 -0
- package/js/index.d.ts +19 -0
- package/js/index.js +24 -0
- package/js/index.js.map +1 -0
- package/js/inputAttribute.d.ts +1 -0
- package/js/inputAttribute.js +19 -0
- package/js/inputAttribute.js.map +1 -0
- package/js/interpolateAttributes.d.ts +4 -0
- package/js/interpolateAttributes.js +135 -0
- package/js/interpolateAttributes.js.map +1 -0
- package/js/interpolateContentTemplates.d.ts +6 -0
- package/js/interpolateContentTemplates.js +54 -0
- package/js/interpolateContentTemplates.js.map +1 -0
- package/js/interpolateElement.d.ts +9 -0
- package/js/interpolateElement.js +39 -0
- package/js/interpolateElement.js.map +1 -0
- package/js/interpolateTemplate.d.ts +17 -0
- package/js/interpolateTemplate.js +64 -0
- package/js/interpolateTemplate.js.map +1 -0
- package/js/interpolations.d.ts +7 -0
- package/js/interpolations.js +18 -0
- package/js/interpolations.js.map +1 -0
- 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 +17 -0
- package/js/js/Subject.js +43 -0
- package/js/js/Subject.js.map +1 -0
- package/js/js/Tag.class.d.ts +67 -0
- package/js/js/Tag.class.js +241 -0
- package/js/js/Tag.class.js.map +1 -0
- package/js/js/Tag.utils.d.ts +12 -0
- package/js/js/Tag.utils.js +31 -0
- package/js/js/Tag.utils.js.map +1 -0
- package/js/js/ValueSubject.d.ts +6 -0
- package/js/js/ValueSubject.js +15 -0
- package/js/js/ValueSubject.js.map +1 -0
- 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/deepFunctions.d.ts +2 -0
- package/js/js/deepFunctions.js +76 -0
- package/js/js/deepFunctions.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.d.ts +2 -0
- package/js/js/elementInitCheck.js +18 -0
- package/js/js/elementInitCheck.js.map +1 -0
- package/js/js/getCallback.d.ts +3 -0
- package/js/js/getCallback.js +50 -0
- package/js/js/getCallback.js.map +1 -0
- package/js/js/getTagSupport.d.ts +22 -0
- package/js/js/getTagSupport.js +116 -0
- package/js/js/getTagSupport.js.map +1 -0
- package/js/js/html.d.ts +2 -0
- package/js/js/html.js +5 -0
- package/js/js/html.js.map +1 -0
- package/js/js/index.d.ts +19 -0
- package/js/js/index.js +24 -0
- package/js/js/index.js.map +1 -0
- package/js/js/inputAttribute.d.ts +1 -0
- package/js/js/inputAttribute.js +19 -0
- package/js/js/inputAttribute.js.map +1 -0
- package/js/js/interpolateAttributes.d.ts +4 -0
- package/js/js/interpolateAttributes.js +127 -0
- package/js/js/interpolateAttributes.js.map +1 -0
- package/js/js/interpolateContentTemplates.d.ts +5 -0
- package/js/js/interpolateContentTemplates.js +57 -0
- package/js/js/interpolateContentTemplates.js.map +1 -0
- package/js/js/interpolateElement.d.ts +9 -0
- package/js/js/interpolateElement.js +32 -0
- package/js/js/interpolateElement.js.map +1 -0
- package/js/js/interpolateTemplate.d.ts +17 -0
- package/js/js/interpolateTemplate.js +64 -0
- package/js/js/interpolateTemplate.js.map +1 -0
- package/js/js/interpolations.d.ts +8 -0
- package/js/js/interpolations.js +17 -0
- package/js/js/interpolations.js.map +1 -0
- 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 +2 -0
- package/js/js/onInit.js +19 -0
- package/js/js/onInit.js.map +1 -0
- 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 +9 -0
- package/js/js/processTagArray.js +60 -0
- package/js/js/processTagArray.js.map +1 -0
- 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 +17 -0
- package/js/js/providers.js +86 -0
- package/js/js/providers.js.map +1 -0
- 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 -0
- package/js/js/render.js +24 -0
- package/js/js/render.js.map +1 -0
- package/js/js/renderAppToElement.d.ts +14 -0
- package/js/js/renderAppToElement.js +57 -0
- package/js/js/renderAppToElement.js.map +1 -0
- 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 +24 -0
- package/js/js/state.js +98 -0
- package/js/js/state.js.map +1 -0
- package/js/js/tag.d.ts +8 -0
- package/js/js/tag.js +46 -0
- package/js/js/tag.js.map +1 -0
- 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 +6 -0
- package/js/js/tagRunner.js +19 -0
- package/js/js/tagRunner.js.map +1 -0
- 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/js/wait.d.ts +1 -0
- package/js/js/wait.js +8 -0
- package/js/js/wait.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 +2 -0
- package/js/onInit.js +19 -0
- package/js/onInit.js.map +1 -0
- 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 +9 -0
- package/js/processTagArray.js +60 -0
- package/js/processTagArray.js.map +1 -0
- 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 +17 -0
- package/js/providers.js +86 -0
- package/js/providers.js.map +1 -0
- 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 -0
- package/js/render.js +17 -0
- package/js/render.js.map +1 -0
- package/js/renderAppToElement.d.ts +14 -0
- package/js/renderAppToElement.js +57 -0
- package/js/renderAppToElement.js.map +1 -0
- 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 +24 -0
- package/js/state.js +98 -0
- package/js/state.js.map +1 -0
- package/js/tag.d.ts +7 -0
- package/js/tag.js +46 -0
- package/js/tag.js.map +1 -0
- 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 +6 -0
- package/js/tagRunner.js +19 -0
- package/js/tagRunner.js.map +1 -0
- 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/js/wait.d.ts +1 -0
- package/js/wait.js +8 -0
- package/js/wait.js.map +1 -0
- package/package.json +1 -1
|
@@ -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,20 @@
|
|
|
1
|
+
import { setUse } from "./setUse.function.js";
|
|
2
|
+
/** When undefined, it means a tag is being built for the first time so do run destroy(s) */
|
|
3
|
+
let destroyCurrentTagSupport;
|
|
4
|
+
export function onDestroy(callback) {
|
|
5
|
+
if (!destroyCurrentTagSupport.memory) {
|
|
6
|
+
console.error('xxx', destroyCurrentTagSupport);
|
|
7
|
+
}
|
|
8
|
+
destroyCurrentTagSupport.memory.destroyCallback = callback;
|
|
9
|
+
}
|
|
10
|
+
setUse({
|
|
11
|
+
beforeRender: tagSupport => destroyCurrentTagSupport = tagSupport,
|
|
12
|
+
beforeRedraw: tagSupport => destroyCurrentTagSupport = tagSupport,
|
|
13
|
+
beforeDestroy: (tagSupport, tag) => {
|
|
14
|
+
const callback = tagSupport.memory.destroyCallback;
|
|
15
|
+
if (callback) {
|
|
16
|
+
callback();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=onDestroy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onDestroy.js","sourceRoot":"","sources":["../ts/onDestroy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAI7C,4FAA4F;AAC5F,IAAI,wBAAoC,CAAA;AAExC,MAAM,UAAU,SAAS,CACvB,QAA2B;IAE3B,IAAG,CAAC,wBAAwB,CAAC,MAAM,EAAE,CAAC;QACpC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAC,wBAAwB,CAAC,CAAA;IAC/C,CAAC;IAED,wBAAwB,CAAC,MAAM,CAAC,eAAe,GAAG,QAAQ,CAAA;AAC5D,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,MAAM,CAAC,eAAe,CAAA;QAElD,IAAG,QAAQ,EAAE,CAAC;YACZ,QAAQ,EAAE,CAAA;QACZ,CAAC;IACH,CAAC;CACF,CAAC,CAAA"}
|
package/js/js/onInit.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { setUse } from "./setUse.function.js";
|
|
2
|
+
function setCurrentTagSupport(support) {
|
|
3
|
+
setUse.memory.initCurrentSupport = support;
|
|
4
|
+
}
|
|
5
|
+
export function onInit(callback) {
|
|
6
|
+
if (!setUse.memory.initCurrentSupport) {
|
|
7
|
+
console.warn('possible init issue?');
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
if (!setUse.memory.initCurrentSupport.memory.init) {
|
|
11
|
+
setUse.memory.initCurrentSupport.memory.init = callback;
|
|
12
|
+
callback(); // fire init
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
setUse({
|
|
16
|
+
beforeRender: tagSupport => setCurrentTagSupport(tagSupport),
|
|
17
|
+
beforeRedraw: tagSupport => setCurrentTagSupport(tagSupport),
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=onInit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onInit.js","sourceRoot":"","sources":["../ts/onInit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAI7C,SAAS,oBAAoB,CAAC,OAAmB;IAC/C,MAAM,CAAC,MAAM,CAAC,kBAAkB,GAAG,OAAO,CAAA;AAC5C,CAAC;AAED,MAAM,UAAU,MAAM,CACpB,QAAwB;IAExB,IAAG,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;QACpC,OAAM;IACR,CAAC;IAED,IAAG,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAA;QACvD,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,8 @@
|
|
|
1
|
+
import { TemplaterResult } from "./templater.utils.js";
|
|
2
|
+
import { Counts } from "./interpolateTemplate.js";
|
|
3
|
+
import { Tag } from "./Tag.class.js";
|
|
4
|
+
import { TagSubject } from "./Tag.utils.js";
|
|
5
|
+
export declare function processSubjectComponent(value: TemplaterResult, result: TagSubject, template: Element, ownerTag: Tag, options: {
|
|
6
|
+
counts: Counts;
|
|
7
|
+
forceElement?: boolean;
|
|
8
|
+
}): import("./Clones.type.js").Clones;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { runBeforeRedraw, runBeforeRender } from "./tagRunner.js";
|
|
2
|
+
import { setUse } from "./setUse.function.js";
|
|
3
|
+
import { processTagResult } from "./processTagResult.function.js";
|
|
4
|
+
export function processSubjectComponent(value, result, template, ownerTag, options) {
|
|
5
|
+
// TODO: This below check not needed in production mode
|
|
6
|
+
if (value.tagged !== true) {
|
|
7
|
+
let name = value.wrapper.original.name || value.wrapper.original.constructor?.name;
|
|
8
|
+
if (name === 'Function') {
|
|
9
|
+
name = undefined;
|
|
10
|
+
}
|
|
11
|
+
const label = name || value.wrapper.original.toString().substring(0, 120);
|
|
12
|
+
const error = new Error(`Not a tag component. Wrap your function with tag(). Example tag(props => html\`\`) on component:\n\n${label}\n\n`);
|
|
13
|
+
throw error;
|
|
14
|
+
}
|
|
15
|
+
const templater = value;
|
|
16
|
+
const tagSupport = value.tagSupport; // || getTagSupport(ownerTag.tagSupport.depth+1, templater )
|
|
17
|
+
tagSupport.mutatingRender = () => {
|
|
18
|
+
// Is this NOT my first render
|
|
19
|
+
if (result.tag) {
|
|
20
|
+
const exit = tagSupport.renderExistingTag(result.tag, templater);
|
|
21
|
+
if (exit) {
|
|
22
|
+
return result.tag;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
// draw to my parent
|
|
26
|
+
const newest = tagSupport.newest = ownerTag.tagSupport.render();
|
|
27
|
+
return newest;
|
|
28
|
+
};
|
|
29
|
+
let retag = templater.newest;
|
|
30
|
+
const providers = setUse.memory.providerConfig;
|
|
31
|
+
providers.ownerTag = ownerTag;
|
|
32
|
+
const isFirstTime = !retag || options.forceElement;
|
|
33
|
+
if (isFirstTime) {
|
|
34
|
+
if (!retag) {
|
|
35
|
+
runBeforeRender(tagSupport, ownerTag);
|
|
36
|
+
}
|
|
37
|
+
// only true when options.forceElement
|
|
38
|
+
if (retag) {
|
|
39
|
+
runBeforeRedraw(tagSupport, retag);
|
|
40
|
+
}
|
|
41
|
+
retag = templater.forceRenderTemplate(tagSupport, ownerTag);
|
|
42
|
+
}
|
|
43
|
+
ownerTag.children.push(retag);
|
|
44
|
+
tagSupport.latestProps = retag.tagSupport.props;
|
|
45
|
+
tagSupport.latestClonedProps = retag.tagSupport.clonedProps;
|
|
46
|
+
tagSupport.memory = retag.tagSupport.memory;
|
|
47
|
+
retag.setSupport(tagSupport);
|
|
48
|
+
const clones = processTagResult(retag, result, // The element set here will be removed from document. Also result.tag will be added in here
|
|
49
|
+
template, // <template end interpolate /> (will be removed)
|
|
50
|
+
options);
|
|
51
|
+
return clones;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=processSubjectComponent.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processSubjectComponent.function.js","sourceRoot":"","sources":["../ts/processSubjectComponent.function.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAEjE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAG7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAGjE,MAAM,UAAU,uBAAuB,CACrC,KAAsB,EACtB,MAAkB,EAClB,QAAiB,EACjB,QAAa,EACb,OAAiD;IAEjD,uDAAuD;IACvD,IAAG,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QACzB,IAAI,IAAI,GAAuB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAA;QAEtG,IAAG,IAAI,KAAK,UAAU,EAAE,CAAC;YACvB,IAAI,GAAG,SAAS,CAAA;QAClB,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAC,GAAG,CAAC,CAAA;QACxE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,uGAAuG,KAAK,MAAM,CAAC,CAAA;QAC3I,MAAM,KAAK,CAAA;IACb,CAAC;IAED,MAAM,SAAS,GAAG,KAAwB,CAAA;IAC1C,MAAM,UAAU,GAAe,KAAK,CAAC,UAAU,CAAA,CAAC,4DAA4D;IAE5G,UAAU,CAAC,cAAc,GAAG,GAAG,EAAE;QAC/B,8BAA8B;QAC9B,IAAG,MAAM,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,IAAI,GAAG,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;YAChE,IAAG,IAAI,EAAE,CAAC;gBACR,OAAO,MAAM,CAAC,GAAG,CAAA;YACnB,CAAC;QACH,CAAC;QAED,oBAAoB;QACpB,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,CAAA;QAC/D,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;IAED,IAAI,KAAK,GAAG,SAAS,CAAC,MAAa,CAAA;IAEnC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAA;IAC9C,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAE7B,MAAM,WAAW,GAAG,CAAC,KAAK,IAAI,OAAO,CAAC,YAAY,CAAA;IAElD,IAAG,WAAW,EAAE,CAAC;QACf,IAAG,CAAC,KAAK,EAAE,CAAC;YACV,eAAe,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QACvC,CAAC;QAED,sCAAsC;QACtC,IAAG,KAAK,EAAE,CAAC;YACT,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;QACpC,CAAC;QAED,KAAK,GAAG,SAAS,CAAC,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IAC7D,CAAC;IAED,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAE7B,UAAU,CAAC,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAA;IAC/C,UAAU,CAAC,iBAAiB,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAA;IAC3D,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAA;IAE3C,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;IAE5B,MAAM,MAAM,GAAG,gBAAgB,CAC7B,KAAK,EACL,MAAM,EAAE,4FAA4F;IACpG,QAAQ,EAAE,iDAAiD;IAC3D,OAAO,CACR,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Clones } from "./Clones.type.js";
|
|
2
|
+
import { Tag } from "./Tag.class.js";
|
|
3
|
+
import { Counts, Template } from "./interpolateTemplate.js";
|
|
4
|
+
type processOptions = {
|
|
5
|
+
forceElement?: boolean;
|
|
6
|
+
counts: Counts;
|
|
7
|
+
};
|
|
8
|
+
export type ClonesAndPromise = {
|
|
9
|
+
clones: Clones;
|
|
10
|
+
promise?: Promise<any>;
|
|
11
|
+
};
|
|
12
|
+
export declare function processSubjectValue(value: any, result: any, // could be tag via result.tag
|
|
13
|
+
template: Template, // <template end interpolate /> (will be removed)
|
|
14
|
+
tag: Tag, // owner
|
|
15
|
+
options: processOptions): ClonesAndPromise;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { processSubjectComponent } from "./processSubjectComponent.function.js";
|
|
2
|
+
import { processTagResult } from "./processTagResult.function.js";
|
|
3
|
+
import { isTagComponent, isTagInstance } from "./isInstance.js";
|
|
4
|
+
import { processTagArray } from "./processTagArray.js";
|
|
5
|
+
import { getTagSupport } from "./getTagSupport.js";
|
|
6
|
+
import { updateBetweenTemplates } from "./interpolateTemplate.js";
|
|
7
|
+
var ValueTypes;
|
|
8
|
+
(function (ValueTypes) {
|
|
9
|
+
ValueTypes["tag"] = "tag";
|
|
10
|
+
ValueTypes["tagArray"] = "tag-array";
|
|
11
|
+
ValueTypes["tagComponent"] = "tag-component";
|
|
12
|
+
ValueTypes["value"] = "value";
|
|
13
|
+
})(ValueTypes || (ValueTypes = {}));
|
|
14
|
+
function getValueType(value) {
|
|
15
|
+
if (isTagComponent(value)) {
|
|
16
|
+
return ValueTypes.tagComponent;
|
|
17
|
+
}
|
|
18
|
+
if (isTagInstance(value)) {
|
|
19
|
+
return ValueTypes.tag;
|
|
20
|
+
}
|
|
21
|
+
if (value instanceof Array && value.every(x => isTagInstance(x))) {
|
|
22
|
+
return ValueTypes.tagArray;
|
|
23
|
+
}
|
|
24
|
+
return ValueTypes.value;
|
|
25
|
+
}
|
|
26
|
+
export function processSubjectValue(value, result, // could be tag via result.tag
|
|
27
|
+
template, // <template end interpolate /> (will be removed)
|
|
28
|
+
tag, // owner
|
|
29
|
+
options) {
|
|
30
|
+
const valueType = getValueType(value);
|
|
31
|
+
// Previously was simple value, now its a tag of some sort
|
|
32
|
+
if (valueType !== ValueTypes.value && result.clone) {
|
|
33
|
+
const clone = result.clone;
|
|
34
|
+
const parent = clone.parentNode;
|
|
35
|
+
template.removeAttribute('removedAt');
|
|
36
|
+
parent.insertBefore(template, clone);
|
|
37
|
+
parent.removeChild(clone);
|
|
38
|
+
delete result.clone;
|
|
39
|
+
// result.clone = template
|
|
40
|
+
}
|
|
41
|
+
switch (valueType) {
|
|
42
|
+
case ValueTypes.tag:
|
|
43
|
+
return {
|
|
44
|
+
clones: processTag(value, result, template, tag, options)
|
|
45
|
+
};
|
|
46
|
+
case ValueTypes.tagArray:
|
|
47
|
+
return {
|
|
48
|
+
clones: processTagArray(result, value, template, tag, options)
|
|
49
|
+
};
|
|
50
|
+
case ValueTypes.tagComponent:
|
|
51
|
+
return {
|
|
52
|
+
clones: processSubjectComponent(value, result, template, tag, options)
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
// *if processing WAS a tag BUT NOW its some other non-tag value
|
|
56
|
+
if (result.tag) {
|
|
57
|
+
return {
|
|
58
|
+
clones: [],
|
|
59
|
+
promise: processWasTag(value, result, template, options),
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
clones: processRegularValue(value, result, template, tag)
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
function processRegularValue(value, result, // could be tag via result.tag
|
|
67
|
+
template, // <template end interpolate /> (will be removed)
|
|
68
|
+
tag) {
|
|
69
|
+
const before = result.clone || template; // Either the template is on the doc OR its the first element we last put on doc
|
|
70
|
+
// Processing of regular values
|
|
71
|
+
const clone = updateBetweenTemplates(value, before);
|
|
72
|
+
result.clone = clone; // remember single element put down, for future updates
|
|
73
|
+
const clones = [];
|
|
74
|
+
const oldPos = tag.clones.indexOf(before); // is the insertBefore guide being considered one of the tags clones?
|
|
75
|
+
const isOnlyGuideInClones = oldPos >= 0 && !tag.clones.includes(clone);
|
|
76
|
+
const exchangeGuideForClone = isOnlyGuideInClones && !before.parentNode; // guide is in clones AND guide is not on the document
|
|
77
|
+
if (exchangeGuideForClone) {
|
|
78
|
+
tag.clones.splice(oldPos, 1); // remove insertBefore guide from tag
|
|
79
|
+
tag.clones.push(clone); // exchange guide for element actually on document
|
|
80
|
+
clones.push(clone); // record the one element that in the end is on the document
|
|
81
|
+
}
|
|
82
|
+
return clones;
|
|
83
|
+
}
|
|
84
|
+
function processTag(value, result, // could be tag via result.tag
|
|
85
|
+
template, // <template end interpolate /> (will be removed)
|
|
86
|
+
tag, // owner
|
|
87
|
+
options) {
|
|
88
|
+
// first time seeing this tag?
|
|
89
|
+
if (!value.tagSupport) {
|
|
90
|
+
value.tagSupport = getTagSupport(tag.tagSupport.depth + 1, {});
|
|
91
|
+
// asking me to render will cause my parent to render
|
|
92
|
+
value.tagSupport.mutatingRender = tag.tagSupport.mutatingRender;
|
|
93
|
+
value.tagSupport.oldest = value.tagSupport.oldest || value;
|
|
94
|
+
tag.children.push(value);
|
|
95
|
+
value.ownerTag = tag;
|
|
96
|
+
}
|
|
97
|
+
const clones = processTagResult(value, result, // Function will attach result.tag
|
|
98
|
+
template, options);
|
|
99
|
+
return clones;
|
|
100
|
+
}
|
|
101
|
+
function processWasTag(value, result, // could be tag via result.tag,
|
|
102
|
+
template, // <template end interpolate /> (will be removed)
|
|
103
|
+
options) {
|
|
104
|
+
const tag = result.tag;
|
|
105
|
+
// put the template back
|
|
106
|
+
const lastFirstChild = result.clone || template; // result.tag.clones[0] // template.lastFirstChild
|
|
107
|
+
// const parentNode = lastFirstChild.parentNode || template.parentNode
|
|
108
|
+
// put the template back down
|
|
109
|
+
lastFirstChild.parentNode.insertBefore(template, lastFirstChild);
|
|
110
|
+
// cleanup old
|
|
111
|
+
if (result.clone) {
|
|
112
|
+
result.clone.parentNode.removeChild(result.clone);
|
|
113
|
+
}
|
|
114
|
+
delete result.tag;
|
|
115
|
+
const stagger = options.counts.removed;
|
|
116
|
+
const promise = tag.destroy({ stagger }).then(animated => options.counts.removed = stagger + animated);
|
|
117
|
+
delete result.tag;
|
|
118
|
+
const clone = updateBetweenTemplates(value, template);
|
|
119
|
+
result.clone = clone;
|
|
120
|
+
return promise;
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=processSubjectValue.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processSubjectValue.function.js","sourceRoot":"","sources":["../ts/processSubjectValue.function.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Clones } from "./Clones.type.js";
|
|
2
|
+
import { Tag } from "./Tag.class.js";
|
|
3
|
+
import { Counts } from "./interpolateTemplate.js";
|
|
4
|
+
export declare function processTagArray(result: any, value: Tag[], // arry of Tag classes
|
|
5
|
+
template: Element, // <template end interpolate />
|
|
6
|
+
ownerTag: Tag, options: {
|
|
7
|
+
counts: Counts;
|
|
8
|
+
forceElement?: boolean;
|
|
9
|
+
}): Clones;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { getTagSupport } from "./getTagSupport.js";
|
|
2
|
+
import { processTagResult } from "./processTagResult.function.js";
|
|
3
|
+
export function processTagArray(result, value, // arry of Tag classes
|
|
4
|
+
template, // <template end interpolate />
|
|
5
|
+
ownerTag, options) {
|
|
6
|
+
const clones = [];
|
|
7
|
+
result.lastArray = result.lastArray || []; // {tag, index}[] populated in processTagResult
|
|
8
|
+
let removed = 0;
|
|
9
|
+
/** 🗑️ remove previous items first */
|
|
10
|
+
result.lastArray = result.lastArray.filter((item, index) => {
|
|
11
|
+
const lessLength = value.length - 1 < index - removed;
|
|
12
|
+
const subTag = value[index - removed];
|
|
13
|
+
const subArrayValue = subTag?.arrayValue;
|
|
14
|
+
if (lessLength || subArrayValue !== item.tag.arrayValue) {
|
|
15
|
+
const last = result.lastArray[index];
|
|
16
|
+
const tag = last.tag;
|
|
17
|
+
tag.destroy({
|
|
18
|
+
stagger: options.counts.removed,
|
|
19
|
+
byParent: false
|
|
20
|
+
});
|
|
21
|
+
++removed;
|
|
22
|
+
++options.counts.removed;
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
return true;
|
|
26
|
+
});
|
|
27
|
+
// const masterBefore = template || (template as any).clone
|
|
28
|
+
const before = template || template.clone;
|
|
29
|
+
value.forEach((subTag, index) => {
|
|
30
|
+
subTag.tagSupport = getTagSupport(-1, {}); // {...ownerTag.tagSupport} // ownerTag.tagSupport.templater
|
|
31
|
+
subTag.tagSupport.mutatingRender = () => {
|
|
32
|
+
ownerTag.tagSupport.render();
|
|
33
|
+
return subTag;
|
|
34
|
+
}; // fake having a render function
|
|
35
|
+
subTag.ownerTag = ownerTag;
|
|
36
|
+
ownerTag.children.push(subTag);
|
|
37
|
+
if (subTag.arrayValue === undefined) {
|
|
38
|
+
// appears arrayValue is not there but maybe arrayValue is actually the value of undefined
|
|
39
|
+
if (!Object.keys(subTag).includes('arrayValue')) {
|
|
40
|
+
const err = new Error('Use html`...`.key(item) instead of html`...` to template an Array');
|
|
41
|
+
err.code = 'add-array-key';
|
|
42
|
+
throw err;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
const previous = result.lastArray[index];
|
|
46
|
+
if (previous) {
|
|
47
|
+
if (previous.tag.arrayValue === subTag.arrayValue) {
|
|
48
|
+
previous.tag.updateValues(subTag.values);
|
|
49
|
+
}
|
|
50
|
+
return [];
|
|
51
|
+
}
|
|
52
|
+
const nextClones = processTagResult(subTag, result, before, {
|
|
53
|
+
index,
|
|
54
|
+
...options,
|
|
55
|
+
});
|
|
56
|
+
clones.push(...nextClones);
|
|
57
|
+
});
|
|
58
|
+
return clones;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=processTagArray.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processTagArray.js","sourceRoot":"","sources":["../ts/processTagArray.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAE9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAGjE,MAAM,UAAU,eAAe,CAC7B,MAAW,EACX,KAAY,EAAE,sBAAsB;AACpC,QAAiB,EAAE,+BAA+B;AAClD,QAAa,EACb,OAAiD;IAEjD,MAAM,MAAM,GAAW,EAAE,CAAA;IACzB,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAA,CAAC,+CAA+C;IAEzF,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,sCAAsC;IACtC,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CACzC,IAAS,EACT,KAAa,EACb,EAAE;QACF,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,GAAC,CAAC,GAAG,KAAK,GAAG,OAAO,CAAA;QACnD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,CAAA;QACrC,MAAM,aAAa,GAAG,MAAM,EAAE,UAAU,CAAA;QAExC,IAAG,UAAU,IAAI,aAAa,KAAK,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;YACvD,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YACpC,MAAM,GAAG,GAAQ,IAAI,CAAC,GAAG,CAAA;YAEzB,GAAG,CAAC,OAAO,CAAC;gBACV,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;gBAC/B,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAA;YAEF,EAAE,OAAO,CAAA;YACT,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAA;YAExB,OAAO,KAAK,CAAA;QACd,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;IAEF,2DAA2D;IAC3D,MAAM,MAAM,GAAG,QAAQ,IAAK,QAAgB,CAAC,KAAK,CAAA;IAElD,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAC9B,MAAM,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,EAAqB,CAAC,CAAA,CAAC,4DAA4D;QAEzH,MAAM,CAAC,UAAU,CAAC,cAAc,GAAG,GAAG,EAAE;YACtC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,CAAA;YAC5B,OAAO,MAAM,CAAA;QACf,CAAC,CAAA,CAAC,gCAAgC;QAElC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAC1B,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAE9B,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACpC,0FAA0F;YAC1F,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBAChD,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,mEAAmE,CAAC,CACzF;gBAAC,GAAW,CAAC,IAAI,GAAG,eAAe,CAAA;gBACpC,MAAM,GAAG,CAAA;YACX,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QACxC,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,QAAQ,CAAC,GAAG,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC;gBAClD,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YAC1C,CAAC;YACD,OAAO,EAAE,CAAA;QACX,CAAC;QAED,MAAM,UAAU,GAAG,gBAAgB,CACjC,MAAM,EACN,MAAM,EACN,MAAM,EACN;YACE,KAAK;YACL,GAAG,OAAO;SACX,CACF,CAAA;QAED,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAA;IAC5B,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Tag } from "./Tag.class.js";
|
|
2
|
+
import { Clones } from "./Clones.type.js";
|
|
3
|
+
import { Counts } from "./interpolateTemplate.js";
|
|
4
|
+
export declare function processTagResult(tag: Tag, result: any, // used for recording past and current value
|
|
5
|
+
insertBefore: Element, // <template end interpolate />
|
|
6
|
+
{ index, counts, forceElement, }: {
|
|
7
|
+
index?: number;
|
|
8
|
+
counts: Counts;
|
|
9
|
+
forceElement?: boolean;
|
|
10
|
+
}): Clones;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export function processTagResult(tag, result, // used for recording past and current value
|
|
2
|
+
insertBefore, // <template end interpolate />
|
|
3
|
+
{ index, counts, forceElement, }) {
|
|
4
|
+
// *for
|
|
5
|
+
if (index !== undefined) {
|
|
6
|
+
const existing = result.lastArray[index];
|
|
7
|
+
if (existing?.tag.isLikeTag(tag)) {
|
|
8
|
+
existing.tag.updateByTag(tag);
|
|
9
|
+
return [];
|
|
10
|
+
}
|
|
11
|
+
const lastFirstChild = insertBefore; // tag.clones[0] // insertBefore.lastFirstChild
|
|
12
|
+
const clones = tag.buildBeforeElement(lastFirstChild, { counts, forceElement, depth: tag.tagSupport.depth + 1 });
|
|
13
|
+
result.lastArray.push({
|
|
14
|
+
tag, index
|
|
15
|
+
});
|
|
16
|
+
return clones;
|
|
17
|
+
}
|
|
18
|
+
// *if appears we already have seen
|
|
19
|
+
if (result.tag && !forceElement) {
|
|
20
|
+
// are we just updating an if we already had?
|
|
21
|
+
if (result.tag.isLikeTag(tag)) {
|
|
22
|
+
// components
|
|
23
|
+
if (result instanceof Function) {
|
|
24
|
+
const newTag = result(result.tag.tagSupport);
|
|
25
|
+
result.tag.updateByTag(newTag);
|
|
26
|
+
return [];
|
|
27
|
+
}
|
|
28
|
+
result.tag.updateByTag(tag);
|
|
29
|
+
return []; // no clones created in element already on stage
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// *if just now appearing to be a Tag
|
|
33
|
+
// const before = (insertBefore as any).clone || insertBefore
|
|
34
|
+
const clones = tag.buildBeforeElement(insertBefore, {
|
|
35
|
+
counts,
|
|
36
|
+
forceElement,
|
|
37
|
+
depth: tag.tagSupport.depth,
|
|
38
|
+
});
|
|
39
|
+
result.tag = tag; // let reprocessing know we saw this previously as an if
|
|
40
|
+
return clones;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=processTagResult.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processTagResult.function.js","sourceRoot":"","sources":["../ts/processTagResult.function.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,gBAAgB,CAC9B,GAAQ,EACR,MAAW,EAAE,4CAA4C;AACzD,YAAqB,EAAE,+BAA+B;AACtD,EACE,KAAK,EAAE,MAAM,EAAE,YAAY,GAK5B;IAED,OAAO;IACP,IAAG,KAAK,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QAExC,IAAG,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YAC7B,OAAO,EAAE,CAAA;QACX,CAAC;QAED,MAAM,cAAc,GAAG,YAAY,CAAA,CAAC,+CAA+C;QAEnF,MAAM,MAAM,GAAG,GAAG,CAAC,kBAAkB,CAAC,cAAc,EAAE,EAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,EAAC,CAAC,CAAA;QAE9G,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YACpB,GAAG,EAAE,KAAK;SACX,CAAC,CAAA;QAEF,OAAO,MAAM,CAAA;IACf,CAAC;IAED,mCAAmC;IACnC,IAAG,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAC/B,6CAA6C;QAC7C,IAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,aAAa;YACb,IAAG,MAAM,YAAY,QAAQ,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;gBAC5C,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;gBAC9B,OAAO,EAAE,CAAA;YACX,CAAC;YAED,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YAE3B,OAAO,EAAE,CAAA,CAAC,gDAAgD;QAC5D,CAAC;IACH,CAAC;IAED,qCAAqC;IACrC,6DAA6D;IAC7D,MAAM,MAAM,GAAG,GAAG,CAAC,kBAAkB,CAAC,YAAY,EAAE;QAClD,MAAM;QACN,YAAY;QACZ,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,KAAK;KAC5B,CAAC,CAAA;IACF,MAAM,CAAC,GAAG,GAAG,GAAG,CAAA,CAAC,wDAAwD;IAEzE,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export type Provider = {
|
|
2
|
+
constructMethod: any;
|
|
3
|
+
instance: any;
|
|
4
|
+
clone: any;
|
|
5
|
+
};
|
|
6
|
+
type functionProvider = <T>() => T;
|
|
7
|
+
type classProvider = new <T>(...args: any[]) => T;
|
|
8
|
+
export declare const providers: {
|
|
9
|
+
create: <T>(constructMethod: classProvider | functionProvider) => T;
|
|
10
|
+
/**
|
|
11
|
+
* @template T
|
|
12
|
+
* @param {(new (...args: any[]) => T) | () => T} constructor
|
|
13
|
+
* @returns {T}
|
|
14
|
+
*/
|
|
15
|
+
inject: (constructor: any) => any;
|
|
16
|
+
};
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { deepClone } from "./deepFunctions.js";
|
|
2
|
+
import { setUse } from "./setUse.function.js";
|
|
3
|
+
// TODO: rename
|
|
4
|
+
setUse.memory.providerConfig = {
|
|
5
|
+
providers: [],
|
|
6
|
+
currentTagSupport: undefined,
|
|
7
|
+
ownerTag: undefined,
|
|
8
|
+
};
|
|
9
|
+
function get(constructMethod) {
|
|
10
|
+
const config = setUse.memory.providerConfig;
|
|
11
|
+
const providers = config.providers;
|
|
12
|
+
return providers.find(provider => provider.constructMethod === constructMethod);
|
|
13
|
+
}
|
|
14
|
+
export const providers = {
|
|
15
|
+
create: (constructMethod) => {
|
|
16
|
+
const existing = get(constructMethod);
|
|
17
|
+
if (existing) {
|
|
18
|
+
existing.clone = deepClone(existing.instance);
|
|
19
|
+
return existing.instance;
|
|
20
|
+
}
|
|
21
|
+
// Providers with provider requirements just need to use providers.create() and providers.inject()
|
|
22
|
+
const instance = constructMethod.constructor ? new constructMethod() : constructMethod();
|
|
23
|
+
const config = setUse.memory.providerConfig;
|
|
24
|
+
config.providers.push({
|
|
25
|
+
constructMethod,
|
|
26
|
+
instance,
|
|
27
|
+
clone: deepClone(instance)
|
|
28
|
+
});
|
|
29
|
+
return instance;
|
|
30
|
+
},
|
|
31
|
+
/**
|
|
32
|
+
* @template T
|
|
33
|
+
* @param {(new (...args: any[]) => T) | () => T} constructor
|
|
34
|
+
* @returns {T}
|
|
35
|
+
*/
|
|
36
|
+
inject: (constructor) => {
|
|
37
|
+
const oldValue = get(constructor);
|
|
38
|
+
if (oldValue) {
|
|
39
|
+
return oldValue.instance;
|
|
40
|
+
}
|
|
41
|
+
const config = setUse.memory.providerConfig;
|
|
42
|
+
let owner = {
|
|
43
|
+
ownerTag: config.ownerTag
|
|
44
|
+
};
|
|
45
|
+
while (owner.ownerTag) {
|
|
46
|
+
const ownerProviders = owner.ownerTag.tagSupport.memory.providers;
|
|
47
|
+
const provider = ownerProviders.find(provider => {
|
|
48
|
+
if (provider.constructMethod === constructor) {
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
if (provider) {
|
|
53
|
+
provider.clone = deepClone(provider.instance); // keep a copy of the latest before any change occur
|
|
54
|
+
config.providers.push(provider);
|
|
55
|
+
return provider.instance;
|
|
56
|
+
}
|
|
57
|
+
owner = owner.ownerTag; // cause reloop
|
|
58
|
+
}
|
|
59
|
+
const msg = `Could not inject provider: ${constructor.name} ${constructor}`;
|
|
60
|
+
console.warn(`${msg}. Available providers`, config.providers);
|
|
61
|
+
throw new Error(msg);
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
setUse({
|
|
65
|
+
beforeRender: (tagSupport, ownerTag) => {
|
|
66
|
+
run(tagSupport, ownerTag);
|
|
67
|
+
},
|
|
68
|
+
beforeRedraw: (tagSupport, tag) => {
|
|
69
|
+
run(tagSupport, tag.ownerTag);
|
|
70
|
+
},
|
|
71
|
+
afterRender: (tagSupport) => {
|
|
72
|
+
const config = setUse.memory.providerConfig;
|
|
73
|
+
tagSupport.memory.providers = [...config.providers];
|
|
74
|
+
config.providers.length = 0;
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
function run(tagSupport, ownerTag) {
|
|
78
|
+
const config = setUse.memory.providerConfig;
|
|
79
|
+
config.currentTagSuport = tagSupport;
|
|
80
|
+
config.ownerTag = ownerTag;
|
|
81
|
+
if (tagSupport.memory.providers.length) {
|
|
82
|
+
config.providers.length = 0;
|
|
83
|
+
config.providers.push(...tagSupport.memory.providers);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=providers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../ts/providers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { TemplaterResult } from "./templater.utils.js";
|
|
2
|
+
import { Tag } from "./Tag.class.js";
|
|
3
|
+
export declare function redrawTag(existingTag: Tag | undefined, templater: TemplaterResult, // latest tag function to call for rendering
|
|
4
|
+
ownerTag?: Tag): {
|
|
5
|
+
remit: boolean;
|
|
6
|
+
retag: Tag;
|
|
7
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { getTagSupport } from "./getTagSupport.js";
|
|
2
|
+
export function redrawTag(existingTag, templater, // latest tag function to call for rendering
|
|
3
|
+
ownerTag) {
|
|
4
|
+
const depth = ownerTag?.tagSupport.depth || 0;
|
|
5
|
+
const tagSupport = existingTag?.tagSupport || getTagSupport(depth, templater);
|
|
6
|
+
const result = templater.renderWithSupport(tagSupport, existingTag, ownerTag);
|
|
7
|
+
return result;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=redrawTag.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redrawTag.function.js","sourceRoot":"","sources":["../ts/redrawTag.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAIlD,MAAM,UAAU,SAAS,CACvB,WAA4B,EAC5B,SAA0B,EAAE,4CAA4C;AACxE,QAAc;IAEd,MAAM,KAAK,GAAG,QAAQ,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC,CAAA;IAC7C,MAAM,UAAU,GAAG,WAAW,EAAE,UAAU,IAAI,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IAE7E,MAAM,MAAM,GAAG,SAAS,CAAC,iBAAiB,CACxC,UAAU,EACV,WAAW,EACX,QAAQ,CACT,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function buildClones(temporary: Element, insertBefore: Element): ChildNode[];
|
package/js/js/render.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export function buildClones(temporary, insertBefore) {
|
|
2
|
+
const clones = [];
|
|
3
|
+
const templateClone = temporary.children[0];
|
|
4
|
+
/*
|
|
5
|
+
if(!templateClone) {
|
|
6
|
+
return []
|
|
7
|
+
}
|
|
8
|
+
*/
|
|
9
|
+
const sibling = templateClone; // a div we added
|
|
10
|
+
let nextSibling = sibling.nextSibling;
|
|
11
|
+
temporary.removeChild(templateClone); // remove the div
|
|
12
|
+
while (nextSibling) {
|
|
13
|
+
const nextNextSibling = nextSibling.nextSibling;
|
|
14
|
+
buildSibling(nextSibling, insertBefore);
|
|
15
|
+
clones.push(nextSibling);
|
|
16
|
+
nextSibling = nextNextSibling;
|
|
17
|
+
}
|
|
18
|
+
return clones;
|
|
19
|
+
}
|
|
20
|
+
function buildSibling(nextSibling, insertBefore) {
|
|
21
|
+
const parentNode = insertBefore.parentNode;
|
|
22
|
+
parentNode.insertBefore(nextSibling, insertBefore);
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../ts/render.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,WAAW,CACzB,SAAkB,EAClB,YAAqB;IAErB,MAAM,MAAM,GAAG,EAAE,CAAA;IACjB,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IAE3C;;;;MAIE;IAEF,MAAM,OAAO,GAAG,aAAa,CAAA,CAAC,iBAAiB;IAC/C,IAAI,WAAW,GAAG,OAAO,CAAC,WAAW,CAAA;IACrC,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC,CAAA,CAAC,iBAAiB;IAEtD,OAAO,WAAW,EAAE,CAAC;QACnB,MAAM,eAAe,GAAG,WAAW,CAAC,WAAW,CAAA;QAC/C,YAAY,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;QACvC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACxB,WAAW,GAAG,eAAe,CAAA;IAC/B,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,YAAY,CACnB,WAAsB,EACtB,YAAqB;IAErB,MAAM,UAAU,GAAG,YAAY,CAAC,UAAwB,CAAA;IACxD,UAAU,CAAC,YAAY,CACrB,WAAW,EACX,YAAY,CACb,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TagSupport } from "./getTagSupport.js";
|
|
2
|
+
import { TagComponent, TemplaterResult } from "./templater.utils.js";
|
|
3
|
+
import { Tag } from "./Tag.class.js";
|
|
4
|
+
export declare function renderAppToElement(app: TagComponent, // (...args: unknown[]) => TemplaterResult,
|
|
5
|
+
element: Element, props: unknown): {
|
|
6
|
+
tag: Tag;
|
|
7
|
+
tags: TagComponent[];
|
|
8
|
+
};
|
|
9
|
+
export declare function applyTagUpdater(wrapper: TemplaterResult): {
|
|
10
|
+
tag: Tag;
|
|
11
|
+
tagSupport: TagSupport;
|
|
12
|
+
};
|
|
13
|
+
/** Overwrites arguments.tagSupport.mutatingRender */
|
|
14
|
+
export declare function addAppTagRender(tagSupport: TagSupport, tag: Tag): void;
|