@bizdoc/core 1.7.0-next.3 → 1.7.0-next.7
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 +4 -3
- package/assets/fonts/MaterialIcons-Regular.svg +2373 -2373
- package/assets/fonts/README.md +9 -9
- package/assets/fonts/codepoints +932 -932
- package/assets/fonts/material-icons.css +36 -36
- package/assets/themes/brown.min.css +83 -81
- package/assets/themes/dark.min.css +77 -75
- package/assets/themes/default.min.css +90 -88
- package/assets/themes/green.min.css +83 -81
- package/assets/themes/indigo.min.css +83 -81
- package/bundles/bizdoc-core.umd.js +1086 -1600
- package/bundles/bizdoc-core.umd.js.map +1 -1
- package/esm2015/lib/app.component.js +7 -13
- package/esm2015/lib/bizdoc.module.js +2 -37
- package/esm2015/lib/browse/filter/filter.component.js +2 -2
- package/esm2015/lib/core/configuration.js +1 -1
- package/esm2015/lib/core/controls/combination-picker-body.js +2 -2
- package/esm2015/lib/core/models.js +1 -1
- package/esm2015/lib/core/session.service.js +5 -9
- package/esm2015/lib/core/slots/slots.component.js +6 -4
- package/esm2015/lib/cube/accum/accum.component.js +4 -7
- package/esm2015/lib/cube/chart/chart.component.js +6 -3
- package/esm2015/lib/cube/cube-info.service.js +100 -0
- package/esm2015/lib/cube/cube-view.component.js +11 -30
- package/esm2015/lib/cube/declarations.js +1 -1
- package/esm2015/lib/cube/explore/explore-items.component.js +5 -7
- package/esm2015/lib/cube/explore/explore.pane.component.js +2 -5
- package/esm2015/lib/cube/filter/filter-tags.component.exp.js +8 -8
- package/esm2015/lib/cube/filter/filter.component.js +14 -11
- package/esm2015/lib/cube/grid/grid.component.js +4 -3
- package/esm2015/lib/cube/grid/spreadsheet.component.js +4 -4
- package/esm2015/lib/cube/matrix/matrix.base.js +130 -0
- package/esm2015/lib/cube/matrix/matrix.component.js +68 -0
- package/esm2015/lib/cube/matrix/matrix.mobile.component.js +62 -0
- package/esm2015/lib/cube/matrix/matrix.pane.component.js +70 -0
- package/esm2015/lib/cube/matrix/table.component.js +254 -0
- package/esm2015/lib/cube/pivot/pivot.component.js +4 -4
- package/esm2015/lib/cube/view-base.js +76 -0
- package/esm2015/lib/cube/view.mobile.component.js +31 -54
- package/esm2015/lib/cube/view.pane.component.js +26 -58
- package/esm2015/lib/dashboard/cube/accum-cube.widget.js +2 -2
- package/esm2015/lib/dashboard/cube/cube-analysis.base.js +2 -2
- package/esm2015/lib/dashboard/cube/cube-chart.widget.js +2 -2
- package/esm2015/lib/dashboard/cube/filter/filter.component.js +3 -3
- package/esm2015/lib/desktop.module.js +6 -6
- package/esm2015/lib/home/sign/sign.component.js +2 -2
- package/esm2015/lib/impersonate/impersonate.component.js +69 -0
- package/esm2015/lib/mobile.module.js +9 -9
- package/esm2015/lib/reports/cube/grid-documents.component.js +10 -9
- package/esm2015/lib/reports/cube/usage-args.component.js +2 -2
- package/esm2015/lib/routes.desktop.js +3 -3
- package/esm2015/lib/routes.mobile.js +5 -5
- package/esm2015/lib/scheduler/schedule.component.js +21 -17
- package/esm2015/lib/shared.module.js +26 -26
- package/esm2015/lib/system.module.js +8 -10
- package/esm2015/lib/views/cube/cube-base.js +10 -5
- package/esm2015/lib/views/cube/matrix.component.js +95 -0
- package/esm2015/lib/views/cube/view.component.js +19 -21
- package/esm2015/lib/views/document-view-ref.js +3 -2
- package/esm2015/lib/views/timeline/timeline.component.exp.js +317 -0
- package/esm2015/lib/views/view-item.component.js +11 -7
- package/esm2015/lib/views/views.component.js +10 -11
- package/esm2015/public-api.js +4 -8
- package/fesm2015/bizdoc-core.js +902 -1382
- package/fesm2015/bizdoc-core.js.map +1 -1
- package/lib/app.component.d.ts +1 -4
- package/lib/core/configuration.d.ts +1 -17
- package/lib/core/controls/combination-picker-body.d.ts +1 -1
- package/lib/core/models.d.ts +1 -0
- package/lib/core/session.service.d.ts +0 -5
- package/lib/core/slots/slots.component.d.ts +1 -1
- package/lib/cube/accum/accum.component.d.ts +3 -7
- package/lib/cube/chart/chart.component.d.ts +1 -1
- package/lib/cube/{info/cube-info.service.d.ts → cube-info.service.d.ts} +6 -6
- package/lib/cube/cube-view.component.d.ts +4 -9
- package/lib/cube/declarations.d.ts +3 -5
- package/lib/cube/explore/explore-items.component.d.ts +1 -4
- package/lib/cube/explore/explore.pane.component.d.ts +0 -1
- package/lib/cube/filter/filter-tags.component.exp.d.ts +2 -2
- package/lib/cube/filter/filter.component.d.ts +4 -3
- package/lib/cube/grid/grid.component.d.ts +2 -1
- package/lib/cube/grid/spreadsheet.component.d.ts +1 -1
- package/lib/cube/{info/cube-info.base.d.ts → matrix/matrix.base.d.ts} +5 -5
- package/lib/cube/{info/cube-info.component.d.ts → matrix/matrix.component.d.ts} +8 -8
- package/lib/cube/{info/cube-info.mobile.component.d.ts → matrix/matrix.mobile.component.d.ts} +4 -4
- package/lib/cube/{info/cube-info.pane.component.d.ts → matrix/matrix.pane.component.d.ts} +5 -5
- package/lib/cube/{info → matrix}/table.component.d.ts +4 -5
- package/lib/cube/pivot/pivot.component.d.ts +2 -4
- package/lib/cube/view-base.d.ts +39 -0
- package/lib/cube/view.mobile.component.d.ts +8 -25
- package/lib/cube/view.pane.component.d.ts +8 -26
- package/lib/dashboard/cube/accum-cube.widget.d.ts +1 -1
- package/lib/dashboard/cube/cube-analysis.base.d.ts +1 -1
- package/lib/dashboard/cube/cube-chart.widget.d.ts +1 -1
- package/lib/dashboard/cube/filter/filter.component.d.ts +1 -1
- package/lib/desktop.module.d.ts +2 -2
- package/lib/{login/impersonate → impersonate}/impersonate.component.d.ts +3 -3
- package/lib/mobile.module.d.ts +2 -2
- package/lib/scheduler/schedule.component.d.ts +4 -1
- package/lib/shared.module.d.ts +48 -50
- package/lib/system.module.d.ts +25 -26
- package/lib/views/cube/cube-base.d.ts +16 -10
- package/lib/views/cube/{table.component.d.ts → matrix.component.d.ts} +2 -15
- package/lib/views/cube/view.component.d.ts +2 -9
- package/lib/views/document-view-ref.d.ts +3 -1
- package/lib/views/timeline/timeline.component.exp.d.ts +64 -0
- package/lib/views/view-item.component.d.ts +4 -2
- package/lib/views/views.component.d.ts +3 -5
- package/package.json +15 -17
- package/public-api.d.ts +4 -8
- package/esm2015/lib/admin/users/users.component.js +0 -155
- package/esm2015/lib/admin/users/users.service.js +0 -29
- package/esm2015/lib/cube/info/cube-info.base.js +0 -128
- package/esm2015/lib/cube/info/cube-info.component.js +0 -69
- package/esm2015/lib/cube/info/cube-info.mobile.component.js +0 -62
- package/esm2015/lib/cube/info/cube-info.pane.component.js +0 -70
- package/esm2015/lib/cube/info/cube-info.service.js +0 -100
- package/esm2015/lib/cube/info/table.component.js +0 -258
- package/esm2015/lib/login/forgot/forgot.component.js +0 -50
- package/esm2015/lib/login/form.authentication.js +0 -71
- package/esm2015/lib/login/form.interceptor.js +0 -26
- package/esm2015/lib/login/impersonate/impersonate.component.js +0 -69
- package/esm2015/lib/login/login.component.js +0 -130
- package/esm2015/lib/login/okta.authentication.js +0 -41
- package/esm2015/lib/login/okta.component.js +0 -84
- package/esm2015/lib/login/okta.interceptor.js +0 -30
- package/esm2015/lib/login/prompt/prompt.component.js +0 -194
- package/esm2015/lib/login/signin-info.service.js +0 -49
- package/esm2015/lib/views/cube/table.component.js +0 -107
- package/lib/admin/users/users.component.d.ts +0 -41
- package/lib/admin/users/users.service.d.ts +0 -30
- package/lib/login/forgot/forgot.component.d.ts +0 -20
- package/lib/login/form.authentication.d.ts +0 -29
- package/lib/login/form.interceptor.d.ts +0 -11
- package/lib/login/login.component.d.ts +0 -18
- package/lib/login/okta.authentication.d.ts +0 -13
- package/lib/login/okta.component.d.ts +0 -18
- package/lib/login/okta.interceptor.d.ts +0 -11
- package/lib/login/prompt/prompt.component.d.ts +0 -45
- package/lib/login/signin-info.service.d.ts +0 -18
- package/src/assets/.gitkeep +0 -0
- package/src/assets/animations/13194-message.json +0 -1
- package/src/assets/animations/1408-network-lost.json +0 -1
- package/src/assets/animations/19560-loading.json +0 -1
- package/src/assets/animations/21928-folder.json +0 -1
- package/src/assets/animations/21941-airplane-animation-movement.json +0 -1
- package/src/assets/animations/2252-broken-stick-error.json +0 -1
- package/src/assets/animations/24910-new-message-notification.json +0 -1
- package/src/assets/animations/25974-paper-plane.json +0 -1
- package/src/assets/animations/36395-lonely-404.json +0 -1
- package/src/assets/animations/36499-page-not-found.json +0 -1
- package/src/assets/animations/37211-google-icons-forms.json +0 -1
- package/src/assets/animations/41896-application.json +0 -1
- package/src/assets/animations/4958-404-not-found.json +0 -1
- package/src/assets/animations/51956-success-icon.json +0 -1
- package/src/assets/animations/53402-bell.json +0 -1
- package/src/assets/animations/5371-volaris-tickets.json +0 -1
- package/src/assets/animations/58266-quad-cube-shifter-1.json +0 -1
- package/src/assets/animations/58509-shifting-cubes-2.json +0 -1
- package/src/assets/animations/8318-loader.json +0 -1
- package/src/assets/animations/lf20_isphoahq.json +0 -1
- package/src/assets/animations/lf30_editor_6kz6oezn.json +0 -1
- package/src/assets/animations/lf30_editor_b6axvtp7.json +0 -1
- package/src/assets/animations/lf30_editor_cq62rpyv.json +0 -1
- package/src/assets/animations/lf30_editor_fbytfhvg.json +0 -1
- package/src/assets/animations/lf30_editor_h1xoyem7.json +0 -1
- package/src/assets/animations/lf30_editor_qr7zgmcs.json +0 -1
- package/src/assets/animations/lf30_editor_rxee1cqy.json +0 -1
- package/src/assets/animations/lf30_editor_yxy6fuei.json +0 -1
- package/src/assets/bizdoc-schema.json +0 -1238
- package/src/assets/favicon.ico +0 -0
- package/src/assets/fonts/LICENSE.txt +0 -202
- package/src/assets/fonts/MaterialIcons-Outlined.woff2 +0 -0
- package/src/assets/fonts/MaterialIcons-Regular.eot +0 -0
- package/src/assets/fonts/MaterialIcons-Regular.ijmap +0 -1
- package/src/assets/fonts/MaterialIcons-Regular.svg +0 -2373
- package/src/assets/fonts/MaterialIcons-Regular.ttf +0 -0
- package/src/assets/fonts/MaterialIcons-Regular.woff +0 -0
- package/src/assets/fonts/MaterialIcons-Regular.woff2 +0 -0
- package/src/assets/fonts/MaterialIcons.css +0 -55
- package/src/assets/fonts/README.md +0 -9
- package/src/assets/fonts/Roboto-Black.ttf +0 -0
- package/src/assets/fonts/Roboto-BlackItalic.ttf +0 -0
- package/src/assets/fonts/Roboto-Bold.ttf +0 -0
- package/src/assets/fonts/Roboto-BoldItalic.ttf +0 -0
- package/src/assets/fonts/Roboto-Italic.ttf +0 -0
- package/src/assets/fonts/Roboto-Light.ttf +0 -0
- package/src/assets/fonts/Roboto-LightItalic.ttf +0 -0
- package/src/assets/fonts/Roboto-Medium.ttf +0 -0
- package/src/assets/fonts/Roboto-MediumItalic.ttf +0 -0
- package/src/assets/fonts/Roboto-Regular.ttf +0 -0
- package/src/assets/fonts/Roboto-Thin.ttf +0 -0
- package/src/assets/fonts/Roboto-ThinItalic.ttf +0 -0
- package/src/assets/fonts/codepoints +0 -932
- package/src/assets/fonts/material-icons.css +0 -36
- package/src/assets/i18n/cldr-data/main/he/ca-buddhist.json +0 -532
- package/src/assets/i18n/cldr-data/main/he/ca-chinese.json +0 -1255
- package/src/assets/i18n/cldr-data/main/he/ca-coptic.json +0 -541
- package/src/assets/i18n/cldr-data/main/he/ca-dangi.json +0 -1255
- package/src/assets/i18n/cldr-data/main/he/ca-ethiopic-amete-alem.json +0 -538
- package/src/assets/i18n/cldr-data/main/he/ca-ethiopic.json +0 -541
- package/src/assets/i18n/cldr-data/main/he/ca-generic.json +0 -535
- package/src/assets/i18n/cldr-data/main/he/ca-gregorian.json +0 -552
- package/src/assets/i18n/cldr-data/main/he/ca-hebrew.json +0 -557
- package/src/assets/i18n/cldr-data/main/he/ca-indian.json +0 -532
- package/src/assets/i18n/cldr-data/main/he/ca-islamic-civil.json +0 -532
- package/src/assets/i18n/cldr-data/main/he/ca-islamic-rgsa.json +0 -532
- package/src/assets/i18n/cldr-data/main/he/ca-islamic-tbla.json +0 -532
- package/src/assets/i18n/cldr-data/main/he/ca-islamic-umalqura.json +0 -532
- package/src/assets/i18n/cldr-data/main/he/ca-islamic.json +0 -532
- package/src/assets/i18n/cldr-data/main/he/ca-japanese.json +0 -1240
- package/src/assets/i18n/cldr-data/main/he/ca-persian.json +0 -532
- package/src/assets/i18n/cldr-data/main/he/ca-roc.json +0 -535
- package/src/assets/i18n/cldr-data/main/he/characters.json +0 -53
- package/src/assets/i18n/cldr-data/main/he/currencies.json +0 -1982
- package/src/assets/i18n/cldr-data/main/he/dateFields.json +0 -860
- package/src/assets/i18n/cldr-data/main/he/delimiters.json +0 -19
- package/src/assets/i18n/cldr-data/main/he/languages.json +0 -555
- package/src/assets/i18n/cldr-data/main/he/layout.json +0 -19
- package/src/assets/i18n/cldr-data/main/he/listPatterns.json +0 -69
- package/src/assets/i18n/cldr-data/main/he/localeDisplayNames.json +0 -231
- package/src/assets/i18n/cldr-data/main/he/measurementSystemNames.json +0 -20
- package/src/assets/i18n/cldr-data/main/he/numbers.json +0 -233
- package/src/assets/i18n/cldr-data/main/he/posix.json +0 -19
- package/src/assets/i18n/cldr-data/main/he/scripts.json +0 -191
- package/src/assets/i18n/cldr-data/main/he/territories.json +0 -324
- package/src/assets/i18n/cldr-data/main/he/timeZoneNames.json +0 -2301
- package/src/assets/i18n/cldr-data/main/he/units.json +0 -3408
- package/src/assets/i18n/cldr-data/main/he/variants.json +0 -119
- package/src/assets/i18n/cldr-data/supplemental/aliases.json +0 -4391
- package/src/assets/i18n/cldr-data/supplemental/calendarData.json +0 -865
- package/src/assets/i18n/cldr-data/supplemental/calendarPreferenceData.json +0 -50
- package/src/assets/i18n/cldr-data/supplemental/characterFallbacks.json +0 -888
- package/src/assets/i18n/cldr-data/supplemental/codeMappings.json +0 -1932
- package/src/assets/i18n/cldr-data/supplemental/currencyData.json +0 -3589
- package/src/assets/i18n/cldr-data/supplemental/dayPeriods.json +0 -2008
- package/src/assets/i18n/cldr-data/supplemental/gender.json +0 -67
- package/src/assets/i18n/cldr-data/supplemental/languageData.json +0 -6450
- package/src/assets/i18n/cldr-data/supplemental/languageGroups.json +0 -115
- package/src/assets/i18n/cldr-data/supplemental/languageMatching.json +0 -1864
- package/src/assets/i18n/cldr-data/supplemental/likelySubtags.json +0 -1844
- package/src/assets/i18n/cldr-data/supplemental/measurementData.json +0 -44
- package/src/assets/i18n/cldr-data/supplemental/metaZones.json +0 -7049
- package/src/assets/i18n/cldr-data/supplemental/numberingSystems.json +0 -343
- package/src/assets/i18n/cldr-data/supplemental/ordinals.json +0 -371
- package/src/assets/i18n/cldr-data/supplemental/parentLocales.json +0 -180
- package/src/assets/i18n/cldr-data/supplemental/plurals.json +0 -884
- package/src/assets/i18n/cldr-data/supplemental/primaryZones.json +0 -22
- package/src/assets/i18n/cldr-data/supplemental/references.json +0 -1181
- package/src/assets/i18n/cldr-data/supplemental/territoryContainment.json +0 -753
- package/src/assets/i18n/cldr-data/supplemental/territoryInfo.json +0 -6604
- package/src/assets/i18n/cldr-data/supplemental/timeData.json +0 -1031
- package/src/assets/i18n/cldr-data/supplemental/unitPreferenceData.json +0 -290
- package/src/assets/i18n/cldr-data/supplemental/weekData.json +0 -316
- package/src/assets/i18n/cldr-data/supplemental/windowsZones.json +0 -3520
- package/src/assets/icons/icon-128x128.png +0 -0
- package/src/assets/icons/icon-144x144.png +0 -0
- package/src/assets/icons/icon-152x152.png +0 -0
- package/src/assets/icons/icon-192x192.png +0 -0
- package/src/assets/icons/icon-256x256.png +0 -0
- package/src/assets/icons/icon-32x32.png +0 -0
- package/src/assets/icons/icon-512x512.png +0 -0
- package/src/assets/js/app-sw.js +0 -16
- package/src/assets/js/firebase-messaging-sw.js +0 -1
- package/src/assets/js/logo.js +0 -31
- package/src/assets/logo.json +0 -1
- package/src/assets/logo.svg +0 -38
- package/src/assets/manifest.json +0 -43
- package/src/assets/sounds/alert_error-03.ogg +0 -0
- package/src/assets/sounds/navigation_hover-tap.ogg +0 -0
- package/src/assets/sounds/notification_simple-01.ogg +0 -0
- package/src/assets/themes/brown.min.css +0 -81
- package/src/assets/themes/dark.min.css +0 -76
- package/src/assets/themes/default.min.css +0 -88
- package/src/assets/themes/green.min.css +0 -81
- package/src/assets/themes/indigo.min.css +0 -81
- package/src/assets/themes/okta-sign-in.min.css +0 -17
@@ -1,62 +0,0 @@
|
|
1
|
-
import { Component } from '@angular/core';
|
2
|
-
import { CubeInfoBase } from './cube-info.base';
|
3
|
-
import * as i0 from "@angular/core";
|
4
|
-
import * as i1 from "../../core/window-title.service";
|
5
|
-
import * as i2 from "@angular/router";
|
6
|
-
import * as i3 from "../cube.service";
|
7
|
-
import * as i4 from "../../core/datasource.service";
|
8
|
-
import * as i5 from "../../core/session.service";
|
9
|
-
import * as i6 from "@angular/material/toolbar";
|
10
|
-
import * as i7 from "@angular/material/button";
|
11
|
-
import * as i8 from "@angular/material/icon";
|
12
|
-
import * as i9 from "@angular/material/menu";
|
13
|
-
import * as i10 from "@angular/material/progress-bar";
|
14
|
-
import * as i11 from "./table.component";
|
15
|
-
import * as i12 from "@angular/material/tooltip";
|
16
|
-
import * as i13 from "../../core/animated-icon/animated-icon.directive";
|
17
|
-
import * as i14 from "@angular/common";
|
18
|
-
import * as i15 from "../../core/pipes/translate.pipe";
|
19
|
-
export class CubeInfoMobileComponent extends CubeInfoBase {
|
20
|
-
/** cube-info ctor */
|
21
|
-
constructor(_title, _route, _router, service, ds, session) {
|
22
|
-
super(service, ds, session);
|
23
|
-
this._title = _title;
|
24
|
-
this._route = _route;
|
25
|
-
this._router = _router;
|
26
|
-
}
|
27
|
-
ngOnInit() {
|
28
|
-
this._route.params.subscribe(p => {
|
29
|
-
this.cube = p['id'];
|
30
|
-
this.xAxis = p['xAxis'];
|
31
|
-
this.serie = p['serie'];
|
32
|
-
this._title.set(this.configuration.title);
|
33
|
-
});
|
34
|
-
this._route.data.subscribe(d => {
|
35
|
-
this.indices = d['indices'];
|
36
|
-
/** */
|
37
|
-
this.aggregation = d['aggregate'];
|
38
|
-
this.sum = d['sum'];
|
39
|
-
this.selection = d['filters'];
|
40
|
-
});
|
41
|
-
this._route.queryParams.subscribe(p => this.originalAxes =
|
42
|
-
this.axes = p);
|
43
|
-
}
|
44
|
-
onFilter(axes) {
|
45
|
-
this._router.navigate([], { queryParams: axes });
|
46
|
-
}
|
47
|
-
explore(axes) {
|
48
|
-
this._router.navigate(['cube', this.cube, 'explore'], {
|
49
|
-
queryParams: axes
|
50
|
-
});
|
51
|
-
}
|
52
|
-
}
|
53
|
-
CubeInfoMobileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: CubeInfoMobileComponent, deps: [{ token: i1.WindowTitleService }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: i3.CubeService }, { token: i4.DatasourceService }, { token: i5.SessionService }], target: i0.ɵɵFactoryTarget.Component });
|
54
|
-
CubeInfoMobileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.7", type: CubeInfoMobileComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"table.refresh()\" [matTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" *ngIf=\"patterns && patterns.length\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"aggregate(p)\">{{p.title}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [matTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n <ng-container *ngFor=\"let f of filters\">\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n <button mat-menu-item *ngFor=\"let kv of sources[f.name] | async\"\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"indeterminate\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<bizdoc-cube-info-table [cube]=\"cube\" [xAxis]=\"xAxis\" [serie]=\"serie\" [indices]=\"indices\" [sum]=sum\r\n [base]=\"originalAxes\" [axes]=\"axes\"\r\n [(loading)]=\"loading\" (explore)='explore($event)'></bizdoc-cube-info-table>\r\n", styles: [":host{min-width:450px}\n"], components: [{ type: i6.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i9.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i9.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i10.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "mode", "value", "bufferValue"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: i11.CubeInfoTableComponent, selector: "bizdoc-cube-info-table", inputs: ["cube", "xAxis", "serie", "indices", "sum", "base", "axes", "loading", "interactive"], outputs: ["explore", "loadingChange"] }], directives: [{ type: i12.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i13.MatIconAnimate, selector: "[matAnimate]" }, { type: i14.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i14.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i15.TranslatePipe, "async": i14.AsyncPipe } });
|
55
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: CubeInfoMobileComponent, decorators: [{
|
56
|
-
type: Component,
|
57
|
-
args: [{
|
58
|
-
templateUrl: './cube-info.mobile.component.html',
|
59
|
-
styleUrls: ['./cube-info.pane.component.scss']
|
60
|
-
}]
|
61
|
-
}], ctorParameters: function () { return [{ type: i1.WindowTitleService }, { type: i2.ActivatedRoute }, { type: i2.Router }, { type: i3.CubeService }, { type: i4.DatasourceService }, { type: i5.SessionService }]; } });
|
62
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ViZS1pbmZvLm1vYmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2N1YmUvaW5mby9jdWJlLWluZm8ubW9iaWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY3ViZS9pbmZvL2N1YmUtaW5mby5tb2JpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQVFsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTWhELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxZQUFZO0lBRXZELHFCQUFxQjtJQUNyQixZQUNVLE1BQTBCLEVBQzFCLE1BQXNCLEVBQ3RCLE9BQWUsRUFDdkIsT0FBb0IsRUFDcEIsRUFBcUIsRUFDckIsT0FBdUI7UUFFdkIsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFQcEIsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQU16QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FDQSxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzVCLE1BQU07WUFDTixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUN0QyxJQUFJLENBQUMsWUFBWTtZQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFhO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxPQUFPLENBQUMsSUFBYTtRQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxFQUFFO1lBQ3BELFdBQVcsRUFBRSxJQUFJO1NBQ2xCLENBQUMsQ0FBQztJQUNILENBQUM7O29IQTFDUSx1QkFBdUI7d0dBQXZCLHVCQUF1QiwyRUNkcEMsbW1EQTBCQTsyRkRaYSx1QkFBdUI7a0JBSm5DLFNBQVM7bUJBQUM7b0JBQ1QsV0FBVyxFQUFFLG1DQUFtQztvQkFDaEQsU0FBUyxFQUFFLENBQUMsaUNBQWlDLENBQUM7aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEYXRhc291cmNlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvZGF0YXNvdXJjZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ3ViZVNlcnZpY2UgfSBmcm9tICcuLi9jdWJlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQYW5lc1JvdXRlciB9IGZyb20gJy4uLy4uL2NvcmUvc2xvdHMvcm91dGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBeGVzTWFwIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBXaW5kb3dUaXRsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3dpbmRvdy10aXRsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ3ViZUluZm9CYXNlIH0gZnJvbSAnLi9jdWJlLWluZm8uYmFzZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJy4vY3ViZS1pbmZvLm1vYmlsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY3ViZS1pbmZvLnBhbmUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3ViZUluZm9Nb2JpbGVDb21wb25lbnQgZXh0ZW5kcyBDdWJlSW5mb0Jhc2UgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAvKiogY3ViZS1pbmZvIGN0b3IgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3RpdGxlOiBXaW5kb3dUaXRsZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9yb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcclxuICAgIHNlcnZpY2U6IEN1YmVTZXJ2aWNlLFxyXG4gICAgZHM6IERhdGFzb3VyY2VTZXJ2aWNlLFxyXG4gICAgc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UpIHtcclxuXHJcbiAgICBzdXBlcihzZXJ2aWNlLCBkcywgc2Vzc2lvbik7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3JvdXRlLnBhcmFtcy5zdWJzY3JpYmUocCA9PiB7XHJcbiAgICAgIHRoaXMuY3ViZSA9IHBbJ2lkJ107XHJcbiAgICAgIHRoaXMueEF4aXMgPSBwWyd4QXhpcyddO1xyXG4gICAgICB0aGlzLnNlcmllID0gcFsnc2VyaWUnXTtcclxuICAgICAgdGhpcy5fdGl0bGUuc2V0KHRoaXMuY29uZmlndXJhdGlvbi50aXRsZSk7XHJcbiAgICB9XHJcbiAgICApO1xyXG4gICAgdGhpcy5fcm91dGUuZGF0YS5zdWJzY3JpYmUoZCA9PiB7XHJcbiAgICAgIHRoaXMuaW5kaWNlcyA9IGRbJ2luZGljZXMnXTtcclxuICAgICAgLyoqICovXHJcbiAgICAgIHRoaXMuYWdncmVnYXRpb24gPSBkWydhZ2dyZWdhdGUnXTtcclxuICAgICAgdGhpcy5zdW0gPSBkWydzdW0nXTtcclxuICAgICAgdGhpcy5zZWxlY3Rpb24gPSBkWydmaWx0ZXJzJ107XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX3JvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZShwID0+IFxyXG4gICAgdGhpcy5vcmlnaW5hbEF4ZXMgPSBcclxuICAgICAgdGhpcy5heGVzID0gcCk7XHJcbiAgfVxyXG5cclxuICBvbkZpbHRlcihheGVzOiBBeGVzTWFwKSB7XHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoW10sIHsgcXVlcnlQYXJhbXM6IGF4ZXMgfSk7XHJcbiAgfVxyXG5cclxuICBleHBsb3JlKGF4ZXM6IEF4ZXNNYXApIHtcclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ2N1YmUnLCB0aGlzLmN1YmUsICdleHBsb3JlJ10sIHtcclxuICAgICAgcXVlcnlQYXJhbXM6IGF4ZXNcclxuICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiIsIjxtYXQtdG9vbGJhciBjbGFzcz1cIm5hdi10b29sYmFyXCI+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInRhYmxlLnJlZnJlc2goKVwiIFttYXRUb29sdGlwXT1cIidSZWZyZXNoJyB8IHRyYW5zbGF0ZVwiPjxtYXQtaWNvbiBtYXRBbmltYXRlPVwicm90YXRlXCI+YXV0b3JlbmV3PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm9wdGlvbnNcIiAqbmdJZj1cInBhdHRlcm5zICYmIHBhdHRlcm5zLmxlbmd0aFwiPjxtYXQtaWNvbiBbY2xhc3MuZmlsbGVkXT1cInBhdHRlcm5cIj5maWx0ZXJfYWx0PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICA8bWF0LW1lbnUgI29wdGlvbnMgeFBvc2l0aW9uPVwiYmVmb3JlXCI+XHJcbiAgICA8IS0tIHBhdHRlcm5zIC0tPlxyXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICpuZ0Zvcj1cImxldCBwIG9mIHBhdHRlcm5zXCIgKGNsaWNrKT1cImFnZ3JlZ2F0ZShwKVwiPnt7cC50aXRsZX19PC9idXR0b24+XHJcbiAgPC9tYXQtbWVudT5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwicmVzZXQoKVwiIFtkaXNhYmxlZF09XCIhcGF0dGVyblwiIFttYXRUb29sdGlwXT1cIidDbGVhcicgfCB0cmFuc2xhdGVcIj5cclxuICAgIDxtYXQtaWNvbj5jbGVhcl9hbGw8L21hdC1pY29uPlxyXG4gIDwvYnV0dG9uPlxyXG4gIDwhLS0gZmlsdGVycyAtLT5cclxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmIG9mIGZpbHRlcnNcIj5cclxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwiZm1lbnVcIj57e3ZhbHVlc1tmLm5hbWVdfX0gPG1hdC1pY29uPmFycm93X2Ryb3BfZG93bjwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8bWF0LW1lbnUgI2ZtZW51IHhQb3NpdGlvbj1cImJlZm9yZVwiPlxyXG4gICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKm5nRm9yPVwibGV0IGt2IG9mIHNvdXJjZXNbZi5uYW1lXSB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiZmlsdGVyKGYubmFtZSwga3Yua2V5LCBrdi52YWx1ZSlcIj5cclxuICAgICAgICB7e2t2LnZhbHVlfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L21hdC1tZW51PlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L21hdC10b29sYmFyPlxyXG48bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiIFtzdHlsZS52aXNpYmlsaXR5XT1cImxvYWRpbmcgPyAndmlzaWJsZSc6J2hpZGRlbidcIj48L21hdC1wcm9ncmVzcy1iYXI+XHJcbjxiaXpkb2MtY3ViZS1pbmZvLXRhYmxlIFtjdWJlXT1cImN1YmVcIiBbeEF4aXNdPVwieEF4aXNcIiBbc2VyaWVdPVwic2VyaWVcIiBbaW5kaWNlc109XCJpbmRpY2VzXCIgW3N1bV09c3VtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtiYXNlXT1cIm9yaWdpbmFsQXhlc1wiIFtheGVzXT1cImF4ZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKGxvYWRpbmcpXT1cImxvYWRpbmdcIiAoZXhwbG9yZSk9J2V4cGxvcmUoJGV2ZW50KSc+PC9iaXpkb2MtY3ViZS1pbmZvLXRhYmxlPlxyXG4iXX0=
|
@@ -1,70 +0,0 @@
|
|
1
|
-
import { Component } from '@angular/core';
|
2
|
-
import { CubeInfoBase } from './cube-info.base';
|
3
|
-
import { OpenPolicy } from '../../core/configuration';
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
import * as i1 from "../../core/slots/pane-ref";
|
6
|
-
import * as i2 from "../../core/slots/router.service";
|
7
|
-
import * as i3 from "../cube.service";
|
8
|
-
import * as i4 from "../../core/datasource.service";
|
9
|
-
import * as i5 from "../../core/session.service";
|
10
|
-
import * as i6 from "@angular/material/toolbar";
|
11
|
-
import * as i7 from "@angular/material/button";
|
12
|
-
import * as i8 from "@angular/material/icon";
|
13
|
-
import * as i9 from "@angular/material/menu";
|
14
|
-
import * as i10 from "@angular/material/progress-bar";
|
15
|
-
import * as i11 from "./table.component";
|
16
|
-
import * as i12 from "@angular/material/tooltip";
|
17
|
-
import * as i13 from "../../core/animated-icon/animated-icon.directive";
|
18
|
-
import * as i14 from "@angular/common";
|
19
|
-
import * as i15 from "../../core/pipes/translate.pipe";
|
20
|
-
export class CubeInfoPaneComponent extends CubeInfoBase {
|
21
|
-
/** cube-info ctor */
|
22
|
-
constructor(_slot, _router, service, ds, session) {
|
23
|
-
super(service, ds, session);
|
24
|
-
this._slot = _slot;
|
25
|
-
this._router = _router;
|
26
|
-
}
|
27
|
-
ngOnInit() {
|
28
|
-
this._slot.paramsChange.subscribe(p => {
|
29
|
-
this.cube = p['cube'];
|
30
|
-
this._slot.title = this.configuration.title;
|
31
|
-
if (this.configuration.icon)
|
32
|
-
this._slot.icon = this.configuration.icon;
|
33
|
-
this.xAxis = p['xAxis'];
|
34
|
-
this.serie = p['serie'];
|
35
|
-
});
|
36
|
-
this._slot.dataChange.subscribe(d => {
|
37
|
-
this.indices = d['indices'];
|
38
|
-
/** */
|
39
|
-
this.aggregation = d['aggregate'];
|
40
|
-
this.sum = d['sum'];
|
41
|
-
this.selection = d['filters'];
|
42
|
-
});
|
43
|
-
this._slot.queryParamsChange.subscribe(p => this.originalAxes =
|
44
|
-
this.axes = p);
|
45
|
-
}
|
46
|
-
onFilter(queryParams) {
|
47
|
-
this._router.navigate([], {
|
48
|
-
queryParams, policy: this._slot.tab ?
|
49
|
-
OpenPolicy.Tab : OpenPolicy.Replace
|
50
|
-
});
|
51
|
-
}
|
52
|
-
explore(queryParams) {
|
53
|
-
this._router.navigate(['cube', this.cube, 'explore'], {
|
54
|
-
queryParams
|
55
|
-
});
|
56
|
-
}
|
57
|
-
}
|
58
|
-
CubeInfoPaneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: CubeInfoPaneComponent, deps: [{ token: i1.PaneRef }, { token: i2.PanesRouter }, { token: i3.CubeService }, { token: i4.DatasourceService }, { token: i5.SessionService }], target: i0.ɵɵFactoryTarget.Component });
|
59
|
-
CubeInfoPaneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.7", type: CubeInfoPaneComponent, selector: "ng-component", host: { classAttribute: "pane" }, usesInheritance: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"table.refresh()\" [matTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" *ngIf=\"patterns && patterns.length\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"aggregate(p)\">{{p.title}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [matTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n <ng-container *ngFor=\"let f of filters\">\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n <button mat-menu-item *ngFor=\"let kv of sources[f.name] | async\"\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"indeterminate\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<bizdoc-cube-info-table [cube]=\"cube\" [xAxis]=\"xAxis\" [serie]=\"serie\" [indices]=\"indices\" [sum]=sum\r\n [base]=\"originalAxes\" [axes]=\"axes\"\r\n [(loading)]=\"loading\" (explore)='explore($event)'></bizdoc-cube-info-table>\r\n", styles: [":host{min-width:450px}\n"], components: [{ type: i6.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i9.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i9.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i10.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "mode", "value", "bufferValue"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: i11.CubeInfoTableComponent, selector: "bizdoc-cube-info-table", inputs: ["cube", "xAxis", "serie", "indices", "sum", "base", "axes", "loading", "interactive"], outputs: ["explore", "loadingChange"] }], directives: [{ type: i12.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i13.MatIconAnimate, selector: "[matAnimate]" }, { type: i14.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i14.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i15.TranslatePipe, "async": i14.AsyncPipe } });
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: CubeInfoPaneComponent, decorators: [{
|
61
|
-
type: Component,
|
62
|
-
args: [{
|
63
|
-
templateUrl: './cube-info.pane.component.html',
|
64
|
-
styleUrls: ['./cube-info.pane.component.scss'],
|
65
|
-
host: {
|
66
|
-
class: 'pane'
|
67
|
-
}
|
68
|
-
}]
|
69
|
-
}], ctorParameters: function () { return [{ type: i1.PaneRef }, { type: i2.PanesRouter }, { type: i3.CubeService }, { type: i4.DatasourceService }, { type: i5.SessionService }]; } });
|
70
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ViZS1pbmZvLnBhbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL2luZm8vY3ViZS1pbmZvLnBhbmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL2luZm8vY3ViZS1pbmZvLnBhbmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQU9sRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQVN0RCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsWUFBWTtJQUNyRCxxQkFBcUI7SUFDckIsWUFDVSxLQUFxQyxFQUNyQyxPQUFvQixFQUM1QixPQUFvQixFQUNwQixFQUFxQixFQUNyQixPQUF1QjtRQUN2QixLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUxwQixVQUFLLEdBQUwsS0FBSyxDQUFnQztRQUNyQyxZQUFPLEdBQVAsT0FBTyxDQUFhO0lBSzlCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO1lBQzVDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJO2dCQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzVCLE1BQU07WUFDTixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQzNDLElBQUksQ0FBQyxZQUFZO1lBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQ2QsQ0FBQztJQUNKLENBQUM7SUFDRCxRQUFRLENBQUMsV0FBb0I7UUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFO1lBQ3hCLFdBQVcsRUFBRSxNQUFNLEVBQ2pCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2QsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU87U0FDeEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sQ0FBQyxXQUFvQjtRQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxFQUFFO1lBQ3BELFdBQVc7U0FDWixDQUFDLENBQUM7SUFFTCxDQUFDOztrSEEzQ1UscUJBQXFCO3NHQUFyQixxQkFBcUIsNkdDakJsQyxtbURBMEJBOzJGRFRhLHFCQUFxQjtrQkFQakMsU0FBUzttQkFBQztvQkFDVCxXQUFXLEVBQUUsaUNBQWlDO29CQUM5QyxTQUFTLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQztvQkFDOUMsSUFBSSxFQUFFO3dCQUNKLEtBQUssRUFBRSxNQUFNO3FCQUNkO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IERhdGFzb3VyY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9kYXRhc291cmNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDdWJlU2VydmljZSB9IGZyb20gJy4uL2N1YmUuc2VydmljZSc7XHJcbmltcG9ydCB7IFBhbmVzUm91dGVyIH0gZnJvbSAnLi4vLi4vY29yZS9zbG90cy9yb3V0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFBhbmVSZWYgfSBmcm9tICcuLi8uLi9jb3JlL3Nsb3RzL3BhbmUtcmVmJztcclxuaW1wb3J0IHsgQXhlc01hcCB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgQ3ViZUluZm9CYXNlIH0gZnJvbSAnLi9jdWJlLWluZm8uYmFzZSc7XHJcbmltcG9ydCB7IE9wZW5Qb2xpY3kgfSBmcm9tICcuLi8uLi9jb3JlL2NvbmZpZ3VyYXRpb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGVVcmw6ICcuL2N1YmUtaW5mby5wYW5lLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jdWJlLWluZm8ucGFuZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGhvc3Q6IHtcclxuICAgIGNsYXNzOiAncGFuZSdcclxuICB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdWJlSW5mb1BhbmVDb21wb25lbnQgZXh0ZW5kcyBDdWJlSW5mb0Jhc2UgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIC8qKiBjdWJlLWluZm8gY3RvciAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfc2xvdDogUGFuZVJlZjxDdWJlSW5mb1BhbmVDb21wb25lbnQ+LFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBQYW5lc1JvdXRlcixcclxuICAgIHNlcnZpY2U6IEN1YmVTZXJ2aWNlLFxyXG4gICAgZHM6IERhdGFzb3VyY2VTZXJ2aWNlLFxyXG4gICAgc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UpIHtcclxuICAgIHN1cGVyKHNlcnZpY2UsIGRzLCBzZXNzaW9uKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2xvdC5wYXJhbXNDaGFuZ2Uuc3Vic2NyaWJlKHAgPT4ge1xyXG4gICAgICB0aGlzLmN1YmUgPSBwWydjdWJlJ107XHJcbiAgICAgIHRoaXMuX3Nsb3QudGl0bGUgPSB0aGlzLmNvbmZpZ3VyYXRpb24udGl0bGU7XHJcbiAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb24uaWNvbikgdGhpcy5fc2xvdC5pY29uID0gdGhpcy5jb25maWd1cmF0aW9uLmljb247XHJcbiAgICAgIHRoaXMueEF4aXMgPSBwWyd4QXhpcyddO1xyXG4gICAgICB0aGlzLnNlcmllID0gcFsnc2VyaWUnXTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fc2xvdC5kYXRhQ2hhbmdlLnN1YnNjcmliZShkID0+IHtcclxuICAgICAgdGhpcy5pbmRpY2VzID0gZFsnaW5kaWNlcyddO1xyXG4gICAgICAvKiogKi9cclxuICAgICAgdGhpcy5hZ2dyZWdhdGlvbiA9IGRbJ2FnZ3JlZ2F0ZSddO1xyXG4gICAgICB0aGlzLnN1bSA9IGRbJ3N1bSddO1xyXG4gICAgICB0aGlzLnNlbGVjdGlvbiA9IGRbJ2ZpbHRlcnMnXTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fc2xvdC5xdWVyeVBhcmFtc0NoYW5nZS5zdWJzY3JpYmUocCA9PlxyXG4gICAgdGhpcy5vcmlnaW5hbEF4ZXMgPSBcclxuICAgICAgdGhpcy5heGVzID0gcFxyXG4gICAgKTtcclxuICB9XHJcbiAgb25GaWx0ZXIocXVlcnlQYXJhbXM6IEF4ZXNNYXApIHtcclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbXSwge1xyXG4gICAgICBxdWVyeVBhcmFtcywgcG9saWN5OlxyXG4gICAgICAgIHRoaXMuX3Nsb3QudGFiID9cclxuICAgICAgICAgIE9wZW5Qb2xpY3kuVGFiIDogT3BlblBvbGljeS5SZXBsYWNlXHJcbiAgICB9KTtcclxuICB9XHJcbiAgZXhwbG9yZShxdWVyeVBhcmFtczogQXhlc01hcCkge1xyXG4gICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFsnY3ViZScsIHRoaXMuY3ViZSwgJ2V4cGxvcmUnXSwge1xyXG4gICAgICBxdWVyeVBhcmFtc1xyXG4gICAgfSk7XHJcblxyXG4gIH1cclxufVxyXG4iLCI8bWF0LXRvb2xiYXIgY2xhc3M9XCJuYXYtdG9vbGJhclwiPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJ0YWJsZS5yZWZyZXNoKClcIiBbbWF0VG9vbHRpcF09XCInUmVmcmVzaCcgfCB0cmFuc2xhdGVcIj48bWF0LWljb24gbWF0QW5pbWF0ZT1cInJvdGF0ZVwiPmF1dG9yZW5ldzwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJvcHRpb25zXCIgKm5nSWY9XCJwYXR0ZXJucyAmJiBwYXR0ZXJucy5sZW5ndGhcIj48bWF0LWljb24gW2NsYXNzLmZpbGxlZF09XCJwYXR0ZXJuXCI+ZmlsdGVyX2FsdDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgPG1hdC1tZW51ICNvcHRpb25zIHhQb3NpdGlvbj1cImJlZm9yZVwiPlxyXG4gICAgPCEtLSBwYXR0ZXJucyAtLT5cclxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAqbmdGb3I9XCJsZXQgcCBvZiBwYXR0ZXJuc1wiIChjbGljayk9XCJhZ2dyZWdhdGUocClcIj57e3AudGl0bGV9fTwvYnV0dG9uPlxyXG4gIDwvbWF0LW1lbnU+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInJlc2V0KClcIiBbZGlzYWJsZWRdPVwiIXBhdHRlcm5cIiBbbWF0VG9vbHRpcF09XCInQ2xlYXInIHwgdHJhbnNsYXRlXCI+XHJcbiAgICA8bWF0LWljb24+Y2xlYXJfYWxsPC9tYXQtaWNvbj5cclxuICA8L2J1dHRvbj5cclxuICA8IS0tIGZpbHRlcnMgLS0+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZiBvZiBmaWx0ZXJzXCI+XHJcbiAgICA8YnV0dG9uIG1hdC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cImZtZW51XCI+e3t2YWx1ZXNbZi5uYW1lXX19IDxtYXQtaWNvbj5hcnJvd19kcm9wX2Rvd248L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgPG1hdC1tZW51ICNmbWVudSB4UG9zaXRpb249XCJiZWZvcmVcIj5cclxuICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICpuZ0Zvcj1cImxldCBrdiBvZiBzb3VyY2VzW2YubmFtZV0gfCBhc3luY1wiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImZpbHRlcihmLm5hbWUsIGt2LmtleSwga3YudmFsdWUpXCI+XHJcbiAgICAgICAge3trdi52YWx1ZX19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9tYXQtbWVudT5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9tYXQtdG9vbGJhcj5cclxuPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiBbc3R5bGUudmlzaWJpbGl0eV09XCJsb2FkaW5nID8gJ3Zpc2libGUnOidoaWRkZW4nXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxyXG48Yml6ZG9jLWN1YmUtaW5mby10YWJsZSBbY3ViZV09XCJjdWJlXCIgW3hBeGlzXT1cInhBeGlzXCIgW3NlcmllXT1cInNlcmllXCIgW2luZGljZXNdPVwiaW5kaWNlc1wiIFtzdW1dPXN1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYmFzZV09XCJvcmlnaW5hbEF4ZXNcIiBbYXhlc109XCJheGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgWyhsb2FkaW5nKV09XCJsb2FkaW5nXCIgKGV4cGxvcmUpPSdleHBsb3JlKCRldmVudCknPjwvYml6ZG9jLWN1YmUtaW5mby10YWJsZT5cclxuIl19
|
@@ -1,100 +0,0 @@
|
|
1
|
-
import { Injectable } from "@angular/core";
|
2
|
-
import { isArray } from "../../core/functions";
|
3
|
-
import { CubeInfoComponent } from "./cube-info.component";
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
import * as i1 from "../../core/session.service";
|
6
|
-
import * as i2 from "../cube.service";
|
7
|
-
import * as i3 from "../../core/router";
|
8
|
-
import * as i4 from "../../core/popup/popup.service";
|
9
|
-
import * as i5 from "../../core/component-factory-resolver";
|
10
|
-
/** opens cube preview and explore */
|
11
|
-
export class CubeInfo {
|
12
|
-
constructor(_session, _service, _router, _popup, _cf) {
|
13
|
-
this._session = _session;
|
14
|
-
this._service = _service;
|
15
|
-
this._router = _router;
|
16
|
-
this._popup = _popup;
|
17
|
-
this._cf = _cf;
|
18
|
-
}
|
19
|
-
navigate(axes, options) {
|
20
|
-
const { cube, view, serie, xAxis, filters, aggregate, indices, sum } = options || {};
|
21
|
-
const ccube = cube ? this._session.profile.cubes.find(c => c.name === cube) : this._session.profile.cubes[0];
|
22
|
-
if (isArray(axes))
|
23
|
-
axes = this._mapAxes(ccube, axes);
|
24
|
-
if (view)
|
25
|
-
this._router.navigate(['cube', ccube.name, 'v', view], {
|
26
|
-
queryParams: axes
|
27
|
-
});
|
28
|
-
else {
|
29
|
-
this._router.navigate(['cube', ccube.name, 'i', xAxis, serie], {
|
30
|
-
queryParams: axes,
|
31
|
-
state: { indices, aggregate, filters, sum }
|
32
|
-
});
|
33
|
-
}
|
34
|
-
}
|
35
|
-
/**
|
36
|
-
*
|
37
|
-
* @param axes
|
38
|
-
* @param options
|
39
|
-
*/
|
40
|
-
popup(axes, element, options) {
|
41
|
-
const cube = options && options.cube ? this._session.profile.cubes.find(c => c.name === options.cube) : this._session.profile.cubes[0];
|
42
|
-
const { template } = cube;
|
43
|
-
if (isArray(axes))
|
44
|
-
axes = this._mapAxes(cube, axes);
|
45
|
-
if (template) {
|
46
|
-
const comp = this._cf.component(template);
|
47
|
-
this._open(comp, element, {
|
48
|
-
axes,
|
49
|
-
options
|
50
|
-
});
|
51
|
-
}
|
52
|
-
else {
|
53
|
-
if (!options)
|
54
|
-
throw 'no options';
|
55
|
-
this._open(CubeInfoComponent, element, {
|
56
|
-
axes,
|
57
|
-
options
|
58
|
-
});
|
59
|
-
}
|
60
|
-
}
|
61
|
-
/**
|
62
|
-
*
|
63
|
-
* @param axes
|
64
|
-
* @param options
|
65
|
-
*/
|
66
|
-
explore(axes, options) {
|
67
|
-
const { index, base, cube: name, scope } = options || {};
|
68
|
-
const cube = name ? this._session.profile.cubes.find(c => c.name === name) : this._session.profile.cubes[0];
|
69
|
-
if (isArray(axes))
|
70
|
-
axes = this._mapAxes(cube, axes);
|
71
|
-
base && this._service.base(cube.name, axes, base);
|
72
|
-
this._router.navigate(['cube', cube.name, 'explore'], {
|
73
|
-
queryParams: axes,
|
74
|
-
state: {
|
75
|
-
index, scope
|
76
|
-
}
|
77
|
-
});
|
78
|
-
}
|
79
|
-
/**
|
80
|
-
* axes as map
|
81
|
-
* @param cube
|
82
|
-
* @param axes
|
83
|
-
*/
|
84
|
-
_mapAxes(cube, axes) {
|
85
|
-
const filters = {};
|
86
|
-
axes.forEach((a, i) => a && (filters[cube.axes[i].name] = a));
|
87
|
-
return filters;
|
88
|
-
}
|
89
|
-
_open(comp, element, data) {
|
90
|
-
this._popup.open(comp, element, {
|
91
|
-
data
|
92
|
-
});
|
93
|
-
}
|
94
|
-
}
|
95
|
-
CubeInfo.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: CubeInfo, deps: [{ token: i1.SessionService }, { token: i2.CubeService }, { token: i3.RouterImpl }, { token: i4.Popup }, { token: i5.BizDocComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Injectable });
|
96
|
-
CubeInfo.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: CubeInfo });
|
97
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: CubeInfo, decorators: [{
|
98
|
-
type: Injectable
|
99
|
-
}], ctorParameters: function () { return [{ type: i1.SessionService }, { type: i2.CubeService }, { type: i3.RouterImpl }, { type: i4.Popup }, { type: i5.BizDocComponentFactoryResolver }]; } });
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ViZS1pbmZvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2N1YmUvaW5mby9jdWJlLWluZm8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBRXZELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUcvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7OztBQW9DMUQscUNBQXFDO0FBRXJDLE1BQU0sT0FBTyxRQUFRO0lBQ25CLFlBQW9CLFFBQXdCLEVBQ2xDLFFBQXFCLEVBQ3JCLE9BQW1CLEVBQ25CLE1BQWEsRUFDYixHQUFtQztRQUp6QixhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUNsQyxhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsV0FBTSxHQUFOLE1BQU0sQ0FBTztRQUNiLFFBQUcsR0FBSCxHQUFHLENBQWdDO0lBQUksQ0FBQztJQUNsRCxRQUFRLENBQUMsSUFBb0UsRUFBRSxPQUF5QjtRQUN0RyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDckYsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FB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TSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLEVBQUU7WUFDcEQsV0FBVyxFQUFFLElBQUk7WUFDakIsS0FBSyxFQUFFO2dCQUNMLEtBQUssRUFBRSxLQUFLO2FBQ2I7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNLLFFBQVEsQ0FBQyxJQUFVLEVBQUUsSUFBeUI7UUFDcEQsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFTyxLQUFLLENBQUMsSUFBd0IsRUFBRSxPQUFpQyxFQUFFLElBQWM7UUFDdkYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRTtZQUM5QixJQUFJO1NBQ0wsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs7cUdBcEZVLFFBQVE7eUdBQVIsUUFBUTsyRkFBUixRQUFRO2tCQURwQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgRWxlbWVudFJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xyXG5pbXBvcnQgeyBpc0FycmF5IH0gZnJvbSBcIi4uLy4uL2NvcmUvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCB7IEN1YmUsIEF4ZXNNYXAsIEF4aXNUeXBlIH0gZnJvbSBcIi4uLy4uL2NvcmUvbW9kZWxzXCI7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEN1YmVJbmZvQ29tcG9uZW50IH0gZnJvbSBcIi4vY3ViZS1pbmZvLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBCaXpEb2NDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgfSBmcm9tIFwiLi4vLi4vY29yZS9jb21wb25lbnQtZmFjdG9yeS1yZXNvbHZlclwiO1xyXG5pbXBvcnQgeyBDdWJlU2VydmljZSwgU2NvcGVUeXBlIH0gZnJvbSBcIi4uL2N1YmUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBQb3B1cCB9IGZyb20gXCIuLi8uLi9jb3JlL3BvcHVwL3BvcHVwLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUm91dGVySW1wbCB9IGZyb20gXCIuLi8uLi9jb3JlL3JvdXRlclwiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDdWJlRGF0YSB7XHJcbiAgYXhlczogQXhlc01hcDtcclxuICBvcHRpb25zPzogQ3ViZURhdGFPcHRpb25zO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEN1YmVEYXRhT3B0aW9ucyB7XHJcbiAgY3ViZT86IHN0cmluZztcclxuICB4QXhpczogc3RyaW5nO1xyXG4gIHNlcmllOiBzdHJpbmc7XHJcbiAgaW5kaWNlcz86IHN0cmluZ1tdIHwgc3RyaW5nO1xyXG4gIHZpZXc/OiBzdHJpbmc7XHJcbiAgLyoqIG9uZSBvciBtb3JlIGF4aXMgKi9cclxuICBmaWx0ZXJzPzogc3RyaW5nW10gfCBzdHJpbmc7XHJcbiAgLyoqICovXHJcbiAgYWdncmVnYXRlPzogc3RyaW5nW10gfCBzdHJpbmc7XHJcbiAgc3VtPzoge1xyXG4gICAgeEF4aXM/OiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgICBzZXJpZT86IHN0cmluZyB8IG51bWJlcjtcclxuICAgIHRpdGxlOiBzdHJpbmc7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRXhwbG9yZU9wdGlvbnMge1xyXG4gIGN1YmU/OiBzdHJpbmc7XHJcbiAgaW5kZXg/OiBzdHJpbmc7XHJcbiAgc2NvcGU/OiBTY29wZVR5cGU7XHJcbiAgYmFzZT86IHtcclxuICAgIFtheGlzOiBzdHJpbmddOiAoc3RyaW5nIHwgbnVtYmVyKTtcclxuICB9IHwgQXJyYXk8c3RyaW5nIHwgbnVtYmVyPjtcclxufVxyXG5cclxuLyoqIG9wZW5zIGN1YmUgcHJldmlldyBhbmQgZXhwbG9yZSAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDdWJlSW5mbyB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXJ2aWNlOiBDdWJlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVySW1wbCxcclxuICAgIHByaXZhdGUgX3BvcHVwOiBQb3B1cCxcclxuICAgIHByaXZhdGUgX2NmOiBCaXpEb2NDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpIHsgfVxyXG4gIG5hdmlnYXRlKGF4ZXM6IEFycmF5PHN0cmluZyB8IG51bWJlcj4gfCB7IFtheGlzOiBzdHJpbmddOiAoc3RyaW5nIHwgbnVtYmVyKSB9LCBvcHRpb25zPzogQ3ViZURhdGFPcHRpb25zKSB7XHJcbiAgICBjb25zdCB7IGN1YmUsIHZpZXcsIHNlcmllLCB4QXhpcywgZmlsdGVycywgYWdncmVnYXRlLCBpbmRpY2VzLCBzdW0gfSA9IG9wdGlvbnMgfHwge307XHJcbiAgICBjb25zdCBjY3ViZSA9IGN1YmUgPyB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuY3ViZXMuZmluZChjID0+IGMubmFtZSA9PT0gY3ViZSkgOiB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuY3ViZXNbMF07XHJcbiAgICBpZiAoaXNBcnJheShheGVzKSkgYXhlcyA9IHRoaXMuX21hcEF4ZXMoY2N1YmUsIGF4ZXMpO1xyXG4gICAgaWYgKHZpZXcpXHJcbiAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ2N1YmUnLCBjY3ViZS5uYW1lLCAndicsIHZpZXddLCB7XHJcbiAgICAgICAgcXVlcnlQYXJhbXM6IGF4ZXNcclxuICAgICAgfSk7XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFsnY3ViZScsIGNjdWJlLm5hbWUsICdpJywgeEF4aXMsIHNlcmllXSwge1xyXG4gICAgICAgIHF1ZXJ5UGFyYW1zOiBheGVzLFxyXG4gICAgICAgIHN0YXRlOiB7IGluZGljZXMsIGFnZ3JlZ2F0ZSwgZmlsdGVycywgc3VtIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBheGVzXHJcbiAgICogQHBhcmFtIG9wdGlvbnNcclxuICAgKi9cclxuICBwb3B1cChheGVzOiBBcnJheTxzdHJpbmcgfCBudW1iZXI+IHwgeyBbYXhpczogc3RyaW5nXTogKHN0cmluZyB8IG51bWJlcikgfSxcclxuICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgRWxlbWVudFJlZixcclxuICAgIG9wdGlvbnM/OiBDdWJlRGF0YU9wdGlvbnMpIHtcclxuICAgIGNvbnN0IGN1YmUgPSBvcHRpb25zICYmIG9wdGlvbnMuY3ViZSA/IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSBvcHRpb25zLmN1YmUpIDogdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzWzBdO1xyXG4gICAgY29uc3QgeyB0ZW1wbGF0ZSB9ID0gY3ViZTtcclxuICAgIGlmIChpc0FycmF5KGF4ZXMpKSBheGVzID0gdGhpcy5fbWFwQXhlcyhjdWJlLCBheGVzKTtcclxuICAgIGlmICh0ZW1wbGF0ZSkge1xyXG4gICAgICBjb25zdCBjb21wID0gdGhpcy5fY2YuY29tcG9uZW50KHRlbXBsYXRlKTtcclxuICAgICAgdGhpcy5fb3Blbihjb21wLCBlbGVtZW50LCB7XHJcbiAgICAgICAgYXhlcyxcclxuICAgICAgICBvcHRpb25zXHJcbiAgICAgIH0gYXMgYW55KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBpZiAoIW9wdGlvbnMpXHJcbiAgICAgICAgdGhyb3cgJ25vIG9wdGlvbnMnO1xyXG4gICAgICB0aGlzLl9vcGVuKEN1YmVJbmZvQ29tcG9uZW50LCBlbGVtZW50LCB7XHJcbiAgICAgICAgYXhlcyxcclxuICAgICAgICBvcHRpb25zXHJcbiAgICAgIH0gYXMgYW55KTtcclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGF4ZXNcclxuICAgKiBAcGFyYW0gb3B0aW9uc1xyXG4gICAqL1xyXG4gIGV4cGxvcmUoYXhlczogQXhlc01hcCB8IEFycmF5PHN0cmluZyB8IG51bWJlcj4sXHJcbiAgICBvcHRpb25zPzogRXhwbG9yZU9wdGlvbnMpIHtcclxuICAgIGNvbnN0IHsgaW5kZXgsIGJhc2UsIGN1YmU6IG5hbWUsIHNjb3BlIH0gPSBvcHRpb25zIHx8IHt9O1xyXG4gICAgY29uc3QgY3ViZSA9IG5hbWUgPyB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuY3ViZXMuZmluZChjID0+IGMubmFtZSA9PT0gbmFtZSkgOiB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuY3ViZXNbMF07XHJcblxyXG4gICAgaWYgKGlzQXJyYXkoYXhlcykpIGF4ZXMgPSB0aGlzLl9tYXBBeGVzKGN1YmUsIGF4ZXMgYXMgQXJyYXk8c3RyaW5nIHwgbnVtYmVyPik7XHJcblxyXG4gICAgYmFzZSAmJiB0aGlzLl9zZXJ2aWNlLmJhc2UoY3ViZS5uYW1lLCBheGVzLCBiYXNlKTtcclxuXHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWydjdWJlJywgY3ViZS5uYW1lLCAnZXhwbG9yZSddLCB7XHJcbiAgICAgIHF1ZXJ5UGFyYW1zOiBheGVzLFxyXG4gICAgICBzdGF0ZToge1xyXG4gICAgICAgIGluZGV4LCBzY29wZVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICAvKipcclxuICAgKiBheGVzIGFzIG1hcFxyXG4gICAqIEBwYXJhbSBjdWJlXHJcbiAgICogQHBhcmFtIGF4ZXNcclxuICAgKi9cclxuICBwcml2YXRlIF9tYXBBeGVzKGN1YmU6IEN1YmUsIGF4ZXM6IChzdHJpbmcgfCBudW1iZXIpW10pOiB7IFtheGlzOiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfSB7XHJcbiAgICBjb25zdCBmaWx0ZXJzID0ge307XHJcbiAgICBheGVzLmZvckVhY2goKGEsIGkpID0+IGEgJiYgKGZpbHRlcnNbY3ViZS5heGVzW2ldLm5hbWVdID0gYSkpO1xyXG4gICAgcmV0dXJuIGZpbHRlcnM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9vcGVuKGNvbXA6IENvbXBvbmVudFR5cGU8YW55PiwgZWxlbWVudDogSFRNTEVsZW1lbnQgfCBFbGVtZW50UmVmLCBkYXRhOiBDdWJlRGF0YSkge1xyXG4gICAgdGhpcy5fcG9wdXAub3Blbihjb21wLCBlbGVtZW50LCB7XHJcbiAgICAgIGRhdGFcclxuICAgIH0pXHJcbiAgfVxyXG59XHJcbiJdfQ==
|
@@ -1,258 +0,0 @@
|
|
1
|
-
import { forkJoin, first } from 'rxjs';
|
2
|
-
import { tap } from 'rxjs/operators';
|
3
|
-
import { isArray, isString } from '../../core/functions';
|
4
|
-
import { modelize } from '../cube.service';
|
5
|
-
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
6
|
-
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
7
|
-
import * as i0 from "@angular/core";
|
8
|
-
import * as i1 from "../../core/prompt.service";
|
9
|
-
import * as i2 from "../cube.service";
|
10
|
-
import * as i3 from "../../core/session.service";
|
11
|
-
import * as i4 from "../../core/datasource.service";
|
12
|
-
import * as i5 from "@angular/common";
|
13
|
-
const LOADING_DELAY = 200;
|
14
|
-
/** cube-info component*/
|
15
|
-
export class CubeInfoTableComponent {
|
16
|
-
constructor(_sb, _service, _session, _ds) {
|
17
|
-
this._sb = _sb;
|
18
|
-
this._service = _service;
|
19
|
-
this._session = _session;
|
20
|
-
this._ds = _ds;
|
21
|
-
this.PRECISION = this._service.digitsInfo;
|
22
|
-
this.onExplore = new EventEmitter();
|
23
|
-
this._interactive = true;
|
24
|
-
this.loadingChange = new EventEmitter();
|
25
|
-
}
|
26
|
-
get interactive() {
|
27
|
-
return this._interactive;
|
28
|
-
}
|
29
|
-
set interactive(value) {
|
30
|
-
this._interactive = coerceBooleanProperty(value);
|
31
|
-
}
|
32
|
-
ngOnChanges(changes) {
|
33
|
-
if (changes['_cube']) {
|
34
|
-
this.cube = this.cube ? this._session.profile.cubes.find(c => c.name === this._cube) :
|
35
|
-
this._session.profile.cubes[0];
|
36
|
-
this.CURRENCY = this.cube.currencyCode || this._service.currencyCode;
|
37
|
-
}
|
38
|
-
this.indices = this._indices ? this.cube.indices.filter(i => (isString(this._indices) && this._indices === i.name) ||
|
39
|
-
(isArray(this._indices) && this._indices.indexOf(i.name) > -1)) : this.cube.indices;
|
40
|
-
if (changes['_xAxia'] || changes['_serie']) {
|
41
|
-
this.xAxis = this.cube.axes.find(a => a.name === this._xAxis) || this.cube.axes[0];
|
42
|
-
this.series = this.cube.axes.find(a => a.name === this._serie) || this.cube.axes[1];
|
43
|
-
this._prepare = forkJoin(this._ds.all(this.series.dataType).pipe(tap(r => this.rows = r)), this._ds.all(this.xAxis.dataType).pipe(tap(c => this.columns = c))).toPromise().then(() => this._sum &&
|
44
|
-
this._addsum());
|
45
|
-
}
|
46
|
-
if (changes['axes'])
|
47
|
-
this.refresh();
|
48
|
-
}
|
49
|
-
_addsum() {
|
50
|
-
if (this._sum.xAxis) {
|
51
|
-
const columns = [];
|
52
|
-
this.columns.forEach(c => {
|
53
|
-
columns.push(c);
|
54
|
-
if (this._sum.xAxis.toString() === c.key)
|
55
|
-
columns.push({
|
56
|
-
key: '_sum',
|
57
|
-
value: this._sum.title
|
58
|
-
});
|
59
|
-
});
|
60
|
-
this.columns = columns;
|
61
|
-
}
|
62
|
-
if (this._sum.serie) {
|
63
|
-
const rows = [];
|
64
|
-
this.rows.forEach(r => {
|
65
|
-
rows.push(r);
|
66
|
-
if (this._sum.serie.toString() === r.key)
|
67
|
-
rows.push({
|
68
|
-
key: '_sum',
|
69
|
-
value: this._sum.title
|
70
|
-
});
|
71
|
-
});
|
72
|
-
this.rows = rows;
|
73
|
-
}
|
74
|
-
}
|
75
|
-
refresh() {
|
76
|
-
const progressTask = setTimeout(() => this.loadingChange.next(this.loading = true), LOADING_DELAY);
|
77
|
-
this._prepare.then(() => this._service.series(this.cube.name, this.xAxis.name, {
|
78
|
-
series: this.series.name,
|
79
|
-
indices: this.indices.map(i => i.name),
|
80
|
-
filters: this.axes,
|
81
|
-
base: this.base
|
82
|
-
}).pipe(modelize(), first(), tap(d => {
|
83
|
-
this._sum &&
|
84
|
-
this._calculatesum(d);
|
85
|
-
})).subscribe(d => this.data = d, (e) => {
|
86
|
-
this._sb.error(e.status === 401 ? 'Unauthorized' : null);
|
87
|
-
}, () => {
|
88
|
-
clearTimeout(progressTask);
|
89
|
-
this.loadingChange.next(this.loading = false);
|
90
|
-
}));
|
91
|
-
}
|
92
|
-
_calculatesum(data) {
|
93
|
-
if (this._sum.xAxis)
|
94
|
-
this.rows.forEach(r => {
|
95
|
-
const row = data[r.key];
|
96
|
-
if (!row)
|
97
|
-
return;
|
98
|
-
let sum = 0, i = 0;
|
99
|
-
while (i < this.columns.length) {
|
100
|
-
let key = this.columns[i].key, val = row[key];
|
101
|
-
if (val !== undefined)
|
102
|
-
sum += val;
|
103
|
-
if (key === this._sum.xAxis.toString())
|
104
|
-
break;
|
105
|
-
i++;
|
106
|
-
}
|
107
|
-
data[r.key]['_sum'] = sum;
|
108
|
-
});
|
109
|
-
if (this._sum.serie) {
|
110
|
-
this.columns.forEach(c => {
|
111
|
-
let sum = 0, i = 0;
|
112
|
-
while (i < this.rows.length) {
|
113
|
-
let key = this.rows[i].key, row = data[key];
|
114
|
-
if (row) {
|
115
|
-
let val = row[c.key];
|
116
|
-
if (val !== undefined)
|
117
|
-
sum += val;
|
118
|
-
if (key === this._sum.serie.toString())
|
119
|
-
break;
|
120
|
-
}
|
121
|
-
i++;
|
122
|
-
}
|
123
|
-
data['_sum'][c.key] = sum;
|
124
|
-
});
|
125
|
-
}
|
126
|
-
}
|
127
|
-
explore(x, serie) {
|
128
|
-
if (this._sum) {
|
129
|
-
if (x === '_sum') {
|
130
|
-
x = [];
|
131
|
-
for (let i = 0; i < this.columns.length; i++) {
|
132
|
-
let key = this.columns[i].key;
|
133
|
-
x.push(key);
|
134
|
-
if (key === this._sum.xAxis.toString())
|
135
|
-
break;
|
136
|
-
}
|
137
|
-
}
|
138
|
-
if (serie === '_sum') {
|
139
|
-
serie = [];
|
140
|
-
for (let i = 0; i < this.rows.length; i++) {
|
141
|
-
let key = this.rows[i].key;
|
142
|
-
serie.push(key);
|
143
|
-
if (key === this._sum.serie.toString())
|
144
|
-
break;
|
145
|
-
}
|
146
|
-
}
|
147
|
-
}
|
148
|
-
const axes = {};
|
149
|
-
axes[this.xAxis.name] = x;
|
150
|
-
axes[this.series.name] = serie;
|
151
|
-
Object.assign(axes, this._service.base(this.cube.name, this.axes, this.base));
|
152
|
-
this.onExplore.emit(axes);
|
153
|
-
}
|
154
|
-
move(x, y) {
|
155
|
-
let rowIndex = 0;
|
156
|
-
for (let b = 0; b < this.tableElement.nativeElement.tBodies.length; b++) {
|
157
|
-
let tBody = this.tableElement.nativeElement.tBodies.item(b);
|
158
|
-
for (let r = 0; r < tBody.rows.length; r++) {
|
159
|
-
let row = tBody.rows.item(r);
|
160
|
-
for (let c = 0; c < row.cells.length; c++) {
|
161
|
-
let cell = row.cells.item(c);
|
162
|
-
if (c === x)
|
163
|
-
cell.classList.add('cell-x');
|
164
|
-
else
|
165
|
-
cell.classList.remove('cell-x');
|
166
|
-
if (rowIndex === y)
|
167
|
-
cell.classList.add('cell-y');
|
168
|
-
else
|
169
|
-
cell.classList.remove('cell-y');
|
170
|
-
}
|
171
|
-
rowIndex++;
|
172
|
-
}
|
173
|
-
let tFoot = this.tableElement.nativeElement.tFoot, row = tFoot.rows[0];
|
174
|
-
for (let c = 0; c < row.cells.length; c++) {
|
175
|
-
let cell = row.cells.item(c);
|
176
|
-
if (c === x)
|
177
|
-
cell.classList.add('cell-x');
|
178
|
-
else
|
179
|
-
cell.classList.remove('cell-x');
|
180
|
-
}
|
181
|
-
}
|
182
|
-
}
|
183
|
-
sumrow(serie) {
|
184
|
-
const line = this.data[serie];
|
185
|
-
let sum = 0, x;
|
186
|
-
if (line)
|
187
|
-
for (x in line)
|
188
|
-
sum += line[x];
|
189
|
-
return sum;
|
190
|
-
}
|
191
|
-
sumcolumn(x) {
|
192
|
-
let sum = 0, key;
|
193
|
-
for (key in this.data) {
|
194
|
-
const val = this.data[key][x];
|
195
|
-
if (val !== undefined)
|
196
|
-
sum +=
|
197
|
-
this.indices.findIndex(i => i.name === key) > -1 ? val :
|
198
|
-
-val;
|
199
|
-
}
|
200
|
-
return sum;
|
201
|
-
}
|
202
|
-
indextotal(name) {
|
203
|
-
let sum = 0, x;
|
204
|
-
const index = this.data[name];
|
205
|
-
for (x in index)
|
206
|
-
sum += index[x];
|
207
|
-
return sum;
|
208
|
-
}
|
209
|
-
get grandtotal() {
|
210
|
-
return this.indices.sum(i => this.indextotal(i.name)) - this.rows.sum(r => this.sumrow(r.key));
|
211
|
-
}
|
212
|
-
}
|
213
|
-
CubeInfoTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: CubeInfoTableComponent, deps: [{ token: i1.PromptService }, { token: i2.CubeService }, { token: i3.SessionService }, { token: i4.DatasourceService }], target: i0.ɵɵFactoryTarget.Component });
|
214
|
-
CubeInfoTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.7", type: CubeInfoTableComponent, selector: "bizdoc-cube-info-table", inputs: { _cube: ["cube", "_cube"], _xAxis: ["xAxis", "_xAxis"], _serie: ["serie", "_serie"], _indices: ["indices", "_indices"], _sum: ["sum", "_sum"], base: "base", axes: "axes", loading: "loading", interactive: "interactive" }, outputs: { onExplore: "explore", loadingChange: "loadingChange" }, viewQueries: [{ propertyName: "tableElement", first: true, predicate: ["table"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<table #table class=\"cube-table\" (mouseleave)=\"move(-1, -1)\" *ngIf=\"data\">\r\n <thead>\r\n <!-- headers -->\r\n <tr class=\"mat-body-2\">\r\n <th></th>\r\n <th *ngFor=\"let column of columns; let x = index\" (mouseenter)=\"move(x + 1, -2)\">\r\n {{ column.value }}\r\n </th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <!-- indices -->\r\n <tr class=\"mat-row cube-index\" *ngFor=\"let index of indices; let y = index\">\r\n <th class=\"mat-body-2\" (mouseenter)=\"move(0, y)\">{{index.title}}</th>\r\n <td *ngFor=\"let column of columns; let x = index\" class=\"figure\" (mouseenter)=\"move(x + 1, y)\">\r\n <span *ngIf=\"data[index.name] && data[index.name][column.key]; else zero\">{{ data[index.name][column.key] | number : PRECISION }}</span>\r\n </td>\r\n <th class=\"mat-body-2 figure\" (mouseenter)=\"move(0, y)\">{{ indextotal(index.name) | currency : CURRENCY: 'symbol' : PRECISION }}</th>\r\n </tr>\r\n </tbody>\r\n <tbody>\r\n <!-- rows -->\r\n <tr *ngFor=\"let row of rows; let y = index\" class=\"mat-row\">\r\n <th class=\"mat-body-2\" (mouseenter)=\"move(-2, y + indices.length)\">{{ row.value }}</th>\r\n <td *ngFor=\"let column of columns; let x = index\" class=\"figure\" (mouseenter)=\"move(x + 1, y + indices.length)\">\r\n <ng-container *ngIf=\"data[row.key] && data[row.key][column.key] !== undefined; else zero\">\r\n <ng-container [ngSwitch]=\"interactive\">\r\n <span class=\"clickable\" (click)=\"explore(column.key, row.key)\" *ngSwitchCase=\"true\">\r\n {{data[row.key][column.key] | number : PRECISION }}\r\n </span>\r\n <span *ngSwitchDefault>\r\n {{data[row.key][column.key] | number : PRECISION }}\r\n </span>\r\n </ng-container>\r\n </ng-container>\r\n </td>\r\n <th class=\"mat-body-2 figure\" (mouseenter)=\"move(-1, y + indices.length)\">\r\n {{ sumrow(row.key) | currency : CURRENCY: 'symbol' : PRECISION }}\r\n </th>\r\n </tr>\r\n </tbody>\r\n <tfoot>\r\n <!-- available -->\r\n <tr>\r\n <th></th>\r\n <td *ngFor=\"let column of columns; let x = index\" class=\"figure\" (mouseenter)=\"move(x + 1, -2)\"\r\n [class.negative-figure]=\"sumcolumn(column.key) < 0\">\r\n {{sumcolumn(column.key) | currency : CURRENCY: 'symbol' : PRECISION }}\r\n </td>\r\n <th class=\"figure\">{{grandtotal | currency : CURRENCY: 'symbol' : PRECISION }}</th>\r\n </tr>\r\n </tfoot>\r\n</table>\r\n<ng-template #zero>\r\n 0\r\n</ng-template>\r\n", styles: [".clickable{cursor:pointer}\n"], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i5.NgSwitchDefault, selector: "[ngSwitchDefault]" }], pipes: { "number": i5.DecimalPipe, "currency": i5.CurrencyPipe } });
|
215
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: CubeInfoTableComponent, decorators: [{
|
216
|
-
type: Component,
|
217
|
-
args: [{
|
218
|
-
selector: 'bizdoc-cube-info-table',
|
219
|
-
templateUrl: './table.component.html',
|
220
|
-
styleUrls: ['./table.component.scss']
|
221
|
-
}]
|
222
|
-
}], ctorParameters: function () { return [{ type: i1.PromptService }, { type: i2.CubeService }, { type: i3.SessionService }, { type: i4.DatasourceService }]; }, propDecorators: { tableElement: [{
|
223
|
-
type: ViewChild,
|
224
|
-
args: ['table']
|
225
|
-
}], _cube: [{
|
226
|
-
type: Input,
|
227
|
-
args: ['cube']
|
228
|
-
}], _xAxis: [{
|
229
|
-
type: Input,
|
230
|
-
args: ['xAxis']
|
231
|
-
}], _serie: [{
|
232
|
-
type: Input,
|
233
|
-
args: ['serie']
|
234
|
-
}], _indices: [{
|
235
|
-
type: Input,
|
236
|
-
args: ['indices']
|
237
|
-
}], _sum: [{
|
238
|
-
type: Input,
|
239
|
-
args: ['sum']
|
240
|
-
}], base: [{
|
241
|
-
type: Input
|
242
|
-
}], axes: [{
|
243
|
-
type: Input
|
244
|
-
}], onExplore: [{
|
245
|
-
type: Output,
|
246
|
-
args: ['explore']
|
247
|
-
}], loading: [{
|
248
|
-
type: Input
|
249
|
-
}], loadingChange: [{
|
250
|
-
type: Output
|
251
|
-
}], interactive: [{
|
252
|
-
type: Input
|
253
|
-
}] } });
|
254
|
-
export class CubeInfoCellArgs {
|
255
|
-
get value() { return this._value; }
|
256
|
-
get summary() { return this._summary; }
|
257
|
-
}
|
258
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL2luZm8vdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL2luZm8vdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBWSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFlLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSXhELE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4SCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7OztBQUU5RCxNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUM7QUFFMUIseUJBQXlCO0FBTXpCLE1BQU0sT0FBTyxzQkFBc0I7SUE4QmpDLFlBQ1UsR0FBa0IsRUFDbEIsUUFBcUIsRUFDckIsUUFBd0IsRUFDeEIsR0FBc0I7UUFIdEIsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUNsQixhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBakN2QixjQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7UUFVbEIsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDNUQsaUJBQVksR0FBWSxJQUFJLENBQUM7UUFF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Q0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBRTNDLElBQUksT0FBTyxLQUFjLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7Q0FNakQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgZm9ya0pvaW4sIGZpbmFsaXplLCBmaXJzdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGlzQXJyYXksIGlzU3RyaW5nIH0gZnJvbSAnLi4vLi4vY29yZS9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBDdWJlU2VydmljZSwgbW9kZWxpemUgfSBmcm9tICcuLi9jdWJlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YXNvdXJjZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2RhdGFzb3VyY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3Byb21wdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEF4ZXNNYXAsIEN1YmUsIEN1YmVBeGlzLCBDdWJlSW5kZXggfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XHJcblxyXG5jb25zdCBMT0FESU5HX0RFTEFZID0gMjAwO1xyXG5cclxuLyoqIGN1YmUtaW5mbyBjb21wb25lbnQqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1jdWJlLWluZm8tdGFibGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3ViZUluZm9UYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgcmVhZG9ubHkgUFJFQ0lTSU9OID0gdGhpcy5fc2VydmljZS5kaWdpdHNJbmZvO1xyXG4gIENVUlJFTkNZOiBzdHJpbmc7XHJcbiAgQFZpZXdDaGlsZCgndGFibGUnKSB0YWJsZUVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTFRhYmxlRWxlbWVudD47XHJcbiAgQElucHV0KCdjdWJlJykgX2N1YmU/OiBzdHJpbmc7XHJcbiAgQElucHV0KCd4QXhpcycpIF94QXhpcyE6IHN0cmluZztcclxuICBASW5wdXQoJ3NlcmllJykgX3NlcmllITogc3RyaW5nO1xyXG4gIEBJbnB1dCgnaW5kaWNlcycpIF9pbmRpY2VzPzogc3RyaW5nW10gfCBzdHJpbmc7XHJcbiAgQElucHV0KCdzdW0nKSBfc3VtOiBTdW1PcHRpb25zO1xyXG4gIEBJbnB1dCgpIGJhc2U/OiBBeGVzTWFwO1xyXG4gIEBJbnB1dCgpIGF4ZXM6IEF4ZXNNYXA7XHJcbiAgQE91dHB1dCgnZXhwbG9yZScpIHJlYWRvbmx5IG9uRXhwbG9yZSA9IG5ldyBFdmVudEVtaXR0ZXI8QXhlc01hcD4oKTtcclxuICBwcml2YXRlIF9pbnRlcmFjdGl2ZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbjtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgbG9hZGluZ0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIgPGJvb2xlYW4+KCk7XHJcbiAgcHVibGljIGdldCBpbnRlcmFjdGl2ZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9pbnRlcmFjdGl2ZTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGludGVyYWN0aXZlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9pbnRlcmFjdGl2ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgfVxyXG4gIHJvd3M6IEtleVZhbHVlW107XHJcbiAgY29sdW1uczogS2V5VmFsdWVbXTtcclxuICBpbmRpY2VzOiBDdWJlSW5kZXhbXTtcclxuICBkYXRhOiB7IFtyb3c6IHN0cmluZ106IHsgW2NvbHVtbjogc3RyaW5nXTogbnVtYmVyOyB9OyB9O1xyXG4gIGN1YmU6IEN1YmU7XHJcbiAgeEF4aXM6IEN1YmVBeGlzO1xyXG4gIHNlcmllczogQ3ViZUF4aXM7XHJcbiAgcHJpdmF0ZSBfcHJlcGFyZTogUHJvbWlzZTxhbnk+O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfc2I6IFByb21wdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXJ2aWNlOiBDdWJlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZHM6IERhdGFzb3VyY2VTZXJ2aWNlKSB7IH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ19jdWJlJ10pIHtcclxuICAgICAgdGhpcy5jdWJlID0gdGhpcy5jdWJlID8gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiBjLm5hbWUgPT09IHRoaXMuX2N1YmUpIDpcclxuICAgICAgICB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuY3ViZXNbMF07XHJcbiAgICAgIHRoaXMuQ1VSUkVOQ1kgPSB0aGlzLmN1YmUuY3VycmVuY3lDb2RlIHx8IHRoaXMuX3NlcnZpY2UuY3VycmVuY3lDb2RlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbmRpY2VzID0gdGhpcy5faW5kaWNlcyA/IHRoaXMuY3ViZS5pbmRpY2VzLmZpbHRlcihpID0+IChpc1N0cmluZyh0aGlzLl9pbmRpY2VzKSAmJiB0aGlzLl9pbmRpY2VzID09PSBpLm5hbWUpIHx8XHJcbiAgICAgIChpc0FycmF5KHRoaXMuX2luZGljZXMpICYmIHRoaXMuX2luZGljZXMuaW5kZXhPZihpLm5hbWUpID4gLTEpKSA6IHRoaXMuY3ViZS5pbmRpY2VzO1xyXG4gICAgaWYgKGNoYW5nZXNbJ194QXhpYSddIHx8IGNoYW5nZXNbJ19zZXJpZSddKSB7XHJcbiAgICAgIHRoaXMueEF4aXMgPSB0aGlzLmN1YmUuYXhlcy5maW5kKGEgPT4gYS5uYW1lID09PSB0aGlzLl94QXhpcykgfHwgdGhpcy5jdWJlLmF4ZXNbMF07XHJcbiAgICAgIHRoaXMuc2VyaWVzID0gdGhpcy5jdWJlLmF4ZXMuZmluZChhID0+IGEubmFtZSA9PT0gdGhpcy5fc2VyaWUpIHx8IHRoaXMuY3ViZS5heGVzWzFdO1xyXG4gICAgICB0aGlzLl9wcmVwYXJlID0gZm9ya0pvaW4odGhpcy5fZHMuYWxsKHRoaXMuc2VyaWVzLmRhdGFUeXBlKS5waXBlKHRhcChyID0+XHJcbiAgICAgICAgdGhpcy5yb3dzID0gclxyXG4gICAgICApKSxcclxuICAgICAgICB0aGlzLl9kcy5hbGwodGhpcy54QXhpcy5kYXRhVHlwZSkucGlwZSh0YXAoYyA9PlxyXG4gICAgICAgICAgdGhpcy5jb2x1bW5zID0gY1xyXG4gICAgICAgICkpKS50b1Byb21pc2UoKS50aGVuKFxyXG4gICAgICAgICAgKCkgPT5cclxuICAgICAgICAgICAgdGhpcy5fc3VtICYmXHJcbiAgICAgICAgICAgIHRoaXMuX2FkZHN1bSgpKTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzWydheGVzJ10pXHJcbiAgICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9hZGRzdW0oKSB7XHJcbiAgICBpZiAodGhpcy5fc3VtLnhBeGlzKSB7XHJcbiAgICAgIGNvbnN0IGNvbHVtbnMgPSBbXTtcclxuICAgICAgdGhpcy5jb2x1bW5zLmZvckVhY2goYyA9PiB7XHJcbiAgICAgICAgY29sdW1ucy5wdXNoKGMpO1xyXG4gICAgICAgIGlmICh0aGlzLl9zdW0ueEF4aXMudG9TdHJpbmcoKSA9PT0gYy5rZXkpXHJcbiAgICAgICAgICBjb2x1bW5zLnB1c2goe1xyXG4gICAgICAgICAgICBrZXk6ICdfc3VtJyxcclxuICAgICAgICAgICAgdmFsdWU6IHRoaXMuX3N1bS50aXRsZVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmNvbHVtbnMgPSBjb2x1bW5zO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuX3N1bS5zZXJpZSkge1xyXG4gICAgICBjb25zdCByb3dzID0gW107XHJcbiAgICAgIHRoaXMucm93cy5mb3JFYWNoKHIgPT4ge1xyXG4gICAgICAgIHJvd3MucHVzaChyKTtcclxuICAgICAgICBpZiAodGhpcy5fc3VtLnNlcmllLnRvU3RyaW5nKCkgPT09IHIua2V5KVxyXG4gICAgICAgICAgcm93cy5wdXNoKHtcclxuICAgICAgICAgICAga2V5OiAnX3N1bScsXHJcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLl9zdW0udGl0bGVcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5yb3dzID0gcm93cztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlZnJlc2goKSB7XHJcbiAgICBjb25zdCBwcm9ncmVzc1Rhc2sgPSBzZXRUaW1lb3V0KCgpID0+IFxyXG4gICAgICB0aGlzLmxvYWRpbmdDaGFuZ2UubmV4dCh0aGlzLmxvYWRpbmcgPSB0cnVlKVxyXG4gICAgICAsIExPQURJTkdfREVMQVkpO1xyXG4gICAgdGhpcy5fcHJlcGFyZS50aGVuKCgpID0+IHRoaXMuX3NlcnZpY2Uuc2VyaWVzKHRoaXMuY3ViZS5uYW1lLCB0aGlzLnhBeGlzLm5hbWUsIHtcclxuICAgICAgc2VyaWVzOiB0aGlzLnNlcmllcy5uYW1lLFxyXG4gICAgICBpbmRpY2VzOiB0aGlzLmluZGljZXMubWFwKGkgPT4gaS5uYW1lKSxcclxuICAgICAgZmlsdGVyczogdGhpcy5heGVzLFxyXG4gICAgICBiYXNlOiB0aGlzLmJhc2VcclxuICAgIH0gYXMgYW55KS5waXBlKFxyXG4gICAgICBtb2RlbGl6ZSgpLCBmaXJzdCgpLCB0YXAoZCA9PiB7XHJcbiAgICAgICAgdGhpcy5fc3VtICYmXHJcbiAgICAgICAgICB0aGlzLl9jYWxjdWxhdGVzdW0oZCk7XHJcbiAgICAgIH0pKS5zdWJzY3JpYmUoZCA9PlxyXG4gICAgICAgICAgdGhpcy5kYXRhID0gZCxcclxuICAgICAgICAgIChlOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9zYi5lcnJvcihlLnN0YXR1cyA9PT0gNDAxID8gJ1VuYXV0aG9yaXplZCcgOiBudWxsKTtcclxuICAgICAgICB9LCAoKSA9PiB7XHJcbiAgICAgICAgICBjbGVhclRpbWVvdXQocHJvZ3Jlc3NUYXNrKTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZ0NoYW5nZS5uZXh0KHRoaXMubG9hZGluZyA9IGZhbHNlKTtcclxuICAgICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfY2FsY3VsYXRlc3VtKGRhdGEpIHtcclxuICAgIGlmICh0aGlzLl9zdW0ueEF4aXMpXHJcbiAgICAgIHRoaXMucm93cy5mb3JFYWNoKHIgPT4ge1xyXG4gICAgICAgIGNvbnN0IHJvdyA9IGRhdGFbci5rZXldO1xyXG4gICAgICAgIGlmICghcm93KVxyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIGxldCBzdW0gPSAwLCBpID0gMDtcclxuICAgICAgICB3aGlsZSAoaSA8IHRoaXMuY29sdW1ucy5sZW5ndGgpIHtcclxuICAgICAgICAgIGxldCBrZXkgPSB0aGlzLmNvbHVtbnNbaV0ua2V5LCB2YWwgPSByb3dba2V5XTtcclxuICAgICAgICAgIGlmICh2YWwgIT09IHVuZGVmaW5lZClcclxuICAgICAgICAgICAgc3VtICs9IHZhbDtcclxuICAgICAgICAgIGlmIChrZXkgPT09IHRoaXMuX3N1bS54QXhpcy50b1N0cmluZygpKVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGkrKztcclxuICAgICAgICB9XHJcbiAgICAgICAgZGF0YVtyLmtleV1bJ19zdW0nXSA9IHN1bTtcclxuICAgICAgfSk7XHJcbiAgICBpZiAodGhpcy5fc3VtLnNlcmllKSB7XHJcbiAgICAgIHRoaXMuY29sdW1ucy5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICAgIGxldCBzdW0gPSAwLCBpID0gMDtcclxuICAgICAgICB3aGlsZSAoaSA8IHRoaXMucm93cy5sZW5ndGgpIHtcclxuICAgICAgICAgIGxldCBrZXkgPSB0aGlzLnJvd3NbaV0ua2V5LCByb3cgPSBkYXRhW2tleV07XHJcbiAgICAgICAgICBpZiAocm93KSB7XHJcbiAgICAgICAgICAgIGxldCB2YWwgPSByb3dbYy5rZXldO1xyXG4gICAgICAgICAgICBpZiAodmFsICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgICAgc3VtICs9IHZhbDtcclxuICAgICAgICAgICAgaWYgKGtleSA9PT0gdGhpcy5fc3VtLnNlcmllLnRvU3RyaW5nKCkpXHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpKys7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGRhdGFbJ19zdW0nXVtjLmtleV0gPSBzdW07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZXhwbG9yZSh4OiBzdHJpbmcgfCBudW1iZXIgfCBzdHJpbmdbXSB8IG51bWJlcltdLCBzZXJpZTogc3RyaW5nIHwgbnVtYmVyIHwgc3RyaW5nW10gfCBudW1iZXJbXSkge1xyXG4gICAgaWYgKHRoaXMuX3N1bSkge1xyXG4gICAgICBpZiAoeCA9PT0gJ19zdW0nKSB7XHJcbiAgICAgICAgeCA9IFtdIGFzIHN0cmluZ1tdO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jb2x1bW5zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBsZXQga2V5ID0gdGhpcy5jb2x1bW5zW2ldLmtleTtcclxuICAgICAgICAgIHgucHVzaChrZXkpO1xyXG4gICAgICAgICAgaWYgKGtleSA9PT0gdGhpcy5fc3VtLnhBeGlzLnRvU3RyaW5nKCkpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoc2VyaWUgPT09ICdfc3VtJykge1xyXG4gICAgICAgIHNlcmllID0gW10gYXMgc3RyaW5nW107XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJvd3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGxldCBrZXkgPSB0aGlzLnJvd3NbaV0ua2V5O1xyXG4gICAgICAgICAgc2VyaWUucHVzaChrZXkpO1xyXG4gICAgICAgICAgaWYgKGtleSA9PT0gdGhpcy5fc3VtLnNlcmllLnRvU3RyaW5nKCkpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgYXhlcyA9IHt9IGFzIEF4ZXNNYXA7XHJcbiAgICBheGVzW3RoaXMueEF4aXMubmFtZV0gPSB4O1xyXG4gICAgYXhlc1t0aGlzLnNlcmllcy5uYW1lXSA9IHNlcmllO1xyXG4gICAgT2JqZWN0LmFzc2lnbihheGVzLCB0aGlzLl9zZXJ2aWNlLmJhc2UodGhpcy5jdWJlLm5hbWUsIHRoaXMuYXhlcywgdGhpcy5iYXNlKSkgICAgO1xyXG4gICAgdGhpcy5vbkV4cGxvcmUuZW1pdChheGVzICk7XHJcbiAgfVxyXG4gIG1vdmUoeCwgeSkge1xyXG4gICAgbGV0IHJvd0luZGV4ID0gMDtcclxuICAgIGZvciAobGV0IGIgPSAwOyBiIDwgdGhpcy50YWJsZUVsZW1lbnQubmF0aXZlRWxlbWVudC50Qm9kaWVzLmxlbmd0aDsgYisrKSB7XHJcbiAgICAgIGxldCB0Qm9keSA9IHRoaXMudGFibGVFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudEJvZGllcy5pdGVtKGIpO1xyXG4gICAgICBmb3IgKGxldCByID0gMDsgciA8IHRCb2R5LnJvd3MubGVuZ3RoOyByKyspIHtcclxuICAgICAgICBsZXQgcm93ID0gdEJvZHkucm93cy5pdGVtKHIpO1xyXG4gICAgICAgIGZvciAobGV0IGMgPSAwOyBjIDwgcm93LmNlbGxzLmxlbmd0aDsgYysrKSB7XHJcbiAgICAgICAgICBsZXQgY2VsbCA9IHJvdy5jZWxscy5pdGVtKGMpO1xyXG4gICAgICAgICAgaWYgKGMgPT09IHgpXHJcbiAgICAgICAgICAgIGNlbGwuY2xhc3NMaXN0LmFkZCgnY2VsbC14Jyk7XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIGNlbGwuY2xhc3NMaXN0LnJlbW92ZSgnY2VsbC14Jyk7XHJcbiAgICAgICAgICBpZiAocm93SW5kZXggPT09IHkpXHJcbiAgICAgICAgICAgIGNlbGwuY2xhc3NMaXN0LmFkZCgnY2VsbC15Jyk7XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIGNlbGwuY2xhc3NMaXN0LnJlbW92ZSgnY2VsbC15Jyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJvd0luZGV4Kys7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IHRGb290ID0gdGhpcy50YWJsZUVsZW1lbnQubmF0aXZlRWxlbWVudC50Rm9vdCwgcm93ID0gdEZvb3Qucm93c1swXTtcclxuICAgICAgZm9yIChsZXQgYyA9IDA7IGMgPCByb3cuY2VsbHMubGVuZ3RoOyBjKyspIHtcclxuICAgICAgICBsZXQgY2VsbCA9IHJvdy5jZWxscy5pdGVtKGMpO1xyXG4gICAgICAgIGlmIChjID09PSB4KVxyXG4gICAgICAgICAgY2VsbC5jbGFzc0xpc3QuYWRkKCdjZWxsLXgnKTtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICBjZWxsLmNsYXNzTGlzdC5yZW1vdmUoJ2NlbGwteCcpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHN1bXJvdyhzZXJpZTogc3RyaW5nKTogbnVtYmVyIHtcclxuICAgIGNvbnN0IGxpbmUgPSB0aGlzLmRhdGFbc2VyaWVdO1xyXG4gICAgbGV0IHN1bSA9IDAsIHg7XHJcbiAgICBpZiAobGluZSlcclxuICAgICAgZm9yICh4IGluIGxpbmUpXHJcbiAgICAgICAgc3VtICs9IGxpbmVbeF07XHJcbiAgICByZXR1cm4gc3VtO1xyXG4gIH1cclxuICBzdW1jb2x1bW4oeDogc3RyaW5nKTogbnVtYmVyIHtcclxuICAgIGxldCBzdW0gPSAwLCBrZXk7XHJcbiAgICBmb3IgKGtleSBpbiB0aGlzLmRhdGEpIHtcclxuICAgICAgY29uc3QgdmFsID0gdGhpcy5kYXRhW2tleV1beF07XHJcbiAgICAgIGlmICh2YWwgIT09IHVuZGVmaW5lZClcclxuICAgICAgICBzdW0gKz1cclxuICAgICAgICAgIHRoaXMuaW5kaWNlcy5maW5kSW5kZXgoaSA9PiBpLm5hbWUgPT09IGtleSkgPiAtMSA/IHZhbCA6XHJcbiAgICAgICAgICAgIC12YWw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3VtO1xyXG4gIH1cclxuICBpbmRleHRvdGFsKG5hbWUpOiBudW1iZXIge1xyXG4gICAgbGV0IHN1bSA9IDAsIHg7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuZGF0YVtuYW1lXTtcclxuICAgIGZvciAoeCBpbiBpbmRleClcclxuICAgICAgc3VtICs9IGluZGV4W3hdO1xyXG4gICAgcmV0dXJuIHN1bTtcclxuICB9XHJcbiAgZ2V0IGdyYW5kdG90YWwoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmluZGljZXMuc3VtKGkgPT4gdGhpcy5pbmRleHRvdGFsKGkubmFtZSkpIC0gdGhpcy5yb3dzLnN1bShyID0+IHRoaXMuc3Vtcm93KHIua2V5KSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ3ViZUluZm9DZWxsQXJncyB7XHJcbiAgcHJpdmF0ZSBfdmFsdWU6IG51bWJlcjtcclxuICBnZXQgdmFsdWUoKTogbnVtYmVyIHsgcmV0dXJuIHRoaXMuX3ZhbHVlOyB9XHJcbiAgcHJpdmF0ZSBfc3VtbWFyeTogYm9vbGVhbjtcclxuICBnZXQgc3VtbWFyeSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX3N1bW1hcnk7IH1cclxuICBjb2xvcjogc3RyaW5nO1xyXG4gIGJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xyXG4gIGRhdGE6IHsgW3Jvdzogc3RyaW5nXTogeyBbY29sdW1uOiBzdHJpbmddOiBudW1iZXI7IH07IH07XHJcbiAgcm93OiBzdHJpbmc7XHJcbiAgY29sdW1uOiBzdHJpbmc7XHJcbn1cclxuXHJcbnR5cGUgU3VtT3B0aW9ucyA9IHtcclxuICB4QXhpcz86IHN0cmluZyB8IG51bWJlcjtcclxuICBzZXJpZT86IHN0cmluZyB8IG51bWJlcjtcclxuICB0aXRsZTogYW55O1xyXG59XHJcbnR5cGUgS2V5VmFsdWUgPSB7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWU6IGFueTtcclxufTtcclxuXHJcbiIsIjx0YWJsZSAjdGFibGUgY2xhc3M9XCJjdWJlLXRhYmxlXCIgKG1vdXNlbGVhdmUpPVwibW92ZSgtMSwgLTEpXCIgKm5nSWY9XCJkYXRhXCI+XHJcbiAgPHRoZWFkPlxyXG4gICAgPCEtLSBoZWFkZXJzIC0tPlxyXG4gICAgPHRyIGNsYXNzPVwibWF0LWJvZHktMlwiPlxyXG4gICAgICA8dGg+PC90aD5cclxuICAgICAgPHRoICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgbGV0IHggPSBpbmRleFwiIChtb3VzZWVudGVyKT1cIm1vdmUoeCArIDEsIC0yKVwiPlxyXG4gICAgICAgIHt7IGNvbHVtbi52YWx1ZSB9fVxyXG4gICAgICA8L3RoPlxyXG4gICAgICA8dGg+PC90aD5cclxuICAgIDwvdHI+XHJcbiAgPC90aGVhZD5cclxuICA8dGJvZHk+XHJcbiAgICA8IS0tIGluZGljZXMgLS0+XHJcbiAgICA8dHIgY2xhc3M9XCJtYXQtcm93IGN1YmUtaW5kZXhcIiAqbmdGb3I9XCJsZXQgaW5kZXggb2YgaW5kaWNlczsgbGV0IHkgPSBpbmRleFwiPlxyXG4gICAgICA8dGggY2xhc3M9XCJtYXQtYm9keS0yXCIgKG1vdXNlZW50ZXIpPVwibW92ZSgwLCB5KVwiPnt7aW5kZXgudGl0bGV9fTwvdGg+XHJcbiAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IGxldCB4ID0gaW5kZXhcIiBjbGFzcz1cImZpZ3VyZVwiIChtb3VzZWVudGVyKT1cIm1vdmUoeCArIDEsIHkpXCI+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJkYXRhW2luZGV4Lm5hbWVdICYmIGRhdGFbaW5kZXgubmFtZV1bY29sdW1uLmtleV07IGVsc2UgemVyb1wiPnt7IGRhdGFbaW5kZXgubmFtZV1bY29sdW1uLmtleV0gfCBudW1iZXIgOiBQUkVDSVNJT04gfX08L3NwYW4+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIDx0aCBjbGFzcz1cIm1hdC1ib2R5LTIgZmlndXJlXCIgKG1vdXNlZW50ZXIpPVwibW92ZSgwLCB5KVwiPnt7IGluZGV4dG90YWwoaW5kZXgubmFtZSkgfCBjdXJyZW5jeSA6IENVUlJFTkNZOiAnc3ltYm9sJyA6IFBSRUNJU0lPTiB9fTwvdGg+XHJcbiAgICA8L3RyPlxyXG4gIDwvdGJvZHk+XHJcbiAgPHRib2R5PlxyXG4gICAgPCEtLSByb3dzIC0tPlxyXG4gICAgPHRyICpuZ0Zvcj1cImxldCByb3cgb2Ygcm93czsgbGV0IHkgPSBpbmRleFwiIGNsYXNzPVwibWF0LXJvd1wiPlxyXG4gICAgICA8dGggY2xhc3M9XCJtYXQtYm9keS0yXCIgKG1vdXNlZW50ZXIpPVwibW92ZSgtMiwgeSArIGluZGljZXMubGVuZ3RoKVwiPnt7IHJvdy52YWx1ZSB9fTwvdGg+XHJcbiAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IGxldCB4ID0gaW5kZXhcIiBjbGFzcz1cImZpZ3VyZVwiIChtb3VzZWVudGVyKT1cIm1vdmUoeCArIDEsIHkgKyBpbmRpY2VzLmxlbmd0aClcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YVtyb3cua2V5XSAmJiBkYXRhW3Jvdy5rZXldW2NvbHVtbi5rZXldICE9PSB1bmRlZmluZWQ7IGVsc2UgemVyb1wiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiaW50ZXJhY3RpdmVcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjbGlja2FibGVcIiAoY2xpY2spPVwiZXhwbG9yZShjb2x1bW4ua2V5LCByb3cua2V5KVwiICpuZ1N3aXRjaENhc2U9XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAge3tkYXRhW3Jvdy5rZXldW2NvbHVtbi5rZXldIHwgbnVtYmVyIDogUFJFQ0lTSU9OIH19XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgICAgICAgICB7e2RhdGFbcm93LmtleV1bY29sdW1uLmtleV0gfCBudW1iZXIgOiBQUkVDSVNJT04gfX1cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIDx0aCBjbGFzcz1cIm1hdC1ib2R5LTIgZmlndXJlXCIgKG1vdXNlZW50ZXIpPVwibW92ZSgtMSwgeSArIGluZGljZXMubGVuZ3RoKVwiPlxyXG4gICAgICAgIHt7IHN1bXJvdyhyb3cua2V5KSB8IGN1cnJlbmN5IDogQ1VSUkVOQ1k6ICdzeW1ib2wnIDogUFJFQ0lTSU9OIH19XHJcbiAgICAgIDwvdGg+XHJcbiAgICA8L3RyPlxyXG4gIDwvdGJvZHk+XHJcbiAgPHRmb290PlxyXG4gICAgPCEtLSBhdmFpbGFibGUgLS0+XHJcbiAgICA8dHI+XHJcbiAgICAgIDx0aD48L3RoPlxyXG4gICAgICA8dGQgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zOyBsZXQgeCA9IGluZGV4XCIgY2xhc3M9XCJmaWd1cmVcIiAobW91c2VlbnRlcik9XCJtb3ZlKHggKyAxLCAtMilcIlxyXG4gICAgICAgICAgW2NsYXNzLm5lZ2F0aXZlLWZpZ3VyZV09XCJzdW1jb2x1bW4oY29sdW1uLmtleSkgPCAwXCI+XHJcbiAgICAgICAge3tzdW1jb2x1bW4oY29sdW1uLmtleSkgfCBjdXJyZW5jeSA6IENVUlJFTkNZOiAnc3ltYm9sJyA6IFBSRUNJU0lPTiB9fVxyXG4gICAgICA8L3RkPlxyXG4gICAgICA8dGggY2xhc3M9XCJmaWd1cmVcIj57e2dyYW5kdG90YWwgfCBjdXJyZW5jeSA6IENVUlJFTkNZOiAnc3ltYm9sJyA6IFBSRUNJU0lPTiB9fTwvdGg+XHJcbiAgICA8L3RyPlxyXG4gIDwvdGZvb3Q+XHJcbjwvdGFibGU+XHJcbjxuZy10ZW1wbGF0ZSAjemVybz5cclxuICAwXHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|