@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.
- package/LICENSE.md +35 -0
- package/README.md +2 -0
- package/dist/__test-helpers__/testUtils.d.ts +30 -0
- package/dist/__test-helpers__/testUtils.js +89 -0
- package/dist/builders/index.d.ts +2 -0
- package/dist/builders/index.js +2 -0
- package/dist/builders/pivot-data-builder.d.ts +34 -0
- package/dist/builders/pivot-data-builder.js +182 -0
- package/dist/builders/socket-builder.d.ts +18 -0
- package/dist/builders/socket-builder.js +72 -0
- package/dist/cjs/__test-helpers__/testUtils.d.ts +30 -0
- package/dist/cjs/__test-helpers__/testUtils.js +104 -0
- package/dist/cjs/builders/index.d.ts +2 -0
- package/dist/cjs/builders/index.js +7 -0
- package/dist/cjs/builders/pivot-data-builder.d.ts +34 -0
- package/dist/cjs/builders/pivot-data-builder.js +186 -0
- package/dist/cjs/builders/socket-builder.d.ts +18 -0
- package/dist/cjs/builders/socket-builder.js +79 -0
- package/dist/cjs/data-handling/DataService.d.ts +672 -0
- package/dist/cjs/data-handling/DataService.js +1364 -0
- package/dist/cjs/data-handling/DivergenceComparator.d.ts +7 -0
- package/dist/cjs/data-handling/DivergenceComparator.js +20 -0
- package/dist/cjs/data-handling/constants.d.ts +44 -0
- package/dist/cjs/data-handling/constants.js +43 -0
- package/dist/cjs/data-handling/index.d.ts +3 -0
- package/dist/cjs/data-handling/index.js +23 -0
- package/dist/cjs/data-handling/types.d.ts +104 -0
- package/dist/cjs/data-handling/types.js +2 -0
- package/dist/cjs/data-handling/utils/createPivotTreeNode.d.ts +13 -0
- package/dist/cjs/data-handling/utils/createPivotTreeNode.js +21 -0
- package/dist/cjs/data-handling/utils/index.d.ts +4 -0
- package/dist/cjs/data-handling/utils/index.js +14 -0
- package/dist/cjs/data-handling/utils/jaqlProcessor.d.ts +122 -0
- package/dist/cjs/data-handling/utils/jaqlProcessor.js +661 -0
- package/dist/cjs/data-handling/utils/pivotTransforms.d.ts +74 -0
- package/dist/cjs/data-handling/utils/pivotTransforms.js +373 -0
- package/dist/cjs/data-handling/utils/plugins/PluginService.d.ts +135 -0
- package/dist/cjs/data-handling/utils/plugins/PluginService.js +383 -0
- package/dist/cjs/data-handling/utils/plugins/getters.d.ts +23 -0
- package/dist/cjs/data-handling/utils/plugins/getters.js +70 -0
- package/dist/cjs/data-handling/utils/plugins/types.d.ts +75 -0
- package/dist/cjs/data-handling/utils/plugins/types.js +2 -0
- package/dist/cjs/data-handling/utils/plugins/validator.d.ts +13 -0
- package/dist/cjs/data-handling/utils/plugins/validator.js +169 -0
- package/dist/cjs/data-load/AbstractDataLoadService.d.ts +256 -0
- package/dist/cjs/data-load/AbstractDataLoadService.js +473 -0
- package/dist/cjs/data-load/DataLoadService.d.ts +63 -0
- package/dist/cjs/data-load/DataLoadService.js +152 -0
- package/dist/cjs/data-load/SisenseDataLoadService.d.ts +44 -0
- package/dist/cjs/data-load/SisenseDataLoadService.js +87 -0
- package/dist/cjs/data-load/TestDataLoadService.d.ts +27 -0
- package/dist/cjs/data-load/TestDataLoadService.js +76 -0
- package/dist/cjs/data-load/constants.d.ts +13 -0
- package/dist/cjs/data-load/constants.js +28 -0
- package/dist/cjs/data-load/index.d.ts +6 -0
- package/dist/cjs/data-load/index.js +14 -0
- package/dist/cjs/data-load/sockets/SisenseSocket.d.ts +81 -0
- package/dist/cjs/data-load/sockets/SisenseSocket.js +162 -0
- package/dist/cjs/data-load/sockets/TestSocket.d.ts +61 -0
- package/dist/cjs/data-load/sockets/TestSocket.js +90 -0
- package/dist/cjs/data-load/sockets/helpers.d.ts +4 -0
- package/dist/cjs/data-load/sockets/helpers.js +27 -0
- package/dist/cjs/data-load/sockets/index.d.ts +2 -0
- package/dist/cjs/data-load/sockets/index.js +8 -0
- package/dist/cjs/data-load/types.d.ts +90 -0
- package/dist/cjs/data-load/types.js +2 -0
- package/dist/cjs/errors/LoadingCanceledError.d.ts +7 -0
- package/dist/cjs/errors/LoadingCanceledError.js +24 -0
- package/dist/cjs/errors/index.d.ts +1 -0
- package/dist/cjs/errors/index.js +6 -0
- package/dist/cjs/index.d.ts +17 -0
- package/dist/cjs/index.js +32 -0
- package/dist/cjs/package.json +12 -0
- package/dist/cjs/pivot-query-client.d.ts +13 -0
- package/dist/cjs/pivot-query-client.js +26 -0
- package/dist/cjs/tree-structure/AbstractTreeService.d.ts +308 -0
- package/dist/cjs/tree-structure/AbstractTreeService.js +716 -0
- package/dist/cjs/tree-structure/HeaderTreeService.d.ts +180 -0
- package/dist/cjs/tree-structure/HeaderTreeService.js +280 -0
- package/dist/cjs/tree-structure/TreeCellMap.d.ts +104 -0
- package/dist/cjs/tree-structure/TreeCellMap.js +145 -0
- package/dist/cjs/tree-structure/TreeService.d.ts +8 -0
- package/dist/cjs/tree-structure/TreeService.js +12 -0
- package/dist/cjs/tree-structure/constants.d.ts +6 -0
- package/dist/cjs/tree-structure/constants.js +10 -0
- package/dist/cjs/tree-structure/index.d.ts +5 -0
- package/dist/cjs/tree-structure/index.js +10 -0
- package/dist/cjs/tree-structure/types.d.ts +93 -0
- package/dist/cjs/tree-structure/types.js +2 -0
- package/dist/cjs/tree-structure/utils/index.d.ts +1 -0
- package/dist/cjs/tree-structure/utils/index.js +9 -0
- package/dist/cjs/tree-structure/utils/treeNode.d.ts +147 -0
- package/dist/cjs/tree-structure/utils/treeNode.js +534 -0
- package/dist/cjs/utils/array.d.ts +13 -0
- package/dist/cjs/utils/array.js +25 -0
- package/dist/cjs/utils/cloneObject.d.ts +30 -0
- package/dist/cjs/utils/cloneObject.js +225 -0
- package/dist/cjs/utils/index.d.ts +3 -0
- package/dist/cjs/utils/index.js +9 -0
- package/dist/cjs/utils/throttle.d.ts +12 -0
- package/dist/cjs/utils/throttle.js +39 -0
- package/dist/cjs/utils/types.d.ts +12 -0
- package/dist/cjs/utils/types.js +2 -0
- package/dist/data-handling/DataService.d.ts +672 -0
- package/dist/data-handling/DataService.js +1357 -0
- package/dist/data-handling/DivergenceComparator.d.ts +7 -0
- package/dist/data-handling/DivergenceComparator.js +16 -0
- package/dist/data-handling/constants.d.ts +44 -0
- package/dist/data-handling/constants.js +40 -0
- package/dist/data-handling/index.d.ts +3 -0
- package/dist/data-handling/index.js +4 -0
- package/dist/data-handling/types.d.ts +104 -0
- package/dist/data-handling/types.js +1 -0
- package/dist/data-handling/utils/createPivotTreeNode.d.ts +13 -0
- package/dist/data-handling/utils/createPivotTreeNode.js +17 -0
- package/dist/data-handling/utils/index.d.ts +4 -0
- package/dist/data-handling/utils/index.js +4 -0
- package/dist/data-handling/utils/jaqlProcessor.d.ts +122 -0
- package/dist/data-handling/utils/jaqlProcessor.js +621 -0
- package/dist/data-handling/utils/pivotTransforms.d.ts +74 -0
- package/dist/data-handling/utils/pivotTransforms.js +335 -0
- package/dist/data-handling/utils/plugins/PluginService.d.ts +135 -0
- package/dist/data-handling/utils/plugins/PluginService.js +379 -0
- package/dist/data-handling/utils/plugins/getters.d.ts +23 -0
- package/dist/data-handling/utils/plugins/getters.js +65 -0
- package/dist/data-handling/utils/plugins/types.d.ts +75 -0
- package/dist/data-handling/utils/plugins/types.js +1 -0
- package/dist/data-handling/utils/plugins/validator.d.ts +13 -0
- package/dist/data-handling/utils/plugins/validator.js +165 -0
- package/dist/data-load/AbstractDataLoadService.d.ts +256 -0
- package/dist/data-load/AbstractDataLoadService.js +466 -0
- package/dist/data-load/DataLoadService.d.ts +63 -0
- package/dist/data-load/DataLoadService.js +148 -0
- package/dist/data-load/SisenseDataLoadService.d.ts +44 -0
- package/dist/data-load/SisenseDataLoadService.js +83 -0
- package/dist/data-load/TestDataLoadService.d.ts +27 -0
- package/dist/data-load/TestDataLoadService.js +69 -0
- package/dist/data-load/constants.d.ts +13 -0
- package/dist/data-load/constants.js +25 -0
- package/dist/data-load/index.d.ts +6 -0
- package/dist/data-load/index.js +6 -0
- package/dist/data-load/sockets/SisenseSocket.d.ts +81 -0
- package/dist/data-load/sockets/SisenseSocket.js +155 -0
- package/dist/data-load/sockets/TestSocket.d.ts +61 -0
- package/dist/data-load/sockets/TestSocket.js +83 -0
- package/dist/data-load/sockets/helpers.d.ts +4 -0
- package/dist/data-load/sockets/helpers.js +23 -0
- package/dist/data-load/sockets/index.d.ts +2 -0
- package/dist/data-load/sockets/index.js +3 -0
- package/dist/data-load/types.d.ts +90 -0
- package/dist/data-load/types.js +1 -0
- package/dist/errors/LoadingCanceledError.d.ts +7 -0
- package/dist/errors/LoadingCanceledError.js +20 -0
- package/dist/errors/index.d.ts +1 -0
- package/dist/errors/index.js +2 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.js +9 -0
- package/dist/pivot-query-client.d.ts +13 -0
- package/dist/pivot-query-client.js +22 -0
- package/dist/tree-structure/AbstractTreeService.d.ts +308 -0
- package/dist/tree-structure/AbstractTreeService.js +712 -0
- package/dist/tree-structure/HeaderTreeService.d.ts +180 -0
- package/dist/tree-structure/HeaderTreeService.js +276 -0
- package/dist/tree-structure/TreeCellMap.d.ts +104 -0
- package/dist/tree-structure/TreeCellMap.js +141 -0
- package/dist/tree-structure/TreeService.d.ts +8 -0
- package/dist/tree-structure/TreeService.js +8 -0
- package/dist/tree-structure/constants.d.ts +6 -0
- package/dist/tree-structure/constants.js +7 -0
- package/dist/tree-structure/index.d.ts +5 -0
- package/dist/tree-structure/index.js +4 -0
- package/dist/tree-structure/types.d.ts +93 -0
- package/dist/tree-structure/types.js +1 -0
- package/dist/tree-structure/utils/index.d.ts +1 -0
- package/dist/tree-structure/utils/index.js +1 -0
- package/dist/tree-structure/utils/treeNode.d.ts +147 -0
- package/dist/tree-structure/utils/treeNode.js +515 -0
- package/dist/tsconfig.prod.cjs.tsbuildinfo +1 -0
- package/dist/utils/array.d.ts +13 -0
- package/dist/utils/array.js +21 -0
- package/dist/utils/cloneObject.d.ts +30 -0
- package/dist/utils/cloneObject.js +221 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/throttle.d.ts +12 -0
- package/dist/utils/throttle.js +35 -0
- package/dist/utils/types.d.ts +12 -0
- package/dist/utils/types.js +1 -0
- 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;
|