@fncts/observable 0.0.9 → 0.0.11

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 (221) hide show
  1. package/BehaviorSubject.d.ts +2 -2
  2. package/Notification.d.ts +4 -4
  3. package/Observable/api/connect.d.ts +2 -2
  4. package/Observable/api/connectable.d.ts +2 -2
  5. package/Observable/api/fromEvent.d.ts +4 -0
  6. package/Observable/api/race.d.ts +2 -1
  7. package/Observable/api/raceWith.d.ts +2 -2
  8. package/Observable/api/repeatWhen.d.ts +5 -2
  9. package/Observable/api/retryWhen.d.ts +2 -3
  10. package/Observable/api/share.d.ts +5 -4
  11. package/Observable/api/window.d.ts +2 -2
  12. package/Observable/api/windowCount.d.ts +2 -2
  13. package/Observable/api/windowTime.d.ts +5 -5
  14. package/Observable/api/windowToggle.d.ts +3 -3
  15. package/Observable/api/windowWhen.d.ts +3 -3
  16. package/Observable/api.d.ts +189 -195
  17. package/Observable/definition.d.ts +8 -6
  18. package/ObservableRef/api.d.ts +63 -0
  19. package/ObservableRef/atomic.d.ts +32 -0
  20. package/ObservableRef/definition.d.ts +52 -0
  21. package/Operator.d.ts +2 -2
  22. package/_cjs/Action.cjs +0 -7
  23. package/_cjs/Action.cjs.map +1 -1
  24. package/_cjs/AnimationFrameAction.cjs +0 -12
  25. package/_cjs/AnimationFrameAction.cjs.map +1 -1
  26. package/_cjs/AnimationFrameScheduler.cjs +0 -12
  27. package/_cjs/AnimationFrameScheduler.cjs.map +1 -1
  28. package/_cjs/AsyncAction.cjs +0 -25
  29. package/_cjs/AsyncAction.cjs.map +1 -1
  30. package/_cjs/AsyncScheduler.cjs +2 -16
  31. package/_cjs/AsyncScheduler.cjs.map +1 -1
  32. package/_cjs/BehaviorSubject.cjs +1 -13
  33. package/_cjs/BehaviorSubject.cjs.map +1 -1
  34. package/_cjs/Notification.cjs +21 -40
  35. package/_cjs/Notification.cjs.map +1 -1
  36. package/_cjs/Observable/api/connect.cjs +12 -17
  37. package/_cjs/Observable/api/connect.cjs.map +1 -1
  38. package/_cjs/Observable/api/connectable.cjs +6 -18
  39. package/_cjs/Observable/api/connectable.cjs.map +1 -1
  40. package/_cjs/Observable/api/fromCallback.cjs +0 -15
  41. package/_cjs/Observable/api/fromCallback.cjs.map +1 -1
  42. package/_cjs/Observable/api/fromEvent.cjs +3 -5
  43. package/_cjs/Observable/api/fromEvent.cjs.map +1 -1
  44. package/_cjs/Observable/api/index.cjs +0 -28
  45. package/_cjs/Observable/api/index.cjs.map +1 -1
  46. package/_cjs/Observable/api/race.cjs +2 -12
  47. package/_cjs/Observable/api/race.cjs.map +1 -1
  48. package/_cjs/Observable/api/raceWith.cjs +8 -11
  49. package/_cjs/Observable/api/raceWith.cjs.map +1 -1
  50. package/_cjs/Observable/api/repeatWhen.cjs +44 -55
  51. package/_cjs/Observable/api/repeatWhen.cjs.map +1 -1
  52. package/_cjs/Observable/api/retryWhen.cjs +29 -45
  53. package/_cjs/Observable/api/retryWhen.cjs.map +1 -1
  54. package/_cjs/Observable/api/share.cjs +61 -77
  55. package/_cjs/Observable/api/share.cjs.map +1 -1
  56. package/_cjs/Observable/api/window.cjs +33 -39
  57. package/_cjs/Observable/api/window.cjs.map +1 -1
  58. package/_cjs/Observable/api/windowCount.cjs +40 -48
  59. package/_cjs/Observable/api/windowCount.cjs.map +1 -1
  60. package/_cjs/Observable/api/windowTime.cjs +60 -73
  61. package/_cjs/Observable/api/windowTime.cjs.map +1 -1
  62. package/_cjs/Observable/api/windowToggle.cjs +55 -71
  63. package/_cjs/Observable/api/windowToggle.cjs.map +1 -1
  64. package/_cjs/Observable/api/windowWhen.cjs +42 -52
  65. package/_cjs/Observable/api/windowWhen.cjs.map +1 -1
  66. package/_cjs/Observable/api.cjs +1260 -1485
  67. package/_cjs/Observable/api.cjs.map +1 -1
  68. package/_cjs/Observable/definition.cjs +9 -37
  69. package/_cjs/Observable/definition.cjs.map +1 -1
  70. package/_cjs/Observable/dom/animationFrames.cjs +0 -12
  71. package/_cjs/Observable/dom/animationFrames.cjs.map +1 -1
  72. package/_cjs/Observable.cjs +0 -38
  73. package/_cjs/Observable.cjs.map +1 -1
  74. package/_cjs/ObservableRef/api.cjs +160 -0
  75. package/_cjs/ObservableRef/api.cjs.map +1 -0
  76. package/_cjs/ObservableRef/atomic.cjs +93 -0
  77. package/_cjs/ObservableRef/atomic.cjs.map +1 -0
  78. package/_cjs/ObservableRef/definition.cjs +24 -0
  79. package/_cjs/ObservableRef/definition.cjs.map +1 -0
  80. package/_cjs/Operator.cjs +11 -21
  81. package/_cjs/Operator.cjs.map +1 -1
  82. package/_cjs/Scheduler.cjs +0 -18
  83. package/_cjs/Scheduler.cjs.map +1 -1
  84. package/_cjs/Subject.cjs +3 -50
  85. package/_cjs/Subject.cjs.map +1 -1
  86. package/_cjs/Subscriber.cjs +0 -32
  87. package/_cjs/Subscriber.cjs.map +1 -1
  88. package/_cjs/Subscription.cjs +0 -37
  89. package/_cjs/Subscription.cjs.map +1 -1
  90. package/_cjs/index.cjs +0 -28
  91. package/_cjs/internal/animationFrameProvider.cjs +0 -9
  92. package/_cjs/internal/animationFrameProvider.cjs.map +1 -1
  93. package/_cjs/internal/args.cjs +0 -6
  94. package/_cjs/internal/args.cjs.map +1 -1
  95. package/_cjs/internal/intervalProvider.cjs +0 -2
  96. package/_cjs/internal/intervalProvider.cjs.map +1 -1
  97. package/_cjs/internal/performanceTimestampProvider.cjs +0 -1
  98. package/_cjs/internal/performanceTimestampProvider.cjs.map +1 -1
  99. package/_cjs/internal/timeoutProvider.cjs +0 -2
  100. package/_cjs/internal/timeoutProvider.cjs.map +1 -1
  101. package/_cjs/internal/timestampProvider.cjs +0 -1
  102. package/_cjs/internal/timestampProvider.cjs.map +1 -1
  103. package/_cjs/internal/util.cjs +2 -21
  104. package/_cjs/internal/util.cjs.map +1 -1
  105. package/_mjs/Action.mjs +0 -3
  106. package/_mjs/Action.mjs.map +1 -1
  107. package/_mjs/AnimationFrameAction.mjs +0 -6
  108. package/_mjs/AnimationFrameAction.mjs.map +1 -1
  109. package/_mjs/AnimationFrameScheduler.mjs +0 -7
  110. package/_mjs/AnimationFrameScheduler.mjs.map +1 -1
  111. package/_mjs/AsyncAction.mjs +0 -17
  112. package/_mjs/AsyncAction.mjs.map +1 -1
  113. package/_mjs/AsyncScheduler.mjs +2 -10
  114. package/_mjs/AsyncScheduler.mjs.map +1 -1
  115. package/_mjs/BehaviorSubject.mjs +1 -8
  116. package/_mjs/BehaviorSubject.mjs.map +1 -1
  117. package/_mjs/Notification.mjs +18 -26
  118. package/_mjs/Notification.mjs.map +1 -1
  119. package/_mjs/Observable/api/connect.mjs +12 -11
  120. package/_mjs/Observable/api/connect.mjs.map +1 -1
  121. package/_mjs/Observable/api/connectable.mjs +6 -9
  122. package/_mjs/Observable/api/connectable.mjs.map +1 -1
  123. package/_mjs/Observable/api/fromCallback.mjs +0 -10
  124. package/_mjs/Observable/api/fromCallback.mjs.map +1 -1
  125. package/_mjs/Observable/api/fromEvent.mjs +3 -1
  126. package/_mjs/Observable/api/fromEvent.mjs.map +1 -1
  127. package/_mjs/Observable/api/index.mjs.map +1 -1
  128. package/_mjs/Observable/api/race.mjs +2 -6
  129. package/_mjs/Observable/api/race.mjs.map +1 -1
  130. package/_mjs/Observable/api/raceWith.mjs +7 -6
  131. package/_mjs/Observable/api/raceWith.mjs.map +1 -1
  132. package/_mjs/Observable/api/repeatWhen.mjs +44 -48
  133. package/_mjs/Observable/api/repeatWhen.mjs.map +1 -1
  134. package/_mjs/Observable/api/retryWhen.mjs +29 -37
  135. package/_mjs/Observable/api/retryWhen.mjs.map +1 -1
  136. package/_mjs/Observable/api/share.mjs +60 -70
  137. package/_mjs/Observable/api/share.mjs.map +1 -1
  138. package/_mjs/Observable/api/window.mjs +32 -33
  139. package/_mjs/Observable/api/window.mjs.map +1 -1
  140. package/_mjs/Observable/api/windowCount.mjs +39 -43
  141. package/_mjs/Observable/api/windowCount.mjs.map +1 -1
  142. package/_mjs/Observable/api/windowTime.mjs +59 -63
  143. package/_mjs/Observable/api/windowTime.mjs.map +1 -1
  144. package/_mjs/Observable/api/windowToggle.mjs +54 -62
  145. package/_mjs/Observable/api/windowToggle.mjs.map +1 -1
  146. package/_mjs/Observable/api/windowWhen.mjs +41 -45
  147. package/_mjs/Observable/api/windowWhen.mjs.map +1 -1
  148. package/_mjs/Observable/api.mjs +1186 -1311
  149. package/_mjs/Observable/api.mjs.map +1 -1
  150. package/_mjs/Observable/definition.mjs +9 -24
  151. package/_mjs/Observable/definition.mjs.map +1 -1
  152. package/_mjs/Observable/dom/animationFrames.mjs +0 -5
  153. package/_mjs/Observable/dom/animationFrames.mjs.map +1 -1
  154. package/_mjs/Observable.mjs +4 -4
  155. package/_mjs/Observable.mjs.map +1 -1
  156. package/_mjs/ObservableRef/api.mjs +141 -0
  157. package/_mjs/ObservableRef/api.mjs.map +1 -0
  158. package/_mjs/ObservableRef/atomic.mjs +82 -0
  159. package/_mjs/ObservableRef/atomic.mjs.map +1 -0
  160. package/_mjs/ObservableRef/definition.mjs +16 -0
  161. package/_mjs/ObservableRef/definition.mjs.map +1 -0
  162. package/_mjs/Operator.mjs +11 -12
  163. package/_mjs/Operator.mjs.map +1 -1
  164. package/_mjs/Scheduler.mjs +0 -9
  165. package/_mjs/Scheduler.mjs.map +1 -1
  166. package/_mjs/Subject.mjs +3 -37
  167. package/_mjs/Subject.mjs.map +1 -1
  168. package/_mjs/Subscriber.mjs +0 -20
  169. package/_mjs/Subscriber.mjs.map +1 -1
  170. package/_mjs/Subscription.mjs +0 -26
  171. package/_mjs/Subscription.mjs.map +1 -1
  172. package/_mjs/index.mjs.map +1 -1
  173. package/_mjs/internal/animationFrameProvider.mjs +0 -5
  174. package/_mjs/internal/animationFrameProvider.mjs.map +1 -1
  175. package/_mjs/internal/args.mjs +0 -2
  176. package/_mjs/internal/args.mjs.map +1 -1
  177. package/_mjs/internal/intervalProvider.mjs +0 -2
  178. package/_mjs/internal/intervalProvider.mjs.map +1 -1
  179. package/_mjs/internal/performanceTimestampProvider.mjs +0 -1
  180. package/_mjs/internal/performanceTimestampProvider.mjs.map +1 -1
  181. package/_mjs/internal/timeoutProvider.mjs +0 -2
  182. package/_mjs/internal/timeoutProvider.mjs.map +1 -1
  183. package/_mjs/internal/timestampProvider.mjs +0 -1
  184. package/_mjs/internal/timestampProvider.mjs.map +1 -1
  185. package/_mjs/internal/util.mjs +2 -7
  186. package/_mjs/internal/util.mjs.map +1 -1
  187. package/_src/Action.ts +0 -1
  188. package/_src/AnimationFrameAction.ts +0 -2
  189. package/_src/AnimationFrameScheduler.ts +2 -7
  190. package/_src/BehaviorSubject.ts +3 -3
  191. package/_src/Notification.ts +21 -23
  192. package/_src/Observable/api/connect.ts +12 -9
  193. package/_src/Observable/api/connectable.ts +6 -7
  194. package/_src/Observable/api/fromCallback.ts +0 -1
  195. package/_src/Observable/api/fromEvent.ts +3 -0
  196. package/_src/Observable/api/race.ts +15 -13
  197. package/_src/Observable/api/raceWith.ts +15 -14
  198. package/_src/Observable/api/repeatWhen.ts +51 -56
  199. package/_src/Observable/api/retryWhen.ts +38 -43
  200. package/_src/Observable/api/share.ts +63 -71
  201. package/_src/Observable/api/window.ts +36 -41
  202. package/_src/Observable/api/windowCount.ts +44 -51
  203. package/_src/Observable/api/windowTime.ts +69 -81
  204. package/_src/Observable/api/windowToggle.ts +69 -73
  205. package/_src/Observable/api/windowWhen.ts +49 -55
  206. package/_src/Observable/api.ts +1493 -1498
  207. package/_src/Observable/definition.ts +24 -18
  208. package/_src/Observable/dom/animationFrames.ts +16 -6
  209. package/_src/Observable/instances.ts +0 -23
  210. package/_src/Observable.ts +0 -2
  211. package/_src/ObservableRef/api.ts +169 -0
  212. package/_src/ObservableRef/atomic.ts +85 -0
  213. package/_src/ObservableRef/definition.ts +57 -0
  214. package/_src/Operator.ts +20 -15
  215. package/_src/Scheduler.ts +0 -6
  216. package/_src/Subject.ts +1 -1
  217. package/_src/Subscriber.ts +3 -2
  218. package/_src/global.ts +5 -1
  219. package/_src/internal/util.ts +8 -4
  220. package/global.d.ts +5 -1
  221. package/package.json +2 -2
