@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/esm2022/src/client.mjs
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { Injectable, Inject } from '@angular/core';
|
|
2
|
-
import { Observable, from, BehaviorSubject } from 'rxjs';
|
|
3
|
-
import cube from '@cubejs-client/core';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class CubeClient {
|
|
6
|
-
config;
|
|
7
|
-
ready$ = new BehaviorSubject(false);
|
|
8
|
-
cubeApi;
|
|
9
|
-
constructor(config) {
|
|
10
|
-
this.config = config;
|
|
11
|
-
if (this.config instanceof Observable) {
|
|
12
|
-
this.config.subscribe(() => {
|
|
13
|
-
this.ready$.next(true);
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
this.ready$.next(true);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
apiInstance() {
|
|
21
|
-
if (!this.cubeApi) {
|
|
22
|
-
if (this.config instanceof Observable) {
|
|
23
|
-
this.config.subscribe((config) => {
|
|
24
|
-
this.cubeApi = cube(config.token, config.options);
|
|
25
|
-
if (!this.cubeApi) {
|
|
26
|
-
throw new Error('Cannot create CubeApi instance. Please check that the config is passed correctly and contains all required options.');
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
this.cubeApi = cube(this.config.token, this.config.options);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
return this.cubeApi;
|
|
35
|
-
}
|
|
36
|
-
load(query, options) {
|
|
37
|
-
return from(this.apiInstance().load(query, options));
|
|
38
|
-
}
|
|
39
|
-
sql(query, options) {
|
|
40
|
-
return from(this.apiInstance().sql(query, options));
|
|
41
|
-
}
|
|
42
|
-
dryRun(query, options) {
|
|
43
|
-
return from(this.apiInstance().dryRun(query, options));
|
|
44
|
-
}
|
|
45
|
-
meta(options) {
|
|
46
|
-
return from(this.apiInstance().meta(options));
|
|
47
|
-
}
|
|
48
|
-
watch(query, params = {}) {
|
|
49
|
-
return new Observable((observer) => query.subscribe({
|
|
50
|
-
next: async (currentQuery) => {
|
|
51
|
-
try {
|
|
52
|
-
const resultSet = await this.apiInstance().load(currentQuery, params);
|
|
53
|
-
observer.next(resultSet);
|
|
54
|
-
}
|
|
55
|
-
catch (err) {
|
|
56
|
-
observer.error(err);
|
|
57
|
-
}
|
|
58
|
-
},
|
|
59
|
-
}));
|
|
60
|
-
}
|
|
61
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CubeClient, deps: [{ token: 'config' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
62
|
-
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CubeClient });
|
|
63
|
-
}
|
|
64
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CubeClient, decorators: [{
|
|
65
|
-
type: Injectable
|
|
66
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
67
|
-
type: Inject,
|
|
68
|
-
args: ['config']
|
|
69
|
-
}] }] });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxJQVNOLE1BQU0scUJBQXFCLENBQUM7O0FBUTdCLE1BQU0sT0FBTyxVQUFVO0lBS3dCO0lBSnRDLE1BQU0sR0FBNkIsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFN0QsT0FBTyxDQUFVO0lBRXpCLFlBQTZDLE1BQTZCO1FBQTdCLFdBQU0sR0FBTixNQUFNLENBQXVCO1FBQ3hFLElBQUksSUFBSSxDQUFDLE1BQU0sWUFBWSxVQUFVLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQixJQUFJLElBQUksQ0FBQyxNQUFNLFlBQVksVUFBVSxFQUFFLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7b0JBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUVsRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO3dCQUNsQixNQUFNLElBQUksS0FBSyxDQUNiLHFIQUFxSCxDQUN0SCxDQUFDO29CQUNKLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM5RCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRU0sSUFBSSxDQUNULEtBQXNCLEVBQ3RCLE9BQTJCO1FBRTNCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBNEIsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFTSxHQUFHLENBQ1IsS0FBc0IsRUFDdEIsT0FBMkI7UUFFM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRU0sTUFBTSxDQUNYLEtBQXNCLEVBQ3RCLE9BQTJCO1FBRTNCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVNLElBQUksQ0FBQyxPQUEyQjtRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLEVBQUU7UUFDN0IsT0FBTyxJQUFJLFVBQVUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztZQUNsRCxJQUFJLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxFQUFFO2dCQUMzQixJQUFJLENBQUM7b0JBQ0gsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQztvQkFDdEUsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDM0IsQ0FBQztnQkFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO29CQUNiLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3RCLENBQUM7WUFDSCxDQUFDO1NBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDOzJIQXZFVSxVQUFVLGtCQUtNLFFBQVE7K0hBTHhCLFVBQVU7OzRGQUFWLFVBQVU7a0JBRHRCLFVBQVU7OzBCQU1XLE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZnJvbSwgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgY3ViZSwge1xuICBDdWJlQXBpLFxuICBDdWJlQXBpT3B0aW9ucyxcbiAgRHJ5UnVuUmVzcG9uc2UsXG4gIExvYWRNZXRob2RPcHRpb25zLFxuICBNZXRhLFxuICBRdWVyeSxcbiAgUmVzdWx0U2V0LFxuICBTcWxRdWVyeSxcbn0gZnJvbSAnQGN1YmVqcy1jbGllbnQvY29yZSc7XG5cbmV4cG9ydCB0eXBlIEN1YmVDb25maWcgPSB7XG4gIHRva2VuOiBzdHJpbmc7XG4gIG9wdGlvbnM/OiBDdWJlQXBpT3B0aW9ucztcbn07XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDdWJlQ2xpZW50IHtcbiAgcHVibGljIHJlYWR5JDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgcHJpdmF0ZSBjdWJlQXBpOiBDdWJlQXBpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihASW5qZWN0KCdjb25maWcnKSBwcml2YXRlIGNvbmZpZzogYW55IHwgT2JzZXJ2YWJsZTxhbnk+KSB7XG4gICAgaWYgKHRoaXMuY29uZmlnIGluc3RhbmNlb2YgT2JzZXJ2YWJsZSkge1xuICAgICAgdGhpcy5jb25maWcuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5yZWFkeSQubmV4dCh0cnVlKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlYWR5JC5uZXh0KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBpSW5zdGFuY2UoKTogQ3ViZUFwaSB7XG4gICAgaWYgKCF0aGlzLmN1YmVBcGkpIHtcbiAgICAgIGlmICh0aGlzLmNvbmZpZyBpbnN0YW5jZW9mIE9ic2VydmFibGUpIHtcbiAgICAgICAgdGhpcy5jb25maWcuc3Vic2NyaWJlKChjb25maWcpID0+IHtcbiAgICAgICAgICB0aGlzLmN1YmVBcGkgPSBjdWJlKGNvbmZpZy50b2tlbiwgY29uZmlnLm9wdGlvbnMpO1xuXG4gICAgICAgICAgaWYgKCF0aGlzLmN1YmVBcGkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgJ0Nhbm5vdCBjcmVhdGUgQ3ViZUFwaSBpbnN0YW5jZS4gUGxlYXNlIGNoZWNrIHRoYXQgdGhlIGNvbmZpZyBpcyBwYXNzZWQgY29ycmVjdGx5IGFuZCBjb250YWlucyBhbGwgcmVxdWlyZWQgb3B0aW9ucy4nXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmN1YmVBcGkgPSBjdWJlKHRoaXMuY29uZmlnLnRva2VuLCB0aGlzLmNvbmZpZy5vcHRpb25zKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jdWJlQXBpO1xuICB9XG5cbiAgcHVibGljIGxvYWQoXG4gICAgcXVlcnk6IFF1ZXJ5IHwgUXVlcnlbXSxcbiAgICBvcHRpb25zPzogTG9hZE1ldGhvZE9wdGlvbnNcbiAgKTogT2JzZXJ2YWJsZTxSZXN1bHRTZXQ8YW55Pj4ge1xuICAgIHJldHVybiBmcm9tKHRoaXMuYXBpSW5zdGFuY2UoKS5sb2FkKHF1ZXJ5LCBvcHRpb25zKSBhcyBQcm9taXNlPFJlc3VsdFNldDxhbnk+Pik7XG4gIH1cblxuICBwdWJsaWMgc3FsKFxuICAgIHF1ZXJ5OiBRdWVyeSB8IFF1ZXJ5W10sXG4gICAgb3B0aW9ucz86IExvYWRNZXRob2RPcHRpb25zXG4gICk6IE9ic2VydmFibGU8U3FsUXVlcnk+IHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLmFwaUluc3RhbmNlKCkuc3FsKHF1ZXJ5LCBvcHRpb25zKSk7XG4gIH1cblxuICBwdWJsaWMgZHJ5UnVuKFxuICAgIHF1ZXJ5OiBRdWVyeSB8IFF1ZXJ5W10sXG4gICAgb3B0aW9ucz86IExvYWRNZXRob2RPcHRpb25zXG4gICk6IE9ic2VydmFibGU8RHJ5UnVuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLmFwaUluc3RhbmNlKCkuZHJ5UnVuKHF1ZXJ5LCBvcHRpb25zKSk7XG4gIH1cblxuICBwdWJsaWMgbWV0YShvcHRpb25zPzogTG9hZE1ldGhvZE9wdGlvbnMpOiBPYnNlcnZhYmxlPE1ldGE+IHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLmFwaUluc3RhbmNlKCkubWV0YShvcHRpb25zKSk7XG4gIH1cblxuICBwdWJsaWMgd2F0Y2gocXVlcnksIHBhcmFtcyA9IHt9KTogT2JzZXJ2YWJsZTxSZXN1bHRTZXQ8YW55Pj4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXIpID0+IHF1ZXJ5LnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiBhc3luYyAoY3VycmVudFF1ZXJ5KSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0U2V0ID0gYXdhaXQgdGhpcy5hcGlJbnN0YW5jZSgpLmxvYWQoY3VycmVudFF1ZXJ5LCBwYXJhbXMpO1xuICAgICAgICAgIG9ic2VydmVyLm5leHQocmVzdWx0U2V0KTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KSk7XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/src/module.mjs
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CubeClient } from './client';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class CubeClientModule {
|
|
5
|
-
static forRoot(config) {
|
|
6
|
-
return {
|
|
7
|
-
ngModule: CubeClientModule,
|
|
8
|
-
providers: [
|
|
9
|
-
CubeClient,
|
|
10
|
-
{
|
|
11
|
-
provide: 'config',
|
|
12
|
-
useValue: config,
|
|
13
|
-
},
|
|
14
|
-
],
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CubeClientModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
18
|
-
/** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: CubeClientModule });
|
|
19
|
-
/** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CubeClientModule, providers: [CubeClient] });
|
|
20
|
-
}
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CubeClientModule, decorators: [{
|
|
22
|
-
type: NgModule,
|
|
23
|
-
args: [{
|
|
24
|
-
providers: [CubeClient],
|
|
25
|
-
}]
|
|
26
|
-
}] });
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUt0QyxNQUFNLE9BQU8sZ0JBQWdCO0lBQ3BCLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBVztRQUMvQixPQUFPO1lBQ0wsUUFBUSxFQUFFLGdCQUFnQjtZQUMxQixTQUFTLEVBQUU7Z0JBQ1QsVUFBVTtnQkFDVjtvQkFDRSxPQUFPLEVBQUUsUUFBUTtvQkFDakIsUUFBUSxFQUFFLE1BQU07aUJBQ2pCO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzsySEFaVSxnQkFBZ0I7NEhBQWhCLGdCQUFnQjs0SEFBaEIsZ0JBQWdCLGFBRmhCLENBQUMsVUFBVSxDQUFDOzs0RkFFWixnQkFBZ0I7a0JBSDVCLFFBQVE7bUJBQUM7b0JBQ1IsU0FBUyxFQUFFLENBQUMsVUFBVSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDdWJlQ2xpZW50IH0gZnJvbSAnLi9jbGllbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBwcm92aWRlcnM6IFtDdWJlQ2xpZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQ3ViZUNsaWVudE1vZHVsZSB7XG4gIHB1YmxpYyBzdGF0aWMgZm9yUm9vdChjb25maWc6IGFueSk6IE1vZHVsZVdpdGhQcm92aWRlcnM8Q3ViZUNsaWVudE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQ3ViZUNsaWVudE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICBDdWJlQ2xpZW50LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogJ2NvbmZpZycsXG4gICAgICAgICAgdXNlVmFsdWU6IGNvbmZpZyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Public API Surface of cubejs-client-ngx
|
|
3
|
-
*/
|
|
4
|
-
export { CubeClientModule } from './module';
|
|
5
|
-
export * from './client';
|
|
6
|
-
export * from './query-builder/query-builder.service';
|
|
7
|
-
export * from './query-builder/query';
|
|
8
|
-
export * from './query-builder/builder-meta';
|
|
9
|
-
export * from './query-builder/query-members';
|
|
10
|
-
export * from './query-builder/pivot-config';
|
|
11
|
-
export * from './query-builder/chart-type';
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzVDLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBjdWJlanMtY2xpZW50LW5neFxuICovXG5cbmV4cG9ydCB7IEN1YmVDbGllbnRNb2R1bGUgfSBmcm9tICcuL21vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2NsaWVudCc7XG5leHBvcnQgKiBmcm9tICcuL3F1ZXJ5LWJ1aWxkZXIvcXVlcnktYnVpbGRlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vcXVlcnktYnVpbGRlci9xdWVyeSc7XG5leHBvcnQgKiBmcm9tICcuL3F1ZXJ5LWJ1aWxkZXIvYnVpbGRlci1tZXRhJztcbmV4cG9ydCAqIGZyb20gJy4vcXVlcnktYnVpbGRlci9xdWVyeS1tZW1iZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vcXVlcnktYnVpbGRlci9waXZvdC1jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9xdWVyeS1idWlsZGVyL2NoYXJ0LXR5cGUnO1xuIl19
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
export class BuilderMeta {
|
|
2
|
-
meta;
|
|
3
|
-
measures;
|
|
4
|
-
dimensions;
|
|
5
|
-
segments;
|
|
6
|
-
timeDimensions;
|
|
7
|
-
filters;
|
|
8
|
-
constructor(meta) {
|
|
9
|
-
this.meta = meta;
|
|
10
|
-
this.mapMeta();
|
|
11
|
-
}
|
|
12
|
-
mapMeta() {
|
|
13
|
-
const allDimensions = this.meta.membersForQuery(null, 'dimensions');
|
|
14
|
-
this.measures = this.meta.membersForQuery(null, 'measures');
|
|
15
|
-
this.segments = this.meta.membersForQuery(null, 'segments');
|
|
16
|
-
this.dimensions = allDimensions.filter(({ type }) => type !== 'time');
|
|
17
|
-
this.timeDimensions = allDimensions.filter(({ type }) => type === 'time');
|
|
18
|
-
this.filters = [...allDimensions, ...this.measures].map((member) => ({
|
|
19
|
-
...member,
|
|
20
|
-
operators: this.meta.filterOperatorsForMember(member.name, [
|
|
21
|
-
'dimensions',
|
|
22
|
-
'measures',
|
|
23
|
-
]),
|
|
24
|
-
}));
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci1tZXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3F1ZXJ5LWJ1aWxkZXIvYnVpbGRlci1tZXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE1BQU0sT0FBTyxXQUFXO0lBV2E7SUFWNUIsUUFBUSxDQUFpQjtJQUV6QixVQUFVLENBQW1CO0lBRTdCLFFBQVEsQ0FBaUI7SUFFekIsY0FBYyxDQUFtQjtJQUVqQyxPQUFPLENBQXVDO0lBRXJELFlBQW1DLElBQVU7UUFBVixTQUFJLEdBQUosSUFBSSxDQUFNO1FBQzNDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU8sT0FBTztRQUNiLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUM3QyxJQUFJLEVBQ0osWUFBWSxDQUNPLENBQUM7UUFFdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFtQixDQUFDO1FBQzlFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsY0FBYyxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsYUFBYSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNuRSxHQUFHLE1BQU07WUFDVCxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFO2dCQUN6RCxZQUFZO2dCQUNaLFVBQVU7YUFDWCxDQUFDO1NBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBNZXRhLFxuICBUQ3ViZURpbWVuc2lvbixcbiAgVEN1YmVNZWFzdXJlLFxuICBUQ3ViZVNlZ21lbnQsXG59IGZyb20gJ0BjdWJlanMtY2xpZW50L2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgQnVpbGRlck1ldGEge1xuICBwdWJsaWMgbWVhc3VyZXM6IFRDdWJlTWVhc3VyZVtdO1xuXG4gIHB1YmxpYyBkaW1lbnNpb25zOiBUQ3ViZURpbWVuc2lvbltdO1xuXG4gIHB1YmxpYyBzZWdtZW50czogVEN1YmVTZWdtZW50W107XG5cbiAgcHVibGljIHRpbWVEaW1lbnNpb25zOiBUQ3ViZURpbWVuc2lvbltdO1xuXG4gIHB1YmxpYyBmaWx0ZXJzOiBBcnJheTxUQ3ViZU1lYXN1cmUgfCBUQ3ViZURpbWVuc2lvbj47XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBtZXRhOiBNZXRhKSB7XG4gICAgdGhpcy5tYXBNZXRhKCk7XG4gIH1cblxuICBwcml2YXRlIG1hcE1ldGEoKSB7XG4gICAgY29uc3QgYWxsRGltZW5zaW9ucyA9IHRoaXMubWV0YS5tZW1iZXJzRm9yUXVlcnkoXG4gICAgICBudWxsLFxuICAgICAgJ2RpbWVuc2lvbnMnXG4gICAgKSBhcyBUQ3ViZURpbWVuc2lvbltdO1xuXG4gICAgdGhpcy5tZWFzdXJlcyA9IHRoaXMubWV0YS5tZW1iZXJzRm9yUXVlcnkobnVsbCwgJ21lYXN1cmVzJykgYXMgVEN1YmVNZWFzdXJlW107XG4gICAgdGhpcy5zZWdtZW50cyA9IHRoaXMubWV0YS5tZW1iZXJzRm9yUXVlcnkobnVsbCwgJ3NlZ21lbnRzJyk7XG4gICAgdGhpcy5kaW1lbnNpb25zID0gYWxsRGltZW5zaW9ucy5maWx0ZXIoKHsgdHlwZSB9KSA9PiB0eXBlICE9PSAndGltZScpO1xuICAgIHRoaXMudGltZURpbWVuc2lvbnMgPSBhbGxEaW1lbnNpb25zLmZpbHRlcigoeyB0eXBlIH0pID0+IHR5cGUgPT09ICd0aW1lJyk7XG4gICAgdGhpcy5maWx0ZXJzID0gWy4uLmFsbERpbWVuc2lvbnMsIC4uLnRoaXMubWVhc3VyZXNdLm1hcCgobWVtYmVyKSA9PiAoe1xuICAgICAgLi4ubWVtYmVyLFxuICAgICAgb3BlcmF0b3JzOiB0aGlzLm1ldGEuZmlsdGVyT3BlcmF0b3JzRm9yTWVtYmVyKG1lbWJlci5uYW1lLCBbXG4gICAgICAgICdkaW1lbnNpb25zJyxcbiAgICAgICAgJ21lYXN1cmVzJyxcbiAgICAgIF0pLFxuICAgIH0pKTtcbiAgfVxufVxuIl19
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { StateSubject } from './common';
|
|
2
|
-
export class ChartType extends StateSubject {
|
|
3
|
-
constructor(value) {
|
|
4
|
-
super(value);
|
|
5
|
-
}
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9xdWVyeS1idWlsZGVyL2NoYXJ0LXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUl4QyxNQUFNLE9BQU8sU0FBVSxTQUFRLFlBQXdCO0lBQ3JELFlBQW1CLEtBQUs7UUFDdEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2YsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhdGVTdWJqZWN0IH0gZnJvbSAnLi9jb21tb24nO1xuXG5leHBvcnQgdHlwZSBUQ2hhcnRUeXBlID0gJ2xpbmUnIHwgJ2FyZWEnIHwgJ2JhcicgfCAnbnVtYmVyJyB8ICd0YWJsZScgfCAncGllJztcblxuZXhwb3J0IGNsYXNzIENoYXJ0VHlwZSBleHRlbmRzIFN0YXRlU3ViamVjdDxUQ2hhcnRUeXBlPiB7XG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcih2YWx1ZSkge1xuICAgIHN1cGVyKHZhbHVlKTtcbiAgfVxufVxuIl19
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { BehaviorSubject } from 'rxjs';
|
|
2
|
-
export class StateSubject {
|
|
3
|
-
subject;
|
|
4
|
-
constructor(value) {
|
|
5
|
-
this.subject = new BehaviorSubject(value);
|
|
6
|
-
}
|
|
7
|
-
get() {
|
|
8
|
-
return this.subject.getValue();
|
|
9
|
-
}
|
|
10
|
-
set(value) {
|
|
11
|
-
this.subject.next(value);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3F1ZXJ5LWJ1aWxkZXIvY29tbW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdkMsTUFBTSxPQUFPLFlBQVk7SUFDaEIsT0FBTyxDQUFxQjtJQUVuQyxZQUFtQixLQUFRO1FBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVNLEdBQUc7UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVNLEdBQUcsQ0FBQyxLQUFRO1FBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgY2xhc3MgU3RhdGVTdWJqZWN0PFQgPSBhbnk+IHtcbiAgcHVibGljIHN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxUPjtcblxuICBwdWJsaWMgY29uc3RydWN0b3IodmFsdWU6IFQpIHtcbiAgICB0aGlzLnN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3ViamVjdC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldCh2YWx1ZTogVCkge1xuICAgIHRoaXMuc3ViamVjdC5uZXh0KHZhbHVlKTtcbiAgfVxufVxuIl19
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { movePivotItem, } from '@cubejs-client/core';
|
|
2
|
-
import { StateSubject } from './common';
|
|
3
|
-
export class PivotConfig extends StateSubject {
|
|
4
|
-
constructor(pivotConfig) {
|
|
5
|
-
super(pivotConfig);
|
|
6
|
-
}
|
|
7
|
-
moveItem(sourceIndex, destinationIndex, sourceAxis, destinationAxis) {
|
|
8
|
-
this.subject.next(movePivotItem(this.get(), sourceIndex, destinationIndex, sourceAxis, destinationAxis));
|
|
9
|
-
}
|
|
10
|
-
setFillMissingDates(fillMissingDates) {
|
|
11
|
-
this.subject.next({
|
|
12
|
-
...this.get(),
|
|
13
|
-
fillMissingDates
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl2b3QtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3F1ZXJ5LWJ1aWxkZXIvcGl2b3QtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxhQUFhLEdBR2QsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXhDLE1BQU0sT0FBTyxXQUFZLFNBQVEsWUFBMEI7SUFDekQsWUFBbUIsV0FBeUI7UUFDMUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFTSxRQUFRLENBQ2IsV0FBbUIsRUFDbkIsZ0JBQXdCLEVBQ3hCLFVBQXVCLEVBQ3ZCLGVBQTRCO1FBRTVCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNmLGFBQWEsQ0FDWCxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQ1YsV0FBVyxFQUNYLGdCQUFnQixFQUNoQixVQUFVLEVBQ1YsZUFBZSxDQUNoQixDQUNGLENBQUM7SUFDSixDQUFDO0lBRU0sbUJBQW1CLENBQUMsZ0JBQXlCO1FBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ2hCLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNiLGdCQUFnQjtTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBtb3ZlUGl2b3RJdGVtLFxuICBQaXZvdENvbmZpZyBhcyBUUGl2b3RDb25maWcsXG4gIFRTb3VyY2VBeGlzLFxufSBmcm9tICdAY3ViZWpzLWNsaWVudC9jb3JlJztcbmltcG9ydCB7IFN0YXRlU3ViamVjdCB9IGZyb20gJy4vY29tbW9uJztcblxuZXhwb3J0IGNsYXNzIFBpdm90Q29uZmlnIGV4dGVuZHMgU3RhdGVTdWJqZWN0PFRQaXZvdENvbmZpZz4ge1xuICBwdWJsaWMgY29uc3RydWN0b3IocGl2b3RDb25maWc6IFRQaXZvdENvbmZpZykge1xuICAgIHN1cGVyKHBpdm90Q29uZmlnKTtcbiAgfVxuXG4gIHB1YmxpYyBtb3ZlSXRlbShcbiAgICBzb3VyY2VJbmRleDogbnVtYmVyLFxuICAgIGRlc3RpbmF0aW9uSW5kZXg6IG51bWJlcixcbiAgICBzb3VyY2VBeGlzOiBUU291cmNlQXhpcyxcbiAgICBkZXN0aW5hdGlvbkF4aXM6IFRTb3VyY2VBeGlzXG4gICkge1xuICAgIHRoaXMuc3ViamVjdC5uZXh0KFxuICAgICAgbW92ZVBpdm90SXRlbShcbiAgICAgICAgdGhpcy5nZXQoKSxcbiAgICAgICAgc291cmNlSW5kZXgsXG4gICAgICAgIGRlc3RpbmF0aW9uSW5kZXgsXG4gICAgICAgIHNvdXJjZUF4aXMsXG4gICAgICAgIGRlc3RpbmF0aW9uQXhpc1xuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2V0RmlsbE1pc3NpbmdEYXRlcyhmaWxsTWlzc2luZ0RhdGVzOiBib29sZWFuKSB7XG4gICAgdGhpcy5zdWJqZWN0Lm5leHQoe1xuICAgICAgLi4udGhpcy5nZXQoKSxcbiAgICAgIGZpbGxNaXNzaW5nRGF0ZXNcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { ResultSet, isQueryPresent, defaultHeuristics, } from '@cubejs-client/core';
|
|
3
|
-
import { BehaviorSubject, combineLatest, of, Subject } from 'rxjs';
|
|
4
|
-
import { catchError, switchMap } from 'rxjs/operators';
|
|
5
|
-
import { Query } from './query';
|
|
6
|
-
import { BuilderMeta } from './builder-meta';
|
|
7
|
-
import { PivotConfig } from './pivot-config';
|
|
8
|
-
import { ChartType } from './chart-type';
|
|
9
|
-
import { StateSubject } from './common';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
export class QueryBuilderService {
|
|
12
|
-
_cube;
|
|
13
|
-
_meta;
|
|
14
|
-
_query;
|
|
15
|
-
_disableHeuristics = false;
|
|
16
|
-
_resolveQuery;
|
|
17
|
-
_resolveBuilderMeta;
|
|
18
|
-
_heuristicChange$ = new Subject();
|
|
19
|
-
builderMeta = new Promise((resolve) => {
|
|
20
|
-
this._resolveBuilderMeta = resolve;
|
|
21
|
-
});
|
|
22
|
-
query = new Promise((resolve) => {
|
|
23
|
-
this._resolveQuery = resolve;
|
|
24
|
-
});
|
|
25
|
-
state = new BehaviorSubject({});
|
|
26
|
-
pivotConfig;
|
|
27
|
-
chartType;
|
|
28
|
-
async init() {
|
|
29
|
-
this.pivotConfig = new PivotConfig(null);
|
|
30
|
-
this.chartType = new ChartType('line');
|
|
31
|
-
this._cube.meta().subscribe((meta) => {
|
|
32
|
-
this._meta = meta;
|
|
33
|
-
this._query = new Query(this._meta, this._handleQueryChange.bind(this));
|
|
34
|
-
this._resolveQuery(this._query);
|
|
35
|
-
this._resolveBuilderMeta(new BuilderMeta(this._meta));
|
|
36
|
-
});
|
|
37
|
-
this.subscribe();
|
|
38
|
-
if (!this._disableHeuristics) {
|
|
39
|
-
this._heuristicChange$
|
|
40
|
-
.pipe(switchMap((data) => combineLatest([
|
|
41
|
-
this._cube.dryRun(data.query).pipe(catchError((error) => {
|
|
42
|
-
console.error(error);
|
|
43
|
-
return of(null);
|
|
44
|
-
})),
|
|
45
|
-
of(data.shouldApplyHeuristicOrder),
|
|
46
|
-
])))
|
|
47
|
-
.subscribe(([dryRunResponse, shouldApplyHeuristicOrder]) => {
|
|
48
|
-
if (!dryRunResponse) {
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
const { pivotQuery, queryOrder } = dryRunResponse;
|
|
52
|
-
this.pivotConfig.set(ResultSet.getNormalizedPivotConfig(pivotQuery, this.pivotConfig.get()));
|
|
53
|
-
if (shouldApplyHeuristicOrder) {
|
|
54
|
-
this._query.order.set(queryOrder.reduce((a, b) => ({ ...a, ...b }), {}));
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
_handleQueryChange(newQuery, oldQuery) {
|
|
60
|
-
const { chartType, shouldApplyHeuristicOrder, query: heuristicQuery, } = defaultHeuristics(newQuery, oldQuery, {
|
|
61
|
-
meta: this._meta,
|
|
62
|
-
sessionGranularity: newQuery?.timeDimensions?.[0]?.granularity,
|
|
63
|
-
});
|
|
64
|
-
const query = this._disableHeuristics
|
|
65
|
-
? newQuery
|
|
66
|
-
: heuristicQuery || newQuery;
|
|
67
|
-
if (isQueryPresent(query) && !this._disableHeuristics) {
|
|
68
|
-
this._heuristicChange$.next({
|
|
69
|
-
shouldApplyHeuristicOrder: Boolean(shouldApplyHeuristicOrder),
|
|
70
|
-
query,
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
if (!this._disableHeuristics && chartType) {
|
|
74
|
-
this.chartType.set(chartType);
|
|
75
|
-
}
|
|
76
|
-
return query;
|
|
77
|
-
}
|
|
78
|
-
setCubeClient(cubeClient) {
|
|
79
|
-
this._cube = cubeClient;
|
|
80
|
-
this.init();
|
|
81
|
-
}
|
|
82
|
-
subscribe() {
|
|
83
|
-
Object.getOwnPropertyNames(this).forEach((key) => {
|
|
84
|
-
if (this[key] instanceof StateSubject) {
|
|
85
|
-
this[key].subject.subscribe((value) => this.setPartialState({
|
|
86
|
-
[key]: value,
|
|
87
|
-
}));
|
|
88
|
-
}
|
|
89
|
-
});
|
|
90
|
-
this.query.then((query) => {
|
|
91
|
-
query.subject.subscribe((cubeQuery) => {
|
|
92
|
-
this.setPartialState({
|
|
93
|
-
query: cubeQuery,
|
|
94
|
-
});
|
|
95
|
-
});
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
async deserialize(state) {
|
|
99
|
-
if (state.query) {
|
|
100
|
-
(await this.query).setQuery(state.query);
|
|
101
|
-
}
|
|
102
|
-
Object.entries(state).forEach(([key, value]) => {
|
|
103
|
-
if (this[key] instanceof StateSubject) {
|
|
104
|
-
this[key].set(value);
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
this.subscribe();
|
|
108
|
-
}
|
|
109
|
-
setPartialState(partialState) {
|
|
110
|
-
this.state.next({
|
|
111
|
-
...this.state.getValue(),
|
|
112
|
-
...partialState,
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
disableHeuristics() {
|
|
116
|
-
this._disableHeuristics = true;
|
|
117
|
-
}
|
|
118
|
-
enableHeuristics() {
|
|
119
|
-
this._disableHeuristics = false;
|
|
120
|
-
}
|
|
121
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: QueryBuilderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
122
|
-
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: QueryBuilderService });
|
|
123
|
-
}
|
|
124
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: QueryBuilderService, decorators: [{
|
|
125
|
-
type: Injectable
|
|
126
|
-
}] });
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3F1ZXJ5LWJ1aWxkZXIvcXVlcnktYnVpbGRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUVMLFNBQVMsRUFHVCxjQUFjLEVBQ2QsaUJBQWlCLEdBQ2xCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3ZELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sY0FBYyxDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBU3hDLE1BQU0sT0FBTyxtQkFBbUI7SUFDdEIsS0FBSyxDQUFhO0lBRWxCLEtBQUssQ0FBTztJQUVaLE1BQU0sQ0FBUTtJQUVkLGtCQUFrQixHQUFZLEtBQUssQ0FBQztJQUVwQyxhQUFhLENBQXlCO0lBRXRDLG1CQUFtQixDQUErQjtJQUVsRCxpQkFBaUIsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO0lBRS9CLFdBQVcsR0FBRyxJQUFJLE9BQU8sQ0FBYyxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQ2pFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxPQUFPLENBQUM7SUFDckMsQ0FBQyxDQUFDLENBQUM7SUFFYSxLQUFLLEdBQUcsSUFBSSxPQUFPLENBQVEsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUNyRCxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQztJQUMvQixDQUFDLENBQUMsQ0FBQztJQUVhLEtBQUssR0FBRyxJQUFJLGVBQWUsQ0FBcUIsRUFBRSxDQUFDLENBQUM7SUFFN0QsV0FBVyxDQUFjO0lBRXpCLFNBQVMsQ0FBWTtJQUVwQixLQUFLLENBQUMsSUFBSTtRQUNoQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNuQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUVsQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksS0FBSyxDQUNyQixJQUFJLENBQUMsS0FBSyxFQUNWLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQ25DLENBQUM7WUFDRixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFakIsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxpQkFBaUI7aUJBQ25CLElBQUksQ0FDSCxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtvQkFDdEQsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDckIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2xCLENBQUMsQ0FBQyxDQUFDO2dCQUNILEVBQUUsQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUM7YUFDbkMsQ0FBQyxDQUFDLENBQ0o7aUJBQ0EsU0FBUyxDQUNSLENBQUMsQ0FBQyxjQUFjLEVBQUUseUJBQXlCLENBQUMsRUFBRSxFQUFFO2dCQUM5QyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQ3BCLE9BQU87Z0JBQ1QsQ0FBQztnQkFFRCxNQUFNLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxHQUFHLGNBQWMsQ0FBQztnQkFFbEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQ2xCLFNBQVMsQ0FBQyx3QkFBd0IsQ0FDaEMsVUFBVSxFQUNWLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQ3ZCLENBQ0YsQ0FBQztnQkFDRixJQUFJLHlCQUF5QixFQUFFLENBQUM7b0JBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FDbkIsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQ2xELENBQUM7Z0JBQ0osQ0FBQztZQUNILENBQUMsQ0FDRixDQUFDO1FBQ04sQ0FBQztJQUNILENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsUUFBUTtRQUMzQyxNQUFNLEVBQ0osU0FBUyxFQUNULHlCQUF5QixFQUN6QixLQUFLLEVBQUUsY0FBYyxHQUN0QixHQUFHLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUU7WUFDeEMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2hCLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXO1NBQy9ELENBQUMsQ0FBQztRQUVILE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxrQkFBa0I7WUFDbkMsQ0FBQyxDQUFDLFFBQVE7WUFDVixDQUFDLENBQUMsY0FBYyxJQUFJLFFBQVEsQ0FBQztRQUUvQixJQUFJLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ3RELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7Z0JBQzFCLHlCQUF5QixFQUFFLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQztnQkFDN0QsS0FBSzthQUNOLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTSxhQUFhLENBQUMsVUFBc0I7UUFDekMsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUM7UUFDeEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDL0MsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksWUFBWSxFQUFFLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO29CQUMxRCxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUs7aUJBQ2IsQ0FBQyxDQUFDLENBQUM7WUFDTixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3hCLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7Z0JBQ3BDLElBQUksQ0FBQyxlQUFlLENBQUM7b0JBQ25CLEtBQUssRUFBRSxTQUFTO2lCQUNqQixDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSztRQUM1QixJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoQixDQUFDLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUM3QyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxZQUFZLEVBQUUsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVNLGVBQWUsQ0FBQyxZQUFZO1FBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQ2QsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUN4QixHQUFHLFlBQVk7U0FDaEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGlCQUFpQjtRQUN0QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO0lBQ2pDLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUNsQyxDQUFDOzJIQTlKVSxtQkFBbUI7K0hBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIE1ldGEsXG4gIFJlc3VsdFNldCxcbiAgUXVlcnkgYXMgVEN1YmVRdWVyeSxcbiAgUGl2b3RDb25maWcgYXMgVFBpdm90Q29uZmlnLFxuICBpc1F1ZXJ5UHJlc2VudCxcbiAgZGVmYXVsdEhldXJpc3RpY3MsXG59IGZyb20gJ0BjdWJlanMtY2xpZW50L2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBDdWJlQ2xpZW50IH0gZnJvbSAnLi4vY2xpZW50JztcbmltcG9ydCB7IFF1ZXJ5IH0gZnJvbSAnLi9xdWVyeSc7XG5pbXBvcnQgeyBCdWlsZGVyTWV0YSB9IGZyb20gJy4vYnVpbGRlci1tZXRhJztcbmltcG9ydCB7IFBpdm90Q29uZmlnIH0gZnJvbSAnLi9waXZvdC1jb25maWcnO1xuaW1wb3J0IHsgQ2hhcnRUeXBlLCBUQ2hhcnRUeXBlIH0gZnJvbSAnLi9jaGFydC10eXBlJztcbmltcG9ydCB7IFN0YXRlU3ViamVjdCB9IGZyb20gJy4vY29tbW9uJztcblxuZXhwb3J0IHR5cGUgVFF1ZXJ5QnVpbGRlclN0YXRlID0ge1xuICBxdWVyeT86IFRDdWJlUXVlcnk7XG4gIHBpdm90Q29uZmlnPzogVFBpdm90Q29uZmlnO1xuICBjaGFydFR5cGU/OiBUQ2hhcnRUeXBlO1xufTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFF1ZXJ5QnVpbGRlclNlcnZpY2Uge1xuICBwcml2YXRlIF9jdWJlOiBDdWJlQ2xpZW50O1xuXG4gIHByaXZhdGUgX21ldGE6IE1ldGE7XG5cbiAgcHJpdmF0ZSBfcXVlcnk6IFF1ZXJ5O1xuXG4gIHByaXZhdGUgX2Rpc2FibGVIZXVyaXN0aWNzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfcmVzb2x2ZVF1ZXJ5OiAocXVlcnk6IFF1ZXJ5KSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgX3Jlc29sdmVCdWlsZGVyTWV0YTogKHF1ZXJ5OiBCdWlsZGVyTWV0YSkgPT4gdm9pZDtcblxuICBwcml2YXRlIF9oZXVyaXN0aWNDaGFuZ2UkID0gbmV3IFN1YmplY3Q8YW55PigpO1xuXG4gIHB1YmxpYyByZWFkb25seSBidWlsZGVyTWV0YSA9IG5ldyBQcm9taXNlPEJ1aWxkZXJNZXRhPigocmVzb2x2ZSkgPT4ge1xuICAgIHRoaXMuX3Jlc29sdmVCdWlsZGVyTWV0YSA9IHJlc29sdmU7XG4gIH0pO1xuXG4gIHB1YmxpYyByZWFkb25seSBxdWVyeSA9IG5ldyBQcm9taXNlPFF1ZXJ5PigocmVzb2x2ZSkgPT4ge1xuICAgIHRoaXMuX3Jlc29sdmVRdWVyeSA9IHJlc29sdmU7XG4gIH0pO1xuXG4gIHB1YmxpYyByZWFkb25seSBzdGF0ZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VFF1ZXJ5QnVpbGRlclN0YXRlPih7fSk7XG5cbiAgcHVibGljIHBpdm90Q29uZmlnOiBQaXZvdENvbmZpZztcblxuICBwdWJsaWMgY2hhcnRUeXBlOiBDaGFydFR5cGU7XG5cbiAgcHJpdmF0ZSBhc3luYyBpbml0KCkge1xuICAgIHRoaXMucGl2b3RDb25maWcgPSBuZXcgUGl2b3RDb25maWcobnVsbCk7XG4gICAgdGhpcy5jaGFydFR5cGUgPSBuZXcgQ2hhcnRUeXBlKCdsaW5lJyk7XG5cbiAgICB0aGlzLl9jdWJlLm1ldGEoKS5zdWJzY3JpYmUoKG1ldGEpID0+IHtcbiAgICAgIHRoaXMuX21ldGEgPSBtZXRhO1xuXG4gICAgICB0aGlzLl9xdWVyeSA9IG5ldyBRdWVyeShcbiAgICAgICAgdGhpcy5fbWV0YSxcbiAgICAgICAgdGhpcy5faGFuZGxlUXVlcnlDaGFuZ2UuYmluZCh0aGlzKVxuICAgICAgKTtcbiAgICAgIHRoaXMuX3Jlc29sdmVRdWVyeSh0aGlzLl9xdWVyeSk7XG4gICAgICB0aGlzLl9yZXNvbHZlQnVpbGRlck1ldGEobmV3IEJ1aWxkZXJNZXRhKHRoaXMuX21ldGEpKTtcbiAgICB9KTtcblxuICAgIHRoaXMuc3Vic2NyaWJlKCk7XG5cbiAgICBpZiAoIXRoaXMuX2Rpc2FibGVIZXVyaXN0aWNzKSB7XG4gICAgICB0aGlzLl9oZXVyaXN0aWNDaGFuZ2UkXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHN3aXRjaE1hcCgoZGF0YSkgPT4gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLl9jdWJlLmRyeVJ1bihkYXRhLnF1ZXJ5KS5waXBlKGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgICBvZihkYXRhLnNob3VsZEFwcGx5SGV1cmlzdGljT3JkZXIpLFxuICAgICAgICAgIF0pKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgKFtkcnlSdW5SZXNwb25zZSwgc2hvdWxkQXBwbHlIZXVyaXN0aWNPcmRlcl0pID0+IHtcbiAgICAgICAgICAgIGlmICghZHJ5UnVuUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCB7IHBpdm90UXVlcnksIHF1ZXJ5T3JkZXIgfSA9IGRyeVJ1blJlc3BvbnNlO1xuXG4gICAgICAgICAgICB0aGlzLnBpdm90Q29uZmlnLnNldChcbiAgICAgICAgICAgICAgUmVzdWx0U2V0LmdldE5vcm1hbGl6ZWRQaXZvdENvbmZpZyhcbiAgICAgICAgICAgICAgICBwaXZvdFF1ZXJ5LFxuICAgICAgICAgICAgICAgIHRoaXMucGl2b3RDb25maWcuZ2V0KClcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChzaG91bGRBcHBseUhldXJpc3RpY09yZGVyKSB7XG4gICAgICAgICAgICAgIHRoaXMuX3F1ZXJ5Lm9yZGVyLnNldChcbiAgICAgICAgICAgICAgICBxdWVyeU9yZGVyLnJlZHVjZSgoYSwgYikgPT4gKHsgLi4uYSwgLi4uYiB9KSwge30pXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZVF1ZXJ5Q2hhbmdlKG5ld1F1ZXJ5LCBvbGRRdWVyeSkge1xuICAgIGNvbnN0IHtcbiAgICAgIGNoYXJ0VHlwZSxcbiAgICAgIHNob3VsZEFwcGx5SGV1cmlzdGljT3JkZXIsXG4gICAgICBxdWVyeTogaGV1cmlzdGljUXVlcnksXG4gICAgfSA9IGRlZmF1bHRIZXVyaXN0aWNzKG5ld1F1ZXJ5LCBvbGRRdWVyeSwge1xuICAgICAgbWV0YTogdGhpcy5fbWV0YSxcbiAgICAgIHNlc3Npb25HcmFudWxhcml0eTogbmV3UXVlcnk/LnRpbWVEaW1lbnNpb25zPy5bMF0/LmdyYW51bGFyaXR5LFxuICAgIH0pO1xuXG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLl9kaXNhYmxlSGV1cmlzdGljc1xuICAgICAgPyBuZXdRdWVyeVxuICAgICAgOiBoZXVyaXN0aWNRdWVyeSB8fCBuZXdRdWVyeTtcblxuICAgIGlmIChpc1F1ZXJ5UHJlc2VudChxdWVyeSkgJiYgIXRoaXMuX2Rpc2FibGVIZXVyaXN0aWNzKSB7XG4gICAgICB0aGlzLl9oZXVyaXN0aWNDaGFuZ2UkLm5leHQoe1xuICAgICAgICBzaG91bGRBcHBseUhldXJpc3RpY09yZGVyOiBCb29sZWFuKHNob3VsZEFwcGx5SGV1cmlzdGljT3JkZXIpLFxuICAgICAgICBxdWVyeSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5fZGlzYWJsZUhldXJpc3RpY3MgJiYgY2hhcnRUeXBlKSB7XG4gICAgICB0aGlzLmNoYXJ0VHlwZS5zZXQoY2hhcnRUeXBlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcXVlcnk7XG4gIH1cblxuICBwdWJsaWMgc2V0Q3ViZUNsaWVudChjdWJlQ2xpZW50OiBDdWJlQ2xpZW50KSB7XG4gICAgdGhpcy5fY3ViZSA9IGN1YmVDbGllbnQ7XG4gICAgdGhpcy5pbml0KCk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZSgpIHtcbiAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGlmICh0aGlzW2tleV0gaW5zdGFuY2VvZiBTdGF0ZVN1YmplY3QpIHtcbiAgICAgICAgdGhpc1trZXldLnN1YmplY3Quc3Vic2NyaWJlKCh2YWx1ZSkgPT4gdGhpcy5zZXRQYXJ0aWFsU3RhdGUoe1xuICAgICAgICAgIFtrZXldOiB2YWx1ZSxcbiAgICAgICAgfSkpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMucXVlcnkudGhlbigocXVlcnkpID0+IHtcbiAgICAgIHF1ZXJ5LnN1YmplY3Quc3Vic2NyaWJlKChjdWJlUXVlcnkpID0+IHtcbiAgICAgICAgdGhpcy5zZXRQYXJ0aWFsU3RhdGUoe1xuICAgICAgICAgIHF1ZXJ5OiBjdWJlUXVlcnksXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGVzZXJpYWxpemUoc3RhdGUpIHtcbiAgICBpZiAoc3RhdGUucXVlcnkpIHtcbiAgICAgIChhd2FpdCB0aGlzLnF1ZXJ5KS5zZXRRdWVyeShzdGF0ZS5xdWVyeSk7XG4gICAgfVxuXG4gICAgT2JqZWN0LmVudHJpZXMoc3RhdGUpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgaWYgKHRoaXNba2V5XSBpbnN0YW5jZW9mIFN0YXRlU3ViamVjdCkge1xuICAgICAgICB0aGlzW2tleV0uc2V0KHZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0UGFydGlhbFN0YXRlKHBhcnRpYWxTdGF0ZSkge1xuICAgIHRoaXMuc3RhdGUubmV4dCh7XG4gICAgICAuLi50aGlzLnN0YXRlLmdldFZhbHVlKCksXG4gICAgICAuLi5wYXJ0aWFsU3RhdGUsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZGlzYWJsZUhldXJpc3RpY3MoKSB7XG4gICAgdGhpcy5fZGlzYWJsZUhldXJpc3RpY3MgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIGVuYWJsZUhldXJpc3RpY3MoKSB7XG4gICAgdGhpcy5fZGlzYWJsZUhldXJpc3RpY3MgPSBmYWxzZTtcbiAgfVxufVxuIl19
|
|
@@ -1,224 +0,0 @@
|
|
|
1
|
-
import { moveItemInArray, } from '@cubejs-client/core';
|
|
2
|
-
import { BehaviorSubject } from 'rxjs';
|
|
3
|
-
import equal from 'fast-deep-equal/es6';
|
|
4
|
-
export class BaseMember {
|
|
5
|
-
query;
|
|
6
|
-
field;
|
|
7
|
-
constructor(query, field) {
|
|
8
|
-
this.query = query;
|
|
9
|
-
this.field = field;
|
|
10
|
-
}
|
|
11
|
-
get members() {
|
|
12
|
-
return this.query.asCubeQuery()[this.field] || [];
|
|
13
|
-
}
|
|
14
|
-
add(name) {
|
|
15
|
-
this.query.setPartialQuery({
|
|
16
|
-
[this.field]: [...this.members, name],
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
replace(name, replaceWithName) {
|
|
20
|
-
this.query.setPartialQuery({
|
|
21
|
-
[this.field]: this.members.map((currentName) => (currentName === name ? replaceWithName : currentName)),
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
remove(by) {
|
|
25
|
-
this.query.setPartialQuery({
|
|
26
|
-
[this.field]: this.members.filter((currentName, index) => {
|
|
27
|
-
if (typeof by === 'string') {
|
|
28
|
-
return currentName !== by;
|
|
29
|
-
}
|
|
30
|
-
return index !== by;
|
|
31
|
-
}),
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
set(members) {
|
|
35
|
-
this.query.setPartialQuery({
|
|
36
|
-
[this.field]: members,
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
asArray() {
|
|
40
|
-
return this.members.map((name) => this.query.meta.resolveMember(name, this.field));
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
export class TimeDimensionMember {
|
|
44
|
-
query;
|
|
45
|
-
constructor(query) {
|
|
46
|
-
this.query = query;
|
|
47
|
-
}
|
|
48
|
-
get members() {
|
|
49
|
-
return this.query.asCubeQuery().timeDimensions || [];
|
|
50
|
-
}
|
|
51
|
-
get granularity() {
|
|
52
|
-
return this.members[0]?.granularity;
|
|
53
|
-
}
|
|
54
|
-
updateTimeDimension(by, updateWith) {
|
|
55
|
-
const timeDimensions = this.members.map((td, index) => {
|
|
56
|
-
if (td.dimension === by || index === by) {
|
|
57
|
-
return {
|
|
58
|
-
...td,
|
|
59
|
-
...updateWith,
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
return td;
|
|
63
|
-
});
|
|
64
|
-
this.query.setPartialQuery({
|
|
65
|
-
timeDimensions,
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
add(name) {
|
|
69
|
-
this.query.setPartialQuery({
|
|
70
|
-
timeDimensions: [
|
|
71
|
-
{
|
|
72
|
-
dimension: name,
|
|
73
|
-
},
|
|
74
|
-
],
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
remove(name) {
|
|
78
|
-
this.query.setPartialQuery({
|
|
79
|
-
timeDimensions: this.members.filter(({ dimension }) => dimension !== name),
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
set(timeDimensions) {
|
|
83
|
-
this.query.setPartialQuery({
|
|
84
|
-
timeDimensions,
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
setDateRange(by, dateRange) {
|
|
88
|
-
this.updateTimeDimension(by, { dateRange });
|
|
89
|
-
}
|
|
90
|
-
setGranularity(by, granularity) {
|
|
91
|
-
this.updateTimeDimension(by, { granularity });
|
|
92
|
-
}
|
|
93
|
-
asArray() {
|
|
94
|
-
return this.members.map((td) => ({
|
|
95
|
-
...this.query.meta.resolveMember(td.dimension, 'dimensions'),
|
|
96
|
-
...td,
|
|
97
|
-
}));
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
export class Order {
|
|
101
|
-
query;
|
|
102
|
-
orderMembers = new BehaviorSubject([]);
|
|
103
|
-
constructor(query) {
|
|
104
|
-
this.query = query;
|
|
105
|
-
this.query.subject.subscribe(this.handleQueryChange.bind(this));
|
|
106
|
-
this.orderMembers.subscribe(this.handleOrderMembersChange.bind(this));
|
|
107
|
-
}
|
|
108
|
-
handleOrderMembersChange(orderMembers) {
|
|
109
|
-
const order = orderMembers
|
|
110
|
-
.filter((orderMember) => orderMember.order !== 'none')
|
|
111
|
-
.reduce((memo, orderMember) => ({ ...memo, [orderMember.id]: orderMember.order }), {});
|
|
112
|
-
if (!equal(order, this.asObject())) {
|
|
113
|
-
this.query.setPartialQuery({ order });
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
handleQueryChange() {
|
|
117
|
-
this.orderMembers.next([
|
|
118
|
-
...this.query.measures.asArray(),
|
|
119
|
-
...this.query.dimensions.asArray(),
|
|
120
|
-
...this.query.timeDimensions.asArray(),
|
|
121
|
-
].map(({ name, title }) => ({
|
|
122
|
-
id: name,
|
|
123
|
-
order: this.of(name),
|
|
124
|
-
title,
|
|
125
|
-
})));
|
|
126
|
-
}
|
|
127
|
-
setMemberOrder(id, order) {
|
|
128
|
-
this.orderMembers.next(this.orderMembers.getValue().map((orderMember) => {
|
|
129
|
-
if (orderMember.id === id) {
|
|
130
|
-
return {
|
|
131
|
-
...orderMember,
|
|
132
|
-
order,
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
return orderMember;
|
|
136
|
-
}));
|
|
137
|
-
}
|
|
138
|
-
reorder(sourceIndex, destinationIndex) {
|
|
139
|
-
this.orderMembers.next(moveItemInArray(this.orderMembers.getValue(), sourceIndex, destinationIndex));
|
|
140
|
-
}
|
|
141
|
-
of(member) {
|
|
142
|
-
return (this.query.asCubeQuery().order || {})[member] || 'none';
|
|
143
|
-
}
|
|
144
|
-
set(order) {
|
|
145
|
-
this.query.setPartialQuery({ order });
|
|
146
|
-
}
|
|
147
|
-
asArray() {
|
|
148
|
-
if (Array.isArray(this.query.asCubeQuery().order)) {
|
|
149
|
-
return this.query.asCubeQuery().order;
|
|
150
|
-
}
|
|
151
|
-
return Object.entries(this.query.asCubeQuery().order || {});
|
|
152
|
-
}
|
|
153
|
-
asObject() {
|
|
154
|
-
return this.asArray().reduce((memo, [key, value]) => ({ ...memo, [key]: value }), {});
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
export class FilterMember {
|
|
158
|
-
query;
|
|
159
|
-
constructor(query) {
|
|
160
|
-
this.query = query;
|
|
161
|
-
}
|
|
162
|
-
get filters() {
|
|
163
|
-
// TODO: update this type assertion once the QueryBuilder supports logical and/or
|
|
164
|
-
return (this.query.asCubeQuery().filters || []);
|
|
165
|
-
}
|
|
166
|
-
update(by, updateWith) {
|
|
167
|
-
const filters = this.filters.map((filter, index) => {
|
|
168
|
-
if (index === by || filter.member === by || filter.dimension === by) {
|
|
169
|
-
return {
|
|
170
|
-
...filter,
|
|
171
|
-
...updateWith,
|
|
172
|
-
};
|
|
173
|
-
}
|
|
174
|
-
return filter;
|
|
175
|
-
});
|
|
176
|
-
this.query.setPartialQuery({
|
|
177
|
-
filters: filters,
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
add(filter) {
|
|
181
|
-
this.query.setPartialQuery({
|
|
182
|
-
filters: [...this.filters, filter],
|
|
183
|
-
});
|
|
184
|
-
}
|
|
185
|
-
remove(by) {
|
|
186
|
-
this.query.setPartialQuery({
|
|
187
|
-
filters: this.filters.filter((filter, index) => {
|
|
188
|
-
if (filter.member === by || filter.dimension === by || index === by) {
|
|
189
|
-
return false;
|
|
190
|
-
}
|
|
191
|
-
return true;
|
|
192
|
-
}),
|
|
193
|
-
});
|
|
194
|
-
}
|
|
195
|
-
set(filters) {
|
|
196
|
-
this.query.setPartialQuery({
|
|
197
|
-
filters,
|
|
198
|
-
});
|
|
199
|
-
}
|
|
200
|
-
replace(name, replaceWithName) {
|
|
201
|
-
this.query.setPartialQuery({
|
|
202
|
-
filters: this.filters.map((filter) => {
|
|
203
|
-
const field = filter.member ? 'member' : 'dimension';
|
|
204
|
-
return filter.member === name || filter.dimension === name
|
|
205
|
-
? {
|
|
206
|
-
...filter,
|
|
207
|
-
[field]: replaceWithName,
|
|
208
|
-
}
|
|
209
|
-
: filter;
|
|
210
|
-
}),
|
|
211
|
-
});
|
|
212
|
-
}
|
|
213
|
-
asArray() {
|
|
214
|
-
return this.filters.map((filter) => ({
|
|
215
|
-
...this.query.meta.resolveMember(filter.member || filter.dimension, [
|
|
216
|
-
'dimensions',
|
|
217
|
-
'measures',
|
|
218
|
-
]),
|
|
219
|
-
operators: this.query.meta.filterOperatorsForMember(filter.member || filter.dimension, ['dimensions', 'measures']),
|
|
220
|
-
...filter,
|
|
221
|
-
}));
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktbWVtYmVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9xdWVyeS1idWlsZGVyL3F1ZXJ5LW1lbWJlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlMLGVBQWUsR0FJaEIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sS0FBSyxNQUFNLHFCQUFxQixDQUFDO0FBWXhDLE1BQU0sT0FBTyxVQUFVO0lBRVg7SUFDQTtJQUZWLFlBQ1UsS0FBWSxFQUNaLEtBQTZDO1FBRDdDLFVBQUssR0FBTCxLQUFLLENBQU87UUFDWixVQUFLLEdBQUwsS0FBSyxDQUF3QztJQUNwRCxDQUFDO0lBRUosSUFBWSxPQUFPO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFFTSxHQUFHLENBQUMsSUFBWTtRQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQztZQUN6QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUM7U0FDdEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLE9BQU8sQ0FBQyxJQUFZLEVBQUUsZUFBdUI7UUFDbEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUM7WUFDekIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQzVCLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQ3hFO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVN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IFRpbWVEaW1lbnNpb25HcmFudWxhcml0eSxcbiAgVFF1ZXJ5T3JkZXJPYmplY3QsXG4gIFRRdWVyeU9yZGVyQXJyYXksXG4gIG1vdmVJdGVtSW5BcnJheSxcbiAgRmlsdGVyLFxuICBVbmFyeUZpbHRlcixcbiAgQmluYXJ5RmlsdGVyLFxufSBmcm9tICdAY3ViZWpzLWNsaWVudC9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IGVxdWFsIGZyb20gJ2Zhc3QtZGVlcC1lcXVhbC9lczYnO1xuXG5pbXBvcnQgeyBRdWVyeSB9IGZyb20gJy4vcXVlcnknO1xuXG5leHBvcnQgdHlwZSBUT3JkZXIgPSAnYXNjJyB8ICdkZXNjJyB8ICdub25lJztcblxuZXhwb3J0IHR5cGUgVE9yZGVyTWVtYmVyID0ge1xuICBpZDogc3RyaW5nO1xuICBvcmRlcjogVE9yZGVyO1xuICB0aXRsZTogc3RyaW5nO1xufTtcblxuZXhwb3J0IGNsYXNzIEJhc2VNZW1iZXIge1xuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBxdWVyeTogUXVlcnksXG4gICAgcHJpdmF0ZSBmaWVsZDogJ21lYXN1cmVzJyB8ICdkaW1lbnNpb25zJyB8ICdzZWdtZW50cydcbiAgKSB7fVxuXG4gIHByaXZhdGUgZ2V0IG1lbWJlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlcnkuYXNDdWJlUXVlcnkoKVt0aGlzLmZpZWxkXSB8fCBbXTtcbiAgfVxuXG4gIHB1YmxpYyBhZGQobmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5xdWVyeS5zZXRQYXJ0aWFsUXVlcnkoe1xuICAgICAgW3RoaXMuZmllbGRdOiBbLi4udGhpcy5tZW1iZXJzLCBuYW1lXSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyByZXBsYWNlKG5hbWU6IHN0cmluZywgcmVwbGFjZVdpdGhOYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLnF1ZXJ5LnNldFBhcnRpYWxRdWVyeSh7XG4gICAgICBbdGhpcy5maWVsZF06IHRoaXMubWVtYmVycy5tYXAoXG4gICAgICAgIChjdXJyZW50TmFtZSkgPT4gKGN1cnJlbnROYW1lID09PSBuYW1lID8gcmVwbGFjZVdpdGhOYW1lIDogY3VycmVudE5hbWUpXG4gICAgICApLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZShieTogc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgdGhpcy5xdWVyeS5zZXRQYXJ0aWFsUXVlcnkoe1xuICAgICAgW3RoaXMuZmllbGRdOiB0aGlzLm1lbWJlcnMuZmlsdGVyKChjdXJyZW50TmFtZSwgaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBieSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICByZXR1cm4gY3VycmVudE5hbWUgIT09IGJ5O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGluZGV4ICE9PSBieTtcbiAgICAgIH0pLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNldChtZW1iZXJzOiBzdHJpbmdbXSkge1xuICAgIHRoaXMucXVlcnkuc2V0UGFydGlhbFF1ZXJ5KHtcbiAgICAgIFt0aGlzLmZpZWxkXTogbWVtYmVycyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc0FycmF5KCkge1xuICAgIHJldHVybiB0aGlzLm1lbWJlcnMubWFwKChuYW1lKSA9PiB0aGlzLnF1ZXJ5Lm1ldGEucmVzb2x2ZU1lbWJlcihuYW1lLCB0aGlzLmZpZWxkKSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRpbWVEaW1lbnNpb25NZW1iZXIge1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBxdWVyeTogUXVlcnkpIHt9XG5cbiAgcHJpdmF0ZSBnZXQgbWVtYmVycygpIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyeS5hc0N1YmVRdWVyeSgpLnRpbWVEaW1lbnNpb25zIHx8IFtdO1xuICB9XG5cbiAgcHVibGljIGdldCBncmFudWxhcml0eSgpIHtcbiAgICByZXR1cm4gdGhpcy5tZW1iZXJzWzBdPy5ncmFudWxhcml0eTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVUaW1lRGltZW5zaW9uKGJ5OiBzdHJpbmcgfCBudW1iZXIsIHVwZGF0ZVdpdGg6IGFueSkge1xuICAgIGNvbnN0IHRpbWVEaW1lbnNpb25zID0gdGhpcy5tZW1iZXJzLm1hcCgodGQsIGluZGV4KSA9PiB7XG4gICAgICBpZiAodGQuZGltZW5zaW9uID09PSBieSB8fCBpbmRleCA9PT0gYnkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi50ZCxcbiAgICAgICAgICAuLi51cGRhdGVXaXRoLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRkO1xuICAgIH0pO1xuXG4gICAgdGhpcy5xdWVyeS5zZXRQYXJ0aWFsUXVlcnkoe1xuICAgICAgdGltZURpbWVuc2lvbnMsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYWRkKG5hbWU6IHN0cmluZykge1xuICAgIHRoaXMucXVlcnkuc2V0UGFydGlhbFF1ZXJ5KHtcbiAgICAgIHRpbWVEaW1lbnNpb25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBkaW1lbnNpb246IG5hbWUsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZShuYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLnF1ZXJ5LnNldFBhcnRpYWxRdWVyeSh7XG4gICAgICB0aW1lRGltZW5zaW9uczogdGhpcy5tZW1iZXJzLmZpbHRlcihcbiAgICAgICAgKHsgZGltZW5zaW9uIH0pID0+IGRpbWVuc2lvbiAhPT0gbmFtZVxuICAgICAgKSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQodGltZURpbWVuc2lvbnM6IGFueVtdKSB7XG4gICAgdGhpcy5xdWVyeS5zZXRQYXJ0aWFsUXVlcnkoe1xuICAgICAgdGltZURpbWVuc2lvbnMsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2V0RGF0ZVJhbmdlKGJ5OiBzdHJpbmcgfCBudW1iZXIsIGRhdGVSYW5nZTogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICB0aGlzLnVwZGF0ZVRpbWVEaW1lbnNpb24oYnksIHsgZGF0ZVJhbmdlIH0pO1xuICB9XG5cbiAgcHVibGljIHNldEdyYW51bGFyaXR5KGJ5OiBzdHJpbmcgfCBudW1iZXIsIGdyYW51bGFyaXR5OiBUaW1lRGltZW5zaW9uR3JhbnVsYXJpdHkpIHtcbiAgICB0aGlzLnVwZGF0ZVRpbWVEaW1lbnNpb24oYnksIHsgZ3JhbnVsYXJpdHkgfSk7XG4gIH1cblxuICBwdWJsaWMgYXNBcnJheSgpOiBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMubWVtYmVycy5tYXAoKHRkKSA9PiAoe1xuICAgICAgLi4udGhpcy5xdWVyeS5tZXRhLnJlc29sdmVNZW1iZXIodGQuZGltZW5zaW9uLCAnZGltZW5zaW9ucycpLFxuICAgICAgLi4udGQsXG4gICAgfSkpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBPcmRlciB7XG4gIHB1YmxpYyBvcmRlck1lbWJlcnMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRPcmRlck1lbWJlcltdPihbXSk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcXVlcnk6IFF1ZXJ5KSB7XG4gICAgdGhpcy5xdWVyeS5zdWJqZWN0LnN1YnNjcmliZSh0aGlzLmhhbmRsZVF1ZXJ5Q2hhbmdlLmJpbmQodGhpcykpO1xuICAgIHRoaXMub3JkZXJNZW1iZXJzLnN1YnNjcmliZSh0aGlzLmhhbmRsZU9yZGVyTWVtYmVyc0NoYW5nZS5iaW5kKHRoaXMpKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlT3JkZXJNZW1iZXJzQ2hhbmdlKG9yZGVyTWVtYmVyczogVE9yZGVyTWVtYmVyW10pIHtcbiAgICBjb25zdCBvcmRlciA9IG9yZGVyTWVtYmVyc1xuICAgICAgLmZpbHRlcigob3JkZXJNZW1iZXIpID0+IG9yZGVyTWVtYmVyLm9yZGVyICE9PSAnbm9uZScpXG4gICAgICAucmVkdWNlKFxuICAgICAgICAobWVtbywgb3JkZXJNZW1iZXIpID0+ICh7IC4uLm1lbW8sIFtvcmRlck1lbWJlci5pZF06IG9yZGVyTWVtYmVyLm9yZGVyIH0pLFxuICAgICAgICB7fVxuICAgICAgKSBhcyBUUXVlcnlPcmRlck9iamVjdDtcblxuICAgIGlmICghZXF1YWwob3JkZXIsIHRoaXMuYXNPYmplY3QoKSkpIHtcbiAgICAgIHRoaXMucXVlcnkuc2V0UGFydGlhbFF1ZXJ5KHsgb3JkZXIgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVRdWVyeUNoYW5nZSgpIHtcbiAgICB0aGlzLm9yZGVyTWVtYmVycy5uZXh0KFxuICAgICAgW1xuICAgICAgICAuLi50aGlzLnF1ZXJ5Lm1lYXN1cmVzLmFzQXJyYXkoKSxcbiAgICAgICAgLi4udGhpcy5xdWVyeS5kaW1lbnNpb25zLmFzQXJyYXkoKSxcbiAgICAgICAgLi4udGhpcy5xdWVyeS50aW1lRGltZW5zaW9ucy5hc0FycmF5KCksXG4gICAgICBdLm1hcDxUT3JkZXJNZW1iZXI+KCh7IG5hbWUsIHRpdGxlIH0pID0+ICh7XG4gICAgICAgIGlkOiBuYW1lLFxuICAgICAgICBvcmRlcjogdGhpcy5vZihuYW1lKSxcbiAgICAgICAgdGl0bGUsXG4gICAgICB9KSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHNldE1lbWJlck9yZGVyKGlkOiBzdHJpbmcsIG9yZGVyOiBUT3JkZXIpIHtcbiAgICB0aGlzLm9yZGVyTWVtYmVycy5uZXh0KFxuICAgICAgdGhpcy5vcmRlck1lbWJlcnMuZ2V0VmFsdWUoKS5tYXAoKG9yZGVyTWVtYmVyKSA9PiB7XG4gICAgICAgIGlmIChvcmRlck1lbWJlci5pZCA9PT0gaWQpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4ub3JkZXJNZW1iZXIsXG4gICAgICAgICAgICBvcmRlcixcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvcmRlck1lbWJlcjtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyByZW9yZGVyKHNvdXJjZUluZGV4OiBudW1iZXIsIGRlc3RpbmF0aW9uSW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMub3JkZXJNZW1iZXJzLm5leHQoXG4gICAgICBtb3ZlSXRlbUluQXJyYXkoXG4gICAgICAgIHRoaXMub3JkZXJNZW1iZXJzLmdldFZhbHVlKCksXG4gICAgICAgIHNvdXJjZUluZGV4LFxuICAgICAgICBkZXN0aW5hdGlvbkluZGV4XG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBvZihtZW1iZXI6IHN0cmluZykge1xuICAgIHJldHVybiAodGhpcy5xdWVyeS5hc0N1YmVRdWVyeSgpLm9yZGVyIHx8IHt9KVttZW1iZXJdIHx8ICdub25lJztcbiAgfVxuXG4gIHB1YmxpYyBzZXQob3JkZXI6IFRRdWVyeU9yZGVyT2JqZWN0IHwgVFF1ZXJ5T3JkZXJBcnJheSkge1xuICAgIHRoaXMucXVlcnkuc2V0UGFydGlhbFF1ZXJ5KHsgb3JkZXIgfSk7XG4gIH1cblxuICBwdWJsaWMgYXNBcnJheSgpOiBUUXVlcnlPcmRlckFycmF5IHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnF1ZXJ5LmFzQ3ViZVF1ZXJ5KCkub3JkZXIpKSB7XG4gICAgICByZXR1cm4gdGhpcy5xdWVyeS5hc0N1YmVRdWVyeSgpLm9yZGVyIGFzIFRRdWVyeU9yZGVyQXJyYXk7XG4gICAgfVxuXG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMucXVlcnkuYXNDdWJlUXVlcnkoKS5vcmRlciB8fCB7fSk7XG4gIH1cblxuICBwdWJsaWMgYXNPYmplY3QoKTogVFF1ZXJ5T3JkZXJPYmplY3Qge1xuICAgIHJldHVybiB0aGlzLmFzQXJyYXkoKS5yZWR1Y2UoXG4gICAgICAobWVtbywgW2tleSwgdmFsdWVdKSA9PiAoeyAuLi5tZW1vLCBba2V5XTogdmFsdWUgfSksXG4gICAgICB7fVxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZpbHRlck1lbWJlciB7XG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHF1ZXJ5OiBRdWVyeSkge31cblxuICBwcml2YXRlIGdldCBmaWx0ZXJzKCkge1xuICAgIC8vIFRPRE86IHVwZGF0ZSB0aGlzIHR5cGUgYXNzZXJ0aW9uIG9uY2UgdGhlIFF1ZXJ5QnVpbGRlciBzdXBwb3J0cyBsb2dpY2FsIGFuZC9vclxuICAgIHJldHVybiAodGhpcy5xdWVyeS5hc0N1YmVRdWVyeSgpLmZpbHRlcnMgfHwgW10pIGFzIChVbmFyeUZpbHRlciB8IEJpbmFyeUZpbHRlcilbXTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGUoYnk6IHN0cmluZyB8IG51bWJlciwgdXBkYXRlV2l0aDogUGFydGlhbDxGaWx0ZXI+KSB7XG4gICAgY29uc3QgZmlsdGVycyA9IHRoaXMuZmlsdGVycy5tYXAoKGZpbHRlciwgaW5kZXgpID0+IHtcbiAgICAgIGlmIChpbmRleCA9PT0gYnkgfHwgZmlsdGVyLm1lbWJlciA9PT0gYnkgfHwgZmlsdGVyLmRpbWVuc2lvbiA9PT0gYnkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5maWx0ZXIsXG4gICAgICAgICAgLi4udXBkYXRlV2l0aCxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmaWx0ZXI7XG4gICAgfSk7XG5cbiAgICB0aGlzLnF1ZXJ5LnNldFBhcnRpYWxRdWVyeSh7XG4gICAgICBmaWx0ZXJzOiBmaWx0ZXJzIGFzIEZpbHRlcltdLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFkZChmaWx0ZXI6IEZpbHRlcikge1xuICAgIHRoaXMucXVlcnkuc2V0UGFydGlhbFF1ZXJ5KHtcbiAgICAgIGZpbHRlcnM6IFsuLi50aGlzLmZpbHRlcnMsIGZpbHRlcl0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlKGJ5OiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICB0aGlzLnF1ZXJ5LnNldFBhcnRpYWxRdWVyeSh7XG4gICAgICBmaWx0ZXJzOiB0aGlzLmZpbHRlcnMuZmlsdGVyKChmaWx0ZXIsIGluZGV4KSA9PiB7XG4gICAgICAgIGlmIChmaWx0ZXIubWVtYmVyID09PSBieSB8fCBmaWx0ZXIuZGltZW5zaW9uID09PSBieSB8fCBpbmRleCA9PT0gYnkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0pLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNldChmaWx0ZXJzOiBGaWx0ZXJbXSkge1xuICAgIHRoaXMucXVlcnkuc2V0UGFydGlhbFF1ZXJ5KHtcbiAgICAgIGZpbHRlcnMsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVwbGFjZShuYW1lOiBzdHJpbmcsIHJlcGxhY2VXaXRoTmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5xdWVyeS5zZXRQYXJ0aWFsUXVlcnkoe1xuICAgICAgZmlsdGVyczogdGhpcy5maWx0ZXJzLm1hcCgoZmlsdGVyKSA9PiB7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gZmlsdGVyLm1lbWJlciA/ICdtZW1iZXInIDogJ2RpbWVuc2lvbic7XG4gICAgICAgIHJldHVybiBmaWx0ZXIubWVtYmVyID09PSBuYW1lIHx8IGZpbHRlci5kaW1lbnNpb24gPT09IG5hbWVcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgIC4uLmZpbHRlcixcbiAgICAgICAgICAgIFtmaWVsZF06IHJlcGxhY2VXaXRoTmFtZSxcbiAgICAgICAgICB9XG4gICAgICAgICAgOiBmaWx0ZXI7XG4gICAgICB9KSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc0FycmF5KCk6IGFueVtdIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJzLm1hcCgoZmlsdGVyKSA9PiAoe1xuICAgICAgLi4udGhpcy5xdWVyeS5tZXRhLnJlc29sdmVNZW1iZXIoZmlsdGVyLm1lbWJlciB8fCBmaWx0ZXIuZGltZW5zaW9uLCBbXG4gICAgICAgICdkaW1lbnNpb25zJyxcbiAgICAgICAgJ21lYXN1cmVzJyxcbiAgICAgIF0pLFxuICAgICAgb3BlcmF0b3JzOiB0aGlzLnF1ZXJ5Lm1ldGEuZmlsdGVyT3BlcmF0b3JzRm9yTWVtYmVyKFxuICAgICAgICBmaWx0ZXIubWVtYmVyIHx8IGZpbHRlci5kaW1lbnNpb24sXG4gICAgICAgIFsnZGltZW5zaW9ucycsICdtZWFzdXJlcyddXG4gICAgICApLFxuICAgICAgLi4uZmlsdGVyLFxuICAgIH0pKTtcbiAgfVxufVxuIl19
|