@sisense/sdk-pivot-query-client 2.17.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 (189) hide show
  1. package/LICENSE.md +35 -0
  2. package/README.md +2 -0
  3. package/dist/__test-helpers__/testUtils.d.ts +30 -0
  4. package/dist/__test-helpers__/testUtils.js +89 -0
  5. package/dist/builders/index.d.ts +2 -0
  6. package/dist/builders/index.js +2 -0
  7. package/dist/builders/pivot-data-builder.d.ts +34 -0
  8. package/dist/builders/pivot-data-builder.js +182 -0
  9. package/dist/builders/socket-builder.d.ts +18 -0
  10. package/dist/builders/socket-builder.js +72 -0
  11. package/dist/cjs/__test-helpers__/testUtils.d.ts +30 -0
  12. package/dist/cjs/__test-helpers__/testUtils.js +104 -0
  13. package/dist/cjs/builders/index.d.ts +2 -0
  14. package/dist/cjs/builders/index.js +7 -0
  15. package/dist/cjs/builders/pivot-data-builder.d.ts +34 -0
  16. package/dist/cjs/builders/pivot-data-builder.js +186 -0
  17. package/dist/cjs/builders/socket-builder.d.ts +18 -0
  18. package/dist/cjs/builders/socket-builder.js +79 -0
  19. package/dist/cjs/data-handling/DataService.d.ts +672 -0
  20. package/dist/cjs/data-handling/DataService.js +1364 -0
  21. package/dist/cjs/data-handling/DivergenceComparator.d.ts +7 -0
  22. package/dist/cjs/data-handling/DivergenceComparator.js +20 -0
  23. package/dist/cjs/data-handling/constants.d.ts +44 -0
  24. package/dist/cjs/data-handling/constants.js +43 -0
  25. package/dist/cjs/data-handling/index.d.ts +3 -0
  26. package/dist/cjs/data-handling/index.js +23 -0
  27. package/dist/cjs/data-handling/types.d.ts +104 -0
  28. package/dist/cjs/data-handling/types.js +2 -0
  29. package/dist/cjs/data-handling/utils/createPivotTreeNode.d.ts +13 -0
  30. package/dist/cjs/data-handling/utils/createPivotTreeNode.js +21 -0
  31. package/dist/cjs/data-handling/utils/index.d.ts +4 -0
  32. package/dist/cjs/data-handling/utils/index.js +14 -0
  33. package/dist/cjs/data-handling/utils/jaqlProcessor.d.ts +122 -0
  34. package/dist/cjs/data-handling/utils/jaqlProcessor.js +661 -0
  35. package/dist/cjs/data-handling/utils/pivotTransforms.d.ts +74 -0
  36. package/dist/cjs/data-handling/utils/pivotTransforms.js +373 -0
  37. package/dist/cjs/data-handling/utils/plugins/PluginService.d.ts +135 -0
  38. package/dist/cjs/data-handling/utils/plugins/PluginService.js +383 -0
  39. package/dist/cjs/data-handling/utils/plugins/getters.d.ts +23 -0
  40. package/dist/cjs/data-handling/utils/plugins/getters.js +70 -0
  41. package/dist/cjs/data-handling/utils/plugins/types.d.ts +75 -0
  42. package/dist/cjs/data-handling/utils/plugins/types.js +2 -0
  43. package/dist/cjs/data-handling/utils/plugins/validator.d.ts +13 -0
  44. package/dist/cjs/data-handling/utils/plugins/validator.js +169 -0
  45. package/dist/cjs/data-load/AbstractDataLoadService.d.ts +256 -0
  46. package/dist/cjs/data-load/AbstractDataLoadService.js +473 -0
  47. package/dist/cjs/data-load/DataLoadService.d.ts +63 -0
  48. package/dist/cjs/data-load/DataLoadService.js +152 -0
  49. package/dist/cjs/data-load/SisenseDataLoadService.d.ts +44 -0
  50. package/dist/cjs/data-load/SisenseDataLoadService.js +87 -0
  51. package/dist/cjs/data-load/TestDataLoadService.d.ts +27 -0
  52. package/dist/cjs/data-load/TestDataLoadService.js +76 -0
  53. package/dist/cjs/data-load/constants.d.ts +13 -0
  54. package/dist/cjs/data-load/constants.js +28 -0
  55. package/dist/cjs/data-load/index.d.ts +6 -0
  56. package/dist/cjs/data-load/index.js +14 -0
  57. package/dist/cjs/data-load/sockets/SisenseSocket.d.ts +81 -0
  58. package/dist/cjs/data-load/sockets/SisenseSocket.js +162 -0
  59. package/dist/cjs/data-load/sockets/TestSocket.d.ts +61 -0
  60. package/dist/cjs/data-load/sockets/TestSocket.js +90 -0
  61. package/dist/cjs/data-load/sockets/helpers.d.ts +4 -0
  62. package/dist/cjs/data-load/sockets/helpers.js +27 -0
  63. package/dist/cjs/data-load/sockets/index.d.ts +2 -0
  64. package/dist/cjs/data-load/sockets/index.js +8 -0
  65. package/dist/cjs/data-load/types.d.ts +90 -0
  66. package/dist/cjs/data-load/types.js +2 -0
  67. package/dist/cjs/errors/LoadingCanceledError.d.ts +7 -0
  68. package/dist/cjs/errors/LoadingCanceledError.js +24 -0
  69. package/dist/cjs/errors/index.d.ts +1 -0
  70. package/dist/cjs/errors/index.js +6 -0
  71. package/dist/cjs/index.d.ts +17 -0
  72. package/dist/cjs/index.js +32 -0
  73. package/dist/cjs/package.json +12 -0
  74. package/dist/cjs/pivot-query-client.d.ts +13 -0
  75. package/dist/cjs/pivot-query-client.js +26 -0
  76. package/dist/cjs/tree-structure/AbstractTreeService.d.ts +308 -0
  77. package/dist/cjs/tree-structure/AbstractTreeService.js +716 -0
  78. package/dist/cjs/tree-structure/HeaderTreeService.d.ts +180 -0
  79. package/dist/cjs/tree-structure/HeaderTreeService.js +280 -0
  80. package/dist/cjs/tree-structure/TreeCellMap.d.ts +104 -0
  81. package/dist/cjs/tree-structure/TreeCellMap.js +145 -0
  82. package/dist/cjs/tree-structure/TreeService.d.ts +8 -0
  83. package/dist/cjs/tree-structure/TreeService.js +12 -0
  84. package/dist/cjs/tree-structure/constants.d.ts +6 -0
  85. package/dist/cjs/tree-structure/constants.js +10 -0
  86. package/dist/cjs/tree-structure/index.d.ts +5 -0
  87. package/dist/cjs/tree-structure/index.js +10 -0
  88. package/dist/cjs/tree-structure/types.d.ts +93 -0
  89. package/dist/cjs/tree-structure/types.js +2 -0
  90. package/dist/cjs/tree-structure/utils/index.d.ts +1 -0
  91. package/dist/cjs/tree-structure/utils/index.js +9 -0
  92. package/dist/cjs/tree-structure/utils/treeNode.d.ts +147 -0
  93. package/dist/cjs/tree-structure/utils/treeNode.js +534 -0
  94. package/dist/cjs/utils/array.d.ts +13 -0
  95. package/dist/cjs/utils/array.js +25 -0
  96. package/dist/cjs/utils/cloneObject.d.ts +30 -0
  97. package/dist/cjs/utils/cloneObject.js +225 -0
  98. package/dist/cjs/utils/index.d.ts +3 -0
  99. package/dist/cjs/utils/index.js +9 -0
  100. package/dist/cjs/utils/throttle.d.ts +12 -0
  101. package/dist/cjs/utils/throttle.js +39 -0
  102. package/dist/cjs/utils/types.d.ts +12 -0
  103. package/dist/cjs/utils/types.js +2 -0
  104. package/dist/data-handling/DataService.d.ts +672 -0
  105. package/dist/data-handling/DataService.js +1357 -0
  106. package/dist/data-handling/DivergenceComparator.d.ts +7 -0
  107. package/dist/data-handling/DivergenceComparator.js +16 -0
  108. package/dist/data-handling/constants.d.ts +44 -0
  109. package/dist/data-handling/constants.js +40 -0
  110. package/dist/data-handling/index.d.ts +3 -0
  111. package/dist/data-handling/index.js +4 -0
  112. package/dist/data-handling/types.d.ts +104 -0
  113. package/dist/data-handling/types.js +1 -0
  114. package/dist/data-handling/utils/createPivotTreeNode.d.ts +13 -0
  115. package/dist/data-handling/utils/createPivotTreeNode.js +17 -0
  116. package/dist/data-handling/utils/index.d.ts +4 -0
  117. package/dist/data-handling/utils/index.js +4 -0
  118. package/dist/data-handling/utils/jaqlProcessor.d.ts +122 -0
  119. package/dist/data-handling/utils/jaqlProcessor.js +621 -0
  120. package/dist/data-handling/utils/pivotTransforms.d.ts +74 -0
  121. package/dist/data-handling/utils/pivotTransforms.js +335 -0
  122. package/dist/data-handling/utils/plugins/PluginService.d.ts +135 -0
  123. package/dist/data-handling/utils/plugins/PluginService.js +379 -0
  124. package/dist/data-handling/utils/plugins/getters.d.ts +23 -0
  125. package/dist/data-handling/utils/plugins/getters.js +65 -0
  126. package/dist/data-handling/utils/plugins/types.d.ts +75 -0
  127. package/dist/data-handling/utils/plugins/types.js +1 -0
  128. package/dist/data-handling/utils/plugins/validator.d.ts +13 -0
  129. package/dist/data-handling/utils/plugins/validator.js +165 -0
  130. package/dist/data-load/AbstractDataLoadService.d.ts +256 -0
  131. package/dist/data-load/AbstractDataLoadService.js +466 -0
  132. package/dist/data-load/DataLoadService.d.ts +63 -0
  133. package/dist/data-load/DataLoadService.js +148 -0
  134. package/dist/data-load/SisenseDataLoadService.d.ts +44 -0
  135. package/dist/data-load/SisenseDataLoadService.js +83 -0
  136. package/dist/data-load/TestDataLoadService.d.ts +27 -0
  137. package/dist/data-load/TestDataLoadService.js +69 -0
  138. package/dist/data-load/constants.d.ts +13 -0
  139. package/dist/data-load/constants.js +25 -0
  140. package/dist/data-load/index.d.ts +6 -0
  141. package/dist/data-load/index.js +6 -0
  142. package/dist/data-load/sockets/SisenseSocket.d.ts +81 -0
  143. package/dist/data-load/sockets/SisenseSocket.js +155 -0
  144. package/dist/data-load/sockets/TestSocket.d.ts +61 -0
  145. package/dist/data-load/sockets/TestSocket.js +83 -0
  146. package/dist/data-load/sockets/helpers.d.ts +4 -0
  147. package/dist/data-load/sockets/helpers.js +23 -0
  148. package/dist/data-load/sockets/index.d.ts +2 -0
  149. package/dist/data-load/sockets/index.js +3 -0
  150. package/dist/data-load/types.d.ts +90 -0
  151. package/dist/data-load/types.js +1 -0
  152. package/dist/errors/LoadingCanceledError.d.ts +7 -0
  153. package/dist/errors/LoadingCanceledError.js +20 -0
  154. package/dist/errors/index.d.ts +1 -0
  155. package/dist/errors/index.js +2 -0
  156. package/dist/index.d.ts +17 -0
  157. package/dist/index.js +9 -0
  158. package/dist/pivot-query-client.d.ts +13 -0
  159. package/dist/pivot-query-client.js +22 -0
  160. package/dist/tree-structure/AbstractTreeService.d.ts +308 -0
  161. package/dist/tree-structure/AbstractTreeService.js +712 -0
  162. package/dist/tree-structure/HeaderTreeService.d.ts +180 -0
  163. package/dist/tree-structure/HeaderTreeService.js +276 -0
  164. package/dist/tree-structure/TreeCellMap.d.ts +104 -0
  165. package/dist/tree-structure/TreeCellMap.js +141 -0
  166. package/dist/tree-structure/TreeService.d.ts +8 -0
  167. package/dist/tree-structure/TreeService.js +8 -0
  168. package/dist/tree-structure/constants.d.ts +6 -0
  169. package/dist/tree-structure/constants.js +7 -0
  170. package/dist/tree-structure/index.d.ts +5 -0
  171. package/dist/tree-structure/index.js +4 -0
  172. package/dist/tree-structure/types.d.ts +93 -0
  173. package/dist/tree-structure/types.js +1 -0
  174. package/dist/tree-structure/utils/index.d.ts +1 -0
  175. package/dist/tree-structure/utils/index.js +1 -0
  176. package/dist/tree-structure/utils/treeNode.d.ts +147 -0
  177. package/dist/tree-structure/utils/treeNode.js +515 -0
  178. package/dist/tsconfig.prod.cjs.tsbuildinfo +1 -0
  179. package/dist/utils/array.d.ts +13 -0
  180. package/dist/utils/array.js +21 -0
  181. package/dist/utils/cloneObject.d.ts +30 -0
  182. package/dist/utils/cloneObject.js +221 -0
  183. package/dist/utils/index.d.ts +3 -0
  184. package/dist/utils/index.js +3 -0
  185. package/dist/utils/throttle.d.ts +12 -0
  186. package/dist/utils/throttle.js +35 -0
  187. package/dist/utils/types.d.ts +12 -0
  188. package/dist/utils/types.js +1 -0
  189. package/package.json +61 -0
