@cubejs-client/ngx 1.7.39 → 1.7.41
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/README.md +1 -1
- package/fesm2022/cubejs-client-ngx.mjs +35 -60
- package/fesm2022/cubejs-client-ngx.mjs.map +1 -1
- package/index.d.ts +176 -1
- package/package.json +2 -3
- package/esm2022/cubejs-client-ngx.mjs +0 -5
- package/esm2022/index.mjs +0 -6
- package/esm2022/src/client.mjs +0 -70
- package/esm2022/src/module.mjs +0 -27
- package/esm2022/src/public_api.mjs +0 -12
- package/esm2022/src/query-builder/builder-meta.mjs +0 -27
- package/esm2022/src/query-builder/chart-type.mjs +0 -7
- package/esm2022/src/query-builder/common.mjs +0 -14
- package/esm2022/src/query-builder/pivot-config.mjs +0 -17
- package/esm2022/src/query-builder/query-builder.service.mjs +0 -127
- package/esm2022/src/query-builder/query-members.mjs +0 -224
- package/esm2022/src/query-builder/query.mjs +0 -57
- package/src/client.d.ts +0 -21
- package/src/module.d.ts +0 -8
- package/src/public_api.d.ts +0 -8
- package/src/query-builder/builder-meta.d.ts +0 -11
- package/src/query-builder/chart-type.d.ts +0 -5
- package/src/query-builder/common.d.ts +0 -7
- package/src/query-builder/pivot-config.d.ts +0 -7
- package/src/query-builder/query-builder.service.d.ts +0 -37
- package/src/query-builder/query-members.d.ts +0 -57
- package/src/query-builder/query.d.ts +0 -29
package/README.md
CHANGED
|
@@ -6,32 +6,32 @@ import { switchMap, catchError } from 'rxjs/operators';
|
|
|
6
6
|
import equal from 'fast-deep-equal/es6';
|
|
7
7
|
|
|
8
8
|
class CubeClient {
|
|
9
|
-
config;
|
|
10
|
-
ready$ = new BehaviorSubject(false);
|
|
11
|
-
cubeApi;
|
|
12
9
|
constructor(config) {
|
|
13
10
|
this.config = config;
|
|
11
|
+
this.ready$ = new BehaviorSubject(false);
|
|
14
12
|
if (this.config instanceof Observable) {
|
|
15
|
-
|
|
13
|
+
// A single subscription keeps the last emitted config, so a cold source
|
|
14
|
+
// such as a bare Subject is not re-subscribed (and its already emitted
|
|
15
|
+
// value lost) on the first request.
|
|
16
|
+
this.config.subscribe((nextConfig) => {
|
|
17
|
+
this.latestConfig = nextConfig;
|
|
18
|
+
this.cubeApi = undefined;
|
|
16
19
|
this.ready$.next(true);
|
|
17
20
|
});
|
|
18
21
|
}
|
|
19
22
|
else {
|
|
23
|
+
this.latestConfig = this.config;
|
|
20
24
|
this.ready$.next(true);
|
|
21
25
|
}
|
|
22
26
|
}
|
|
23
27
|
apiInstance() {
|
|
24
28
|
if (!this.cubeApi) {
|
|
25
|
-
if (this.
|
|
26
|
-
|
|
27
|
-
this.cubeApi = cube(config.token, config.options);
|
|
28
|
-
if (!this.cubeApi) {
|
|
29
|
-
throw new Error('Cannot create CubeApi instance. Please check that the config is passed correctly and contains all required options.');
|
|
30
|
-
}
|
|
31
|
-
});
|
|
29
|
+
if (!this.latestConfig) {
|
|
30
|
+
throw new Error('Cannot create CubeApi instance. The config observable has not emitted yet, use ready$ to wait for it.');
|
|
32
31
|
}
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
this.cubeApi = cube(this.latestConfig.token, this.latestConfig.options);
|
|
33
|
+
if (!this.cubeApi) {
|
|
34
|
+
throw new Error('Cannot create CubeApi instance. Please check that the config is passed correctly and contains all required options.');
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
return this.cubeApi;
|
|
@@ -61,10 +61,10 @@ class CubeClient {
|
|
|
61
61
|
},
|
|
62
62
|
}));
|
|
63
63
|
}
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.31", ngImport: i0, type: CubeClient, deps: [{ token: 'config' }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
65
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.31", ngImport: i0, type: CubeClient }); }
|
|
66
66
|
}
|
|
67
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.31", ngImport: i0, type: CubeClient, decorators: [{
|
|
68
68
|
type: Injectable
|
|
69
69
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
70
70
|
type: Inject,
|
|
@@ -84,11 +84,11 @@ class CubeClientModule {
|
|
|
84
84
|
],
|
|
85
85
|
};
|
|
86
86
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
87
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.31", ngImport: i0, type: CubeClientModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
88
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.31", ngImport: i0, type: CubeClientModule }); }
|
|
89
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.31", ngImport: i0, type: CubeClientModule, providers: [CubeClient] }); }
|
|
90
90
|
}
|
|
91
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
91
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.31", ngImport: i0, type: CubeClientModule, decorators: [{
|
|
92
92
|
type: NgModule,
|
|
93
93
|
args: [{
|
|
94
94
|
providers: [CubeClient],
|
|
@@ -96,7 +96,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
96
96
|
}] });
|
|
97
97
|
|
|
98
98
|
class StateSubject {
|
|
99
|
-
subject;
|
|
100
99
|
constructor(value) {
|
|
101
100
|
this.subject = new BehaviorSubject(value);
|
|
102
101
|
}
|
|
@@ -109,8 +108,6 @@ class StateSubject {
|
|
|
109
108
|
}
|
|
110
109
|
|
|
111
110
|
class BaseMember {
|
|
112
|
-
query;
|
|
113
|
-
field;
|
|
114
111
|
constructor(query, field) {
|
|
115
112
|
this.query = query;
|
|
116
113
|
this.field = field;
|
|
@@ -148,7 +145,6 @@ class BaseMember {
|
|
|
148
145
|
}
|
|
149
146
|
}
|
|
150
147
|
class TimeDimensionMember {
|
|
151
|
-
query;
|
|
152
148
|
constructor(query) {
|
|
153
149
|
this.query = query;
|
|
154
150
|
}
|
|
@@ -205,10 +201,9 @@ class TimeDimensionMember {
|
|
|
205
201
|
}
|
|
206
202
|
}
|
|
207
203
|
class Order {
|
|
208
|
-
query;
|
|
209
|
-
orderMembers = new BehaviorSubject([]);
|
|
210
204
|
constructor(query) {
|
|
211
205
|
this.query = query;
|
|
206
|
+
this.orderMembers = new BehaviorSubject([]);
|
|
212
207
|
this.query.subject.subscribe(this.handleQueryChange.bind(this));
|
|
213
208
|
this.orderMembers.subscribe(this.handleOrderMembersChange.bind(this));
|
|
214
209
|
}
|
|
@@ -262,7 +257,6 @@ class Order {
|
|
|
262
257
|
}
|
|
263
258
|
}
|
|
264
259
|
class FilterMember {
|
|
265
|
-
query;
|
|
266
260
|
constructor(query) {
|
|
267
261
|
this.query = query;
|
|
268
262
|
}
|
|
@@ -341,14 +335,6 @@ var MemberType;
|
|
|
341
335
|
MemberType["Order"] = "order";
|
|
342
336
|
})(MemberType || (MemberType = {}));
|
|
343
337
|
class Query extends StateSubject {
|
|
344
|
-
meta;
|
|
345
|
-
_onBeforeChange;
|
|
346
|
-
measures;
|
|
347
|
-
dimensions;
|
|
348
|
-
segments;
|
|
349
|
-
timeDimensions;
|
|
350
|
-
filters;
|
|
351
|
-
order;
|
|
352
338
|
constructor(meta, _onBeforeChange = (newQuery) => newQuery) {
|
|
353
339
|
super({});
|
|
354
340
|
this.meta = meta;
|
|
@@ -384,12 +370,6 @@ class Query extends StateSubject {
|
|
|
384
370
|
}
|
|
385
371
|
|
|
386
372
|
class BuilderMeta {
|
|
387
|
-
meta;
|
|
388
|
-
measures;
|
|
389
|
-
dimensions;
|
|
390
|
-
segments;
|
|
391
|
-
timeDimensions;
|
|
392
|
-
filters;
|
|
393
373
|
constructor(meta) {
|
|
394
374
|
this.meta = meta;
|
|
395
375
|
this.mapMeta();
|
|
@@ -432,22 +412,17 @@ class ChartType extends StateSubject {
|
|
|
432
412
|
}
|
|
433
413
|
|
|
434
414
|
class QueryBuilderService {
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
this._resolveQuery = resolve;
|
|
447
|
-
});
|
|
448
|
-
state = new BehaviorSubject({});
|
|
449
|
-
pivotConfig;
|
|
450
|
-
chartType;
|
|
415
|
+
constructor() {
|
|
416
|
+
this._disableHeuristics = false;
|
|
417
|
+
this._heuristicChange$ = new Subject();
|
|
418
|
+
this.builderMeta = new Promise((resolve) => {
|
|
419
|
+
this._resolveBuilderMeta = resolve;
|
|
420
|
+
});
|
|
421
|
+
this.query = new Promise((resolve) => {
|
|
422
|
+
this._resolveQuery = resolve;
|
|
423
|
+
});
|
|
424
|
+
this.state = new BehaviorSubject({});
|
|
425
|
+
}
|
|
451
426
|
async init() {
|
|
452
427
|
this.pivotConfig = new PivotConfig(null);
|
|
453
428
|
this.chartType = new ChartType('line');
|
|
@@ -541,10 +516,10 @@ class QueryBuilderService {
|
|
|
541
516
|
enableHeuristics() {
|
|
542
517
|
this._disableHeuristics = false;
|
|
543
518
|
}
|
|
544
|
-
|
|
545
|
-
|
|
519
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.31", ngImport: i0, type: QueryBuilderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
520
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.31", ngImport: i0, type: QueryBuilderService }); }
|
|
546
521
|
}
|
|
547
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
522
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.31", ngImport: i0, type: QueryBuilderService, decorators: [{
|
|
548
523
|
type: Injectable
|
|
549
524
|
}] });
|
|
550
525
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cubejs-client-ngx.mjs","sources":["../../src/client.ts","../../src/module.ts","../../src/query-builder/common.ts","../../src/query-builder/query-members.ts","../../src/query-builder/query.ts","../../src/query-builder/builder-meta.ts","../../src/query-builder/pivot-config.ts","../../src/query-builder/chart-type.ts","../../src/query-builder/query-builder.service.ts","../../src/public_api.ts","../../index.ts","../../cubejs-client-ngx.ts"],"sourcesContent":["import { Injectable, Inject } from '@angular/core';\nimport { Observable, from, BehaviorSubject } from 'rxjs';\nimport cube, {\n CubeApi,\n CubeApiOptions,\n DryRunResponse,\n LoadMethodOptions,\n Meta,\n Query,\n ResultSet,\n SqlQuery,\n} from '@cubejs-client/core';\n\nexport type CubeConfig = {\n token: string;\n options?: CubeApiOptions;\n};\n\n@Injectable()\nexport class CubeClient {\n public ready$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n private cubeApi: CubeApi;\n\n public constructor(@Inject('config') private config: any | Observable<any>) {\n if (this.config instanceof Observable) {\n this.config.subscribe(() => {\n this.ready$.next(true);\n });\n } else {\n this.ready$.next(true);\n }\n }\n\n private apiInstance(): CubeApi {\n if (!this.cubeApi) {\n if (this.config instanceof Observable) {\n this.config.subscribe((config) => {\n this.cubeApi = cube(config.token, config.options);\n\n if (!this.cubeApi) {\n throw new Error(\n 'Cannot create CubeApi instance. Please check that the config is passed correctly and contains all required options.'\n );\n }\n });\n } else {\n this.cubeApi = cube(this.config.token, this.config.options);\n }\n }\n\n return this.cubeApi;\n }\n\n public load(\n query: Query | Query[],\n options?: LoadMethodOptions\n ): Observable<ResultSet<any>> {\n return from(this.apiInstance().load(query, options) as Promise<ResultSet<any>>);\n }\n\n public sql(\n query: Query | Query[],\n options?: LoadMethodOptions\n ): Observable<SqlQuery> {\n return from(this.apiInstance().sql(query, options));\n }\n\n public dryRun(\n query: Query | Query[],\n options?: LoadMethodOptions\n ): Observable<DryRunResponse> {\n return from(this.apiInstance().dryRun(query, options));\n }\n\n public meta(options?: LoadMethodOptions): Observable<Meta> {\n return from(this.apiInstance().meta(options));\n }\n\n public watch(query, params = {}): Observable<ResultSet<any>> {\n return new Observable((observer) => query.subscribe({\n next: async (currentQuery) => {\n try {\n const resultSet = await this.apiInstance().load(currentQuery, params);\n observer.next(resultSet);\n } catch (err) {\n observer.error(err);\n }\n },\n }));\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CubeClient } from './client';\n\n@NgModule({\n providers: [CubeClient],\n})\nexport class CubeClientModule {\n public static forRoot(config: any): ModuleWithProviders<CubeClientModule> {\n return {\n ngModule: CubeClientModule,\n providers: [\n CubeClient,\n {\n provide: 'config',\n useValue: config,\n },\n ],\n };\n }\n}\n","import { BehaviorSubject } from 'rxjs';\n\nexport class StateSubject<T = any> {\n public subject: BehaviorSubject<T>;\n\n public constructor(value: T) {\n this.subject = new BehaviorSubject(value);\n }\n\n public get() {\n return this.subject.getValue();\n }\n\n public set(value: T) {\n this.subject.next(value);\n }\n}\n","import {\n TimeDimensionGranularity,\n TQueryOrderObject,\n TQueryOrderArray,\n moveItemInArray,\n Filter,\n UnaryFilter,\n BinaryFilter,\n} from '@cubejs-client/core';\nimport { BehaviorSubject } from 'rxjs';\nimport equal from 'fast-deep-equal/es6';\n\nimport { Query } from './query';\n\nexport type TOrder = 'asc' | 'desc' | 'none';\n\nexport type TOrderMember = {\n id: string;\n order: TOrder;\n title: string;\n};\n\nexport class BaseMember {\n public constructor(\n private query: Query,\n private field: 'measures' | 'dimensions' | 'segments'\n ) {}\n\n private get members() {\n return this.query.asCubeQuery()[this.field] || [];\n }\n\n public add(name: string) {\n this.query.setPartialQuery({\n [this.field]: [...this.members, name],\n });\n }\n\n public replace(name: string, replaceWithName: string) {\n this.query.setPartialQuery({\n [this.field]: this.members.map(\n (currentName) => (currentName === name ? replaceWithName : currentName)\n ),\n });\n }\n\n public remove(by: string | number) {\n this.query.setPartialQuery({\n [this.field]: this.members.filter((currentName, index) => {\n if (typeof by === 'string') {\n return currentName !== by;\n }\n\n return index !== by;\n }),\n });\n }\n\n public set(members: string[]) {\n this.query.setPartialQuery({\n [this.field]: members,\n });\n }\n\n public asArray() {\n return this.members.map((name) => this.query.meta.resolveMember(name, this.field));\n }\n}\n\nexport class TimeDimensionMember {\n public constructor(private query: Query) {}\n\n private get members() {\n return this.query.asCubeQuery().timeDimensions || [];\n }\n\n public get granularity() {\n return this.members[0]?.granularity;\n }\n\n public updateTimeDimension(by: string | number, updateWith: any) {\n const timeDimensions = this.members.map((td, index) => {\n if (td.dimension === by || index === by) {\n return {\n ...td,\n ...updateWith,\n };\n }\n return td;\n });\n\n this.query.setPartialQuery({\n timeDimensions,\n });\n }\n\n public add(name: string) {\n this.query.setPartialQuery({\n timeDimensions: [\n {\n dimension: name,\n },\n ],\n });\n }\n\n public remove(name: string) {\n this.query.setPartialQuery({\n timeDimensions: this.members.filter(\n ({ dimension }) => dimension !== name\n ),\n });\n }\n\n public set(timeDimensions: any[]) {\n this.query.setPartialQuery({\n timeDimensions,\n });\n }\n\n public setDateRange(by: string | number, dateRange: string | string[]) {\n this.updateTimeDimension(by, { dateRange });\n }\n\n public setGranularity(by: string | number, granularity: TimeDimensionGranularity) {\n this.updateTimeDimension(by, { granularity });\n }\n\n public asArray(): any[] {\n return this.members.map((td) => ({\n ...this.query.meta.resolveMember(td.dimension, 'dimensions'),\n ...td,\n }));\n }\n}\n\nexport class Order {\n public orderMembers = new BehaviorSubject<TOrderMember[]>([]);\n\n public constructor(private query: Query) {\n this.query.subject.subscribe(this.handleQueryChange.bind(this));\n this.orderMembers.subscribe(this.handleOrderMembersChange.bind(this));\n }\n\n private handleOrderMembersChange(orderMembers: TOrderMember[]) {\n const order = orderMembers\n .filter((orderMember) => orderMember.order !== 'none')\n .reduce(\n (memo, orderMember) => ({ ...memo, [orderMember.id]: orderMember.order }),\n {}\n ) as TQueryOrderObject;\n\n if (!equal(order, this.asObject())) {\n this.query.setPartialQuery({ order });\n }\n }\n\n private handleQueryChange() {\n this.orderMembers.next(\n [\n ...this.query.measures.asArray(),\n ...this.query.dimensions.asArray(),\n ...this.query.timeDimensions.asArray(),\n ].map<TOrderMember>(({ name, title }) => ({\n id: name,\n order: this.of(name),\n title,\n }))\n );\n }\n\n public setMemberOrder(id: string, order: TOrder) {\n this.orderMembers.next(\n this.orderMembers.getValue().map((orderMember) => {\n if (orderMember.id === id) {\n return {\n ...orderMember,\n order,\n };\n }\n return orderMember;\n })\n );\n }\n\n public reorder(sourceIndex: number, destinationIndex: number) {\n this.orderMembers.next(\n moveItemInArray(\n this.orderMembers.getValue(),\n sourceIndex,\n destinationIndex\n )\n );\n }\n\n public of(member: string) {\n return (this.query.asCubeQuery().order || {})[member] || 'none';\n }\n\n public set(order: TQueryOrderObject | TQueryOrderArray) {\n this.query.setPartialQuery({ order });\n }\n\n public asArray(): TQueryOrderArray {\n if (Array.isArray(this.query.asCubeQuery().order)) {\n return this.query.asCubeQuery().order as TQueryOrderArray;\n }\n\n return Object.entries(this.query.asCubeQuery().order || {});\n }\n\n public asObject(): TQueryOrderObject {\n return this.asArray().reduce(\n (memo, [key, value]) => ({ ...memo, [key]: value }),\n {}\n );\n }\n}\n\nexport class FilterMember {\n public constructor(private query: Query) {}\n\n private get filters() {\n // TODO: update this type assertion once the QueryBuilder supports logical and/or\n return (this.query.asCubeQuery().filters || []) as (UnaryFilter | BinaryFilter)[];\n }\n\n public update(by: string | number, updateWith: Partial<Filter>) {\n const filters = this.filters.map((filter, index) => {\n if (index === by || filter.member === by || filter.dimension === by) {\n return {\n ...filter,\n ...updateWith,\n };\n }\n return filter;\n });\n\n this.query.setPartialQuery({\n filters: filters as Filter[],\n });\n }\n\n public add(filter: Filter) {\n this.query.setPartialQuery({\n filters: [...this.filters, filter],\n });\n }\n\n public remove(by: string | number) {\n this.query.setPartialQuery({\n filters: this.filters.filter((filter, index) => {\n if (filter.member === by || filter.dimension === by || index === by) {\n return false;\n }\n\n return true;\n }),\n });\n }\n\n public set(filters: Filter[]) {\n this.query.setPartialQuery({\n filters,\n });\n }\n\n public replace(name: string, replaceWithName: string) {\n this.query.setPartialQuery({\n filters: this.filters.map((filter) => {\n const field = filter.member ? 'member' : 'dimension';\n return filter.member === name || filter.dimension === name\n ? {\n ...filter,\n [field]: replaceWithName,\n }\n : filter;\n }),\n });\n }\n\n public asArray(): any[] {\n return this.filters.map((filter) => ({\n ...this.query.meta.resolveMember(filter.member || filter.dimension, [\n 'dimensions',\n 'measures',\n ]),\n operators: this.query.meta.filterOperatorsForMember(\n filter.member || filter.dimension,\n ['dimensions', 'measures']\n ),\n ...filter,\n }));\n }\n}\n","import { isQueryPresent, Meta, Query as TCubeQuery } from '@cubejs-client/core';\n\nimport { StateSubject } from './common';\nimport { BaseMember, FilterMember, Order, TimeDimensionMember } from './query-members';\n\nexport enum MemberType {\n Measures = 'measures',\n Dimensions = 'dimensions',\n Segments = 'segments',\n TimeDimensions = 'timeDimensions',\n Filters = 'filters',\n // an enum member is not a binding, so this does not shadow the imported `Order`\n // eslint-disable-next-line no-shadow\n Order = 'order',\n}\n\nexport type OnChangeCallback = (\n newQuery: TCubeQuery,\n oldQuery: TCubeQuery,\n query: Query\n) => TCubeQuery;\n\nexport class Query extends StateSubject<TCubeQuery> {\n public measures: BaseMember;\n\n public dimensions: BaseMember;\n\n public segments: BaseMember;\n\n public timeDimensions: TimeDimensionMember;\n\n public filters: FilterMember;\n\n public order: Order;\n\n public constructor(\n public meta: Meta,\n private _onBeforeChange: OnChangeCallback = (newQuery) => newQuery\n ) {\n super({});\n this.init();\n }\n\n private init() {\n this.measures = new BaseMember(this, MemberType.Measures);\n this.dimensions = new BaseMember(this, MemberType.Dimensions);\n this.segments = new BaseMember(this, MemberType.Segments);\n this.timeDimensions = new TimeDimensionMember(this);\n this.filters = new FilterMember(this);\n this.order = new Order(this);\n }\n\n public asCubeQuery(): TCubeQuery {\n return this.subject.getValue() || {};\n }\n\n public setQuery(query: TCubeQuery) {\n this.subject.next(this._onBeforeChange(query, this.subject.getValue(), this));\n }\n\n public setPartialQuery(partialQuery: Partial<TCubeQuery>) {\n this.subject.next(\n this._onBeforeChange(\n {\n ...this.subject.getValue(),\n ...partialQuery,\n },\n this.subject.getValue(),\n this\n )\n );\n }\n\n public setLimit(limit: number) {\n this.setPartialQuery({ limit });\n }\n\n public isPresent(): boolean {\n return isQueryPresent(this.asCubeQuery());\n }\n}\n","import {\n Meta,\n TCubeDimension,\n TCubeMeasure,\n TCubeSegment,\n} from '@cubejs-client/core';\n\nexport class BuilderMeta {\n public measures: TCubeMeasure[];\n\n public dimensions: TCubeDimension[];\n\n public segments: TCubeSegment[];\n\n public timeDimensions: TCubeDimension[];\n\n public filters: Array<TCubeMeasure | TCubeDimension>;\n\n public constructor(public readonly meta: Meta) {\n this.mapMeta();\n }\n\n private mapMeta() {\n const allDimensions = this.meta.membersForQuery(\n null,\n 'dimensions'\n ) as TCubeDimension[];\n\n this.measures = this.meta.membersForQuery(null, 'measures') as TCubeMeasure[];\n this.segments = this.meta.membersForQuery(null, 'segments');\n this.dimensions = allDimensions.filter(({ type }) => type !== 'time');\n this.timeDimensions = allDimensions.filter(({ type }) => type === 'time');\n this.filters = [...allDimensions, ...this.measures].map((member) => ({\n ...member,\n operators: this.meta.filterOperatorsForMember(member.name, [\n 'dimensions',\n 'measures',\n ]),\n }));\n }\n}\n","import {\n movePivotItem,\n PivotConfig as TPivotConfig,\n TSourceAxis,\n} from '@cubejs-client/core';\nimport { StateSubject } from './common';\n\nexport class PivotConfig extends StateSubject<TPivotConfig> {\n public constructor(pivotConfig: TPivotConfig) {\n super(pivotConfig);\n }\n\n public moveItem(\n sourceIndex: number,\n destinationIndex: number,\n sourceAxis: TSourceAxis,\n destinationAxis: TSourceAxis\n ) {\n this.subject.next(\n movePivotItem(\n this.get(),\n sourceIndex,\n destinationIndex,\n sourceAxis,\n destinationAxis\n )\n );\n }\n\n public setFillMissingDates(fillMissingDates: boolean) {\n this.subject.next({\n ...this.get(),\n fillMissingDates\n });\n }\n}\n","import { StateSubject } from './common';\n\nexport type TChartType = 'line' | 'area' | 'bar' | 'number' | 'table' | 'pie';\n\nexport class ChartType extends StateSubject<TChartType> {\n public constructor(value) {\n super(value);\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n Meta,\n ResultSet,\n Query as TCubeQuery,\n PivotConfig as TPivotConfig,\n isQueryPresent,\n defaultHeuristics,\n} from '@cubejs-client/core';\nimport { BehaviorSubject, combineLatest, of, Subject } from 'rxjs';\nimport { catchError, switchMap } from 'rxjs/operators';\n\nimport { CubeClient } from '../client';\nimport { Query } from './query';\nimport { BuilderMeta } from './builder-meta';\nimport { PivotConfig } from './pivot-config';\nimport { ChartType, TChartType } from './chart-type';\nimport { StateSubject } from './common';\n\nexport type TQueryBuilderState = {\n query?: TCubeQuery;\n pivotConfig?: TPivotConfig;\n chartType?: TChartType;\n};\n\n@Injectable()\nexport class QueryBuilderService {\n private _cube: CubeClient;\n\n private _meta: Meta;\n\n private _query: Query;\n\n private _disableHeuristics: boolean = false;\n\n private _resolveQuery: (query: Query) => void;\n\n private _resolveBuilderMeta: (query: BuilderMeta) => void;\n\n private _heuristicChange$ = new Subject<any>();\n\n public readonly builderMeta = new Promise<BuilderMeta>((resolve) => {\n this._resolveBuilderMeta = resolve;\n });\n\n public readonly query = new Promise<Query>((resolve) => {\n this._resolveQuery = resolve;\n });\n\n public readonly state = new BehaviorSubject<TQueryBuilderState>({});\n\n public pivotConfig: PivotConfig;\n\n public chartType: ChartType;\n\n private async init() {\n this.pivotConfig = new PivotConfig(null);\n this.chartType = new ChartType('line');\n\n this._cube.meta().subscribe((meta) => {\n this._meta = meta;\n\n this._query = new Query(\n this._meta,\n this._handleQueryChange.bind(this)\n );\n this._resolveQuery(this._query);\n this._resolveBuilderMeta(new BuilderMeta(this._meta));\n });\n\n this.subscribe();\n\n if (!this._disableHeuristics) {\n this._heuristicChange$\n .pipe(\n switchMap((data) => combineLatest([\n this._cube.dryRun(data.query).pipe(catchError((error) => {\n console.error(error);\n return of(null);\n })),\n of(data.shouldApplyHeuristicOrder),\n ]))\n )\n .subscribe(\n ([dryRunResponse, shouldApplyHeuristicOrder]) => {\n if (!dryRunResponse) {\n return;\n }\n\n const { pivotQuery, queryOrder } = dryRunResponse;\n\n this.pivotConfig.set(\n ResultSet.getNormalizedPivotConfig(\n pivotQuery,\n this.pivotConfig.get()\n )\n );\n if (shouldApplyHeuristicOrder) {\n this._query.order.set(\n queryOrder.reduce((a, b) => ({ ...a, ...b }), {})\n );\n }\n }\n );\n }\n }\n\n private _handleQueryChange(newQuery, oldQuery) {\n const {\n chartType,\n shouldApplyHeuristicOrder,\n query: heuristicQuery,\n } = defaultHeuristics(newQuery, oldQuery, {\n meta: this._meta,\n sessionGranularity: newQuery?.timeDimensions?.[0]?.granularity,\n });\n\n const query = this._disableHeuristics\n ? newQuery\n : heuristicQuery || newQuery;\n\n if (isQueryPresent(query) && !this._disableHeuristics) {\n this._heuristicChange$.next({\n shouldApplyHeuristicOrder: Boolean(shouldApplyHeuristicOrder),\n query,\n });\n }\n\n if (!this._disableHeuristics && chartType) {\n this.chartType.set(chartType);\n }\n\n return query;\n }\n\n public setCubeClient(cubeClient: CubeClient) {\n this._cube = cubeClient;\n this.init();\n }\n\n private subscribe() {\n Object.getOwnPropertyNames(this).forEach((key) => {\n if (this[key] instanceof StateSubject) {\n this[key].subject.subscribe((value) => this.setPartialState({\n [key]: value,\n }));\n }\n });\n this.query.then((query) => {\n query.subject.subscribe((cubeQuery) => {\n this.setPartialState({\n query: cubeQuery,\n });\n });\n });\n }\n\n public async deserialize(state) {\n if (state.query) {\n (await this.query).setQuery(state.query);\n }\n\n Object.entries(state).forEach(([key, value]) => {\n if (this[key] instanceof StateSubject) {\n this[key].set(value);\n }\n });\n\n this.subscribe();\n }\n\n public setPartialState(partialState) {\n this.state.next({\n ...this.state.getValue(),\n ...partialState,\n });\n }\n\n public disableHeuristics() {\n this._disableHeuristics = true;\n }\n\n public enableHeuristics() {\n this._disableHeuristics = false;\n }\n}\n","/*\n * Public API Surface of cubejs-client-ngx\n */\n\nexport { CubeClientModule } from './module';\nexport * from './client';\nexport * from './query-builder/query-builder.service';\nexport * from './query-builder/query';\nexport * from './query-builder/builder-meta';\nexport * from './query-builder/query-members';\nexport * from './query-builder/pivot-config';\nexport * from './query-builder/chart-type';\n","// This file is not used to build this module. It is only used during editing\n// by the TypeScript language service and during build for verification. `ngc`\n// replaces this file with production index.ts when it rewrites private symbol\n// names.\n\nexport * from './src/public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cubejs-client-ngx.mjs","sources":["../../src/client.ts","../../src/module.ts","../../src/query-builder/common.ts","../../src/query-builder/query-members.ts","../../src/query-builder/query.ts","../../src/query-builder/builder-meta.ts","../../src/query-builder/pivot-config.ts","../../src/query-builder/chart-type.ts","../../src/query-builder/query-builder.service.ts","../../src/public_api.ts","../../index.ts","../../cubejs-client-ngx.ts"],"sourcesContent":["import { Injectable, Inject } from '@angular/core';\nimport { Observable, from, BehaviorSubject } from 'rxjs';\nimport cube, {\n CubeApi,\n CubeApiOptions,\n DryRunResponse,\n LoadMethodOptions,\n Meta,\n Query,\n ResultSet,\n SqlQuery,\n} from '@cubejs-client/core';\n\nexport type CubeConfig = {\n token: string;\n options?: CubeApiOptions;\n};\n\n@Injectable()\nexport class CubeClient {\n public ready$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n private cubeApi: CubeApi | undefined;\n\n private latestConfig: CubeConfig | undefined;\n\n public constructor(@Inject('config') private config: any | Observable<any>) {\n if (this.config instanceof Observable) {\n // A single subscription keeps the last emitted config, so a cold source\n // such as a bare Subject is not re-subscribed (and its already emitted\n // value lost) on the first request.\n this.config.subscribe((nextConfig) => {\n this.latestConfig = nextConfig;\n this.cubeApi = undefined;\n this.ready$.next(true);\n });\n } else {\n this.latestConfig = this.config;\n this.ready$.next(true);\n }\n }\n\n private apiInstance(): CubeApi {\n if (!this.cubeApi) {\n if (!this.latestConfig) {\n throw new Error(\n 'Cannot create CubeApi instance. The config observable has not emitted yet, use ready$ to wait for it.'\n );\n }\n\n this.cubeApi = cube(this.latestConfig.token, this.latestConfig.options);\n\n if (!this.cubeApi) {\n throw new Error(\n 'Cannot create CubeApi instance. Please check that the config is passed correctly and contains all required options.'\n );\n }\n }\n\n return this.cubeApi;\n }\n\n public load(\n query: Query | Query[],\n options?: LoadMethodOptions\n ): Observable<ResultSet<any>> {\n return from(this.apiInstance().load(query, options) as Promise<ResultSet<any>>);\n }\n\n public sql(\n query: Query | Query[],\n options?: LoadMethodOptions\n ): Observable<SqlQuery> {\n return from(this.apiInstance().sql(query, options));\n }\n\n public dryRun(\n query: Query | Query[],\n options?: LoadMethodOptions\n ): Observable<DryRunResponse> {\n return from(this.apiInstance().dryRun(query, options));\n }\n\n public meta(options?: LoadMethodOptions): Observable<Meta> {\n return from(this.apiInstance().meta(options));\n }\n\n public watch(query, params = {}): Observable<ResultSet<any>> {\n return new Observable((observer) => query.subscribe({\n next: async (currentQuery) => {\n try {\n const resultSet = await this.apiInstance().load(currentQuery, params);\n observer.next(resultSet);\n } catch (err) {\n observer.error(err);\n }\n },\n }));\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CubeClient } from './client';\n\n@NgModule({\n providers: [CubeClient],\n})\nexport class CubeClientModule {\n public static forRoot(config: any): ModuleWithProviders<CubeClientModule> {\n return {\n ngModule: CubeClientModule,\n providers: [\n CubeClient,\n {\n provide: 'config',\n useValue: config,\n },\n ],\n };\n }\n}\n","import { BehaviorSubject } from 'rxjs';\n\nexport class StateSubject<T = any> {\n public subject: BehaviorSubject<T>;\n\n public constructor(value: T) {\n this.subject = new BehaviorSubject(value);\n }\n\n public get() {\n return this.subject.getValue();\n }\n\n public set(value: T) {\n this.subject.next(value);\n }\n}\n","import {\n TimeDimensionGranularity,\n TQueryOrderObject,\n TQueryOrderArray,\n moveItemInArray,\n Filter,\n UnaryFilter,\n BinaryFilter,\n} from '@cubejs-client/core';\nimport { BehaviorSubject } from 'rxjs';\nimport equal from 'fast-deep-equal/es6';\n\nimport { Query } from './query';\n\nexport type TOrder = 'asc' | 'desc' | 'none';\n\nexport type TOrderMember = {\n id: string;\n order: TOrder;\n title: string;\n};\n\nexport class BaseMember {\n public constructor(\n private query: Query,\n private field: 'measures' | 'dimensions' | 'segments'\n ) {}\n\n private get members() {\n return this.query.asCubeQuery()[this.field] || [];\n }\n\n public add(name: string) {\n this.query.setPartialQuery({\n [this.field]: [...this.members, name],\n });\n }\n\n public replace(name: string, replaceWithName: string) {\n this.query.setPartialQuery({\n [this.field]: this.members.map(\n (currentName) => (currentName === name ? replaceWithName : currentName)\n ),\n });\n }\n\n public remove(by: string | number) {\n this.query.setPartialQuery({\n [this.field]: this.members.filter((currentName, index) => {\n if (typeof by === 'string') {\n return currentName !== by;\n }\n\n return index !== by;\n }),\n });\n }\n\n public set(members: string[]) {\n this.query.setPartialQuery({\n [this.field]: members,\n });\n }\n\n public asArray() {\n return this.members.map((name) => this.query.meta.resolveMember(name, this.field));\n }\n}\n\nexport class TimeDimensionMember {\n public constructor(private query: Query) {}\n\n private get members() {\n return this.query.asCubeQuery().timeDimensions || [];\n }\n\n public get granularity() {\n return this.members[0]?.granularity;\n }\n\n public updateTimeDimension(by: string | number, updateWith: any) {\n const timeDimensions = this.members.map((td, index) => {\n if (td.dimension === by || index === by) {\n return {\n ...td,\n ...updateWith,\n };\n }\n return td;\n });\n\n this.query.setPartialQuery({\n timeDimensions,\n });\n }\n\n public add(name: string) {\n this.query.setPartialQuery({\n timeDimensions: [\n {\n dimension: name,\n },\n ],\n });\n }\n\n public remove(name: string) {\n this.query.setPartialQuery({\n timeDimensions: this.members.filter(\n ({ dimension }) => dimension !== name\n ),\n });\n }\n\n public set(timeDimensions: any[]) {\n this.query.setPartialQuery({\n timeDimensions,\n });\n }\n\n public setDateRange(by: string | number, dateRange: string | string[]) {\n this.updateTimeDimension(by, { dateRange });\n }\n\n public setGranularity(by: string | number, granularity: TimeDimensionGranularity) {\n this.updateTimeDimension(by, { granularity });\n }\n\n public asArray(): any[] {\n return this.members.map((td) => ({\n ...this.query.meta.resolveMember(td.dimension, 'dimensions'),\n ...td,\n }));\n }\n}\n\nexport class Order {\n public orderMembers = new BehaviorSubject<TOrderMember[]>([]);\n\n public constructor(private query: Query) {\n this.query.subject.subscribe(this.handleQueryChange.bind(this));\n this.orderMembers.subscribe(this.handleOrderMembersChange.bind(this));\n }\n\n private handleOrderMembersChange(orderMembers: TOrderMember[]) {\n const order = orderMembers\n .filter((orderMember) => orderMember.order !== 'none')\n .reduce(\n (memo, orderMember) => ({ ...memo, [orderMember.id]: orderMember.order }),\n {}\n ) as TQueryOrderObject;\n\n if (!equal(order, this.asObject())) {\n this.query.setPartialQuery({ order });\n }\n }\n\n private handleQueryChange() {\n this.orderMembers.next(\n [\n ...this.query.measures.asArray(),\n ...this.query.dimensions.asArray(),\n ...this.query.timeDimensions.asArray(),\n ].map<TOrderMember>(({ name, title }) => ({\n id: name,\n order: this.of(name),\n title,\n }))\n );\n }\n\n public setMemberOrder(id: string, order: TOrder) {\n this.orderMembers.next(\n this.orderMembers.getValue().map((orderMember) => {\n if (orderMember.id === id) {\n return {\n ...orderMember,\n order,\n };\n }\n return orderMember;\n })\n );\n }\n\n public reorder(sourceIndex: number, destinationIndex: number) {\n this.orderMembers.next(\n moveItemInArray(\n this.orderMembers.getValue(),\n sourceIndex,\n destinationIndex\n )\n );\n }\n\n public of(member: string) {\n return (this.query.asCubeQuery().order || {})[member] || 'none';\n }\n\n public set(order: TQueryOrderObject | TQueryOrderArray) {\n this.query.setPartialQuery({ order });\n }\n\n public asArray(): TQueryOrderArray {\n if (Array.isArray(this.query.asCubeQuery().order)) {\n return this.query.asCubeQuery().order as TQueryOrderArray;\n }\n\n return Object.entries(this.query.asCubeQuery().order || {});\n }\n\n public asObject(): TQueryOrderObject {\n return this.asArray().reduce(\n (memo, [key, value]) => ({ ...memo, [key]: value }),\n {}\n );\n }\n}\n\nexport class FilterMember {\n public constructor(private query: Query) {}\n\n private get filters() {\n // TODO: update this type assertion once the QueryBuilder supports logical and/or\n return (this.query.asCubeQuery().filters || []) as (UnaryFilter | BinaryFilter)[];\n }\n\n public update(by: string | number, updateWith: Partial<Filter>) {\n const filters = this.filters.map((filter, index) => {\n if (index === by || filter.member === by || filter.dimension === by) {\n return {\n ...filter,\n ...updateWith,\n };\n }\n return filter;\n });\n\n this.query.setPartialQuery({\n filters: filters as Filter[],\n });\n }\n\n public add(filter: Filter) {\n this.query.setPartialQuery({\n filters: [...this.filters, filter],\n });\n }\n\n public remove(by: string | number) {\n this.query.setPartialQuery({\n filters: this.filters.filter((filter, index) => {\n if (filter.member === by || filter.dimension === by || index === by) {\n return false;\n }\n\n return true;\n }),\n });\n }\n\n public set(filters: Filter[]) {\n this.query.setPartialQuery({\n filters,\n });\n }\n\n public replace(name: string, replaceWithName: string) {\n this.query.setPartialQuery({\n filters: this.filters.map((filter) => {\n const field = filter.member ? 'member' : 'dimension';\n return filter.member === name || filter.dimension === name\n ? {\n ...filter,\n [field]: replaceWithName,\n }\n : filter;\n }),\n });\n }\n\n public asArray(): any[] {\n return this.filters.map((filter) => ({\n ...this.query.meta.resolveMember(filter.member || filter.dimension, [\n 'dimensions',\n 'measures',\n ]),\n operators: this.query.meta.filterOperatorsForMember(\n filter.member || filter.dimension,\n ['dimensions', 'measures']\n ),\n ...filter,\n }));\n }\n}\n","import { isQueryPresent, Meta, Query as TCubeQuery } from '@cubejs-client/core';\n\nimport { StateSubject } from './common';\nimport { BaseMember, FilterMember, Order, TimeDimensionMember } from './query-members';\n\nexport enum MemberType {\n Measures = 'measures',\n Dimensions = 'dimensions',\n Segments = 'segments',\n TimeDimensions = 'timeDimensions',\n Filters = 'filters',\n // an enum member is not a binding, so this does not shadow the imported `Order`\n // eslint-disable-next-line no-shadow\n Order = 'order',\n}\n\nexport type OnChangeCallback = (\n newQuery: TCubeQuery,\n oldQuery: TCubeQuery,\n query: Query\n) => TCubeQuery;\n\nexport class Query extends StateSubject<TCubeQuery> {\n public measures: BaseMember;\n\n public dimensions: BaseMember;\n\n public segments: BaseMember;\n\n public timeDimensions: TimeDimensionMember;\n\n public filters: FilterMember;\n\n public order: Order;\n\n public constructor(\n public meta: Meta,\n private _onBeforeChange: OnChangeCallback = (newQuery) => newQuery\n ) {\n super({});\n this.init();\n }\n\n private init() {\n this.measures = new BaseMember(this, MemberType.Measures);\n this.dimensions = new BaseMember(this, MemberType.Dimensions);\n this.segments = new BaseMember(this, MemberType.Segments);\n this.timeDimensions = new TimeDimensionMember(this);\n this.filters = new FilterMember(this);\n this.order = new Order(this);\n }\n\n public asCubeQuery(): TCubeQuery {\n return this.subject.getValue() || {};\n }\n\n public setQuery(query: TCubeQuery) {\n this.subject.next(this._onBeforeChange(query, this.subject.getValue(), this));\n }\n\n public setPartialQuery(partialQuery: Partial<TCubeQuery>) {\n this.subject.next(\n this._onBeforeChange(\n {\n ...this.subject.getValue(),\n ...partialQuery,\n },\n this.subject.getValue(),\n this\n )\n );\n }\n\n public setLimit(limit: number) {\n this.setPartialQuery({ limit });\n }\n\n public isPresent(): boolean {\n return isQueryPresent(this.asCubeQuery());\n }\n}\n","import {\n Meta,\n TCubeDimension,\n TCubeMeasure,\n TCubeSegment,\n} from '@cubejs-client/core';\n\nexport class BuilderMeta {\n public measures: TCubeMeasure[];\n\n public dimensions: TCubeDimension[];\n\n public segments: TCubeSegment[];\n\n public timeDimensions: TCubeDimension[];\n\n public filters: Array<TCubeMeasure | TCubeDimension>;\n\n public constructor(public readonly meta: Meta) {\n this.mapMeta();\n }\n\n private mapMeta() {\n const allDimensions = this.meta.membersForQuery(\n null,\n 'dimensions'\n ) as TCubeDimension[];\n\n this.measures = this.meta.membersForQuery(null, 'measures') as TCubeMeasure[];\n this.segments = this.meta.membersForQuery(null, 'segments');\n this.dimensions = allDimensions.filter(({ type }) => type !== 'time');\n this.timeDimensions = allDimensions.filter(({ type }) => type === 'time');\n this.filters = [...allDimensions, ...this.measures].map((member) => ({\n ...member,\n operators: this.meta.filterOperatorsForMember(member.name, [\n 'dimensions',\n 'measures',\n ]),\n }));\n }\n}\n","import {\n movePivotItem,\n PivotConfig as TPivotConfig,\n TSourceAxis,\n} from '@cubejs-client/core';\nimport { StateSubject } from './common';\n\nexport class PivotConfig extends StateSubject<TPivotConfig> {\n public constructor(pivotConfig: TPivotConfig) {\n super(pivotConfig);\n }\n\n public moveItem(\n sourceIndex: number,\n destinationIndex: number,\n sourceAxis: TSourceAxis,\n destinationAxis: TSourceAxis\n ) {\n this.subject.next(\n movePivotItem(\n this.get(),\n sourceIndex,\n destinationIndex,\n sourceAxis,\n destinationAxis\n )\n );\n }\n\n public setFillMissingDates(fillMissingDates: boolean) {\n this.subject.next({\n ...this.get(),\n fillMissingDates\n });\n }\n}\n","import { StateSubject } from './common';\n\nexport type TChartType = 'line' | 'area' | 'bar' | 'number' | 'table' | 'pie';\n\nexport class ChartType extends StateSubject<TChartType> {\n public constructor(value) {\n super(value);\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n Meta,\n ResultSet,\n Query as TCubeQuery,\n PivotConfig as TPivotConfig,\n isQueryPresent,\n defaultHeuristics,\n} from '@cubejs-client/core';\nimport { BehaviorSubject, combineLatest, of, Subject } from 'rxjs';\nimport { catchError, switchMap } from 'rxjs/operators';\n\nimport { CubeClient } from '../client';\nimport { Query } from './query';\nimport { BuilderMeta } from './builder-meta';\nimport { PivotConfig } from './pivot-config';\nimport { ChartType, TChartType } from './chart-type';\nimport { StateSubject } from './common';\n\nexport type TQueryBuilderState = {\n query?: TCubeQuery;\n pivotConfig?: TPivotConfig;\n chartType?: TChartType;\n};\n\n@Injectable()\nexport class QueryBuilderService {\n private _cube: CubeClient;\n\n private _meta: Meta;\n\n private _query: Query;\n\n private _disableHeuristics: boolean = false;\n\n private _resolveQuery: (query: Query) => void;\n\n private _resolveBuilderMeta: (query: BuilderMeta) => void;\n\n private _heuristicChange$ = new Subject<any>();\n\n public readonly builderMeta = new Promise<BuilderMeta>((resolve) => {\n this._resolveBuilderMeta = resolve;\n });\n\n public readonly query = new Promise<Query>((resolve) => {\n this._resolveQuery = resolve;\n });\n\n public readonly state = new BehaviorSubject<TQueryBuilderState>({});\n\n public pivotConfig: PivotConfig;\n\n public chartType: ChartType;\n\n private async init() {\n this.pivotConfig = new PivotConfig(null);\n this.chartType = new ChartType('line');\n\n this._cube.meta().subscribe((meta) => {\n this._meta = meta;\n\n this._query = new Query(\n this._meta,\n this._handleQueryChange.bind(this)\n );\n this._resolveQuery(this._query);\n this._resolveBuilderMeta(new BuilderMeta(this._meta));\n });\n\n this.subscribe();\n\n if (!this._disableHeuristics) {\n this._heuristicChange$\n .pipe(\n switchMap((data) => combineLatest([\n this._cube.dryRun(data.query).pipe(catchError((error) => {\n console.error(error);\n return of(null);\n })),\n of(data.shouldApplyHeuristicOrder),\n ]))\n )\n .subscribe(\n ([dryRunResponse, shouldApplyHeuristicOrder]) => {\n if (!dryRunResponse) {\n return;\n }\n\n const { pivotQuery, queryOrder } = dryRunResponse;\n\n this.pivotConfig.set(\n ResultSet.getNormalizedPivotConfig(\n pivotQuery,\n this.pivotConfig.get()\n )\n );\n if (shouldApplyHeuristicOrder) {\n this._query.order.set(\n queryOrder.reduce((a, b) => ({ ...a, ...b }), {})\n );\n }\n }\n );\n }\n }\n\n private _handleQueryChange(newQuery, oldQuery) {\n const {\n chartType,\n shouldApplyHeuristicOrder,\n query: heuristicQuery,\n } = defaultHeuristics(newQuery, oldQuery, {\n meta: this._meta,\n sessionGranularity: newQuery?.timeDimensions?.[0]?.granularity,\n });\n\n const query = this._disableHeuristics\n ? newQuery\n : heuristicQuery || newQuery;\n\n if (isQueryPresent(query) && !this._disableHeuristics) {\n this._heuristicChange$.next({\n shouldApplyHeuristicOrder: Boolean(shouldApplyHeuristicOrder),\n query,\n });\n }\n\n if (!this._disableHeuristics && chartType) {\n this.chartType.set(chartType);\n }\n\n return query;\n }\n\n public setCubeClient(cubeClient: CubeClient) {\n this._cube = cubeClient;\n this.init();\n }\n\n private subscribe() {\n Object.getOwnPropertyNames(this).forEach((key) => {\n if (this[key] instanceof StateSubject) {\n this[key].subject.subscribe((value) => this.setPartialState({\n [key]: value,\n }));\n }\n });\n this.query.then((query) => {\n query.subject.subscribe((cubeQuery) => {\n this.setPartialState({\n query: cubeQuery,\n });\n });\n });\n }\n\n public async deserialize(state) {\n if (state.query) {\n (await this.query).setQuery(state.query);\n }\n\n Object.entries(state).forEach(([key, value]) => {\n if (this[key] instanceof StateSubject) {\n this[key].set(value);\n }\n });\n\n this.subscribe();\n }\n\n public setPartialState(partialState) {\n this.state.next({\n ...this.state.getValue(),\n ...partialState,\n });\n }\n\n public disableHeuristics() {\n this._disableHeuristics = true;\n }\n\n public enableHeuristics() {\n this._disableHeuristics = false;\n }\n}\n","/*\n * Public API Surface of cubejs-client-ngx\n */\n\nexport { CubeClientModule } from './module';\nexport * from './client';\nexport * from './query-builder/query-builder.service';\nexport * from './query-builder/query';\nexport * from './query-builder/builder-meta';\nexport * from './query-builder/query-members';\nexport * from './query-builder/pivot-config';\nexport * from './query-builder/chart-type';\n","// This file is not used to build this module. It is only used during editing\n// by the TypeScript language service and during build for verification. `ngc`\n// replaces this file with production index.ts when it rewrites private symbol\n// names.\n\nexport * from './src/public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MAmBa,UAAU,CAAA;AAOrB,IAAA,WAAA,CAA6C,MAA6B,EAAA;QAA7B,IAAA,CAAA,MAAM,GAAN,MAAM;AAN5C,QAAA,IAAA,CAAA,MAAM,GAA6B,IAAI,eAAe,CAAC,KAAK,CAAC;AAOlE,QAAA,IAAI,IAAI,CAAC,MAAM,YAAY,UAAU,EAAE;;;;YAIrC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,UAAU,KAAI;AACnC,gBAAA,IAAI,CAAC,YAAY,GAAG,UAAU;AAC9B,gBAAA,IAAI,CAAC,OAAO,GAAG,SAAS;AACxB,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,YAAA,CAAC,CAAC;QACJ;aAAO;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM;AAC/B,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QACxB;IACF;IAEQ,WAAW,GAAA;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,gBAAA,MAAM,IAAI,KAAK,CACb,uGAAuG,CACxG;YACH;AAEA,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;AAEvE,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,gBAAA,MAAM,IAAI,KAAK,CACb,qHAAqH,CACtH;YACH;QACF;QAEA,OAAO,IAAI,CAAC,OAAO;IACrB;IAEO,IAAI,CACT,KAAsB,EACtB,OAA2B,EAAA;AAE3B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAA4B,CAAC;IACjF;IAEO,GAAG,CACR,KAAsB,EACtB,OAA2B,EAAA;AAE3B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACrD;IAEO,MAAM,CACX,KAAsB,EACtB,OAA2B,EAAA;AAE3B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxD;AAEO,IAAA,IAAI,CAAC,OAA2B,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/C;AAEO,IAAA,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,EAAE,EAAA;QAC7B,OAAO,IAAI,UAAU,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,SAAS,CAAC;AAClD,YAAA,IAAI,EAAE,OAAO,YAAY,KAAI;AAC3B,gBAAA,IAAI;AACF,oBAAA,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC;AACrE,oBAAA,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC1B;gBAAE,OAAO,GAAG,EAAE;AACZ,oBAAA,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;gBACrB;YACF,CAAC;AACF,SAAA,CAAC,CAAC;IACL;AA/EW,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,kBAOM,QAAQ,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAPxB,UAAU,EAAA,CAAA,CAAA;;4FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBADtB;;0BAQqB,MAAM;2BAAC,QAAQ;;;MCpBxB,gBAAgB,CAAA;IACpB,OAAO,OAAO,CAAC,MAAW,EAAA;QAC/B,OAAO;AACL,YAAA,QAAQ,EAAE,gBAAgB;AAC1B,YAAA,SAAS,EAAE;gBACT,UAAU;AACV,gBAAA;AACE,oBAAA,OAAO,EAAE,QAAQ;AACjB,oBAAA,QAAQ,EAAE,MAAM;AACjB,iBAAA;AACF,aAAA;SACF;IACH;+GAZW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAhB,gBAAgB,EAAA,CAAA,CAAA;gHAAhB,gBAAgB,EAAA,SAAA,EAFhB,CAAC,UAAU,CAAC,EAAA,CAAA,CAAA;;4FAEZ,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,SAAS,EAAE,CAAC,UAAU,CAAC;AACxB,iBAAA;;;MCHY,YAAY,CAAA;AAGvB,IAAA,WAAA,CAAmB,KAAQ,EAAA;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC;IAC3C;IAEO,GAAG,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;IAChC;AAEO,IAAA,GAAG,CAAC,KAAQ,EAAA;AACjB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;IAC1B;AACD;;MCMY,UAAU,CAAA;IACrB,WAAA,CACU,KAAY,EACZ,KAA6C,EAAA;QAD7C,IAAA,CAAA,KAAK,GAAL,KAAK;QACL,IAAA,CAAA,KAAK,GAAL,KAAK;IACZ;AAEH,IAAA,IAAY,OAAO,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;IACnD;AAEO,IAAA,GAAG,CAAC,IAAY,EAAA;AACrB,QAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;AACzB,YAAA,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;AACtC,SAAA,CAAC;IACJ;IAEO,OAAO,CAAC,IAAY,EAAE,eAAuB,EAAA;AAClD,QAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;AACzB,YAAA,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAC5B,CAAC,WAAW,MAAM,WAAW,KAAK,IAAI,GAAG,eAAe,GAAG,WAAW,CAAC,CACxE;AACF,SAAA,CAAC;IACJ;AAEO,IAAA,MAAM,CAAC,EAAmB,EAAA;AAC/B,QAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;AACzB,YAAA,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,KAAK,KAAI;AACvD,gBAAA,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;oBAC1B,OAAO,WAAW,KAAK,EAAE;gBAC3B;gBAEA,OAAO,KAAK,KAAK,EAAE;AACrB,YAAA,CAAC,CAAC;AACH,SAAA,CAAC;IACJ;AAEO,IAAA,GAAG,CAAC,OAAiB,EAAA;AAC1B,QAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;AACzB,YAAA,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO;AACtB,SAAA,CAAC;IACJ;IAEO,OAAO,GAAA;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACpF;AACD;MAEY,mBAAmB,CAAA;AAC9B,IAAA,WAAA,CAA2B,KAAY,EAAA;QAAZ,IAAA,CAAA,KAAK,GAAL,KAAK;IAAU;AAE1C,IAAA,IAAY,OAAO,GAAA;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,cAAc,IAAI,EAAE;IACtD;AAEA,IAAA,IAAW,WAAW,GAAA;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW;IACrC;IAEO,mBAAmB,CAAC,EAAmB,EAAE,UAAe,EAAA;AAC7D,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,KAAI;YACpD,IAAI,EAAE,CAAC,SAAS,KAAK,EAAE,IAAI,KAAK,KAAK,EAAE,EAAE;gBACvC,OAAO;AACL,oBAAA,GAAG,EAAE;AACL,oBAAA,GAAG,UAAU;iBACd;YACH;AACA,YAAA,OAAO,EAAE;AACX,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;YACzB,cAAc;AACf,SAAA,CAAC;IACJ;AAEO,IAAA,GAAG,CAAC,IAAY,EAAA;AACrB,QAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;AACzB,YAAA,cAAc,EAAE;AACd,gBAAA;AACE,oBAAA,SAAS,EAAE,IAAI;AAChB,iBAAA;AACF,aAAA;AACF,SAAA,CAAC;IACJ;AAEO,IAAA,MAAM,CAAC,IAAY,EAAA;AACxB,QAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;AACzB,YAAA,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CACjC,CAAC,EAAE,SAAS,EAAE,KAAK,SAAS,KAAK,IAAI,CACtC;AACF,SAAA,CAAC;IACJ;AAEO,IAAA,GAAG,CAAC,cAAqB,EAAA;AAC9B,QAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;YACzB,cAAc;AACf,SAAA,CAAC;IACJ;IAEO,YAAY,CAAC,EAAmB,EAAE,SAA4B,EAAA;QACnE,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC;IAC7C;IAEO,cAAc,CAAC,EAAmB,EAAE,WAAqC,EAAA;QAC9E,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC;IAC/C;IAEO,OAAO,GAAA;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM;AAC/B,YAAA,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC;AAC5D,YAAA,GAAG,EAAE;AACN,SAAA,CAAC,CAAC;IACL;AACD;MAEY,KAAK,CAAA;AAGhB,IAAA,WAAA,CAA2B,KAAY,EAAA;QAAZ,IAAA,CAAA,KAAK,GAAL,KAAK;AAFzB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,eAAe,CAAiB,EAAE,CAAC;AAG3D,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/D,QAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvE;AAEQ,IAAA,wBAAwB,CAAC,YAA4B,EAAA;QAC3D,MAAM,KAAK,GAAG;aACX,MAAM,CAAC,CAAC,WAAW,KAAK,WAAW,CAAC,KAAK,KAAK,MAAM;aACpD,MAAM,CACL,CAAC,IAAI,EAAE,WAAW,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC,EACzE,EAAE,CACkB;QAExB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE;YAClC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,CAAC;QACvC;IACF;IAEQ,iBAAiB,GAAA;AACvB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CACpB;AACE,YAAA,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE;AAChC,YAAA,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE;AAClC,YAAA,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE;SACvC,CAAC,GAAG,CAAe,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM;AACxC,YAAA,EAAE,EAAE,IAAI;AACR,YAAA,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;YACpB,KAAK;SACN,CAAC,CAAC,CACJ;IACH;IAEO,cAAc,CAAC,EAAU,EAAE,KAAa,EAAA;AAC7C,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CACpB,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,KAAI;AAC/C,YAAA,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,EAAE;gBACzB,OAAO;AACL,oBAAA,GAAG,WAAW;oBACd,KAAK;iBACN;YACH;AACA,YAAA,OAAO,WAAW;QACpB,CAAC,CAAC,CACH;IACH;IAEO,OAAO,CAAC,WAAmB,EAAE,gBAAwB,EAAA;AAC1D,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CACpB,eAAe,CACb,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,EAC5B,WAAW,EACX,gBAAgB,CACjB,CACF;IACH;AAEO,IAAA,EAAE,CAAC,MAAc,EAAA;AACtB,QAAA,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,MAAM;IACjE;AAEO,IAAA,GAAG,CAAC,KAA2C,EAAA;QACpD,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,CAAC;IACvC;IAEO,OAAO,GAAA;AACZ,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE;YACjD,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,KAAyB;QAC3D;AAEA,QAAA,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;IAC7D;IAEO,QAAQ,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAC1B,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,EACnD,EAAE,CACH;IACH;AACD;MAEY,YAAY,CAAA;AACvB,IAAA,WAAA,CAA2B,KAAY,EAAA;QAAZ,IAAA,CAAA,KAAK,GAAL,KAAK;IAAU;AAE1C,IAAA,IAAY,OAAO,GAAA;;AAEjB,QAAA,QAAQ,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,IAAI,EAAE;IAChD;IAEO,MAAM,CAAC,EAAmB,EAAE,UAA2B,EAAA;AAC5D,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,KAAI;AACjD,YAAA,IAAI,KAAK,KAAK,EAAE,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,IAAI,MAAM,CAAC,SAAS,KAAK,EAAE,EAAE;gBACnE,OAAO;AACL,oBAAA,GAAG,MAAM;AACT,oBAAA,GAAG,UAAU;iBACd;YACH;AACA,YAAA,OAAO,MAAM;AACf,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;AACzB,YAAA,OAAO,EAAE,OAAmB;AAC7B,SAAA,CAAC;IACJ;AAEO,IAAA,GAAG,CAAC,MAAc,EAAA;AACvB,QAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;YACzB,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;AACnC,SAAA,CAAC;IACJ;AAEO,IAAA,MAAM,CAAC,EAAmB,EAAA;AAC/B,QAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;AACzB,YAAA,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,KAAI;AAC7C,gBAAA,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,IAAI,MAAM,CAAC,SAAS,KAAK,EAAE,IAAI,KAAK,KAAK,EAAE,EAAE;AACnE,oBAAA,OAAO,KAAK;gBACd;AAEA,gBAAA,OAAO,IAAI;AACb,YAAA,CAAC,CAAC;AACH,SAAA,CAAC;IACJ;AAEO,IAAA,GAAG,CAAC,OAAiB,EAAA;AAC1B,QAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;YACzB,OAAO;AACR,SAAA,CAAC;IACJ;IAEO,OAAO,CAAC,IAAY,EAAE,eAAuB,EAAA;AAClD,QAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAI;AACnC,gBAAA,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,QAAQ,GAAG,WAAW;gBACpD,OAAO,MAAM,CAAC,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,SAAS,KAAK;AACpD,sBAAE;AACA,wBAAA,GAAG,MAAM;wBACT,CAAC,KAAK,GAAG,eAAe;AACzB;sBACC,MAAM;AACZ,YAAA,CAAC,CAAC;AACH,SAAA,CAAC;IACJ;IAEO,OAAO,GAAA;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,MAAM;AACnC,YAAA,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE;gBAClE,YAAY;gBACZ,UAAU;aACX,CAAC;YACF,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CACjD,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,EACjC,CAAC,YAAY,EAAE,UAAU,CAAC,CAC3B;AACD,YAAA,GAAG,MAAM;AACV,SAAA,CAAC,CAAC;IACL;AACD;;ICjSW;AAAZ,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,UAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,UAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,UAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,UAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;;;AAGnB,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACjB,CAAC,EATW,UAAU,KAAV,UAAU,GAAA,EAAA,CAAA,CAAA;AAiBhB,MAAO,KAAM,SAAQ,YAAwB,CAAA;IAajD,WAAA,CACS,IAAU,EACT,eAAA,GAAoC,CAAC,QAAQ,KAAK,QAAQ,EAAA;QAElE,KAAK,CAAC,EAAE,CAAC;QAHF,IAAA,CAAA,IAAI,GAAJ,IAAI;QACH,IAAA,CAAA,eAAe,GAAf,eAAe;QAGvB,IAAI,CAAC,IAAI,EAAE;IACb;IAEQ,IAAI,GAAA;AACV,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC;AACzD,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC;AAC7D,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC;QACzD,IAAI,CAAC,cAAc,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC;QACnD,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC;IAC9B;IAEO,WAAW,GAAA;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE;IACtC;AAEO,IAAA,QAAQ,CAAC,KAAiB,EAAA;QAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;IAC/E;AAEO,IAAA,eAAe,CAAC,YAAiC,EAAA;QACtD,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,IAAI,CAAC,eAAe,CAClB;AACE,YAAA,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AAC1B,YAAA,GAAG,YAAY;SAChB,EACD,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EACvB,IAAI,CACL,CACF;IACH;AAEO,IAAA,QAAQ,CAAC,KAAa,EAAA;AAC3B,QAAA,IAAI,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,CAAC;IACjC;IAEO,SAAS,GAAA;AACd,QAAA,OAAO,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IAC3C;AACD;;MCzEY,WAAW,CAAA;AAWtB,IAAA,WAAA,CAAmC,IAAU,EAAA;QAAV,IAAA,CAAA,IAAI,GAAJ,IAAI;QACrC,IAAI,CAAC,OAAO,EAAE;IAChB;IAEQ,OAAO,GAAA;AACb,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAC7C,IAAI,EACJ,YAAY,CACO;AAErB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,CAAmB;AAC7E,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC;AAC3D,QAAA,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,KAAK,MAAM,CAAC;AACrE,QAAA,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,KAAK,MAAM,CAAC;QACzE,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,MAAM;AACnE,YAAA,GAAG,MAAM;YACT,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,IAAI,EAAE;gBACzD,YAAY;gBACZ,UAAU;aACX,CAAC;AACH,SAAA,CAAC,CAAC;IACL;AACD;;ACjCK,MAAO,WAAY,SAAQ,YAA0B,CAAA;AACzD,IAAA,WAAA,CAAmB,WAAyB,EAAA;QAC1C,KAAK,CAAC,WAAW,CAAC;IACpB;AAEO,IAAA,QAAQ,CACb,WAAmB,EACnB,gBAAwB,EACxB,UAAuB,EACvB,eAA4B,EAAA;QAE5B,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,aAAa,CACX,IAAI,CAAC,GAAG,EAAE,EACV,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,eAAe,CAChB,CACF;IACH;AAEO,IAAA,mBAAmB,CAAC,gBAAyB,EAAA;AAClD,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YAChB,GAAG,IAAI,CAAC,GAAG,EAAE;YACb;AACD,SAAA,CAAC;IACJ;AACD;;AC/BK,MAAO,SAAU,SAAQ,YAAwB,CAAA;AACrD,IAAA,WAAA,CAAmB,KAAK,EAAA;QACtB,KAAK,CAAC,KAAK,CAAC;IACd;AACD;;MCkBY,mBAAmB,CAAA;AADhC,IAAA,WAAA,GAAA;QAQU,IAAA,CAAA,kBAAkB,GAAY,KAAK;AAMnC,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,OAAO,EAAO;AAE9B,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,CAAc,CAAC,OAAO,KAAI;AACjE,YAAA,IAAI,CAAC,mBAAmB,GAAG,OAAO;AACpC,QAAA,CAAC,CAAC;AAEc,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,OAAO,CAAQ,CAAC,OAAO,KAAI;AACrD,YAAA,IAAI,CAAC,aAAa,GAAG,OAAO;AAC9B,QAAA,CAAC,CAAC;AAEc,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,eAAe,CAAqB,EAAE,CAAC;AAwIpE,IAAA;AAlIS,IAAA,MAAM,IAAI,GAAA;QAChB,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC;QAEtC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;AACnC,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AAEjB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CACrB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CACnC;AACD,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;YAC/B,IAAI,CAAC,mBAAmB,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvD,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,SAAS,EAAE;AAEhB,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC5B,YAAA,IAAI,CAAC;iBACF,IAAI,CACH,SAAS,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC;AAChC,gBAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,KAAI;AACtD,oBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AACpB,oBAAA,OAAO,EAAE,CAAC,IAAI,CAAC;AACjB,gBAAA,CAAC,CAAC,CAAC;AACH,gBAAA,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC;AACnC,aAAA,CAAC,CAAC;iBAEJ,SAAS,CACR,CAAC,CAAC,cAAc,EAAE,yBAAyB,CAAC,KAAI;gBAC9C,IAAI,CAAC,cAAc,EAAE;oBACnB;gBACF;AAEA,gBAAA,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,cAAc;AAEjD,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAClB,SAAS,CAAC,wBAAwB,CAChC,UAAU,EACV,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CACvB,CACF;gBACD,IAAI,yBAAyB,EAAE;AAC7B,oBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CACnB,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAClD;gBACH;AACF,YAAA,CAAC,CACF;QACL;IACF;IAEQ,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAA;AAC3C,QAAA,MAAM,EACJ,SAAS,EACT,yBAAyB,EACzB,KAAK,EAAE,cAAc,GACtB,GAAG,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE;YACxC,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,kBAAkB,EAAE,QAAQ,EAAE,cAAc,GAAG,CAAC,CAAC,EAAE,WAAW;AAC/D,SAAA,CAAC;AAEF,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC;AACjB,cAAE;AACF,cAAE,cAAc,IAAI,QAAQ;QAE9B,IAAI,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AACrD,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAC1B,gBAAA,yBAAyB,EAAE,OAAO,CAAC,yBAAyB,CAAC;gBAC7D,KAAK;AACN,aAAA,CAAC;QACJ;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,SAAS,EAAE;AACzC,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC;QAC/B;AAEA,QAAA,OAAO,KAAK;IACd;AAEO,IAAA,aAAa,CAAC,UAAsB,EAAA;AACzC,QAAA,IAAI,CAAC,KAAK,GAAG,UAAU;QACvB,IAAI,CAAC,IAAI,EAAE;IACb;IAEQ,SAAS,GAAA;QACf,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AAC/C,YAAA,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,YAAY,EAAE;AACrC,gBAAA,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,eAAe,CAAC;oBAC1D,CAAC,GAAG,GAAG,KAAK;AACb,iBAAA,CAAC,CAAC;YACL;AACF,QAAA,CAAC,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,KAAI;YACxB,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,SAAS,KAAI;gBACpC,IAAI,CAAC,eAAe,CAAC;AACnB,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA,CAAC;AACJ,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;IAEO,MAAM,WAAW,CAAC,KAAK,EAAA;AAC5B,QAAA,IAAI,KAAK,CAAC,KAAK,EAAE;AACf,YAAA,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;QAC1C;AAEA,QAAA,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;AAC7C,YAAA,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,YAAY,EAAE;gBACrC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;YACtB;AACF,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,SAAS,EAAE;IAClB;AAEO,IAAA,eAAe,CAAC,YAAY,EAAA;AACjC,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AACd,YAAA,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;AACxB,YAAA,GAAG,YAAY;AAChB,SAAA,CAAC;IACJ;IAEO,iBAAiB,GAAA;AACtB,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;IAChC;IAEO,gBAAgB,GAAA;AACrB,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;IACjC;+GA9JW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAnB,mBAAmB,EAAA,CAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B;;;ACzBD;;AAEG;;ACFH;AACA;AACA;AACA;;ACHA;;AAEG;;"}
|
package/index.d.ts
CHANGED
|
@@ -1 +1,176 @@
|
|
|
1
|
-
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { ModuleWithProviders } from '@angular/core';
|
|
3
|
+
import { BehaviorSubject, Observable } from 'rxjs';
|
|
4
|
+
import * as _cubejs_client_core from '@cubejs-client/core';
|
|
5
|
+
import { Query as Query$1, LoadMethodOptions, ResultSet, SqlQuery, DryRunResponse, Meta, CubeApiOptions, TimeDimensionGranularity, Filter, TQueryOrderObject, TQueryOrderArray, TCubeMeasure, TCubeDimension, TCubeSegment, PivotConfig as PivotConfig$1, TSourceAxis } from '@cubejs-client/core';
|
|
6
|
+
|
|
7
|
+
declare class CubeClientModule {
|
|
8
|
+
static forRoot(config: any): ModuleWithProviders<CubeClientModule>;
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CubeClientModule, never>;
|
|
10
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<CubeClientModule, never, never, never>;
|
|
11
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<CubeClientModule>;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
type CubeConfig = {
|
|
15
|
+
token: string;
|
|
16
|
+
options?: CubeApiOptions;
|
|
17
|
+
};
|
|
18
|
+
declare class CubeClient {
|
|
19
|
+
private config;
|
|
20
|
+
ready$: BehaviorSubject<boolean>;
|
|
21
|
+
private cubeApi;
|
|
22
|
+
private latestConfig;
|
|
23
|
+
constructor(config: any | Observable<any>);
|
|
24
|
+
private apiInstance;
|
|
25
|
+
load(query: Query$1 | Query$1[], options?: LoadMethodOptions): Observable<ResultSet<any>>;
|
|
26
|
+
sql(query: Query$1 | Query$1[], options?: LoadMethodOptions): Observable<SqlQuery>;
|
|
27
|
+
dryRun(query: Query$1 | Query$1[], options?: LoadMethodOptions): Observable<DryRunResponse>;
|
|
28
|
+
meta(options?: LoadMethodOptions): Observable<Meta>;
|
|
29
|
+
watch(query: any, params?: {}): Observable<ResultSet<any>>;
|
|
30
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CubeClient, never>;
|
|
31
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<CubeClient>;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
declare class StateSubject<T = any> {
|
|
35
|
+
subject: BehaviorSubject<T>;
|
|
36
|
+
constructor(value: T);
|
|
37
|
+
get(): T;
|
|
38
|
+
set(value: T): void;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
type TOrder = 'asc' | 'desc' | 'none';
|
|
42
|
+
type TOrderMember = {
|
|
43
|
+
id: string;
|
|
44
|
+
order: TOrder;
|
|
45
|
+
title: string;
|
|
46
|
+
};
|
|
47
|
+
declare class BaseMember {
|
|
48
|
+
private query;
|
|
49
|
+
private field;
|
|
50
|
+
constructor(query: Query, field: 'measures' | 'dimensions' | 'segments');
|
|
51
|
+
private get members();
|
|
52
|
+
add(name: string): void;
|
|
53
|
+
replace(name: string, replaceWithName: string): void;
|
|
54
|
+
remove(by: string | number): void;
|
|
55
|
+
set(members: string[]): void;
|
|
56
|
+
asArray(): (_cubejs_client_core.TCubeMeasure | _cubejs_client_core.TCubeDimension | _cubejs_client_core.TCubeSegment | _cubejs_client_core.NotFoundMember)[];
|
|
57
|
+
}
|
|
58
|
+
declare class TimeDimensionMember {
|
|
59
|
+
private query;
|
|
60
|
+
constructor(query: Query);
|
|
61
|
+
private get members();
|
|
62
|
+
get granularity(): string;
|
|
63
|
+
updateTimeDimension(by: string | number, updateWith: any): void;
|
|
64
|
+
add(name: string): void;
|
|
65
|
+
remove(name: string): void;
|
|
66
|
+
set(timeDimensions: any[]): void;
|
|
67
|
+
setDateRange(by: string | number, dateRange: string | string[]): void;
|
|
68
|
+
setGranularity(by: string | number, granularity: TimeDimensionGranularity): void;
|
|
69
|
+
asArray(): any[];
|
|
70
|
+
}
|
|
71
|
+
declare class Order {
|
|
72
|
+
private query;
|
|
73
|
+
orderMembers: BehaviorSubject<TOrderMember[]>;
|
|
74
|
+
constructor(query: Query);
|
|
75
|
+
private handleOrderMembersChange;
|
|
76
|
+
private handleQueryChange;
|
|
77
|
+
setMemberOrder(id: string, order: TOrder): void;
|
|
78
|
+
reorder(sourceIndex: number, destinationIndex: number): void;
|
|
79
|
+
of(member: string): any;
|
|
80
|
+
set(order: TQueryOrderObject | TQueryOrderArray): void;
|
|
81
|
+
asArray(): TQueryOrderArray;
|
|
82
|
+
asObject(): TQueryOrderObject;
|
|
83
|
+
}
|
|
84
|
+
declare class FilterMember {
|
|
85
|
+
private query;
|
|
86
|
+
constructor(query: Query);
|
|
87
|
+
private get filters();
|
|
88
|
+
update(by: string | number, updateWith: Partial<Filter>): void;
|
|
89
|
+
add(filter: Filter): void;
|
|
90
|
+
remove(by: string | number): void;
|
|
91
|
+
set(filters: Filter[]): void;
|
|
92
|
+
replace(name: string, replaceWithName: string): void;
|
|
93
|
+
asArray(): any[];
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
declare enum MemberType {
|
|
97
|
+
Measures = "measures",
|
|
98
|
+
Dimensions = "dimensions",
|
|
99
|
+
Segments = "segments",
|
|
100
|
+
TimeDimensions = "timeDimensions",
|
|
101
|
+
Filters = "filters",
|
|
102
|
+
Order = "order"
|
|
103
|
+
}
|
|
104
|
+
type OnChangeCallback = (newQuery: Query$1, oldQuery: Query$1, query: Query) => Query$1;
|
|
105
|
+
declare class Query extends StateSubject<Query$1> {
|
|
106
|
+
meta: Meta;
|
|
107
|
+
private _onBeforeChange;
|
|
108
|
+
measures: BaseMember;
|
|
109
|
+
dimensions: BaseMember;
|
|
110
|
+
segments: BaseMember;
|
|
111
|
+
timeDimensions: TimeDimensionMember;
|
|
112
|
+
filters: FilterMember;
|
|
113
|
+
order: Order;
|
|
114
|
+
constructor(meta: Meta, _onBeforeChange?: OnChangeCallback);
|
|
115
|
+
private init;
|
|
116
|
+
asCubeQuery(): Query$1;
|
|
117
|
+
setQuery(query: Query$1): void;
|
|
118
|
+
setPartialQuery(partialQuery: Partial<Query$1>): void;
|
|
119
|
+
setLimit(limit: number): void;
|
|
120
|
+
isPresent(): boolean;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
declare class BuilderMeta {
|
|
124
|
+
readonly meta: Meta;
|
|
125
|
+
measures: TCubeMeasure[];
|
|
126
|
+
dimensions: TCubeDimension[];
|
|
127
|
+
segments: TCubeSegment[];
|
|
128
|
+
timeDimensions: TCubeDimension[];
|
|
129
|
+
filters: Array<TCubeMeasure | TCubeDimension>;
|
|
130
|
+
constructor(meta: Meta);
|
|
131
|
+
private mapMeta;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
declare class PivotConfig extends StateSubject<PivotConfig$1> {
|
|
135
|
+
constructor(pivotConfig: PivotConfig$1);
|
|
136
|
+
moveItem(sourceIndex: number, destinationIndex: number, sourceAxis: TSourceAxis, destinationAxis: TSourceAxis): void;
|
|
137
|
+
setFillMissingDates(fillMissingDates: boolean): void;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
type TChartType = 'line' | 'area' | 'bar' | 'number' | 'table' | 'pie';
|
|
141
|
+
declare class ChartType extends StateSubject<TChartType> {
|
|
142
|
+
constructor(value: any);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
type TQueryBuilderState = {
|
|
146
|
+
query?: Query$1;
|
|
147
|
+
pivotConfig?: PivotConfig$1;
|
|
148
|
+
chartType?: TChartType;
|
|
149
|
+
};
|
|
150
|
+
declare class QueryBuilderService {
|
|
151
|
+
private _cube;
|
|
152
|
+
private _meta;
|
|
153
|
+
private _query;
|
|
154
|
+
private _disableHeuristics;
|
|
155
|
+
private _resolveQuery;
|
|
156
|
+
private _resolveBuilderMeta;
|
|
157
|
+
private _heuristicChange$;
|
|
158
|
+
readonly builderMeta: Promise<BuilderMeta>;
|
|
159
|
+
readonly query: Promise<Query>;
|
|
160
|
+
readonly state: BehaviorSubject<TQueryBuilderState>;
|
|
161
|
+
pivotConfig: PivotConfig;
|
|
162
|
+
chartType: ChartType;
|
|
163
|
+
private init;
|
|
164
|
+
private _handleQueryChange;
|
|
165
|
+
setCubeClient(cubeClient: CubeClient): void;
|
|
166
|
+
private subscribe;
|
|
167
|
+
deserialize(state: any): Promise<void>;
|
|
168
|
+
setPartialState(partialState: any): void;
|
|
169
|
+
disableHeuristics(): void;
|
|
170
|
+
enableHeuristics(): void;
|
|
171
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<QueryBuilderService, never>;
|
|
172
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<QueryBuilderService>;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
export { BaseMember, BuilderMeta, ChartType, CubeClient, CubeClientModule, FilterMember, MemberType, Order, PivotConfig, Query, QueryBuilderService, TimeDimensionMember };
|
|
176
|
+
export type { CubeConfig, OnChangeCallback, TChartType, TOrder, TOrderMember, TQueryBuilderState };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cubejs-client/ngx",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.41",
|
|
4
4
|
"author": "Cube Dev, Inc.",
|
|
5
5
|
"engines": {},
|
|
6
6
|
"repository": {
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
"tslib": "^2.3.0"
|
|
26
26
|
},
|
|
27
27
|
"peerDependencies": {
|
|
28
|
+
"@angular/core": ">=20.0.0",
|
|
28
29
|
"@cubejs-client/core": ">=0.28.1",
|
|
29
30
|
"rxjs": ">=6.6.0"
|
|
30
31
|
},
|
|
@@ -36,8 +37,6 @@
|
|
|
36
37
|
},
|
|
37
38
|
".": {
|
|
38
39
|
"types": "./index.d.ts",
|
|
39
|
-
"esm2022": "./esm2022/cubejs-client-ngx.mjs",
|
|
40
|
-
"esm": "./esm2022/cubejs-client-ngx.mjs",
|
|
41
40
|
"default": "./fesm2022/cubejs-client-ngx.mjs"
|
|
42
41
|
}
|
|
43
42
|
},
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './index';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ViZWpzLWNsaWVudC1uZ3guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9jdWJlanMtY2xpZW50LW5neC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
package/esm2022/index.mjs
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
// This file is not used to build this module. It is only used during editing
|
|
2
|
-
// by the TypeScript language service and during build for verification. `ngc`
|
|
3
|
-
// replaces this file with production index.ts when it rewrites private symbol
|
|
4
|
-
// names.
|
|
5
|
-
export * from './src/public_api';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw2RUFBNkU7QUFDN0UsOEVBQThFO0FBQzlFLDhFQUE4RTtBQUM5RSxTQUFTO0FBRVQsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgZmlsZSBpcyBub3QgdXNlZCB0byBidWlsZCB0aGlzIG1vZHVsZS4gSXQgaXMgb25seSB1c2VkIGR1cmluZyBlZGl0aW5nXG4vLyBieSB0aGUgVHlwZVNjcmlwdCBsYW5ndWFnZSBzZXJ2aWNlIGFuZCBkdXJpbmcgYnVpbGQgZm9yIHZlcmlmaWNhdGlvbi4gYG5nY2Bcbi8vIHJlcGxhY2VzIHRoaXMgZmlsZSB3aXRoIHByb2R1Y3Rpb24gaW5kZXgudHMgd2hlbiBpdCByZXdyaXRlcyBwcml2YXRlIHN5bWJvbFxuLy8gbmFtZXMuXG5cbmV4cG9ydCAqIGZyb20gJy4vc3JjL3B1YmxpY19hcGknO1xuIl19
|