@fncts/observable 0.0.32 → 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.
Files changed (192) hide show
  1. package/LICENSE +26 -0
  2. package/_cjs/Action.cjs +15 -16
  3. package/_cjs/Action.cjs.map +1 -1
  4. package/_cjs/AnimationFrameAction.cjs +30 -35
  5. package/_cjs/AnimationFrameAction.cjs.map +1 -1
  6. package/_cjs/AnimationFrameScheduler.cjs +30 -35
  7. package/_cjs/AnimationFrameScheduler.cjs.map +1 -1
  8. package/_cjs/AsyncAction.cjs +73 -93
  9. package/_cjs/AsyncAction.cjs.map +1 -1
  10. package/_cjs/AsyncScheduler.cjs +35 -41
  11. package/_cjs/AsyncScheduler.cjs.map +1 -1
  12. package/_cjs/BehaviorSubject.cjs +31 -38
  13. package/_cjs/BehaviorSubject.cjs.map +1 -1
  14. package/_cjs/Notification.cjs +65 -66
  15. package/_cjs/Notification.cjs.map +1 -1
  16. package/_cjs/Observable/api/connect.cjs +23 -25
  17. package/_cjs/Observable/api/connect.cjs.map +1 -1
  18. package/_cjs/Observable/api/connectable.cjs +46 -50
  19. package/_cjs/Observable/api/connectable.cjs.map +1 -1
  20. package/_cjs/Observable/api/fromCallback.cjs +44 -48
  21. package/_cjs/Observable/api/fromCallback.cjs.map +1 -1
  22. package/_cjs/Observable/api/fromEvent.cjs +15 -15
  23. package/_cjs/Observable/api/fromEvent.cjs.map +1 -1
  24. package/_cjs/Observable/api/index.cjs +32 -160
  25. package/_cjs/Observable/api/race.cjs +26 -30
  26. package/_cjs/Observable/api/race.cjs.map +1 -1
  27. package/_cjs/Observable/api/raceWith.cjs +14 -15
  28. package/_cjs/Observable/api/raceWith.cjs.map +1 -1
  29. package/_cjs/Observable/api/repeatWhen.cjs +54 -57
  30. package/_cjs/Observable/api/repeatWhen.cjs.map +1 -1
  31. package/_cjs/Observable/api/retryWhen.cjs +37 -41
  32. package/_cjs/Observable/api/retryWhen.cjs.map +1 -1
  33. package/_cjs/Observable/api/share.cjs +73 -83
  34. package/_cjs/Observable/api/share.cjs.map +1 -1
  35. package/_cjs/Observable/api/window.cjs +46 -43
  36. package/_cjs/Observable/api/window.cjs.map +1 -1
  37. package/_cjs/Observable/api/windowCount.cjs +45 -51
  38. package/_cjs/Observable/api/windowCount.cjs.map +1 -1
  39. package/_cjs/Observable/api/windowTime.cjs +73 -74
  40. package/_cjs/Observable/api/windowTime.cjs.map +1 -1
  41. package/_cjs/Observable/api/windowToggle.cjs +71 -74
  42. package/_cjs/Observable/api/windowToggle.cjs.map +1 -1
  43. package/_cjs/Observable/api/windowWhen.cjs +59 -55
  44. package/_cjs/Observable/api/windowWhen.cjs.map +1 -1
  45. package/_cjs/Observable/api.cjs +1858 -2034
  46. package/_cjs/Observable/api.cjs.map +1 -1
  47. package/_cjs/Observable/definition.cjs +107 -120
  48. package/_cjs/Observable/definition.cjs.map +1 -1
  49. package/_cjs/Observable/dom/animationFrames.cjs +30 -33
  50. package/_cjs/Observable/dom/animationFrames.cjs.map +1 -1
  51. package/_cjs/Observable/instances.cjs +0 -2
  52. package/_cjs/Observable.cjs +180 -215
  53. package/_cjs/ObservableRef/api.cjs +188 -189
  54. package/_cjs/ObservableRef/api.cjs.map +1 -1
  55. package/_cjs/ObservableRef/atomic.cjs +25 -25
  56. package/_cjs/ObservableRef/atomic.cjs.map +1 -1
  57. package/_cjs/ObservableRef/definition.cjs +32 -33
  58. package/_cjs/ObservableRef/definition.cjs.map +1 -1
  59. package/_cjs/ObservableRef.cjs +17 -39
  60. package/_cjs/Observer.cjs +0 -2
  61. package/_cjs/Operator.cjs +58 -62
  62. package/_cjs/Operator.cjs.map +1 -1
  63. package/_cjs/Scheduler.cjs +38 -37
  64. package/_cjs/Scheduler.cjs.map +1 -1
  65. package/_cjs/Subject.cjs +163 -201
  66. package/_cjs/Subject.cjs.map +1 -1
  67. package/_cjs/Subscriber.cjs +151 -170
  68. package/_cjs/Subscriber.cjs.map +1 -1
  69. package/_cjs/Subscription.cjs +98 -122
  70. package/_cjs/Subscription.cjs.map +1 -1
  71. package/_cjs/chunk.cjs +28 -0
  72. package/_cjs/config.cjs +11 -12
  73. package/_cjs/config.cjs.map +1 -1
  74. package/_cjs/global.cjs +0 -2
  75. package/_cjs/index.cjs +112 -36
  76. package/_cjs/internal/animationFrameProvider.cjs +32 -38
  77. package/_cjs/internal/animationFrameProvider.cjs.map +1 -1
  78. package/_cjs/internal/args.cjs +12 -12
  79. package/_cjs/internal/args.cjs.map +1 -1
  80. package/_cjs/internal/intervalProvider.cjs +15 -22
  81. package/_cjs/internal/intervalProvider.cjs.map +1 -1
  82. package/_cjs/internal/performanceTimestampProvider.cjs +10 -11
  83. package/_cjs/internal/performanceTimestampProvider.cjs.map +1 -1
  84. package/_cjs/internal/timeoutProvider.cjs +15 -22
  85. package/_cjs/internal/timeoutProvider.cjs.map +1 -1
  86. package/_cjs/internal/timestampProvider.cjs +10 -11
  87. package/_cjs/internal/timestampProvider.cjs.map +1 -1
  88. package/_cjs/internal/util.cjs +60 -68
  89. package/_cjs/internal/util.cjs.map +1 -1
  90. package/_mjs/Action.mjs +12 -8
  91. package/_mjs/Action.mjs.map +1 -1
  92. package/_mjs/AnimationFrameAction.mjs +25 -26
  93. package/_mjs/AnimationFrameAction.mjs.map +1 -1
  94. package/_mjs/AnimationFrameScheduler.mjs +25 -27
  95. package/_mjs/AnimationFrameScheduler.mjs.map +1 -1
  96. package/_mjs/AsyncAction.mjs +69 -84
  97. package/_mjs/AsyncAction.mjs.map +1 -1
  98. package/_mjs/AsyncScheduler.mjs +31 -33
  99. package/_mjs/AsyncScheduler.mjs.map +1 -1
  100. package/_mjs/BehaviorSubject.mjs +28 -30
  101. package/_mjs/BehaviorSubject.mjs.map +1 -1
  102. package/_mjs/Notification.mjs +57 -56
  103. package/_mjs/Notification.mjs.map +1 -1
  104. package/_mjs/Observable/api/connect.mjs +17 -17
  105. package/_mjs/Observable/api/connect.mjs.map +1 -1
  106. package/_mjs/Observable/api/connectable.mjs +39 -40
  107. package/_mjs/Observable/api/connectable.mjs.map +1 -1
  108. package/_mjs/Observable/api/fromCallback.mjs +40 -41
  109. package/_mjs/Observable/api/fromCallback.mjs.map +1 -1
  110. package/_mjs/Observable/api/fromEvent.mjs +12 -8
  111. package/_mjs/Observable/api/fromEvent.mjs.map +1 -1
  112. package/_mjs/Observable/api/index.mjs +15 -15
  113. package/_mjs/Observable/api/race.mjs +20 -22
  114. package/_mjs/Observable/api/race.mjs.map +1 -1
  115. package/_mjs/Observable/api/raceWith.mjs +11 -8
  116. package/_mjs/Observable/api/raceWith.mjs.map +1 -1
  117. package/_mjs/Observable/api/repeatWhen.mjs +48 -49
  118. package/_mjs/Observable/api/repeatWhen.mjs.map +1 -1
  119. package/_mjs/Observable/api/retryWhen.mjs +31 -33
  120. package/_mjs/Observable/api/retryWhen.mjs.map +1 -1
  121. package/_mjs/Observable/api/share.mjs +65 -74
  122. package/_mjs/Observable/api/share.mjs.map +1 -1
  123. package/_mjs/Observable/api/window.mjs +38 -34
  124. package/_mjs/Observable/api/window.mjs.map +1 -1
  125. package/_mjs/Observable/api/windowCount.mjs +39 -43
  126. package/_mjs/Observable/api/windowCount.mjs.map +1 -1
  127. package/_mjs/Observable/api/windowTime.mjs +63 -64
  128. package/_mjs/Observable/api/windowTime.mjs.map +1 -1
  129. package/_mjs/Observable/api/windowToggle.mjs +58 -62
  130. package/_mjs/Observable/api/windowToggle.mjs.map +1 -1
  131. package/_mjs/Observable/api/windowWhen.mjs +50 -46
  132. package/_mjs/Observable/api/windowWhen.mjs.map +1 -1
  133. package/_mjs/Observable/api.mjs +1822 -2031
  134. package/_mjs/Observable/api.mjs.map +1 -1
  135. package/_mjs/Observable/definition.mjs +94 -108
  136. package/_mjs/Observable/definition.mjs.map +1 -1
  137. package/_mjs/Observable/dom/animationFrames.mjs +23 -23
  138. package/_mjs/Observable/dom/animationFrames.mjs.map +1 -1
  139. package/_mjs/Observable/instances.mjs +0 -2
  140. package/_mjs/Observable.mjs +20 -25
  141. package/_mjs/ObservableRef/api.mjs +180 -177
  142. package/_mjs/ObservableRef/api.mjs.map +1 -1
  143. package/_mjs/ObservableRef/atomic.mjs +21 -17
  144. package/_mjs/ObservableRef/atomic.mjs.map +1 -1
  145. package/_mjs/ObservableRef/definition.mjs +29 -25
  146. package/_mjs/ObservableRef/definition.mjs.map +1 -1
  147. package/_mjs/ObservableRef.mjs +4 -5
  148. package/_mjs/Observer.mjs +0 -2
  149. package/_mjs/Operator.mjs +50 -51
  150. package/_mjs/Operator.mjs.map +1 -1
  151. package/_mjs/Scheduler.mjs +30 -26
  152. package/_mjs/Scheduler.mjs.map +1 -1
  153. package/_mjs/Subject.mjs +154 -190
  154. package/_mjs/Subject.mjs.map +1 -1
  155. package/_mjs/Subscriber.mjs +136 -156
  156. package/_mjs/Subscriber.mjs.map +1 -1
  157. package/_mjs/Subscription.mjs +90 -112
  158. package/_mjs/Subscription.mjs.map +1 -1
  159. package/_mjs/config.mjs +10 -6
  160. package/_mjs/config.mjs.map +1 -1
  161. package/_mjs/global.mjs +0 -2
  162. package/_mjs/index.mjs +14 -15
  163. package/_mjs/internal/animationFrameProvider.mjs +28 -30
  164. package/_mjs/internal/animationFrameProvider.mjs.map +1 -1
  165. package/_mjs/internal/args.mjs +9 -5
  166. package/_mjs/internal/args.mjs.map +1 -1
  167. package/_mjs/internal/intervalProvider.mjs +14 -16
  168. package/_mjs/internal/intervalProvider.mjs.map +1 -1
  169. package/_mjs/internal/performanceTimestampProvider.mjs +9 -5
  170. package/_mjs/internal/performanceTimestampProvider.mjs.map +1 -1
  171. package/_mjs/internal/timeoutProvider.mjs +14 -16
  172. package/_mjs/internal/timeoutProvider.mjs.map +1 -1
  173. package/_mjs/internal/timestampProvider.mjs +9 -5
  174. package/_mjs/internal/timestampProvider.mjs.map +1 -1
  175. package/_mjs/internal/util.mjs +54 -59
  176. package/_mjs/internal/util.mjs.map +1 -1
  177. package/_src/Observable/api.ts +1 -1
  178. package/package.json +6 -2
  179. package/_cjs/Observable/api/index.cjs.map +0 -1
  180. package/_cjs/Observable/instances.cjs.map +0 -1
  181. package/_cjs/Observable.cjs.map +0 -1
  182. package/_cjs/ObservableRef.cjs.map +0 -1
  183. package/_cjs/Observer.cjs.map +0 -1
  184. package/_cjs/global.cjs.map +0 -1
  185. package/_cjs/index.cjs.map +0 -1
  186. package/_mjs/Observable/api/index.mjs.map +0 -1
  187. package/_mjs/Observable/instances.mjs.map +0 -1
  188. package/_mjs/Observable.mjs.map +0 -1
  189. package/_mjs/ObservableRef.mjs.map +0 -1
  190. package/_mjs/Observer.mjs.map +0 -1
  191. package/_mjs/global.mjs.map +0 -1
  192. package/_mjs/index.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"windowCount.mjs","names":["windowCount","windowSize","startWindowEvery","fa","startEvery","tsplus_module_1","Observable","subscriber","environment","windows","tsplus_module_2","Subject","count","next","asObservable","provideEnvironment","subscribe","tsplus_module_3","operate_","value","window","c","shift","complete","push","length","error","err","finalize"],"sources":["../../../_src/Observable/api/windowCount.ts"],"sourcesContent":[null],"mappings":";;;AAAA;;;AAGA,OAAM,SAAUA,WAAWA,CAACC,UAAkB,EAAEC,gBAAgB,GAAG,CAAC;EAClE,OAAiBC,EAAuB,IAA+C;IACrF,MAAMC,UAAU,GAAGF,gBAAgB,GAAG,CAAC,GAAGA,gBAAgB,GAAGD,UAAU;IACvE,OAAO,IAAAI,eAAA,CAAIC,UAAU,CAAC,CAACC,UAAU,EAAEC,WAAW,KAAI;MAChD,IAAIC,OAAO,GAAG,CAAC,IAAAC,eAAA,CAAIC,OAAO,EAAe,CAAC;MAC1C,IAAIC,KAAK,GAAK,CAAC;MACfL,UAAU,CAACM,IAAI,CAACJ,OAAO,CAAC,CAAC,CAAE,CAACK,YAAY,EAAE,CAAC;MAC3CX,EAAE,CAACY,kBAAkB,CAACP,WAAW,CAAC,CAACQ,SAAS,CAC1CC,eAAA,CAAAC,QAAA,CAAmB;QACjBL,IAAI,EAAGM,KAAK,IAAI;UACd,KAAK,MAAMC,MAAM,IAAIX,OAAO,EAAE;YAC5BW,MAAM,CAACP,IAAI,CAACM,KAAK,CAAC;UACpB;UACA,MAAME,CAAC,GAAGT,KAAK,GAAGX,UAAU,GAAG,CAAC;UAChC,IAAIoB,CAAC,IAAI,CAAC,IAAIA,CAAC,GAAGjB,UAAU,KAAK,CAAC,EAAE;YAClCK,OAAO,CAACa,KAAK,EAAG,CAACC,QAAQ,EAAE;UAC7B;UACA,IAAI,EAAEX,KAAK,IAAIR,UAAU,KAAK,CAAC,EAAE;YAC/B,MAAMgB,MAAM,GAAG,IAAAV,eAAA,CAAIC,OAAO,EAAe;YACzCF,OAAO,CAACe,IAAI,CAACJ,MAAM,CAAC;YACpBb,UAAU,CAACM,IAAI,CAACO,MAAM,CAACN,YAAY,EAAE,CAAC;UACxC;QACF,CAAC;QACDS,QAAQ,EAAEA,CAAA,KAAK;UACb,OAAOd,OAAO,CAACgB,MAAM,GAAG,CAAC,EAAE;YACzBhB,OAAO,CAACa,KAAK,EAAG,CAACC,QAAQ,EAAE;UAC7B;UACAhB,UAAU,CAACgB,QAAQ,EAAE;QACvB,CAAC;QACDG,KAAK,EAAGC,GAAG,IAAI;UACb,OAAOlB,OAAO,CAACgB,MAAM,GAAG,CAAC,EAAE;YACzBhB,OAAO,CAACa,KAAK,EAAG,CAACI,KAAK,CAACC,GAAG,CAAC;UAC7B;UACApB,UAAU,CAACmB,KAAK,CAACC,GAAG,CAAC;QACvB,CAAC;QACDC,QAAQ,EAAEA,CAAA,KAAK;UACbnB,OAAO,GAAG,IAAK;QACjB;OACD,EA9BDF,UAAU,CA8BR,CACH;IACH,CAAC,CAAC;EACJ,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"windowCount.mjs","names":[],"sources":["../../../esm/Observable/api/windowCount.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/Operator\";\n/**\n * @tsplus pipeable fncts.observable.Observable windowCount\n */\nexport function windowCount(windowSize, startWindowEvery = 0) {\n return (fa) => {\n const startEvery = startWindowEvery > 0 ? startWindowEvery : windowSize;\n return new tsplus_module_1.Observable((subscriber, environment) => {\n let windows = [new tsplus_module_2.Subject()];\n let count = 0;\n subscriber.next(windows[0].asObservable());\n fa.provideEnvironment(environment).subscribe(tsplus_module_3.operate_({\n next: (value) => {\n for (const window of windows) {\n window.next(value);\n }\n const c = count - windowSize + 1;\n if (c >= 0 && c % startEvery === 0) {\n windows.shift().complete();\n }\n if (++count && startEvery === 0) {\n const window = new tsplus_module_2.Subject();\n windows.push(window);\n subscriber.next(window.asObservable());\n }\n },\n complete: () => {\n while (windows.length > 0) {\n windows.shift().complete();\n }\n subscriber.complete();\n },\n error: (err) => {\n while (windows.length > 0) {\n windows.shift().error(err);\n }\n subscriber.error(err);\n },\n finalize: () => {\n windows = null;\n },\n })(subscriber));\n });\n };\n}\n//# sourceMappingURL=windowCount.js.map"],"mappings":";;;;;;;AAMA,SAAgB,YAAY,YAAY,mBAAmB,GAAG;AAC1D,SAAQ,OAAO;EACX,MAAM,aAAa,mBAAmB,IAAI,mBAAmB;AAC7D,SAAO,IAAI,gBAAgB,YAAY,YAAY,gBAAgB;GAC/D,IAAI,UAAU,CAAC,IAAI,gBAAgB,SAAS,CAAC;GAC7C,IAAI,QAAQ;AACZ,cAAW,KAAK,QAAQ,GAAG,cAAc,CAAC;AAC1C,MAAG,mBAAmB,YAAY,CAAC,UAAU,gBAAgB,SAAS;IAClE,OAAO,UAAU;AACb,UAAK,MAAM,UAAU,QACjB,QAAO,KAAK,MAAM;KAEtB,MAAM,IAAI,QAAQ,aAAa;AAC/B,SAAI,KAAK,KAAK,IAAI,eAAe,EAC7B,SAAQ,OAAO,CAAC,UAAU;AAE9B,SAAI,EAAE,SAAS,eAAe,GAAG;MAC7B,MAAM,SAAS,IAAI,gBAAgB,SAAS;AAC5C,cAAQ,KAAK,OAAO;AACpB,iBAAW,KAAK,OAAO,cAAc,CAAC;;;IAG9C,gBAAgB;AACZ,YAAO,QAAQ,SAAS,EACpB,SAAQ,OAAO,CAAC,UAAU;AAE9B,gBAAW,UAAU;;IAEzB,QAAQ,QAAQ;AACZ,YAAO,QAAQ,SAAS,EACpB,SAAQ,OAAO,CAAC,MAAM,IAAI;AAE9B,gBAAW,MAAM,IAAI;;IAEzB,gBAAgB;AACZ,eAAU;;IAEjB,CAAC,CAAC,WAAW,CAAC;IACjB"}
