@ringcentral/juno 2.40.1 → 2.41.0

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 (178) hide show
  1. package/components/Downshift/SuggestionList/SuggestionList.d.ts +3 -3
  2. package/components/Downshift/utils/useDownshift.d.ts +1 -1
  3. package/components/Virtuoso/index.d.ts +1 -1
  4. package/components/Virtuoso/index.js +1 -1
  5. package/components/Virtuoso/react-virtuoso/AATree.d.ts +1 -1
  6. package/components/Virtuoso/react-virtuoso/AATree.js +60 -48
  7. package/components/Virtuoso/react-virtuoso/TableVirtuoso.d.ts +5 -0
  8. package/components/Virtuoso/react-virtuoso/TableVirtuoso.js +217 -0
  9. package/components/Virtuoso/react-virtuoso/Virtuoso.d.ts +7696 -0
  10. package/components/Virtuoso/react-virtuoso/Virtuoso.js +317 -0
  11. package/components/Virtuoso/react-virtuoso/{Grid.d.ts → VirtuosoGrid.d.ts} +170 -72
  12. package/components/Virtuoso/react-virtuoso/VirtuosoGrid.js +199 -0
  13. package/components/Virtuoso/react-virtuoso/alignToBottomSystem.d.ts +119 -65
  14. package/components/Virtuoso/react-virtuoso/alignToBottomSystem.js +3 -3
  15. package/components/Virtuoso/react-virtuoso/comparators.d.ts +1 -1
  16. package/components/Virtuoso/react-virtuoso/comparators.js +1 -3
  17. package/components/Virtuoso/react-virtuoso/component-interfaces/TableVirtuoso.d.ts +194 -0
  18. package/components/Virtuoso/react-virtuoso/component-interfaces/TableVirtuoso.js +2 -0
  19. package/components/Virtuoso/react-virtuoso/component-interfaces/Virtuoso.d.ts +274 -0
  20. package/components/Virtuoso/react-virtuoso/component-interfaces/Virtuoso.js +2 -0
  21. package/components/Virtuoso/react-virtuoso/component-interfaces/VirtuosoGrid.d.ts +125 -0
  22. package/components/Virtuoso/react-virtuoso/component-interfaces/VirtuosoGrid.js +2 -0
  23. package/components/Virtuoso/react-virtuoso/domIOSystem.d.ts +3 -2
  24. package/components/Virtuoso/react-virtuoso/domIOSystem.js +5 -3
  25. package/components/Virtuoso/react-virtuoso/followOutputSystem.d.ts +80 -43
  26. package/components/Virtuoso/react-virtuoso/followOutputSystem.js +21 -19
  27. package/components/Virtuoso/react-virtuoso/gridSystem.d.ts +57 -31
  28. package/components/Virtuoso/react-virtuoso/gridSystem.js +173 -86
  29. package/components/Virtuoso/react-virtuoso/groupedListSystem.d.ts +76 -67
  30. package/components/Virtuoso/react-virtuoso/groupedListSystem.js +12 -12
  31. package/components/Virtuoso/react-virtuoso/hooks/useChangedChildSizes.d.ts +6 -3
  32. package/components/Virtuoso/react-virtuoso/hooks/useChangedChildSizes.js +36 -17
  33. package/components/Virtuoso/react-virtuoso/hooks/useIsomorphicLayoutEffect.d.ts +2 -2
  34. package/components/Virtuoso/react-virtuoso/hooks/useIsomorphicLayoutEffect.js +3 -2
  35. package/components/Virtuoso/react-virtuoso/hooks/useRcPortalWindowContext.d.ts +2 -0
  36. package/components/Virtuoso/react-virtuoso/hooks/useRcPortalWindowContext.js +5 -0
  37. package/components/Virtuoso/react-virtuoso/hooks/useScrollTop.d.ts +2 -3
  38. package/components/Virtuoso/react-virtuoso/hooks/useScrollTop.js +36 -51
  39. package/components/Virtuoso/react-virtuoso/hooks/useSize.d.ts +2 -3
  40. package/components/Virtuoso/react-virtuoso/hooks/useSize.js +13 -13
  41. package/components/Virtuoso/react-virtuoso/hooks/useWindowViewportRect.js +17 -15
  42. package/components/Virtuoso/react-virtuoso/index.d.ts +7 -1
  43. package/components/Virtuoso/react-virtuoso/index.js +8 -1
  44. package/components/Virtuoso/react-virtuoso/initialItemCountSystem.d.ts +304 -68
  45. package/components/Virtuoso/react-virtuoso/initialItemCountSystem.js +9 -31
  46. package/components/Virtuoso/react-virtuoso/initialScrollTopSystem.d.ts +127 -109
  47. package/components/Virtuoso/react-virtuoso/initialScrollTopSystem.js +7 -7
  48. package/components/Virtuoso/react-virtuoso/initialTopMostItemIndexSystem.d.ts +38 -22
  49. package/components/Virtuoso/react-virtuoso/initialTopMostItemIndexSystem.js +13 -20
  50. package/components/Virtuoso/react-virtuoso/interfaces.d.ts +150 -51
  51. package/components/Virtuoso/react-virtuoso/listStateSystem.d.ts +109 -59
  52. package/components/Virtuoso/react-virtuoso/listStateSystem.js +100 -52
  53. package/components/Virtuoso/react-virtuoso/listSystem.d.ts +1691 -693
  54. package/components/Virtuoso/react-virtuoso/listSystem.js +15 -16
  55. package/components/Virtuoso/react-virtuoso/loggerSystem.d.ts +1 -1
  56. package/components/Virtuoso/react-virtuoso/loggerSystem.js +2 -4
  57. package/components/Virtuoso/react-virtuoso/propsReadySystem.d.ts +1 -1
  58. package/components/Virtuoso/react-virtuoso/propsReadySystem.js +3 -4
  59. package/components/Virtuoso/react-virtuoso/react-urx/index.d.ts +110 -0
  60. package/components/Virtuoso/react-virtuoso/react-urx/index.js +200 -0
  61. package/components/Virtuoso/react-virtuoso/react-urx/package.json +5 -0
  62. package/components/Virtuoso/react-virtuoso/recalcSystem.d.ts +4 -0
  63. package/components/Virtuoso/react-virtuoso/recalcSystem.js +8 -0
  64. package/components/Virtuoso/react-virtuoso/scrollIntoViewSystem.d.ts +144 -78
  65. package/components/Virtuoso/react-virtuoso/scrollIntoViewSystem.js +33 -21
  66. package/components/Virtuoso/react-virtuoso/scrollSeekSystem.d.ts +12 -7
  67. package/components/Virtuoso/react-virtuoso/scrollSeekSystem.js +7 -10
  68. package/components/Virtuoso/react-virtuoso/scrollToIndexSystem.d.ts +19 -11
  69. package/components/Virtuoso/react-virtuoso/scrollToIndexSystem.js +11 -23
  70. package/components/Virtuoso/react-virtuoso/sizeRangeSystem.d.ts +7 -6
  71. package/components/Virtuoso/react-virtuoso/sizeRangeSystem.js +15 -27
  72. package/components/Virtuoso/react-virtuoso/sizeSystem.d.ts +20 -11
  73. package/components/Virtuoso/react-virtuoso/sizeSystem.js +182 -52
  74. package/components/Virtuoso/react-virtuoso/stateFlagsSystem.d.ts +8 -5
  75. package/components/Virtuoso/react-virtuoso/stateFlagsSystem.js +32 -23
  76. package/components/Virtuoso/react-virtuoso/stateLoadSystem.d.ts +318 -0
  77. package/components/Virtuoso/react-virtuoso/stateLoadSystem.js +41 -0
  78. package/components/Virtuoso/react-virtuoso/topItemCountSystem.d.ts +518 -467
  79. package/components/Virtuoso/react-virtuoso/topItemCountSystem.js +5 -5
  80. package/components/Virtuoso/react-virtuoso/totalListHeightSystem.d.ts +115 -63
  81. package/components/Virtuoso/react-virtuoso/totalListHeightSystem.js +6 -13
  82. package/components/Virtuoso/react-virtuoso/upwardScrollFixSystem.d.ts +139 -73
  83. package/components/Virtuoso/react-virtuoso/upwardScrollFixSystem.js +74 -31
  84. package/components/Virtuoso/react-virtuoso/urx/actions.d.ts +127 -0
  85. package/components/Virtuoso/react-virtuoso/urx/actions.js +98 -0
  86. package/components/Virtuoso/react-virtuoso/urx/constants.d.ts +8 -0
  87. package/components/Virtuoso/react-virtuoso/urx/constants.js +6 -0
  88. package/components/Virtuoso/react-virtuoso/urx/index.d.ts +6 -0
  89. package/components/Virtuoso/react-virtuoso/urx/index.js +9 -0
  90. package/components/Virtuoso/react-virtuoso/urx/package.json +5 -0
  91. package/components/Virtuoso/react-virtuoso/urx/pipe.d.ts +220 -0
  92. package/components/Virtuoso/react-virtuoso/urx/pipe.js +279 -0
  93. package/components/Virtuoso/react-virtuoso/urx/streams.d.ts +143 -0
  94. package/components/Virtuoso/react-virtuoso/urx/streams.js +227 -0
  95. package/components/Virtuoso/react-virtuoso/urx/system.d.ts +148 -0
  96. package/components/Virtuoso/react-virtuoso/urx/system.js +106 -0
  97. package/components/Virtuoso/react-virtuoso/urx/transformers.d.ts +71 -0
  98. package/components/Virtuoso/react-virtuoso/urx/transformers.js +106 -0
  99. package/components/Virtuoso/react-virtuoso/urx/utils.d.ts +57 -0
  100. package/components/Virtuoso/react-virtuoso/urx/utils.js +102 -0
  101. package/components/Virtuoso/react-virtuoso/utils/approximatelyEqual.d.ts +1 -0
  102. package/components/Virtuoso/react-virtuoso/utils/approximatelyEqual.js +6 -0
  103. package/components/Virtuoso/react-virtuoso/utils/context.d.ts +13 -0
  104. package/components/Virtuoso/react-virtuoso/utils/context.js +6 -0
  105. package/components/Virtuoso/react-virtuoso/utils/skipFrames.d.ts +1 -0
  106. package/components/Virtuoso/react-virtuoso/utils/skipFrames.js +11 -0
  107. package/components/Virtuoso/react-virtuoso/windowScrollerSystem.d.ts +6 -4
  108. package/components/Virtuoso/react-virtuoso/windowScrollerSystem.js +1 -1
  109. package/components/Virtuoso/utils/isOutOfRange.d.ts +1 -1
  110. package/components/Virtuoso/utils/useHighlightScroll.d.ts +2 -2
  111. package/es6/components/Virtuoso/index.js +1 -1
  112. package/es6/components/Virtuoso/react-virtuoso/AATree.js +60 -48
  113. package/es6/components/Virtuoso/react-virtuoso/{Table.js → TableVirtuoso.js} +73 -52
  114. package/es6/components/Virtuoso/react-virtuoso/{List.js → Virtuoso.js} +85 -161
  115. package/es6/components/Virtuoso/react-virtuoso/VirtuosoGrid.js +198 -0
  116. package/es6/components/Virtuoso/react-virtuoso/alignToBottomSystem.js +3 -3
  117. package/es6/components/Virtuoso/react-virtuoso/comparators.js +1 -3
  118. package/es6/components/Virtuoso/react-virtuoso/component-interfaces/TableVirtuoso.js +0 -0
  119. package/es6/components/Virtuoso/react-virtuoso/component-interfaces/Virtuoso.js +0 -0
  120. package/es6/components/Virtuoso/react-virtuoso/component-interfaces/VirtuosoGrid.js +0 -0
  121. package/es6/components/Virtuoso/react-virtuoso/domIOSystem.js +5 -3
  122. package/es6/components/Virtuoso/react-virtuoso/followOutputSystem.js +21 -19
  123. package/es6/components/Virtuoso/react-virtuoso/gridSystem.js +173 -87
  124. package/es6/components/Virtuoso/react-virtuoso/groupedListSystem.js +13 -13
  125. package/es6/components/Virtuoso/react-virtuoso/hooks/useChangedChildSizes.js +35 -16
  126. package/es6/components/Virtuoso/react-virtuoso/hooks/useIsomorphicLayoutEffect.js +2 -2
  127. package/es6/components/Virtuoso/react-virtuoso/hooks/useRcPortalWindowContext.js +2 -0
  128. package/es6/components/Virtuoso/react-virtuoso/hooks/useScrollTop.js +35 -50
  129. package/es6/components/Virtuoso/react-virtuoso/hooks/useSize.js +11 -12
  130. package/es6/components/Virtuoso/react-virtuoso/hooks/useWindowViewportRect.js +15 -14
  131. package/es6/components/Virtuoso/react-virtuoso/index.js +4 -1
  132. package/es6/components/Virtuoso/react-virtuoso/initialItemCountSystem.js +11 -33
  133. package/es6/components/Virtuoso/react-virtuoso/initialScrollTopSystem.js +7 -7
  134. package/es6/components/Virtuoso/react-virtuoso/initialTopMostItemIndexSystem.js +13 -20
  135. package/es6/components/Virtuoso/react-virtuoso/listStateSystem.js +101 -54
  136. package/es6/components/Virtuoso/react-virtuoso/listSystem.js +15 -16
  137. package/es6/components/Virtuoso/react-virtuoso/loggerSystem.js +2 -4
  138. package/es6/components/Virtuoso/react-virtuoso/propsReadySystem.js +3 -4
  139. package/es6/components/Virtuoso/react-virtuoso/react-urx/index.js +197 -0
  140. package/es6/components/Virtuoso/react-virtuoso/recalcSystem.js +5 -0
  141. package/es6/components/Virtuoso/react-virtuoso/scrollIntoViewSystem.js +34 -22
  142. package/es6/components/Virtuoso/react-virtuoso/scrollSeekSystem.js +7 -10
  143. package/es6/components/Virtuoso/react-virtuoso/scrollToIndexSystem.js +11 -23
  144. package/es6/components/Virtuoso/react-virtuoso/sizeRangeSystem.js +16 -28
  145. package/es6/components/Virtuoso/react-virtuoso/sizeSystem.js +180 -53
  146. package/es6/components/Virtuoso/react-virtuoso/stateFlagsSystem.js +32 -23
  147. package/es6/components/Virtuoso/react-virtuoso/stateLoadSystem.js +39 -0
  148. package/es6/components/Virtuoso/react-virtuoso/topItemCountSystem.js +5 -5
  149. package/es6/components/Virtuoso/react-virtuoso/totalListHeightSystem.js +6 -13
  150. package/es6/components/Virtuoso/react-virtuoso/upwardScrollFixSystem.js +75 -32
  151. package/es6/components/Virtuoso/react-virtuoso/urx/actions.js +90 -0
  152. package/es6/components/Virtuoso/react-virtuoso/urx/constants.js +4 -0
  153. package/es6/components/Virtuoso/react-virtuoso/urx/index.js +6 -0
  154. package/es6/components/Virtuoso/react-virtuoso/urx/pipe.js +266 -0
  155. package/es6/components/Virtuoso/react-virtuoso/urx/streams.js +220 -0
  156. package/es6/components/Virtuoso/react-virtuoso/urx/system.js +102 -0
  157. package/es6/components/Virtuoso/react-virtuoso/urx/transformers.js +101 -0
  158. package/es6/components/Virtuoso/react-virtuoso/urx/utils.js +88 -0
  159. package/es6/components/Virtuoso/react-virtuoso/utils/approximatelyEqual.js +3 -0
  160. package/es6/components/Virtuoso/react-virtuoso/utils/context.js +3 -0
  161. package/es6/components/Virtuoso/react-virtuoso/utils/skipFrames.js +8 -0
  162. package/es6/components/Virtuoso/react-virtuoso/windowScrollerSystem.js +1 -1
  163. package/package.json +2 -2
  164. package/components/Virtuoso/Virtuoso.d.ts +0 -1
  165. package/components/Virtuoso/Virtuoso.js +0 -4
  166. package/components/Virtuoso/react-virtuoso/Grid.js +0 -168
  167. package/components/Virtuoso/react-virtuoso/List.d.ts +0 -6749
  168. package/components/Virtuoso/react-virtuoso/List.js +0 -393
  169. package/components/Virtuoso/react-virtuoso/Table.d.ts +0 -6515
  170. package/components/Virtuoso/react-virtuoso/Table.js +0 -196
  171. package/components/Virtuoso/react-virtuoso/components.d.ts +0 -505
  172. package/components/Virtuoso/react-virtuoso/components.js +0 -9
  173. package/components/Virtuoso/react-virtuoso/utils/conditionalFlushSync.d.ts +0 -1
  174. package/components/Virtuoso/react-virtuoso/utils/conditionalFlushSync.js +0 -11
  175. package/es6/components/Virtuoso/Virtuoso.js +0 -1
  176. package/es6/components/Virtuoso/react-virtuoso/Grid.js +0 -166
  177. package/es6/components/Virtuoso/react-virtuoso/components.js +0 -7
  178. package/es6/components/Virtuoso/react-virtuoso/utils/conditionalFlushSync.js +0 -8
