taggedjs 2.4.14 → 2.4.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundle.js +707 -756
- package/bundle.js.map +1 -1
- package/js/Clones.type.d.ts +0 -1
- package/js/Clones.type.js +1 -1
- package/js/Clones.type.js.map +1 -1
- package/js/Tag.class.d.ts +1 -1
- package/js/Tag.class.js +52 -92
- package/js/Tag.class.js.map +1 -1
- package/js/TemplaterResult.class.d.ts +20 -19
- package/js/TemplaterResult.class.js +1 -1
- package/js/TemplaterResult.class.js.map +1 -1
- package/js/checkDestroyPrevious.function.js +5 -11
- package/js/checkDestroyPrevious.function.js.map +1 -1
- package/js/{Errors.d.ts → errors.d.ts} +3 -0
- package/js/{Errors.js → errors.js} +6 -0
- package/js/{Errors.js.map → errors.js.map} +1 -1
- package/js/index.d.ts +1 -9
- package/js/index.js +1 -12
- package/js/index.js.map +1 -1
- package/js/interpolateTemplate.js +3 -0
- package/js/interpolateTemplate.js.map +1 -1
- package/js/processSubjectComponent.function.js +4 -1
- package/js/processSubjectComponent.function.js.map +1 -1
- package/js/processTag.function.js +1 -1
- package/js/processTag.function.js.map +1 -1
- package/js/processTagArray.d.ts +1 -2
- package/js/processTagArray.js +12 -32
- package/js/processTagArray.js.map +1 -1
- package/js/processTagResult.function.d.ts +3 -2
- package/js/processTagResult.function.js +5 -3
- package/js/processTagResult.function.js.map +1 -1
- package/js/renderExistingTag.function.js +1 -1
- package/js/renderExistingTag.function.js.map +1 -1
- package/js/state/callbackMaker.function.d.ts +3 -0
- package/js/state/callbackMaker.function.js +52 -0
- package/js/state/callbackMaker.function.js.map +1 -0
- package/js/state/getCallback.d.ts +3 -0
- package/js/state/getCallback.js +51 -0
- package/js/state/getCallback.js.map +1 -0
- package/js/state/index.d.ts +10 -0
- package/js/state/index.js +10 -0
- package/js/state/index.js.map +1 -0
- package/js/state/letState.function.d.ts +3 -0
- package/js/state/letState.function.js +42 -0
- package/js/state/letState.function.js.map +1 -0
- package/js/state/onDestroy.d.ts +2 -0
- package/js/state/onDestroy.js +17 -0
- package/js/state/onDestroy.js.map +1 -0
- package/js/state/onInit.d.ts +2 -0
- package/js/state/onInit.js +17 -0
- package/js/state/onInit.js.map +1 -0
- package/js/state/provider.utils.d.ts +2 -0
- package/js/state/provider.utils.js +45 -0
- package/js/state/provider.utils.js.map +1 -0
- package/js/state/providers.d.ts +18 -0
- package/js/state/providers.js +86 -0
- package/js/state/providers.js.map +1 -0
- package/js/state/setProp.function.d.ts +3 -0
- package/js/state/setProp.function.js +37 -0
- package/js/state/setProp.function.js.map +1 -0
- package/js/state/setUse.function.d.ts +23 -0
- package/js/state/setUse.function.js +14 -0
- package/js/state/setUse.function.js.map +1 -0
- package/js/state/state.function.d.ts +2 -0
- package/js/state/state.function.js +34 -0
- package/js/state/state.function.js.map +1 -0
- package/js/state/state.utils.d.ts +22 -0
- package/js/state/state.utils.js +85 -0
- package/js/state/state.utils.js.map +1 -0
- package/js/state/watch.function.d.ts +3 -0
- package/js/state/watch.function.js +20 -0
- package/js/state/watch.function.js.map +1 -0
- package/js/subject/Subject.class.js +4 -4
- package/js/subject/Subject.class.js.map +1 -1
- package/js/subject/Subject.utils.d.ts +1 -1
- package/js/subject/ValueSubject.d.ts +1 -1
- package/js/subject/ValueSubject.js +1 -1
- package/js/subject/ValueSubject.js.map +1 -1
- package/js/tag.js +1 -1
- package/js/tag.js.map +1 -1
- package/js/tagRunner.js +1 -1
- package/js/tagRunner.js.map +1 -1
- package/js/updateExistingTagComponent.function.js +1 -6
- package/js/updateExistingTagComponent.function.js.map +1 -1
- package/js/updateExistingValue.function.js +4 -19
- package/js/updateExistingValue.function.js.map +1 -1
- package/package.json +1 -1
- package/js/Subject.d.ts +0 -17
- package/js/Subject.js +0 -47
- package/js/Subject.js.map +0 -1
- package/js/ValueSubject.d.ts +0 -8
- package/js/ValueSubject.js +0 -15
- package/js/ValueSubject.js.map +0 -1
- package/js/bindSubjectCallback.function 9.27.33/342/200/257AM.js" +0 -32
- package/js/bindSubjectCallback.function.d 9.27.33/342/200/257AM.ts" +0 -8
- package/js/redrawTag.function.d.ts +0 -5
- package/js/redrawTag.function.js +0 -18
- package/js/redrawTag.function.js.map +0 -1
- package/js/templater.utils.d.ts +0 -37
- package/js/templater.utils.js +0 -118
- package/js/templater.utils.js.map +0 -1
- package/js/updateExistingTag.function.d.ts +0 -4
- package/js/updateExistingTag.function.js +0 -24
- package/js/updateExistingTag.function.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processTag.function.js","sourceRoot":"","sources":["../ts/processTag.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAI5C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAGxC,gEAAgE;AAChE,MAAM,UAAU,UAAU,CACxB,GAAQ,EACR,OAAmB,EAAE,8BAA8B;AACnD,YAA0B,EAC1B,QAAa;IAEb,8BAA8B;IAC9B,IAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QACnB,IAAG,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;QACvC,CAAC;QAED,kBAAkB,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;QAE1C,IAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;QAC9D,CAAC;QAED,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,GAAU,CAAC,CAAA;IACrC,CAAC;IAED,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAEvB,IAAI,YAAoB,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"processTag.function.js","sourceRoot":"","sources":["../ts/processTag.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAI5C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAGxC,gEAAgE;AAChE,MAAM,UAAU,UAAU,CACxB,GAAQ,EACR,OAAmB,EAAE,8BAA8B;AACnD,YAA0B,EAC1B,QAAa;IAEb,8BAA8B;IAC9B,IAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QACnB,IAAG,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;QACvC,CAAC;QAED,kBAAkB,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;QAE1C,IAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;QAC9D,CAAC;QAED,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,GAAU,CAAC,CAAA;IACrC,CAAC;IAED,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAEvB,IAAI,YAAoB,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,yDAA0D,YAAoB,CAAC,OAAO,EAAE,CAAC,CAAA;IAC3G,CAAC;IAED,GAAG,CAAC,kBAAkB,CAAC,YAAY,EAAE;QACnC,MAAM,EAAE,EAAC,KAAK,EAAC,CAAC,EAAE,OAAO,EAAC,CAAC,EAAC;QAC5B,YAAY,EAAE,IAAI;KACnB,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,GAAQ,EACR,QAAa,EACb,OAAmB;IAEnB,IAAG,CAAC,QAAQ,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;IACnC,CAAC;IACD,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;IAExC,GAAG,CAAC,UAAU,GAAG,IAAI,UAAU,CAC7B,QAAQ,CAAC,UAAU,EACnB,aAAa,EAAE,2CAA2C;IAC1D,OAAO,CACR,CAAA;IAED,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAA;IACjC,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAA;IACjC,aAAa,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAA;IAEzC,qDAAqD;IACrD,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAA;AACzB,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO;QACL,MAAM,EAAC;YACL,WAAW,EAAE,CAAC;YACd,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,EAAE;YACX,aAAa,EAAE,EAAE;YACjB,OAAO,EAAE,KAAK;YAEd,eAAe,EAAE,EAAqB;SACvC;QACD,QAAQ,EAAE,IAAI,YAAY,CAAQ,EAAE,CAAC,EAAE,cAAc;QACrD,KAAK,EAAE,EAAW;QAElB,KAAK,EAAE,IAAI;QACX,WAAW,EAAE,KAAK;QAClB,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,SAAS,CAAuB;QAChD,UAAU,EAAE,EAAgB;KACV,CAAA;AACtB,CAAC"}
|
package/js/processTagArray.d.ts
CHANGED
|
@@ -9,8 +9,7 @@ export type LastArrayItem = {
|
|
|
9
9
|
};
|
|
10
10
|
export type TagArraySubject = ValueSubject<Tag[]> & {
|
|
11
11
|
insertBefore: InsertBefore;
|
|
12
|
-
|
|
13
|
-
parentAsPlaceholder?: ParentNode;
|
|
12
|
+
placeholder?: Text;
|
|
14
13
|
lastArray?: LastArrayItem[];
|
|
15
14
|
isChildSubject?: boolean;
|
|
16
15
|
};
|
package/js/processTagArray.js
CHANGED
|
@@ -2,23 +2,15 @@ import { ValueSubject } from './subject/ValueSubject';
|
|
|
2
2
|
import { ArrayNoKeyError } from './errors';
|
|
3
3
|
import { destroyArrayTag } from './checkDestroyPrevious.function';
|
|
4
4
|
import { applyFakeTemplater } from './processTag.function';
|
|
5
|
-
import { insertAfter } from './insertAfter.function';
|
|
6
5
|
export function processTagArray(subject, value, // arry of Tag classes
|
|
7
6
|
insertBefore, // <template end interpolate />
|
|
8
7
|
ownerTag, options) {
|
|
9
8
|
const clones = ownerTag.clones; // []
|
|
10
9
|
let lastArray = subject.lastArray = subject.lastArray || [];
|
|
11
|
-
if (subject.
|
|
12
|
-
|
|
13
|
-
if (parentPlaceholder) {
|
|
14
|
-
parentPlaceholder.appendChild(insertBefore);
|
|
15
|
-
delete subject.placeholderElm;
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
insertAfter(insertBefore, subject.placeholderElm);
|
|
19
|
-
}
|
|
20
|
-
delete subject.placeholderElm;
|
|
10
|
+
if (!subject.placeholder) {
|
|
11
|
+
setPlaceholderElm(insertBefore, subject);
|
|
21
12
|
}
|
|
13
|
+
const runtimeInsertBefore = subject.placeholder; // || insertBefore
|
|
22
14
|
let removed = 0;
|
|
23
15
|
/** 🗑️ remove previous items first */
|
|
24
16
|
lastArray = subject.lastArray = subject.lastArray.filter((item, index) => {
|
|
@@ -40,8 +32,6 @@ ownerTag, options) {
|
|
|
40
32
|
}
|
|
41
33
|
return true;
|
|
42
34
|
});
|
|
43
|
-
// const masterBefore = template || (template as any).clone
|
|
44
|
-
const before = insertBefore; // || (subject.value as any).insertBefore || (insertBefore as any).clone
|
|
45
35
|
value.forEach((subTag, index) => {
|
|
46
36
|
const previous = lastArray[index];
|
|
47
37
|
const previousSupport = previous?.tag.tagSupport;
|
|
@@ -76,33 +66,23 @@ ownerTag, options) {
|
|
|
76
66
|
return [];
|
|
77
67
|
}
|
|
78
68
|
// TODO: should not get here?
|
|
79
|
-
processAddTagArrayItem(
|
|
69
|
+
processAddTagArrayItem(runtimeInsertBefore, subTag, index, options, lastArray);
|
|
80
70
|
throw new Error('item should be back');
|
|
81
71
|
// return [] // removed: item should have been previously deleted and will be added back
|
|
82
72
|
}
|
|
83
|
-
processAddTagArrayItem(
|
|
73
|
+
processAddTagArrayItem(runtimeInsertBefore, subTag, index, options, lastArray);
|
|
84
74
|
ownerTag.childTags.push(subTag);
|
|
85
75
|
});
|
|
86
|
-
if (value.length) {
|
|
87
|
-
const lastClone = insertBefore.previousSibling;
|
|
88
|
-
setPlaceholderElm(lastClone, insertBefore, subject);
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
const placeholderElm = insertBefore.previousSibling;
|
|
92
|
-
if (placeholderElm) {
|
|
93
|
-
setPlaceholderElm(placeholderElm, insertBefore, subject);
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
const parentNode = insertBefore.parentNode;
|
|
97
|
-
setPlaceholderElm(parentNode, insertBefore, subject);
|
|
98
|
-
subject.parentAsPlaceholder = parentNode;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
76
|
return clones;
|
|
102
77
|
}
|
|
103
|
-
function setPlaceholderElm(
|
|
104
|
-
|
|
78
|
+
function setPlaceholderElm(insertBefore, subject) {
|
|
79
|
+
if (insertBefore.nodeName !== 'TEMPLATE') {
|
|
80
|
+
subject.placeholder = insertBefore;
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
const placeholder = subject.placeholder = document.createTextNode('');
|
|
105
84
|
const parentNode = insertBefore.parentNode;
|
|
85
|
+
parentNode.insertBefore(placeholder, insertBefore);
|
|
106
86
|
parentNode.removeChild(insertBefore);
|
|
107
87
|
}
|
|
108
88
|
function processAddTagArrayItem(before, subTag, index, options, lastArray) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processTagArray.js","sourceRoot":"","sources":["../ts/processTagArray.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"processTagArray.js","sourceRoot":"","sources":["../ts/processTagArray.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { Tag } from './Tag.class';
|
|
2
|
-
import { Counts
|
|
2
|
+
import { Counts } from './interpolateTemplate';
|
|
3
3
|
import { TagArraySubject } from './processTagArray';
|
|
4
4
|
import { TagSubject } from './Tag.utils';
|
|
5
|
+
import { InsertBefore } from './Clones.type';
|
|
5
6
|
export declare function processTagResult(tag: Tag, subject: TagArraySubject | TagSubject | Function, // used for recording past and current value
|
|
6
|
-
insertBefore:
|
|
7
|
+
insertBefore: InsertBefore, // <template end interpolate />
|
|
7
8
|
{ counts, forceElement, }: {
|
|
8
9
|
counts: Counts;
|
|
9
10
|
forceElement?: boolean;
|
|
@@ -2,7 +2,7 @@ export function processTagResult(tag, subject, // used for recording past and cu
|
|
|
2
2
|
insertBefore, // <template end interpolate />
|
|
3
3
|
{ counts, forceElement, }) {
|
|
4
4
|
if (!insertBefore.parentNode) {
|
|
5
|
-
throw new Error(
|
|
5
|
+
throw new Error(`before here processTagResult ${insertBefore.nodeName}`);
|
|
6
6
|
}
|
|
7
7
|
// *if appears we already have seen
|
|
8
8
|
const subjectTag = subject;
|
|
@@ -20,9 +20,11 @@ insertBefore, // <template end interpolate />
|
|
|
20
20
|
*/
|
|
21
21
|
return processTagResultUpdate(tag, subjectTag, previousTag);
|
|
22
22
|
}
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
/*
|
|
24
|
+
if(insertBefore.nodeName !== 'TEMPLATE') {
|
|
25
|
+
throw new Error(`processTagResult.function.ts insertBefore is not template ${insertBefore.nodeName}`)
|
|
25
26
|
}
|
|
27
|
+
*/
|
|
26
28
|
tag.buildBeforeElement(insertBefore, {
|
|
27
29
|
counts,
|
|
28
30
|
forceElement,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processTagResult.function.js","sourceRoot":"","sources":["../ts/processTagResult.function.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"processTagResult.function.js","sourceRoot":"","sources":["../ts/processTagResult.function.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,gBAAgB,CAC9B,GAAQ,EACR,OAAgD,EAAE,4CAA4C;AAC9F,YAA0B,EAAE,+BAA+B;AAC3D,EACE,MAAM,EAAE,YAAY,GAIrB;IAED,IAAG,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,gCAAgC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC1E,CAAC;IAED,mCAAmC;IACnC,MAAM,UAAU,GAAG,OAAqB,CAAA;IACxC,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAA;IAClC,MAAM,WAAW,GAAG,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,MAAa,IAAI,SAAS,CAAA,CAAC,6CAA6C;IACrI,MAAM,UAAU,GAAG,WAAW,CAAA,CAAC,mBAAmB;IAElD,IAAG,WAAW,IAAI,UAAU,EAAE,CAAC;QAC7B;;;;;;;UAOE;QACF,OAAO,sBAAsB,CAAC,GAAG,EAAE,UAAU,EAAE,WAAW,CAAC,CAAA;IAC7D,CAAC;IAGD;;;;MAIE;IAEF,GAAG,CAAC,kBAAkB,CAAC,YAAY,EAAE;QACnC,MAAM;QACN,YAAY;KACb,CAAC,CAAA;AACJ,CAAC;AAGD,SAAS,sBAAsB,CAC7B,GAAQ,EACR,OAAmB,EAAE,4CAA4C;AACjE,WAAgB;IAEhB,aAAa;IACb,IAAG,OAAO,YAAY,QAAQ,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAQ,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;QACnD,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;QAC/B,OAAO,CAAC,GAAG,GAAG,MAAM,CAAA;QAEpB,OAAM;IACR,CAAC;IAED,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IAC5B,OAAO,CAAC,GAAG,GAAG,GAAG,CAAA;IAEjB,OAAM;AACR,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { providersChangeCheck } from './provider.utils';
|
|
1
|
+
import { providersChangeCheck } from './state/provider.utils';
|
|
2
2
|
import { renderWithSupport } from './TemplaterResult.class';
|
|
3
3
|
import { isLikeTags } from './isLikeTags.function';
|
|
4
4
|
/** Returns true when rendering owner is not needed. Returns false when rendering owner should occur */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderExistingTag.function.js","sourceRoot":"","sources":["../ts/renderExistingTag.function.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"renderExistingTag.function.js","sourceRoot":"","sources":["../ts/renderExistingTag.function.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAmB,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAE5E,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAElD,uGAAuG;AACvG,MAAM,UAAU,iBAAiB,CAC/B,SAAc,EAAE,6BAA6B;AAC7C,YAA6B,EAC7B,UAA0B,EAC1B,OAAmB;IAEnB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAU,CAAA;IAC9B,YAAY,CAAC,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAA;IAErD,IAAG,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;IACrD,CAAC;IAED,MAAM,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAA;IAC9D,oBAAoB,CAAC,SAAS,CAAC,CAAA;IAE/B,oGAAoG;IACpG,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,MAAa,CAAA;IAC3D,IAAG,cAAc,KAAK,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC9D,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;QAChC,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,IAAI,YAAY,CAAA;IACzD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,CAAA,CAAC,2BAA2B;IACvH,MAAM,MAAM,GAAG,iBAAiB,CAC9B,YAAY,CAAC,UAAU,EACvB,WAAW,EACX,OAAO,EACP,SAAS,CAAC,QAAQ,CACnB,CAAA;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,IAAI,SAAS,CAAA;IAC9D,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;IAElD,IAAG,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,GAAG,MAAM,CAAA;QACpB,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;IAC5B,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { setUse } from "./setUse.function";
|
|
2
|
+
import { getStateValue } from "./state.utils";
|
|
3
|
+
import { renderTagSupport } from "../renderTagSupport.function";
|
|
4
|
+
import { SyncCallbackError } from "../errors";
|
|
5
|
+
let innerCallback = (callback) => (...args) => {
|
|
6
|
+
throw new SyncCallbackError('Callback function was called immediately in sync and must instead be call async');
|
|
7
|
+
};
|
|
8
|
+
export const callbackMaker = () => innerCallback;
|
|
9
|
+
const originalGetter = innerCallback; // callbackMaker
|
|
10
|
+
setUse({
|
|
11
|
+
beforeRender: (tagSupport) => initMemory(tagSupport),
|
|
12
|
+
beforeRedraw: (tagSupport) => initMemory(tagSupport),
|
|
13
|
+
afterRender: (_tagSupport) => {
|
|
14
|
+
innerCallback = originalGetter; // prevent crossing callbacks with another tag
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
function updateState(stateFrom, stateTo) {
|
|
18
|
+
stateFrom.forEach((state, index) => {
|
|
19
|
+
const fromValue = getStateValue(state);
|
|
20
|
+
const callback = stateTo[index].callback;
|
|
21
|
+
if (callback) {
|
|
22
|
+
callback(fromValue); // set the value
|
|
23
|
+
}
|
|
24
|
+
stateTo[index].lastValue = fromValue; // record the value
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
function initMemory(tagSupport) {
|
|
28
|
+
const oldState = setUse.memory.stateConfig.array;
|
|
29
|
+
innerCallback = (callback) => {
|
|
30
|
+
const trigger = (...args) => triggerStateUpdate(tagSupport, callback, oldState, ...args);
|
|
31
|
+
return trigger;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
function triggerStateUpdate(tagSupport, callback, oldState, ...args) {
|
|
35
|
+
const state = tagSupport.memory.state;
|
|
36
|
+
const newest = state.newest;
|
|
37
|
+
// ensure that the oldest has the latest values first
|
|
38
|
+
updateState(newest, oldState);
|
|
39
|
+
// run the callback
|
|
40
|
+
const promise = callback(...args);
|
|
41
|
+
// send the oldest state changes into the newest
|
|
42
|
+
updateState(oldState, newest);
|
|
43
|
+
renderTagSupport(tagSupport, false);
|
|
44
|
+
if (promise instanceof Promise) {
|
|
45
|
+
promise.finally(() => {
|
|
46
|
+
// send the oldest state changes into the newest
|
|
47
|
+
updateState(oldState, newest);
|
|
48
|
+
renderTagSupport(tagSupport, false);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=callbackMaker.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callbackMaker.function.js","sourceRoot":"","sources":["../../ts/state/callbackMaker.function.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAA2B,aAAa,EAAE,MAAM,eAAe,CAAA;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAuB7C,IAAI,aAAa,GAAG,CAAI,QAAqB,EAAE,EAAE,CAAC,CAAC,GAAG,IAAQ,EAAQ,EAAE;IACtE,MAAM,IAAI,iBAAiB,CAAC,iFAAiF,CAAC,CAAA;AAChH,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,aAAa,CAAA;AAEhD,MAAM,cAAc,GAAG,aAAa,CAAA,CAAC,gBAAgB;AAErD,MAAM,CAAC;IACL,YAAY,EAAE,CAAC,UAA0B,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;IACpE,YAAY,EAAE,CAAC,UAA0B,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;IACpE,WAAW,EAAE,CAAC,WAA2B,EAAE,EAAE;QAC3C,aAAa,GAAG,cAAc,CAAA,CAAC,8CAA8C;IAC/E,CAAC;CACF,CAAC,CAAA;AAEF,SAAS,WAAW,CAClB,SAA2B,EAC3B,OAAyB;IAEzB,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACjC,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;QACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAA;QAExC,IAAG,QAAQ,EAAE,CAAC;YACZ,QAAQ,CAAE,SAAS,CAAE,CAAA,CAAC,gBAAgB;QACxC,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,SAAS,CAAA,CAAC,mBAAmB;IAC1D,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,UAAU,CAAE,UAA0B;IAC7C,MAAM,QAAQ,GAAqB,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAA;IAClE,aAAa,GAAG,CACd,QAAuB,EACvB,EAAE;QACF,MAAM,OAAO,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,kBAAkB,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAA;QAC/F,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB,CACzB,UAA0B,EAC1B,QAAuB,EACvB,QAA0B,EAC1B,GAAG,IAAW;IAEd,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,KAAc,CAAA;IAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;IAE3B,qDAAqD;IACrD,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAE7B,mBAAmB;IACnB,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAA;IAEjC,gDAAgD;IAChD,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAE7B,gBAAgB,CACd,UAAU,EACV,KAAK,CACN,CAAA;IAED,IAAG,OAAO,YAAY,OAAO,EAAE,CAAC;QAC9B,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE;YACnB,gDAAgD;YAChD,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAE7B,gBAAgB,CACd,UAAU,EACV,KAAK,CACN,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { setUse } from "./setUse.function";
|
|
2
|
+
import { getStateValue } from "./state.utils";
|
|
3
|
+
import { renderTagSupport } from "../renderTagSupport.function";
|
|
4
|
+
let innerCallback = (callback) => () => {
|
|
5
|
+
throw new Error('Callback function was called immediately in sync and must instead be call async');
|
|
6
|
+
};
|
|
7
|
+
export const getCallback = () => innerCallback;
|
|
8
|
+
const originalGetter = innerCallback; // getCallback
|
|
9
|
+
setUse({
|
|
10
|
+
beforeRender: (tagSupport) => initMemory(tagSupport),
|
|
11
|
+
beforeRedraw: (tagSupport) => initMemory(tagSupport),
|
|
12
|
+
afterRender: (_tagSupport) => {
|
|
13
|
+
innerCallback = originalGetter; // prevent crossing callbacks with another tag
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
function updateState(stateFrom, stateTo) {
|
|
17
|
+
stateFrom.forEach((state, index) => {
|
|
18
|
+
const fromValue = getStateValue(state);
|
|
19
|
+
const callback = stateTo[index].callback;
|
|
20
|
+
if (callback) {
|
|
21
|
+
callback(fromValue); // set the value
|
|
22
|
+
}
|
|
23
|
+
stateTo[index].lastValue = fromValue; // record the value
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
function initMemory(tagSupport) {
|
|
27
|
+
const oldState = setUse.memory.stateConfig.array;
|
|
28
|
+
innerCallback = (callback) => {
|
|
29
|
+
const trigger = (...args) => triggerStateUpdate(tagSupport, callback, oldState, ...args);
|
|
30
|
+
return trigger;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
function triggerStateUpdate(tagSupport, callback, oldState, ...args) {
|
|
34
|
+
const state = tagSupport.memory.state;
|
|
35
|
+
const newest = state.newest;
|
|
36
|
+
// ensure that the oldest has the latest values first
|
|
37
|
+
updateState(newest, oldState);
|
|
38
|
+
// run the callback
|
|
39
|
+
const promise = callback(...args);
|
|
40
|
+
// send the oldest state changes into the newest
|
|
41
|
+
updateState(oldState, newest);
|
|
42
|
+
renderTagSupport(tagSupport, false);
|
|
43
|
+
if (promise instanceof Promise) {
|
|
44
|
+
promise.finally(() => {
|
|
45
|
+
// send the oldest state changes into the newest
|
|
46
|
+
updateState(oldState, newest);
|
|
47
|
+
renderTagSupport(tagSupport, false);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=getCallback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getCallback.js","sourceRoot":"","sources":["../../ts/state/getCallback.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAA2B,aAAa,EAAE,MAAM,eAAe,CAAA;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAI/D,IAAI,aAAa,GAAG,CAAC,QAAkB,EAAE,EAAE,CAAC,GAAS,EAAE;IACrD,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAA;AACpG,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,aAAa,CAAA;AAE9C,MAAM,cAAc,GAAG,aAAa,CAAA,CAAC,cAAc;AAEnD,MAAM,CAAC;IACL,YAAY,EAAE,CAAC,UAA0B,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;IACpE,YAAY,EAAE,CAAC,UAA0B,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;IACpE,WAAW,EAAE,CAAC,WAA2B,EAAE,EAAE;QAC3C,aAAa,GAAG,cAAc,CAAA,CAAC,8CAA8C;IAC/E,CAAC;CACF,CAAC,CAAA;AAEF,SAAS,WAAW,CAClB,SAA2B,EAC3B,OAAyB;IAEzB,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACjC,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;QACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAA;QAExC,IAAG,QAAQ,EAAE,CAAC;YACZ,QAAQ,CAAE,SAAS,CAAE,CAAA,CAAC,gBAAgB;QACxC,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,SAAS,CAAA,CAAC,mBAAmB;IAC1D,CAAC,CAAC,CAAA;AACJ,CAAC;AAKD,SAAS,UAAU,CAAE,UAA0B;IAC7C,MAAM,QAAQ,GAAqB,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAA;IAClE,aAAa,GAAG,CACd,QAAkB,EAClB,EAAE;QACF,MAAM,OAAO,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,kBAAkB,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAA;QAC/F,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB,CACzB,UAA0B,EAC1B,QAAkB,EAClB,QAA0B,EAC1B,GAAG,IAAW;IAEd,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,KAAc,CAAA;IAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;IAE3B,qDAAqD;IACrD,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAE7B,mBAAmB;IACnB,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAA;IAEjC,gDAAgD;IAChD,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAE7B,gBAAgB,CACd,UAAU,EACV,KAAK,CACN,CAAA;IAED,IAAG,OAAO,YAAY,OAAO,EAAE,CAAC;QAC9B,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE;YACnB,gDAAgD;YAChD,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAE7B,gBAAgB,CACd,UAAU,EACV,KAAK,CACN,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from "./watch.function";
|
|
2
|
+
export { setUse } from "./setUse.function";
|
|
3
|
+
export { state } from "./state.function";
|
|
4
|
+
export { letState } from "./letState.function";
|
|
5
|
+
export { setProp } from "./setProp.function";
|
|
6
|
+
export { StateConfigArray, State } from "./state.utils";
|
|
7
|
+
export { providers } from "./providers";
|
|
8
|
+
export * from "./callbackMaker.function";
|
|
9
|
+
export * from "./onInit";
|
|
10
|
+
export * from "./onDestroy";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from "./watch.function";
|
|
2
|
+
export { setUse } from "./setUse.function";
|
|
3
|
+
export { state } from "./state.function";
|
|
4
|
+
export { letState } from "./letState.function";
|
|
5
|
+
export { setProp } from "./setProp.function";
|
|
6
|
+
export { providers } from "./providers";
|
|
7
|
+
export * from "./callbackMaker.function";
|
|
8
|
+
export * from "./onInit";
|
|
9
|
+
export * from "./onDestroy";
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../ts/state/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAE5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,cAAc,0BAA0B,CAAA;AACxC,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { getStateValue } from './state.utils';
|
|
2
|
+
import { setUse } from './setUse.function';
|
|
3
|
+
/** Used for variables that need to remain the same variable during render passes */
|
|
4
|
+
export function letState(defaultValue) {
|
|
5
|
+
const config = setUse.memory.stateConfig;
|
|
6
|
+
const rearray = config.rearray;
|
|
7
|
+
let getSetMethod;
|
|
8
|
+
const restate = rearray[config.array.length];
|
|
9
|
+
if (restate) {
|
|
10
|
+
let oldValue = getStateValue(restate);
|
|
11
|
+
getSetMethod = ((x) => [oldValue, oldValue = x]);
|
|
12
|
+
const push = {
|
|
13
|
+
get: () => getStateValue(push),
|
|
14
|
+
callback: getSetMethod,
|
|
15
|
+
lastValue: oldValue,
|
|
16
|
+
defaultValue: restate.defaultValue,
|
|
17
|
+
};
|
|
18
|
+
config.array.push(push);
|
|
19
|
+
return makeStateResult(oldValue, push);
|
|
20
|
+
}
|
|
21
|
+
// State first time run
|
|
22
|
+
const defaultFn = defaultValue instanceof Function ? defaultValue : () => defaultValue;
|
|
23
|
+
let initValue = defaultFn();
|
|
24
|
+
getSetMethod = ((x) => [initValue, initValue = x]);
|
|
25
|
+
const push = {
|
|
26
|
+
get: () => getStateValue(push),
|
|
27
|
+
callback: getSetMethod,
|
|
28
|
+
lastValue: initValue,
|
|
29
|
+
defaultValue: initValue,
|
|
30
|
+
};
|
|
31
|
+
config.array.push(push);
|
|
32
|
+
return makeStateResult(initValue, push);
|
|
33
|
+
}
|
|
34
|
+
function makeStateResult(initValue, push) {
|
|
35
|
+
// return initValue
|
|
36
|
+
const result = (y) => {
|
|
37
|
+
push.callback = y || (x => [initValue, initValue = x]);
|
|
38
|
+
return initValue;
|
|
39
|
+
};
|
|
40
|
+
return result;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=letState.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"letState.function.js","sourceRoot":"","sources":["../../ts/state/letState.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7G,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,oFAAoF;AACpF,MAAM,UAAU,QAAQ,CACtB,YAA2B;IAE3B,MAAM,MAAM,GAAW,MAAM,CAAC,MAAM,CAAC,WAAW,CAAA;IAChD,MAAM,OAAO,GAAG,MAAM,CAAC,OAA2B,CAAA;IAClD,IAAI,YAA4B,CAAA;IAEhC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAC5C,IAAG,OAAO,EAAE,CAAC;QACX,IAAI,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAM,CAAA;QAE1C,YAAY,GAAG,CAAC,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAA;QACnD,MAAM,IAAI,GAAuB;YAC/B,GAAG,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAM;YACnC,QAAQ,EAAE,YAAY;YACtB,SAAS,EAAE,QAAQ;YACnB,YAAY,EAAE,OAAO,CAAC,YAAY;SACnC,CAAA;QAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEvB,OAAO,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IACxC,CAAC;IAED,uBAAuB;IACvB,MAAM,SAAS,GAAG,YAAY,YAAY,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,YAAY,CAAA;IACtF,IAAI,SAAS,GAAG,SAAS,EAAE,CAAA;IAE3B,YAAY,GAAG,CAAC,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,CAAA;IACrD,MAAM,IAAI,GAAuB;QAC/B,GAAG,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAM;QACnC,QAAQ,EAAE,YAAY;QACtB,SAAS,EAAE,SAAS;QACpB,YAAY,EAAE,SAAS;KACxB,CAAA;IACD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEvB,OAAO,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;AACzC,CAAC;AAED,SAAS,eAAe,CACtB,SAAY,EACZ,IAAwB;IAExB,mBAAmB;IACnB,MAAM,MAAM,GAAI,CAAC,CAAM,EAAE,EAAE;QACzB,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,CAAA;QAEtD,OAAO,SAAS,CAAA;IAClB,CAAC,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { setUse } from "./setUse.function";
|
|
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
|
+
destroyCurrentTagSupport.templater.global.destroyCallback = callback;
|
|
6
|
+
}
|
|
7
|
+
setUse({
|
|
8
|
+
beforeRender: tagSupport => destroyCurrentTagSupport = tagSupport,
|
|
9
|
+
beforeRedraw: tagSupport => destroyCurrentTagSupport = tagSupport,
|
|
10
|
+
beforeDestroy: (tagSupport, tag) => {
|
|
11
|
+
const callback = tagSupport.templater.global.destroyCallback;
|
|
12
|
+
if (callback) {
|
|
13
|
+
callback();
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=onDestroy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onDestroy.js","sourceRoot":"","sources":["../../ts/state/onDestroy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAI1C,4FAA4F;AAC5F,IAAI,wBAAwC,CAAA;AAE5C,MAAM,UAAU,SAAS,CACvB,QAA2B;IAE3B,wBAAwB,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,GAAG,QAAQ,CAAA;AACtE,CAAC;AAED,MAAM,CAAC;IACL,YAAY,EAAE,UAAU,CAAC,EAAE,CAAC,wBAAwB,GAAG,UAAU;IACjE,YAAY,EAAE,UAAU,CAAC,EAAE,CAAC,wBAAwB,GAAG,UAAU;IACjE,aAAa,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,EAAE;QACjC,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAA;QAE5D,IAAG,QAAQ,EAAE,CAAC;YACZ,QAAQ,EAAE,CAAA;QACZ,CAAC;IACH,CAAC;CACF,CAAC,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { setUse } from "./setUse.function";
|
|
2
|
+
function setCurrentTagSupport(support) {
|
|
3
|
+
setUse.memory.initCurrentTemplater = support.templater;
|
|
4
|
+
}
|
|
5
|
+
export function onInit(callback) {
|
|
6
|
+
const templater = setUse.memory.initCurrentTemplater;
|
|
7
|
+
if (!templater.global.init) {
|
|
8
|
+
;
|
|
9
|
+
templater.global.init = callback;
|
|
10
|
+
callback(); // fire init
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
setUse({
|
|
14
|
+
beforeRender: tagSupport => setCurrentTagSupport(tagSupport),
|
|
15
|
+
beforeRedraw: tagSupport => setCurrentTagSupport(tagSupport),
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=onInit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onInit.js","sourceRoot":"","sources":["../../ts/state/onInit.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAI1C,SAAS,oBAAoB,CAAC,OAAuB;IACnD,MAAM,CAAC,MAAM,CAAC,oBAAoB,GAAG,OAAO,CAAC,SAAS,CAAA;AACxD,CAAC;AAED,MAAM,UAAU,MAAM,CACpB,QAAwB;IAExB,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAuC,CAAA;IACvE,IAAG,CAAE,SAAS,CAAC,MAAc,CAAC,IAAI,EAAE,CAAC;QACnC,CAAC;QAAC,SAAS,CAAC,MAAc,CAAC,IAAI,GAAG,QAAQ,CAAA;QAC1C,QAAQ,EAAE,CAAA,CAAC,YAAY;IACzB,CAAC;AACH,CAAC;AAED,MAAM,CAAC;IACL,YAAY,EAAE,UAAU,CAAC,EAAE,CAAC,oBAAoB,CAAC,UAAU,CAAC;IAC5D,YAAY,EAAE,UAAU,CAAC,EAAE,CAAC,oBAAoB,CAAC,UAAU,CAAC;CAC7D,CAAC,CAAA"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { deepClone, deepEqual } from '../deepFunctions';
|
|
2
|
+
import { renderTagSupport } from '../renderTagSupport.function';
|
|
3
|
+
export function providersChangeCheck(tag) {
|
|
4
|
+
const global = tag.tagSupport.templater.global;
|
|
5
|
+
const providersWithChanges = global.providers.filter(provider => !deepEqual(provider.instance, provider.clone));
|
|
6
|
+
// reset clones
|
|
7
|
+
providersWithChanges.forEach(provider => {
|
|
8
|
+
const appElement = tag.getAppElement();
|
|
9
|
+
handleProviderChanges(appElement, provider);
|
|
10
|
+
provider.clone = deepClone(provider.instance);
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
function handleProviderChanges(appElement, provider) {
|
|
14
|
+
const tagsWithProvider = getTagsWithProvider(appElement, provider);
|
|
15
|
+
tagsWithProvider.forEach(({ tag, renderCount, provider }) => {
|
|
16
|
+
if (tag.tagSupport.templater.global.deleted) {
|
|
17
|
+
return; // i was deleted after another tag processed
|
|
18
|
+
}
|
|
19
|
+
const notRendered = renderCount === tag.tagSupport.templater.global.renderCount;
|
|
20
|
+
if (notRendered) {
|
|
21
|
+
provider.clone = deepClone(provider.instance);
|
|
22
|
+
renderTagSupport(tag.tagSupport, false);
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
function getTagsWithProvider(tag, provider, memory = []) {
|
|
27
|
+
const global = tag.tagSupport.templater.global;
|
|
28
|
+
const compare = global.providers;
|
|
29
|
+
const hasProvider = compare.find(xProvider => xProvider.constructMethod === provider.constructMethod);
|
|
30
|
+
if (hasProvider) {
|
|
31
|
+
memory.push({
|
|
32
|
+
tag,
|
|
33
|
+
renderCount: global.renderCount,
|
|
34
|
+
provider: hasProvider,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
tag.childTags.forEach(child => getTagsWithProvider(child, provider, memory));
|
|
38
|
+
memory.forEach(({ tag }) => {
|
|
39
|
+
if (tag.tagSupport.templater.global.deleted) {
|
|
40
|
+
throw new Error('do not get here - 0');
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
return memory;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=provider.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.utils.js","sourceRoot":"","sources":["../../ts/state/provider.utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAE/D,MAAM,UAAU,oBAAoB,CAAC,GAAQ;IAC3C,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAA;IAC9C,MAAM,oBAAoB,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAC9D,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAC9C,CAAA;IAED,eAAe;IACf,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QACtC,MAAM,UAAU,GAAG,GAAG,CAAC,aAAa,EAAE,CAAA;QAEtC,qBAAqB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAE3C,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,UAAe,EACf,QAAkB;IAElB,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IAElE,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAC,EAAE,EAAE;QACxD,IAAG,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC3C,OAAM,CAAC,4CAA4C;QACrD,CAAC;QAED,MAAM,WAAW,GAAG,WAAW,KAAK,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAA;QAC/E,IAAG,WAAW,EAAE,CAAC;YACf,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YAC7C,gBAAgB,CACd,GAAG,CAAC,UAAU,EACd,KAAK,CACN,CAAA;QACH,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,GAAQ,EACR,QAAkB,EAClB,SAA4B,EAAE;IAE9B,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAA;IAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAA;IAChC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAC9B,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,eAAe,KAAK,QAAQ,CAAC,eAAe,CACpE,CAAA;IAED,IAAG,WAAW,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC;YACV,GAAG;YACH,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,QAAQ,EAAE,WAAW;SACtB,CAAC,CAAA;IACJ,CAAC;IAED,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAChD,KAAK,EACL,QAAQ,EACR,MAAM,CACP,CAAC,CAAA;IAEF,MAAM,CAAC,OAAO,CAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAE;QACvB,IAAG,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;QACxC,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type Provider = {
|
|
2
|
+
constructMethod: any;
|
|
3
|
+
instance: any;
|
|
4
|
+
clone: any;
|
|
5
|
+
};
|
|
6
|
+
type ProviderConstructor<T> = (new (...args: any[]) => T) | (() => T);
|
|
7
|
+
type functionProvider = <T>() => T;
|
|
8
|
+
type classProvider = new <T>(...args: any[]) => T;
|
|
9
|
+
export declare const providers: {
|
|
10
|
+
create: <T>(constructMethod: classProvider | functionProvider) => T;
|
|
11
|
+
/**
|
|
12
|
+
* @template T
|
|
13
|
+
* @param {(new (...args: any[]) => T) | () => T} constructor
|
|
14
|
+
* @returns {T}
|
|
15
|
+
*/
|
|
16
|
+
inject: <T_1>(constructor: ProviderConstructor<T_1>) => T_1;
|
|
17
|
+
};
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { deepClone } from '../deepFunctions';
|
|
2
|
+
import { setUse } from './setUse.function';
|
|
3
|
+
// TODO: rename
|
|
4
|
+
setUse.memory.providerConfig = {
|
|
5
|
+
providers: [],
|
|
6
|
+
//currentTagSupport: undefined as TagSupport | 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.templater.global.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.templater.global.providers = [...config.providers];
|
|
74
|
+
config.providers.length = 0;
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
function run(tagSupport, ownerTag) {
|
|
78
|
+
const config = setUse.memory.providerConfig;
|
|
79
|
+
// config.currentTagSupport = tagSupport
|
|
80
|
+
config.ownerTag = ownerTag;
|
|
81
|
+
if (tagSupport.templater.global.providers.length) {
|
|
82
|
+
config.providers.length = 0;
|
|
83
|
+
config.providers.push(...tagSupport.templater.global.providers);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=providers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../ts/state/providers.ts"],"names":[],"mappings":"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"}
|