@@ -1,70 +1,69 @@
1
1
  import * as tsplus_module_1 from "@fncts/observable/AsyncScheduler";
2
2
  import * as tsplus_module_2 from "@fncts/observable/Observable";
3
- import * as tsplus_module_3 from "@fncts/observable/Subscription";
4
- import * as tsplus_module_4 from "@fncts/observable/Subject";
5
3
  import * as tsplus_module_5 from "@fncts/observable/Operator";
6
- import { popScheduler } from "@fncts/observable/internal/args";
4
+ import * as tsplus_module_4 from "@fncts/observable/Subject";
5
+ import * as tsplus_module_3 from "@fncts/observable/Subscription";
7
6
  import { arrayRemove } from "@fncts/observable/internal/util";
8
- export function windowTime(windowTimeSpan, ...args) {
9
- return fa => {
10
- const scheduler = popScheduler(args) ?? tsplus_module_1.asyncScheduler;
11
- const windowCreationInterval = args[0] ?? null;
12
- const maxWindowSize = args[1] || Infinity;
13
- return new tsplus_module_2.Observable((subscriber, environment) => {
14
- let windowRecords = [];
15
- let restartOnClose = false;
16
- const closeWindow = record => {
17
- const {
18
- window,
19
- subs
20
- } = record;
21
- window.complete();
22
- subs.unsubscribe();
23
- arrayRemove(windowRecords, record);
24
- restartOnClose && startWindow();
25
- };
26
- const startWindow = () => {
27
- if (windowRecords) {
28
- const subs = new tsplus_module_3.Subscription();
29
- subscriber.add(subs);
30
- const window = new tsplus_module_4.Subject();
31
- const record = {
32
- window,
33
- subs,
34
- seen: 0
35
- };
36
- windowRecords.push(record);
37
- subscriber.next(window.asObservable());
38
- subs.add(scheduler.schedule(() => closeWindow(record), windowTimeSpan));
39
- }
40
- };
41
- windowCreationInterval !== null && windowCreationInterval >= 0 ? subscriber.add(scheduler.schedule(function () {
42
- startWindow();
43
- !this._closed && subscriber.add(this.schedule(null, windowCreationInterval));
44
- }, windowCreationInterval)) : restartOnClose = true;
45
- startWindow();
46
- const loop = cb => windowRecords.slice().forEach(cb);
47
- const terminate = cb => {
48
- loop(({
49
- window
50
- }) => cb(window));
51
- cb(subscriber);
52
- subscriber.unsubscribe();
53
- };
54
- fa.provideEnvironment(environment).subscribe(tsplus_module_5.operate_({
55
- next: value => {
56
- loop(record => {
57
- record.window.next(value);
58
- maxWindowSize <= ++record.seen && closeWindow(record);
59
- });
60
- },
61
- error: err => terminate(consumer => consumer.error(err)),
62
- complete: () => terminate(consumer => consumer.complete())
63
- })(subscriber));
64
- return () => {
65
- windowRecords = null;
66
- };
67
- });
68
- };
7
+ import { popScheduler } from "@fncts/observable/internal/args";
8
+ //#region build/esm/Observable/api/windowTime.js
9
+ function windowTime(windowTimeSpan, ...args) {
10
+ return (fa) => {
11
+ const scheduler = popScheduler(args) ?? tsplus_module_1.asyncScheduler;
12
+ const windowCreationInterval = args[0] ?? null;
13
+ const maxWindowSize = args[1] || Infinity;
14
+ return new tsplus_module_2.Observable((subscriber, environment) => {
15
+ let windowRecords = [];
16
+ let restartOnClose = false;
17
+ const closeWindow = (record) => {
18
+ const { window, subs } = record;
19
+ window.complete();
20
+ subs.unsubscribe();
21
+ arrayRemove(windowRecords, record);
22
+ restartOnClose && startWindow();
23
+ };
24
+ const startWindow = () => {
25
+ if (windowRecords) {
26
+ const subs = new tsplus_module_3.Subscription();
27
+ subscriber.add(subs);
28
+ const window = new tsplus_module_4.Subject();
29
+ const record = {
30
+ window,
31
+ subs,
32
+ seen: 0
33
+ };
34
+ windowRecords.push(record);
35
+ subscriber.next(window.asObservable());
36
+ subs.add(scheduler.schedule(() => closeWindow(record), windowTimeSpan));
37
+ }
38
+ };
39
+ windowCreationInterval !== null && windowCreationInterval >= 0 ? subscriber.add(scheduler.schedule(function() {
40
+ startWindow();
41
+ !this._closed && subscriber.add(this.schedule(null, windowCreationInterval));
42
+ }, windowCreationInterval)) : restartOnClose = true;
43
+ startWindow();
44
+ const loop = (cb) => windowRecords.slice().forEach(cb);
45
+ const terminate = (cb) => {
46
+ loop(({ window }) => cb(window));
47
+ cb(subscriber);
48
+ subscriber.unsubscribe();
49
+ };
50
+ fa.provideEnvironment(environment).subscribe(tsplus_module_5.operate_({
51
+ next: (value) => {
52
+ loop((record) => {
53
+ record.window.next(value);
54
+ maxWindowSize <= ++record.seen && closeWindow(record);
55
+ });
56
+ },
57
+ error: (err) => terminate((consumer) => consumer.error(err)),
58
+ complete: () => terminate((consumer) => consumer.complete())
59
+ })(subscriber));
60
+ return () => {
61
+ windowRecords = null;
62
+ };
63
+ });
64
+ };
69
65
  }
66
+ //#endregion
67
+ export { windowTime };
68
+
70
69
  //# sourceMappingURL=windowTime.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"windowTime.mjs","names":["popScheduler","arrayRemove","windowTime","windowTimeSpan","args","fa","scheduler","tsplus_module_1","asyncScheduler","windowCreationInterval","maxWindowSize","Infinity","tsplus_module_2","Observable","subscriber","environment","windowRecords","restartOnClose","closeWindow","record","window","subs","complete","unsubscribe","startWindow","tsplus_module_3","Subscription","add","tsplus_module_4","Subject","seen","push","next","asObservable","schedule","_closed","loop","cb","slice","forEach","terminate","provideEnvironment","subscribe","tsplus_module_5","operate_","value","error","err","consumer"],"sources":["../../../_src/Observable/api/windowTime.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"windowTime.mjs","names":[],"sources":["../../../esm/Observable/api/windowTime.js"],"sourcesContent":["import * as tsplus_module_1 from \"@fncts/observable/AsyncScheduler\";\nimport * as tsplus_module_2 from \"@fncts/observable/Observable\";\nimport * as tsplus_module_3 from \"@fncts/observable/Subscription\";\nimport * as tsplus_module_4 from \"@fncts/observable/Subject\";\nimport * as tsplus_module_5 from \"@fncts/observable/Operator\";\nimport { popScheduler } from \"@fncts/observable/internal/args\";\nimport { arrayRemove } from \"@fncts/observable/internal/util\";\nexport function windowTime(windowTimeSpan, ...args) {\n return (fa) => {\n const scheduler = popScheduler(args) ?? tsplus_module_1.asyncScheduler;\n const windowCreationInterval = args[0] ?? null;\n const maxWindowSize = args[1] || Infinity;\n return new tsplus_module_2.Observable((subscriber, environment) => {\n let windowRecords = [];\n let restartOnClose = false;\n const closeWindow = (record) => {\n const { window, subs } = record;\n window.complete();\n subs.unsubscribe();\n arrayRemove(windowRecords, record);\n restartOnClose && startWindow();\n };\n const startWindow = () => {\n if (windowRecords) {\n const subs = new tsplus_module_3.Subscription();\n subscriber.add(subs);\n const window = new tsplus_module_4.Subject();\n const record = {\n window,\n subs,\n seen: 0,\n };\n windowRecords.push(record);\n subscriber.next(window.asObservable());\n subs.add(scheduler.schedule(() => closeWindow(record), windowTimeSpan));\n }\n };\n windowCreationInterval !== null && windowCreationInterval >= 0\n ? subscriber.add(scheduler.schedule(function () {\n startWindow();\n !this._closed && subscriber.add(this.schedule(null, windowCreationInterval));\n }, windowCreationInterval))\n : (restartOnClose = true);\n startWindow();\n const loop = (cb) => windowRecords.slice().forEach(cb);\n const terminate = (cb) => {\n loop(({ window }) => cb(window));\n cb(subscriber);\n subscriber.unsubscribe();\n };\n fa.provideEnvironment(environment).subscribe(tsplus_module_5.operate_({\n next: (value) => {\n loop((record) => {\n record.window.next(value);\n maxWindowSize <= ++record.seen && closeWindow(record);\n });\n },\n error: (err) => terminate((consumer) => consumer.error(err)),\n complete: () => terminate((consumer) => consumer.complete()),\n })(subscriber));\n return () => {\n windowRecords = null;\n };\n });\n };\n}\n//# sourceMappingURL=windowTime.js.map"],"mappings":";;;;;;;;AAOA,SAAgB,WAAW,gBAAgB,GAAG,MAAM;AAChD,SAAQ,OAAO;EACX,MAAM,YAAY,aAAa,KAAK,IAAI,gBAAgB;EACxD,MAAM,yBAAyB,KAAK,MAAM;EAC1C,MAAM,gBAAgB,KAAK,MAAM;AACjC,SAAO,IAAI,gBAAgB,YAAY,YAAY,gBAAgB;GAC/D,IAAI,gBAAgB,EAAE;GACtB,IAAI,iBAAiB;GACrB,MAAM,eAAe,WAAW;IAC5B,MAAM,EAAE,QAAQ,SAAS;AACzB,WAAO,UAAU;AACjB,SAAK,aAAa;AAClB,gBAAY,eAAe,OAAO;AAClC,sBAAkB,aAAa;;GAEnC,MAAM,oBAAoB;AACtB,QAAI,eAAe;KACf,MAAM,OAAO,IAAI,gBAAgB,cAAc;AAC/C,gBAAW,IAAI,KAAK;KACpB,MAAM,SAAS,IAAI,gBAAgB,SAAS;KAC5C,MAAM,SAAS;MACX;MACA;MACA,MAAM;MACT;AACD,mBAAc,KAAK,OAAO;AAC1B,gBAAW,KAAK,OAAO,cAAc,CAAC;AACtC,UAAK,IAAI,UAAU,eAAe,YAAY,OAAO,EAAE,eAAe,CAAC;;;AAG/E,8BAA2B,QAAQ,0BAA0B,IACvD,WAAW,IAAI,UAAU,SAAS,WAAY;AAC5C,iBAAa;AACb,KAAC,KAAK,WAAW,WAAW,IAAI,KAAK,SAAS,MAAM,uBAAuB,CAAC;MAC7E,uBAAuB,CAAC,GACxB,iBAAiB;AACxB,gBAAa;GACb,MAAM,QAAQ,OAAO,cAAc,OAAO,CAAC,QAAQ,GAAG;GACtD,MAAM,aAAa,OAAO;AACtB,UAAM,EAAE,aAAa,GAAG,OAAO,CAAC;AAChC,OAAG,WAAW;AACd,eAAW,aAAa;;AAE5B,MAAG,mBAAmB,YAAY,CAAC,UAAU,gBAAgB,SAAS;IAClE,OAAO,UAAU;AACb,WAAM,WAAW;AACb,aAAO,OAAO,KAAK,MAAM;AACzB,uBAAiB,EAAE,OAAO,QAAQ,YAAY,OAAO;OACvD;;IAEN,QAAQ,QAAQ,WAAW,aAAa,SAAS,MAAM,IAAI,CAAC;IAC5D,gBAAgB,WAAW,aAAa,SAAS,UAAU,CAAC;IAC/D,CAAC,CAAC,WAAW,CAAC;AACf,gBAAa;AACT,oBAAgB;;IAEtB"}
@@ -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
- * @tsplus pipeable fncts.observable.Observable windowToggle
11
- */
12
- export function windowToggle(openings, closingSelector) {
13
- return fa => {
14
- return new tsplus_module_1.Observable((subscriber, environment) => {
15
- const windows = [];
16
- const handleError = err => {
17
- while (0 < windows.length) {
18
- windows.shift().error(err);
19
- }
20
- subscriber.error(err);
21
- };
22
- tsplus_module_4.from(openings).provideEnvironment(environment).subscribe(tsplus_module_7.operate_({
23
- next: openValue => {
24
- const window = new tsplus_module_2.Subject();
25
- windows.push(window);
26
- const closingSubscription = new tsplus_module_3.Subscription();
27
- const closeWindow = () => {
28
- arrayRemove(windows, window);
29
- window.complete();
30
- closingSubscription.unsubscribe();
31
- };
32
- let closingNotifier;
33
- try {
34
- closingNotifier = tsplus_module_4.from(closingSelector(openValue));
35
- } catch (err) {
36
- handleError(tsplus_module_5.halt(err));
37
- return;
38
- }
39
- subscriber.next(window.asObservable());
40
- closingSubscription.add(closingNotifier.provideEnvironment(environment).subscribe(tsplus_module_7.operatorSubscriber(subscriber, {
41
- next: closeWindow,
42
- complete: tsplus_module_6.noop,
43
- error: closeWindow
44
- })));
45
- },
46
- complete: tsplus_module_6.noop
47
- })(subscriber));
48
- fa.provideEnvironment(environment).subscribe(tsplus_module_7.operate_({
49
- next: value => {
50
- const windowsCopy = windows.slice();
51
- for (const window of windowsCopy) {
52
- window.next(value);
53
- }
54
- },
55
- error: handleError,
56
- complete: () => {
57
- while (0 < windows.length) {
58
- windows.shift().complete();
59
- }
60
- subscriber.complete();
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":["arrayRemove","windowToggle","openings","closingSelector","fa","tsplus_module_1","Observable","subscriber","environment","windows","handleError","err","length","shift","error","tsplus_module_4","from","provideEnvironment","subscribe","tsplus_module_7","operate_","next","openValue","window","tsplus_module_2","Subject","push","closingSubscription","tsplus_module_3","Subscription","closeWindow","complete","unsubscribe","closingNotifier","tsplus_module_5","halt","asObservable","add","operatorSubscriber","tsplus_module_6","noop","value","windowsCopy","slice","finalize"],"sources":["../../../_src/Observable/api/windowToggle.ts"],"sourcesContent":[null],"mappings":";;;;;;;AAAA,SAASA,WAAW,QAAQ,iCAAiC;AAE7D;;;AAGA,OAAM,SAAUC,YAAYA,CAC1BC,QAAoC,EACpCC,eAA+D;EAE/D,OAAiBC,EAAuB,IAAmE;IACzG,OAAO,IAAAC,eAAA,CAAIC,UAAU,CAAC,CAACC,UAAU,EAAEC,WAAW,KAAI;MAChD,MAAMC,OAAO,GAA2B,EAAE;MAC1C,MAAMC,WAAW,GAAwBC,GAAa,IAAI;QACxD,OAAO,CAAC,GAAGF,OAAO,CAACG,MAAM,EAAE;UACzBH,OAAO,CAACI,KAAK,EAAG,CAACC,KAAK,CAACH,GAAG,CAAC;QAC7B;QACAJ,UAAU,CAACO,KAAK,CAACH,GAAG,CAAC;MACvB,CAAC;MACDI,eAAA,CAAAC,IAAA,CAAgBd,QAAQ,CAAC,CACtBe,kBAAkB,CAACT,WAAW,CAAC,CAC/BU,SAAS,CACRC,eAAA,CAAAC,QAAA,CAAmB;QACjBC,IAAI,EAAGC,SAAS,IAAI;UAClB,MAAMC,MAAM,GAAG,IAAAC,eAAA,CAAIC,OAAO,EAAe;UACzChB,OAAO,CAACiB,IAAI,CAACH,MAAM,CAAC;UACpB,MAAMI,mBAAmB,GAAG,IAAAC,eAAA,CAAIC,YAAY,EAAE;UAC9C,MAAMC,WAAW,GAAWA,CAAA,KAAK;YAC/B9B,WAAW,CAACS,OAAO,EAAEc,MAAM,CAAC;YAC5BA,MAAM,CAACQ,QAAQ,EAAE;YACjBJ,mBAAmB,CAACK,WAAW,EAAE;UACnC,CAAC;UACD,IAAIC,eAAwC;UAC5C,IAAI;YACFA,eAAe,GAAGlB,eAAA,CAAAC,IAAA,CAAgBb,eAAe,CAACmB,SAAS,CAAC,CAAC;UAC/D,CAAC,CAAC,OAAOX,GAAG,EAAE;YACZD,WAAW,CAACwB,eAAA,CAAAC,IAAA,CAAWxB,GAAG,CAAC,CAAC;YAC5B;UACF;UACAJ,UAAU,CAACc,IAAI,CAACE,MAAM,CAACa,YAAY,EAAE,CAAC;UACtCT,mBAAmB,CAACU,GAAG,CACrBJ,eAAe,CAAChB,kBAAkB,CAACT,WAAW,CAAC,CAACU,SAAS,CACvDC,eAAA,CAAAmB,kBAAkB,CAAC/B,UAAU,EAAE;YAC7Bc,IAAI,EAAES,WAAW;YACjBC,QAAQ,EAAAQ,eAAA,CAAEC,IAAI;YACd1B,KAAK,EAAEgB;WACR,CAAC,CACH,CACF;QACH,CAAC;QACDC,QAAQ,EAAAQ,eAAA,CAAEC;OACX,EA7BDjC,UAAU,CA6BR,CACH;MACHH,EAAE,CAACa,kBAAkB,CAACT,WAAW,CAAC,CAACU,SAAS,CAC1CC,eAAA,CAAAC,QAAA,CAAmB;QACjBC,IAAI,EAAGoB,KAAK,IAAI;UACd,MAAMC,WAAW,GAAGjC,OAAO,CAACkC,KAAK,EAAE;UACnC,KAAK,MAAMpB,MAAM,IAAImB,WAAW,EAAE;YAChCnB,MAAM,CAACF,IAAI,CAACoB,KAAK,CAAC;UACpB;QACF,CAAC;QACD3B,KAAK,EAAEJ,WAAW;QAClBqB,QAAQ,EAAEA,CAAA,KAAK;UACb,OAAO,CAAC,GAAGtB,OAAO,CAACG,MAAM,EAAE;YACzBH,OAAO,CAACI,KAAK,EAAG,CAACkB,QAAQ,EAAE;UAC7B;UACAxB,UAAU,CAACwB,QAAQ,EAAE;QACvB,CAAC;QAEDa,QAAQ,EAAEA,CAAA,KAAK;UACb,OAAO,CAAC,GAAGnC,OAAO,CAACG,MAAM,EAAE;YACzBH,OAAO,CAACI,KAAK,EAAG,CAACmB,WAAW,EAAE;UAChC;QACF;OACD,EApBDzB,UAAU,CAoBR,CACH;IACH,CAAC,CAAC;EACJ,CAAC;AACH","ignoreList":[]}
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 tsplus_module_5 from "@fncts/observable/Operator";
5
+ import * as tsplus_module_3 from "@fncts/observable/Observable/api";
6
+ //#region build/esm/Observable/api/windowWhen.js
6
7
  /**
7
- * @tsplus pipeable fncts.observable.Observable windowWhen
8
- */
9
- export function windowWhen(closingSelector) {
10
- return fa => {
11
- return new tsplus_module_1.Observable((subscriber, environment) => {
12
- let window;
13
- let closingSubscriber;
14
- const handleError = err => {
15
- window.error(err);
16
- subscriber.error(err);
17
- };
18
- const openWindow = () => {
19
- closingSubscriber?.unsubscribe();
20
- window?.complete();
21
- window = new tsplus_module_2.Subject();
22
- subscriber.next(window.asObservable());
23
- let closingNotifier;
24
- try {
25
- closingNotifier = tsplus_module_3.from(closingSelector());
26
- } catch (err) {
27
- handleError(tsplus_module_4.halt(err));
28
- return;
29
- }
30
- closingNotifier.subscribe(closingSubscriber = tsplus_module_5.operatorSubscriber(subscriber, {
31
- next: openWindow,
32
- complete: openWindow,
33
- error: handleError
34
- }));
35
- };
36
- openWindow();
37
- fa.provideEnvironment(environment).subscribe(tsplus_module_5.operate_({
38
- next: value => window.next(value),
39
- error: handleError,
40
- complete: () => {
41
- window.complete();
42
- subscriber.complete();
43
- },
44
- finalize: () => {
45
- closingSubscriber?.unsubscribe();
46
- window = null;
47
- }
48
- })(subscriber));
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":["windowWhen","closingSelector","fa","tsplus_module_1","Observable","subscriber","environment","window","closingSubscriber","handleError","err","error","openWindow","unsubscribe","complete","tsplus_module_2","Subject","next","asObservable","closingNotifier","tsplus_module_3","from","tsplus_module_4","halt","subscribe","tsplus_module_5","operatorSubscriber","provideEnvironment","operate_","value","finalize"],"sources":["../../../_src/Observable/api/windowWhen.ts"],"sourcesContent":[null],"mappings":";;;;;AAAA;;;AAGA,OAAM,SAAUA,UAAUA,CAACC,eAAyD;EAClF,OAAiBC,EAAuB,IAA+C;IACrF,OAAO,IAAAC,eAAA,CAAIC,UAAU,CAAC,CAACC,UAAU,EAAEC,WAAW,KAAI;MAChD,IAAIC,MAAmC;MACvC,IAAIC,iBAAiD;MACrD,MAAMC,WAAW,GAAIC,GAAa,IAAI;QACpCH,MAAO,CAACI,KAAK,CAACD,GAAG,CAAC;QAClBL,UAAU,CAACM,KAAK,CAACD,GAAG,CAAC;MACvB,CAAC;MACD,MAAME,UAAU,GAAGA,CAAA,KAAK;QACtBJ,iBAAiB,EAAEK,WAAW,EAAE;QAChCN,MAAM,EAAEO,QAAQ,EAAE;QAClBP,MAAM,GAAG,IAAAQ,eAAA,CAAIC,OAAO,EAAE;QACtBX,UAAU,CAACY,IAAI,CAACV,MAAM,CAACW,YAAY,EAAE,CAAC;QACtC,IAAIC,eAA8C;QAClD,IAAI;UACFA,eAAe,GAAGC,eAAA,CAAAC,IAAA,CAAgBpB,eAAe,EAAE,CAAC;QACtD,CAAC,CAAC,OAAOS,GAAG,EAAE;UACZD,WAAW,CAACa,eAAA,CAAAC,IAAA,CAAWb,GAAG,CAAC,CAAC;UAC5B;QACF;QACAS,eAAe,CAACK,SAAS,CACtBhB,iBAAiB,GAAGiB,eAAA,CAAAC,kBAAkB,CAACrB,UAAU,EAAE;UAClDY,IAAI,EAAEL,UAAU;UAChBE,QAAQ,EAAEF,UAAU;UACpBD,KAAK,EAAEF;SACR,CAAE,CACJ;MACH,CAAC;MACDG,UAAU,EAAE;MACZV,EAAE,CAACyB,kBAAkB,CAACrB,WAAW,CAAC,CAACkB,SAAS,CAC1CC,eAAA,CAAAG,QAAA,CAAmB;QACjBX,IAAI,EAAGY,KAAK,IAAKtB,MAAO,CAACU,IAAI,CAACY,KAAK,CAAC;QACpClB,KAAK,EAAEF,WAAW;QAClBK,QAAQ,EAAEA,CAAA,KAAK;UACbP,MAAO,CAACO,QAAQ,EAAE;UAClBT,UAAU,CAACS,QAAQ,EAAE;QACvB,CAAC;QACDgB,QAAQ,EAAEA,CAAA,KAAK;UACbtB,iBAAiB,EAAEK,WAAW,EAAE;UAChCN,MAAM,GAAG,IAAK;QAChB;OACD,EAXDF,UAAU,CAWR,CACH;IACH,CAAC,CAAC;EACJ,CAAC;AACH","ignoreList":[]}
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"}