@cubejs-client/ngx 0.28.51 → 0.29.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/CHANGELOG.md +16 -0
- package/dist/bundles/cubejs-client-ngx.umd.js +106 -639
- package/dist/bundles/cubejs-client-ngx.umd.js.map +1 -1
- package/dist/esm2015/cubejs-client-ngx.js +2 -7
- package/dist/esm2015/index.js +2 -7
- package/dist/esm2015/src/client.js +18 -77
- package/dist/esm2015/src/module.js +2 -10
- package/dist/esm2015/src/public_api.js +8 -13
- package/dist/esm2015/src/query-builder/builder-meta.js +7 -46
- package/dist/esm2015/src/query-builder/chart-type.js +1 -9
- package/dist/esm2015/src/query-builder/common.js +1 -23
- package/dist/esm2015/src/query-builder/pivot-config.js +1 -20
- package/dist/esm2015/src/query-builder/query-builder.service.js +23 -156
- package/dist/esm2015/src/query-builder/query-members.js +29 -275
- package/dist/esm2015/src/query-builder/query.js +11 -68
- package/dist/fesm2015/cubejs-client-ngx.js +88 -686
- package/dist/fesm2015/cubejs-client-ngx.js.map +1 -1
- package/dist/src/query-builder/query-members.d.ts +1 -1
- package/package.json +17 -19
- package/dist/CHANGELOG.md +0 -914
- package/dist/bundles/cubejs-client-ngx.umd.min.js +0 -2
- package/dist/bundles/cubejs-client-ngx.umd.min.js.map +0 -1
|
@@ -5,47 +5,28 @@ import cubejs, { moveItemInArray, isQueryPresent, movePivotItem, ResultSet, defa
|
|
|
5
5
|
import { switchMap, catchError } from 'rxjs/operators';
|
|
6
6
|
import equal from 'fast-deep-equal';
|
|
7
7
|
|
|
8
|
-
/**
|
|
9
|
-
* @fileoverview added by tsickle
|
|
10
|
-
* Generated from: src/client.ts
|
|
11
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
12
|
-
*/
|
|
13
8
|
class CubejsClient {
|
|
14
|
-
/**
|
|
15
|
-
* @param {?} config
|
|
16
|
-
*/
|
|
17
9
|
constructor(config) {
|
|
18
10
|
this.config = config;
|
|
19
11
|
this.ready$ = new BehaviorSubject(false);
|
|
20
12
|
if (this.config instanceof Observable) {
|
|
21
|
-
this.config.subscribe((
|
|
22
|
-
* @return {?}
|
|
23
|
-
*/
|
|
24
|
-
() => {
|
|
13
|
+
this.config.subscribe(() => {
|
|
25
14
|
this.ready$.next(true);
|
|
26
|
-
})
|
|
15
|
+
});
|
|
27
16
|
}
|
|
28
17
|
else {
|
|
29
18
|
this.ready$.next(true);
|
|
30
19
|
}
|
|
31
20
|
}
|
|
32
|
-
/**
|
|
33
|
-
* @private
|
|
34
|
-
* @return {?}
|
|
35
|
-
*/
|
|
36
21
|
apiInstace() {
|
|
37
22
|
if (!this.cubeJsApi) {
|
|
38
23
|
if (this.config instanceof Observable) {
|
|
39
|
-
this.config.subscribe((
|
|
40
|
-
* @param {?} config
|
|
41
|
-
* @return {?}
|
|
42
|
-
*/
|
|
43
|
-
(config) => {
|
|
24
|
+
this.config.subscribe((config) => {
|
|
44
25
|
this.cubeJsApi = cubejs(config.token, config.options);
|
|
45
26
|
if (!this.cubeJsApi) {
|
|
46
27
|
throw new Error('Cannot create CubejsApi instance. Please check that the config is passed correctly and contains all required options.');
|
|
47
28
|
}
|
|
48
|
-
})
|
|
29
|
+
});
|
|
49
30
|
}
|
|
50
31
|
else {
|
|
51
32
|
this.cubeJsApi = cubejs(this.config.token, this.config.options);
|
|
@@ -53,92 +34,43 @@ class CubejsClient {
|
|
|
53
34
|
}
|
|
54
35
|
return this.cubeJsApi;
|
|
55
36
|
}
|
|
56
|
-
/**
|
|
57
|
-
* @param {?} query
|
|
58
|
-
* @param {?=} options
|
|
59
|
-
* @return {?}
|
|
60
|
-
*/
|
|
61
37
|
load(query, options) {
|
|
62
|
-
return from(
|
|
38
|
+
return from(this.apiInstace().load(query, options));
|
|
63
39
|
}
|
|
64
|
-
/**
|
|
65
|
-
* @param {?} query
|
|
66
|
-
* @param {?=} options
|
|
67
|
-
* @return {?}
|
|
68
|
-
*/
|
|
69
40
|
sql(query, options) {
|
|
70
41
|
return from(this.apiInstace().sql(query, options));
|
|
71
42
|
}
|
|
72
|
-
/**
|
|
73
|
-
* @param {?} query
|
|
74
|
-
* @param {?=} options
|
|
75
|
-
* @return {?}
|
|
76
|
-
*/
|
|
77
43
|
dryRun(query, options) {
|
|
78
44
|
return from(this.apiInstace().dryRun(query, options));
|
|
79
45
|
}
|
|
80
|
-
/**
|
|
81
|
-
* @param {?=} options
|
|
82
|
-
* @return {?}
|
|
83
|
-
*/
|
|
84
46
|
meta(options) {
|
|
85
47
|
return from(this.apiInstace().meta(options));
|
|
86
48
|
}
|
|
87
|
-
/**
|
|
88
|
-
* @param {?} query
|
|
89
|
-
* @param {?=} params
|
|
90
|
-
* @return {?}
|
|
91
|
-
*/
|
|
92
49
|
watch(query, params = {}) {
|
|
93
|
-
return new Observable((
|
|
94
|
-
|
|
95
|
-
* @return {?}
|
|
96
|
-
*/
|
|
97
|
-
(observer) => query.subscribe({
|
|
98
|
-
next: (/**
|
|
99
|
-
* @param {?} query
|
|
100
|
-
* @return {?}
|
|
101
|
-
*/
|
|
102
|
-
(query) => __awaiter(this, void 0, void 0, function* () {
|
|
103
|
-
/** @type {?} */
|
|
50
|
+
return new Observable((observer) => query.subscribe({
|
|
51
|
+
next: (query) => __awaiter(this, void 0, void 0, function* () {
|
|
104
52
|
const resultSet = yield this.apiInstace().load(query, params);
|
|
105
53
|
observer.next(resultSet);
|
|
106
|
-
})
|
|
107
|
-
}))
|
|
54
|
+
}),
|
|
55
|
+
}));
|
|
108
56
|
}
|
|
109
57
|
}
|
|
58
|
+
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
|
|
110
59
|
CubejsClient.decorators = [
|
|
111
60
|
{ type: Injectable }
|
|
112
61
|
];
|
|
113
|
-
/**
|
|
62
|
+
/**
|
|
63
|
+
* @type {function(): !Array<(null|{
|
|
64
|
+
* type: ?,
|
|
65
|
+
* decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>),
|
|
66
|
+
* })>}
|
|
67
|
+
* @nocollapse
|
|
68
|
+
*/
|
|
114
69
|
CubejsClient.ctorParameters = () => [
|
|
115
70
|
{ type: undefined, decorators: [{ type: Inject, args: ['config',] }] }
|
|
116
71
|
];
|
|
117
|
-
if (false) {
|
|
118
|
-
/** @type {?} */
|
|
119
|
-
CubejsClient.prototype.ready$;
|
|
120
|
-
/**
|
|
121
|
-
* @type {?}
|
|
122
|
-
* @private
|
|
123
|
-
*/
|
|
124
|
-
CubejsClient.prototype.cubeJsApi;
|
|
125
|
-
/**
|
|
126
|
-
* @type {?}
|
|
127
|
-
* @private
|
|
128
|
-
*/
|
|
129
|
-
CubejsClient.prototype.config;
|
|
130
|
-
}
|
|
131
72
|
|
|
132
|
-
/**
|
|
133
|
-
* @fileoverview added by tsickle
|
|
134
|
-
* Generated from: src/module.ts
|
|
135
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
136
|
-
*/
|
|
137
73
|
class CubejsClientModule {
|
|
138
|
-
/**
|
|
139
|
-
* @param {?} config
|
|
140
|
-
* @return {?}
|
|
141
|
-
*/
|
|
142
74
|
static forRoot(config) {
|
|
143
75
|
return {
|
|
144
76
|
ngModule: CubejsClientModule,
|
|
@@ -152,189 +84,85 @@ class CubejsClientModule {
|
|
|
152
84
|
};
|
|
153
85
|
}
|
|
154
86
|
}
|
|
87
|
+
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
|
|
155
88
|
CubejsClientModule.decorators = [
|
|
156
89
|
{ type: NgModule, args: [{
|
|
157
90
|
providers: [CubejsClient],
|
|
158
91
|
},] }
|
|
159
92
|
];
|
|
160
93
|
|
|
161
|
-
/**
|
|
162
|
-
* @fileoverview added by tsickle
|
|
163
|
-
* Generated from: src/query-builder/common.ts
|
|
164
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
165
|
-
*/
|
|
166
|
-
/**
|
|
167
|
-
* @template T
|
|
168
|
-
*/
|
|
169
94
|
class StateSubject {
|
|
170
|
-
/**
|
|
171
|
-
* @param {?} value
|
|
172
|
-
*/
|
|
173
95
|
constructor(value) {
|
|
174
96
|
this.subject = new BehaviorSubject(value);
|
|
175
97
|
}
|
|
176
|
-
/**
|
|
177
|
-
* @return {?}
|
|
178
|
-
*/
|
|
179
98
|
get() {
|
|
180
99
|
return this.subject.getValue();
|
|
181
100
|
}
|
|
182
|
-
/**
|
|
183
|
-
* @param {?} value
|
|
184
|
-
* @return {?}
|
|
185
|
-
*/
|
|
186
101
|
set(value) {
|
|
187
102
|
this.subject.next(value);
|
|
188
103
|
}
|
|
189
104
|
}
|
|
190
|
-
if (false) {
|
|
191
|
-
/** @type {?} */
|
|
192
|
-
StateSubject.prototype.subject;
|
|
193
|
-
}
|
|
194
105
|
|
|
195
|
-
/**
|
|
196
|
-
* @fileoverview added by tsickle
|
|
197
|
-
* Generated from: src/query-builder/query-members.ts
|
|
198
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
199
|
-
*/
|
|
200
106
|
class BaseMember {
|
|
201
|
-
/**
|
|
202
|
-
* @param {?} query
|
|
203
|
-
* @param {?} field
|
|
204
|
-
*/
|
|
205
107
|
constructor(query, field) {
|
|
206
108
|
this.query = query;
|
|
207
109
|
this.field = field;
|
|
208
110
|
}
|
|
209
|
-
/**
|
|
210
|
-
* @private
|
|
211
|
-
* @return {?}
|
|
212
|
-
*/
|
|
213
111
|
get members() {
|
|
214
112
|
return this.query.asCubeQuery()[this.field] || [];
|
|
215
113
|
}
|
|
216
|
-
/**
|
|
217
|
-
* @param {?} name
|
|
218
|
-
* @return {?}
|
|
219
|
-
*/
|
|
220
114
|
add(name) {
|
|
221
115
|
this.query.setPartialQuery({
|
|
222
116
|
[this.field]: [...this.members, name],
|
|
223
117
|
});
|
|
224
118
|
}
|
|
225
|
-
/**
|
|
226
|
-
* @param {?} name
|
|
227
|
-
* @param {?} replaceWithName
|
|
228
|
-
* @return {?}
|
|
229
|
-
*/
|
|
230
119
|
replace(name, replaceWithName) {
|
|
231
120
|
this.query.setPartialQuery({
|
|
232
|
-
[this.field]: this.members.map((
|
|
233
|
-
* @param {?} currentName
|
|
234
|
-
* @return {?}
|
|
235
|
-
*/
|
|
236
|
-
(currentName) => currentName === name ? replaceWithName : currentName)),
|
|
121
|
+
[this.field]: this.members.map((currentName) => currentName === name ? replaceWithName : currentName),
|
|
237
122
|
});
|
|
238
123
|
}
|
|
239
|
-
/**
|
|
240
|
-
* @param {?} by
|
|
241
|
-
* @return {?}
|
|
242
|
-
*/
|
|
243
124
|
remove(by) {
|
|
244
125
|
this.query.setPartialQuery({
|
|
245
126
|
[this.field]: this.query
|
|
246
|
-
.asCubeQuery()[this.field].filter((
|
|
247
|
-
* @param {?} currentName
|
|
248
|
-
* @param {?} index
|
|
249
|
-
* @return {?}
|
|
250
|
-
*/
|
|
251
|
-
(currentName, index) => {
|
|
127
|
+
.asCubeQuery()[this.field].filter((currentName, index) => {
|
|
252
128
|
if (typeof by === 'string') {
|
|
253
129
|
return currentName !== by;
|
|
254
130
|
}
|
|
255
131
|
return index !== by;
|
|
256
|
-
})
|
|
132
|
+
}),
|
|
257
133
|
});
|
|
258
134
|
}
|
|
259
|
-
/**
|
|
260
|
-
* @param {?} members
|
|
261
|
-
* @return {?}
|
|
262
|
-
*/
|
|
263
135
|
set(members) {
|
|
264
136
|
this.query.setPartialQuery({
|
|
265
137
|
[this.field]: members,
|
|
266
138
|
});
|
|
267
139
|
}
|
|
268
|
-
/**
|
|
269
|
-
* @return {?}
|
|
270
|
-
*/
|
|
271
140
|
asArray() {
|
|
272
|
-
return (this.query.asCubeQuery()[this.field] || []).map((
|
|
273
|
-
* @param {?} name
|
|
274
|
-
* @return {?}
|
|
275
|
-
*/
|
|
276
|
-
(name) => this.query.meta.resolveMember(name, this.field)));
|
|
141
|
+
return (this.query.asCubeQuery()[this.field] || []).map((name) => this.query.meta.resolveMember(name, this.field));
|
|
277
142
|
}
|
|
278
143
|
}
|
|
279
|
-
if (false) {
|
|
280
|
-
/**
|
|
281
|
-
* @type {?}
|
|
282
|
-
* @private
|
|
283
|
-
*/
|
|
284
|
-
BaseMember.prototype.query;
|
|
285
|
-
/**
|
|
286
|
-
* @type {?}
|
|
287
|
-
* @private
|
|
288
|
-
*/
|
|
289
|
-
BaseMember.prototype.field;
|
|
290
|
-
}
|
|
291
144
|
class TimeDimensionMember {
|
|
292
|
-
/**
|
|
293
|
-
* @param {?} query
|
|
294
|
-
*/
|
|
295
145
|
constructor(query) {
|
|
296
146
|
this.query = query;
|
|
297
147
|
}
|
|
298
|
-
/**
|
|
299
|
-
* @private
|
|
300
|
-
* @return {?}
|
|
301
|
-
*/
|
|
302
148
|
get members() {
|
|
303
149
|
return this.query.asCubeQuery().timeDimensions || [];
|
|
304
150
|
}
|
|
305
|
-
/**
|
|
306
|
-
* @return {?}
|
|
307
|
-
*/
|
|
308
151
|
get granularity() {
|
|
309
152
|
var _a;
|
|
310
153
|
return (_a = this.members[0]) === null || _a === void 0 ? void 0 : _a.granularity;
|
|
311
154
|
}
|
|
312
|
-
/**
|
|
313
|
-
* @param {?} by
|
|
314
|
-
* @param {?} updateWith
|
|
315
|
-
* @return {?}
|
|
316
|
-
*/
|
|
317
155
|
updateTimeDimension(by, updateWith) {
|
|
318
|
-
|
|
319
|
-
const timeDimensions = this.members.map((/**
|
|
320
|
-
* @param {?} td
|
|
321
|
-
* @param {?} index
|
|
322
|
-
* @return {?}
|
|
323
|
-
*/
|
|
324
|
-
(td, index) => {
|
|
156
|
+
const timeDimensions = this.members.map((td, index) => {
|
|
325
157
|
if (td.dimension === by || index === by) {
|
|
326
158
|
return Object.assign(Object.assign({}, td), updateWith);
|
|
327
159
|
}
|
|
328
160
|
return td;
|
|
329
|
-
})
|
|
161
|
+
});
|
|
330
162
|
this.query.setPartialQuery({
|
|
331
163
|
timeDimensions,
|
|
332
164
|
});
|
|
333
165
|
}
|
|
334
|
-
/**
|
|
335
|
-
* @param {?} name
|
|
336
|
-
* @return {?}
|
|
337
|
-
*/
|
|
338
166
|
add(name) {
|
|
339
167
|
this.query.setPartialQuery({
|
|
340
168
|
timeDimensions: [
|
|
@@ -344,337 +172,157 @@ class TimeDimensionMember {
|
|
|
344
172
|
],
|
|
345
173
|
});
|
|
346
174
|
}
|
|
347
|
-
/**
|
|
348
|
-
* @param {?} name
|
|
349
|
-
* @return {?}
|
|
350
|
-
*/
|
|
351
175
|
remove(name) {
|
|
352
176
|
this.query.setPartialQuery({
|
|
353
|
-
timeDimensions: this.members.filter((
|
|
354
|
-
* @param {?} __0
|
|
355
|
-
* @return {?}
|
|
356
|
-
*/
|
|
357
|
-
({ dimension }) => dimension !== name)),
|
|
177
|
+
timeDimensions: this.members.filter(({ dimension }) => dimension !== name),
|
|
358
178
|
});
|
|
359
179
|
}
|
|
360
|
-
/**
|
|
361
|
-
* @param {?} timeDimensions
|
|
362
|
-
* @return {?}
|
|
363
|
-
*/
|
|
364
180
|
set(timeDimensions) {
|
|
365
181
|
this.query.setPartialQuery({
|
|
366
182
|
timeDimensions,
|
|
367
183
|
});
|
|
368
184
|
}
|
|
369
|
-
/**
|
|
370
|
-
* @param {?} by
|
|
371
|
-
* @param {?} dateRange
|
|
372
|
-
* @return {?}
|
|
373
|
-
*/
|
|
374
185
|
setDateRange(by, dateRange) {
|
|
375
186
|
this.updateTimeDimension(by, { dateRange });
|
|
376
187
|
}
|
|
377
|
-
/**
|
|
378
|
-
* @param {?} by
|
|
379
|
-
* @param {?} granularity
|
|
380
|
-
* @return {?}
|
|
381
|
-
*/
|
|
382
188
|
setGranularity(by, granularity) {
|
|
383
189
|
this.updateTimeDimension(by, { granularity });
|
|
384
190
|
}
|
|
385
|
-
/**
|
|
386
|
-
* @return {?}
|
|
387
|
-
*/
|
|
388
191
|
asArray() {
|
|
389
|
-
return (this.query.asCubeQuery().timeDimensions || []).map((
|
|
390
|
-
* @param {?} td
|
|
391
|
-
* @return {?}
|
|
392
|
-
*/
|
|
393
|
-
(td) => {
|
|
192
|
+
return (this.query.asCubeQuery().timeDimensions || []).map((td) => {
|
|
394
193
|
return Object.assign(Object.assign({}, this.query.meta.resolveMember(td.dimension, 'dimensions')), td);
|
|
395
|
-
})
|
|
194
|
+
});
|
|
396
195
|
}
|
|
397
196
|
}
|
|
398
|
-
if (false) {
|
|
399
|
-
/**
|
|
400
|
-
* @type {?}
|
|
401
|
-
* @private
|
|
402
|
-
*/
|
|
403
|
-
TimeDimensionMember.prototype.query;
|
|
404
|
-
}
|
|
405
197
|
class Order {
|
|
406
|
-
/**
|
|
407
|
-
* @param {?} query
|
|
408
|
-
*/
|
|
409
198
|
constructor(query) {
|
|
410
199
|
this.query = query;
|
|
411
200
|
this.orderMembers = new BehaviorSubject([]);
|
|
412
201
|
this.query.subject.subscribe(this.handleQueryChange.bind(this));
|
|
413
202
|
this.orderMembers.subscribe(this.handleOrderMembersChange.bind(this));
|
|
414
203
|
}
|
|
415
|
-
/**
|
|
416
|
-
* @private
|
|
417
|
-
* @param {?} orderMembers
|
|
418
|
-
* @return {?}
|
|
419
|
-
*/
|
|
420
204
|
handleOrderMembersChange(orderMembers) {
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
.
|
|
424
|
-
* @param {?} __0
|
|
425
|
-
* @return {?}
|
|
426
|
-
*/
|
|
427
|
-
({ order }) => order !== 'none'))
|
|
428
|
-
.reduce((/**
|
|
429
|
-
* @param {?} memo
|
|
430
|
-
* @param {?} __1
|
|
431
|
-
* @return {?}
|
|
432
|
-
*/
|
|
433
|
-
(memo, { id, order }) => (Object.assign(Object.assign({}, memo), { [id]: order }))), {})));
|
|
205
|
+
const order = orderMembers
|
|
206
|
+
.filter(({ order }) => order !== 'none')
|
|
207
|
+
.reduce((memo, { id, order }) => (Object.assign(Object.assign({}, memo), { [id]: order })), {});
|
|
434
208
|
if (!equal(order, this.asObject())) {
|
|
435
209
|
this.query.setPartialQuery({ order });
|
|
436
210
|
}
|
|
437
211
|
}
|
|
438
|
-
/**
|
|
439
|
-
* @private
|
|
440
|
-
* @return {?}
|
|
441
|
-
*/
|
|
442
212
|
handleQueryChange() {
|
|
443
213
|
this.orderMembers.next([
|
|
444
214
|
...this.query.measures.asArray(),
|
|
445
215
|
...this.query.dimensions.asArray(),
|
|
446
216
|
...this.query.timeDimensions.asArray(),
|
|
447
|
-
].map((
|
|
448
|
-
* @param {?} __0
|
|
449
|
-
* @return {?}
|
|
450
|
-
*/
|
|
451
|
-
({ name, title }) => {
|
|
217
|
+
].map(({ name, title }) => {
|
|
452
218
|
return {
|
|
453
219
|
id: name,
|
|
454
220
|
order: this.of(name),
|
|
455
221
|
title,
|
|
456
222
|
};
|
|
457
|
-
}))
|
|
223
|
+
}));
|
|
458
224
|
}
|
|
459
|
-
/**
|
|
460
|
-
* @param {?} id
|
|
461
|
-
* @param {?} order
|
|
462
|
-
* @return {?}
|
|
463
|
-
*/
|
|
464
225
|
setMemberOrder(id, order) {
|
|
465
|
-
this.orderMembers.next(this.orderMembers.getValue().map((
|
|
466
|
-
* @param {?} orderMember
|
|
467
|
-
* @return {?}
|
|
468
|
-
*/
|
|
469
|
-
(orderMember) => {
|
|
226
|
+
this.orderMembers.next(this.orderMembers.getValue().map((orderMember) => {
|
|
470
227
|
if (orderMember.id === id) {
|
|
471
228
|
return Object.assign(Object.assign({}, orderMember), { order });
|
|
472
229
|
}
|
|
473
230
|
return orderMember;
|
|
474
|
-
}))
|
|
231
|
+
}));
|
|
475
232
|
}
|
|
476
|
-
/**
|
|
477
|
-
* @param {?} sourceIndex
|
|
478
|
-
* @param {?} destinationIndex
|
|
479
|
-
* @return {?}
|
|
480
|
-
*/
|
|
481
233
|
reorder(sourceIndex, destinationIndex) {
|
|
482
234
|
this.orderMembers.next(moveItemInArray(this.orderMembers.getValue(), sourceIndex, destinationIndex));
|
|
483
235
|
}
|
|
484
|
-
/**
|
|
485
|
-
* @param {?} member
|
|
486
|
-
* @return {?}
|
|
487
|
-
*/
|
|
488
236
|
of(member) {
|
|
489
237
|
return (this.query.asCubeQuery().order || {})[member] || 'none';
|
|
490
238
|
}
|
|
491
|
-
/**
|
|
492
|
-
* @param {?} order
|
|
493
|
-
* @return {?}
|
|
494
|
-
*/
|
|
495
239
|
set(order) {
|
|
496
240
|
this.query.setPartialQuery({ order });
|
|
497
241
|
}
|
|
498
|
-
/**
|
|
499
|
-
* @return {?}
|
|
500
|
-
*/
|
|
501
242
|
asArray() {
|
|
502
243
|
if (Array.isArray(this.query.asCubeQuery().order)) {
|
|
503
|
-
return
|
|
244
|
+
return this.query.asCubeQuery().order;
|
|
504
245
|
}
|
|
505
246
|
return Object.entries(this.query.asCubeQuery().order || {});
|
|
506
247
|
}
|
|
507
|
-
/**
|
|
508
|
-
* @return {?}
|
|
509
|
-
*/
|
|
510
248
|
asObject() {
|
|
511
|
-
return this.asArray().reduce((
|
|
512
|
-
* @param {?} memo
|
|
513
|
-
* @param {?} __1
|
|
514
|
-
* @return {?}
|
|
515
|
-
*/
|
|
516
|
-
(memo, [key, value]) => (Object.assign(Object.assign({}, memo), { [key]: value }))), {});
|
|
249
|
+
return this.asArray().reduce((memo, [key, value]) => (Object.assign(Object.assign({}, memo), { [key]: value })), {});
|
|
517
250
|
}
|
|
518
251
|
}
|
|
519
|
-
if (false) {
|
|
520
|
-
/** @type {?} */
|
|
521
|
-
Order.prototype.orderMembers;
|
|
522
|
-
/**
|
|
523
|
-
* @type {?}
|
|
524
|
-
* @private
|
|
525
|
-
*/
|
|
526
|
-
Order.prototype.query;
|
|
527
|
-
}
|
|
528
252
|
class FilterMember {
|
|
529
|
-
/**
|
|
530
|
-
* @param {?} query
|
|
531
|
-
*/
|
|
532
253
|
constructor(query) {
|
|
533
254
|
this.query = query;
|
|
534
255
|
}
|
|
535
|
-
/**
|
|
536
|
-
* @private
|
|
537
|
-
* @return {?}
|
|
538
|
-
*/
|
|
539
256
|
get filters() {
|
|
540
257
|
// TODO: update this type assertion once the QueryBuilder supports logical and/or
|
|
541
|
-
return (
|
|
258
|
+
return (this.query.asCubeQuery().filters || []);
|
|
542
259
|
}
|
|
543
|
-
/**
|
|
544
|
-
* @param {?} by
|
|
545
|
-
* @param {?} updateWith
|
|
546
|
-
* @return {?}
|
|
547
|
-
*/
|
|
548
260
|
update(by, updateWith) {
|
|
549
|
-
|
|
550
|
-
const filters = this.filters.map((/**
|
|
551
|
-
* @param {?} filter
|
|
552
|
-
* @param {?} index
|
|
553
|
-
* @return {?}
|
|
554
|
-
*/
|
|
555
|
-
(filter, index) => {
|
|
261
|
+
const filters = this.filters.map((filter, index) => {
|
|
556
262
|
if (index === by || filter.member === by || filter.dimension === by) {
|
|
557
263
|
return Object.assign(Object.assign({}, filter), updateWith);
|
|
558
264
|
}
|
|
559
265
|
return filter;
|
|
560
|
-
})
|
|
266
|
+
});
|
|
561
267
|
this.query.setPartialQuery({
|
|
562
|
-
filters:
|
|
268
|
+
filters: filters,
|
|
563
269
|
});
|
|
564
270
|
}
|
|
565
|
-
/**
|
|
566
|
-
* @param {?} filter
|
|
567
|
-
* @return {?}
|
|
568
|
-
*/
|
|
569
271
|
add(filter) {
|
|
570
272
|
this.query.setPartialQuery({
|
|
571
273
|
filters: [...this.filters, filter],
|
|
572
274
|
});
|
|
573
275
|
}
|
|
574
|
-
/**
|
|
575
|
-
* @param {?} by
|
|
576
|
-
* @return {?}
|
|
577
|
-
*/
|
|
578
276
|
remove(by) {
|
|
579
277
|
this.query.setPartialQuery({
|
|
580
|
-
filters: this.filters.filter((
|
|
581
|
-
* @param {?} filter
|
|
582
|
-
* @param {?} index
|
|
583
|
-
* @return {?}
|
|
584
|
-
*/
|
|
585
|
-
(filter, index) => {
|
|
278
|
+
filters: this.filters.filter((filter, index) => {
|
|
586
279
|
if (filter.member === by || filter.dimension === by || index === by) {
|
|
587
280
|
return false;
|
|
588
281
|
}
|
|
589
282
|
return true;
|
|
590
|
-
})
|
|
283
|
+
}),
|
|
591
284
|
});
|
|
592
285
|
}
|
|
593
|
-
/**
|
|
594
|
-
* @param {?} filters
|
|
595
|
-
* @return {?}
|
|
596
|
-
*/
|
|
597
286
|
set(filters) {
|
|
598
287
|
this.query.setPartialQuery({
|
|
599
288
|
filters,
|
|
600
289
|
});
|
|
601
290
|
}
|
|
602
|
-
/**
|
|
603
|
-
* @param {?} name
|
|
604
|
-
* @param {?} replaceWithName
|
|
605
|
-
* @return {?}
|
|
606
|
-
*/
|
|
607
291
|
replace(name, replaceWithName) {
|
|
608
292
|
this.query.setPartialQuery({
|
|
609
|
-
filters: this.filters.map((
|
|
610
|
-
* @param {?} filter
|
|
611
|
-
* @return {?}
|
|
612
|
-
*/
|
|
613
|
-
(filter) => {
|
|
614
|
-
/** @type {?} */
|
|
293
|
+
filters: this.filters.map((filter) => {
|
|
615
294
|
const field = filter.member ? 'member' : 'dimension';
|
|
616
295
|
return filter.member === name || filter.dimension === name
|
|
617
296
|
? Object.assign(Object.assign({}, filter), { [field]: replaceWithName }) : filter;
|
|
618
|
-
})
|
|
297
|
+
}),
|
|
619
298
|
});
|
|
620
299
|
}
|
|
621
|
-
/**
|
|
622
|
-
* @return {?}
|
|
623
|
-
*/
|
|
624
300
|
asArray() {
|
|
625
|
-
return this.filters.map((
|
|
626
|
-
* @param {?} filter
|
|
627
|
-
* @return {?}
|
|
628
|
-
*/
|
|
629
|
-
(filter) => {
|
|
301
|
+
return this.filters.map((filter) => {
|
|
630
302
|
return Object.assign(Object.assign(Object.assign({}, this.query.meta.resolveMember(filter.member || filter.dimension, [
|
|
631
303
|
'dimensions',
|
|
632
304
|
'measures',
|
|
633
305
|
])), { operators: this.query.meta.filterOperatorsForMember(filter.member || filter.dimension, ['dimensions', 'measures']) }), filter);
|
|
634
|
-
})
|
|
306
|
+
});
|
|
635
307
|
}
|
|
636
308
|
}
|
|
637
|
-
if (false) {
|
|
638
|
-
/**
|
|
639
|
-
* @type {?}
|
|
640
|
-
* @private
|
|
641
|
-
*/
|
|
642
|
-
FilterMember.prototype.query;
|
|
643
|
-
}
|
|
644
309
|
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
Segments: "segments",
|
|
655
|
-
TimeDimensions: "timeDimensions",
|
|
656
|
-
Filters: "filters",
|
|
657
|
-
Order: "order",
|
|
658
|
-
};
|
|
310
|
+
var MemberType;
|
|
311
|
+
(function (MemberType) {
|
|
312
|
+
MemberType["Measures"] = "measures";
|
|
313
|
+
MemberType["Dimensions"] = "dimensions";
|
|
314
|
+
MemberType["Segments"] = "segments";
|
|
315
|
+
MemberType["TimeDimensions"] = "timeDimensions";
|
|
316
|
+
MemberType["Filters"] = "filters";
|
|
317
|
+
MemberType["Order"] = "order";
|
|
318
|
+
})(MemberType || (MemberType = {}));
|
|
659
319
|
class Query extends StateSubject {
|
|
660
|
-
|
|
661
|
-
* @param {?} meta
|
|
662
|
-
* @param {?=} _onBeforeChange
|
|
663
|
-
*/
|
|
664
|
-
constructor(meta, _onBeforeChange = (/**
|
|
665
|
-
* @param {?} newQuery
|
|
666
|
-
* @return {?}
|
|
667
|
-
*/
|
|
668
|
-
(newQuery) => newQuery)) {
|
|
320
|
+
constructor(meta, _onBeforeChange = (newQuery) => newQuery) {
|
|
669
321
|
super({});
|
|
670
322
|
this.meta = meta;
|
|
671
323
|
this._onBeforeChange = _onBeforeChange;
|
|
672
324
|
this.init();
|
|
673
325
|
}
|
|
674
|
-
/**
|
|
675
|
-
* @private
|
|
676
|
-
* @return {?}
|
|
677
|
-
*/
|
|
678
326
|
init() {
|
|
679
327
|
this.measures = new BaseMember(this, MemberType.Measures);
|
|
680
328
|
this.dimensions = new BaseMember(this, MemberType.Dimensions);
|
|
@@ -683,260 +331,110 @@ class Query extends StateSubject {
|
|
|
683
331
|
this.filters = new FilterMember(this);
|
|
684
332
|
this.order = new Order(this);
|
|
685
333
|
}
|
|
686
|
-
/**
|
|
687
|
-
* @return {?}
|
|
688
|
-
*/
|
|
689
334
|
asCubeQuery() {
|
|
690
335
|
return this.subject.getValue() || {};
|
|
691
336
|
}
|
|
692
|
-
/**
|
|
693
|
-
* @param {?} query
|
|
694
|
-
* @return {?}
|
|
695
|
-
*/
|
|
696
337
|
setQuery(query) {
|
|
697
338
|
this.subject.next(this._onBeforeChange(query, this.subject.getValue(), this));
|
|
698
339
|
}
|
|
699
|
-
/**
|
|
700
|
-
* @param {?} partialQuery
|
|
701
|
-
* @return {?}
|
|
702
|
-
*/
|
|
703
340
|
setPartialQuery(partialQuery) {
|
|
704
341
|
this.subject.next(this._onBeforeChange(Object.assign(Object.assign({}, this.subject.getValue()), partialQuery), this.subject.getValue(), this));
|
|
705
342
|
}
|
|
706
|
-
/**
|
|
707
|
-
* @param {?} limit
|
|
708
|
-
* @return {?}
|
|
709
|
-
*/
|
|
710
343
|
setLimit(limit) {
|
|
711
344
|
this.setPartialQuery({ limit });
|
|
712
345
|
}
|
|
713
|
-
/**
|
|
714
|
-
* @return {?}
|
|
715
|
-
*/
|
|
716
346
|
isPresent() {
|
|
717
347
|
return isQueryPresent(this.asCubeQuery());
|
|
718
348
|
}
|
|
719
349
|
}
|
|
720
|
-
if (false) {
|
|
721
|
-
/** @type {?} */
|
|
722
|
-
Query.prototype.measures;
|
|
723
|
-
/** @type {?} */
|
|
724
|
-
Query.prototype.dimensions;
|
|
725
|
-
/** @type {?} */
|
|
726
|
-
Query.prototype.segments;
|
|
727
|
-
/** @type {?} */
|
|
728
|
-
Query.prototype.timeDimensions;
|
|
729
|
-
/** @type {?} */
|
|
730
|
-
Query.prototype.filters;
|
|
731
|
-
/** @type {?} */
|
|
732
|
-
Query.prototype.order;
|
|
733
|
-
/** @type {?} */
|
|
734
|
-
Query.prototype.meta;
|
|
735
|
-
/**
|
|
736
|
-
* @type {?}
|
|
737
|
-
* @private
|
|
738
|
-
*/
|
|
739
|
-
Query.prototype._onBeforeChange;
|
|
740
|
-
}
|
|
741
350
|
|
|
742
|
-
/**
|
|
743
|
-
* @fileoverview added by tsickle
|
|
744
|
-
* Generated from: src/query-builder/builder-meta.ts
|
|
745
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
746
|
-
*/
|
|
747
351
|
class BuilderMeta {
|
|
748
|
-
/**
|
|
749
|
-
* @param {?} meta
|
|
750
|
-
*/
|
|
751
352
|
constructor(meta) {
|
|
752
353
|
this.meta = meta;
|
|
753
354
|
this.mapMeta();
|
|
754
355
|
}
|
|
755
|
-
/**
|
|
756
|
-
* @private
|
|
757
|
-
* @return {?}
|
|
758
|
-
*/
|
|
759
356
|
mapMeta() {
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
this.measures = (/** @type {?} */ (this.meta.membersForQuery(null, 'measures')));
|
|
357
|
+
const allDimensions = (this.meta.membersForQuery(null, 'dimensions'));
|
|
358
|
+
this.measures = this.meta.membersForQuery(null, 'measures');
|
|
763
359
|
this.segments = this.meta.membersForQuery(null, 'segments');
|
|
764
|
-
this.dimensions = allDimensions.filter((
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
*/
|
|
768
|
-
({ type }) => type !== 'time'));
|
|
769
|
-
this.timeDimensions = allDimensions.filter((/**
|
|
770
|
-
* @param {?} __0
|
|
771
|
-
* @return {?}
|
|
772
|
-
*/
|
|
773
|
-
({ type }) => type === 'time'));
|
|
774
|
-
this.filters = [...allDimensions, ...this.measures].map((/**
|
|
775
|
-
* @param {?} member
|
|
776
|
-
* @return {?}
|
|
777
|
-
*/
|
|
778
|
-
(member) => {
|
|
360
|
+
this.dimensions = allDimensions.filter(({ type }) => type !== 'time');
|
|
361
|
+
this.timeDimensions = allDimensions.filter(({ type }) => type === 'time');
|
|
362
|
+
this.filters = [...allDimensions, ...this.measures].map((member) => {
|
|
779
363
|
return Object.assign(Object.assign({}, member), { operators: this.meta.filterOperatorsForMember(member.name, [
|
|
780
364
|
'dimensions',
|
|
781
365
|
'measures',
|
|
782
366
|
]) });
|
|
783
|
-
})
|
|
367
|
+
});
|
|
784
368
|
}
|
|
785
369
|
}
|
|
786
|
-
if (false) {
|
|
787
|
-
/** @type {?} */
|
|
788
|
-
BuilderMeta.prototype.measures;
|
|
789
|
-
/** @type {?} */
|
|
790
|
-
BuilderMeta.prototype.dimensions;
|
|
791
|
-
/** @type {?} */
|
|
792
|
-
BuilderMeta.prototype.segments;
|
|
793
|
-
/** @type {?} */
|
|
794
|
-
BuilderMeta.prototype.timeDimensions;
|
|
795
|
-
/** @type {?} */
|
|
796
|
-
BuilderMeta.prototype.filters;
|
|
797
|
-
/** @type {?} */
|
|
798
|
-
BuilderMeta.prototype.meta;
|
|
799
|
-
}
|
|
800
370
|
|
|
801
|
-
/**
|
|
802
|
-
* @fileoverview added by tsickle
|
|
803
|
-
* Generated from: src/query-builder/pivot-config.ts
|
|
804
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
805
|
-
*/
|
|
806
371
|
class PivotConfig extends StateSubject {
|
|
807
|
-
/**
|
|
808
|
-
* @param {?} pivotConfig
|
|
809
|
-
*/
|
|
810
372
|
constructor(pivotConfig) {
|
|
811
373
|
super(pivotConfig);
|
|
812
374
|
}
|
|
813
|
-
/**
|
|
814
|
-
* @param {?} sourceIndex
|
|
815
|
-
* @param {?} destinationIndex
|
|
816
|
-
* @param {?} sourceAxis
|
|
817
|
-
* @param {?} destinationAxis
|
|
818
|
-
* @return {?}
|
|
819
|
-
*/
|
|
820
375
|
moveItem(sourceIndex, destinationIndex, sourceAxis, destinationAxis) {
|
|
821
376
|
this.subject.next(movePivotItem(this.get(), sourceIndex, destinationIndex, sourceAxis, destinationAxis));
|
|
822
377
|
}
|
|
823
|
-
/**
|
|
824
|
-
* @param {?} fillMissingDates
|
|
825
|
-
* @return {?}
|
|
826
|
-
*/
|
|
827
378
|
setFillMissingDates(fillMissingDates) {
|
|
828
379
|
this.subject.next(Object.assign(Object.assign({}, this.get()), { fillMissingDates }));
|
|
829
380
|
}
|
|
830
381
|
}
|
|
831
382
|
|
|
832
|
-
/**
|
|
833
|
-
* @fileoverview added by tsickle
|
|
834
|
-
* Generated from: src/query-builder/chart-type.ts
|
|
835
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
836
|
-
*/
|
|
837
383
|
class ChartType extends StateSubject {
|
|
838
|
-
/**
|
|
839
|
-
* @param {?} value
|
|
840
|
-
*/
|
|
841
384
|
constructor(value) {
|
|
842
385
|
super(value);
|
|
843
386
|
}
|
|
844
387
|
}
|
|
845
388
|
|
|
846
|
-
/**
|
|
847
|
-
* @fileoverview added by tsickle
|
|
848
|
-
* Generated from: src/query-builder/query-builder.service.ts
|
|
849
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
850
|
-
*/
|
|
851
389
|
class QueryBuilderService {
|
|
852
390
|
constructor() {
|
|
853
391
|
this._disableHeuristics = false;
|
|
854
392
|
this._heuristicChange$ = new Subject();
|
|
855
|
-
this.builderMeta = new Promise((
|
|
856
|
-
|
|
857
|
-
* @return {?}
|
|
858
|
-
*/
|
|
859
|
-
(resolve) => (this._resolveBuilderMeta = resolve)));
|
|
860
|
-
this.query = new Promise((/**
|
|
861
|
-
* @param {?} resolve
|
|
862
|
-
* @return {?}
|
|
863
|
-
*/
|
|
864
|
-
(resolve) => (this._resolveQuery = resolve)));
|
|
393
|
+
this.builderMeta = new Promise((resolve) => (this._resolveBuilderMeta = resolve));
|
|
394
|
+
this.query = new Promise((resolve) => (this._resolveQuery = resolve));
|
|
865
395
|
this.state = new BehaviorSubject({});
|
|
866
396
|
}
|
|
867
|
-
/**
|
|
868
|
-
* @private
|
|
869
|
-
* @return {?}
|
|
870
|
-
*/
|
|
871
397
|
init() {
|
|
872
398
|
return __awaiter(this, void 0, void 0, function* () {
|
|
873
399
|
this.pivotConfig = new PivotConfig(null);
|
|
874
400
|
this.chartType = new ChartType('line');
|
|
875
|
-
this._cubejs.meta().subscribe((
|
|
876
|
-
* @param {?} meta
|
|
877
|
-
* @return {?}
|
|
878
|
-
*/
|
|
879
|
-
(meta) => {
|
|
401
|
+
this._cubejs.meta().subscribe((meta) => {
|
|
880
402
|
this._meta = meta;
|
|
881
403
|
this._query = new Query(this._meta, this._handleQueryChange.bind(this));
|
|
882
404
|
this._resolveQuery(this._query);
|
|
883
405
|
this._resolveBuilderMeta(new BuilderMeta(this._meta));
|
|
884
|
-
})
|
|
406
|
+
});
|
|
885
407
|
this.subscribe();
|
|
886
408
|
if (!this._disableHeuristics) {
|
|
887
409
|
this._heuristicChange$
|
|
888
|
-
.pipe(switchMap((
|
|
889
|
-
* @param {?} data
|
|
890
|
-
* @return {?}
|
|
891
|
-
*/
|
|
892
|
-
(data) => {
|
|
410
|
+
.pipe(switchMap((data) => {
|
|
893
411
|
return combineLatest([
|
|
894
|
-
this._cubejs.dryRun(data.query).pipe(catchError((
|
|
895
|
-
* @param {?} error
|
|
896
|
-
* @return {?}
|
|
897
|
-
*/
|
|
898
|
-
(error) => {
|
|
412
|
+
this._cubejs.dryRun(data.query).pipe(catchError((error) => {
|
|
899
413
|
console.error(error);
|
|
900
414
|
return of(null);
|
|
901
|
-
}))
|
|
415
|
+
})),
|
|
902
416
|
of(data.shouldApplyHeuristicOrder),
|
|
903
417
|
]);
|
|
904
|
-
}))
|
|
905
|
-
.subscribe((
|
|
906
|
-
* @param {?} __0
|
|
907
|
-
* @return {?}
|
|
908
|
-
*/
|
|
909
|
-
([dryRunResponse, shouldApplyHeuristicOrder]) => {
|
|
418
|
+
}))
|
|
419
|
+
.subscribe(([dryRunResponse, shouldApplyHeuristicOrder]) => {
|
|
910
420
|
if (!dryRunResponse) {
|
|
911
421
|
return;
|
|
912
422
|
}
|
|
913
423
|
const { pivotQuery, queryOrder } = dryRunResponse;
|
|
914
424
|
this.pivotConfig.set(ResultSet.getNormalizedPivotConfig(pivotQuery, this.pivotConfig.get()));
|
|
915
425
|
if (shouldApplyHeuristicOrder) {
|
|
916
|
-
this._query.order.set(queryOrder.reduce((
|
|
917
|
-
* @param {?} a
|
|
918
|
-
* @param {?} b
|
|
919
|
-
* @return {?}
|
|
920
|
-
*/
|
|
921
|
-
(a, b) => (Object.assign(Object.assign({}, a), b))), {}));
|
|
426
|
+
this._query.order.set(queryOrder.reduce((a, b) => (Object.assign(Object.assign({}, a), b)), {}));
|
|
922
427
|
}
|
|
923
|
-
})
|
|
428
|
+
});
|
|
924
429
|
}
|
|
925
430
|
});
|
|
926
431
|
}
|
|
927
|
-
/**
|
|
928
|
-
* @private
|
|
929
|
-
* @param {?} newQuery
|
|
930
|
-
* @param {?} oldQuery
|
|
931
|
-
* @return {?}
|
|
932
|
-
*/
|
|
933
432
|
_handleQueryChange(newQuery, oldQuery) {
|
|
934
433
|
var _a, _b;
|
|
935
434
|
const { chartType, shouldApplyHeuristicOrder, query: heuristicQuery, } = defaultHeuristics(newQuery, oldQuery, {
|
|
936
435
|
meta: this._meta,
|
|
937
436
|
sessionGranularity: (_b = (_a = newQuery === null || newQuery === void 0 ? void 0 : newQuery.timeDimensions) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.granularity,
|
|
938
437
|
});
|
|
939
|
-
/** @type {?} */
|
|
940
438
|
const query = this._disableHeuristics
|
|
941
439
|
? newQuery
|
|
942
440
|
: heuristicQuery || newQuery;
|
|
@@ -951,158 +449,62 @@ class QueryBuilderService {
|
|
|
951
449
|
}
|
|
952
450
|
return query;
|
|
953
451
|
}
|
|
954
|
-
/**
|
|
955
|
-
* @param {?} cubejsClient
|
|
956
|
-
* @return {?}
|
|
957
|
-
*/
|
|
958
452
|
setCubejsClient(cubejsClient) {
|
|
959
453
|
this._cubejs = cubejsClient;
|
|
960
454
|
this.init();
|
|
961
455
|
}
|
|
962
|
-
/**
|
|
963
|
-
* @private
|
|
964
|
-
* @return {?}
|
|
965
|
-
*/
|
|
966
456
|
subscribe() {
|
|
967
|
-
Object.getOwnPropertyNames(this).forEach((
|
|
968
|
-
* @param {?} key
|
|
969
|
-
* @return {?}
|
|
970
|
-
*/
|
|
971
|
-
(key) => {
|
|
457
|
+
Object.getOwnPropertyNames(this).forEach((key) => {
|
|
972
458
|
if (this[key] instanceof StateSubject) {
|
|
973
|
-
this[key].subject.subscribe((
|
|
974
|
-
* @param {?} value
|
|
975
|
-
* @return {?}
|
|
976
|
-
*/
|
|
977
|
-
(value) => this.setPartialState({
|
|
459
|
+
this[key].subject.subscribe((value) => this.setPartialState({
|
|
978
460
|
[key]: value,
|
|
979
|
-
}))
|
|
461
|
+
}));
|
|
980
462
|
}
|
|
981
|
-
})
|
|
982
|
-
this.query.then((
|
|
983
|
-
|
|
984
|
-
* @return {?}
|
|
985
|
-
*/
|
|
986
|
-
(query) => {
|
|
987
|
-
query.subject.subscribe((/**
|
|
988
|
-
* @param {?} cubeQuery
|
|
989
|
-
* @return {?}
|
|
990
|
-
*/
|
|
991
|
-
(cubeQuery) => {
|
|
463
|
+
});
|
|
464
|
+
this.query.then((query) => {
|
|
465
|
+
query.subject.subscribe((cubeQuery) => {
|
|
992
466
|
this.setPartialState({
|
|
993
467
|
query: cubeQuery,
|
|
994
468
|
});
|
|
995
|
-
})
|
|
996
|
-
})
|
|
469
|
+
});
|
|
470
|
+
});
|
|
997
471
|
}
|
|
998
|
-
/**
|
|
999
|
-
* @param {?} state
|
|
1000
|
-
* @return {?}
|
|
1001
|
-
*/
|
|
1002
472
|
deserialize(state) {
|
|
1003
473
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1004
474
|
if (state.query) {
|
|
1005
475
|
(yield this.query).setQuery(state.query);
|
|
1006
476
|
}
|
|
1007
|
-
Object.entries(state).forEach((
|
|
1008
|
-
* @param {?} __0
|
|
1009
|
-
* @return {?}
|
|
1010
|
-
*/
|
|
1011
|
-
([key, value]) => {
|
|
477
|
+
Object.entries(state).forEach(([key, value]) => {
|
|
1012
478
|
if (this[key] instanceof StateSubject) {
|
|
1013
479
|
this[key].set(value);
|
|
1014
480
|
}
|
|
1015
|
-
})
|
|
481
|
+
});
|
|
1016
482
|
this.subscribe();
|
|
1017
483
|
});
|
|
1018
484
|
}
|
|
1019
|
-
/**
|
|
1020
|
-
* @param {?} partialState
|
|
1021
|
-
* @return {?}
|
|
1022
|
-
*/
|
|
1023
485
|
setPartialState(partialState) {
|
|
1024
486
|
this.state.next(Object.assign(Object.assign({}, this.state.getValue()), partialState));
|
|
1025
487
|
}
|
|
1026
|
-
/**
|
|
1027
|
-
* @return {?}
|
|
1028
|
-
*/
|
|
1029
488
|
disableHeuristics() {
|
|
1030
489
|
this._disableHeuristics = false;
|
|
1031
490
|
}
|
|
1032
|
-
/**
|
|
1033
|
-
* @return {?}
|
|
1034
|
-
*/
|
|
1035
491
|
enableHeuristics() {
|
|
1036
492
|
this._disableHeuristics = true;
|
|
1037
493
|
}
|
|
1038
494
|
}
|
|
495
|
+
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
|
|
1039
496
|
QueryBuilderService.decorators = [
|
|
1040
497
|
{ type: Injectable }
|
|
1041
498
|
];
|
|
1042
|
-
if (false) {
|
|
1043
|
-
/**
|
|
1044
|
-
* @type {?}
|
|
1045
|
-
* @private
|
|
1046
|
-
*/
|
|
1047
|
-
QueryBuilderService.prototype._cubejs;
|
|
1048
|
-
/**
|
|
1049
|
-
* @type {?}
|
|
1050
|
-
* @private
|
|
1051
|
-
*/
|
|
1052
|
-
QueryBuilderService.prototype._meta;
|
|
1053
|
-
/**
|
|
1054
|
-
* @type {?}
|
|
1055
|
-
* @private
|
|
1056
|
-
*/
|
|
1057
|
-
QueryBuilderService.prototype._query;
|
|
1058
|
-
/**
|
|
1059
|
-
* @type {?}
|
|
1060
|
-
* @private
|
|
1061
|
-
*/
|
|
1062
|
-
QueryBuilderService.prototype._disableHeuristics;
|
|
1063
|
-
/**
|
|
1064
|
-
* @type {?}
|
|
1065
|
-
* @private
|
|
1066
|
-
*/
|
|
1067
|
-
QueryBuilderService.prototype._resolveQuery;
|
|
1068
|
-
/**
|
|
1069
|
-
* @type {?}
|
|
1070
|
-
* @private
|
|
1071
|
-
*/
|
|
1072
|
-
QueryBuilderService.prototype._resolveBuilderMeta;
|
|
1073
|
-
/**
|
|
1074
|
-
* @type {?}
|
|
1075
|
-
* @private
|
|
1076
|
-
*/
|
|
1077
|
-
QueryBuilderService.prototype._heuristicChange$;
|
|
1078
|
-
/** @type {?} */
|
|
1079
|
-
QueryBuilderService.prototype.builderMeta;
|
|
1080
|
-
/** @type {?} */
|
|
1081
|
-
QueryBuilderService.prototype.query;
|
|
1082
|
-
/** @type {?} */
|
|
1083
|
-
QueryBuilderService.prototype.state;
|
|
1084
|
-
/** @type {?} */
|
|
1085
|
-
QueryBuilderService.prototype.pivotConfig;
|
|
1086
|
-
/** @type {?} */
|
|
1087
|
-
QueryBuilderService.prototype.chartType;
|
|
1088
|
-
}
|
|
1089
499
|
|
|
1090
|
-
|
|
1091
|
-
*
|
|
1092
|
-
* Generated from: src/public_api.ts
|
|
1093
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
500
|
+
/*
|
|
501
|
+
* Public API Surface of cubejs-client-ngx
|
|
1094
502
|
*/
|
|
1095
503
|
|
|
1096
|
-
|
|
1097
|
-
* @fileoverview added by tsickle
|
|
1098
|
-
* Generated from: index.ts
|
|
1099
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
1100
|
-
*/
|
|
504
|
+
// This file is not used to build this module. It is only used during editing
|
|
1101
505
|
|
|
1102
506
|
/**
|
|
1103
|
-
*
|
|
1104
|
-
* Generated from: cubejs-client-ngx.ts
|
|
1105
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
507
|
+
* Generated bundle index. Do not edit.
|
|
1106
508
|
*/
|
|
1107
509
|
|
|
1108
510
|
export { BaseMember, BuilderMeta, ChartType, CubejsClient, CubejsClientModule, FilterMember, MemberType, Order, PivotConfig, Query, QueryBuilderService, TimeDimensionMember, StateSubject as ɵa };
|