taggedjs 2.4.32 → 2.5.5
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 +3367 -2879
- package/bundle.js.map +1 -1
- package/js/Props.d.ts +1 -1
- package/js/Tag.class.d.ts +1 -1
- package/js/TagSupport.class.d.ts +1 -1
- package/js/TagSupport.class.js +26 -19
- package/js/TagSupport.class.js.map +1 -1
- package/js/TemplaterResult.class.d.ts +14 -12
- package/js/TemplaterResult.class.js +12 -58
- package/js/TemplaterResult.class.js.map +1 -1
- package/js/afterInterpolateElement.function.d.ts +2 -2
- package/js/alterProps.function.d.ts +3 -4
- package/js/alterProps.function.js +39 -16
- package/js/alterProps.function.js.map +1 -1
- package/js/checkDestroyPrevious.function.d.ts +4 -4
- package/js/checkDestroyPrevious.function.js +7 -5
- package/js/checkDestroyPrevious.function.js.map +1 -1
- package/js/cloneValueArray.function.d.ts +1 -1
- package/js/deepFunctions.js +1 -1
- package/js/deepFunctions.js.map +1 -1
- package/js/destroy.support.d.ts +1 -1
- package/js/destroyTag.function.d.ts +1 -1
- package/js/destroyTag.function.js +0 -2
- package/js/destroyTag.function.js.map +1 -1
- package/js/hasTagSupportChanged.function.d.ts +1 -1
- package/js/index.d.ts +18 -10
- package/js/index.js +17 -15
- package/js/index.js.map +1 -1
- package/js/insertAfter.function.d.ts +1 -1
- package/js/interpolations/Clones.type.d.ts +3 -0
- package/js/interpolations/Clones.type.js +2 -0
- package/js/interpolations/Clones.type.js.map +1 -0
- package/js/interpolations/ElementTargetEvent.interface.d.ts +6 -0
- package/js/interpolations/ElementTargetEvent.interface.js +2 -0
- package/js/interpolations/ElementTargetEvent.interface.js.map +1 -0
- package/js/interpolations/afterInterpolateElement.function.d.ts +4 -0
- package/js/interpolations/afterInterpolateElement.function.js +12 -0
- package/js/interpolations/afterInterpolateElement.function.js.map +1 -0
- package/js/interpolations/bindSubjectCallback.function.d.ts +1 -1
- package/js/interpolations/bindSubjectCallback.function.js +11 -7
- package/js/interpolations/bindSubjectCallback.function.js.map +1 -1
- package/js/interpolations/interpolateAttributes.d.ts +2 -2
- package/js/interpolations/interpolateAttributes.js +5 -0
- package/js/interpolations/interpolateAttributes.js.map +1 -1
- package/js/interpolations/interpolateContentTemplates.d.ts +2 -2
- package/js/interpolations/interpolateElement.d.ts +2 -2
- package/js/interpolations/interpolateElement.js +1 -1
- package/js/interpolations/interpolateElement.js.map +1 -1
- package/js/interpolations/interpolateTemplate.d.ts +4 -4
- package/js/interpolations/interpolateTemplate.js +19 -4
- package/js/interpolations/interpolateTemplate.js.map +1 -1
- package/js/interpolations/processAttribute.function.d.ts +2 -2
- package/js/interpolations/scanTextAreaValue.function.d.ts +2 -2
- package/js/isInstance.d.ts +2 -2
- package/js/isInstance.js +2 -1
- package/js/isInstance.js.map +1 -1
- package/js/isLikeTags.function.d.ts +2 -1
- package/js/isLikeTags.function.js +3 -0
- package/js/isLikeTags.function.js.map +1 -1
- package/js/processNewValue.function.d.ts +1 -1
- package/js/processNewValue.function.js +1 -1
- package/js/processNewValue.function.js.map +1 -1
- package/js/processSubjectComponent.function.d.ts +1 -1
- package/js/processSubjectComponent.function.js +2 -16
- package/js/processSubjectComponent.function.js.map +1 -1
- package/js/processSubjectValue.function.d.ts +2 -2
- package/js/processSubjectValue.function.js +2 -2
- package/js/processSubjectValue.function.js.map +1 -1
- package/js/processTag.function.d.ts +1 -1
- package/js/processTag.function.js +1 -1
- package/js/processTag.function.js.map +1 -1
- package/js/processTagArray.d.ts +1 -1
- package/js/processTagArray.js +2 -2
- package/js/processTagArray.js.map +1 -1
- package/js/processTagResult.function.d.ts +2 -2
- package/js/render.d.ts +1 -1
- package/js/renderExistingTag.function.d.ts +1 -1
- package/js/renderExistingTag.function.js +4 -7
- package/js/renderExistingTag.function.js.map +1 -1
- package/js/renderSubjectComponent.function.d.ts +3 -0
- package/js/renderSubjectComponent.function.js +14 -0
- package/js/renderSubjectComponent.function.js.map +1 -0
- package/js/renderTagOnly.function.d.ts +4 -0
- package/js/renderTagOnly.function.js +39 -0
- package/js/renderTagOnly.function.js.map +1 -0
- package/js/renderTagSupport.function.d.ts +3 -2
- package/js/renderTagSupport.function.js +7 -9
- package/js/renderTagSupport.function.js.map +1 -1
- package/js/renderWithSupport.function.d.ts +5 -0
- package/js/renderWithSupport.function.js +31 -0
- package/js/renderWithSupport.function.js.map +1 -0
- package/js/state/callbackMaker.function.d.ts +3 -2
- package/js/state/callbackMaker.function.js +37 -18
- package/js/state/callbackMaker.function.js.map +1 -1
- package/js/state/children.d.ts +1 -0
- package/js/state/children.js +14 -0
- package/js/state/children.js.map +1 -0
- package/js/state/index.d.ts +2 -2
- package/js/state/index.js +1 -1
- package/js/state/index.js.map +1 -1
- package/js/state/letState.function.js.map +1 -1
- package/js/state/onDestroy.js +8 -6
- package/js/state/onDestroy.js.map +1 -1
- package/js/state/onInit.js +2 -2
- package/js/state/onInit.js.map +1 -1
- package/js/state/provider.utils.d.ts +1 -1
- package/js/state/provider.utils.js +7 -7
- package/js/state/provider.utils.js.map +1 -1
- package/js/state/providers.d.ts +4 -2
- package/js/state/providers.js +56 -40
- package/js/state/providers.js.map +1 -1
- package/js/state/setProp.function.js.map +1 -1
- package/js/state/setUse.function.d.ts +9 -8
- package/js/state/setUse.function.js.map +1 -1
- package/js/state/state.function.js +17 -0
- package/js/state/state.function.js.map +1 -1
- package/js/state/state.utils.d.ts +5 -6
- package/js/state/state.utils.js +44 -27
- package/js/state/state.utils.js.map +1 -1
- package/js/state/syncStates.function.d.ts +2 -0
- package/js/state/syncStates.function.js +11 -0
- package/js/state/syncStates.function.js.map +1 -0
- package/js/state/watch.function.d.ts +20 -3
- package/js/state/watch.function.js +106 -10
- package/js/state/watch.function.js.map +1 -1
- package/js/subject/Subject.class.d.ts +10 -2
- package/js/subject/Subject.class.js +31 -54
- package/js/subject/Subject.class.js.map +1 -1
- package/js/subject/Subject.utils.d.ts +6 -3
- package/js/subject/Subject.utils.js +51 -3
- package/js/subject/Subject.utils.js.map +1 -1
- package/js/subject/ValueSubject.d.ts +2 -2
- package/js/subject/combineLatest.function.js +10 -2
- package/js/subject/combineLatest.function.js.map +1 -1
- package/js/subject/subject.cancel.d.ts +2 -0
- package/js/subject/subject.cancel.js +3 -0
- package/js/subject/subject.cancel.js.map +1 -0
- package/js/subject/will.functions.d.ts +1 -1
- package/js/subject.types.d.ts +2 -2
- package/js/tag/Tag.class.d.ts +43 -0
- package/js/tag/Tag.class.js +27 -0
- package/js/tag/Tag.class.js.map +1 -0
- package/js/tag/TagSupport.class.d.ts +58 -0
- package/js/tag/TagSupport.class.js +321 -0
- package/js/tag/TagSupport.class.js.map +1 -0
- package/js/tag/checkDestroyPrevious.function.d.ts +8 -0
- package/js/tag/checkDestroyPrevious.function.js +83 -0
- package/js/tag/checkDestroyPrevious.function.js.map +1 -0
- package/js/tag/cloneValueArray.function.d.ts +2 -0
- package/js/tag/cloneValueArray.function.js +19 -0
- package/js/tag/cloneValueArray.function.js.map +1 -0
- package/js/tag/destroy.support.d.ts +6 -0
- package/js/tag/destroy.support.js +10 -0
- package/js/tag/destroy.support.js.map +1 -0
- package/js/tag/destroyTag.function.d.ts +3 -0
- package/js/tag/destroyTag.function.js +12 -0
- package/js/tag/destroyTag.function.js.map +1 -0
- package/js/tag/elementDestroyCheck.function.d.ts +3 -0
- package/js/tag/elementDestroyCheck.function.js +17 -0
- package/js/tag/elementDestroyCheck.function.js.map +1 -0
- package/js/tag/getSupportInCycle.function.d.ts +1 -0
- package/js/tag/getSupportInCycle.function.js +5 -0
- package/js/tag/getSupportInCycle.function.js.map +1 -0
- package/js/tag/hasPropChanges.function.d.ts +9 -0
- package/js/tag/hasPropChanges.function.js +80 -0
- package/js/tag/hasPropChanges.function.js.map +1 -0
- package/js/tag/hasTagSupportChanged.function.d.ts +4 -0
- package/js/tag/hasTagSupportChanged.function.js +23 -0
- package/js/tag/hasTagSupportChanged.function.js.map +1 -0
- package/js/tag/html.d.ts +4 -0
- package/js/tag/html.js +5 -0
- package/js/tag/html.js.map +1 -0
- package/js/tag/isLikeTags.function.d.ts +5 -0
- package/js/tag/isLikeTags.function.js +42 -0
- package/js/tag/isLikeTags.function.js.map +1 -0
- package/js/tag/render/renderExistingTag.function.d.ts +7 -0
- package/js/tag/render/renderExistingTag.function.js +45 -0
- package/js/tag/render/renderExistingTag.function.js.map +1 -0
- package/js/tag/render/renderSubjectComponent.function.d.ts +3 -0
- package/js/tag/render/renderSubjectComponent.function.js +14 -0
- package/js/tag/render/renderSubjectComponent.function.js.map +1 -0
- package/js/tag/render/renderTagOnly.function.d.ts +3 -0
- package/js/tag/render/renderTagOnly.function.js +41 -0
- package/js/tag/render/renderTagOnly.function.js.map +1 -0
- package/js/tag/render/renderTagSupport.function.d.ts +4 -0
- package/js/tag/render/renderTagSupport.function.js +37 -0
- package/js/tag/render/renderTagSupport.function.js.map +1 -0
- package/js/tag/render/renderWithSupport.function.d.ts +5 -0
- package/js/tag/render/renderWithSupport.function.js +31 -0
- package/js/tag/render/renderWithSupport.function.js.map +1 -0
- package/js/tag/setTagPlaceholder.function.d.ts +4 -0
- package/js/tag/setTagPlaceholder.function.js +12 -0
- package/js/tag/setTagPlaceholder.function.js.map +1 -0
- package/js/tag/tag.d.ts +26 -0
- package/js/tag/tag.js +121 -0
- package/js/tag/tag.js.map +1 -0
- package/js/tag/tagElement.d.ts +9 -0
- package/js/tag/tagElement.js +58 -0
- package/js/tag/tagElement.js.map +1 -0
- package/js/tag/tagRunner.d.ts +5 -0
- package/js/tag/tagRunner.js +28 -0
- package/js/tag/tagRunner.js.map +1 -0
- package/js/tag/update/processNewValue.function.d.ts +3 -0
- package/js/tag/update/processNewValue.function.js +42 -0
- package/js/tag/update/processNewValue.function.js.map +1 -0
- package/js/tag/update/processRegularValue.function.d.ts +5 -0
- package/js/tag/update/processRegularValue.function.js +15 -0
- package/js/tag/update/processRegularValue.function.js.map +1 -0
- package/js/tag/update/processSubjectComponent.function.d.ts +9 -0
- package/js/tag/update/processSubjectComponent.function.js +35 -0
- package/js/tag/update/processSubjectComponent.function.js.map +1 -0
- package/js/tag/update/processSubjectValue.function.d.ts +27 -0
- package/js/tag/update/processSubjectValue.function.js +55 -0
- package/js/tag/update/processSubjectValue.function.js.map +1 -0
- package/js/tag/update/processTag.function.d.ts +11 -0
- package/js/tag/update/processTag.function.js +46 -0
- package/js/tag/update/processTag.function.js.map +1 -0
- package/js/tag/update/processTagArray.d.ts +22 -0
- package/js/tag/update/processTagArray.js +120 -0
- package/js/tag/update/processTagArray.js.map +1 -0
- package/js/tag/update/processTagResult.function.d.ts +11 -0
- package/js/tag/update/processTagResult.function.js +30 -0
- package/js/tag/update/processTagResult.function.js.map +1 -0
- package/js/tag/update/updateContextItem.function.d.ts +3 -0
- package/js/tag/update/updateContextItem.function.js +44 -0
- package/js/tag/update/updateContextItem.function.js.map +1 -0
- package/js/tag/update/updateExistingTagComponent.function.d.ts +5 -0
- package/js/tag/update/updateExistingTagComponent.function.js +116 -0
- package/js/tag/update/updateExistingTagComponent.function.js.map +1 -0
- package/js/tag/update/updateExistingValue.function.d.ts +4 -0
- package/js/tag/update/updateExistingValue.function.js +135 -0
- package/js/tag/update/updateExistingValue.function.js.map +1 -0
- package/js/tag/updates/processNewValue.function.d.ts +3 -0
- package/js/tag/updates/processNewValue.function.js +43 -0
- package/js/tag/updates/processNewValue.function.js.map +1 -0
- package/js/tag.d.ts +8 -1
- package/js/tag.js +3 -2
- package/js/tag.js.map +1 -1
- package/js/tagElement.d.ts +2 -2
- package/js/tagElement.js +7 -1
- package/js/tagElement.js.map +1 -1
- package/js/tagRunner.d.ts +2 -3
- package/js/tagRunner.js +6 -3
- package/js/tagRunner.js.map +1 -1
- package/js/updateBeforeTemplate.function.d.ts +1 -1
- package/js/updateContextItem.function.d.ts +1 -1
- package/js/updateContextItem.function.js +2 -3
- package/js/updateContextItem.function.js.map +1 -1
- package/js/updateExistingTagComponent.function.d.ts +2 -2
- package/js/updateExistingTagComponent.function.js +3 -5
- package/js/updateExistingTagComponent.function.js.map +1 -1
- package/js/updateExistingValue.function.d.ts +3 -3
- package/js/updateExistingValue.function.js +7 -10
- package/js/updateExistingValue.function.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { isSubjectInstance } from "../isInstance";
|
|
2
|
+
import { combineLatest } from "./combineLatest.function";
|
|
3
|
+
import { getSubscription, runPipedMethods } from "./subject.utils";
|
|
1
4
|
export class Subject {
|
|
2
5
|
value;
|
|
3
6
|
onSubscription;
|
|
@@ -25,7 +28,9 @@ export class Subject {
|
|
|
25
28
|
return subscribeWith(callback);
|
|
26
29
|
}
|
|
27
30
|
this.subscribers.push(subscription);
|
|
28
|
-
|
|
31
|
+
// Subject.globalSubs.push(subscription) // 🔬 testing
|
|
32
|
+
const count = Subject.globalSubCount$.value;
|
|
33
|
+
Subject.globalSubCount$.set(count + 1); // 🔬 testing
|
|
29
34
|
if (this.onSubscription) {
|
|
30
35
|
this.onSubscription(subscription);
|
|
31
36
|
}
|
|
@@ -39,6 +44,7 @@ export class Subject {
|
|
|
39
44
|
sub.callback(value, sub);
|
|
40
45
|
});
|
|
41
46
|
}
|
|
47
|
+
// next() is available for rxjs compatibility
|
|
42
48
|
next = this.set;
|
|
43
49
|
toPromise() {
|
|
44
50
|
return new Promise((res, rej) => {
|
|
@@ -48,12 +54,13 @@ export class Subject {
|
|
|
48
54
|
});
|
|
49
55
|
});
|
|
50
56
|
}
|
|
51
|
-
|
|
57
|
+
/** like toPromise but faster */
|
|
52
58
|
toCallback(callback) {
|
|
53
59
|
this.subscribe((x, subscription) => {
|
|
54
60
|
subscription.unsubscribe();
|
|
55
61
|
callback(x);
|
|
56
62
|
});
|
|
63
|
+
return this;
|
|
57
64
|
}
|
|
58
65
|
pipe(...operations) {
|
|
59
66
|
const subject = new Subject();
|
|
@@ -61,59 +68,29 @@ export class Subject {
|
|
|
61
68
|
subject.subscribeWith = (x) => this.subscribe(x);
|
|
62
69
|
return subject;
|
|
63
70
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
71
|
+
static all(args) {
|
|
72
|
+
const switched = args.map(arg => {
|
|
73
|
+
if (isSubjectInstance(arg))
|
|
74
|
+
return arg;
|
|
75
|
+
// Call the callback immediately with the current value
|
|
76
|
+
const x = new Subject(arg, subscription => {
|
|
77
|
+
subscription.next(arg);
|
|
78
|
+
return subscription;
|
|
79
|
+
});
|
|
80
|
+
return x;
|
|
81
|
+
});
|
|
82
|
+
return combineLatest(switched);
|
|
69
83
|
}
|
|
84
|
+
static globalSubCount$ = new Subject(0); // for ease of debugging
|
|
70
85
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
const subscription = () => {
|
|
79
|
-
subscription.unsubscribe();
|
|
80
|
-
};
|
|
81
|
-
subscription.callback = callback;
|
|
82
|
-
subscription.subscriptions = [];
|
|
83
|
-
// Return a function to unsubscribe from the BehaviorSubject
|
|
84
|
-
subscription.unsubscribe = () => {
|
|
85
|
-
removeSubFromArray(subject.subscribers, callback); // each will be called when update comes in
|
|
86
|
-
removeSubFromArray(SubjectClass.globalSubs, callback); // 🔬 testing
|
|
87
|
-
SubjectClass.globalSubCount$.set(countSubject.value - 1);
|
|
88
|
-
// any double unsubscribes will be ignored
|
|
89
|
-
subscription.unsubscribe = () => subscription;
|
|
90
|
-
// unsubscribe from any combined subjects
|
|
91
|
-
subscription.subscriptions.forEach(subscription => subscription.unsubscribe());
|
|
92
|
-
return subscription;
|
|
93
|
-
};
|
|
94
|
-
subscription.add = (sub) => {
|
|
95
|
-
subscription.subscriptions.push(sub);
|
|
96
|
-
return subscription;
|
|
97
|
-
};
|
|
98
|
-
subscription.next = (value) => {
|
|
99
|
-
callback(value, subscription);
|
|
100
|
-
};
|
|
101
|
-
return subscription;
|
|
102
|
-
}
|
|
103
|
-
function runPipedMethods(value, methods, onComplete) {
|
|
104
|
-
const cloneMethods = [...methods];
|
|
105
|
-
const firstMethod = cloneMethods.shift();
|
|
106
|
-
const next = (newValue) => {
|
|
107
|
-
if (cloneMethods.length) {
|
|
108
|
-
return runPipedMethods(newValue, cloneMethods, onComplete);
|
|
109
|
-
}
|
|
110
|
-
onComplete(newValue);
|
|
111
|
-
// return newValue = next
|
|
112
|
-
};
|
|
113
|
-
let handler = next;
|
|
114
|
-
const setHandler = (x) => handler = x;
|
|
115
|
-
const pipeUtils = { setHandler, next };
|
|
116
|
-
const methodResponse = firstMethod(value, pipeUtils);
|
|
117
|
-
handler(methodResponse);
|
|
86
|
+
/*
|
|
87
|
+
export const Subject = (<T>(value?: T, onSubscription?: OnSubscription<T>) => {
|
|
88
|
+
return new Subject(value, onSubscription)
|
|
89
|
+
}) as (<T>(value?: T, onSubscription?: OnSubscription<T>) => Subject<T>) & {
|
|
90
|
+
globalSubCount$: Subject<number>
|
|
91
|
+
// globalSubs: Subscription<any>[]
|
|
92
|
+
all: <T>(...args: (T | Subject<T>)[]) => Subject<T>[]
|
|
118
93
|
}
|
|
94
|
+
*/
|
|
95
|
+
// Subject.globalSubs = [] // 🔬 for testing
|
|
119
96
|
//# sourceMappingURL=Subject.class.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Subject.class.js","sourceRoot":"","sources":["../../ts/subject/Subject.class.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Subject.class.js","sourceRoot":"","sources":["../../ts/subject/Subject.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAkE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAIlI,MAAM,OAAO,OAAO;IAQT;IACA;IART,OAAO,GAAsC,EAAE,CAAA;IAC/C,SAAS,GAAG,IAAI,CAAA;IAChB,WAAW,GAAsB,EAAE,CAAA;IACnC,aAAa,CAA+C;IAC5D,+BAA+B;IAE/B,YACS,KAAS,EACT,cAAkC;QADlC,UAAK,GAAL,KAAK,CAAI;QACT,mBAAc,GAAd,cAAc,CAAoB;IACxC,CAAC;IAEJ,SAAS,CAAC,QAA8B;QACtC,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QAEpD,wBAAwB;QACxB,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAA;QACxC,IAAG,aAAa,EAAE,CAAC;YACjB,oBAAoB;YACpB,IAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACvB,MAAM,WAAW,GAAG,QAAQ,CAAA;gBAC5B,QAAQ,GAAG,CACT,KAAU,EAEV,EAAE;oBACF,eAAe,CACb,KAAK,EACL,IAAI,CAAC,OAAO,EACZ,SAAS,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,YAAY,CAAC,CAClD,CAAA;gBACH,CAAC,CAAA;YACH,CAAC;YAED,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAA;QAChC,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACnC,sDAAsD;QACtD,MAAM,KAAK,GAAG,OAAO,CAAC,eAAe,CAAC,KAAe,CAAA;QACrD,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA,CAAC,aAAa;QAEpD,IAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAA;QACnC,CAAC;QAED,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,GAAG,CAAC,KAAW;QACb,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAElB,4CAA4C;QAC5C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC7B,sCAAsC;YACtC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QAC1B,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,6CAA6C;IAC7C,IAAI,GAAG,IAAI,CAAC,GAAG,CAAA;IAEf,SAAS;QACP,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC9B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE;gBACjC,YAAY,CAAC,WAAW,EAAE,CAAA;gBAC1B,GAAG,CAAC,CAAC,CAAC,CAAA;YACR,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,gCAAgC;IAChC,UAAU,CAAC,QAAuB;QAChC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE;YACjC,YAAY,CAAC,WAAW,EAAE,CAAA;YAC1B,QAAQ,CAAC,CAAC,CAAC,CAAA;QACb,CAAC,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAsED,IAAI,CAAC,GAAG,UAA6C;QACnD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAK,CAAA;QAChC,OAAO,CAAC,OAAO,GAAG,UAAU,CAAA;QAC5B,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAQ,CAAC,CAAA;QACvD,OAAO,OAAO,CAAA;IAChB,CAAC;IAQD,MAAM,CAAC,GAAG,CAAC,IAAW;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC9B,IAAG,iBAAiB,CAAC,GAAG,CAAC;gBAAE,OAAO,GAAG,CAAC;YAEtC,uDAAuD;YACvD,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE;gBACxC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBACtB,OAAO,YAAY,CAAA;YACrB,CAAC,CAAC,CAAA;YAEF,OAAO,CAAC,CAAA;QACV,CAAC,CAAC,CAAA;QAEF,OAAO,aAAa,CAAC,QAA0B,CAAQ,CAAA;IACzD,CAAC;IAED,MAAM,CAAC,eAAe,GAAG,IAAI,OAAO,CAAS,CAAC,CAAC,CAAA,CAAC,wBAAwB;;AAG1E;;;;;;;;EAQE;AAEF,4CAA4C"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { Subject } from "./Subject.class";
|
|
1
2
|
export type Resolve<T> = (x: T) => any;
|
|
2
|
-
export type Subscription<T> = (() => void) & {
|
|
3
|
+
export type Subscription<T> = ((arg: T) => void) & {
|
|
3
4
|
callback: SubjectSubscriber<T>;
|
|
4
5
|
unsubscribe: () => Subscription<T>;
|
|
5
6
|
add: (sub: Subscription<T>) => Subscription<T>;
|
|
@@ -7,10 +8,10 @@ export type Subscription<T> = (() => void) & {
|
|
|
7
8
|
subscriptions: Subscription<T>[];
|
|
8
9
|
};
|
|
9
10
|
export type SubjectSubscriber<T> = (value: T, subscription: Subscription<T>) => unknown;
|
|
10
|
-
export
|
|
11
|
+
export type SubjectLike<T> = {
|
|
11
12
|
subscribe?: (callback: SubjectSubscriber<T>) => any;
|
|
12
13
|
isSubject?: boolean;
|
|
13
|
-
}
|
|
14
|
+
};
|
|
14
15
|
export type Closer<T> = {
|
|
15
16
|
createCallback: (callback: (result: T) => any) => any;
|
|
16
17
|
subscribe: (subject: SubjectLike<T>) => any;
|
|
@@ -27,3 +28,5 @@ export type PipeUtils<H> = {
|
|
|
27
28
|
setHandler: setHandler<H>;
|
|
28
29
|
next: (newValue: any) => any;
|
|
29
30
|
};
|
|
31
|
+
export declare function getSubscription<T>(subject: Subject<T>, callback: SubjectSubscriber<any>): Subscription<any>;
|
|
32
|
+
export declare function runPipedMethods(value: any, methods: OperatorFunction<any, any, any>[], onComplete: (lastValue: any) => any): void;
|
|
@@ -1,4 +1,52 @@
|
|
|
1
|
-
|
|
1
|
+
import { Subject } from "./Subject.class";
|
|
2
|
+
function removeSubFromArray(subscribers, callback) {
|
|
3
|
+
const index = subscribers.findIndex(sub => sub.callback === callback);
|
|
4
|
+
if (index !== -1) {
|
|
5
|
+
subscribers.splice(index, 1);
|
|
6
|
+
}
|
|
2
7
|
}
|
|
3
|
-
export {
|
|
4
|
-
|
|
8
|
+
export function getSubscription(subject, callback) {
|
|
9
|
+
const countSubject = Subject.globalSubCount$;
|
|
10
|
+
Subject.globalSubCount$.set(countSubject.value + 1);
|
|
11
|
+
const subscription = () => {
|
|
12
|
+
subscription.unsubscribe();
|
|
13
|
+
};
|
|
14
|
+
subscription.callback = callback;
|
|
15
|
+
subscription.subscriptions = [];
|
|
16
|
+
// Return a function to unsubscribe from the BehaviorSubject
|
|
17
|
+
subscription.unsubscribe = () => {
|
|
18
|
+
removeSubFromArray(subject.subscribers, callback); // each will be called when update comes in
|
|
19
|
+
// removeSubFromArray(Subject.globalSubs, callback) // 🔬 testing
|
|
20
|
+
Subject.globalSubCount$.set(countSubject.value - 1);
|
|
21
|
+
// any double unsubscribes will be ignored
|
|
22
|
+
subscription.unsubscribe = () => subscription;
|
|
23
|
+
// unsubscribe from any combined subjects
|
|
24
|
+
subscription.subscriptions.forEach(subscription => subscription.unsubscribe());
|
|
25
|
+
return subscription;
|
|
26
|
+
};
|
|
27
|
+
subscription.add = (sub) => {
|
|
28
|
+
subscription.subscriptions.push(sub);
|
|
29
|
+
return subscription;
|
|
30
|
+
};
|
|
31
|
+
subscription.next = (value) => {
|
|
32
|
+
callback(value, subscription);
|
|
33
|
+
};
|
|
34
|
+
return subscription;
|
|
35
|
+
}
|
|
36
|
+
export function runPipedMethods(value, methods, onComplete) {
|
|
37
|
+
const cloneMethods = [...methods];
|
|
38
|
+
const firstMethod = cloneMethods.shift();
|
|
39
|
+
const next = (newValue) => {
|
|
40
|
+
if (cloneMethods.length) {
|
|
41
|
+
return runPipedMethods(newValue, cloneMethods, onComplete);
|
|
42
|
+
}
|
|
43
|
+
onComplete(newValue);
|
|
44
|
+
// return newValue = next
|
|
45
|
+
};
|
|
46
|
+
let handler = next;
|
|
47
|
+
const setHandler = (x) => handler = x;
|
|
48
|
+
const pipeUtils = { setHandler, next };
|
|
49
|
+
const methodResponse = firstMethod(value, pipeUtils);
|
|
50
|
+
handler(methodResponse);
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=subject.utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"subject.utils.js","sourceRoot":"","sources":["../../ts/subject/subject.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AA4CzC,SAAS,kBAAkB,CACzB,WAAgC,EAChC,QAAgC;IAEhC,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAA;IACrE,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IAC9B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,OAAmB,EACnB,QAAgC;IAEhC,MAAM,YAAY,GAAG,OAAO,CAAC,eAAkC,CAAA;IAC/D,OAAO,CAAC,eAAe,CAAC,GAAG,CAAE,YAAY,CAAC,KAAK,GAAG,CAAC,CAAE,CAAA;IAErD,MAAM,YAAY,GAAsB,GAAG,EAAE;QAC3C,YAAY,CAAC,WAAW,EAAE,CAAA;IAC5B,CAAC,CAAA;IAED,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAChC,YAAY,CAAC,aAAa,GAAG,EAAE,CAAA;IAE/B,4DAA4D;IAC5D,YAAY,CAAC,WAAW,GAAG,GAAG,EAAE;QAC9B,kBAAkB,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA,CAAC,2CAA2C;QAC7F,iEAAiE;QACjE,OAAO,CAAC,eAAe,CAAC,GAAG,CAAE,YAAY,CAAC,KAAK,GAAG,CAAC,CAAE,CAAA;QAErD,0CAA0C;QAC1C,YAAY,CAAC,WAAW,GAAG,GAAG,EAAE,CAAC,YAAY,CAAA;QAE7C,yCAAyC;QACzC,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAA;QAE9E,OAAO,YAAY,CAAA;IACrB,CAAC,CAAA;IAED,YAAY,CAAC,GAAG,GAAG,CAAC,GAAoB,EAAE,EAAE;QAC1C,YAAY,CAAC,aAAa,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;QACtC,OAAO,YAAY,CAAA;IACrB,CAAC,CAAA;IAED,YAAY,CAAC,IAAI,GAAG,CAAC,KAAU,EAAE,EAAE;QACjC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;IAC/B,CAAC,CAAA;IAED,OAAO,YAAY,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,KAAU,EACV,OAA0C,EAC1C,UAAmC;IAEnC,MAAM,YAAY,GAAG,CAAC,GAAG,OAAO,CAAC,CAAA;IAEjC,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,EAAqC,CAAA;IAE3E,MAAM,IAAI,GAAG,CAAC,QAAa,EAAE,EAAE;QAC7B,IAAG,YAAY,CAAC,MAAM,EAAE,CAAC;YACvB,OAAO,eAAe,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,CAAC,CAAA;QAC5D,CAAC;QAED,UAAU,CAAC,QAAQ,CAAC,CAAA;QACpB,yBAAyB;IAC3B,CAAC,CAAA;IAED,IAAI,OAAO,GAAiB,IAAI,CAAA;IAEhC,MAAM,UAAU,GAAoB,CAAC,CAAe,EAAE,EAAE,CAAC,OAAO,GAAG,CAAC,CAAA;IACpE,MAAM,SAAS,GAAG,EAAC,UAAU,EAAE,IAAI,EAAC,CAAA;IACpC,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IACpD,OAAO,CAAC,cAAc,CAAC,CAAA;AACzB,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Subject } from './Subject.class';
|
|
2
|
-
import { Subscription } from './
|
|
2
|
+
import { Subscription } from './subject.utils';
|
|
3
3
|
type ValueSubjectSubscriber<T> = (value: T, subscription: Subscription<T>) => unknown;
|
|
4
4
|
export declare class ValueSubject<T> extends Subject<T> {
|
|
5
5
|
value: T;
|
|
6
6
|
constructor(value: T);
|
|
7
|
-
subscribe(callback: ValueSubjectSubscriber<T>): Subscription<
|
|
7
|
+
subscribe(callback: ValueSubjectSubscriber<T>): Subscription<T> | Subscription<any>;
|
|
8
8
|
}
|
|
9
9
|
export {};
|
|
@@ -7,9 +7,17 @@ export function combineLatest(subjects) {
|
|
|
7
7
|
const setValue = (x, index) => {
|
|
8
8
|
valuesSeen[index] = true;
|
|
9
9
|
values[index] = x;
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
const countMatched = valuesSeen.length === subjects.length;
|
|
11
|
+
if (!countMatched) {
|
|
12
|
+
return;
|
|
12
13
|
}
|
|
14
|
+
for (let index = valuesSeen.length - 1; index >= 0; --index) {
|
|
15
|
+
if (!valuesSeen[index]) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
// everyone has reported values
|
|
20
|
+
callback(values, subscription);
|
|
13
21
|
};
|
|
14
22
|
const clones = [...subjects];
|
|
15
23
|
const firstSub = clones.shift();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combineLatest.function.js","sourceRoot":"","sources":["../../ts/subject/combineLatest.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAGzC,MAAM,UAAU,aAAa,CAC3B,QAAwB;IAExB,MAAM,MAAM,GAAG,IAAI,OAAO,EAAE,CAAA;IAE5B,MAAM,SAAS,GAAG,CAChB,QAAgC,EAChC,EAAE;QACF,MAAM,UAAU,GAAW,EAAE,CAAA;QAC7B,MAAM,MAAM,GAAU,EAAE,CAAA;QACxB,MAAM,QAAQ,GAAG,CAAC,CAAM,EAAE,KAAa,EAAE,EAAE;YACzC,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;YACxB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"combineLatest.function.js","sourceRoot":"","sources":["../../ts/subject/combineLatest.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAGzC,MAAM,UAAU,aAAa,CAC3B,QAAwB;IAExB,MAAM,MAAM,GAAG,IAAI,OAAO,EAAE,CAAA;IAE5B,MAAM,SAAS,GAAG,CAChB,QAAgC,EAChC,EAAE;QACF,MAAM,UAAU,GAAW,EAAE,CAAA;QAC7B,MAAM,MAAM,GAAU,EAAE,CAAA;QACxB,MAAM,QAAQ,GAAG,CAAC,CAAM,EAAE,KAAa,EAAE,EAAE;YACzC,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;YACxB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACjB,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,CAAA;YAE1D,IAAG,CAAC,YAAY,EAAE,CAAC;gBACjB,OAAM;YACR,CAAC;YAED,KAAK,IAAI,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;gBAC5D,IAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;oBACtB,OAAM;gBACR,CAAC;YACH,CAAC;YAED,+BAA+B;YAC/B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;QAChC,CAAC,CAAA;QAED,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAA;QAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAkB,CAAA;QAC/C,MAAM,YAAY,GAAsB,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAE/E,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAEpG,YAAY,CAAC,aAAa,GAAG,aAAa,CAAA;QAE1C,OAAO,YAAY,CAAA;IACrB,CAAC,CAAA;IAED,MAAM,CAAC,aAAa,GAAG,SAAS,CAAA;IAEhC,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subject.cancel.js","sourceRoot":"","sources":["../../ts/subject/subject.cancel.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,MAAM;CAAG"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { OperatorFunction, SubjectLike } from "./
|
|
1
|
+
import { OperatorFunction, SubjectLike } from "./subject.utils";
|
|
2
2
|
type WillCallback<T, R> = (lastValue: T, resolve: (result: R) => void) => void;
|
|
3
3
|
export declare function willCallback<T = any, R = any>(callback: WillCallback<T, R>): OperatorFunction<T, R, any>;
|
|
4
4
|
/** .pipe( promise((x) => Promise.resolve(44)) ) */
|
package/js/subject.types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { InsertBefore } from "./Clones.type";
|
|
2
|
-
import { TagSupport } from "./TagSupport.class";
|
|
1
|
+
import { InsertBefore } from "./interpolations/Clones.type";
|
|
2
|
+
import { TagSupport } from "./tag/TagSupport.class";
|
|
3
3
|
import { TemplaterResult } from "./TemplaterResult.class";
|
|
4
4
|
import { Template } from "./interpolations/interpolateTemplate";
|
|
5
5
|
import { Subject } from "./subject/Subject.class";
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Counts } from '../interpolations/interpolateTemplate';
|
|
2
|
+
import { State } from '../state';
|
|
3
|
+
import { InterpolatedTemplates } from '../interpolations/interpolations';
|
|
4
|
+
import { InterpolateSubject } from './update/processSubjectValue.function';
|
|
5
|
+
import { TemplaterResult } from '../TemplaterResult.class';
|
|
6
|
+
import { TagValues } from './html';
|
|
7
|
+
export declare const variablePrefix = "__tagvar";
|
|
8
|
+
export declare const escapeVariable: string;
|
|
9
|
+
export declare const escapeSearch: RegExp;
|
|
10
|
+
export type Context = {
|
|
11
|
+
[index: string]: InterpolateSubject;
|
|
12
|
+
};
|
|
13
|
+
export type TagMemory = {
|
|
14
|
+
state: State;
|
|
15
|
+
};
|
|
16
|
+
export interface TagTemplate {
|
|
17
|
+
interpolation: InterpolatedTemplates;
|
|
18
|
+
string: string;
|
|
19
|
+
strings: string[];
|
|
20
|
+
values: unknown[];
|
|
21
|
+
context: Context;
|
|
22
|
+
}
|
|
23
|
+
export declare class Tag {
|
|
24
|
+
strings: string[];
|
|
25
|
+
values: any[];
|
|
26
|
+
isTagClass: boolean;
|
|
27
|
+
memory: {
|
|
28
|
+
arrayValue?: unknown;
|
|
29
|
+
};
|
|
30
|
+
templater: TemplaterResult;
|
|
31
|
+
constructor(strings: string[], values: any[]);
|
|
32
|
+
/** Used for array, such as array.map(), calls aka array.map(x => html``.key(x)) */
|
|
33
|
+
key(arrayValue: unknown): this;
|
|
34
|
+
children?: {
|
|
35
|
+
strings: string[] | TemplateStringsArray;
|
|
36
|
+
values: TagValues;
|
|
37
|
+
};
|
|
38
|
+
html(strings: string[] | TemplateStringsArray, ...values: TagValues): this;
|
|
39
|
+
}
|
|
40
|
+
export type ElementBuildOptions = {
|
|
41
|
+
counts: Counts;
|
|
42
|
+
forceElement?: boolean;
|
|
43
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export const variablePrefix = '__tagvar';
|
|
2
|
+
export const escapeVariable = '--' + variablePrefix + '--';
|
|
3
|
+
export const escapeSearch = new RegExp(escapeVariable, 'g');
|
|
4
|
+
export class Tag {
|
|
5
|
+
strings;
|
|
6
|
+
values;
|
|
7
|
+
isTagClass = true;
|
|
8
|
+
// present only when an array. Populated by Tag.key()
|
|
9
|
+
memory = {};
|
|
10
|
+
templater;
|
|
11
|
+
constructor(strings, values) {
|
|
12
|
+
this.strings = strings;
|
|
13
|
+
this.values = values;
|
|
14
|
+
}
|
|
15
|
+
/** Used for array, such as array.map(), calls aka array.map(x => html``.key(x)) */
|
|
16
|
+
key(arrayValue) {
|
|
17
|
+
this.memory.arrayValue = arrayValue;
|
|
18
|
+
return this;
|
|
19
|
+
}
|
|
20
|
+
// TODO: Is this just a fake function that can be data typed?
|
|
21
|
+
children;
|
|
22
|
+
html(strings, ...values) {
|
|
23
|
+
this.children = { strings, values };
|
|
24
|
+
return this;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=Tag.class.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tag.class.js","sourceRoot":"","sources":["../../ts/tag/Tag.class.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAA;AACxC,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,GAAG,cAAc,GAAG,IAAI,CAAA;AAE1D,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,CAAA;AAkB3D,MAAM,OAAO,GAAG;IAYL;IACA;IAZT,UAAU,GAAG,IAAI,CAAA;IAEjB,qDAAqD;IACrD,MAAM,GAAG,EAGR,CAAA;IAED,SAAS,CAAkB;IAE3B,YACS,OAAiB,EACjB,MAAa;QADb,YAAO,GAAP,OAAO,CAAU;QACjB,WAAM,GAAN,MAAM,CAAO;IACnB,CAAC;IAEJ,mFAAmF;IACnF,GAAG,CAAC,UAAmB;QACrB,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAA;QACnC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,6DAA6D;IAC7D,QAAQ,CAAgE;IACxE,IAAI,CACF,OAAwC,EACxC,GAAG,MAAiB;QAEpB,IAAI,CAAC,QAAQ,GAAG,EAAC,OAAO,EAAE,MAAM,EAAC,CAAA;QACjC,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Props } from '../Props';
|
|
2
|
+
import { Context, ElementBuildOptions, TagMemory, TagTemplate } from './Tag.class';
|
|
3
|
+
import { TagGlobal, TemplaterResult } from '../TemplaterResult.class';
|
|
4
|
+
import { TagSubject } from '../subject.types';
|
|
5
|
+
import { DestroyOptions } from './destroy.support';
|
|
6
|
+
import { InsertBefore } from '../interpolations/Clones.type';
|
|
7
|
+
/** used only for apps, otherwise use TagSupport */
|
|
8
|
+
export declare class BaseTagSupport {
|
|
9
|
+
templater: TemplaterResult;
|
|
10
|
+
subject: TagSubject;
|
|
11
|
+
isApp: boolean;
|
|
12
|
+
appElement?: Element;
|
|
13
|
+
strings?: string[];
|
|
14
|
+
values?: any[];
|
|
15
|
+
lastTemplateString: string | undefined;
|
|
16
|
+
propsConfig: {
|
|
17
|
+
latest: Props;
|
|
18
|
+
latestCloned: Props;
|
|
19
|
+
lastClonedKidValues: unknown[][];
|
|
20
|
+
};
|
|
21
|
+
memory: TagMemory;
|
|
22
|
+
clones: (Element | Text | ChildNode)[];
|
|
23
|
+
global: TagGlobal;
|
|
24
|
+
hasLiveElements: boolean;
|
|
25
|
+
constructor(templater: TemplaterResult, subject: TagSubject);
|
|
26
|
+
/** Function that kicks off actually putting tags down as HTML elements */
|
|
27
|
+
buildBeforeElement(insertBefore: InsertBefore, options?: ElementBuildOptions): void;
|
|
28
|
+
getTemplate(): TagTemplate;
|
|
29
|
+
update(): Context;
|
|
30
|
+
updateContext(context: Context): Context;
|
|
31
|
+
}
|
|
32
|
+
export declare class TagSupport extends BaseTagSupport {
|
|
33
|
+
templater: TemplaterResult;
|
|
34
|
+
ownerTagSupport: TagSupport;
|
|
35
|
+
subject: TagSubject;
|
|
36
|
+
version: number;
|
|
37
|
+
isApp: boolean;
|
|
38
|
+
childTags: TagSupport[];
|
|
39
|
+
constructor(templater: TemplaterResult, // at runtime rendering of a tag, it needs to be married to a new TagSupport()
|
|
40
|
+
ownerTagSupport: TagSupport, subject: TagSubject, version?: number);
|
|
41
|
+
destroy(options?: DestroyOptions): Promise<number>;
|
|
42
|
+
destroySubscriptions(): void;
|
|
43
|
+
destroyClones({ stagger }?: DestroyOptions): {
|
|
44
|
+
promise: Promise<(void | undefined)[]>;
|
|
45
|
+
stagger: number;
|
|
46
|
+
} | {
|
|
47
|
+
stagger: number;
|
|
48
|
+
promise?: undefined;
|
|
49
|
+
};
|
|
50
|
+
/** Reviews elements for the presences of ondestroy */
|
|
51
|
+
checkCloneRemoval(clone: Element | Text | ChildNode, stagger: number): Promise<void> | undefined;
|
|
52
|
+
updateBy(tagSupport: TagSupport): void;
|
|
53
|
+
updateConfig(strings: string[], values: any[]): void;
|
|
54
|
+
updateValues(values: any[]): Context;
|
|
55
|
+
/** Used during HMR only where static content itself could have been edited */
|
|
56
|
+
rebuild(): Promise<TagSupport>;
|
|
57
|
+
getAppTagSupport(): TagSupport;
|
|
58
|
+
}
|