taggedjs 2.0.1 → 2.1.2
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/Subject.d.ts +12 -0
- package/js/Subject.js +38 -0
- package/js/Subject.js.map +1 -0
- package/js/Tag.class.d.ts +45 -0
- package/js/Tag.class.js +213 -0
- package/js/Tag.class.js.map +1 -0
- package/js/Tag.utils.d.ts +24 -0
- package/js/Tag.utils.js +102 -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/deepFunctions.d.ts +2 -0
- package/js/deepFunctions.js +76 -0
- package/js/deepFunctions.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/getCallback.d.ts +3 -0
- package/js/getCallback.js +53 -0
- package/js/getCallback.js.map +1 -0
- package/js/getTagSupport.d.ts +20 -0
- package/js/getTagSupport.js +20 -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 +10 -0
- package/js/index.js +12 -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 +3 -0
- package/js/interpolateAttributes.js +69 -0
- package/js/interpolateAttributes.js.map +1 -0
- package/js/interpolateContentTemplates.d.ts +3 -0
- package/js/interpolateContentTemplates.js +47 -0
- package/js/interpolateContentTemplates.js.map +1 -0
- package/js/interpolateElement.d.ts +14 -0
- package/js/interpolateElement.js +35 -0
- package/js/interpolateElement.js.map +1 -0
- package/js/interpolateTemplate.d.ts +21 -0
- package/js/interpolateTemplate.js +262 -0
- package/js/interpolateTemplate.js.map +1 -0
- package/js/interpolations.d.ts +6 -0
- package/js/interpolations.js +17 -0
- package/js/interpolations.js.map +1 -0
- package/js/js/Subject.d.ts +12 -0
- package/js/js/Subject.js +38 -0
- package/js/js/Subject.js.map +1 -0
- package/js/js/Tag.class.d.ts +45 -0
- package/js/js/Tag.class.js +213 -0
- package/js/js/Tag.class.js.map +1 -0
- package/js/js/Tag.utils.d.ts +24 -0
- package/js/js/Tag.utils.js +102 -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/deepFunctions.d.ts +2 -0
- package/js/js/deepFunctions.js +76 -0
- package/js/js/deepFunctions.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 +53 -0
- package/js/js/getCallback.js.map +1 -0
- package/js/js/getTagSupport.d.ts +20 -0
- package/js/js/getTagSupport.js +20 -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 +10 -0
- package/js/js/index.js +12 -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 +3 -0
- package/js/js/interpolateAttributes.js +69 -0
- package/js/js/interpolateAttributes.js.map +1 -0
- package/js/js/interpolateContentTemplates.d.ts +3 -0
- package/js/js/interpolateContentTemplates.js +47 -0
- package/js/js/interpolateContentTemplates.js.map +1 -0
- package/js/js/interpolateElement.d.ts +14 -0
- package/js/js/interpolateElement.js +35 -0
- package/js/js/interpolateElement.js.map +1 -0
- package/js/js/interpolateTemplate.d.ts +21 -0
- package/js/js/interpolateTemplate.js +262 -0
- package/js/js/interpolateTemplate.js.map +1 -0
- package/js/js/interpolations.d.ts +6 -0
- package/js/js/interpolations.js +17 -0
- package/js/js/interpolations.js.map +1 -0
- package/js/js/onInit.d.ts +6 -0
- package/js/js/onInit.js +17 -0
- package/js/js/onInit.js.map +1 -0
- package/js/js/processTagArray.d.ts +5 -0
- package/js/js/processTagArray.js +49 -0
- package/js/js/processTagArray.js.map +1 -0
- package/js/js/providers.d.ts +25 -0
- package/js/js/providers.js +78 -0
- package/js/js/providers.js.map +1 -0
- package/js/js/render.d.ts +6 -0
- package/js/js/render.js +31 -0
- package/js/js/render.js.map +1 -0
- package/js/js/renderAppToElement.d.ts +8 -0
- package/js/js/renderAppToElement.js +38 -0
- package/js/js/renderAppToElement.js.map +1 -0
- package/js/js/state.d.ts +21 -0
- package/js/js/state.js +63 -0
- package/js/js/state.js.map +1 -0
- package/js/js/tag.d.ts +17 -0
- package/js/js/tag.js +57 -0
- package/js/js/tag.js.map +1 -0
- package/js/js/tagRunner.d.ts +17 -0
- package/js/js/tagRunner.js +19 -0
- package/js/js/tagRunner.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/onInit.d.ts +6 -0
- package/js/onInit.js +17 -0
- package/js/onInit.js.map +1 -0
- package/js/processTagArray.d.ts +5 -0
- package/js/processTagArray.js +49 -0
- package/js/processTagArray.js.map +1 -0
- package/js/providers.d.ts +25 -0
- package/js/providers.js +78 -0
- package/js/providers.js.map +1 -0
- package/js/render.d.ts +6 -0
- package/js/render.js +31 -0
- package/js/render.js.map +1 -0
- package/js/renderAppToElement.d.ts +8 -0
- package/js/renderAppToElement.js +38 -0
- package/js/renderAppToElement.js.map +1 -0
- package/js/state.d.ts +21 -0
- package/js/state.js +63 -0
- package/js/state.js.map +1 -0
- package/js/tag.d.ts +17 -0
- package/js/tag.js +57 -0
- package/js/tag.js.map +1 -0
- package/js/tagRunner.d.ts +17 -0
- package/js/tagRunner.js +19 -0
- package/js/tagRunner.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 @@
|
|
|
1
|
+
{"version":3,"file":"deepFunctions.js","sourceRoot":"","sources":["../ts/deepFunctions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export function elementInitCheck(nextSibling, counts) {
|
|
2
|
+
const onInitDoubleWrap = nextSibling.oninit;
|
|
3
|
+
if (!onInitDoubleWrap) {
|
|
4
|
+
return;
|
|
5
|
+
}
|
|
6
|
+
const onInitWrap = onInitDoubleWrap.tagFunction;
|
|
7
|
+
if (!onInitWrap) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
const onInit = onInitWrap.tagFunction;
|
|
11
|
+
if (!onInit) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const event = { target: nextSibling, stagger: counts.added };
|
|
15
|
+
onInit(event);
|
|
16
|
+
++counts.added;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=elementInitCheck.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elementInitCheck.js","sourceRoot":"","sources":["../ts/elementInitCheck.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gBAAgB,CAC9B,WAAgC,EAChC,MAAc;IAEd,MAAM,gBAAgB,GAAI,WAAmB,CAAC,MAAM,CAAA;IACpD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpB,OAAO;IACX,CAAC;IAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,WAAW,CAAC;IAChD,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAO;IACX,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC;IACtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,OAAO;IACX,CAAC;IAED,MAAM,KAAK,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IAC7D,MAAM,CAAC,KAAK,CAAC,CAAC;IACd,EAAE,MAAM,CAAC,KAAK,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { getStateValue } from "./state.js";
|
|
2
|
+
import { setUse } from "./tagRunner.js";
|
|
3
|
+
export let getCallback = () => (callback) => () => {
|
|
4
|
+
throw new Error('The real callback function was called and that should never occur');
|
|
5
|
+
};
|
|
6
|
+
setUse({
|
|
7
|
+
beforeRender: (tagSupport) => {
|
|
8
|
+
tagSupport.callbacks = [];
|
|
9
|
+
getCallback = () => {
|
|
10
|
+
const callbackMaker = (callback) => {
|
|
11
|
+
const trigger = () => {
|
|
12
|
+
const state = tagSupport.state;
|
|
13
|
+
const oldest = callbackMaker.state; // state.oldest as StateConfigArray
|
|
14
|
+
const newest = state.newest;
|
|
15
|
+
// ensure that the oldest has the latest values first
|
|
16
|
+
updateState(newest, oldest);
|
|
17
|
+
// run the callback
|
|
18
|
+
const promise = callback();
|
|
19
|
+
// send the oldest state changes into the newest
|
|
20
|
+
updateState(oldest, newest);
|
|
21
|
+
tagSupport.render();
|
|
22
|
+
if (promise instanceof Promise) {
|
|
23
|
+
promise.finally(() => {
|
|
24
|
+
// send the oldest state changes into the newest
|
|
25
|
+
updateState(oldest, newest);
|
|
26
|
+
tagSupport.render();
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
const state = tagSupport.state;
|
|
31
|
+
trigger.state = state;
|
|
32
|
+
return trigger;
|
|
33
|
+
};
|
|
34
|
+
const callbacks = tagSupport.callbacks;
|
|
35
|
+
callbacks.push(callbackMaker);
|
|
36
|
+
return callbackMaker;
|
|
37
|
+
};
|
|
38
|
+
},
|
|
39
|
+
afterRender: (tagSupport) => {
|
|
40
|
+
const callbacks = tagSupport.callbacks;
|
|
41
|
+
callbacks.forEach(callback => {
|
|
42
|
+
const state = tagSupport.state;
|
|
43
|
+
callback.state = [...state.newest];
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
function updateState(stateFrom, stateTo) {
|
|
48
|
+
stateFrom.forEach((state, index) => {
|
|
49
|
+
const oldValue = getStateValue(state);
|
|
50
|
+
const [checkValue] = stateTo[index](oldValue);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=getCallback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getCallback.js","sourceRoot":"","sources":["../ts/getCallback.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,aAAa,EAAE,MAAM,YAAY,CAAA;AACpF,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAIvC,MAAM,CAAC,IAAI,WAAW,GAAG,GAAG,EAAE,CAAC,CAAC,QAAkB,EAAE,EAAE,CAAC,GAAS,EAAE;IAChE,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAA;AACtF,CAAC,CAAA;AAOD,MAAM,CAAC;IACL,YAAY,EAAE,CAAC,UAA8B,EAAE,EAAE;QAC/C,UAAU,CAAC,SAAS,GAAG,EAAE,CAAA;QAEzB,WAAW,GAAG,GAAG,EAAE;YAEjB,MAAM,aAAa,GAAG,CACpB,QAAkB,EAClB,EAAE;gBACF,MAAM,OAAO,GAAG,GAAG,EAAE;oBACnB,MAAM,KAAK,GAAG,UAAU,CAAC,KAAc,CAAA;oBACvC,MAAM,MAAM,GAAI,aAAqB,CAAC,KAAK,CAAA,CAAC,mCAAmC;oBAC/E,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;oBAE3B,qDAAqD;oBACrD,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;oBAE3B,mBAAmB;oBACnB,MAAM,OAAO,GAAG,QAAQ,EAAE,CAAA;oBAE1B,gDAAgD;oBAChD,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;oBAE3B,UAAU,CAAC,MAAM,EAAE,CAAA;oBAEnB,IAAG,OAAO,YAAY,OAAO,EAAE,CAAC;wBAC9B,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE;4BACnB,gDAAgD;4BAChD,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;4BAE3B,UAAU,CAAC,MAAM,EAAE,CAAA;wBACrB,CAAC,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC,CAAA;gBAED,MAAM,KAAK,GAAG,UAAU,CAAC,KAAc,CAAA;gBACvC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAA;gBAErB,OAAO,OAAO,CAAA;YAChB,CAAC,CAAA;YAED,MAAM,SAAS,GAAG,UAAU,CAAC,SAAkB,CAAA;YAC/C,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YAE7B,OAAO,aAAa,CAAA;QACtB,CAAC,CAAA;IACH,CAAC;IACD,WAAW,EAAE,CAAC,UAA8B,EAAE,EAAE;QAC9C,MAAM,SAAS,GAAG,UAAU,CAAC,SAAkB,CAAA;QAC/C,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC3B,MAAM,KAAK,GAAG,UAAU,CAAC,KAAc,CAAA;YACvC,QAAQ,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,MAAa,CAAC,CAAA;QAC3C,CAAC,CAAC,CAAA;IACJ,CAAC;CACF,CAAC,CAAA;AAEF,SAAS,WAAW,CAClB,SAA2B,EAC3B,OAAyB;IAEzB,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACjC,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;QACrC,MAAM,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAE,QAAQ,CAAE,CAAA;IACjD,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Tag } from "./Tag.class.js";
|
|
2
|
+
import { TemplaterResult } from "./tag.js";
|
|
3
|
+
export interface TagSupport {
|
|
4
|
+
templater?: TemplaterResult;
|
|
5
|
+
/** Indicator of re-rending. Saves from double rending something already rendered */
|
|
6
|
+
renderCount: 0;
|
|
7
|
+
mutatingRender: () => any;
|
|
8
|
+
render: () => any;
|
|
9
|
+
/**
|
|
10
|
+
*
|
|
11
|
+
* @param {*} props value.props
|
|
12
|
+
* @param {*} newProps value.newProps
|
|
13
|
+
* @param {*} compareToProps compareSupport.templater.props
|
|
14
|
+
* @returns {boolean}
|
|
15
|
+
*/
|
|
16
|
+
hasPropChanges: (props: any, newProps: any, compareToProps: any) => boolean;
|
|
17
|
+
oldest?: Tag;
|
|
18
|
+
newest?: Tag;
|
|
19
|
+
}
|
|
20
|
+
export declare function getTagSupport(templater?: TemplaterResult): TagSupport;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { deepEqual } from "./deepFunctions.js";
|
|
2
|
+
export function getTagSupport(templater) {
|
|
3
|
+
const tagSupport = {
|
|
4
|
+
templater,
|
|
5
|
+
renderCount: 0,
|
|
6
|
+
mutatingRender: () => { throw new Error('Tag function "render()" was called in sync but can only be called async'); }, // loaded later and only callable async
|
|
7
|
+
render: () => {
|
|
8
|
+
++tagSupport.renderCount;
|
|
9
|
+
return tagSupport.mutatingRender();
|
|
10
|
+
}, // ensure this function still works even during deconstructing
|
|
11
|
+
hasPropChanges: (props, newProps, compareToProps) => {
|
|
12
|
+
const oldProps = tagSupport.templater.cloneProps;
|
|
13
|
+
const isCommonEqual = props === undefined && props === compareToProps;
|
|
14
|
+
const isEqual = isCommonEqual || deepEqual(newProps, oldProps);
|
|
15
|
+
return !isEqual;
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
return tagSupport;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=getTagSupport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getTagSupport.js","sourceRoot":"","sources":["../ts/getTagSupport.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AA8B9C,MAAM,UAAU,aAAa,CAC3B,SAA2B;IAE3B,MAAM,UAAU,GAAe;QAC7B,SAAS;QACT,WAAW,EAAE,CAAC;QACd,cAAc,EAAE,GAAG,EAAE,GAAE,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAA,CAAA,CAAC,EAAE,uCAAuC;QAC3J,MAAM,EAAE,GAAG,EAAE;YACX,EAAE,UAAU,CAAC,WAAW,CAAA;YACxB,OAAO,UAAU,CAAC,cAAc,EAAE,CAAA;QACpC,CAAC,EAAE,8DAA8D;QAEjE,cAAc,EAAE,CACd,KAAU,EACV,QAAa,EACb,cAAmB,EACnB,EAAE;YACF,MAAM,QAAQ,GAAI,UAAU,CAAC,SAAiB,CAAC,UAAU,CAAA;YACzD,MAAM,aAAa,GAAG,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,cAAc,CAAA;YACrE,MAAM,OAAO,GAAG,aAAa,IAAI,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;YAC9D,OAAO,CAAC,OAAO,CAAA;QACjB,CAAC;KACF,CAAA;IAED,OAAO,UAAU,CAAA;AACnB,CAAC"}
|
package/js/html.d.ts
ADDED
package/js/html.js
ADDED
package/js/html.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html.js","sourceRoot":"","sources":["../ts/html.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAEpC,MAAM,UAAU,IAAI,CAClB,OAAiB,EACjB,GAAG,MAAiB;IAEpB,OAAO,IAAI,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;AACjC,CAAC"}
|
package/js/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { html } from "./html.js";
|
|
2
|
+
export { tag } from "./tag.js";
|
|
3
|
+
export { Subject } from "./Subject.js";
|
|
4
|
+
export { wait } from "./wait.js";
|
|
5
|
+
export { renderAppToElement } from "./renderAppToElement.js";
|
|
6
|
+
export { Tag } from "./Tag.class.js";
|
|
7
|
+
export * from "./onInit.js";
|
|
8
|
+
export { providers } from "./providers.js";
|
|
9
|
+
export { state } from "./state.js";
|
|
10
|
+
export { getCallback } from "./getCallback.js";
|
package/js/index.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { html } from "./html.js";
|
|
2
|
+
export { tag } from "./tag.js";
|
|
3
|
+
export { Subject } from "./Subject.js";
|
|
4
|
+
export { wait } from "./wait.js";
|
|
5
|
+
export { renderAppToElement } from "./renderAppToElement.js";
|
|
6
|
+
export { Tag } from "./Tag.class.js";
|
|
7
|
+
// hooks
|
|
8
|
+
export * from "./onInit.js";
|
|
9
|
+
export { providers } from "./providers.js";
|
|
10
|
+
export { state } from "./state.js";
|
|
11
|
+
export { getCallback } from "./getCallback.js";
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
package/js/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAG9B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAGtC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAEpC,QAAQ;AACR,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function inputAttribute(name: string, value: any, element: Element): void;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export function inputAttribute(name, value, element) {
|
|
2
|
+
const names = name.split('.');
|
|
3
|
+
// style.position = "absolute"
|
|
4
|
+
if (names[0] === 'style') {
|
|
5
|
+
element.style[names[1]] = value;
|
|
6
|
+
}
|
|
7
|
+
// Example: class.width-full = "true"
|
|
8
|
+
if (names[0] === 'class') {
|
|
9
|
+
names.pop();
|
|
10
|
+
if (value) {
|
|
11
|
+
names.forEach(name => element.classList.remove(name));
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
names.forEach(name => element.classList.add(name));
|
|
15
|
+
}
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=inputAttribute.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inputAttribute.js","sourceRoot":"","sources":["../ts/inputAttribute.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,cAAc,CAC5B,IAAY,EACZ,KAAU,EACV,OAAgB;IAEhB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAE7B,8BAA8B;IAC9B,IAAG,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QACvB,OAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;IAC1C,CAAC;IAED,qCAAqC;IACrC,IAAG,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QACxB,KAAK,CAAC,GAAG,EAAE,CAAA;QACX,IAAG,KAAK,EAAE,CAAC;YACT,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;QACvD,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QACpD,CAAC;QACD,OAAM;IACR,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Subject } from "./Subject.js";
|
|
2
|
+
import { inputAttribute } from "./inputAttribute.js";
|
|
3
|
+
const startRegX = /^\s*{/;
|
|
4
|
+
const endRegX = /}\s*$/;
|
|
5
|
+
export function interpolateAttributes(child, scope, ownerTag) {
|
|
6
|
+
child.getAttributeNames().forEach(attrName => {
|
|
7
|
+
const value = child.getAttribute(attrName);
|
|
8
|
+
const isSpecial = isSpecialAttr(attrName);
|
|
9
|
+
// An attempt to replicate React
|
|
10
|
+
if (value && value.search(startRegX) >= 0 && value.search(endRegX) >= 0) {
|
|
11
|
+
// get the code inside the brackets like "variable0" or "{variable0}"
|
|
12
|
+
const code = value.replace('{', '').split('').reverse().join('').replace('}', '').split('').reverse().join('');
|
|
13
|
+
const result = scope[code];
|
|
14
|
+
// attach as callback
|
|
15
|
+
if (result instanceof Function) {
|
|
16
|
+
;
|
|
17
|
+
child[attrName] = function (...args) {
|
|
18
|
+
result(child, args);
|
|
19
|
+
};
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
if (result instanceof Subject) {
|
|
23
|
+
child.removeAttribute(attrName);
|
|
24
|
+
const callback = (newAttrValue) => {
|
|
25
|
+
if (newAttrValue instanceof Function) {
|
|
26
|
+
;
|
|
27
|
+
child[attrName] = function (...args) {
|
|
28
|
+
newAttrValue(child, args);
|
|
29
|
+
};
|
|
30
|
+
child[attrName].tagFunction = newAttrValue;
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
if (isSpecial) {
|
|
34
|
+
inputAttribute(attrName, newAttrValue, child);
|
|
35
|
+
}
|
|
36
|
+
if (newAttrValue) {
|
|
37
|
+
child.setAttribute(attrName, newAttrValue);
|
|
38
|
+
}
|
|
39
|
+
const isDeadValue = newAttrValue === undefined || newAttrValue === false || newAttrValue === null;
|
|
40
|
+
if (isDeadValue) {
|
|
41
|
+
child.removeAttribute(attrName);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
// value is 0
|
|
45
|
+
child.setAttribute(attrName, newAttrValue);
|
|
46
|
+
};
|
|
47
|
+
const sub = result.subscribe(callback);
|
|
48
|
+
ownerTag.cloneSubs.push(sub); // this is where unsubscribe is picked up
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
// child.setAttribute(attrName, result)
|
|
52
|
+
/*
|
|
53
|
+
if(attrName === 'style') {
|
|
54
|
+
return
|
|
55
|
+
}
|
|
56
|
+
*/
|
|
57
|
+
child.setAttribute(attrName, result.value);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
// Non dynamic
|
|
61
|
+
if (isSpecial) {
|
|
62
|
+
return inputAttribute(attrName, value, child);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
export function isSpecialAttr(attrName) {
|
|
67
|
+
return attrName.search(/^(class|style)(\.)/) >= 0;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=interpolateAttributes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interpolateAttributes.js","sourceRoot":"","sources":["../ts/interpolateAttributes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { interpolateTemplate } from "./interpolateTemplate.js";
|
|
2
|
+
/** Returns subscriptions[] that will need to be unsubscribed from when element is destroyed */
|
|
3
|
+
export function interpolateContentTemplates(element, variable, ownerTag) {
|
|
4
|
+
if (!element.children || element.tagName === 'TEMPLATE') {
|
|
5
|
+
return; // done
|
|
6
|
+
}
|
|
7
|
+
const counts = {
|
|
8
|
+
added: 0,
|
|
9
|
+
removed: 0,
|
|
10
|
+
};
|
|
11
|
+
const children = new Array(...element.children);
|
|
12
|
+
children.forEach((child, index) => {
|
|
13
|
+
interpolateChild(child, index, children);
|
|
14
|
+
if (child.children) {
|
|
15
|
+
const nextKids = new Array(...child.children);
|
|
16
|
+
nextKids.forEach((subChild, index) => {
|
|
17
|
+
if (isRenderEndTemplate(subChild)) {
|
|
18
|
+
interpolateChild(subChild, index, nextKids);
|
|
19
|
+
}
|
|
20
|
+
interpolateContentTemplates(subChild, variable, ownerTag);
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
function interpolateChild(child, index, children) {
|
|
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;
|
|
40
|
+
}
|
|
41
|
+
function isRenderEndTemplate(child) {
|
|
42
|
+
const isTemplate = child.tagName === 'TEMPLATE';
|
|
43
|
+
return isTemplate &&
|
|
44
|
+
child.getAttribute('interpolate') !== undefined &&
|
|
45
|
+
child.getAttribute('end') !== undefined;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=interpolateContentTemplates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interpolateContentTemplates.js","sourceRoot":"","sources":["../ts/interpolateContentTemplates.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAEtE,+FAA+F;AAC/F,MAAM,UAAU,2BAA2B,CACzC,OAAgB,EAChB,QAAa,EACb,QAAa;IAEb,IAAK,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,OAAO,KAAK,UAAU,EAAG,CAAC;QAC1D,OAAM,CAAC,OAAO;IAChB,CAAC;IACD,MAAM,MAAM,GAAW;QACrB,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,CAAC;KACX,CAAA;IAED,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,GAAI,OAAO,CAAC,QAAgB,CAAC,CAAA;IAExD,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAChC,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;QAExC,IAAK,KAAK,CAAC,QAAQ,EAAG,CAAC;YACrB,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;YAC7C,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;gBACnC,IAAK,mBAAmB,CAAC,QAAQ,CAAC,EAAG,CAAC;oBACpC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;gBAC7C,CAAC;gBAED,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;YAC3D,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,SAAS,gBAAgB,CACvB,KAAc,EACd,KAAa,EACb,QAAmB;QAEnB,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;YACnC,IAAK,QAAQ,GAAG,KAAK,EAAG,CAAC;gBACvB,OAAM,CAAC,UAAU;YACnB,CAAC;YAED,IAAK,KAAK,CAAC,OAAO,KAAG,UAAU,EAAG,CAAC;gBACjC,OAAM,CAAC,iBAAiB;YAC1B,CAAC;YAED,IAAK,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,KAAG,SAAS,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,SAAS,EAAG,CAAC;gBAC/F,OAAM,CAAC,2BAA2B;YACpC,CAAC;YAED,OAAO,KAAK,CAAA;QACd,CAAC,CAAC,CAAA;QAEF,mBAAmB,CACjB,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,MAAM,CACP,CAAA;IACH,CAAC;IAED,OAAM;AACR,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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Context, Tag } from "./Tag.class.js";
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* @param {*} element
|
|
5
|
+
* @param {*} context
|
|
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[];
|
|
14
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { interpolateAttributes } from "./interpolateAttributes.js";
|
|
2
|
+
import { interpolateToTemplates } from "./interpolations.js";
|
|
3
|
+
import { interpolateContentTemplates } from "./interpolateContentTemplates.js";
|
|
4
|
+
import { escapeSearch, variablePrefix } from "./Tag.class.js";
|
|
5
|
+
/**
|
|
6
|
+
*
|
|
7
|
+
* @param {*} element
|
|
8
|
+
* @param {*} context
|
|
9
|
+
* @param {Tag} ownerTag
|
|
10
|
+
*/
|
|
11
|
+
export function interpolateElement(element, context, // variables used to evaluate
|
|
12
|
+
ownerTag) {
|
|
13
|
+
const result = interpolateElementChild(element);
|
|
14
|
+
if (result.keys.length) {
|
|
15
|
+
interpolateContentTemplates(element, context, ownerTag);
|
|
16
|
+
}
|
|
17
|
+
interpolateAttributes(element, context, ownerTag);
|
|
18
|
+
function processChildren(children) {
|
|
19
|
+
new Array(...children).forEach(child => {
|
|
20
|
+
interpolateAttributes(child, context, ownerTag);
|
|
21
|
+
if (child.children) {
|
|
22
|
+
processChildren(child.children);
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
processChildren(element.children);
|
|
27
|
+
}
|
|
28
|
+
/** Convert interpolations into template tags */
|
|
29
|
+
export function interpolateElementChild(child) {
|
|
30
|
+
const result = interpolateToTemplates(child.innerHTML);
|
|
31
|
+
result.string = result.string.replace(escapeSearch, variablePrefix);
|
|
32
|
+
child.innerHTML = result.string;
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=interpolateElement.js.map
|
|
@@ -0,0 +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,EAAgB,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE3E;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAgB,EAChB,OAAgB,EAAE,6BAA6B;AAC/C,QAAa;IAEb,MAAM,MAAM,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAA;IAE/C,IAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACtB,2BAA2B,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IACzD,CAAC;IAED,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAEjD,SAAS,eAAe,CAAC,QAAwB;QAC/C,IAAI,KAAK,CAAC,GAAG,QAAe,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC5C,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;YAE/C,IAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAClB,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;YACjC,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;AACnC,CAAC;AAED,gDAAgD;AAChD,MAAM,UAAU,uBAAuB,CACrC,KAAc;IAEd,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IACtD,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,cAAc,CAAC,CAAA;IACnE,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAA;IAC/B,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Context, Tag } from "./Tag.class.js";
|
|
2
|
+
import { TemplaterResult } from "./tag.js";
|
|
3
|
+
export declare function interpolateTemplate(template: Element & {
|
|
4
|
+
clone?: any;
|
|
5
|
+
}, // <template end interpolate /> (will be removed)
|
|
6
|
+
context: Context, // variable scope of {`__tagVar${index}`:'x'}
|
|
7
|
+
ownerTag: Tag, // Tag class
|
|
8
|
+
counts: Counts): void;
|
|
9
|
+
export declare function updateBetweenTemplates(value: any, lastFirstChild: Element): Text;
|
|
10
|
+
export type Counts = {
|
|
11
|
+
added: 0;
|
|
12
|
+
removed: 0;
|
|
13
|
+
};
|
|
14
|
+
/** Returns {clones:[], subs:[]} */
|
|
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;
|