@@ -0,0 +1,672 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ import EventEmitter from 'events';
3
+ import { DataLoadServiceI, JaqlPanel, JaqlRequest } from '../data-load/types.js';
4
+ import { TreeService } from '../tree-structure/index.js';
5
+ import { HeaderTreeNode, TreeNode, TreeServiceI } from '../tree-structure/types.js';
6
+ import { DivergenceComparator } from './DivergenceComparator.js';
7
+ import { AllDataInfo, DataServiceI, InitPageData, PivotTreeNode } from './types.js';
8
+ import { PluginService } from './utils/index.js';
9
+ import { GlobalStyles, PluginConfig } from './utils/plugins/types.js';
10
+ export declare type NodesChunk = {
11
+ list: Array<TreeNode>;
12
+ size: number;
13
+ ready: boolean;
14
+ handled: boolean;
15
+ };
16
+ export declare const DEFAULT_PAGE_SIZE = 100;
17
+ export declare const EVENT_DATA_LOAD = "dataLoad";
18
+ export declare const EVENT_DATA_CHUNK_LOADED = "dataChunkLoaded";
19
+ export declare const EVENT_DATABAR_CHUNK_LOADED = "dataBarChunkLoaded";
20
+ export declare const EVENT_RANGEMINMAX_CHUNK_LOADED = "rangeMinMaxChunkLoaded";
21
+ export declare const EVENT_GRAND_CHUNK_LOADED = "grandChunkLoaded";
22
+ export declare const EVENT_DATA_FINISH_CHUNK_LOADED = "dataFinishChunkLoaded";
23
+ export declare const EVENT_FINISH_CHUNK_LOADED = "finishChunkLoaded";
24
+ export declare const EVENT_PROGRESS_ERROR = "progressError";
25
+ export declare const EVENT_HEADER_CELL_FORMAT = "headerCellFormat";
26
+ export declare const EVENT_DATA_CELL_FORMAT = "dataCellFormat";
27
+ export declare const EVENT_TOTAL_ROWS_COUNT = "totalRowsCountLoaded";
28
+ export declare const EVENT_TOTAL_COLUMNS_COUNT = "totalColumnsCountLoaded";
29
+ export declare const NODES_CHUNK_SIZE_MAX = 1000;
30
+ export declare const THROTTLE_TIME_MS = 0;
31
+ declare type Options = {
32
+ throttle: Function;
33
+ throttleTime: number;
34
+ PluginService: typeof PluginService;
35
+ skipInternalColorFormatting: boolean;
36
+ subtotalsForSingleRow: boolean;
37
+ };
38
+ export declare type DataServiceOptions = Partial<Options>;
39
+ export declare class DataService implements DataServiceI {
40
+ /**
41
+ *
42
+ *
43
+ * @private
44
+ * EventEmitter instance
45
+ */
46
+ events: EventEmitter;
47
+ /**
48
+ *
49
+ *
50
+ * @private
51
+ *
52
+ * DataLoadServiceI instance
53
+ */
54
+ loadService: DataLoadServiceI;
55
+ /**
56
+ *
57
+ *
58
+ * @private
59
+ *
60
+ * configuration options object
61
+ */
62
+ options: Options;
63
+ /**
64
+ *
65
+ *
66
+ * @private
67
+ *
68
+ * loaded data chunks group
69
+ */
70
+ tempDataChunks: Array<NodesChunk>;
71
+ /**
72
+ *
73
+ * @private
74
+ *
75
+ * last not handled data chunks group index
76
+ */
77
+ lastNotHandledChunkIndex: number;
78
+ /**
79
+ *
80
+ * @private
81
+ *
82
+ * last ready but not handled data chunks group index
83
+ */
84
+ lastReadyNotHandledChunkIndex: number;
85
+ /**
86
+ *
87
+ * @private
88
+ *
89
+ * Current rows nodes
90
+ */
91
+ rowsGrand?: PivotTreeNode;
92
+ /**
93
+ *
94
+ @private */
95
+ rowsTreeService?: TreeServiceI;
96
+ /**
97
+ *
98
+ @private */
99
+ columnsTreeService?: TreeServiceI;
100
+ /**
101
+ *
102
+ @private */
103
+ cornerTreeService?: TreeServiceI;
104
+ /**
105
+ @private */
106
+ pageSize: number;
107
+ /**
108
+ *
109
+ @private */
110
+ isPaginated: boolean;
111
+ /**
112
+ *
113
+ * @private
114
+ *
115
+ * number of loaded pages
116
+ */
117
+ loadedPagesCount: number;
118
+ /**
119
+ *
120
+ * @private
121
+ *
122
+ * state for "loadData" method
123
+ */
124
+ isLoadInProgress: boolean;
125
+ /**
126
+ *
127
+ @private */
128
+ loadPromiseResolve?: Function;
129
+ /**
130
+ *
131
+ @private */
132
+ loadPromiseReject?: Function;
133
+ /**
134
+ *
135
+ @private */
136
+ loadPromiseCache?: InitPageData;
137
+ /**
138
+ *
139
+ @private */
140
+ loadAllPromise?: Promise<any>;
141
+ /**
142
+ *
143
+ @private */
144
+ loadAllPromiseResolve?: Function;
145
+ /**
146
+ *
147
+ @private */
148
+ loadAllPromiseReject?: Function;
149
+ /**
150
+ *
151
+ * @private
152
+ *
153
+ * defines if all data is loaded
154
+ */
155
+ isWholeDataLoaded: boolean;
156
+ /**
157
+ *
158
+ * @private
159
+ *
160
+ * defines that data finish event is happened
161
+ */
162
+ hasDataFinishEvent: boolean;
163
+ /**
164
+ *
165
+ * @private
166
+ *
167
+ * defines that data handler in progress
168
+ */
169
+ isDataHandlerThrottled: boolean;
170
+ /**
171
+ *
172
+ * @private
173
+ *
174
+ * throttled data handler
175
+ */
176
+ onDataHandlerThrottle: (data?: any) => void;
177
+ /**
178
+ *
179
+ * @private
180
+ *
181
+ * jaql request pure metadata
182
+ */
183
+ metadata: Array<JaqlPanel>;
184
+ dataBars: Array<[string, string]> | undefined;
185
+ rangeMinMax: Array<[string, string]> | undefined;
186
+ /**
187
+ *
188
+ * @private
189
+ *
190
+ * service for items indexation divergence
191
+ */
192
+ divergenceComparator: DivergenceComparator;
193
+ /**
194
+ *
195
+ * @private
196
+ *
197
+ * service to apply customers plugins
198
+ */
199
+ pluginService?: PluginService;
200
+ /**
201
+ *
202
+ @private */
203
+ rawJaql?: JaqlRequest;
204
+ /**
205
+ *
206
+ * @private
207
+ *
208
+ * triggered events data storage
209
+ */
210
+ triggeredEventsData: {
211
+ [key: string]: any;
212
+ };
213
+ /**
214
+ *
215
+ * @private
216
+ *
217
+ * plugins handlers
218
+ */
219
+ callPlugins: Array<PluginConfig>;
220
+ /**
221
+ *
222
+ * @private
223
+ *
224
+ * plugins global styles
225
+ */
226
+ globalStyles?: GlobalStyles;
227
+ /**
228
+ *
229
+ * @private
230
+ *
231
+ * actual data columns count
232
+ */
233
+ columnsCount?: number;
234
+ /**
235
+ *
236
+ * @private
237
+ *
238
+ * total data columns count
239
+ */
240
+ totalColumnsCount?: number;
241
+ /**
242
+ *
243
+ * @private
244
+ *
245
+ * actual data rows count
246
+ */
247
+ rowsCount?: number;
248
+ /**
249
+ *
250
+ * @private
251
+ *
252
+ * total data rows count
253
+ */
254
+ totalRowsCount?: number;
255
+ /**
256
+ *
257
+ * @private
258
+ *
259
+ * total CVS records count
260
+ */
261
+ totalRecordsCount?: number;
262
+ /**
263
+ *
264
+ * @private
265
+ *
266
+ * is rows limit reached
267
+ */
268
+ limitReached?: boolean;
269
+ constructor(loadService: DataLoadServiceI, events?: EventEmitter, options?: Partial<Options>);
270
+ destroy(): void;
271
+ /**
272
+ * Subscribe to event notification
273
+ *
274
+ * @param {string} eventName - event name to subscribe
275
+ * @param {Function} callback - event handler
276
+ * @returns {void}
277
+ */
278
+ on(eventName: string, callback: (...args: any[]) => void): void;
279
+ /**
280
+ * Emits event with payload
281
+ *
282
+ * @param {string} eventName - event name to emit
283
+ * @param {Array<any>} payload - event payload
284
+ * @returns {void}
285
+ */
286
+ emit(eventName: string, ...payload: Array<any>): void;
287
+ /**
288
+ * Unsubscribe from event notification
289
+ *
290
+ * @param {string} eventName - event name to unsubscribe from
291
+ * @param {Function} callback - event handler
292
+ * @returns {void}
293
+ */
294
+ off(eventName: string, callback: (...args: any[]) => void): void;
295
+ /**
296
+ * Initialize start data loading
297
+ *
298
+ * @param {JaqlRequest} [jaql] - JAQL request object
299
+ * @param {object} [options] - additional options
300
+ * @param {number} [options.pageSize=100] - page size to wait
301
+ * @param {boolean} [options.isPaginated=false] - defines which type of treeService to return,
302
+ * partial or paginated
303
+ * @param {Array<JaqlPanel>} [options.metadata] - jaql's metadata
304
+ * @param {boolean} [options.cacheResult=false] - cache result for next call or not
305
+ * @returns {Promise<any>} - promise with initial data to render
306
+ */
307
+ loadData(jaql?: JaqlRequest, options?: {
308
+ pageSize?: number;
309
+ isPaginated?: boolean;
310
+ metadata?: Array<JaqlPanel>;
311
+ cacheResult?: boolean;
312
+ }): Promise<InitPageData>;
313
+ /**
314
+ * Sets Promise that resolves after all data loaded
315
+ *
316
+ * @returns {Promise<{ loadedRowsCount: number, totalItemsCount: number }>} - promise with
317
+ * loaded items count
318
+ */
319
+ loadAllData(): Promise<AllDataInfo>;
320
+ /**
321
+ * public method for selecting page and setting new page size
322
+ *
323
+ * @param {number} selected - page number
324
+ * @param {number} pageSize - set page size (optional)
325
+ * @returns {Promise<{rowsTreeService, columnsTreeService, cornerTreeService, isLastPage}>}
326
+ * - returns private method's call with panel's treeServices
327
+ */
328
+ getSelectedPageData(selected: number, pageSize?: number): Promise<InitPageData>;
329
+ /**
330
+ * public method for selecting page by indexes
331
+ *
332
+ * @param {number} from - first row's index
333
+ * @param {number} to - last row's index
334
+ * @param {boolean} lastPage - append grandTotals
335
+ * @returns {Promise<{rowsTreeService, columnsTreeService, cornerTreeService, isLastPage}>}
336
+ * - returns private method's call with panel's treeServices
337
+ */
338
+ getIndexedPageData(from: number, to: number, lastPage?: boolean): Promise<InitPageData>;
339
+ /**
340
+ * Returns current jaql request object
341
+ *
342
+ * @returns {JaqlRequest} - jaql request object
343
+ */
344
+ getJaql(): JaqlRequest;
345
+ /**
346
+ * Defines data structure
347
+ *
348
+ * @returns {boolean} - true - single branch tree
349
+ */
350
+ isSingleRowTree(): boolean;
351
+ /**
352
+ * Set cell process handlers
353
+ *
354
+ * @param {Array<PluginConfig>} handlers - object with target and handler
355
+ * @returns {void}
356
+ */
357
+ setPluginHandlers(handlers: Array<PluginConfig>): void;
358
+ /**
359
+ * Set global styles for all cells
360
+ *
361
+ * @param {GlobalStyles} [styles] - object with target and handler
362
+ * @returns {void}
363
+ */
364
+ setGlobalStyles(styles?: GlobalStyles): void;
365
+ /**
366
+ * Returns current raw jaql request object
367
+ *
368
+ * @returns {JaqlRequest} - composition of required jaql fields
369
+ * @private
370
+ */
371
+ getRawJaql(): JaqlRequest;
372
+ /**
373
+ * Returns current jaql request metadata array
374
+ *
375
+ * @returns {Array<JaqlPanel>} - jaql request metadata
376
+ * @private
377
+ */
378
+ getMetadata(): Array<JaqlPanel>;
379
+ /**
380
+ * Pre-process initial tree structure
381
+ *
382
+ * @param {Array<TreeNode>} items - items to normalize
383
+ * @param {string} type - items types to normalize
384
+ * @param {object} options - additional options
385
+ * @param {number} [options.level=0] - tree level, for internal use only
386
+ * @param {object} [options.measurePath={}] - items types to normalize
387
+ * @returns {Array<PivotTreeNode>} - normalized list of items
388
+ */
389
+ preProcessTree(items: TreeNode | Array<TreeNode>, type: string, options?: {
390
+ level?: number;
391
+ measurePath?: {
392
+ [key: string]: string;
393
+ };
394
+ }): Array<PivotTreeNode>;
395
+ /**
396
+ * Post-process final tree structure with formatting event
397
+ *
398
+ * @param {PivotTreeNode} items - list of PivotTreeNode items
399
+ * @param {object} [options] - additional options
400
+ * @param {boolean} [options.skipFormatEvent] - process tree but skip format event trigger
401
+ * @param {boolean} [options.onlyFormatEvents] - process tree with format event trigger only
402
+ * @param {Function} [options.iterateFn] - iterate function to call for each tree node
403
+ * @returns {void}
404
+ */
405
+ postProcessTree(items: Array<PivotTreeNode>, options?: {
406
+ skipFormatEvent?: boolean;
407
+ onlyFormatEvents?: boolean;
408
+ iterateFn?: Function;
409
+ }): void;
410
+ /**
411
+ * Post-process data list with formatting event
412
+ *
413
+ * @param {PivotTreeNode} items - list of PivotTreeNode rows items
414
+ * @param {object} [options] - additional options
415
+ * @param {boolean} [options.skipFormatEvent] - process data list but skip format event trigger
416
+ * @param {boolean} [options.onlyFormatEvents] - process data list with format event
417
+ * trigger only
418
+ * @returns {void}
419
+ */
420
+ postProcessData(items: Array<PivotTreeNode>, options?: {
421
+ skipFormatEvent?: boolean;
422
+ onlyFormatEvents?: boolean;
423
+ }): void;
424
+ /**
425
+ * Modify tree structure for subtotals and grand totals and some customization
426
+ *
427
+ * @param {Array<PivotTreeNode>} items - base items to modify
428
+ * @param {string} type - items types to normalize
429
+ * @param {TreeNode} originalData - initial data object
430
+ * @returns {PivotTreeNode | Array<PivotTreeNode>} - normalized list of items
431
+ */
432
+ modifyTree(items: Array<PivotTreeNode>, type: string, originalData?: TreeNode): Array<PivotTreeNode>;
433
+ /**
434
+ * method calculates divergence by prev indexes
435
+ *
436
+ * @param {Array<PivotTreeNode>} items - data to modify divergence and apply
437
+ * @returns {void}
438
+ * @private
439
+ */
440
+ applyIndexDivergence(items: Array<PivotTreeNode>): void;
441
+ /**
442
+ * method creates plugin service instance for pivot
443
+ *
444
+ * @param {JaqlRequest} jaql - data to modify divergence and apply
445
+ * @returns {void}
446
+ * @private
447
+ */
448
+ initPluginService(jaql: JaqlRequest): void;
449
+ /**
450
+ * Cancel current loading process
451
+ *
452
+ * @returns {void}
453
+ */
454
+ cancelLoading(): void;
455
+ /**
456
+ * Returns final page size, excluding grand totals rows for example
457
+ *
458
+ * @returns {number} - page size
459
+ * @private
460
+ */
461
+ getPageSize(): number;
462
+ /**
463
+ *
464
+ * Send result for "loadData" function after promise resolve
465
+ *
466
+ * @param {number} loadedCount - count of already loaded rows
467
+ * @returns {{
468
+ * rowsTreeService: TreeServiceI,
469
+ * columnsTreeService: TreeServiceI,
470
+ * corner: TreeNode,
471
+ * values: TreeNode,
472
+ * cellsMetadata: Map<string, Metadata>
473
+ * }} - object with initial data
474
+ * @private
475
+ */
476
+ sendInitPage(loadedCount: number): InitPageData;
477
+ /**
478
+ * Sets Page Size and returns Tree Services
479
+ *
480
+ * @param {number} selected - page number -- STARTING FROM 0
481
+ * @param {number} [newPageSize] - set new pageSize
482
+ * @returns {{
483
+ * rowsTreeService: null,
484
+ * columnsTreeService: TreeServiceI,
485
+ * cornerTreeService: TreeServiceI,
486
+ * isLastPage: boolean
487
+ * }} - returns panel's treeServices
488
+ * @private
489
+ */
490
+ sendPaginatedPage(selected: number, newPageSize?: number): InitPageData;
491
+ /**
492
+ * Returns partial tree by indexes
493
+ *
494
+ * @param {number} paramFrom - start index
495
+ * @param {number} paramTo - stop index
496
+ * @param {boolean} lastPage - append grandTotals
497
+ * @returns {{
498
+ * rowsTreeService: TreeServiceI,
499
+ * columnsTreeService: TreeServiceI,
500
+ * cornerTreeService: TreeServiceI,
501
+ * isLastPage: boolean
502
+ * }} - returns panel's treeServices
503
+ * @private
504
+ */
505
+ sendPartialPage(paramFrom: number, paramTo: number, lastPage: boolean): InitPageData;
506
+ /**
507
+ *
508
+ * Get current state of tree (not recommended to use before 'loadData')
509
+ *
510
+ * @returns {number} loadedCount - current loaded count of children
511
+ * @private
512
+ */
513
+ getLoadedElementsCount(): number;
514
+ /**
515
+ * Returns total amount items count handled on back-end side
516
+ *
517
+ * @deprecated
518
+ * @returns {number} - items count
519
+ * @private
520
+ */
521
+ getTotalItemsCount(): number;
522
+ /**
523
+ * Getter for pivot table loaded columns number
524
+ *
525
+ * @deprecated
526
+ * @returns {number} loadedCount - current loaded pivot table columns count
527
+ * @private
528
+ */
529
+ getLoadedColumnsCount(): number;
530
+ /**
531
+ * Attach events to load service
532
+ * This is a key function implementing the Observer pattern
533
+ * DataService acts as Observer and subscribes its handlers to various
534
+ * data loading events emitted by the load service.
535
+ *
536
+ *
537
+ * @returns {void}
538
+ * @private
539
+ */
540
+ attachEvent(): void;
541
+ /**
542
+ * Dettach events from load service
543
+ *
544
+ * @returns {void}
545
+ * @private
546
+ */
547
+ detachEvent(): void;
548
+ /**
549
+ * Handler for pivot metadata received event
550
+ *
551
+ * @returns {void}
552
+ */
553
+ onMetadataHandler: () => void;
554
+ onHeadersHandler: (data: HeaderTreeNode) => void;
555
+ onDataHandler: (data: TreeNode | Array<TreeNode>) => void;
556
+ onGrandHandler: (data: TreeNode) => void;
557
+ onFinishHandler: () => void;
558
+ onTotalRowsHandler: (data: any) => void;
559
+ onDataBarsHandler: (chunk: any) => void;
560
+ onRangeMinMaxHandler: (chunk: any) => void;
561
+ onDataFinishHandler: ({ rowsCount }?: {
562
+ rowsCount?: number | undefined;
563
+ }) => void;
564
+ onErrorHandler: (data: any) => void;
565
+ /**
566
+ * Check for enough data loaded and resolve promise of "loadData" function
567
+ *
568
+ * @returns {void}
569
+ * @private
570
+ */
571
+ checkLoadPromise(): void;
572
+ /**
573
+ * @returns {void}
574
+ * @private
575
+ */
576
+ clearLoadAllPromise(): void;
577
+ /**
578
+ * @returns {void}
579
+ * @private
580
+ */
581
+ clearLoadPromise(): void;
582
+ /**
583
+ * Mark finish request
584
+ *
585
+ * @returns {void}
586
+ * @private
587
+ */
588
+ finishRequest(): void;
589
+ /**
590
+ * Clear internal cache in case new JAQL request send
591
+ *
592
+ * @returns {void}
593
+ * @private
594
+ */
595
+ clearCache(): void;
596
+ static getEmptyPage(): InitPageData;
597
+ static fillDataChunks(list: Array<NodesChunk>, node: TreeNode, firstMaxSize?: number, maxSize?: number): void;
598
+ static cloneTreeNode<T>(obj: T, skipChildren?: boolean): T;
599
+ /**
600
+ * @typedef {Function} buildColumnsTreeService
601
+ * @param {HeaderTreeNode} originalColumnsTree
602
+ * @returns {BuildColumnsTreeServiceResult}
603
+ */
604
+ /**
605
+ * @typedef {object} BuildColumnsTreeServiceResult
606
+ * @property {TreeNode|undefined} columnsTree
607
+ * @property {TreeService|undefined} columnsTreeService
608
+ * @property {number} columnsCount
609
+ * @property {number} totalColumnsCount
610
+ */
611
+ /**
612
+ * Creates builder function for building columns tree service
613
+ *
614
+ * @param {object} handlers - build handlers
615
+ * @param {Function} handlers.getJaql - jaql getter
616
+ * @param {Function} [handlers.getRawJaql] - raw jaql getter
617
+ * @param {PluginService} [handlers.pluginService] - plugin service
618
+ * @param {Function} [handlers.applyIndexDivergence] - helper for calculation indexes divergence
619
+ * @param {object} [events] - build event emitters
620
+ * @param {Function} events.emitHeaderCellFormatEvent - emits EVENT_HEADER_CELL_FORMAT event
621
+ * @returns {buildColumnsTreeService} - build function
622
+ */
623
+ static createColumnsTreeServiceBuilder(handlers: {
624
+ getJaql: () => JaqlRequest;
625
+ getRawJaql?: () => JaqlRequest;
626
+ pluginService?: PluginService;
627
+ applyIndexDivergence?: (items: Array<PivotTreeNode>) => void;
628
+ }, events?: {
629
+ emitHeaderCellFormatEvent: (item: PivotTreeNode, panel: JaqlPanel | undefined, jaql: JaqlRequest) => void;
630
+ }): (originalColumnsTree: HeaderTreeNode) => {
631
+ columnsTree: TreeNode | undefined;
632
+ columnsTreeService: TreeService | undefined;
633
+ columnsCount: number;
634
+ totalColumnsCount: number;
635
+ };
636
+ /**
637
+ * @typedef {Function} buildCornerTreeService
638
+ * @param {HeaderTreeNode} originalColumnsTree
639
+ * @returns {BuildCornerTreeServiceResult}
640
+ */
641
+ /**
642
+ * @typedef {object} BuildCornerTreeServiceResult
643
+ * @property {TreeNode|undefined} columnsTree
644
+ * @property {TreeService|undefined} columnsTreeService
645
+ * @property {number} columnsCount
646
+ * @property {number} totalColumnsCount
647
+ */
648
+ /**
649
+ * Creates builder function for building corners tree service
650
+ *
651
+ * @param {object} handlers - build handlers
652
+ * @param {Function} handlers.getJaql - jaql getter
653
+ * @param {Function} [handlers.getRawJaql] - raw jaql getter
654
+ * @param {PluginService} [handlers.pluginService] - plugin service
655
+ * @param {TreeServiceI} [handlers.columnsTreeService] - column tree service
656
+ * @param {object} [events] - build event emitters
657
+ * @param {Function} events.emitHeaderCellFormatEvent - emits EVENT_HEADER_CELL_FORMAT event
658
+ * @returns {buildCornerTreeService} - build function
659
+ */
660
+ static createCornerTreeServiceBuilder(handlers: {
661
+ getJaql: () => JaqlRequest;
662
+ getRawJaql?: () => JaqlRequest;
663
+ pluginService?: PluginService;
664
+ columnsTreeService?: TreeServiceI;
665
+ }, events?: {
666
+ emitHeaderCellFormatEvent: (item: PivotTreeNode, panel: JaqlPanel | undefined, jaql: JaqlRequest) => void;
667
+ }): () => {
668
+ cornerTree: TreeNode | undefined;
669
+ cornerTreeService: TreeService | undefined;
670
+ };
671
+ }
672
+ export default DataService;