@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.
Files changed (200) hide show
  1. package/Action.d.ts +2 -1
  2. package/AsyncScheduler.d.ts +1 -1
  3. package/LICENSE +26 -0
  4. package/ObservableRef/api.d.ts +3 -3
  5. package/ObservableRef/definition.d.ts +3 -3
  6. package/_cjs/Action.cjs +15 -16
  7. package/_cjs/Action.cjs.map +1 -1
  8. package/_cjs/AnimationFrameAction.cjs +30 -33
  9. package/_cjs/AnimationFrameAction.cjs.map +1 -1
  10. package/_cjs/AnimationFrameScheduler.cjs +30 -35
  11. package/_cjs/AnimationFrameScheduler.cjs.map +1 -1
  12. package/_cjs/AsyncAction.cjs +73 -88
  13. package/_cjs/AsyncAction.cjs.map +1 -1
  14. package/_cjs/AsyncScheduler.cjs +35 -41
  15. package/_cjs/AsyncScheduler.cjs.map +1 -1
  16. package/_cjs/BehaviorSubject.cjs +31 -37
  17. package/_cjs/BehaviorSubject.cjs.map +1 -1
  18. package/_cjs/Notification.cjs +65 -70
  19. package/_cjs/Notification.cjs.map +1 -1
  20. package/_cjs/Observable/api/connect.cjs +23 -25
  21. package/_cjs/Observable/api/connect.cjs.map +1 -1
  22. package/_cjs/Observable/api/connectable.cjs +46 -45
  23. package/_cjs/Observable/api/connectable.cjs.map +1 -1
  24. package/_cjs/Observable/api/fromCallback.cjs +44 -48
  25. package/_cjs/Observable/api/fromCallback.cjs.map +1 -1
  26. package/_cjs/Observable/api/fromEvent.cjs +15 -15
  27. package/_cjs/Observable/api/fromEvent.cjs.map +1 -1
  28. package/_cjs/Observable/api/index.cjs +32 -160
  29. package/_cjs/Observable/api/race.cjs +26 -30
  30. package/_cjs/Observable/api/race.cjs.map +1 -1
  31. package/_cjs/Observable/api/raceWith.cjs +14 -15
  32. package/_cjs/Observable/api/raceWith.cjs.map +1 -1
  33. package/_cjs/Observable/api/repeatWhen.cjs +54 -57
  34. package/_cjs/Observable/api/repeatWhen.cjs.map +1 -1
  35. package/_cjs/Observable/api/retryWhen.cjs +37 -41
  36. package/_cjs/Observable/api/retryWhen.cjs.map +1 -1
  37. package/_cjs/Observable/api/share.cjs +73 -83
  38. package/_cjs/Observable/api/share.cjs.map +1 -1
  39. package/_cjs/Observable/api/window.cjs +46 -43
  40. package/_cjs/Observable/api/window.cjs.map +1 -1
  41. package/_cjs/Observable/api/windowCount.cjs +45 -51
  42. package/_cjs/Observable/api/windowCount.cjs.map +1 -1
  43. package/_cjs/Observable/api/windowTime.cjs +73 -74
  44. package/_cjs/Observable/api/windowTime.cjs.map +1 -1
  45. package/_cjs/Observable/api/windowToggle.cjs +71 -74
  46. package/_cjs/Observable/api/windowToggle.cjs.map +1 -1
  47. package/_cjs/Observable/api/windowWhen.cjs +59 -55
  48. package/_cjs/Observable/api/windowWhen.cjs.map +1 -1
  49. package/_cjs/Observable/api.cjs +1858 -2033
  50. package/_cjs/Observable/api.cjs.map +1 -1
  51. package/_cjs/Observable/definition.cjs +107 -120
  52. package/_cjs/Observable/definition.cjs.map +1 -1
  53. package/_cjs/Observable/dom/animationFrames.cjs +30 -33
  54. package/_cjs/Observable/dom/animationFrames.cjs.map +1 -1
  55. package/_cjs/Observable/instances.cjs +0 -2
  56. package/_cjs/Observable.cjs +180 -215
  57. package/_cjs/ObservableRef/api.cjs +188 -156
  58. package/_cjs/ObservableRef/api.cjs.map +1 -1
  59. package/_cjs/ObservableRef/atomic.cjs +25 -28
  60. package/_cjs/ObservableRef/atomic.cjs.map +1 -1
  61. package/_cjs/ObservableRef/definition.cjs +32 -27
  62. package/_cjs/ObservableRef/definition.cjs.map +1 -1
  63. package/_cjs/ObservableRef.cjs +17 -39
  64. package/_cjs/Observer.cjs +0 -2
  65. package/_cjs/Operator.cjs +58 -61
  66. package/_cjs/Operator.cjs.map +1 -1
  67. package/_cjs/Scheduler.cjs +38 -37
  68. package/_cjs/Scheduler.cjs.map +1 -1
  69. package/_cjs/Subject.cjs +163 -202
  70. package/_cjs/Subject.cjs.map +1 -1
  71. package/_cjs/Subscriber.cjs +151 -170
  72. package/_cjs/Subscriber.cjs.map +1 -1
  73. package/_cjs/Subscription.cjs +98 -123
  74. package/_cjs/Subscription.cjs.map +1 -1
  75. package/_cjs/chunk.cjs +28 -0
  76. package/_cjs/config.cjs +11 -12
  77. package/_cjs/config.cjs.map +1 -1
  78. package/_cjs/global.cjs +0 -2
  79. package/_cjs/index.cjs +112 -36
  80. package/_cjs/internal/animationFrameProvider.cjs +32 -38
  81. package/_cjs/internal/animationFrameProvider.cjs.map +1 -1
  82. package/_cjs/internal/args.cjs +12 -12
  83. package/_cjs/internal/args.cjs.map +1 -1
  84. package/_cjs/internal/intervalProvider.cjs +15 -22
  85. package/_cjs/internal/intervalProvider.cjs.map +1 -1
  86. package/_cjs/internal/performanceTimestampProvider.cjs +10 -11
  87. package/_cjs/internal/performanceTimestampProvider.cjs.map +1 -1
  88. package/_cjs/internal/timeoutProvider.cjs +15 -22
  89. package/_cjs/internal/timeoutProvider.cjs.map +1 -1
  90. package/_cjs/internal/timestampProvider.cjs +10 -11
  91. package/_cjs/internal/timestampProvider.cjs.map +1 -1
  92. package/_cjs/internal/util.cjs +60 -68
  93. package/_cjs/internal/util.cjs.map +1 -1
  94. package/_mjs/Action.mjs +12 -8
  95. package/_mjs/Action.mjs.map +1 -1
  96. package/_mjs/AnimationFrameAction.mjs +25 -24
  97. package/_mjs/AnimationFrameAction.mjs.map +1 -1
  98. package/_mjs/AnimationFrameScheduler.mjs +25 -27
  99. package/_mjs/AnimationFrameScheduler.mjs.map +1 -1
  100. package/_mjs/AsyncAction.mjs +69 -79
  101. package/_mjs/AsyncAction.mjs.map +1 -1
  102. package/_mjs/AsyncScheduler.mjs +32 -34
  103. package/_mjs/AsyncScheduler.mjs.map +1 -1
  104. package/_mjs/BehaviorSubject.mjs +28 -29
  105. package/_mjs/BehaviorSubject.mjs.map +1 -1
  106. package/_mjs/Notification.mjs +57 -60
  107. package/_mjs/Notification.mjs.map +1 -1
  108. package/_mjs/Observable/api/connect.mjs +17 -17
  109. package/_mjs/Observable/api/connect.mjs.map +1 -1
  110. package/_mjs/Observable/api/connectable.mjs +39 -35
  111. package/_mjs/Observable/api/connectable.mjs.map +1 -1
  112. package/_mjs/Observable/api/fromCallback.mjs +40 -41
  113. package/_mjs/Observable/api/fromCallback.mjs.map +1 -1
  114. package/_mjs/Observable/api/fromEvent.mjs +12 -8
  115. package/_mjs/Observable/api/fromEvent.mjs.map +1 -1
  116. package/_mjs/Observable/api/index.mjs +15 -15
  117. package/_mjs/Observable/api/race.mjs +20 -22
  118. package/_mjs/Observable/api/race.mjs.map +1 -1
  119. package/_mjs/Observable/api/raceWith.mjs +11 -8
  120. package/_mjs/Observable/api/raceWith.mjs.map +1 -1
  121. package/_mjs/Observable/api/repeatWhen.mjs +48 -49
  122. package/_mjs/Observable/api/repeatWhen.mjs.map +1 -1
  123. package/_mjs/Observable/api/retryWhen.mjs +31 -33
  124. package/_mjs/Observable/api/retryWhen.mjs.map +1 -1
  125. package/_mjs/Observable/api/share.mjs +65 -74
  126. package/_mjs/Observable/api/share.mjs.map +1 -1
  127. package/_mjs/Observable/api/window.mjs +38 -34
  128. package/_mjs/Observable/api/window.mjs.map +1 -1
  129. package/_mjs/Observable/api/windowCount.mjs +39 -43
  130. package/_mjs/Observable/api/windowCount.mjs.map +1 -1
  131. package/_mjs/Observable/api/windowTime.mjs +63 -64
  132. package/_mjs/Observable/api/windowTime.mjs.map +1 -1
  133. package/_mjs/Observable/api/windowToggle.mjs +58 -62
  134. package/_mjs/Observable/api/windowToggle.mjs.map +1 -1
  135. package/_mjs/Observable/api/windowWhen.mjs +50 -46
  136. package/_mjs/Observable/api/windowWhen.mjs.map +1 -1
  137. package/_mjs/Observable/api.mjs +1822 -2030
  138. package/_mjs/Observable/api.mjs.map +1 -1
  139. package/_mjs/Observable/definition.mjs +94 -108
  140. package/_mjs/Observable/definition.mjs.map +1 -1
  141. package/_mjs/Observable/dom/animationFrames.mjs +23 -23
  142. package/_mjs/Observable/dom/animationFrames.mjs.map +1 -1
  143. package/_mjs/Observable/instances.mjs +0 -2
  144. package/_mjs/Observable.mjs +20 -25
  145. package/_mjs/ObservableRef/api.mjs +180 -144
  146. package/_mjs/ObservableRef/api.mjs.map +1 -1
  147. package/_mjs/ObservableRef/atomic.mjs +21 -20
  148. package/_mjs/ObservableRef/atomic.mjs.map +1 -1
  149. package/_mjs/ObservableRef/definition.mjs +29 -19
  150. package/_mjs/ObservableRef/definition.mjs.map +1 -1
  151. package/_mjs/ObservableRef.mjs +4 -5
  152. package/_mjs/Observer.mjs +0 -2
  153. package/_mjs/Operator.mjs +50 -50
  154. package/_mjs/Operator.mjs.map +1 -1
  155. package/_mjs/Scheduler.mjs +30 -26
  156. package/_mjs/Scheduler.mjs.map +1 -1
  157. package/_mjs/Subject.mjs +154 -191
  158. package/_mjs/Subject.mjs.map +1 -1
  159. package/_mjs/Subscriber.mjs +136 -156
  160. package/_mjs/Subscriber.mjs.map +1 -1
  161. package/_mjs/Subscription.mjs +90 -113
  162. package/_mjs/Subscription.mjs.map +1 -1
  163. package/_mjs/config.mjs +10 -6
  164. package/_mjs/config.mjs.map +1 -1
  165. package/_mjs/global.mjs +0 -2
  166. package/_mjs/index.mjs +14 -15
  167. package/_mjs/internal/animationFrameProvider.mjs +28 -30
  168. package/_mjs/internal/animationFrameProvider.mjs.map +1 -1
  169. package/_mjs/internal/args.mjs +9 -5
  170. package/_mjs/internal/args.mjs.map +1 -1
  171. package/_mjs/internal/intervalProvider.mjs +14 -16
  172. package/_mjs/internal/intervalProvider.mjs.map +1 -1
  173. package/_mjs/internal/performanceTimestampProvider.mjs +9 -5
  174. package/_mjs/internal/performanceTimestampProvider.mjs.map +1 -1
  175. package/_mjs/internal/timeoutProvider.mjs +14 -16
  176. package/_mjs/internal/timeoutProvider.mjs.map +1 -1
  177. package/_mjs/internal/timestampProvider.mjs +9 -5
  178. package/_mjs/internal/timestampProvider.mjs.map +1 -1
  179. package/_mjs/internal/util.mjs +54 -59
  180. package/_mjs/internal/util.mjs.map +1 -1
  181. package/_src/Action.ts +2 -0
  182. package/_src/AsyncScheduler.ts +2 -0
  183. package/_src/Observable/api.ts +4 -4
  184. package/_src/ObservableRef/api.ts +36 -12
  185. package/_src/ObservableRef/definition.ts +12 -4
  186. package/package.json +6 -2
  187. package/_cjs/Observable/api/index.cjs.map +0 -1
  188. package/_cjs/Observable/instances.cjs.map +0 -1
  189. package/_cjs/Observable.cjs.map +0 -1
  190. package/_cjs/ObservableRef.cjs.map +0 -1
  191. package/_cjs/Observer.cjs.map +0 -1
  192. package/_cjs/global.cjs.map +0 -1
  193. package/_cjs/index.cjs.map +0 -1
  194. package/_mjs/Observable/api/index.mjs.map +0 -1
  195. package/_mjs/Observable/instances.mjs.map +0 -1
  196. package/_mjs/Observable.mjs.map +0 -1
  197. package/_mjs/ObservableRef.mjs.map +0 -1
  198. package/_mjs/Observer.mjs.map +0 -1
  199. package/_mjs/global.mjs.map +0 -1
  200. package/_mjs/index.mjs.map +0 -1
