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