@@ -0,0 +1,148 @@
1
+ /**
2
+ * ## Thinking in Systems
3
+ * systems are a stateful **data-processing machines** which accept input through **input streams**,
4
+ * init and maintain state in **depots** and, in certain conditions, emit values to subscriptions through **output streams**.
5
+ * Systems can specify other systems as dependencies, and can act as singletons in the resulting dependency tree.
6
+ *
7
+ * ### Depots
8
+ *
9
+ * The first, and probably the most critical part to understand are **the depots**
10
+ * mostly because they are somewhat implicit.
11
+ * Unlike other state management paradigms, the depots are not kept in a single data structure.
12
+ * Insted, depots are defined and maintained as stateful streams, stateful transfomers
13
+ * like [[combineLatest]] or stateful operators like[ []withLatestFrom] or [[scan]].
14
+ *
15
+ * **Depots persist values over time**.
16
+ * If it was not for them, the system had to re-receive its entire input state simultaneously in order to calculate the values for its output stream.
17
+ *
18
+ * Of course, strictly speaking, it is possible to implement a pure, stateless system as a form of a complex map/reduce. urx would not mind that ;).
19
+ *
20
+ * ### Input Streams
21
+ *
22
+ * The system receives updates from the rest of the world through values published in its input streams.
23
+ * The streams used can be either stateless (acting as means to send **signals**) or stateful, where the initial stream state acts as the default value for that system parameter.
24
+ *
25
+ * The effects of the input streams are up to the system data-processing logic. It can change its depots' state, and/or emit values through its output streams.
26
+ *
27
+ * ### Data Processing
28
+ *
29
+ * The actual system behavior is exclusively implemented by **applying transformers and operators** to the input streams, producing the respective output streams.
30
+ * In the final state the system streams are organized in a directed graph, where incoming data is routed through certain edges and nodes.
31
+ * Simple systems like the one in [urx by example](https://urx.virtuoso.dev/docs/urx-by-example) can use a straightforward single-step transformation (in this case, `combineLatest` and `map`),
32
+ * while complex ones can introduce multiple intermediate streams to model their logic.
33
+ *
34
+ * ### Output Streams
35
+ *
36
+ * The system publishes updates to its clients (other systems or an UI bound to it) by publishing data in its output streams.
37
+ * State-reflecting output streams, like `sum` in the [urx by example](https://urx.virtuoso.dev/docs/urx-by-example) should use stateful streams as output streams.
38
+ * Signal-like output should use regular, stateless streams. In general, stateless input streams tend to have a symmetrical stateless streams, and the opposite.
39
+ *
40
+ * @packageDocumentation
41
+ */
42
+ import { Emitter } from './actions';
43
+ /**
44
+ * Systems are a dictionaries of streams. a [[SystemConstructor]] should return a System.
45
+ */
46
+ export interface System {
47
+ [key: string]: Emitter<any>;
48
+ }
49
+ /**
50
+ * a SystemSpec is the result from a [[system]] call. To obtain the [[System]], pass the spec to [[init]].
51
+ */
52
+ export interface SystemSpec<SS extends SystemSpecs, C extends SystemConstructor<SS>> {
53
+ id: string;
54
+ constructor: C;
55
+ dependencies: SS;
56
+ singleton: boolean;
57
+ }
58
+ /** @internal **/
59
+ export declare type AnySystemSpec = SystemSpec<any, any>;
60
+ /** @internal **/
61
+ export declare type SystemSpecs = AnySystemSpec[];
62
+ /** @internal **/
63
+ export declare type SR<E extends AnySystemSpec, R extends System = ReturnType<E['constructor']>> = R;
64
+ /** @internal **/
65
+ export declare type SpecResults<SS extends SystemSpecs, L = SS['length']> = L extends 0 ? [] : L extends 1 ? [SR<SS[0]>] : L extends 2 ? [SR<SS[0]>, SR<SS[1]>] : L extends 3 ? [SR<SS[0]>, SR<SS[1]>, SR<SS[2]>] : L extends 4 ? [SR<SS[0]>, SR<SS[1]>, SR<SS[2]>, SR<SS[3]>] : L extends 5 ? [SR<SS[0]>, SR<SS[1]>, SR<SS[2]>, SR<SS[3]>, SR<SS[4]>] : L extends 6 ? [SR<SS[0]>, SR<SS[1]>, SR<SS[2]>, SR<SS[3]>, SR<SS[4]>, SR<SS[5]>] : L extends 7 ? [SR<SS[0]>, SR<SS[1]>, SR<SS[2]>, SR<SS[3]>, SR<SS[4]>, SR<SS[5]>, SR<SS[6]>] : L extends 8 ? [SR<SS[0]>, SR<SS[1]>, SR<SS[2]>, SR<SS[3]>, SR<SS[4]>, SR<SS[5]>, SR<SS[6]>, SR<SS[7]>] : L extends 9 ? [SR<SS[0]>, SR<SS[1]>, SR<SS[2]>, SR<SS[3]>, SR<SS[4]>, SR<SS[5]>, SR<SS[6]>, SR<SS[7]>, SR<SS[8]>] : L extends 10 ? [SR<SS[0]>, SR<SS[1]>, SR<SS[2]>, SR<SS[3]>, SR<SS[4]>, SR<SS[5]>, SR<SS[6]>, SR<SS[7]>, SR<SS[8]>, SR<SS[9]>] : L extends 11 ? [SR<SS[0]>, SR<SS[1]>, SR<SS[2]>, SR<SS[3]>, SR<SS[4]>, SR<SS[5]>, SR<SS[6]>, SR<SS[7]>, SR<SS[8]>, SR<SS[9]>, SR<SS[10]>] : never;
66
+ /**
67
+ * The system constructor is a function which initializes and connects streams and returns them as a [[System]].
68
+ * If the [[system]] call specifies system dependencies, the constructor receives the dependencies as an array argument.
69
+ */
70
+ export declare type SystemConstructor<D extends SystemSpecs> = (dependencies: SpecResults<D>) => System;
71
+ /**
72
+ * `system` defines a specification of a system - its constructor, dependencies and if it should act as a singleton in a system dependency tree.
73
+ * When called, system returns a [[SystemSpec]], which is then initialized along with its dependencies by passing it to [[init]].
74
+ *
75
+ * ```ts
76
+ * @import { subscribe, publish, system, init, tup, connect, map, pipe } from 'urx'
77
+ *
78
+ * // a simple system with two streams
79
+ * const sys1 = system(() => {
80
+ * const a = stream<number>()
81
+ * const b = stream<number>()
82
+ *
83
+ * connect(pipe(a, map(value => value * 2)), b)
84
+ * return { a, b }
85
+ * })
86
+ *
87
+ * // a second system which depends on the streams from the first one
88
+ * const sys2 = system(([ {a, b} ]) => {
89
+ * const c = stream<number>()
90
+ * connect(pipe(b, map(value => value * 2)), c)
91
+ * // re-export the `a` stream, keep `b` internal
92
+ * return { a, c }
93
+ * }, tup(sys1))
94
+ *
95
+ * // init will recursively initialize sys2 dependencies, in this case sys1
96
+ * const { a, c } = init(sys2)
97
+ * subscribe(c, c => console.log(`Value multiplied by 4`, c))
98
+ * publish(a, 2)
99
+ * ```
100
+ *
101
+ * #### Singletons in Dependency Tree
102
+ *
103
+ * By default, systems will be initialized only once if encountered multiple times in the dependency tree.
104
+ * In the below dependency system tree, systems `b` and `c` will receive the same stream instances from system `a` when system `d` is initialized.
105
+ * ```txt
106
+ * a
107
+ * / \
108
+ * b c
109
+ * \ /
110
+ * d
111
+ * ```
112
+ * If `a` gets `{singleton: false}` as a last argument, `init` creates two separate instances - one for `b` and one for `c`.
113
+ *
114
+ * @param constructor the system constructor function. Initialize and connect the streams in its body.
115
+ *
116
+ * @param dependencies the system dependencies, which the constructor will receive as arguments.
117
+ * Use the [[tup]] utility **For TypeScript type inference to work correctly**.
118
+ * ```ts
119
+ * const sys3 = system(() => { ... }, tup(sys2, sys1))
120
+ * ```
121
+ * @param __namedParameters Options
122
+ * @param singleton determines if the system will act as a singleton in a system dependency tree. `true` by default.
123
+ */
124
+ export declare function system<F extends SystemConstructor<D>, D extends SystemSpecs>(constructor: F, dependencies?: D, { singleton }?: {
125
+ singleton: boolean;
126
+ }): SystemSpec<D, F>;
127
+ /**
128
+ * Initializes a [[SystemSpec]] by recursively initializing its dependencies.
129
+ *
130
+ * ```ts
131
+ * // a simple system with two streams
132
+ * const sys1 = system(() => {
133
+ * const a = stream<number>()
134
+ * const b = stream<number>()
135
+ *
136
+ * connect(pipe(a, map(value => value * 2)), b)
137
+ * return { a, b }
138
+ * })
139
+ *
140
+ * const { a, b } = init(sys1)
141
+ * subscribe(b, b => console.log(b))
142
+ * publish(a, 2)
143
+ * ```
144
+ *
145
+ * @returns the [[System]] constructed by the spec constructor.
146
+ * @param systemSpec the system spec to initialize.
147
+ */
148
+ export declare function init<SS extends AnySystemSpec>(systemSpec: SS): SR<SS>;
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * `system` defines a specification of a system - its constructor, dependencies and if it should act as a singleton in a system dependency tree.
5
+ * When called, system returns a [[SystemSpec]], which is then initialized along with its dependencies by passing it to [[init]].
6
+ *
7
+ * ```ts
8
+ * @import { subscribe, publish, system, init, tup, connect, map, pipe } from 'urx'
9
+ *
10
+ * // a simple system with two streams
11
+ * const sys1 = system(() => {
12
+ * const a = stream<number>()
13
+ * const b = stream<number>()
14
+ *
15
+ * connect(pipe(a, map(value => value * 2)), b)
16
+ * return { a, b }
17
+ * })
18
+ *
19
+ * // a second system which depends on the streams from the first one
20
+ * const sys2 = system(([ {a, b} ]) => {
21
+ * const c = stream<number>()
22
+ * connect(pipe(b, map(value => value * 2)), c)
23
+ * // re-export the `a` stream, keep `b` internal
24
+ * return { a, c }
25
+ * }, tup(sys1))
26
+ *
27
+ * // init will recursively initialize sys2 dependencies, in this case sys1
28
+ * const { a, c } = init(sys2)
29
+ * subscribe(c, c => console.log(`Value multiplied by 4`, c))
30
+ * publish(a, 2)
31
+ * ```
32
+ *
33
+ * #### Singletons in Dependency Tree
34
+ *
35
+ * By default, systems will be initialized only once if encountered multiple times in the dependency tree.
36
+ * In the below dependency system tree, systems `b` and `c` will receive the same stream instances from system `a` when system `d` is initialized.
37
+ * ```txt
38
+ * a
39
+ * / \
40
+ * b c
41
+ * \ /
42
+ * d
43
+ * ```
44
+ * If `a` gets `{singleton: false}` as a last argument, `init` creates two separate instances - one for `b` and one for `c`.
45
+ *
46
+ * @param constructor the system constructor function. Initialize and connect the streams in its body.
47
+ *
48
+ * @param dependencies the system dependencies, which the constructor will receive as arguments.
49
+ * Use the [[tup]] utility **For TypeScript type inference to work correctly**.
50
+ * ```ts
51
+ * const sys3 = system(() => { ... }, tup(sys2, sys1))
52
+ * ```
53
+ * @param __namedParameters Options
54
+ * @param singleton determines if the system will act as a singleton in a system dependency tree. `true` by default.
55
+ */
56
+ function system(constructor, dependencies, _a) {
57
+ if (dependencies === void 0) { dependencies = []; }
58
+ var singleton = (_a === void 0 ? { singleton: true } : _a).singleton;
59
+ return {
60
+ id: id(),
61
+ constructor: constructor,
62
+ dependencies: dependencies,
63
+ singleton: singleton,
64
+ };
65
+ }
66
+ exports.system = system;
67
+ /** @internal */
68
+ var id = function () { return Symbol(); };
69
+ /**
70
+ * Initializes a [[SystemSpec]] by recursively initializing its dependencies.
71
+ *
72
+ * ```ts
73
+ * // a simple system with two streams
74
+ * const sys1 = system(() => {
75
+ * const a = stream<number>()
76
+ * const b = stream<number>()
77
+ *
78
+ * connect(pipe(a, map(value => value * 2)), b)
79
+ * return { a, b }
80
+ * })
81
+ *
82
+ * const { a, b } = init(sys1)
83
+ * subscribe(b, b => console.log(b))
84
+ * publish(a, 2)
85
+ * ```
86
+ *
87
+ * @returns the [[System]] constructed by the spec constructor.
88
+ * @param systemSpec the system spec to initialize.
89
+ */
90
+ function init(systemSpec) {
91
+ var singletons = new Map();
92
+ var _init = function (_a) {
93
+ var id = _a.id, constructor = _a.constructor, dependencies = _a.dependencies, singleton = _a.singleton;
94
+ if (singleton && singletons.has(id)) {
95
+ return singletons.get(id);
96
+ }
97
+ var system = constructor(dependencies.map(function (e) { return _init(e); }));
98
+ if (singleton) {
99
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
100
+ singletons.set(id, system);
101
+ }
102
+ return system;
103
+ };
104
+ return _init(systemSpec);
105
+ }
106
+ exports.init = init;
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Transformers change and combine streams, similar to operators.
3
+ * urx comes with two combinators - [[combineLatest]] and [[merge]], and one convenience filter - [[duc]].
4
+ *
5
+ * @packageDocumentation
6
+ */
7
+ import { Emitter } from './actions';
8
+ import { Comparator } from './pipe';
9
+ /**
10
+ * Merges one or more emitters from the same type into a new Emitter which emits values from any of the source emitters.
11
+ * ```ts
12
+ * const foo = stream<number>()
13
+ * const bar = stream<number>()
14
+ *
15
+ * subscribe(merge(foo, bar), (value) => console.log(value)) // 42, 43
16
+ *
17
+ * publish(foo, 42)
18
+ * publish(bar, 43)
19
+ * ```
20
+ */
21
+ export declare function merge<T>(...sources: Emitter<T>[]): Emitter<T>;
22
+ /**
23
+ * A convenience wrapper that emits only the distinct values from the passed Emitter. Wraps [[pipe]] and [[distinctUntilChanged]].
24
+ *
25
+ * ```ts
26
+ * const foo = stream<number>()
27
+ *
28
+ * // this line...
29
+ * const a = duc(foo)
30
+ *
31
+ * // is equivalent to this
32
+ * const b = pipe(distinctUntilChanged(foo))
33
+ * ```
34
+ *
35
+ * @param source The source emitter.
36
+ * @param comparator optional custom comparison function for the two values.
37
+ *
38
+ * @typeParam T the type of the value emitted by the source.
39
+ *
40
+ * @returns the resulting emitter.
41
+ */
42
+ export declare function duc<T>(source: Emitter<T>, comparator?: Comparator<T>): Emitter<T>;
43
+ /**
44
+ * Creates an emitter with the latest values from all passed emitters as an array.
45
+ *
46
+ * `combineLatest` acts as a Depot. Using it on stateless streams persists the last emitted value of each [[Emitter]].
47
+ * Provided that all emitters have emitted at least once, subscribing to the resulting emitter will immediately receive their combined latest values.
48
+ *
49
+ * ```ts
50
+ * const foo = stream<number>()
51
+ * const bar = stream<number>()
52
+ *
53
+ * subscribe(combineLatest(foo, bar), ([foo, bar]) => console.log({ foo, bar }))
54
+ *
55
+ * publish(foo, 42)
56
+ * publish(bar, 43) // { foo: 42, bar: 43 }
57
+ * publish(foo, 44) // { foo: 44, bar: 43 }
58
+ * publish(bar, 45) // { foo: 44, bar: 45 }
59
+ * ```
60
+ */
61
+ export declare function combineLatest<O1, O2>(...emitters: [Emitter<O1>, Emitter<O2>]): Emitter<[O1, O2]>;
62
+ export declare function combineLatest<O1, O2, O3>(...emitters: [Emitter<O1>, Emitter<O2>, Emitter<O3>]): Emitter<[O1, O2, O3]>;
63
+ export declare function combineLatest<O1, O2, O3, O4>(...emitters: [Emitter<O1>, Emitter<O2>, Emitter<O3>, Emitter<O4>]): Emitter<[O1, O2, O3, O4]>;
64
+ export declare function combineLatest<O1, O2, O3>(...emitters: [Emitter<O1>, Emitter<O2>, Emitter<O3>]): Emitter<[O1, O2, O3]>;
65
+ export declare function combineLatest<O1, O2, O3, O4, O5>(...emitters: [Emitter<O1>, Emitter<O2>, Emitter<O3>, Emitter<O4>, Emitter<O5>]): Emitter<[O1, O2, O3, O4, O5]>;
66
+ export declare function combineLatest<O1, O2, O3, O4, O5, O6>(...emitters: [Emitter<O1>, Emitter<O2>, Emitter<O3>, Emitter<O4>, Emitter<O5>, Emitter<O6>]): Emitter<[O1, O2, O3, O4, O5, O6]>;
67
+ export declare function combineLatest<O1, O2, O3, O4, O5, O6, O7>(...emitters: [Emitter<O1>, Emitter<O2>, Emitter<O3>, Emitter<O4>, Emitter<O5>, Emitter<O6>, Emitter<O7>]): Emitter<[O1, O2, O3, O4, O5, O6, O7]>;
68
+ export declare function combineLatest<O1, O2, O3, O4, O5, O6, O7, O8>(...emitters: [Emitter<O1>, Emitter<O2>, Emitter<O3>, Emitter<O4>, Emitter<O5>, Emitter<O6>, Emitter<O7>, Emitter<O8>]): Emitter<[O1, O2, O3, O4, O5, O6, O7, O8]>;
69
+ export declare function combineLatest<O1, O2, O3, O4, O5, O6, O7, O8, O9>(...emitters: [Emitter<O1>, Emitter<O2>, Emitter<O3>, Emitter<O4>, Emitter<O5>, Emitter<O6>, Emitter<O7>, Emitter<O8>, Emitter<O9>]): Emitter<[O1, O2, O3, O4, O5, O6, O7, O8, O9]>;
70
+ export declare function combineLatest<O1, O2, O3, O4, O5, O6, O7, O8, O9, O10>(...emitters: [Emitter<O1>, Emitter<O2>, Emitter<O3>, Emitter<O4>, Emitter<O5>, Emitter<O6>, Emitter<O7>, Emitter<O8>, Emitter<O9>, Emitter<O10>]): Emitter<[O1, O2, O3, O4, O5, O6, O7, O8, O9, O10]>;
71
+ export declare function combineLatest<O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11>(...emitters: [Emitter<O1>, Emitter<O2>, Emitter<O3>, Emitter<O4>, Emitter<O5>, Emitter<O6>, Emitter<O7>, Emitter<O8>, Emitter<O9>, Emitter<O10>, Emitter<O11>]): Emitter<[O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11]>;
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ /* eslint-disable @typescript-eslint/no-unsafe-return */
5
+ /* eslint-disable @typescript-eslint/no-unsafe-assignment */
6
+ /* eslint-disable @typescript-eslint/no-unsafe-argument */
7
+ /**
8
+ * Transformers change and combine streams, similar to operators.
9
+ * urx comes with two combinators - [[combineLatest]] and [[merge]], and one convenience filter - [[duc]].
10
+ *
11
+ * @packageDocumentation
12
+ */
13
+ var actions_1 = require("./actions");
14
+ var constants_1 = require("./constants");
15
+ var pipe_1 = require("./pipe");
16
+ var streams_1 = require("./streams");
17
+ var utils_1 = require("./utils");
18
+ /**
19
+ * Merges one or more emitters from the same type into a new Emitter which emits values from any of the source emitters.
20
+ * ```ts
21
+ * const foo = stream<number>()
22
+ * const bar = stream<number>()
23
+ *
24
+ * subscribe(merge(foo, bar), (value) => console.log(value)) // 42, 43
25
+ *
26
+ * publish(foo, 42)
27
+ * publish(bar, 43)
28
+ * ```
29
+ */
30
+ function merge() {
31
+ var sources = [];
32
+ for (var _i = 0; _i < arguments.length; _i++) {
33
+ sources[_i] = arguments[_i];
34
+ }
35
+ return function (action, subscription) {
36
+ switch (action) {
37
+ case constants_1.SUBSCRIBE:
38
+ return utils_1.joinProc.apply(void 0, tslib_1.__spread(sources.map(function (source) { return actions_1.subscribe(source, subscription); })));
39
+ case constants_1.RESET:
40
+ // do nothing, we are stateless
41
+ return;
42
+ default:
43
+ throw new Error("unrecognized action " + action);
44
+ }
45
+ };
46
+ }
47
+ exports.merge = merge;
48
+ /**
49
+ * A convenience wrapper that emits only the distinct values from the passed Emitter. Wraps [[pipe]] and [[distinctUntilChanged]].
50
+ *
51
+ * ```ts
52
+ * const foo = stream<number>()
53
+ *
54
+ * // this line...
55
+ * const a = duc(foo)
56
+ *
57
+ * // is equivalent to this
58
+ * const b = pipe(distinctUntilChanged(foo))
59
+ * ```
60
+ *
61
+ * @param source The source emitter.
62
+ * @param comparator optional custom comparison function for the two values.
63
+ *
64
+ * @typeParam T the type of the value emitted by the source.
65
+ *
66
+ * @returns the resulting emitter.
67
+ */
68
+ function duc(source, comparator) {
69
+ if (comparator === void 0) { comparator = pipe_1.defaultComparator; }
70
+ return pipe_1.pipe(source, pipe_1.distinctUntilChanged(comparator));
71
+ }
72
+ exports.duc = duc;
73
+ function combineLatest() {
74
+ var emitters = [];
75
+ for (var _i = 0; _i < arguments.length; _i++) {
76
+ emitters[_i] = arguments[_i];
77
+ }
78
+ var innerSubject = streams_1.stream();
79
+ var values = new Array(emitters.length);
80
+ var called = 0;
81
+ var allCalled = Math.pow(2, emitters.length) - 1;
82
+ emitters.forEach(function (source, index) {
83
+ var bit = Math.pow(2, index);
84
+ actions_1.subscribe(source, function (value) {
85
+ values[index] = value;
86
+ called = called | bit;
87
+ if (called === allCalled) {
88
+ actions_1.publish(innerSubject, values);
89
+ }
90
+ });
91
+ });
92
+ return function (action, subscription) {
93
+ switch (action) {
94
+ case constants_1.SUBSCRIBE:
95
+ if (called === allCalled) {
96
+ subscription(values);
97
+ }
98
+ return actions_1.subscribe(innerSubject, subscription);
99
+ case constants_1.RESET:
100
+ return actions_1.reset(innerSubject);
101
+ default:
102
+ throw new Error("unrecognized action " + action);
103
+ }
104
+ };
105
+ }
106
+ exports.combineLatest = combineLatest;
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Utils includes
3
+ * - a handful of functional utilities inspired by or taken from the [Ramda library](https://ramdajs.com/);
4
+ * - TypeScript crutches - the [[tup]] function.
5
+ *
6
+ * Use these for your convenience - they are here so that urx is zero-dependency package.
7
+ *
8
+ * @packageDocumentation
9
+ */
10
+ /** @internal */
11
+ export interface Proc {
12
+ (): any;
13
+ }
14
+ /**
15
+ * Performs left to right composition of two functions.
16
+ */
17
+ export declare function compose<I, A, R>(a: (arg: A) => R, b: (arg: I) => A): (arg: I) => R;
18
+ /**
19
+ * Takes a value and applies a function to it.
20
+ */
21
+ export declare function thrush<I, K>(arg: I, proc: (arg: I) => K): K;
22
+ /**
23
+ * Takes a 2 argument function and partially applies the first argument.
24
+ */
25
+ export declare function curry2to1<T, K, R>(proc: (arg1: T, arg2: K) => R, arg1: T): (arg2: K) => R;
26
+ /**
27
+ * Takes a 1 argument function and returns a function which when called, executes it with the provided argument.
28
+ */
29
+ export declare function curry1to0<T, R>(proc: (arg: T) => R, arg: T): () => R;
30
+ /**
31
+ * Returns a function which extracts the property from from the passed object.
32
+ */
33
+ export declare function prop(property: string): (object: any) => any;
34
+ /**
35
+ * Calls callback with the first argument, and returns it.
36
+ */
37
+ export declare function tap<T>(arg: T, proc: (arg: T) => any): T;
38
+ /**
39
+ * Utility function to help typescript figure out that what we pass is a tuple and not a generic array.
40
+ * Taken from (this StackOverflow tread)[https://stackoverflow.com/questions/49729550/implicitly-create-a-tuple-in-typescript/52445008#52445008]
41
+ */
42
+ export declare function tup<T extends Array<any>>(...args: T): T;
43
+ /**
44
+ * Calls the passed function.
45
+ */
46
+ export declare function call(proc: Proc): void;
47
+ /**
48
+ * returns a function which when called always returns the passed value
49
+ */
50
+ export declare function always<T>(value: T): () => T;
51
+ /**
52
+ * returns a function which calls all passed functions in the passed order.
53
+ * joinProc does not pass arguments or collect return values.
54
+ */
55
+ export declare function joinProc(...procs: Proc[]): () => void;
56
+ export declare function isDefined<T>(arg: T): boolean;
57
+ export declare function noop(): void;
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ /**
3
+ * Utils includes
4
+ * - a handful of functional utilities inspired by or taken from the [Ramda library](https://ramdajs.com/);
5
+ * - TypeScript crutches - the [[tup]] function.
6
+ *
7
+ * Use these for your convenience - they are here so that urx is zero-dependency package.
8
+ *
9
+ * @packageDocumentation
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ /**
13
+ * Performs left to right composition of two functions.
14
+ */
15
+ function compose(a, b) {
16
+ return function (arg) { return a(b(arg)); };
17
+ }
18
+ exports.compose = compose;
19
+ /**
20
+ * Takes a value and applies a function to it.
21
+ */
22
+ function thrush(arg, proc) {
23
+ return proc(arg);
24
+ }
25
+ exports.thrush = thrush;
26
+ /**
27
+ * Takes a 2 argument function and partially applies the first argument.
28
+ */
29
+ function curry2to1(proc, arg1) {
30
+ return function (arg2) { return proc(arg1, arg2); };
31
+ }
32
+ exports.curry2to1 = curry2to1;
33
+ /**
34
+ * Takes a 1 argument function and returns a function which when called, executes it with the provided argument.
35
+ */
36
+ function curry1to0(proc, arg) {
37
+ return function () { return proc(arg); };
38
+ }
39
+ exports.curry1to0 = curry1to0;
40
+ /**
41
+ * Returns a function which extracts the property from from the passed object.
42
+ */
43
+ function prop(property) {
44
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return
45
+ return function (object) { return object[property]; };
46
+ }
47
+ exports.prop = prop;
48
+ /**
49
+ * Calls callback with the first argument, and returns it.
50
+ */
51
+ function tap(arg, proc) {
52
+ proc(arg);
53
+ return arg;
54
+ }
55
+ exports.tap = tap;
56
+ /**
57
+ * Utility function to help typescript figure out that what we pass is a tuple and not a generic array.
58
+ * Taken from (this StackOverflow tread)[https://stackoverflow.com/questions/49729550/implicitly-create-a-tuple-in-typescript/52445008#52445008]
59
+ */
60
+ function tup() {
61
+ var args = [];
62
+ for (var _i = 0; _i < arguments.length; _i++) {
63
+ args[_i] = arguments[_i];
64
+ }
65
+ return args;
66
+ }
67
+ exports.tup = tup;
68
+ /**
69
+ * Calls the passed function.
70
+ */
71
+ function call(proc) {
72
+ proc();
73
+ }
74
+ exports.call = call;
75
+ /**
76
+ * returns a function which when called always returns the passed value
77
+ */
78
+ function always(value) {
79
+ return function () { return value; };
80
+ }
81
+ exports.always = always;
82
+ /**
83
+ * returns a function which calls all passed functions in the passed order.
84
+ * joinProc does not pass arguments or collect return values.
85
+ */
86
+ function joinProc() {
87
+ var procs = [];
88
+ for (var _i = 0; _i < arguments.length; _i++) {
89
+ procs[_i] = arguments[_i];
90
+ }
91
+ return function () {
92
+ procs.map(call);
93
+ };
94
+ }
95
+ exports.joinProc = joinProc;
96
+ function isDefined(arg) {
97
+ return arg !== undefined;
98
+ }
99
+ exports.isDefined = isDefined;
100
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
101
+ function noop() { }
102
+ exports.noop = noop;
@@ -0,0 +1 @@
1
+ export declare function approximatelyEqual(num1: number, num2: number): boolean;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function approximatelyEqual(num1, num2) {
4
+ return Math.abs(num1 - num2) < 1.01;
5
+ }
6
+ exports.approximatelyEqual = approximatelyEqual;
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ export interface VirtuosoMockContextValue {
3
+ viewportHeight: number;
4
+ itemHeight: number;
5
+ }
6
+ export declare const VirtuosoMockContext: React.Context<VirtuosoMockContextValue | undefined>;
7
+ export interface VirtuosoGridMockContextValue {
8
+ viewportHeight: number;
9
+ viewportWidth: number;
10
+ itemHeight: number;
11
+ itemWidth: number;
12
+ }
13
+ export declare const VirtuosoGridMockContext: React.Context<VirtuosoGridMockContextValue | undefined>;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var react_1 = tslib_1.__importDefault(require("react"));
5
+ exports.VirtuosoMockContext = react_1.default.createContext(undefined);
6
+ exports.VirtuosoGridMockContext = react_1.default.createContext(undefined);
@@ -0,0 +1 @@
1
+ export declare function skipFrames(frameCount: number, callback: () => void): void;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function skipFrames(frameCount, callback) {
4
+ if (frameCount == 0) {
5
+ callback();
6
+ }
7
+ else {
8
+ requestAnimationFrame(function () { return skipFrames(frameCount - 1, callback); });
9
+ }
10
+ }
11
+ exports.skipFrames = skipFrames;
@@ -1,14 +1,15 @@
1
- import * as u from '@virtuoso.dev/urx';
2
- import { ScrollContainerState, WindowViewportInfo } from './interfaces';
1
+ import * as u from './urx';
2
+ import { WindowViewportInfo, ScrollContainerState } from './interfaces';
3
3
  export declare const windowScrollerSystem: u.SystemSpec<[u.SystemSpec<never[], () => {
4
4
  scrollContainerState: u.Stream<ScrollContainerState>;
5
5
  scrollTop: u.Stream<number>;
6
6
  viewportHeight: u.Stream<number>;
7
7
  headerHeight: u.StatefulStream<number>;
8
+ fixedHeaderHeight: u.StatefulStream<number>;
9
+ fixedFooterHeight: u.StatefulStream<number>;
8
10
  footerHeight: u.StatefulStream<number>;
9
11
  scrollHeight: u.Stream<number>;
10
12
  smoothScrollTargetReached: u.Stream<true>;
11
- react18ConcurrentRendering: u.StatefulStream<boolean>;
12
13
  scrollTo: u.Stream<ScrollToOptions>;
13
14
  scrollBy: u.Stream<ScrollToOptions>;
14
15
  statefulScrollTop: u.StatefulStream<number>;
@@ -19,10 +20,11 @@ export declare const windowScrollerSystem: u.SystemSpec<[u.SystemSpec<never[], (
19
20
  scrollTop: u.Stream<number>;
20
21
  viewportHeight: u.Stream<number>;
21
22
  headerHeight: u.StatefulStream<number>;
23
+ fixedHeaderHeight: u.StatefulStream<number>;
24
+ fixedFooterHeight: u.StatefulStream<number>;
22
25
  footerHeight: u.StatefulStream<number>;
23
26
  scrollHeight: u.Stream<number>;
24
27
  smoothScrollTargetReached: u.Stream<true>;
25
- react18ConcurrentRendering: u.StatefulStream<boolean>;
26
28
  scrollTo: u.Stream<ScrollToOptions>;
27
29
  scrollBy: u.Stream<ScrollToOptions>;
28
30
  statefulScrollTop: u.StatefulStream<number>;