@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,165 @@
|
|
|
1
|
+
import { PluginsPanelFields } from '../../constants.js';
|
|
2
|
+
/**
|
|
3
|
+
* Validate metadata by target type
|
|
4
|
+
*
|
|
5
|
+
* @param {DimensionTarget | ValueTarget} target - object of target rules
|
|
6
|
+
* @param {Array<DimensionMetadata | MeasureMetadata>} metadata - Array of cell metadata
|
|
7
|
+
* @param {DimensionOptions | MeasureOptions} options - array of fields to compare
|
|
8
|
+
* @returns {boolean} validation result
|
|
9
|
+
*/
|
|
10
|
+
// eslint-disable-next-line sonarjs/cognitive-complexity
|
|
11
|
+
function fieldsComparator(target, metadata, options) {
|
|
12
|
+
if (!metadata || !metadata.length) {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
return metadata.some((metadataItem) => {
|
|
16
|
+
let fieldsValid = true;
|
|
17
|
+
if (options && options.fields && options.fields.length) {
|
|
18
|
+
options.fields.forEach((field) => {
|
|
19
|
+
if (target[field] !== undefined && metadataItem[field] === undefined) {
|
|
20
|
+
fieldsValid = false;
|
|
21
|
+
}
|
|
22
|
+
else if (target[field] !== undefined && metadataItem[field] !== undefined) {
|
|
23
|
+
if (Array.isArray(target[field])) {
|
|
24
|
+
fieldsValid = fieldsValid && target[field].indexOf(metadataItem[field]) !== -1;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
fieldsValid = fieldsValid && target[field] === metadataItem[field];
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
return fieldsValid;
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Validate metadata by target type
|
|
37
|
+
*
|
|
38
|
+
* @param {Array<string>} target - types of cells
|
|
39
|
+
* @param {Array<string>} metadata - current cell type
|
|
40
|
+
* @returns {boolean} validation result
|
|
41
|
+
*/
|
|
42
|
+
const isValidType = (target, metadata = []) => {
|
|
43
|
+
let valid = false;
|
|
44
|
+
if (!metadata || !metadata.length) {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
if (target.length === 0) {
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
target.forEach((type) => {
|
|
51
|
+
if (metadata.includes(type)) {
|
|
52
|
+
valid = true;
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
return valid;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Validate metadata with target
|
|
59
|
+
*
|
|
60
|
+
* @param {DimensionTarget} target - target rows
|
|
61
|
+
* @param {Array<DimensionMetadata>} dimMetadata - array of rows or columns in metadata
|
|
62
|
+
* @returns {boolean} validation result
|
|
63
|
+
*/
|
|
64
|
+
const isValidDimension = (target, dimMetadata) => {
|
|
65
|
+
// validate by indexes || dimension & member || title
|
|
66
|
+
let valid = true;
|
|
67
|
+
if (!dimMetadata || !dimMetadata.length) {
|
|
68
|
+
valid = false;
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
target.forEach((dimTarget) => {
|
|
72
|
+
if (dimTarget.index) {
|
|
73
|
+
const currentPanel = dimMetadata[dimMetadata.length - 1];
|
|
74
|
+
valid =
|
|
75
|
+
valid &&
|
|
76
|
+
fieldsComparator(dimTarget, [currentPanel], { fields: [PluginsPanelFields.INDEX] });
|
|
77
|
+
}
|
|
78
|
+
if (dimTarget.dim) {
|
|
79
|
+
dimTarget.name = dimTarget.dim;
|
|
80
|
+
if (dimTarget.members) {
|
|
81
|
+
dimTarget.member = dimTarget.members;
|
|
82
|
+
}
|
|
83
|
+
valid =
|
|
84
|
+
valid &&
|
|
85
|
+
fieldsComparator(dimTarget, dimMetadata, {
|
|
86
|
+
fields: [PluginsPanelFields.NAME, PluginsPanelFields.MEMBER],
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
if (dimTarget.title) {
|
|
90
|
+
const currentPanel = dimMetadata[dimMetadata.length - 1];
|
|
91
|
+
valid =
|
|
92
|
+
valid &&
|
|
93
|
+
fieldsComparator(dimTarget, [currentPanel], { fields: [PluginsPanelFields.TITLE] });
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
return valid;
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* Validate metadata with target
|
|
101
|
+
*
|
|
102
|
+
* @param {ValueTarget} target - target rows
|
|
103
|
+
* @param {MeasureMetadata} measureMetadata - array of rows or columns in metadata
|
|
104
|
+
* @returns {boolean} validation result
|
|
105
|
+
*/
|
|
106
|
+
const isValidMeasure = (target, measureMetadata) => {
|
|
107
|
+
// validate by indexes || dimension & member || title
|
|
108
|
+
let valid = true;
|
|
109
|
+
if (!measureMetadata || !measureMetadata.length) {
|
|
110
|
+
valid = false;
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
target.forEach((measureTarget) => {
|
|
114
|
+
if (measureTarget.index) {
|
|
115
|
+
valid =
|
|
116
|
+
valid &&
|
|
117
|
+
fieldsComparator(measureTarget, measureMetadata, { fields: [PluginsPanelFields.INDEX] });
|
|
118
|
+
}
|
|
119
|
+
if (measureTarget.dim) {
|
|
120
|
+
measureTarget.name = measureTarget.dim;
|
|
121
|
+
valid =
|
|
122
|
+
valid &&
|
|
123
|
+
fieldsComparator(measureTarget, measureMetadata, {
|
|
124
|
+
fields: [PluginsPanelFields.DIM, PluginsPanelFields.AGG],
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
if (measureTarget.title) {
|
|
128
|
+
valid =
|
|
129
|
+
valid &&
|
|
130
|
+
fieldsComparator(measureTarget, measureMetadata, { fields: [PluginsPanelFields.TITLE] });
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
return valid;
|
|
135
|
+
};
|
|
136
|
+
/**
|
|
137
|
+
* Collect and return rows or columns group metadata
|
|
138
|
+
*
|
|
139
|
+
* @param {Target} target - target rows
|
|
140
|
+
* @param {Metadata} metadata - array of rows in metadata
|
|
141
|
+
* @returns {boolean} validation result
|
|
142
|
+
*/
|
|
143
|
+
// eslint-disable-next-line sonarjs/cognitive-complexity
|
|
144
|
+
export const validate = (target, metadata) => {
|
|
145
|
+
let valid = true;
|
|
146
|
+
if (target.type && valid) {
|
|
147
|
+
valid = valid && isValidType(target.type, metadata.type);
|
|
148
|
+
}
|
|
149
|
+
if (target.rows && target.rows.length && valid) {
|
|
150
|
+
const rows = metadata.rows ? metadata.rows : [];
|
|
151
|
+
valid = valid && isValidDimension(target.rows, rows);
|
|
152
|
+
}
|
|
153
|
+
if (target.columns && valid) {
|
|
154
|
+
const columns = metadata.columns ? metadata.columns : [];
|
|
155
|
+
valid = valid && isValidDimension(target.columns, columns);
|
|
156
|
+
}
|
|
157
|
+
if (target.values && valid) {
|
|
158
|
+
const measure = metadata.measure ? [metadata.measure] : [];
|
|
159
|
+
valid = valid && isValidMeasure(target.values, measure);
|
|
160
|
+
}
|
|
161
|
+
return valid;
|
|
162
|
+
};
|
|
163
|
+
export default {
|
|
164
|
+
validate,
|
|
165
|
+
};
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
+
import EventEmitter from 'events';
|
|
4
|
+
import { DataLoadServiceI, JaqlRequest } from './types.js';
|
|
5
|
+
declare type DataCache = {
|
|
6
|
+
[key: string]: any;
|
|
7
|
+
};
|
|
8
|
+
declare type LoadState = {
|
|
9
|
+
[key: string]: number;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Initiate single socket connection and creates new PivotDataSource for each JAQL request
|
|
13
|
+
*/
|
|
14
|
+
export declare class AbstractDataLoadService implements DataLoadServiceI {
|
|
15
|
+
/**
|
|
16
|
+
*
|
|
17
|
+
* @private
|
|
18
|
+
*
|
|
19
|
+
* EventEmitter instance
|
|
20
|
+
*/
|
|
21
|
+
events: EventEmitter;
|
|
22
|
+
/**
|
|
23
|
+
* @private
|
|
24
|
+
*
|
|
25
|
+
* jaql request object
|
|
26
|
+
*/
|
|
27
|
+
jaql?: JaqlRequest;
|
|
28
|
+
/**
|
|
29
|
+
* @private
|
|
30
|
+
*
|
|
31
|
+
* cache object
|
|
32
|
+
*/
|
|
33
|
+
data?: DataCache;
|
|
34
|
+
/**
|
|
35
|
+
* @private
|
|
36
|
+
*
|
|
37
|
+
* state for "load" method
|
|
38
|
+
*/
|
|
39
|
+
isLoadInProgress: boolean;
|
|
40
|
+
/**
|
|
41
|
+
@private */
|
|
42
|
+
loadPromiseResolve?: Function;
|
|
43
|
+
/**
|
|
44
|
+
*
|
|
45
|
+
* @private
|
|
46
|
+
*/
|
|
47
|
+
loadPromiseReject?: Function;
|
|
48
|
+
/**
|
|
49
|
+
* @private
|
|
50
|
+
*
|
|
51
|
+
* info about amount of data which already loaded from cache
|
|
52
|
+
*/
|
|
53
|
+
loadFromCacheState?: LoadState;
|
|
54
|
+
/**
|
|
55
|
+
@private */
|
|
56
|
+
loadFromCacheInitialTimer?: NodeJS.Timeout;
|
|
57
|
+
/**
|
|
58
|
+
@private */
|
|
59
|
+
loadFromCacheTimer?: NodeJS.Immediate;
|
|
60
|
+
/**
|
|
61
|
+
* @private
|
|
62
|
+
*
|
|
63
|
+
* defines initial pivot data structure
|
|
64
|
+
*/
|
|
65
|
+
isSingleBranchTree: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* @private
|
|
68
|
+
*
|
|
69
|
+
* items count loaded on client side
|
|
70
|
+
*/
|
|
71
|
+
loadedItemsCount: number;
|
|
72
|
+
/**
|
|
73
|
+
* @private
|
|
74
|
+
*
|
|
75
|
+
* total items count on back-end side
|
|
76
|
+
*/
|
|
77
|
+
totalItemsCount: number;
|
|
78
|
+
/**
|
|
79
|
+
* @private
|
|
80
|
+
*
|
|
81
|
+
* defines if amount of data was limited on back-end or not
|
|
82
|
+
*/
|
|
83
|
+
isLimited: boolean;
|
|
84
|
+
/**
|
|
85
|
+
* @private
|
|
86
|
+
*
|
|
87
|
+
* detects if finish event was received
|
|
88
|
+
*/
|
|
89
|
+
isFinishEventReceived: boolean;
|
|
90
|
+
constructor(events?: EventEmitter);
|
|
91
|
+
/**
|
|
92
|
+
* Destroys data load service
|
|
93
|
+
*
|
|
94
|
+
* @returns {void}
|
|
95
|
+
*/
|
|
96
|
+
destroy(): void;
|
|
97
|
+
/**
|
|
98
|
+
* Return copy of load service
|
|
99
|
+
*
|
|
100
|
+
* @returns {DataLoadService} - cloned instance
|
|
101
|
+
*/
|
|
102
|
+
clone(): DataLoadServiceI;
|
|
103
|
+
/**
|
|
104
|
+
* Start data loading according to JAQL request
|
|
105
|
+
*
|
|
106
|
+
* @param {JaqlRequest} jaql - JAQL request
|
|
107
|
+
* @returns {Promise<any>} - whole data loading promise
|
|
108
|
+
*/
|
|
109
|
+
load(jaql: JaqlRequest): Promise<any>;
|
|
110
|
+
/**
|
|
111
|
+
* Clear data cache
|
|
112
|
+
*
|
|
113
|
+
* @returns {void}
|
|
114
|
+
*/
|
|
115
|
+
clear(): void;
|
|
116
|
+
/**
|
|
117
|
+
* Returns current jaql request object
|
|
118
|
+
*
|
|
119
|
+
* @returns {JaqlRequest} - jaql request object
|
|
120
|
+
*/
|
|
121
|
+
getJaql(): JaqlRequest | undefined;
|
|
122
|
+
/**
|
|
123
|
+
* Defines data structure
|
|
124
|
+
*
|
|
125
|
+
* @returns {boolean} - true - single branch tree
|
|
126
|
+
*/
|
|
127
|
+
isSingleRowTree(): boolean;
|
|
128
|
+
/**
|
|
129
|
+
* Returns total amount items count handled on back-end side
|
|
130
|
+
*
|
|
131
|
+
* @returns {number} - items count
|
|
132
|
+
*/
|
|
133
|
+
getTotalItemsCount(): number;
|
|
134
|
+
/**
|
|
135
|
+
* Defines if new jaql has only formatting changes or it requires new data loading from server
|
|
136
|
+
*
|
|
137
|
+
* @param {JaqlRequest} jaql - jaql request object
|
|
138
|
+
* @returns {boolean} - true - only formatting changes, can use cached data
|
|
139
|
+
*/
|
|
140
|
+
isFormattingChanges(jaql?: JaqlRequest): boolean;
|
|
141
|
+
/**
|
|
142
|
+
* Defines if service have some data
|
|
143
|
+
*
|
|
144
|
+
* @returns {boolean} - true - has some data
|
|
145
|
+
*/
|
|
146
|
+
hasData(): boolean;
|
|
147
|
+
/**
|
|
148
|
+
* Defines if service have some error
|
|
149
|
+
*
|
|
150
|
+
* @returns {boolean} - true - has some error
|
|
151
|
+
*/
|
|
152
|
+
hasError(): boolean;
|
|
153
|
+
/**
|
|
154
|
+
* Start data loading from the server
|
|
155
|
+
*
|
|
156
|
+
* @returns {void}
|
|
157
|
+
* @private
|
|
158
|
+
*/
|
|
159
|
+
loadFromServer(): void;
|
|
160
|
+
/**
|
|
161
|
+
* Method for canceling the processing of query already sent
|
|
162
|
+
*
|
|
163
|
+
* @returns {Promise<void>} - waiting promise
|
|
164
|
+
*/
|
|
165
|
+
cancelQuery(): Promise<void>;
|
|
166
|
+
/**
|
|
167
|
+
* Method for detection if cancel query is still needed
|
|
168
|
+
*
|
|
169
|
+
* @returns {boolean} - is cancel query needed
|
|
170
|
+
*/
|
|
171
|
+
isCancelQueryNeeded(): boolean;
|
|
172
|
+
/**
|
|
173
|
+
* Start data loading from the cache
|
|
174
|
+
*
|
|
175
|
+
* @returns {Promise<void>} - waiting promise
|
|
176
|
+
* @private
|
|
177
|
+
*/
|
|
178
|
+
loadFromCache(): Promise<void>;
|
|
179
|
+
/**
|
|
180
|
+
* Starts loading data from cache queue
|
|
181
|
+
*
|
|
182
|
+
* @param {Function} onFinish - on finish callback
|
|
183
|
+
* @returns {void}
|
|
184
|
+
* @private
|
|
185
|
+
*/
|
|
186
|
+
loadMessageFromCache(onFinish: () => void): void;
|
|
187
|
+
/**
|
|
188
|
+
* Cache appropriate message
|
|
189
|
+
*
|
|
190
|
+
* @param {string} type - message type
|
|
191
|
+
* @param {any} data - message payload
|
|
192
|
+
* @returns {void}
|
|
193
|
+
* @private
|
|
194
|
+
*/
|
|
195
|
+
cacheData(type: string, data?: any): void;
|
|
196
|
+
/**
|
|
197
|
+
* Notify outside about data chunk with saving to inner cache, applying chunk formatting with
|
|
198
|
+
* saving initial messages queue
|
|
199
|
+
*
|
|
200
|
+
* @param {string} type - data chunk type
|
|
201
|
+
* @param {any} chunk - data chunk data
|
|
202
|
+
* @param {boolean} isFromCache - mark data which already was cached
|
|
203
|
+
* @returns {void}
|
|
204
|
+
* @private
|
|
205
|
+
*/
|
|
206
|
+
notifyAboutDataChunk(type: string, chunk?: any, isFromCache?: boolean): void;
|
|
207
|
+
/**
|
|
208
|
+
* Resolve "load" method with appropriate data information
|
|
209
|
+
*
|
|
210
|
+
* @param {any} data - data to resolve with
|
|
211
|
+
* @returns {void}
|
|
212
|
+
* @private
|
|
213
|
+
*/
|
|
214
|
+
notifyAboutDataLoaded(data?: any): void;
|
|
215
|
+
/**
|
|
216
|
+
* Reject "load" method with appropriate data information
|
|
217
|
+
*
|
|
218
|
+
* @param {any} data - data to reject with
|
|
219
|
+
* @returns {void}
|
|
220
|
+
* @private
|
|
221
|
+
*/
|
|
222
|
+
notifyAboutDataError(data?: any): void;
|
|
223
|
+
/**
|
|
224
|
+
* Subscribe to event notification
|
|
225
|
+
*
|
|
226
|
+
* @param {string} eventName - event name to subscribe
|
|
227
|
+
* @param {Function} callback - event handler
|
|
228
|
+
* @returns {void}
|
|
229
|
+
*/
|
|
230
|
+
on(eventName: string, callback: (payload: any) => void): void;
|
|
231
|
+
/**
|
|
232
|
+
* Unsubscribe from event notification
|
|
233
|
+
*
|
|
234
|
+
* @param {string} eventName - event name to unsubscribe
|
|
235
|
+
* @param {Function} callback - event handler
|
|
236
|
+
* @returns {void}
|
|
237
|
+
*/
|
|
238
|
+
off(eventName: string, callback: (payload: any) => void): void;
|
|
239
|
+
/**
|
|
240
|
+
* Unsubscribe from all event notifications
|
|
241
|
+
*
|
|
242
|
+
* @param {string} eventName - event name to unsubscribe
|
|
243
|
+
* @returns {void}
|
|
244
|
+
*/
|
|
245
|
+
offAll(eventName: string): void;
|
|
246
|
+
listenerCount(eventName: string): number;
|
|
247
|
+
/**
|
|
248
|
+
* Trigger event notification
|
|
249
|
+
*
|
|
250
|
+
* @param {string} eventName - event name to subscribe
|
|
251
|
+
* @param {Array<any>} rest - arguments will be passed to event handler
|
|
252
|
+
* @returns {void}
|
|
253
|
+
*/
|
|
254
|
+
emit(eventName: string, ...rest: Array<any>): void;
|
|
255
|
+
}
|
|
256
|
+
export default AbstractDataLoadService;
|