@bizdoc/core 1.13.22 → 1.13.24
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/esm2020/lib/core/session.service.mjs +11 -9
- package/esm2020/lib/core/translate.service.mjs +18 -10
- package/esm2020/lib/core/translations.mjs +14 -8
- package/esm2020/lib/cube/grid/spreadsheet.component.mjs +2 -2
- package/esm2020/lib/cube/matrix/table.component.mjs +5 -3
- package/esm2020/lib/cube/view.pane.component.mjs +3 -3
- package/esm2020/lib/reports/report.mobile.component.mjs +11 -3
- package/esm2020/lib/reports/report.pane.component.mjs +1 -1
- package/fesm2015/bizdoc-core.mjs +56 -30
- package/fesm2015/bizdoc-core.mjs.map +1 -1
- package/fesm2020/bizdoc-core.mjs +56 -30
- package/fesm2020/bizdoc-core.mjs.map +1 -1
- package/lib/core/translate.service.d.ts +3 -0
- package/lib/core/translations.d.ts +13 -7
- package/lib/reports/report.mobile.component.d.ts +3 -0
- package/lib/reports/report.pane.component.d.ts +1 -1
- package/package.json +1 -1
package/fesm2020/bizdoc-core.mjs
CHANGED
@@ -27,7 +27,13 @@ import * as i2$1 from '@angular/cdk/a11y';
|
|
27
27
|
import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
|
28
28
|
import { L10n, setCulture, loadCldr, setCurrencyCode, Internationalization, enableRtl } from '@syncfusion/ej2-base';
|
29
29
|
import 'dayjs/locale/he';
|
30
|
+
import 'dayjs/locale/de';
|
31
|
+
import 'dayjs/locale/ru';
|
32
|
+
import 'dayjs/locale/ar';
|
30
33
|
import localeHe from '@angular/common/locales/he';
|
34
|
+
import localeAr from '@angular/common/locales/ar';
|
35
|
+
import localeRu from '@angular/common/locales/ru';
|
36
|
+
import localeDe from '@angular/common/locales/de';
|
31
37
|
import * as i8 from '@angular/material/icon';
|
32
38
|
import { MatIconModule } from '@angular/material/icon';
|
33
39
|
import * as brace from 'brace';
|
@@ -993,7 +999,7 @@ const THEMES = [
|
|
993
999
|
{ name: 'dark', primary: 'deepPurple', color: '#404041', accent: 'amber', dark: true },
|
994
1000
|
{ name: 'brown', primary: 'brown', color: '#795548', accent: 'grey' }
|
995
1001
|
];
|
996
|
-
const SUPPORTED_LANGUAGES = ['en
|
1002
|
+
const SUPPORTED_LANGUAGES = ['en', 'he', 'de', 'ar', 'ru'], RTL_LANGUALGES = ['he', 'ar'];
|
997
1003
|
class SessionService {
|
998
1004
|
constructor(_config, _http, _cookies, _hub) {
|
999
1005
|
this._config = _config;
|
@@ -1166,14 +1172,16 @@ class SessionService {
|
|
1166
1172
|
lang = navigator.languages[i];
|
1167
1173
|
if (this.languages.indexOf(lang) > -1)
|
1168
1174
|
return lang;
|
1175
|
+
if (lang.length > 2) {
|
1176
|
+
lang = lang.substring(0, 2).toLowerCase();
|
1177
|
+
if (this.languages.indexOf(lang) > -1)
|
1178
|
+
return lang;
|
1179
|
+
lang = this.languages.find(l => l.startsWith(lang));
|
1180
|
+
if (lang)
|
1181
|
+
return lang;
|
1182
|
+
}
|
1169
1183
|
}
|
1170
|
-
|
1171
|
-
const culture = navigator.languages[i].substring(0, 2).toLowerCase();
|
1172
|
-
lang = this.languages.find(l => l.startsWith(culture));
|
1173
|
-
if (lang)
|
1174
|
-
break;
|
1175
|
-
}
|
1176
|
-
return lang;
|
1184
|
+
return null;
|
1177
1185
|
}
|
1178
1186
|
/**
|
1179
1187
|
*
|
@@ -1841,7 +1849,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
1841
1849
|
args: [MatSlideToggle]
|
1842
1850
|
}] } });
|
1843
1851
|
|
1844
|
-
const
|
1852
|
+
const L18N_STRINGS = {
|
1845
1853
|
'en': {
|
1846
1854
|
pivotview: {
|
1847
1855
|
filterAxisPrompt: '',
|
@@ -1851,6 +1859,8 @@ const SYNCFUSION_L18N = {
|
|
1851
1859
|
}
|
1852
1860
|
},
|
1853
1861
|
'de': {},
|
1862
|
+
'ar': {},
|
1863
|
+
'ru': {},
|
1854
1864
|
'he': {
|
1855
1865
|
'richtexteditor': {
|
1856
1866
|
alignments: "יישור",
|
@@ -1921,8 +1931,10 @@ const SYNCFUSION_L18N = {
|
|
1921
1931
|
}
|
1922
1932
|
};
|
1923
1933
|
const STRINGS = {
|
1924
|
-
'de
|
1925
|
-
'
|
1934
|
+
'de': {},
|
1935
|
+
'ar': {},
|
1936
|
+
'ru': {},
|
1937
|
+
'en': {
|
1926
1938
|
Editing: '{0} editing...',
|
1927
1939
|
CheckOut: 'Check out',
|
1928
1940
|
CheckIn: 'Check in',
|
@@ -2152,9 +2164,11 @@ const STRINGS = {
|
|
2152
2164
|
NewCommentsCount: '{0} comment(s) <strong>{1}</strong> new',
|
2153
2165
|
None: '- None -',
|
2154
2166
|
All: '- All -',
|
2155
|
-
'de
|
2156
|
-
'en
|
2157
|
-
'he
|
2167
|
+
'de': 'Deutsch',
|
2168
|
+
'en': 'English',
|
2169
|
+
'he': 'עברית',
|
2170
|
+
'ar': 'اللغة العربية',
|
2171
|
+
'ru': 'русский язык',
|
2158
2172
|
StartTour: 'Start tour',
|
2159
2173
|
UploadOk: '{0} uploaded',
|
2160
2174
|
UploadVersionOk: '{0} updated',
|
@@ -2380,7 +2394,7 @@ const STRINGS = {
|
|
2380
2394
|
Matrix: 'Matrix',
|
2381
2395
|
Working: 'Working on it...'
|
2382
2396
|
},
|
2383
|
-
'he
|
2397
|
+
'he': {
|
2384
2398
|
Editing: '{0} עורך/ת...',
|
2385
2399
|
EditingMale: '{0} עורך...',
|
2386
2400
|
EditingFemale: '{0} עורכת...',
|
@@ -2948,8 +2962,7 @@ const STRINGS = {
|
|
2948
2962
|
}
|
2949
2963
|
};
|
2950
2964
|
|
2951
|
-
const
|
2952
|
-
L10n.load(SYNCFUSION_L18N);
|
2965
|
+
const CLDR_FILES$1 = ['cldr-data/main/{0}/ca-gregorian.json', 'cldr-data/main/{0}/numbers.json', 'cldr-data/main/{0}/timeZoneNames.json'];
|
2953
2966
|
function TranslateProviderFactory(provider) {
|
2954
2967
|
return () => provider.cldr(provider.culture, CLDR_FILES$1);
|
2955
2968
|
}
|
@@ -2957,15 +2970,18 @@ class TranslateService {
|
|
2957
2970
|
constructor(_session, _http) {
|
2958
2971
|
this._session = _session;
|
2959
2972
|
this._http = _http;
|
2960
|
-
TranslateService.resource = STRINGS['en
|
2961
|
-
if (
|
2962
|
-
STRINGS[_session.language]
|
2963
|
-
Object.assign(TranslateService.resource, STRINGS[_session.language]);
|
2973
|
+
TranslateService.resource = STRINGS['en'];
|
2974
|
+
if ('en' !== _session.language) {
|
2975
|
+
Object.assign(TranslateService.resource, STRINGS[_session.language]);
|
2964
2976
|
const culture = _session.language.split('-')[0];
|
2965
2977
|
dayjs.locale(culture);
|
2966
2978
|
// syncfusion
|
2979
|
+
L10n.load(L18N_STRINGS);
|
2967
2980
|
setCulture(culture);
|
2968
|
-
registerLocaleData(localeHe, 'he');
|
2981
|
+
culture === 'he' && registerLocaleData(localeHe, 'he');
|
2982
|
+
culture === 'ru' && registerLocaleData(localeRu, 'ru');
|
2983
|
+
culture === 'ar' && registerLocaleData(localeAr, 'ar');
|
2984
|
+
culture === 'de' && registerLocaleData(localeDe, 'de');
|
2969
2985
|
}
|
2970
2986
|
;
|
2971
2987
|
_session.loaded.subscribe(() => this._gender = this._session.gender);
|
@@ -2982,7 +2998,7 @@ class TranslateService {
|
|
2982
2998
|
return this._session.language.split('-')[0];
|
2983
2999
|
}
|
2984
3000
|
cldr(culture, files) {
|
2985
|
-
if (
|
3001
|
+
if ('en' === this._session.language)
|
2986
3002
|
return Promise.resolve();
|
2987
3003
|
const observables = files.map(f => this._http.get('/assets/i18n/' + f.replace('{0}', culture)).pipe(tap(loadCldr)));
|
2988
3004
|
return forkJoin(observables).toPromise();
|
@@ -10819,7 +10835,7 @@ class CubeSpreadsheetComponent {
|
|
10819
10835
|
return;
|
10820
10836
|
this._fillx(x, x1, axes);
|
10821
10837
|
}
|
10822
|
-
else if (this._indices && y <= this._indices.length
|
10838
|
+
else if (this._indices && y <= this._indices.length) {
|
10823
10839
|
index = this._indices[y - 1];
|
10824
10840
|
this._fillx(x, x1, axes);
|
10825
10841
|
}
|
@@ -11264,12 +11280,12 @@ class CubeViewPaneComponent extends ViewBase {
|
|
11264
11280
|
}
|
11265
11281
|
}
|
11266
11282
|
CubeViewPaneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CubeViewPaneComponent, deps: [{ token: SessionService }, { token: PaneRef }, { token: Popup }, { token: RouterImpl }, { token: CubeService }, { token: GuideService }], target: i0.ɵɵFactoryTarget.Component });
|
11267
|
-
CubeViewPaneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: CubeViewPaneComponent, selector: "ng-component", host: { listeners: { "window:keydown.f1": "guide($event)" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "viewPane", first: true, predicate: CubeViewComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\" *ngIf=\"view.guide\"><mat-icon>help_outline</mat-icon></button>\r\n <button mat-icon-button (click)=\"vp.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [bizdocTooltip]=\"'Download' | translate\"\r\n data-help=\"download\" (click)=\"vp.exportToExcel()\">\r\n <mat-icon>save_alt</mat-icon>\r\n </button>\r\n <button mat-icon-button [matMenuTriggerFor]=\"pmenu\" [bizdocTooltip]=\"'Patterns' | translate\" [disabled]=\"!patterns?.length\" data-help=\"pattern\"><mat-icon [class.filled]=\"pattern\">
|
11283
|
+
CubeViewPaneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: CubeViewPaneComponent, selector: "ng-component", host: { listeners: { "window:keydown.f1": "guide($event)" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "viewPane", first: true, predicate: CubeViewComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\" *ngIf=\"view.guide\"><mat-icon>help_outline</mat-icon></button>\r\n <button mat-icon-button (click)=\"vp.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [bizdocTooltip]=\"'Download' | translate\"\r\n data-help=\"download\" (click)=\"vp.exportToExcel()\">\r\n <mat-icon>save_alt</mat-icon>\r\n </button>\r\n <button mat-icon-button [matMenuTriggerFor]=\"pmenu\" [bizdocTooltip]=\"'Patterns' | translate\" [disabled]=\"!patterns?.length\" data-help=\"pattern\"><mat-icon [class.filled]=\"pattern\">tune</mat-icon></button>\r\n <mat-menu #pmenu>\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"patternChange(p)\">\r\n {{p.title}}\r\n </button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"clearFilter()\" [bizdocTooltip]=\"'Clear' | translate\" [disabled]=\"!anyFilters\"><mat-icon>clear_all</mat-icon></button>\r\n <button mat-icon-button (click)=\"filterToggle($event)\" [bizdocTooltip]=\"'Filter' | translate\" [disabled]=\"!anyAxes\" data-help=\"filter\"><mat-icon [class.filled]=\"anyFilters\">filter_list</mat-icon></button>\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<!--<bizdoc-cube-tags [(filters)]=\"axes\" [cube]=\"cube\"></bizdoc-cube-tags>-->\r\n<bizdoc-cube-view [filters]=\"axes\" #vp\r\n (explore)=\"explore($event)\"\r\n [cube]=\"cube\"\r\n [view]=\"view\"\r\n [(loading)]=\"loading\"></bizdoc-cube-view>\r\n<!--<ng-lottie options=\"{path: 'assets/8318-loader.json'}\" *ngIf=\"loading\"></ng-lottie>-->\r\n", styles: [":host{display:flex;flex-direction:column;height:100%}:host ::ng-deep .cube-view{flex:1 auto}\n"], components: [{ type: i7$3.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i7$1.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: i11.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: CubeViewComponent, selector: "bizdoc-cube-view", inputs: ["filters", "cube", "view", "loading"], outputs: ["explore", "loadingChange"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: MatIconAnimate, selector: "[matAnimate]" }, { type: i9.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": TranslatePipe } });
|
11268
11284
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CubeViewPaneComponent, decorators: [{
|
11269
11285
|
type: Component,
|
11270
11286
|
args: [{ host: {
|
11271
11287
|
class: 'pane'
|
11272
|
-
}, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\" *ngIf=\"view.guide\"><mat-icon>help_outline</mat-icon></button>\r\n <button mat-icon-button (click)=\"vp.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [bizdocTooltip]=\"'Download' | translate\"\r\n data-help=\"download\" (click)=\"vp.exportToExcel()\">\r\n <mat-icon>save_alt</mat-icon>\r\n </button>\r\n <button mat-icon-button [matMenuTriggerFor]=\"pmenu\" [bizdocTooltip]=\"'Patterns' | translate\" [disabled]=\"!patterns?.length\" data-help=\"pattern\"><mat-icon [class.filled]=\"pattern\">
|
11288
|
+
}, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\" *ngIf=\"view.guide\"><mat-icon>help_outline</mat-icon></button>\r\n <button mat-icon-button (click)=\"vp.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [bizdocTooltip]=\"'Download' | translate\"\r\n data-help=\"download\" (click)=\"vp.exportToExcel()\">\r\n <mat-icon>save_alt</mat-icon>\r\n </button>\r\n <button mat-icon-button [matMenuTriggerFor]=\"pmenu\" [bizdocTooltip]=\"'Patterns' | translate\" [disabled]=\"!patterns?.length\" data-help=\"pattern\"><mat-icon [class.filled]=\"pattern\">tune</mat-icon></button>\r\n <mat-menu #pmenu>\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"patternChange(p)\">\r\n {{p.title}}\r\n </button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"clearFilter()\" [bizdocTooltip]=\"'Clear' | translate\" [disabled]=\"!anyFilters\"><mat-icon>clear_all</mat-icon></button>\r\n <button mat-icon-button (click)=\"filterToggle($event)\" [bizdocTooltip]=\"'Filter' | translate\" [disabled]=\"!anyAxes\" data-help=\"filter\"><mat-icon [class.filled]=\"anyFilters\">filter_list</mat-icon></button>\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<!--<bizdoc-cube-tags [(filters)]=\"axes\" [cube]=\"cube\"></bizdoc-cube-tags>-->\r\n<bizdoc-cube-view [filters]=\"axes\" #vp\r\n (explore)=\"explore($event)\"\r\n [cube]=\"cube\"\r\n [view]=\"view\"\r\n [(loading)]=\"loading\"></bizdoc-cube-view>\r\n<!--<ng-lottie options=\"{path: 'assets/8318-loader.json'}\" *ngIf=\"loading\"></ng-lottie>-->\r\n", styles: [":host{display:flex;flex-direction:column;height:100%}:host ::ng-deep .cube-view{flex:1 auto}\n"] }]
|
11273
11289
|
}], ctorParameters: function () { return [{ type: SessionService }, { type: PaneRef }, { type: Popup }, { type: RouterImpl }, { type: CubeService }, { type: GuideService }]; }, propDecorators: { viewPane: [{
|
11274
11290
|
type: ViewChild,
|
11275
11291
|
args: [CubeViewComponent, { static: true }]
|
@@ -15492,6 +15508,8 @@ class CubeMatrixComponent {
|
|
15492
15508
|
});
|
15493
15509
|
}
|
15494
15510
|
_format(val, options) {
|
15511
|
+
if (val === 0)
|
15512
|
+
return '0';
|
15495
15513
|
if (options) {
|
15496
15514
|
if (options.format === 'percent')
|
15497
15515
|
return formatPercent(val, this.LANGUAGE, options.precision || this.PRECISION);
|
@@ -15614,10 +15632,10 @@ class CubeMatrixComponent {
|
|
15614
15632
|
}
|
15615
15633
|
}
|
15616
15634
|
CubeMatrixComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CubeMatrixComponent, deps: [{ token: PromptService }, { token: CubeService }, { token: SessionService }, { token: TranslateService }, { token: DatasourceService }], target: i0.ɵɵFactoryTarget.Component });
|
15617
|
-
CubeMatrixComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: CubeMatrixComponent, selector: "bizdoc-cube-matrix", inputs: { seriesTotalLabel: "seriesTotalLabel", xAxisTotalLabel: "xAxisTotalLabel", _cube: ["cube", "_cube"], _xAxis: ["xAxis", "_xAxis"], _series: ["series", "_series"], _indices: ["indices", "_indices"], indexAt: "indexAt", placeAt: "placeAt", scope: "scope", sum: "sum", filters: "filters", 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=\"mat-table cube-table\" (mouseleave)=\"_move(-1, -1)\" *ngIf=\"data\">\r\n <thead>\r\n <!-- headers -->\r\n <tr class=\"mat-header-row\">\r\n <th></th>\r\n <th *ngFor=\"let column of columns; let x = index\"\r\n (mouseenter)=\"_move(x + 1, -2)\" class=\"mat-header-cell\">\r\n {{ column.value }}\r\n </th>\r\n <th class=\"mat-header-cell\">{{xAxisTotalLabel}}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <!-- rows -->\r\n <tr *ngFor=\"let row of rows; let y = index\" class=\"mat-row\"\r\n [class.cube-index]=\"row.index\">\r\n <th class=\"mat-header-cell\" (mouseenter)=\"_move(-2, y )\">{{ row.value }}</th>\r\n <td *ngFor=\"let column of columns; let x = index\" class=\"mat-cell figure\"\r\n [class.explorable]=\"interactive && column.explorable !== false && row.explorable !== false\"\r\n (
|
15635
|
+
CubeMatrixComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: CubeMatrixComponent, selector: "bizdoc-cube-matrix", inputs: { seriesTotalLabel: "seriesTotalLabel", xAxisTotalLabel: "xAxisTotalLabel", _cube: ["cube", "_cube"], _xAxis: ["xAxis", "_xAxis"], _series: ["series", "_series"], _indices: ["indices", "_indices"], indexAt: "indexAt", placeAt: "placeAt", scope: "scope", sum: "sum", filters: "filters", 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=\"mat-table cube-table\" (mouseleave)=\"_move(-1, -1)\" *ngIf=\"data\">\r\n <thead>\r\n <!-- headers -->\r\n <tr class=\"mat-header-row\">\r\n <th></th>\r\n <th *ngFor=\"let column of columns; let x = index\"\r\n (mouseenter)=\"_move(x + 1, -2)\" class=\"mat-header-cell\">\r\n {{ column.value }}\r\n </th>\r\n <th class=\"mat-header-cell\">{{xAxisTotalLabel}}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <!-- rows -->\r\n <tr *ngFor=\"let row of rows; let y = index\" class=\"mat-row\"\r\n [class.cube-index]=\"row.index\">\r\n <th class=\"mat-header-cell\" (mouseenter)=\"_move(-2, y )\">{{ row.value }}</th>\r\n <td *ngFor=\"let column of columns; let x = index\" class=\"mat-cell figure\"\r\n (mouseenter)=\"_move(x + 1, y )\">\r\n <span *ngIf=\"data[row.key][column.key] !== '0'; else zero\" \r\n [class.explorable]=\"interactive && column.explorable !== false && row.explorable !== false\"\r\n (click)=\"explore(column, row)\">\r\n {{ data[row.key][column.key] }}\r\n </span>\r\n </td>\r\n <th class=\"mat-cell figure\" (mouseenter)=\"_move(-1, y )\">\r\n {{ data[row.key]['_total'] }}\r\n </th>\r\n </tr>\r\n </tbody>\r\n <tfoot>\r\n <!-- footer -->\r\n <tr class=\"mat-footer-row\">\r\n <td class=\"mat-footer-cell\">{{seriesTotalLabel}}</td>\r\n <td *ngFor=\"let column of columns; let x = index\" class=\"mat-footer-cell figure\"\r\n (mouseenter)=\"_move(x + 1, -2)\"\r\n [class.negative-figure]=\"totals[column.key].startsWith('-')\">\r\n <ng-container *ngIf=\"totals[column.key] !== undefined\">\r\n {{ totals[column.key] }}\r\n </ng-container>\r\n </td>\r\n <th class=\"mat-footer-cell figure\">{{ totals['_grand'] }}</th>\r\n </tr>\r\n </tfoot>\r\n</table>\r\n<ng-template #zero>0</ng-template>\r\n", styles: [".explorable{cursor:pointer}.cube-table{width:100%;table-layout:fixed}.cube-table th{cursor:default}.cube-table th.figure{font-weight:500}.cube-table td,.cube-table th{padding-right:8px}\n"], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], animations: [matrixAnimation] });
|
15618
15636
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CubeMatrixComponent, decorators: [{
|
15619
15637
|
type: Component,
|
15620
|
-
args: [{ selector: 'bizdoc-cube-matrix', animations: [matrixAnimation], template: "<table #table class=\"mat-table cube-table\" (mouseleave)=\"_move(-1, -1)\" *ngIf=\"data\">\r\n <thead>\r\n <!-- headers -->\r\n <tr class=\"mat-header-row\">\r\n <th></th>\r\n <th *ngFor=\"let column of columns; let x = index\"\r\n (mouseenter)=\"_move(x + 1, -2)\" class=\"mat-header-cell\">\r\n {{ column.value }}\r\n </th>\r\n <th class=\"mat-header-cell\">{{xAxisTotalLabel}}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <!-- rows -->\r\n <tr *ngFor=\"let row of rows; let y = index\" class=\"mat-row\"\r\n [class.cube-index]=\"row.index\">\r\n <th class=\"mat-header-cell\" (mouseenter)=\"_move(-2, y )\">{{ row.value }}</th>\r\n <td *ngFor=\"let column of columns; let x = index\" class=\"mat-cell figure\"\r\n [class.explorable]=\"interactive && column.explorable !== false && row.explorable !== false\"\r\n (
|
15638
|
+
args: [{ selector: 'bizdoc-cube-matrix', animations: [matrixAnimation], template: "<table #table class=\"mat-table cube-table\" (mouseleave)=\"_move(-1, -1)\" *ngIf=\"data\">\r\n <thead>\r\n <!-- headers -->\r\n <tr class=\"mat-header-row\">\r\n <th></th>\r\n <th *ngFor=\"let column of columns; let x = index\"\r\n (mouseenter)=\"_move(x + 1, -2)\" class=\"mat-header-cell\">\r\n {{ column.value }}\r\n </th>\r\n <th class=\"mat-header-cell\">{{xAxisTotalLabel}}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <!-- rows -->\r\n <tr *ngFor=\"let row of rows; let y = index\" class=\"mat-row\"\r\n [class.cube-index]=\"row.index\">\r\n <th class=\"mat-header-cell\" (mouseenter)=\"_move(-2, y )\">{{ row.value }}</th>\r\n <td *ngFor=\"let column of columns; let x = index\" class=\"mat-cell figure\"\r\n (mouseenter)=\"_move(x + 1, y )\">\r\n <span *ngIf=\"data[row.key][column.key] !== '0'; else zero\" \r\n [class.explorable]=\"interactive && column.explorable !== false && row.explorable !== false\"\r\n (click)=\"explore(column, row)\">\r\n {{ data[row.key][column.key] }}\r\n </span>\r\n </td>\r\n <th class=\"mat-cell figure\" (mouseenter)=\"_move(-1, y )\">\r\n {{ data[row.key]['_total'] }}\r\n </th>\r\n </tr>\r\n </tbody>\r\n <tfoot>\r\n <!-- footer -->\r\n <tr class=\"mat-footer-row\">\r\n <td class=\"mat-footer-cell\">{{seriesTotalLabel}}</td>\r\n <td *ngFor=\"let column of columns; let x = index\" class=\"mat-footer-cell figure\"\r\n (mouseenter)=\"_move(x + 1, -2)\"\r\n [class.negative-figure]=\"totals[column.key].startsWith('-')\">\r\n <ng-container *ngIf=\"totals[column.key] !== undefined\">\r\n {{ totals[column.key] }}\r\n </ng-container>\r\n </td>\r\n <th class=\"mat-footer-cell figure\">{{ totals['_grand'] }}</th>\r\n </tr>\r\n </tfoot>\r\n</table>\r\n<ng-template #zero>0</ng-template>\r\n", styles: [".explorable{cursor:pointer}.cube-table{width:100%;table-layout:fixed}.cube-table th{cursor:default}.cube-table th.figure{font-weight:500}.cube-table td,.cube-table th{padding-right:8px}\n"] }]
|
15621
15639
|
}], ctorParameters: function () { return [{ type: PromptService }, { type: CubeService }, { type: SessionService }, { type: TranslateService }, { type: DatasourceService }]; }, propDecorators: { tableElement: [{
|
15622
15640
|
type: ViewChild,
|
15623
15641
|
args: ['table']
|
@@ -20142,9 +20160,11 @@ class ReportComponent {
|
|
20142
20160
|
this._route.params.pipe(takeUntil(this._destroy)).subscribe(p => {
|
20143
20161
|
const id = p['id'];
|
20144
20162
|
this.report = this._session.profile.reports.find(r => r.name === id);
|
20163
|
+
this.hasFilters = (this.report.arguments && this.report.arguments.length > 0) || this.report.argumentsTemplate !== undefined;
|
20145
20164
|
this._cd.detectChanges();
|
20146
20165
|
this._title.set(this.report.title);
|
20147
20166
|
this.args = this._fromQueryArgs(this._route.snapshot.queryParams);
|
20167
|
+
this.anyFilters = Object.keys(this.args).length > 0;
|
20148
20168
|
this._navigating = true;
|
20149
20169
|
this.viewer.execute();
|
20150
20170
|
});
|
@@ -20160,6 +20180,12 @@ class ReportComponent {
|
|
20160
20180
|
guide() {
|
20161
20181
|
this._guide.start(this.report.guide);
|
20162
20182
|
}
|
20183
|
+
clearFilter() {
|
20184
|
+
this.args = {};
|
20185
|
+
this.anyFilters = false;
|
20186
|
+
this._cd.detectChanges();
|
20187
|
+
this.viewer.execute();
|
20188
|
+
}
|
20163
20189
|
/**
|
20164
20190
|
*
|
20165
20191
|
* @param qargs
|
@@ -20211,10 +20237,10 @@ class ReportComponent {
|
|
20211
20237
|
}
|
20212
20238
|
}
|
20213
20239
|
ReportComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ReportComponent, deps: [{ token: WindowTitleService }, { token: i1$6.ActivatedRoute }, { token: SessionService }, { token: i0.ChangeDetectorRef }, { token: PromptService }, { token: GuideService }], target: i0.ɵɵFactoryTarget.Component });
|
20214
|
-
ReportComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: ReportComponent, selector: "bizdoc-report", viewQueries: [{ propertyName: "filter", first: true, predicate: MatSidenav, descendants: true, static: true }, { propertyName: "viewer", first: true, predicate: ReportViewerComponent, descendants: true, static: true }], ngImport: i0, template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"viewer.execute()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"viewer.exportExcel()\" bizdocTooltip=\"{{'Download' | translate}}\"><mat-icon>save_alt</mat-icon></button>\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\" *ngIf=\"report.guide\"><mat-icon>help_outline</mat-icon></button>\r\n <button mat-icon-button (click)=\"
|
20240
|
+
ReportComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: ReportComponent, selector: "bizdoc-report", viewQueries: [{ propertyName: "filter", first: true, predicate: MatSidenav, descendants: true, static: true }, { propertyName: "viewer", first: true, predicate: ReportViewerComponent, descendants: true, static: true }], ngImport: i0, template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"viewer.execute()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"viewer.exportExcel()\" bizdocTooltip=\"{{'Download' | translate}}\"><mat-icon>save_alt</mat-icon></button>\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\" *ngIf=\"report.guide\"><mat-icon>help_outline</mat-icon></button>\r\n <button mat-icon-button (click)=\"clearFilter()\" [bizdocTooltip]=\"'Clear' | translate\" *ngIf=\"hasFilters\" [disabled]=\"!anyFilters\"><mat-icon>clear_all</mat-icon></button>\r\n <button mat-icon-button (click)=\"filter($event)\" bizdocTooltip=\"{{'Filter' | translate}}\" *ngIf=\"hasFilters\"><mat-icon [class.filled]=\"anyFilters\">filter_alt</mat-icon></button>\r\n</mat-toolbar>\r\n<mat-sidenav-container class=\"page-container\">\r\n <mat-sidenav-content>\r\n <bizdoc-report-viewer [report]=\"report\" [args]=\"args\"></bizdoc-report-viewer>\r\n </mat-sidenav-content>\r\n <mat-sidenav mode=\"over\" opened=\"false\" #filter position=\"end\">\r\n <bizdoc-report-arguments *ngIf=\"viewer.reportRef\" [args]=\"args\" (argsChange)=\"argsChange($event)\" [reportRef]=\"viewer.reportRef\"\r\n [template]=\"report.argumentsTemplate\" [arguments]=\"report.arguments\"></bizdoc-report-arguments>\r\n </mat-sidenav>\r\n</mat-sidenav-container>\r\n", styles: [".contents{display:flex;flex-direction:column}\n"], components: [{ type: i7$3.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i7$1.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$4.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { type: i9$4.MatSidenavContent, selector: "mat-sidenav-content" }, { type: ReportViewerComponent, selector: "bizdoc-report-viewer", inputs: ["report", "args"] }, { type: i9$4.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { type: ReportArgumentsComponent, selector: "bizdoc-report-arguments", inputs: ["reportRef", "template", "arguments", "args"], outputs: ["argsChange"] }], directives: [{ type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: MatIconAnimate, selector: "[matAnimate]" }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": TranslatePipe } });
|
20215
20241
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ReportComponent, decorators: [{
|
20216
20242
|
type: Component,
|
20217
|
-
args: [{ selector: 'bizdoc-report', template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"viewer.execute()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"viewer.exportExcel()\" bizdocTooltip=\"{{'Download' | translate}}\"><mat-icon>save_alt</mat-icon></button>\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\" *ngIf=\"report.guide\"><mat-icon>help_outline</mat-icon></button>\r\n <button mat-icon-button (click)=\"
|
20243
|
+
args: [{ selector: 'bizdoc-report', template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"viewer.execute()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"viewer.exportExcel()\" bizdocTooltip=\"{{'Download' | translate}}\"><mat-icon>save_alt</mat-icon></button>\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\" *ngIf=\"report.guide\"><mat-icon>help_outline</mat-icon></button>\r\n <button mat-icon-button (click)=\"clearFilter()\" [bizdocTooltip]=\"'Clear' | translate\" *ngIf=\"hasFilters\" [disabled]=\"!anyFilters\"><mat-icon>clear_all</mat-icon></button>\r\n <button mat-icon-button (click)=\"filter($event)\" bizdocTooltip=\"{{'Filter' | translate}}\" *ngIf=\"hasFilters\"><mat-icon [class.filled]=\"anyFilters\">filter_alt</mat-icon></button>\r\n</mat-toolbar>\r\n<mat-sidenav-container class=\"page-container\">\r\n <mat-sidenav-content>\r\n <bizdoc-report-viewer [report]=\"report\" [args]=\"args\"></bizdoc-report-viewer>\r\n </mat-sidenav-content>\r\n <mat-sidenav mode=\"over\" opened=\"false\" #filter position=\"end\">\r\n <bizdoc-report-arguments *ngIf=\"viewer.reportRef\" [args]=\"args\" (argsChange)=\"argsChange($event)\" [reportRef]=\"viewer.reportRef\"\r\n [template]=\"report.argumentsTemplate\" [arguments]=\"report.arguments\"></bizdoc-report-arguments>\r\n </mat-sidenav>\r\n</mat-sidenav-container>\r\n", styles: [".contents{display:flex;flex-direction:column}\n"] }]
|
20218
20244
|
}], ctorParameters: function () { return [{ type: WindowTitleService }, { type: i1$6.ActivatedRoute }, { type: SessionService }, { type: i0.ChangeDetectorRef }, { type: PromptService }, { type: GuideService }]; }, propDecorators: { filter: [{
|
20219
20245
|
type: ViewChild,
|
20220
20246
|
args: [MatSidenav, { static: true }]
|