@fncts/observable 0.0.31 → 0.0.33
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/Action.d.ts +2 -1
- package/AsyncScheduler.d.ts +1 -1
- package/LICENSE +26 -0
- package/ObservableRef/api.d.ts +3 -3
- package/ObservableRef/definition.d.ts +3 -3
- package/_cjs/Action.cjs +15 -16
- package/_cjs/Action.cjs.map +1 -1
- package/_cjs/AnimationFrameAction.cjs +30 -33
- package/_cjs/AnimationFrameAction.cjs.map +1 -1
- package/_cjs/AnimationFrameScheduler.cjs +30 -35
- package/_cjs/AnimationFrameScheduler.cjs.map +1 -1
- package/_cjs/AsyncAction.cjs +73 -88
- package/_cjs/AsyncAction.cjs.map +1 -1
- package/_cjs/AsyncScheduler.cjs +35 -41
- package/_cjs/AsyncScheduler.cjs.map +1 -1
- package/_cjs/BehaviorSubject.cjs +31 -37
- package/_cjs/BehaviorSubject.cjs.map +1 -1
- package/_cjs/Notification.cjs +65 -70
- package/_cjs/Notification.cjs.map +1 -1
- package/_cjs/Observable/api/connect.cjs +23 -25
- package/_cjs/Observable/api/connect.cjs.map +1 -1
- package/_cjs/Observable/api/connectable.cjs +46 -45
- package/_cjs/Observable/api/connectable.cjs.map +1 -1
- package/_cjs/Observable/api/fromCallback.cjs +44 -48
- package/_cjs/Observable/api/fromCallback.cjs.map +1 -1
- package/_cjs/Observable/api/fromEvent.cjs +15 -15
- package/_cjs/Observable/api/fromEvent.cjs.map +1 -1
- package/_cjs/Observable/api/index.cjs +32 -160
- package/_cjs/Observable/api/race.cjs +26 -30
- package/_cjs/Observable/api/race.cjs.map +1 -1
- package/_cjs/Observable/api/raceWith.cjs +14 -15
- package/_cjs/Observable/api/raceWith.cjs.map +1 -1
- package/_cjs/Observable/api/repeatWhen.cjs +54 -57
- package/_cjs/Observable/api/repeatWhen.cjs.map +1 -1
- package/_cjs/Observable/api/retryWhen.cjs +37 -41
- package/_cjs/Observable/api/retryWhen.cjs.map +1 -1
- package/_cjs/Observable/api/share.cjs +73 -83
- package/_cjs/Observable/api/share.cjs.map +1 -1
- package/_cjs/Observable/api/window.cjs +46 -43
- package/_cjs/Observable/api/window.cjs.map +1 -1
- package/_cjs/Observable/api/windowCount.cjs +45 -51
- package/_cjs/Observable/api/windowCount.cjs.map +1 -1
- package/_cjs/Observable/api/windowTime.cjs +73 -74
- package/_cjs/Observable/api/windowTime.cjs.map +1 -1
- package/_cjs/Observable/api/windowToggle.cjs +71 -74
- package/_cjs/Observable/api/windowToggle.cjs.map +1 -1
- package/_cjs/Observable/api/windowWhen.cjs +59 -55
- package/_cjs/Observable/api/windowWhen.cjs.map +1 -1
- package/_cjs/Observable/api.cjs +1858 -2033
- package/_cjs/Observable/api.cjs.map +1 -1
- package/_cjs/Observable/definition.cjs +107 -120
- package/_cjs/Observable/definition.cjs.map +1 -1
- package/_cjs/Observable/dom/animationFrames.cjs +30 -33
- package/_cjs/Observable/dom/animationFrames.cjs.map +1 -1
- package/_cjs/Observable/instances.cjs +0 -2
- package/_cjs/Observable.cjs +180 -215
- package/_cjs/ObservableRef/api.cjs +188 -156
- package/_cjs/ObservableRef/api.cjs.map +1 -1
- package/_cjs/ObservableRef/atomic.cjs +25 -28
- package/_cjs/ObservableRef/atomic.cjs.map +1 -1
- package/_cjs/ObservableRef/definition.cjs +32 -27
- package/_cjs/ObservableRef/definition.cjs.map +1 -1
- package/_cjs/ObservableRef.cjs +17 -39
- package/_cjs/Observer.cjs +0 -2
- package/_cjs/Operator.cjs +58 -61
- package/_cjs/Operator.cjs.map +1 -1
- package/_cjs/Scheduler.cjs +38 -37
- package/_cjs/Scheduler.cjs.map +1 -1
- package/_cjs/Subject.cjs +163 -202
- package/_cjs/Subject.cjs.map +1 -1
- package/_cjs/Subscriber.cjs +151 -170
- package/_cjs/Subscriber.cjs.map +1 -1
- package/_cjs/Subscription.cjs +98 -123
- package/_cjs/Subscription.cjs.map +1 -1
- package/_cjs/chunk.cjs +28 -0
- package/_cjs/config.cjs +11 -12
- package/_cjs/config.cjs.map +1 -1
- package/_cjs/global.cjs +0 -2
- package/_cjs/index.cjs +112 -36
- package/_cjs/internal/animationFrameProvider.cjs +32 -38
- package/_cjs/internal/animationFrameProvider.cjs.map +1 -1
- package/_cjs/internal/args.cjs +12 -12
- package/_cjs/internal/args.cjs.map +1 -1
- package/_cjs/internal/intervalProvider.cjs +15 -22
- package/_cjs/internal/intervalProvider.cjs.map +1 -1
- package/_cjs/internal/performanceTimestampProvider.cjs +10 -11
- package/_cjs/internal/performanceTimestampProvider.cjs.map +1 -1
- package/_cjs/internal/timeoutProvider.cjs +15 -22
- package/_cjs/internal/timeoutProvider.cjs.map +1 -1
- package/_cjs/internal/timestampProvider.cjs +10 -11
- package/_cjs/internal/timestampProvider.cjs.map +1 -1
- package/_cjs/internal/util.cjs +60 -68
- package/_cjs/internal/util.cjs.map +1 -1
- package/_mjs/Action.mjs +12 -8
- package/_mjs/Action.mjs.map +1 -1
- package/_mjs/AnimationFrameAction.mjs +25 -24
- package/_mjs/AnimationFrameAction.mjs.map +1 -1
- package/_mjs/AnimationFrameScheduler.mjs +25 -27
- package/_mjs/AnimationFrameScheduler.mjs.map +1 -1
- package/_mjs/AsyncAction.mjs +69 -79
- package/_mjs/AsyncAction.mjs.map +1 -1
- package/_mjs/AsyncScheduler.mjs +32 -34
- package/_mjs/AsyncScheduler.mjs.map +1 -1
- package/_mjs/BehaviorSubject.mjs +28 -29
- package/_mjs/BehaviorSubject.mjs.map +1 -1
- package/_mjs/Notification.mjs +57 -60
- package/_mjs/Notification.mjs.map +1 -1
- package/_mjs/Observable/api/connect.mjs +17 -17
- package/_mjs/Observable/api/connect.mjs.map +1 -1
- package/_mjs/Observable/api/connectable.mjs +39 -35
- package/_mjs/Observable/api/connectable.mjs.map +1 -1
- package/_mjs/Observable/api/fromCallback.mjs +40 -41
- package/_mjs/Observable/api/fromCallback.mjs.map +1 -1
- package/_mjs/Observable/api/fromEvent.mjs +12 -8
- package/_mjs/Observable/api/fromEvent.mjs.map +1 -1
- package/_mjs/Observable/api/index.mjs +15 -15
- package/_mjs/Observable/api/race.mjs +20 -22
- package/_mjs/Observable/api/race.mjs.map +1 -1
- package/_mjs/Observable/api/raceWith.mjs +11 -8
- package/_mjs/Observable/api/raceWith.mjs.map +1 -1
- package/_mjs/Observable/api/repeatWhen.mjs +48 -49
- package/_mjs/Observable/api/repeatWhen.mjs.map +1 -1
- package/_mjs/Observable/api/retryWhen.mjs +31 -33
- package/_mjs/Observable/api/retryWhen.mjs.map +1 -1
- package/_mjs/Observable/api/share.mjs +65 -74
- package/_mjs/Observable/api/share.mjs.map +1 -1
- package/_mjs/Observable/api/window.mjs +38 -34
- package/_mjs/Observable/api/window.mjs.map +1 -1
- package/_mjs/Observable/api/windowCount.mjs +39 -43
- package/_mjs/Observable/api/windowCount.mjs.map +1 -1
- package/_mjs/Observable/api/windowTime.mjs +63 -64
- package/_mjs/Observable/api/windowTime.mjs.map +1 -1
- package/_mjs/Observable/api/windowToggle.mjs +58 -62
- package/_mjs/Observable/api/windowToggle.mjs.map +1 -1
- package/_mjs/Observable/api/windowWhen.mjs +50 -46
- package/_mjs/Observable/api/windowWhen.mjs.map +1 -1
- package/_mjs/Observable/api.mjs +1822 -2030
- package/_mjs/Observable/api.mjs.map +1 -1
- package/_mjs/Observable/definition.mjs +94 -108
- package/_mjs/Observable/definition.mjs.map +1 -1
- package/_mjs/Observable/dom/animationFrames.mjs +23 -23
- package/_mjs/Observable/dom/animationFrames.mjs.map +1 -1
- package/_mjs/Observable/instances.mjs +0 -2
- package/_mjs/Observable.mjs +20 -25
- package/_mjs/ObservableRef/api.mjs +180 -144
- package/_mjs/ObservableRef/api.mjs.map +1 -1
- package/_mjs/ObservableRef/atomic.mjs +21 -20
- package/_mjs/ObservableRef/atomic.mjs.map +1 -1
- package/_mjs/ObservableRef/definition.mjs +29 -19
- package/_mjs/ObservableRef/definition.mjs.map +1 -1
- package/_mjs/ObservableRef.mjs +4 -5
- package/_mjs/Observer.mjs +0 -2
- package/_mjs/Operator.mjs +50 -50
- package/_mjs/Operator.mjs.map +1 -1
- package/_mjs/Scheduler.mjs +30 -26
- package/_mjs/Scheduler.mjs.map +1 -1
- package/_mjs/Subject.mjs +154 -191
- package/_mjs/Subject.mjs.map +1 -1
- package/_mjs/Subscriber.mjs +136 -156
- package/_mjs/Subscriber.mjs.map +1 -1
- package/_mjs/Subscription.mjs +90 -113
- package/_mjs/Subscription.mjs.map +1 -1
- package/_mjs/config.mjs +10 -6
- package/_mjs/config.mjs.map +1 -1
- package/_mjs/global.mjs +0 -2
- package/_mjs/index.mjs +14 -15
- package/_mjs/internal/animationFrameProvider.mjs +28 -30
- package/_mjs/internal/animationFrameProvider.mjs.map +1 -1
- package/_mjs/internal/args.mjs +9 -5
- package/_mjs/internal/args.mjs.map +1 -1
- package/_mjs/internal/intervalProvider.mjs +14 -16
- package/_mjs/internal/intervalProvider.mjs.map +1 -1
- package/_mjs/internal/performanceTimestampProvider.mjs +9 -5
- package/_mjs/internal/performanceTimestampProvider.mjs.map +1 -1
- package/_mjs/internal/timeoutProvider.mjs +14 -16
- package/_mjs/internal/timeoutProvider.mjs.map +1 -1
- package/_mjs/internal/timestampProvider.mjs +9 -5
- package/_mjs/internal/timestampProvider.mjs.map +1 -1
- package/_mjs/internal/util.mjs +54 -59
- package/_mjs/internal/util.mjs.map +1 -1
- package/_src/Action.ts +2 -0
- package/_src/AsyncScheduler.ts +2 -0
- package/_src/Observable/api.ts +4 -4
- package/_src/ObservableRef/api.ts +36 -12
- package/_src/ObservableRef/definition.ts +12 -4
- package/package.json +6 -2
- package/_cjs/Observable/api/index.cjs.map +0 -1
- package/_cjs/Observable/instances.cjs.map +0 -1
- package/_cjs/Observable.cjs.map +0 -1
- package/_cjs/ObservableRef.cjs.map +0 -1
- package/_cjs/Observer.cjs.map +0 -1
- package/_cjs/global.cjs.map +0 -1
- package/_cjs/index.cjs.map +0 -1
- package/_mjs/Observable/api/index.mjs.map +0 -1
- package/_mjs/Observable/instances.mjs.map +0 -1
- package/_mjs/Observable.mjs.map +0 -1
- package/_mjs/ObservableRef.mjs.map +0 -1
- package/_mjs/Observer.mjs.map +0 -1
- package/_mjs/global.mjs.map +0 -1
- package/_mjs/index.mjs.map +0 -1
|
@@ -1,71 +1,67 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "@fncts/observable/Observable";
|
|
2
|
+
import * as tsplus_module_7 from "@fncts/observable/Operator";
|
|
2
3
|
import * as tsplus_module_2 from "@fncts/observable/Subject";
|
|
3
4
|
import * as tsplus_module_3 from "@fncts/observable/Subscription";
|
|
4
|
-
import * as tsplus_module_4 from "@fncts/observable/Observable/api";
|
|
5
5
|
import * as tsplus_module_5 from "@fncts/base/data/Cause/api";
|
|
6
6
|
import * as tsplus_module_6 from "@fncts/observable/internal/util";
|
|
7
|
-
import * as tsplus_module_7 from "@fncts/observable/Operator";
|
|
8
7
|
import { arrayRemove } from "@fncts/observable/internal/util";
|
|
8
|
+
import * as tsplus_module_4 from "@fncts/observable/Observable/api";
|
|
9
|
+
//#region build/esm/Observable/api/windowToggle.js
|
|
9
10
|
/**
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
finalize: () => {
|
|
63
|
-
while (0 < windows.length) {
|
|
64
|
-
windows.shift().unsubscribe();
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
})(subscriber));
|
|
68
|
-
});
|
|
69
|
-
};
|
|
11
|
+
* @tsplus pipeable fncts.observable.Observable windowToggle
|
|
12
|
+
*/
|
|
13
|
+
function windowToggle(openings, closingSelector) {
|
|
14
|
+
return (fa) => {
|
|
15
|
+
return new tsplus_module_1.Observable((subscriber, environment) => {
|
|
16
|
+
const windows = [];
|
|
17
|
+
const handleError = (err) => {
|
|
18
|
+
while (0 < windows.length) windows.shift().error(err);
|
|
19
|
+
subscriber.error(err);
|
|
20
|
+
};
|
|
21
|
+
tsplus_module_4.from(openings).provideEnvironment(environment).subscribe(tsplus_module_7.operate_({
|
|
22
|
+
next: (openValue) => {
|
|
23
|
+
const window = new tsplus_module_2.Subject();
|
|
24
|
+
windows.push(window);
|
|
25
|
+
const closingSubscription = new tsplus_module_3.Subscription();
|
|
26
|
+
const closeWindow = () => {
|
|
27
|
+
arrayRemove(windows, window);
|
|
28
|
+
window.complete();
|
|
29
|
+
closingSubscription.unsubscribe();
|
|
30
|
+
};
|
|
31
|
+
let closingNotifier;
|
|
32
|
+
try {
|
|
33
|
+
closingNotifier = tsplus_module_4.from(closingSelector(openValue));
|
|
34
|
+
} catch (err) {
|
|
35
|
+
handleError(tsplus_module_5.halt(err));
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
subscriber.next(window.asObservable());
|
|
39
|
+
closingSubscription.add(closingNotifier.provideEnvironment(environment).subscribe(tsplus_module_7.operatorSubscriber(subscriber, {
|
|
40
|
+
next: closeWindow,
|
|
41
|
+
complete: tsplus_module_6.noop,
|
|
42
|
+
error: closeWindow
|
|
43
|
+
})));
|
|
44
|
+
},
|
|
45
|
+
complete: tsplus_module_6.noop
|
|
46
|
+
})(subscriber));
|
|
47
|
+
fa.provideEnvironment(environment).subscribe(tsplus_module_7.operate_({
|
|
48
|
+
next: (value) => {
|
|
49
|
+
const windowsCopy = windows.slice();
|
|
50
|
+
for (const window of windowsCopy) window.next(value);
|
|
51
|
+
},
|
|
52
|
+
error: handleError,
|
|
53
|
+
complete: () => {
|
|
54
|
+
while (0 < windows.length) windows.shift().complete();
|
|
55
|
+
subscriber.complete();
|
|
56
|
+
},
|
|
57
|
+
finalize: () => {
|
|
58
|
+
while (0 < windows.length) windows.shift().unsubscribe();
|
|
59
|
+
}
|
|
60
|
+
})(subscriber));
|
|
61
|
+
});
|
|
62
|
+
};
|
|
70
63
|
}
|
|
64
|
+
//#endregion
|
|
65
|
+
export { windowToggle };
|
|
66
|
+
|
|
71
67
|
//# sourceMappingURL=windowToggle.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"windowToggle.mjs","names":["
|
|
1
|
+
{"version":3,"file":"windowToggle.mjs","names":[],"sources":["../../../esm/Observable/api/windowToggle.js"],"sourcesContent":["import * as tsplus_module_1 from \"@fncts/observable/Observable\";\nimport * as tsplus_module_2 from \"@fncts/observable/Subject\";\nimport * as tsplus_module_3 from \"@fncts/observable/Subscription\";\nimport * as tsplus_module_4 from \"@fncts/observable/Observable/api\";\nimport * as tsplus_module_5 from \"@fncts/base/data/Cause/api\";\nimport * as tsplus_module_6 from \"@fncts/observable/internal/util\";\nimport * as tsplus_module_7 from \"@fncts/observable/Operator\";\nimport { arrayRemove } from \"@fncts/observable/internal/util\";\n/**\n * @tsplus pipeable fncts.observable.Observable windowToggle\n */\nexport function windowToggle(openings, closingSelector) {\n return (fa) => {\n return new tsplus_module_1.Observable((subscriber, environment) => {\n const windows = [];\n const handleError = (err) => {\n while (0 < windows.length) {\n windows.shift().error(err);\n }\n subscriber.error(err);\n };\n tsplus_module_4.from(openings)\n .provideEnvironment(environment)\n .subscribe(tsplus_module_7.operate_({\n next: (openValue) => {\n const window = new tsplus_module_2.Subject();\n windows.push(window);\n const closingSubscription = new tsplus_module_3.Subscription();\n const closeWindow = () => {\n arrayRemove(windows, window);\n window.complete();\n closingSubscription.unsubscribe();\n };\n let closingNotifier;\n try {\n closingNotifier = tsplus_module_4.from(closingSelector(openValue));\n }\n catch (err) {\n handleError(tsplus_module_5.halt(err));\n return;\n }\n subscriber.next(window.asObservable());\n closingSubscription.add(closingNotifier.provideEnvironment(environment).subscribe(tsplus_module_7.operatorSubscriber(subscriber, {\n next: closeWindow,\n complete: tsplus_module_6.noop,\n error: closeWindow,\n })));\n },\n complete: tsplus_module_6.noop,\n })(subscriber));\n fa.provideEnvironment(environment).subscribe(tsplus_module_7.operate_({\n next: (value) => {\n const windowsCopy = windows.slice();\n for (const window of windowsCopy) {\n window.next(value);\n }\n },\n error: handleError,\n complete: () => {\n while (0 < windows.length) {\n windows.shift().complete();\n }\n subscriber.complete();\n },\n finalize: () => {\n while (0 < windows.length) {\n windows.shift().unsubscribe();\n }\n },\n })(subscriber));\n });\n };\n}\n//# sourceMappingURL=windowToggle.js.map"],"mappings":";;;;;;;;;;;;AAWA,SAAgB,aAAa,UAAU,iBAAiB;AACpD,SAAQ,OAAO;AACX,SAAO,IAAI,gBAAgB,YAAY,YAAY,gBAAgB;GAC/D,MAAM,UAAU,EAAE;GAClB,MAAM,eAAe,QAAQ;AACzB,WAAO,IAAI,QAAQ,OACf,SAAQ,OAAO,CAAC,MAAM,IAAI;AAE9B,eAAW,MAAM,IAAI;;AAEzB,mBAAgB,KAAK,SAAS,CACzB,mBAAmB,YAAY,CAC/B,UAAU,gBAAgB,SAAS;IACpC,OAAO,cAAc;KACjB,MAAM,SAAS,IAAI,gBAAgB,SAAS;AAC5C,aAAQ,KAAK,OAAO;KACpB,MAAM,sBAAsB,IAAI,gBAAgB,cAAc;KAC9D,MAAM,oBAAoB;AACtB,kBAAY,SAAS,OAAO;AAC5B,aAAO,UAAU;AACjB,0BAAoB,aAAa;;KAErC,IAAI;AACJ,SAAI;AACA,wBAAkB,gBAAgB,KAAK,gBAAgB,UAAU,CAAC;cAE/D,KAAK;AACR,kBAAY,gBAAgB,KAAK,IAAI,CAAC;AACtC;;AAEJ,gBAAW,KAAK,OAAO,cAAc,CAAC;AACtC,yBAAoB,IAAI,gBAAgB,mBAAmB,YAAY,CAAC,UAAU,gBAAgB,mBAAmB,YAAY;MAC7H,MAAM;MACN,UAAU,gBAAgB;MAC1B,OAAO;MACV,CAAC,CAAC,CAAC;;IAER,UAAU,gBAAgB;IAC7B,CAAC,CAAC,WAAW,CAAC;AACf,MAAG,mBAAmB,YAAY,CAAC,UAAU,gBAAgB,SAAS;IAClE,OAAO,UAAU;KACb,MAAM,cAAc,QAAQ,OAAO;AACnC,UAAK,MAAM,UAAU,YACjB,QAAO,KAAK,MAAM;;IAG1B,OAAO;IACP,gBAAgB;AACZ,YAAO,IAAI,QAAQ,OACf,SAAQ,OAAO,CAAC,UAAU;AAE9B,gBAAW,UAAU;;IAEzB,gBAAgB;AACZ,YAAO,IAAI,QAAQ,OACf,SAAQ,OAAO,CAAC,aAAa;;IAGxC,CAAC,CAAC,WAAW,CAAC;IACjB"}
|
|
@@ -1,52 +1,56 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "@fncts/observable/Observable";
|
|
2
|
+
import * as tsplus_module_5 from "@fncts/observable/Operator";
|
|
2
3
|
import * as tsplus_module_2 from "@fncts/observable/Subject";
|
|
3
|
-
import * as tsplus_module_3 from "@fncts/observable/Observable/api";
|
|
4
4
|
import * as tsplus_module_4 from "@fncts/base/data/Cause/api";
|
|
5
|
-
import * as
|
|
5
|
+
import * as tsplus_module_3 from "@fncts/observable/Observable/api";
|
|
6
|
+
//#region build/esm/Observable/api/windowWhen.js
|
|
6
7
|
/**
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
8
|
+
* @tsplus pipeable fncts.observable.Observable windowWhen
|
|
9
|
+
*/
|
|
10
|
+
function windowWhen(closingSelector) {
|
|
11
|
+
return (fa) => {
|
|
12
|
+
return new tsplus_module_1.Observable((subscriber, environment) => {
|
|
13
|
+
let window;
|
|
14
|
+
let closingSubscriber;
|
|
15
|
+
const handleError = (err) => {
|
|
16
|
+
window.error(err);
|
|
17
|
+
subscriber.error(err);
|
|
18
|
+
};
|
|
19
|
+
const openWindow = () => {
|
|
20
|
+
closingSubscriber?.unsubscribe();
|
|
21
|
+
window?.complete();
|
|
22
|
+
window = new tsplus_module_2.Subject();
|
|
23
|
+
subscriber.next(window.asObservable());
|
|
24
|
+
let closingNotifier;
|
|
25
|
+
try {
|
|
26
|
+
closingNotifier = tsplus_module_3.from(closingSelector());
|
|
27
|
+
} catch (err) {
|
|
28
|
+
handleError(tsplus_module_4.halt(err));
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
closingNotifier.subscribe(closingSubscriber = tsplus_module_5.operatorSubscriber(subscriber, {
|
|
32
|
+
next: openWindow,
|
|
33
|
+
complete: openWindow,
|
|
34
|
+
error: handleError
|
|
35
|
+
}));
|
|
36
|
+
};
|
|
37
|
+
openWindow();
|
|
38
|
+
fa.provideEnvironment(environment).subscribe(tsplus_module_5.operate_({
|
|
39
|
+
next: (value) => window.next(value),
|
|
40
|
+
error: handleError,
|
|
41
|
+
complete: () => {
|
|
42
|
+
window.complete();
|
|
43
|
+
subscriber.complete();
|
|
44
|
+
},
|
|
45
|
+
finalize: () => {
|
|
46
|
+
closingSubscriber?.unsubscribe();
|
|
47
|
+
window = null;
|
|
48
|
+
}
|
|
49
|
+
})(subscriber));
|
|
50
|
+
});
|
|
51
|
+
};
|
|
51
52
|
}
|
|
53
|
+
//#endregion
|
|
54
|
+
export { windowWhen };
|
|
55
|
+
|
|
52
56
|
//# sourceMappingURL=windowWhen.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"windowWhen.mjs","names":["
|
|
1
|
+
{"version":3,"file":"windowWhen.mjs","names":[],"sources":["../../../esm/Observable/api/windowWhen.js"],"sourcesContent":["import * as tsplus_module_1 from \"@fncts/observable/Observable\";\nimport * as tsplus_module_2 from \"@fncts/observable/Subject\";\nimport * as tsplus_module_3 from \"@fncts/observable/Observable/api\";\nimport * as tsplus_module_4 from \"@fncts/base/data/Cause/api\";\nimport * as tsplus_module_5 from \"@fncts/observable/Operator\";\n/**\n * @tsplus pipeable fncts.observable.Observable windowWhen\n */\nexport function windowWhen(closingSelector) {\n return (fa) => {\n return new tsplus_module_1.Observable((subscriber, environment) => {\n let window;\n let closingSubscriber;\n const handleError = (err) => {\n window.error(err);\n subscriber.error(err);\n };\n const openWindow = () => {\n closingSubscriber?.unsubscribe();\n window?.complete();\n window = new tsplus_module_2.Subject();\n subscriber.next(window.asObservable());\n let closingNotifier;\n try {\n closingNotifier = tsplus_module_3.from(closingSelector());\n }\n catch (err) {\n handleError(tsplus_module_4.halt(err));\n return;\n }\n closingNotifier.subscribe((closingSubscriber = tsplus_module_5.operatorSubscriber(subscriber, {\n next: openWindow,\n complete: openWindow,\n error: handleError,\n })));\n };\n openWindow();\n fa.provideEnvironment(environment).subscribe(tsplus_module_5.operate_({\n next: (value) => window.next(value),\n error: handleError,\n complete: () => {\n window.complete();\n subscriber.complete();\n },\n finalize: () => {\n closingSubscriber?.unsubscribe();\n window = null;\n },\n })(subscriber));\n });\n };\n}\n//# sourceMappingURL=windowWhen.js.map"],"mappings":";;;;;;;;;AAQA,SAAgB,WAAW,iBAAiB;AACxC,SAAQ,OAAO;AACX,SAAO,IAAI,gBAAgB,YAAY,YAAY,gBAAgB;GAC/D,IAAI;GACJ,IAAI;GACJ,MAAM,eAAe,QAAQ;AACzB,WAAO,MAAM,IAAI;AACjB,eAAW,MAAM,IAAI;;GAEzB,MAAM,mBAAmB;AACrB,uBAAmB,aAAa;AAChC,YAAQ,UAAU;AAClB,aAAS,IAAI,gBAAgB,SAAS;AACtC,eAAW,KAAK,OAAO,cAAc,CAAC;IACtC,IAAI;AACJ,QAAI;AACA,uBAAkB,gBAAgB,KAAK,iBAAiB,CAAC;aAEtD,KAAK;AACR,iBAAY,gBAAgB,KAAK,IAAI,CAAC;AACtC;;AAEJ,oBAAgB,UAAW,oBAAoB,gBAAgB,mBAAmB,YAAY;KAC1F,MAAM;KACN,UAAU;KACV,OAAO;KACV,CAAC,CAAE;;AAER,eAAY;AACZ,MAAG,mBAAmB,YAAY,CAAC,UAAU,gBAAgB,SAAS;IAClE,OAAO,UAAU,OAAO,KAAK,MAAM;IACnC,OAAO;IACP,gBAAgB;AACZ,YAAO,UAAU;AACjB,gBAAW,UAAU;;IAEzB,gBAAgB;AACZ,wBAAmB,aAAa;AAChC,cAAS;;IAEhB,CAAC,CAAC,WAAW,CAAC;IACjB"}
|