@@ -3,89 +3,79 @@ import * as tsplus_module_2 from "@fncts/observable/Subscriber";
3
3
  import * as tsplus_module_3 from "@fncts/observable/Observable/api";
4
4
  import * as tsplus_module_4 from "@fncts/observable/Operator";
5
5
  /**
6
- * @tsplus fluent fncts.observable.Observable share
6
+ * @tsplus pipeable fncts.observable.Observable share
7
7
  */
8
-
9
- export function share_(fa, options = {}) {
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
-
23
- const cancelReset = () => {
24
- resetConnection?.unsubscribe();
25
- resetConnection = null;
26
- };
27
-
28
- const reset = () => {
29
- cancelReset();
30
- connection = subject = null;
31
- hasCompleted = hasErrored = false;
32
- };
33
-
34
- const resetAndUnsubscribe = () => {
35
- const conn = connection;
36
- reset();
37
- conn?.unsubscribe();
38
- };
39
-
40
- return tsplus_module_4.operate_(fa, (source, subscriber) => {
41
- refCount++;
42
-
43
- if (!hasErrored && !hasCompleted) {
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 = () => {
44
27
  cancelReset();
45
- }
46
-
47
- const dest = subject || (subject = connector());
48
- subscriber.add(() => {
49
- refCount--;
50
-
51
- if (refCount === 0 && !hasErrored && !hasCompleted) {
52
- resetConnection = handleReset(resetAndUnsubscribe, resetOnRefCountZero);
28
+ connection = subject = null;
29
+ hasCompleted = hasErrored = false;
30
+ };
31
+ const resetAndUnsubscribe = () => {
32
+ const conn = connection;
33
+ reset();
34
+ conn?.unsubscribe();
35
+ };
36
+ return tsplus_module_4.operate_((source, subscriber, environment) => {
37
+ refCount++;
38
+ if (!hasErrored && !hasCompleted) {
39
+ cancelReset();
53
40
  }
54
- });
55
- dest.subscribe(subscriber);
56
-
57
- if (!connection) {
58
- connection = new tsplus_module_2.SafeSubscriber({
59
- next: value => dest.next(value),
60
- error: defect => {
61
- hasErrored = true;
62
- cancelReset();
63
- resetConnection = handleReset(reset, resetOnDefect, defect);
64
- dest.error(defect);
65
- },
66
- complete: () => {
67
- hasCompleted = true;
68
- cancelReset();
69
- resetConnection = handleReset(reset, resetOnComplete);
70
- dest.complete();
41
+ const dest = subject || (subject = connector());
42
+ subscriber.add(() => {
43
+ refCount--;
44
+ if (refCount === 0 && !hasErrored && !hasCompleted) {
45
+ resetConnection = handleReset(resetAndUnsubscribe, resetOnRefCountZero, environment);
71
46
  }
72
47
  });
73
- tsplus_module_3.from(source).subscribe(connection);
74
- }
75
- });
48
+ dest.provideEnvironment(environment).subscribe(subscriber);
49
+ if (!connection) {
50
+ connection = new tsplus_module_2.SafeSubscriber({
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_3.from(source).provideEnvironment(environment).subscribe(connection);
66
+ }
67
+ })(fa);
68
+ };
76
69
  }
77
-
78
- function handleReset(reset, on, ...args) {
70
+ function handleReset(reset, on, environment, ...args) {
79
71
  if (on === true) {
80
72
  reset();
81
73
  return null;
82
74
  }
83
-
84
75
  if (on === false) {
85
76
  return null;
86
77
  }
87
-
88
- return tsplus_module_3.take_(on(...args), 1).subscribe({
78
+ return tsplus_module_3.take(1)(on(...args)).provideEnvironment(environment).subscribe({
89
79
  next: () => reset()
90
80
  });
91
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"share.mjs","mappings":";;;;AAOA;;;;AAGA,OAAM,SAAUA,MAAV,CACJC,EADI,EAEJC,UAAwD,EAFpD,EAEsD;EAE1D,MAAM;IACJC,SAAS,GAAG,MAAM,oBAAIC,OAAJ,EADd;IAEJC,aAAa,GAAG,IAFZ;IAGJC,eAAe,GAAG,IAHd;IAIJC,mBAAmB,GAAG;EAJlB,IAKFL,OALJ;EAOA,IAAIM,UAAU,GAAgC,IAA9C;EACA,IAAIC,eAAe,GAA2B,IAA9C;EACA,IAAIC,OAAO,GAAmC,IAA9C;EACA,IAAIC,QAAQ,GAAO,CAAnB;EACA,IAAIC,YAAY,GAAG,KAAnB;EACA,IAAIC,UAAU,GAAK,KAAnB;;EAEA,MAAMC,WAAW,GAAG,MAAK;IACvBL,eAAe,EAAEM,WAAjB;IACAN,eAAe,GAAG,IAAlB;EACD,CAHD;;EAKA,MAAMO,KAAK,GAAG,MAAK;IACjBF,WAAW;IACXN,UAAU,GAAKE,OAAO,GAAG,IAAzB;IACAE,YAAY,GAAGC,UAAU,GAAG,KAA5B;EACD,CAJD;;EAMA,MAAMI,mBAAmB,GAAG,MAAK;IAC/B,MAAMC,IAAI,GAAGV,UAAb;IACAQ,KAAK;IACLE,IAAI,EAAEH,WAAN;EACD,CAJD;;EAMA,OAAOI,yBAASlB,EAAT,EAAa,CAACmB,MAAD,EAASC,UAAT,KAAuB;IACzCV,QAAQ;;IACR,IAAI,CAACE,UAAD,IAAe,CAACD,YAApB,EAAkC;MAChCE,WAAW;IACZ;;IAED,MAAMQ,IAAI,GAAIZ,OAAO,KAAPA,OAAO,GAAKP,SAAS,EAAd,CAArB;IAEAkB,UAAU,CAACE,GAAX,CAAe,MAAK;MAClBZ,QAAQ;;MACR,IAAIA,QAAQ,KAAK,CAAb,IAAkB,CAACE,UAAnB,IAAiC,CAACD,YAAtC,EAAoD;QAClDH,eAAe,GAAGe,WAAW,CAACP,mBAAD,EAAsBV,mBAAtB,CAA7B;MACD;IACF,CALD;IAOAe,IAAI,CAACG,SAAL,CAAeJ,UAAf;;IAEA,IAAI,CAACb,UAAL,EAAiB;MACfA,UAAU,GAAG,oBAAIkB,cAAJ,CAAmB;QAC9BC,IAAI,EAAGC,KAAD,IAAWN,IAAI,CAACK,IAAL,CAAUC,KAAV,CADa;QAE9BC,KAAK,EAAGC,MAAD,IAAW;UAChBjB,UAAU,GAAG,IAAb;UACAC,WAAW;UACXL,eAAe,GAAGe,WAAW,CAACR,KAAD,EAAQX,aAAR,EAAuByB,MAAvB,CAA7B;UACAR,IAAI,CAACO,KAAL,CAAWC,MAAX;QACD,CAP6B;QAQ9BC,QAAQ,EAAE,MAAK;UACbnB,YAAY,GAAG,IAAf;UACAE,WAAW;UACXL,eAAe,GAAGe,WAAW,CAACR,KAAD,EAAQV,eAAR,CAA7B;UACAgB,IAAI,CAACS,QAAL;QACD;MAb6B,CAAnB,CAAb;MAeAC,qBAAgBZ,MAAhB,EAAwBK,SAAxB,CAAkCjB,UAAlC;IACD;EACF,CAnCM,CAAP;AAoCD;;AAED,SAASgB,WAAT,CACER,KADF,EAEEiB,EAFF,EAGE,GAAGC,IAHL,EAGY;EAEV,IAAID,EAAE,KAAK,IAAX,EAAiB;IACfjB,KAAK;IACL,OAAO,IAAP;EACD;;EAED,IAAIiB,EAAE,KAAK,KAAX,EAAkB;IAChB,OAAO,IAAP;EACD;;EAED,OAAOD,wBAAE,CAAC,GAAGE,IAAJ,CAAF,EACC,CADD,EAEJT,SAFI,CAEM;IAAEE,IAAI,EAAE,MAAMX,KAAK;EAAnB,CAFN,CAAP;AAGD","names":["share_","fa","options","connector","Subject","resetOnDefect","resetOnComplete","resetOnRefCountZero","connection","resetConnection","subject","refCount","hasCompleted","hasErrored","cancelReset","unsubscribe","reset","resetAndUnsubscribe","conn","tsplus_module_4","source","subscriber","dest","add","handleReset","subscribe","SafeSubscriber","next","value","error","defect","complete","tsplus_module_3","on","args"],"sourceRoot":"","sources":["../../../_src/Observable/api/share.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"share.mjs","mappings":"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","names":["share","options","fa","connector","Subject","resetOnDefect","resetOnComplete","resetOnRefCountZero","connection","resetConnection","subject","refCount","hasCompleted","hasErrored","cancelReset","unsubscribe","reset","resetAndUnsubscribe","conn","tsplus_module_4","source","subscriber","environment","dest","add","handleReset","provideEnvironment","subscribe","SafeSubscriber","next","value","error","defect","complete","tsplus_module_3","on","args"],"sourceRoot":"","sources":["../../../_src/Observable/api/share.ts"],"sourcesContent":[null]}
@@ -2,39 +2,38 @@ import * as tsplus_module_1 from "@fncts/observable/Subject";
2
2
  import * as tsplus_module_2 from "@fncts/observable/Operator";
3
3
  import * as tsplus_module_3 from "@fncts/observable/internal/util";
4
4
  /**
5
- * @tsplus fluent fncts.observable.Observable window
5
+ * @tsplus pipeable fncts.observable.Observable window
6
6
  */
7
-
8
- export function window_(fa, windowBoundaries) {
9
- return tsplus_module_2.operate_(fa, (source, subscriber) => {
10
- let windowSubject = new tsplus_module_1.Subject();
11
- subscriber.next(windowSubject.asObservable());
12
-
13
- const errorHandler = err => {
14
- windowSubject.error(err);
15
- subscriber.error(err);
16
- };
17
-
18
- source.subscribe(tsplus_module_2.operatorSubscriber(subscriber, {
19
- next: value => windowSubject.next(value),
20
- error: errorHandler,
21
- complete: () => {
22
- windowSubject.complete();
23
- subscriber.complete();
24
- }
25
- }));
26
- windowBoundaries.subscribe(tsplus_module_2.operatorSubscriber(subscriber, {
27
- next: () => {
28
- windowSubject.complete();
29
- subscriber.next(windowSubject = new tsplus_module_1.Subject());
30
- },
31
- complete: tsplus_module_3.noop,
32
- error: errorHandler
33
- }));
34
- return () => {
35
- windowSubject.unsubscribe();
36
- windowSubject = null;
37
- };
38
- });
7
+ export function window(windowBoundaries) {
8
+ return fa => {
9
+ return tsplus_module_2.operate_((source, subscriber, environment) => {
10
+ let windowSubject = new tsplus_module_1.Subject();
11
+ subscriber.next(windowSubject.asObservable());
12
+ const errorHandler = err => {
13
+ windowSubject.error(err);
14
+ subscriber.error(err);
15
+ };
16
+ source.provideEnvironment(environment).subscribe(tsplus_module_2.operatorSubscriber(subscriber, {
17
+ next: value => windowSubject.next(value),
18
+ error: errorHandler,
19
+ complete: () => {
20
+ windowSubject.complete();
21
+ subscriber.complete();
22
+ }
23
+ }));
24
+ windowBoundaries.subscribe(tsplus_module_2.operatorSubscriber(subscriber, {
25
+ next: () => {
26
+ windowSubject.complete();
27
+ subscriber.next(windowSubject = new tsplus_module_1.Subject());
28
+ },
29
+ complete: tsplus_module_3.noop,
30
+ error: errorHandler
31
+ }));
32
+ return () => {
33
+ windowSubject.unsubscribe();
34
+ windowSubject = null;
35
+ };
36
+ })(fa);
37
+ };
39
38
  }
40
39
  //# sourceMappingURL=window.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"window.mjs","mappings":";;;AAAA;;;;AAGA,OAAM,SAAUA,OAAV,CACJC,EADI,EAEJC,gBAFI,EAE2C;EAE/C,OAAOC,yBAASF,EAAT,EAAa,CAACG,MAAD,EAASC,UAAT,KAAuB;IACzC,IAAIC,aAAa,GAAyB,oBAAIC,OAAJ,EAA1C;IACAF,UAAU,CAACG,IAAX,CAAgBF,aAAa,CAACG,YAAd,EAAhB;;IAEA,MAAMC,YAAY,GAAIC,GAAD,IAAkB;MACrCL,aAAa,CAACM,KAAd,CAAoBD,GAApB;MACAN,UAAU,CAACO,KAAX,CAAiBD,GAAjB;IACD,CAHD;;IAKAP,MAAM,CAACS,SAAP,CACEV,mCAAmBE,UAAnB,EAA+B;MAC7BG,IAAI,EAAGM,KAAD,IAAWR,aAAa,CAACE,IAAd,CAAmBM,KAAnB,CADY;MAE7BF,KAAK,EAAEF,YAFsB;MAG7BK,QAAQ,EAAE,MAAK;QACbT,aAAa,CAACS,QAAd;QACAV,UAAU,CAACU,QAAX;MACD;IAN4B,CAA/B,CADF;IAWAb,gBAAgB,CAACW,SAAjB,CACEV,mCAAmBE,UAAnB,EAA+B;MAC7BG,IAAI,EAAE,MAAK;QACTF,aAAa,CAACS,QAAd;QACAV,UAAU,CAACG,IAAX,CAAiBF,aAAa,GAAG,oBAAIC,OAAJ,EAAjC;MACD,CAJ4B;MAK7BQ,QAAQ,kBAAEC,IALmB;MAM7BJ,KAAK,EAAEF;IANsB,CAA/B,CADF;IAWA,OAAO,MAAK;MACVJ,aAAa,CAACW,WAAd;MACAX,aAAa,GAAG,IAAhB;IACD,CAHD;EAID,CAnCM,CAAP;AAoCD","names":["window_","fa","windowBoundaries","tsplus_module_2","source","subscriber","windowSubject","Subject","next","asObservable","errorHandler","err","error","subscribe","value","complete","noop","unsubscribe"],"sourceRoot":"","sources":["../../../_src/Observable/api/window.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"window.mjs","mappings":";;;AAAA;;;AAGA,OAAM,SAAUA,MAAM,CAACC,gBAA+C;EACpE,OAAiBC,EAAuB,IAA+C;IACrF,OAAOC,yBAAW,CAACC,MAAM,EAAEC,UAAU,EAAEC,WAAW,KAAI;MACpD,IAAIC,aAAa,GAAyB,oBAAIC,OAAO,EAAE;MACvDH,UAAU,CAACI,IAAI,CAACF,aAAa,CAACG,YAAY,EAAE,CAAC;MAC7C,MAAMC,YAAY,GAAIC,GAAa,IAAI;QACrCL,aAAa,CAACM,KAAK,CAACD,GAAG,CAAC;QACxBP,UAAU,CAACQ,KAAK,CAACD,GAAG,CAAC;MACvB,CAAC;MACDR,MAAM,CAACU,kBAAkB,CAACR,WAAW,CAAC,CAACS,SAAS,CAC9CZ,kCAAkB,CAACE,UAAU,EAAE;QAC7BI,IAAI,EAAGO,KAAK,IAAKT,aAAa,CAACE,IAAI,CAACO,KAAK,CAAC;QAC1CH,KAAK,EAAEF,YAAY;QACnBM,QAAQ,EAAE,MAAK;UACbV,aAAa,CAACU,QAAQ,EAAE;UACxBZ,UAAU,CAACY,QAAQ,EAAE;QACvB;OACD,CAAC,CACH;MACDhB,gBAAgB,CAACc,SAAS,CACxBZ,kCAAkB,CAACE,UAAU,EAAE;QAC7BI,IAAI,EAAE,MAAK;UACTF,aAAa,CAACU,QAAQ,EAAE;UACxBZ,UAAU,CAACI,IAAI,CAAEF,aAAa,GAAG,oBAAIC,OAAO,EAAE,CAAE;QAClD,CAAC;QACDS,QAAQ,kBAAEC,IAAI;QACdL,KAAK,EAAEF;OACR,CAAC,CACH;MACD,OAAO,MAAK;QACVJ,aAAa,CAACY,WAAW,EAAE;QAC3BZ,aAAa,GAAG,IAAK;MACvB,CAAC;IACH,CAAC,EA/BML,EAAE,CA+BP;EACJ,CAAC;AACH","names":["window","windowBoundaries","fa","tsplus_module_2","source","subscriber","environment","windowSubject","Subject","next","asObservable","errorHandler","err","error","provideEnvironment","subscribe","value","complete","noop","unsubscribe"],"sourceRoot":"","sources":["../../../_src/Observable/api/window.ts"],"sourcesContent":[null]}
@@ -1,50 +1,46 @@
1
1
  import * as tsplus_module_1 from "@fncts/observable/Subject";
2
2
  import * as tsplus_module_2 from "@fncts/observable/Operator";
3
3
  /**
4
- * @tsplus fluent fncts.observable.Observable windowCount
4
+ * @tsplus pipeable fncts.observable.Observable windowCount
5
5
  */
6
-
7
- export function windowCount_(fa, windowSize, startWindowEvery = 0) {
8
- const startEvery = startWindowEvery > 0 ? startWindowEvery : windowSize;
9
- return tsplus_module_2.operate_(fa, (source, subscriber) => {
10
- let windows = [new tsplus_module_1.Subject()];
11
- let count = 0;
12
- subscriber.next(windows[0].asObservable());
13
- source.subscribe(tsplus_module_2.operatorSubscriber(subscriber, {
14
- next: value => {
15
- for (const window of windows) {
16
- window.next(value);
6
+ export function windowCount(windowSize, startWindowEvery = 0) {
7
+ return fa => {
8
+ const startEvery = startWindowEvery > 0 ? startWindowEvery : windowSize;
9
+ return tsplus_module_2.operate_((source, subscriber, environment) => {
10
+ let windows = [new tsplus_module_1.Subject()];
11
+ let count = 0;
12
+ subscriber.next(windows[0].asObservable());
13
+ source.provideEnvironment(environment).subscribe(tsplus_module_2.operatorSubscriber(subscriber, {
14
+ next: value => {
15
+ for (const window of windows) {
16
+ window.next(value);
17
+ }
18
+ const c = count - windowSize + 1;
19
+ if (c >= 0 && c % startEvery === 0) {
20
+ windows.shift().complete();
21
+ }
22
+ if (++count && startEvery === 0) {
23
+ const window = new tsplus_module_1.Subject();
24
+ windows.push(window);
25
+ subscriber.next(window.asObservable());
26
+ }
27
+ },
28
+ complete: () => {
29
+ while (windows.length > 0) {
30
+ windows.shift().complete();
31
+ }
32
+ subscriber.complete();
33
+ },
34
+ error: err => {
35
+ while (windows.length > 0) {
36
+ windows.shift().error(err);
37
+ }
38
+ subscriber.error(err);
17
39
  }
18
-
19
- const c = count - windowSize + 1;
20
-
21
- if (c >= 0 && c % startEvery === 0) {
22
- windows.shift().complete();
23
- }
24
-
25
- if (++count && startEvery === 0) {
26
- const window = new tsplus_module_1.Subject();
27
- windows.push(window);
28
- subscriber.next(window.asObservable());
29
- }
30
- },
31
- complete: () => {
32
- while (windows.length > 0) {
33
- windows.shift().complete();
34
- }
35
-
36
- subscriber.complete();
37
- },
38
- error: err => {
39
- while (windows.length > 0) {
40
- windows.shift().error(err);
41
- }
42
-
43
- subscriber.error(err);
44
- }
45
- }, () => {
46
- windows = null;
47
- }));
48
- });
40
+ }, () => {
41
+ windows = null;
42
+ }));
43
+ })(fa);
44
+ };
49
45
  }
50
46
  //# sourceMappingURL=windowCount.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"windowCount.mjs","mappings":";;AAAA;;;;AAGA,OAAM,SAAUA,YAAV,CACJC,EADI,EAEJC,UAFI,EAGJC,gBAAgB,GAAG,CAHf,EAGgB;EAEpB,MAAMC,UAAU,GAAGD,gBAAgB,GAAG,CAAnB,GAAuBA,gBAAvB,GAA0CD,UAA7D;EAEA,OAAOG,yBAASJ,EAAT,EAAa,CAACK,MAAD,EAASC,UAAT,KAAuB;IACzC,IAAIC,OAAO,GAAG,CAAC,oBAAIC,OAAJ,EAAD,CAAd;IACA,IAAIC,KAAK,GAAK,CAAd;IAEAH,UAAU,CAACI,IAAX,CAAgBH,OAAO,CAAC,CAAD,CAAP,CAAYI,YAAZ,EAAhB;IAEAN,MAAM,CAACO,SAAP,CACER,mCACEE,UADF,EAEE;MACEI,IAAI,EAAGG,KAAD,IAAU;QACd,KAAK,MAAMC,MAAX,IAAqBP,OAArB,EAA8B;UAC5BO,MAAM,CAACJ,IAAP,CAAYG,KAAZ;QACD;;QAED,MAAME,CAAC,GAAGN,KAAK,GAAGR,UAAR,GAAqB,CAA/B;;QACA,IAAIc,CAAC,IAAI,CAAL,IAAUA,CAAC,GAAGZ,UAAJ,KAAmB,CAAjC,EAAoC;UAClCI,OAAO,CAACS,KAAR,GAAiBC,QAAjB;QACD;;QAED,IAAI,EAAER,KAAF,IAAWN,UAAU,KAAK,CAA9B,EAAiC;UAC/B,MAAMW,MAAM,GAAG,oBAAIN,OAAJ,EAAf;UACAD,OAAO,CAACW,IAAR,CAAaJ,MAAb;UACAR,UAAU,CAACI,IAAX,CAAgBI,MAAM,CAACH,YAAP,EAAhB;QACD;MACF,CAhBH;MAiBEM,QAAQ,EAAE,MAAK;QACb,OAAOV,OAAO,CAACY,MAAR,GAAiB,CAAxB,EAA2B;UACzBZ,OAAO,CAACS,KAAR,GAAiBC,QAAjB;QACD;;QACDX,UAAU,CAACW,QAAX;MACD,CAtBH;MAuBEG,KAAK,EAAGC,GAAD,IAAQ;QACb,OAAOd,OAAO,CAACY,MAAR,GAAiB,CAAxB,EAA2B;UACzBZ,OAAO,CAACS,KAAR,GAAiBI,KAAjB,CAAuBC,GAAvB;QACD;;QACDf,UAAU,CAACc,KAAX,CAAiBC,GAAjB;MACD;IA5BH,CAFF,EAgCE,MAAK;MACHd,OAAO,GAAG,IAAV;IACD,CAlCH,CADF;EAsCD,CA5CM,CAAP;AA6CD","names":["windowCount_","fa","windowSize","startWindowEvery","startEvery","tsplus_module_2","source","subscriber","windows","Subject","count","next","asObservable","subscribe","value","window","c","shift","complete","push","length","error","err"],"sourceRoot":"","sources":["../../../_src/Observable/api/windowCount.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"windowCount.mjs","mappings":";;AAAA;;;AAGA,OAAM,SAAUA,WAAW,CAACC,UAAkB,EAAEC,gBAAgB,GAAG,CAAC;EAClE,OAAiBC,EAAuB,IAA+C;IACrF,MAAMC,UAAU,GAAGF,gBAAgB,GAAG,CAAC,GAAGA,gBAAgB,GAAGD,UAAU;IACvE,OAAOI,yBAAW,CAACC,MAAM,EAAEC,UAAU,EAAEC,WAAW,KAAI;MACpD,IAAIC,OAAO,GAAG,CAAC,oBAAIC,OAAO,EAAe,CAAC;MAC1C,IAAIC,KAAK,GAAK,CAAC;MACfJ,UAAU,CAACK,IAAI,CAACH,OAAO,CAAC,CAAC,CAAE,CAACI,YAAY,EAAE,CAAC;MAC3CP,MAAM,CAACQ,kBAAkB,CAACN,WAAW,CAAC,CAACO,SAAS,CAC9CV,kCAAkB,CAChBE,UAAU,EACV;QACEK,IAAI,EAAGI,KAAK,IAAI;UACd,KAAK,MAAMC,MAAM,IAAIR,OAAO,EAAE;YAC5BQ,MAAM,CAACL,IAAI,CAACI,KAAK,CAAC;;UAEpB,MAAME,CAAC,GAAGP,KAAK,GAAGV,UAAU,GAAG,CAAC;UAChC,IAAIiB,CAAC,IAAI,CAAC,IAAIA,CAAC,GAAGd,UAAU,KAAK,CAAC,EAAE;YAClCK,OAAO,CAACU,KAAK,EAAG,CAACC,QAAQ,EAAE;;UAE7B,IAAI,EAAET,KAAK,IAAIP,UAAU,KAAK,CAAC,EAAE;YAC/B,MAAMa,MAAM,GAAG,oBAAIP,OAAO,EAAe;YACzCD,OAAO,CAACY,IAAI,CAACJ,MAAM,CAAC;YACpBV,UAAU,CAACK,IAAI,CAACK,MAAM,CAACJ,YAAY,EAAE,CAAC;;QAE1C,CAAC;QACDO,QAAQ,EAAE,MAAK;UACb,OAAOX,OAAO,CAACa,MAAM,GAAG,CAAC,EAAE;YACzBb,OAAO,CAACU,KAAK,EAAG,CAACC,QAAQ,EAAE;;UAE7Bb,UAAU,CAACa,QAAQ,EAAE;QACvB,CAAC;QACDG,KAAK,EAAGC,GAAG,IAAI;UACb,OAAOf,OAAO,CAACa,MAAM,GAAG,CAAC,EAAE;YACzBb,OAAO,CAACU,KAAK,EAAG,CAACI,KAAK,CAACC,GAAG,CAAC;;UAE7BjB,UAAU,CAACgB,KAAK,CAACC,GAAG,CAAC;QACvB;OACD,EACD,MAAK;QACHf,OAAO,GAAG,IAAK;MACjB,CAAC,CACF,CACF;IACH,CAAC,EAxCMN,EAAE,CAwCP;EACJ,CAAC;AACH","names":["windowCount","windowSize","startWindowEvery","fa","startEvery","tsplus_module_2","source","subscriber","environment","windows","Subject","count","next","asObservable","provideEnvironment","subscribe","value","window","c","shift","complete","push","length","error","err"],"sourceRoot":"","sources":["../../../_src/Observable/api/windowCount.ts"],"sourcesContent":[null]}
@@ -4,70 +4,66 @@ import * as tsplus_module_3 from "@fncts/observable/Subject";
4
4
  import * as tsplus_module_4 from "@fncts/observable/Operator";
5
5
  import { popScheduler } from "@fncts/observable/internal/args";
6
6
  import { arrayRemove } from "@fncts/observable/internal/util";
7
- export function windowTime_(fa, windowTimeSpan, ...args) {
8
- const scheduler = popScheduler(args) ?? tsplus_module_1.asyncScheduler;
9
- const windowCreationInterval = args[0] ?? null;
10
- const maxWindowSize = args[1] || Infinity;
11
- return tsplus_module_4.operate_(fa, (source, subscriber) => {
12
- let windowRecords = [];
13
- let restartOnClose = false;
14
-
15
- const closeWindow = record => {
16
- const {
17
- window,
18
- subs
19
- } = record;
20
- window.complete();
21
- subs.unsubscribe();
22
- arrayRemove(windowRecords, record);
23
- restartOnClose && startWindow();
24
- };
25
-
26
- const startWindow = () => {
27
- if (windowRecords) {
28
- const subs = new tsplus_module_2.Subscription();
29
- subscriber.add(subs);
30
- const window = new tsplus_module_3.Subject();
31
- const record = {
7
+ export function windowTime(windowTimeSpan, ...args) {
8
+ return fa => {
9
+ const scheduler = popScheduler(args) ?? tsplus_module_1.asyncScheduler;
10
+ const windowCreationInterval = args[0] ?? null;
11
+ const maxWindowSize = args[1] || Infinity;
12
+ return tsplus_module_4.operate_((source, subscriber, environment) => {
13
+ let windowRecords = [];
14
+ let restartOnClose = false;
15
+ const closeWindow = record => {
16
+ const {
32
17
  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
-
42
- windowCreationInterval !== null && windowCreationInterval >= 0 ? subscriber.add(scheduler.schedule(function () {
18
+ subs
19
+ } = record;
20
+ window.complete();
21
+ subs.unsubscribe();
22
+ arrayRemove(windowRecords, record);
23
+ restartOnClose && startWindow();
24
+ };
25
+ const startWindow = () => {
26
+ if (windowRecords) {
27
+ const subs = new tsplus_module_2.Subscription();
28
+ subscriber.add(subs);
29
+ const window = new tsplus_module_3.Subject();
30
+ const record = {
31
+ window,
32
+ subs,
33
+ seen: 0
34
+ };
35
+ windowRecords.push(record);
36
+ subscriber.next(window.asObservable());
37
+ subs.add(scheduler.schedule(() => closeWindow(record), windowTimeSpan));
38
+ }
39
+ };
40
+ windowCreationInterval !== null && windowCreationInterval >= 0 ? subscriber.add(scheduler.schedule(function () {
41
+ startWindow();
42
+ !this.closed && subscriber.add(this.schedule(null, windowCreationInterval));
43
+ }, windowCreationInterval)) : restartOnClose = true;
43
44
  startWindow();
44
- !this.closed && subscriber.add(this.schedule(null, windowCreationInterval));
45
- }, windowCreationInterval)) : restartOnClose = true;
46
- startWindow();
47
-
48
- const loop = cb => windowRecords.slice().forEach(cb);
49
-
50
- const terminate = cb => {
51
- loop(({
52
- window
53
- }) => cb(window));
54
- cb(subscriber);
55
- subscriber.unsubscribe();
56
- };
57
-
58
- source.subscribe(tsplus_module_4.operatorSubscriber(subscriber, {
59
- next: value => {
60
- loop(record => {
61
- record.window.next(value);
62
- maxWindowSize <= ++record.seen && closeWindow(record);
63
- });
64
- },
65
- error: err => terminate(consumer => consumer.error(err)),
66
- complete: () => terminate(consumer => consumer.complete())
67
- }));
68
- return () => {
69
- windowRecords = null;
70
- };
71
- });
45
+ const loop = cb => windowRecords.slice().forEach(cb);
46
+ const terminate = cb => {
47
+ loop(({
48
+ window
49
+ }) => cb(window));
50
+ cb(subscriber);
51
+ subscriber.unsubscribe();
52
+ };
53
+ source.provideEnvironment(environment).subscribe(tsplus_module_4.operatorSubscriber(subscriber, {
54
+ next: value => {
55
+ loop(record => {
56
+ record.window.next(value);
57
+ maxWindowSize <= ++record.seen && closeWindow(record);
58
+ });
59
+ },
60
+ error: err => terminate(consumer => consumer.error(err)),
61
+ complete: () => terminate(consumer => consumer.complete())
62
+ }));
63
+ return () => {
64
+ windowRecords = null;
65
+ };
66
+ })(fa);
67
+ };
72
68
  }
73
69
  //# sourceMappingURL=windowTime.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"windowTime.mjs","mappings":"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","names":["popScheduler","arrayRemove","windowTime_","fa","windowTimeSpan","args","scheduler","tsplus_module_1","asyncScheduler","windowCreationInterval","maxWindowSize","Infinity","tsplus_module_4","source","subscriber","windowRecords","restartOnClose","closeWindow","record","window","subs","complete","unsubscribe","startWindow","Subscription","add","Subject","seen","push","next","asObservable","schedule","closed","loop","cb","slice","forEach","terminate","subscribe","value","error","err","consumer"],"sourceRoot":"","sources":["../../../_src/Observable/api/windowTime.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"windowTime.mjs","mappings":"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","names":["popScheduler","arrayRemove","windowTime","windowTimeSpan","args","fa","scheduler","asyncScheduler","windowCreationInterval","maxWindowSize","Infinity","tsplus_module_4","source","subscriber","environment","windowRecords","restartOnClose","closeWindow","record","window","subs","complete","unsubscribe","startWindow","Subscription","add","Subject","seen","push","next","asObservable","schedule","closed","loop","cb","slice","forEach","terminate","provideEnvironment","subscribe","value","error","err","consumer"],"sourceRoot":"","sources":["../../../_src/Observable/api/windowTime.ts"],"sourcesContent":[null]}