@@ -1,82 +1,73 @@
1
- import * as tsplus_module_1 from "@fncts/observable/Subject";
2
1
  import * as tsplus_module_2 from "@fncts/observable/Observable";
2
+ import * as tsplus_module_1 from "@fncts/observable/Subject";
3
3
  import * as tsplus_module_3 from "@fncts/observable/Subscriber";
4
4
  import * as tsplus_module_4 from "@fncts/observable/Observable/api";
5
+ //#region build/esm/Observable/api/share.js
5
6
  /**
6
- * @tsplus pipeable fncts.observable.Observable share
7
- */
8
- export function share(options = {}) {
9
- return fa => {
10
- const {
11
- connector = () => new tsplus_module_1.Subject(),
12
- resetOnDefect = true,
13
- resetOnComplete = true,
14
- resetOnRefCountZero = true
15
- } = options;
16
- let connection = null;
17
- let resetConnection = null;
18
- let subject = null;
19
- let refCount = 0;
20
- let hasCompleted = false;
21
- let hasErrored = false;
22
- const cancelReset = () => {
23
- resetConnection?.unsubscribe();
24
- resetConnection = null;
25
- };
26
- const reset = () => {
27
- cancelReset();
28
- connection = subject = null;
29
- hasCompleted = hasErrored = false;
30
- };
31
- const resetAndUnsubscribe = () => {
32
- const conn = connection;
33
- reset();
34
- conn?.unsubscribe();
35
- };
36
- return new tsplus_module_2.Observable((subscriber, environment) => {
37
- refCount++;
38
- if (!hasErrored && !hasCompleted) {
39
- cancelReset();
40
- }
41
- const dest = subject || (subject = connector());
42
- subscriber.add(() => {
43
- refCount--;
44
- if (refCount === 0 && !hasErrored && !hasCompleted) {
45
- resetConnection = handleReset(resetAndUnsubscribe, resetOnRefCountZero, environment);
46
- }
47
- });
48
- dest.provideEnvironment(environment).subscribe(subscriber);
49
- if (!connection) {
50
- connection = new tsplus_module_3.Subscriber({
51
- next: value => dest.next(value),
52
- error: defect => {
53
- hasErrored = true;
54
- cancelReset();
55
- resetConnection = handleReset(reset, resetOnDefect, environment, defect);
56
- dest.error(defect);
57
- },
58
- complete: () => {
59
- hasCompleted = true;
60
- cancelReset();
61
- resetConnection = handleReset(reset, resetOnComplete, environment);
62
- dest.complete();
63
- }
64
- });
65
- tsplus_module_4.from(fa).provideEnvironment(environment).subscribe(connection);
66
- }
67
- });
68
- };
7
+ * @tsplus pipeable fncts.observable.Observable share
8
+ */
9
+ function share(options = {}) {
10
+ return (fa) => {
11
+ const { connector = () => new tsplus_module_1.Subject(), resetOnDefect = true, resetOnComplete = true, resetOnRefCountZero = true } = options;
12
+ let connection = null;
13
+ let resetConnection = null;
14
+ let subject = null;
15
+ let refCount = 0;
16
+ let hasCompleted = false;
17
+ let hasErrored = false;
18
+ const cancelReset = () => {
19
+ resetConnection?.unsubscribe();
20
+ resetConnection = null;
21
+ };
22
+ const reset = () => {
23
+ cancelReset();
24
+ connection = subject = null;
25
+ hasCompleted = hasErrored = false;
26
+ };
27
+ const resetAndUnsubscribe = () => {
28
+ const conn = connection;
29
+ reset();
30
+ conn?.unsubscribe();
31
+ };
32
+ return new tsplus_module_2.Observable((subscriber, environment) => {
33
+ refCount++;
34
+ if (!hasErrored && !hasCompleted) cancelReset();
35
+ const dest = subject ||= connector();
36
+ subscriber.add(() => {
37
+ refCount--;
38
+ if (refCount === 0 && !hasErrored && !hasCompleted) resetConnection = handleReset(resetAndUnsubscribe, resetOnRefCountZero, environment);
39
+ });
40
+ dest.provideEnvironment(environment).subscribe(subscriber);
41
+ if (!connection) {
42
+ connection = new tsplus_module_3.Subscriber({
43
+ next: (value) => dest.next(value),
44
+ error: (defect) => {
45
+ hasErrored = true;
46
+ cancelReset();
47
+ resetConnection = handleReset(reset, resetOnDefect, environment, defect);
48
+ dest.error(defect);
49
+ },
50
+ complete: () => {
51
+ hasCompleted = true;
52
+ cancelReset();
53
+ resetConnection = handleReset(reset, resetOnComplete, environment);
54
+ dest.complete();
55
+ }
56
+ });
57
+ tsplus_module_4.from(fa).provideEnvironment(environment).subscribe(connection);
58
+ }
59
+ });
60
+ };
69
61
  }
70
62
  function handleReset(reset, on, environment, ...args) {
71
- if (on === true) {
72
- reset();
73
- return null;
74
- }
75
- if (on === false) {
76
- return null;
77
- }
78
- return tsplus_module_4.take(1)(on(...args)).provideEnvironment(environment).subscribe({
79
- next: () => reset()
80
- });
63
+ if (on === true) {
64
+ reset();
65
+ return null;
66
+ }
67
+ if (on === false) return null;
68
+ return tsplus_module_4.take(1)(on(...args)).provideEnvironment(environment).subscribe({ next: () => reset() });
81
69
  }
70
+ //#endregion
71
+ export { share };
72
+
82
73
  //# sourceMappingURL=share.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"share.mjs","names":["share","options","fa","connector","tsplus_module_1","Subject","resetOnDefect","resetOnComplete","resetOnRefCountZero","connection","resetConnection","subject","refCount","hasCompleted","hasErrored","cancelReset","unsubscribe","reset","resetAndUnsubscribe","conn","tsplus_module_2","Observable","subscriber","environment","dest","add","handleReset","provideEnvironment","subscribe","tsplus_module_3","Subscriber","next","value","error","defect","complete","tsplus_module_4","from","on","args","take"],"sources":["../../../_src/Observable/api/share.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"share.mjs","names":[],"sources":["../../../esm/Observable/api/share.js"],"sourcesContent":["import * as tsplus_module_1 from \"@fncts/observable/Subject\";\nimport * as tsplus_module_2 from \"@fncts/observable/Observable\";\nimport * as tsplus_module_3 from \"@fncts/observable/Subscriber\";\nimport * as tsplus_module_4 from \"@fncts/observable/Observable/api\";\n/**\n * @tsplus pipeable fncts.observable.Observable share\n */\nexport function share(options = {}) {\n return (fa) => {\n const { connector = () => new tsplus_module_1.Subject(), resetOnDefect = true, resetOnComplete = true, resetOnRefCountZero = true, } = options;\n let connection = null;\n let resetConnection = null;\n let subject = null;\n let refCount = 0;\n let hasCompleted = false;\n let hasErrored = false;\n const cancelReset = () => {\n resetConnection?.unsubscribe();\n resetConnection = null;\n };\n const reset = () => {\n cancelReset();\n connection = subject = null;\n hasCompleted = hasErrored = false;\n };\n const resetAndUnsubscribe = () => {\n const conn = connection;\n reset();\n conn?.unsubscribe();\n };\n return new tsplus_module_2.Observable((subscriber, environment) => {\n refCount++;\n if (!hasErrored && !hasCompleted) {\n cancelReset();\n }\n const dest = (subject ||= connector());\n subscriber.add(() => {\n refCount--;\n if (refCount === 0 && !hasErrored && !hasCompleted) {\n resetConnection = handleReset(resetAndUnsubscribe, resetOnRefCountZero, environment);\n }\n });\n dest.provideEnvironment(environment).subscribe(subscriber);\n if (!connection) {\n connection = new tsplus_module_3.Subscriber({\n next: (value) => dest.next(value),\n error: (defect) => {\n hasErrored = true;\n cancelReset();\n resetConnection = handleReset(reset, resetOnDefect, environment, defect);\n dest.error(defect);\n },\n complete: () => {\n hasCompleted = true;\n cancelReset();\n resetConnection = handleReset(reset, resetOnComplete, environment);\n dest.complete();\n },\n });\n tsplus_module_4.from(fa).provideEnvironment(environment).subscribe(connection);\n }\n });\n };\n}\nfunction handleReset(reset, on, environment, ...args) {\n if (on === true) {\n reset();\n return null;\n }\n if (on === false) {\n return null;\n }\n return tsplus_module_4.take(1)(on(...args))\n .provideEnvironment(environment)\n .subscribe({ next: () => reset() });\n}\n//# sourceMappingURL=share.js.map"],"mappings":";;;;;;;;AAOA,SAAgB,MAAM,UAAU,EAAE,EAAE;AAChC,SAAQ,OAAO;EACX,MAAM,EAAE,kBAAkB,IAAI,gBAAgB,SAAS,EAAE,gBAAgB,MAAM,kBAAkB,MAAM,sBAAsB,SAAU;EACvI,IAAI,aAAa;EACjB,IAAI,kBAAkB;EACtB,IAAI,UAAU;EACd,IAAI,WAAW;EACf,IAAI,eAAe;EACnB,IAAI,aAAa;EACjB,MAAM,oBAAoB;AACtB,oBAAiB,aAAa;AAC9B,qBAAkB;;EAEtB,MAAM,cAAc;AAChB,gBAAa;AACb,gBAAa,UAAU;AACvB,kBAAe,aAAa;;EAEhC,MAAM,4BAA4B;GAC9B,MAAM,OAAO;AACb,UAAO;AACP,SAAM,aAAa;;AAEvB,SAAO,IAAI,gBAAgB,YAAY,YAAY,gBAAgB;AAC/D;AACA,OAAI,CAAC,cAAc,CAAC,aAChB,cAAa;GAEjB,MAAM,OAAQ,YAAY,WAAW;AACrC,cAAW,UAAU;AACjB;AACA,QAAI,aAAa,KAAK,CAAC,cAAc,CAAC,aAClC,mBAAkB,YAAY,qBAAqB,qBAAqB,YAAY;KAE1F;AACF,QAAK,mBAAmB,YAAY,CAAC,UAAU,WAAW;AAC1D,OAAI,CAAC,YAAY;AACb,iBAAa,IAAI,gBAAgB,WAAW;KACxC,OAAO,UAAU,KAAK,KAAK,MAAM;KACjC,QAAQ,WAAW;AACf,mBAAa;AACb,mBAAa;AACb,wBAAkB,YAAY,OAAO,eAAe,aAAa,OAAO;AACxE,WAAK,MAAM,OAAO;;KAEtB,gBAAgB;AACZ,qBAAe;AACf,mBAAa;AACb,wBAAkB,YAAY,OAAO,iBAAiB,YAAY;AAClE,WAAK,UAAU;;KAEtB,CAAC;AACF,oBAAgB,KAAK,GAAG,CAAC,mBAAmB,YAAY,CAAC,UAAU,WAAW;;IAEpF;;;AAGV,SAAS,YAAY,OAAO,IAAI,aAAa,GAAG,MAAM;AAClD,KAAI,OAAO,MAAM;AACb,SAAO;AACP,SAAO;;AAEX,KAAI,OAAO,MACP,QAAO;AAEX,QAAO,gBAAgB,KAAK,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,CACtC,mBAAmB,YAAY,CAC/B,UAAU,EAAE,YAAY,OAAO,EAAE,CAAC"}
@@ -1,40 +1,44 @@
1
1
  import * as tsplus_module_1 from "@fncts/observable/Observable";
2
- import * as tsplus_module_2 from "@fncts/observable/Subject";
3
2
  import * as tsplus_module_3 from "@fncts/observable/Operator";
3
+ import * as tsplus_module_2 from "@fncts/observable/Subject";
4
4
  import * as tsplus_module_4 from "@fncts/observable/internal/util";
5
+ //#region build/esm/Observable/api/window.js
5
6
  /**
6
- * @tsplus pipeable fncts.observable.Observable window
7
- */
8
- export function window(windowBoundaries) {
9
- return fa => {
10
- return new tsplus_module_1.Observable((subscriber, environment) => {
11
- let windowSubject = new tsplus_module_2.Subject();
12
- subscriber.next(windowSubject.asObservable());
13
- const errorHandler = err => {
14
- windowSubject.error(err);
15
- subscriber.error(err);
16
- };
17
- fa.provideEnvironment(environment).subscribe(tsplus_module_3.operate_({
18
- next: value => windowSubject.next(value),
19
- error: errorHandler,
20
- complete: () => {
21
- windowSubject.complete();
22
- subscriber.complete();
23
- }
24
- })(subscriber));
25
- windowBoundaries.subscribe(tsplus_module_3.operatorSubscriber(subscriber, {
26
- next: () => {
27
- windowSubject.complete();
28
- subscriber.next(windowSubject = new tsplus_module_2.Subject());
29
- },
30
- complete: tsplus_module_4.noop,
31
- error: errorHandler
32
- }));
33
- return () => {
34
- windowSubject.unsubscribe();
35
- windowSubject = null;
36
- };
37
- });
38
- };
7
+ * @tsplus pipeable fncts.observable.Observable window
8
+ */
9
+ function window(windowBoundaries) {
10
+ return (fa) => {
11
+ return new tsplus_module_1.Observable((subscriber, environment) => {
12
+ let windowSubject = new tsplus_module_2.Subject();
13
+ subscriber.next(windowSubject.asObservable());
14
+ const errorHandler = (err) => {
15
+ windowSubject.error(err);
16
+ subscriber.error(err);
17
+ };
18
+ fa.provideEnvironment(environment).subscribe(tsplus_module_3.operate_({
19
+ next: (value) => windowSubject.next(value),
20
+ error: errorHandler,
21
+ complete: () => {
22
+ windowSubject.complete();
23
+ subscriber.complete();
24
+ }
25
+ })(subscriber));
26
+ windowBoundaries.subscribe(tsplus_module_3.operatorSubscriber(subscriber, {
27
+ next: () => {
28
+ windowSubject.complete();
29
+ subscriber.next(windowSubject = new tsplus_module_2.Subject());
30
+ },
31
+ complete: tsplus_module_4.noop,
32
+ error: errorHandler
33
+ }));
34
+ return () => {
35
+ windowSubject.unsubscribe();
36
+ windowSubject = null;
37
+ };
38
+ });
39
+ };
39
40
  }
41
+ //#endregion
42
+ export { window };
43
+
40
44
  //# sourceMappingURL=window.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"window.mjs","names":["window","windowBoundaries","fa","tsplus_module_1","Observable","subscriber","environment","windowSubject","tsplus_module_2","Subject","next","asObservable","errorHandler","err","error","provideEnvironment","subscribe","tsplus_module_3","operate_","value","complete","operatorSubscriber","tsplus_module_4","noop","unsubscribe"],"sources":["../../../_src/Observable/api/window.ts"],"sourcesContent":[null],"mappings":";;;;AAAA;;;AAGA,OAAM,SAAUA,MAAMA,CAACC,gBAA+C;EACpE,OAAiBC,EAAuB,IAA+C;IACrF,OAAO,IAAAC,eAAA,CAAIC,UAAU,CAAC,CAACC,UAAU,EAAEC,WAAW,KAAI;MAChD,IAAIC,aAAa,GAAyB,IAAAC,eAAA,CAAIC,OAAO,EAAE;MACvDJ,UAAU,CAACK,IAAI,CAACH,aAAa,CAACI,YAAY,EAAE,CAAC;MAC7C,MAAMC,YAAY,GAAIC,GAAa,IAAI;QACrCN,aAAa,CAACO,KAAK,CAACD,GAAG,CAAC;QACxBR,UAAU,CAACS,KAAK,CAACD,GAAG,CAAC;MACvB,CAAC;MACDX,EAAE,CAACa,kBAAkB,CAACT,WAAW,CAAC,CAACU,SAAS,CAC1CC,eAAA,CAAAC,QAAA,CAAmB;QACjBR,IAAI,EAAGS,KAAK,IAAKZ,aAAa,CAACG,IAAI,CAACS,KAAK,CAAC;QAC1CL,KAAK,EAAEF,YAAY;QACnBQ,QAAQ,EAAEA,CAAA,KAAK;UACbb,aAAa,CAACa,QAAQ,EAAE;UACxBf,UAAU,CAACe,QAAQ,EAAE;QACvB;OACD,EAPDf,UAAU,CAOR,CACH;MACDJ,gBAAgB,CAACe,SAAS,CACxBC,eAAA,CAAAI,kBAAkB,CAAChB,UAAU,EAAE;QAC7BK,IAAI,EAAEA,CAAA,KAAK;UACTH,aAAa,CAACa,QAAQ,EAAE;UACxBf,UAAU,CAACK,IAAI,CAAEH,aAAa,GAAG,IAAAC,eAAA,CAAIC,OAAO,EAAG,CAAC;QAClD,CAAC;QACDW,QAAQ,EAAAE,eAAA,CAAEC,IAAI;QACdT,KAAK,EAAEF;OACR,CAAC,CACH;MACD,OAAO,MAAK;QACVL,aAAa,CAACiB,WAAW,EAAE;QAC3BjB,aAAa,GAAG,IAAK;MACvB,CAAC;IACH,CAAC,CAAC;EACJ,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"window.mjs","names":[],"sources":["../../../esm/Observable/api/window.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\";\nimport * as tsplus_module_4 from \"@fncts/observable/internal/util\";\n/**\n * @tsplus pipeable fncts.observable.Observable window\n */\nexport function window(windowBoundaries) {\n return (fa) => {\n return new tsplus_module_1.Observable((subscriber, environment) => {\n let windowSubject = new tsplus_module_2.Subject();\n subscriber.next(windowSubject.asObservable());\n const errorHandler = (err) => {\n windowSubject.error(err);\n subscriber.error(err);\n };\n fa.provideEnvironment(environment).subscribe(tsplus_module_3.operate_({\n next: (value) => windowSubject.next(value),\n error: errorHandler,\n complete: () => {\n windowSubject.complete();\n subscriber.complete();\n },\n })(subscriber));\n windowBoundaries.subscribe(tsplus_module_3.operatorSubscriber(subscriber, {\n next: () => {\n windowSubject.complete();\n subscriber.next((windowSubject = new tsplus_module_2.Subject()));\n },\n complete: tsplus_module_4.noop,\n error: errorHandler,\n }));\n return () => {\n windowSubject.unsubscribe();\n windowSubject = null;\n };\n });\n };\n}\n//# sourceMappingURL=window.js.map"],"mappings":";;;;;;;;AAOA,SAAgB,OAAO,kBAAkB;AACrC,SAAQ,OAAO;AACX,SAAO,IAAI,gBAAgB,YAAY,YAAY,gBAAgB;GAC/D,IAAI,gBAAgB,IAAI,gBAAgB,SAAS;AACjD,cAAW,KAAK,cAAc,cAAc,CAAC;GAC7C,MAAM,gBAAgB,QAAQ;AAC1B,kBAAc,MAAM,IAAI;AACxB,eAAW,MAAM,IAAI;;AAEzB,MAAG,mBAAmB,YAAY,CAAC,UAAU,gBAAgB,SAAS;IAClE,OAAO,UAAU,cAAc,KAAK,MAAM;IAC1C,OAAO;IACP,gBAAgB;AACZ,mBAAc,UAAU;AACxB,gBAAW,UAAU;;IAE5B,CAAC,CAAC,WAAW,CAAC;AACf,oBAAiB,UAAU,gBAAgB,mBAAmB,YAAY;IACtE,YAAY;AACR,mBAAc,UAAU;AACxB,gBAAW,KAAM,gBAAgB,IAAI,gBAAgB,SAAS,CAAE;;IAEpE,UAAU,gBAAgB;IAC1B,OAAO;IACV,CAAC,CAAC;AACH,gBAAa;AACT,kBAAc,aAAa;AAC3B,oBAAgB;;IAEtB"}
@@ -1,48 +1,44 @@
1
1
  import * as tsplus_module_1 from "@fncts/observable/Observable";
2
- import * as tsplus_module_2 from "@fncts/observable/Subject";
3
2
  import * as tsplus_module_3 from "@fncts/observable/Operator";
3
+ import * as tsplus_module_2 from "@fncts/observable/Subject";
4
+ //#region build/esm/Observable/api/windowCount.js
4
5
  /**
5
- * @tsplus pipeable fncts.observable.Observable windowCount
6
- */
7
- export function windowCount(windowSize, startWindowEvery = 0) {
8
- return fa => {
9
- const startEvery = startWindowEvery > 0 ? startWindowEvery : windowSize;
10
- return new tsplus_module_1.Observable((subscriber, environment) => {
11
- let windows = [new tsplus_module_2.Subject()];
12
- let count = 0;
13
- subscriber.next(windows[0].asObservable());
14
- fa.provideEnvironment(environment).subscribe(tsplus_module_3.operate_({
15
- next: value => {
16
- for (const window of windows) {
17
- window.next(value);
18
- }
19
- const c = count - windowSize + 1;
20
- if (c >= 0 && c % startEvery === 0) {
21
- windows.shift().complete();
22
- }
23
- if (++count && startEvery === 0) {
24
- const window = new tsplus_module_2.Subject();
25
- windows.push(window);
26
- subscriber.next(window.asObservable());
27
- }
28
- },
29
- complete: () => {
30
- while (windows.length > 0) {
31
- windows.shift().complete();
32
- }
33
- subscriber.complete();
34
- },
35
- error: err => {
36
- while (windows.length > 0) {
37
- windows.shift().error(err);
38
- }
39
- subscriber.error(err);
40
- },
41
- finalize: () => {
42
- windows = null;
43
- }
44
- })(subscriber));
45
- });
46
- };
6
+ * @tsplus pipeable fncts.observable.Observable windowCount
7
+ */
8
+ function windowCount(windowSize, startWindowEvery = 0) {
9
+ return (fa) => {
10
+ const startEvery = startWindowEvery > 0 ? startWindowEvery : windowSize;
11
+ return new tsplus_module_1.Observable((subscriber, environment) => {
12
+ let windows = [new tsplus_module_2.Subject()];
13
+ let count = 0;
14
+ subscriber.next(windows[0].asObservable());
15
+ fa.provideEnvironment(environment).subscribe(tsplus_module_3.operate_({
16
+ next: (value) => {
17
+ for (const window of windows) window.next(value);
18
+ const c = count - windowSize + 1;
19
+ if (c >= 0 && c % startEvery === 0) windows.shift().complete();
20
+ if (++count && startEvery === 0) {
21
+ const window = new tsplus_module_2.Subject();
22
+ windows.push(window);
23
+ subscriber.next(window.asObservable());
24
+ }
25
+ },
26
+ complete: () => {
27
+ while (windows.length > 0) windows.shift().complete();
28
+ subscriber.complete();
29
+ },
30
+ error: (err) => {
31
+ while (windows.length > 0) windows.shift().error(err);
32
+ subscriber.error(err);
33
+ },
34
+ finalize: () => {
35
+ windows = null;
36
+ }
37
+ })(subscriber));
38
+ });
39
+ };
47
40
  }
41
+ //#endregion
42
+ export { windowCount };
43
+
48
44
  //# sourceMappingURL=windowCount.mjs.map
@@ -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"}