@bizdoc/core 1.13.22 → 1.13.26
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/assets/i18n/cldr-data/main/ar/ca-buddhist.json +530 -530
- package/assets/i18n/cldr-data/main/ar/ca-chinese.json +1254 -1254
- package/assets/i18n/cldr-data/main/ar/ca-coptic.json +539 -539
- package/assets/i18n/cldr-data/main/ar/ca-dangi.json +1254 -1254
- package/assets/i18n/cldr-data/main/ar/ca-ethiopic-amete-alem.json +536 -536
- package/assets/i18n/cldr-data/main/ar/ca-ethiopic.json +539 -539
- package/assets/i18n/cldr-data/main/ar/ca-generic.json +533 -533
- package/assets/i18n/cldr-data/main/ar/ca-gregorian.json +557 -557
- package/assets/i18n/cldr-data/main/ar/ca-hebrew.json +542 -542
- package/assets/i18n/cldr-data/main/ar/ca-indian.json +530 -530
- package/assets/i18n/cldr-data/main/ar/ca-islamic-civil.json +530 -530
- package/assets/i18n/cldr-data/main/ar/ca-islamic-rgsa.json +530 -530
- package/assets/i18n/cldr-data/main/ar/ca-islamic-tbla.json +530 -530
- package/assets/i18n/cldr-data/main/ar/ca-islamic-umalqura.json +530 -530
- package/assets/i18n/cldr-data/main/ar/ca-islamic.json +530 -530
- package/assets/i18n/cldr-data/main/ar/ca-japanese.json +1238 -1238
- package/assets/i18n/cldr-data/main/ar/ca-persian.json +530 -530
- package/assets/i18n/cldr-data/main/ar/ca-roc.json +533 -533
- package/assets/i18n/cldr-data/main/ar/characters.json +52 -52
- package/assets/i18n/cldr-data/main/ar/currencies.json +2306 -2306
- package/assets/i18n/cldr-data/main/ar/dateFields.json +1039 -1039
- package/assets/i18n/cldr-data/main/ar/delimiters.json +18 -18
- package/assets/i18n/cldr-data/main/ar/languages.json +556 -556
- package/assets/i18n/cldr-data/main/ar/layout.json +18 -18
- package/assets/i18n/cldr-data/main/ar/listPatterns.json +68 -68
- package/assets/i18n/cldr-data/main/ar/localeDisplayNames.json +230 -230
- package/assets/i18n/cldr-data/main/ar/measurementSystemNames.json +19 -19
- package/assets/i18n/cldr-data/main/ar/numbers.json +511 -511
- package/assets/i18n/cldr-data/main/ar/posix.json +18 -18
- package/assets/i18n/cldr-data/main/ar/scripts.json +202 -202
- package/assets/i18n/cldr-data/main/ar/territories.json +324 -324
- package/assets/i18n/cldr-data/main/ar/timeZoneNames.json +2268 -2268
- package/assets/i18n/cldr-data/main/ar/units.json +4587 -4587
- package/assets/i18n/cldr-data/main/ar/variants.json +119 -119
- package/assets/i18n/cldr-data/main/de/ca-buddhist.json +530 -530
- package/assets/i18n/cldr-data/main/de/ca-chinese.json +1254 -1254
- package/assets/i18n/cldr-data/main/de/ca-coptic.json +539 -539
- package/assets/i18n/cldr-data/main/de/ca-dangi.json +1254 -1254
- package/assets/i18n/cldr-data/main/de/ca-ethiopic-amete-alem.json +536 -536
- package/assets/i18n/cldr-data/main/de/ca-ethiopic.json +539 -539
- package/assets/i18n/cldr-data/main/de/ca-generic.json +533 -533
- package/assets/i18n/cldr-data/main/de/ca-gregorian.json +551 -551
- package/assets/i18n/cldr-data/main/de/ca-hebrew.json +542 -542
- package/assets/i18n/cldr-data/main/de/ca-indian.json +530 -530
- package/assets/i18n/cldr-data/main/de/ca-islamic-civil.json +530 -530
- package/assets/i18n/cldr-data/main/de/ca-islamic-rgsa.json +530 -530
- package/assets/i18n/cldr-data/main/de/ca-islamic-tbla.json +530 -530
- package/assets/i18n/cldr-data/main/de/ca-islamic-umalqura.json +530 -530
- package/assets/i18n/cldr-data/main/de/ca-islamic.json +530 -530
- package/assets/i18n/cldr-data/main/de/ca-japanese.json +1238 -1238
- package/assets/i18n/cldr-data/main/de/ca-persian.json +530 -530
- package/assets/i18n/cldr-data/main/de/ca-roc.json +533 -533
- package/assets/i18n/cldr-data/main/de/characters.json +52 -52
- package/assets/i18n/cldr-data/main/de/contextTransforms.json +18 -18
- package/assets/i18n/cldr-data/main/de/currencies.json +1932 -1932
- package/assets/i18n/cldr-data/main/de/dateFields.json +679 -679
- package/assets/i18n/cldr-data/main/de/delimiters.json +18 -18
- package/assets/i18n/cldr-data/main/de/languages.json +640 -640
- package/assets/i18n/cldr-data/main/de/layout.json +18 -18
- package/assets/i18n/cldr-data/main/de/listPatterns.json +68 -68
- package/assets/i18n/cldr-data/main/de/localeDisplayNames.json +230 -230
- package/assets/i18n/cldr-data/main/de/measurementSystemNames.json +19 -19
- package/assets/i18n/cldr-data/main/de/numbers.json +155 -155
- package/assets/i18n/cldr-data/main/de/posix.json +18 -18
- package/assets/i18n/cldr-data/main/de/scripts.json +209 -209
- package/assets/i18n/cldr-data/main/de/territories.json +324 -324
- package/assets/i18n/cldr-data/main/de/timeZoneNames.json +2332 -2332
- package/assets/i18n/cldr-data/main/de/units.json +2546 -2546
- package/assets/i18n/cldr-data/main/de/variants.json +119 -119
- package/assets/i18n/cldr-data/main/ru/ca-buddhist.json +524 -524
- package/assets/i18n/cldr-data/main/ru/ca-chinese.json +1248 -1248
- package/assets/i18n/cldr-data/main/ru/ca-coptic.json +533 -533
- package/assets/i18n/cldr-data/main/ru/ca-dangi.json +1248 -1248
- package/assets/i18n/cldr-data/main/ru/ca-ethiopic-amete-alem.json +530 -530
- package/assets/i18n/cldr-data/main/ru/ca-ethiopic.json +533 -533
- package/assets/i18n/cldr-data/main/ru/ca-generic.json +527 -527
- package/assets/i18n/cldr-data/main/ru/ca-gregorian.json +546 -546
- package/assets/i18n/cldr-data/main/ru/ca-hebrew.json +536 -536
- package/assets/i18n/cldr-data/main/ru/ca-indian.json +524 -524
- package/assets/i18n/cldr-data/main/ru/ca-islamic-civil.json +524 -524
- package/assets/i18n/cldr-data/main/ru/ca-islamic-rgsa.json +524 -524
- package/assets/i18n/cldr-data/main/ru/ca-islamic-tbla.json +524 -524
- package/assets/i18n/cldr-data/main/ru/ca-islamic-umalqura.json +524 -524
- package/assets/i18n/cldr-data/main/ru/ca-islamic.json +524 -524
- package/assets/i18n/cldr-data/main/ru/ca-japanese.json +1232 -1232
- package/assets/i18n/cldr-data/main/ru/ca-persian.json +524 -524
- package/assets/i18n/cldr-data/main/ru/ca-roc.json +527 -527
- package/assets/i18n/cldr-data/main/ru/characters.json +52 -52
- package/assets/i18n/cldr-data/main/ru/contextTransforms.json +62 -62
- package/assets/i18n/cldr-data/main/ru/currencies.json +2001 -2001
- package/assets/i18n/cldr-data/main/ru/dateFields.json +859 -859
- package/assets/i18n/cldr-data/main/ru/delimiters.json +18 -18
- package/assets/i18n/cldr-data/main/ru/languages.json +557 -557
- package/assets/i18n/cldr-data/main/ru/layout.json +18 -18
- package/assets/i18n/cldr-data/main/ru/listPatterns.json +68 -68
- package/assets/i18n/cldr-data/main/ru/localeDisplayNames.json +230 -230
- package/assets/i18n/cldr-data/main/ru/measurementSystemNames.json +19 -19
- package/assets/i18n/cldr-data/main/ru/numbers.json +231 -231
- package/assets/i18n/cldr-data/main/ru/posix.json +18 -18
- package/assets/i18n/cldr-data/main/ru/scripts.json +209 -209
- package/assets/i18n/cldr-data/main/ru/territories.json +324 -324
- package/assets/i18n/cldr-data/main/ru/timeZoneNames.json +2317 -2317
- package/assets/i18n/cldr-data/main/ru/units.json +3647 -3647
- package/assets/i18n/cldr-data/main/ru/variants.json +119 -119
- package/esm2020/lib/compose/attachments/preview/attachment-preview.component.mjs +6 -6
- package/esm2020/lib/core/controls/file.input.mjs +3 -3
- package/esm2020/lib/core/http.interceptor.mjs +3 -3
- package/esm2020/lib/core/info/attachment-info.service.mjs +1 -1
- package/esm2020/lib/core/mailbox.service.mjs +3 -3
- 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/accum/accum.component.mjs +3 -3
- package/esm2020/lib/cube/chart/chart.component.mjs +3 -3
- package/esm2020/lib/cube/cube.service.mjs +12 -1
- package/esm2020/lib/cube/grid/grid.component.mjs +3 -2
- package/esm2020/lib/cube/grid/spreadsheet.component.mjs +11 -8
- package/esm2020/lib/cube/matrix/table.component.mjs +7 -4
- package/esm2020/lib/cube/parallel/parallel.component.mjs +3 -3
- package/esm2020/lib/cube/pivot/pivot.component.mjs +3 -3
- package/esm2020/lib/cube/sum/sum.component.mjs +21 -21
- 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/esm2020/lib/views/cube/matrix.component.mjs +1 -1
- package/fesm2015/bizdoc-core.mjs +103 -66
- package/fesm2015/bizdoc-core.mjs.map +1 -1
- package/fesm2020/bizdoc-core.mjs +103 -66
- package/fesm2020/bizdoc-core.mjs.map +1 -1
- package/lib/core/mailbox.service.d.ts +1 -1
- package/lib/core/translate.service.d.ts +3 -0
- package/lib/core/translations.d.ts +13 -7
- package/lib/cube/cube.service.d.ts +2 -1
- package/lib/cube/grid/spreadsheet.component.d.ts +0 -1
- package/lib/cube/sum/sum.component.d.ts +4 -1
- package/lib/reports/report.mobile.component.d.ts +3 -0
- package/lib/reports/report.pane.component.d.ts +1 -1
- package/package.json +2 -2
package/fesm2015/bizdoc-core.mjs
CHANGED
@@ -28,7 +28,13 @@ import * as i2$1 from '@angular/cdk/a11y';
|
|
28
28
|
import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
|
29
29
|
import { L10n, setCulture, loadCldr, setCurrencyCode, Internationalization, enableRtl } from '@syncfusion/ej2-base';
|
30
30
|
import 'dayjs/locale/he';
|
31
|
+
import 'dayjs/locale/de';
|
32
|
+
import 'dayjs/locale/ru';
|
33
|
+
import 'dayjs/locale/ar';
|
31
34
|
import localeHe from '@angular/common/locales/he';
|
35
|
+
import localeAr from '@angular/common/locales/ar';
|
36
|
+
import localeRu from '@angular/common/locales/ru';
|
37
|
+
import localeDe from '@angular/common/locales/de';
|
32
38
|
import * as i8 from '@angular/material/icon';
|
33
39
|
import { MatIconModule } from '@angular/material/icon';
|
34
40
|
import * as brace from 'brace';
|
@@ -999,7 +1005,7 @@ const THEMES = [
|
|
999
1005
|
{ name: 'dark', primary: 'deepPurple', color: '#404041', accent: 'amber', dark: true },
|
1000
1006
|
{ name: 'brown', primary: 'brown', color: '#795548', accent: 'grey' }
|
1001
1007
|
];
|
1002
|
-
const SUPPORTED_LANGUAGES = ['en
|
1008
|
+
const SUPPORTED_LANGUAGES = ['en', 'he', 'de', 'ar', 'ru'], RTL_LANGUALGES = ['he', 'ar'];
|
1003
1009
|
class SessionService {
|
1004
1010
|
constructor(_config, _http, _cookies, _hub) {
|
1005
1011
|
this._config = _config;
|
@@ -1172,14 +1178,16 @@ class SessionService {
|
|
1172
1178
|
lang = navigator.languages[i];
|
1173
1179
|
if (this.languages.indexOf(lang) > -1)
|
1174
1180
|
return lang;
|
1181
|
+
if (lang.length > 2) {
|
1182
|
+
lang = lang.substring(0, 2).toLowerCase();
|
1183
|
+
if (this.languages.indexOf(lang) > -1)
|
1184
|
+
return lang;
|
1185
|
+
lang = this.languages.find(l => l.startsWith(lang));
|
1186
|
+
if (lang)
|
1187
|
+
return lang;
|
1188
|
+
}
|
1175
1189
|
}
|
1176
|
-
|
1177
|
-
const culture = navigator.languages[i].substring(0, 2).toLowerCase();
|
1178
|
-
lang = this.languages.find(l => l.startsWith(culture));
|
1179
|
-
if (lang)
|
1180
|
-
break;
|
1181
|
-
}
|
1182
|
-
return lang;
|
1190
|
+
return null;
|
1183
1191
|
}
|
1184
1192
|
/**
|
1185
1193
|
*
|
@@ -1253,9 +1261,9 @@ class MailboxService {
|
|
1253
1261
|
folder.count++;
|
1254
1262
|
});
|
1255
1263
|
}
|
1256
|
-
formatDownloadUrl(documentId, fileId) {
|
1264
|
+
formatDownloadUrl(documentId, fileId, inline) {
|
1257
1265
|
const token = this._auth.getAccessToken();
|
1258
|
-
return `/api/attachments/${documentId}/${fileId}?access_token=${token}`;
|
1266
|
+
return `/api/attachments/${documentId}/${fileId}?access_token=${token}&inline=${inline ? true : false}`;
|
1259
1267
|
}
|
1260
1268
|
download(documentId, fileId) {
|
1261
1269
|
//new Observable<any>(observe => {
|
@@ -1846,7 +1854,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
1846
1854
|
args: [MatSlideToggle]
|
1847
1855
|
}] } });
|
1848
1856
|
|
1849
|
-
const
|
1857
|
+
const L18N_STRINGS = {
|
1850
1858
|
'en': {
|
1851
1859
|
pivotview: {
|
1852
1860
|
filterAxisPrompt: '',
|
@@ -1856,6 +1864,8 @@ const SYNCFUSION_L18N = {
|
|
1856
1864
|
}
|
1857
1865
|
},
|
1858
1866
|
'de': {},
|
1867
|
+
'ar': {},
|
1868
|
+
'ru': {},
|
1859
1869
|
'he': {
|
1860
1870
|
'richtexteditor': {
|
1861
1871
|
alignments: "יישור",
|
@@ -1926,8 +1936,10 @@ const SYNCFUSION_L18N = {
|
|
1926
1936
|
}
|
1927
1937
|
};
|
1928
1938
|
const STRINGS = {
|
1929
|
-
'de
|
1930
|
-
'
|
1939
|
+
'de': {},
|
1940
|
+
'ar': {},
|
1941
|
+
'ru': {},
|
1942
|
+
'en': {
|
1931
1943
|
Editing: '{0} editing...',
|
1932
1944
|
CheckOut: 'Check out',
|
1933
1945
|
CheckIn: 'Check in',
|
@@ -2157,9 +2169,11 @@ const STRINGS = {
|
|
2157
2169
|
NewCommentsCount: '{0} comment(s) <strong>{1}</strong> new',
|
2158
2170
|
None: '- None -',
|
2159
2171
|
All: '- All -',
|
2160
|
-
'de
|
2161
|
-
'en
|
2162
|
-
'he
|
2172
|
+
'de': 'Deutsch',
|
2173
|
+
'en': 'English',
|
2174
|
+
'he': 'עברית',
|
2175
|
+
'ar': 'اللغة العربية',
|
2176
|
+
'ru': 'русский язык',
|
2163
2177
|
StartTour: 'Start tour',
|
2164
2178
|
UploadOk: '{0} uploaded',
|
2165
2179
|
UploadVersionOk: '{0} updated',
|
@@ -2385,7 +2399,7 @@ const STRINGS = {
|
|
2385
2399
|
Matrix: 'Matrix',
|
2386
2400
|
Working: 'Working on it...'
|
2387
2401
|
},
|
2388
|
-
'he
|
2402
|
+
'he': {
|
2389
2403
|
Editing: '{0} עורך/ת...',
|
2390
2404
|
EditingMale: '{0} עורך...',
|
2391
2405
|
EditingFemale: '{0} עורכת...',
|
@@ -2953,8 +2967,7 @@ const STRINGS = {
|
|
2953
2967
|
}
|
2954
2968
|
};
|
2955
2969
|
|
2956
|
-
const
|
2957
|
-
L10n.load(SYNCFUSION_L18N);
|
2970
|
+
const CLDR_FILES$1 = ['cldr-data/main/{0}/ca-gregorian.json', 'cldr-data/main/{0}/numbers.json', 'cldr-data/main/{0}/timeZoneNames.json'];
|
2958
2971
|
function TranslateProviderFactory(provider) {
|
2959
2972
|
return () => provider.cldr(provider.culture, CLDR_FILES$1);
|
2960
2973
|
}
|
@@ -2962,15 +2975,18 @@ class TranslateService {
|
|
2962
2975
|
constructor(_session, _http) {
|
2963
2976
|
this._session = _session;
|
2964
2977
|
this._http = _http;
|
2965
|
-
TranslateService.resource = STRINGS['en
|
2966
|
-
if (
|
2967
|
-
STRINGS[_session.language]
|
2968
|
-
Object.assign(TranslateService.resource, STRINGS[_session.language]);
|
2978
|
+
TranslateService.resource = STRINGS['en'];
|
2979
|
+
if ('en' !== _session.language) {
|
2980
|
+
Object.assign(TranslateService.resource, STRINGS[_session.language]);
|
2969
2981
|
const culture = _session.language.split('-')[0];
|
2970
2982
|
dayjs.locale(culture);
|
2971
2983
|
// syncfusion
|
2984
|
+
L10n.load(L18N_STRINGS);
|
2972
2985
|
setCulture(culture);
|
2973
|
-
registerLocaleData(localeHe, 'he');
|
2986
|
+
culture === 'he' && registerLocaleData(localeHe, 'he');
|
2987
|
+
culture === 'ru' && registerLocaleData(localeRu, 'ru');
|
2988
|
+
culture === 'ar' && registerLocaleData(localeAr, 'ar');
|
2989
|
+
culture === 'de' && registerLocaleData(localeDe, 'de');
|
2974
2990
|
}
|
2975
2991
|
;
|
2976
2992
|
_session.loaded.subscribe(() => this._gender = this._session.gender);
|
@@ -2987,7 +3003,7 @@ class TranslateService {
|
|
2987
3003
|
return this._session.language.split('-')[0];
|
2988
3004
|
}
|
2989
3005
|
cldr(culture, files) {
|
2990
|
-
if (
|
3006
|
+
if ('en' === this._session.language)
|
2991
3007
|
return Promise.resolve();
|
2992
3008
|
const observables = files.map(f => this._http.get('/assets/i18n/' + f.replace('{0}', culture)).pipe(tap(loadCldr)));
|
2993
3009
|
return forkJoin(observables).toPromise();
|
@@ -4690,7 +4706,7 @@ class AttachmentPreview {
|
|
4690
4706
|
this._afterClosed = new Subject();
|
4691
4707
|
this.dir = _directionality.value;
|
4692
4708
|
this.isImage = isImage(this.data.file.contentType);
|
4693
|
-
this.objectData = sanitizer.bypassSecurityTrustResourceUrl(this._url());
|
4709
|
+
this.objectData = sanitizer.bypassSecurityTrustResourceUrl(this._url(true));
|
4694
4710
|
this.beforeClose().subscribe(() => this.slideDown = 'leave');
|
4695
4711
|
}
|
4696
4712
|
resize() {
|
@@ -4708,8 +4724,8 @@ class AttachmentPreview {
|
|
4708
4724
|
download() {
|
4709
4725
|
location.assign(this._url());
|
4710
4726
|
}
|
4711
|
-
_url() {
|
4712
|
-
return this._service.formatDownloadUrl(this.data.documentId, this.data.file.id);
|
4727
|
+
_url(inline) {
|
4728
|
+
return this._service.formatDownloadUrl(this.data.documentId, this.data.file.id, inline);
|
4713
4729
|
}
|
4714
4730
|
rotate() {
|
4715
4731
|
const elem = (this.isImage ? this.img : this.obj).nativeElement;
|
@@ -4752,7 +4768,7 @@ class AttachmentPreview {
|
|
4752
4768
|
}
|
4753
4769
|
}
|
4754
4770
|
AttachmentPreview.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AttachmentPreview, deps: [{ token: i7$2.Directionality }, { token: i0.Renderer2 }, { token: FILE_PREVIEW_DIALOG_DATA }, { token: i1$5.DomSanitizer }, { token: MailboxService }, { token: i1$4.OverlayRef }], target: i0.ɵɵFactoryTarget.Component });
|
4755
|
-
AttachmentPreview.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: AttachmentPreview, selector: "bizdoc-attachment-preview", host: { listeners: { "document:resize": "resize()", "document:keydown.escape": "close()" } }, viewQueries: [{ propertyName: "obj", first: true, predicate: ["obj"], descendants: true }, { propertyName: "img", first: true, predicate: ["img"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"overlay-content\" [@slideContent]=\"animationState\" (@slideContent.start)=\"onAnimationStart($event)\"\r\n
|
4771
|
+
AttachmentPreview.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: AttachmentPreview, selector: "bizdoc-attachment-preview", host: { listeners: { "document:resize": "resize()", "document:keydown.escape": "close()" } }, viewQueries: [{ propertyName: "obj", first: true, predicate: ["obj"], descendants: true }, { propertyName: "img", first: true, predicate: ["img"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"overlay-content\" [@slideContent]=\"animationState\" (@slideContent.start)=\"onAnimationStart($event)\"\r\n [dir]=\"dir\" (@slideContent.done)=\"onAnimationDone($event)\">\r\n <div class=\"toolbar-wrapper\" fxLayout=\"row\" [@slideDown]=\"slideDown\" *ngIf=\"!loading\">\r\n <button mat-icon-button (click)=\"close()\" bizdocTooltip=\"{{'Back' | translate}}\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\r\n <span class=\"mat-body-1\">{{data.file.fileName}}</span>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"rotate()\" bizdocTooltip=\"{{'Rotate' | translate }}\"><mat-icon>screen_rotation</mat-icon></button>\r\n <button mat-icon-button (click)=\"download()\" bizdocTooltip=\"{{'Download' | translate}}\"><mat-icon>save_alt</mat-icon></button>\r\n </div>\r\n <div class=\"spinner-wrapper\" *ngIf=\"loading\">\r\n <mat-spinner></mat-spinner>\r\n </div>\r\n <object (load)=\"onLoad($event)\" [data]=\"objectData\" [type]=\"data.file.contentType\" *ngIf=\"!isImage\" #obj width=\"250\"\r\n height=\"200\">\r\n </object>\r\n <img *ngIf=\"isImage\" (load)=\"onLoad($event)\" [style.opacity]=\"loading ? 0 : 1\" [@fade]=\"loading ? 'fadeOut' : 'fadeIn'\" [src]=\"objectData\" #img>\r\n</div>\r\n", styles: [":host{display:flex;flex-direction:column;align-items:center}.spinner-wrapper{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:-1}img{width:100%;max-width:500px;height:auto}.overlay-content{padding:1em}.overlay-content .toolbar-wrapper{align-items:center;color:#f5f5f5}.divider{flex:1 1 auto}\n"], components: [{ 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: i8$1.MatSpinner, selector: "mat-spinner", inputs: ["color"] }], directives: [{ type: i7$2.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6$1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }], pipes: { "translate": TranslatePipe }, animations: [
|
4756
4772
|
trigger('fade', [
|
4757
4773
|
state('fadeOut', style({ opacity: 0 })),
|
4758
4774
|
state('fadeIn', style({ opacity: 1 })),
|
@@ -4791,7 +4807,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
4791
4807
|
state('leave', style({ transform: 'translate3d(0, 25%, 0)', opacity: 0 })),
|
4792
4808
|
transition('* => *', animate(ANIMATION_TIMINGS)),
|
4793
4809
|
])
|
4794
|
-
], template: "<div class=\"overlay-content\" [@slideContent]=\"animationState\" (@slideContent.start)=\"onAnimationStart($event)\"\r\n
|
4810
|
+
], template: "<div class=\"overlay-content\" [@slideContent]=\"animationState\" (@slideContent.start)=\"onAnimationStart($event)\"\r\n [dir]=\"dir\" (@slideContent.done)=\"onAnimationDone($event)\">\r\n <div class=\"toolbar-wrapper\" fxLayout=\"row\" [@slideDown]=\"slideDown\" *ngIf=\"!loading\">\r\n <button mat-icon-button (click)=\"close()\" bizdocTooltip=\"{{'Back' | translate}}\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\r\n <span class=\"mat-body-1\">{{data.file.fileName}}</span>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"rotate()\" bizdocTooltip=\"{{'Rotate' | translate }}\"><mat-icon>screen_rotation</mat-icon></button>\r\n <button mat-icon-button (click)=\"download()\" bizdocTooltip=\"{{'Download' | translate}}\"><mat-icon>save_alt</mat-icon></button>\r\n </div>\r\n <div class=\"spinner-wrapper\" *ngIf=\"loading\">\r\n <mat-spinner></mat-spinner>\r\n </div>\r\n <object (load)=\"onLoad($event)\" [data]=\"objectData\" [type]=\"data.file.contentType\" *ngIf=\"!isImage\" #obj width=\"250\"\r\n height=\"200\">\r\n </object>\r\n <img *ngIf=\"isImage\" (load)=\"onLoad($event)\" [style.opacity]=\"loading ? 0 : 1\" [@fade]=\"loading ? 'fadeOut' : 'fadeIn'\" [src]=\"objectData\" #img>\r\n</div>\r\n", styles: [":host{display:flex;flex-direction:column;align-items:center}.spinner-wrapper{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:-1}img{width:100%;max-width:500px;height:auto}.overlay-content{padding:1em}.overlay-content .toolbar-wrapper{align-items:center;color:#f5f5f5}.divider{flex:1 1 auto}\n"] }]
|
4795
4811
|
}], ctorParameters: function () {
|
4796
4812
|
return [{ type: i7$2.Directionality }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
|
4797
4813
|
type: Inject,
|
@@ -5371,10 +5387,10 @@ class FileInput {
|
|
5371
5387
|
}
|
5372
5388
|
FileInput.nextId = 0;
|
5373
5389
|
FileInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: FileInput, deps: [{ token: i0.ElementRef }, { token: MailboxService }, { token: i1$5.DomSanitizer }, { token: AttachmentInfo }, { token: TranslateService }, { token: SessionService }, { token: PromptService }, { token: i1$2.NgControl, optional: true, self: true }, { token: DOCUMENT_MODEL }], target: i0.ɵɵFactoryTarget.Component });
|
5374
|
-
FileInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: FileInput, selector: "bizdoc-file-upload", inputs: { multiple: "multiple", accept: "accept", icon: "icon", value: "value", placeholder: "placeholder", required: "required", disabled: "disabled" }, host: { listeners: { "document:drop": "handleDocumentDrop($event)", "drop": "handleDrop($event)", "dragenter": "handleEnter($event)", "dragleave": "handleLeave($event)", "dragover": "handleOver($event)" }, properties: { "id": "this.id", "attr.aria-describedby": "this.describedBy" }, classAttribute: "file-dropable" }, viewQueries: [{ propertyName: "_input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<button mat-button *ngIf=\"!items; else preview\" (click)=\"prompt()\">\r\n <mat-icon class=\"filled\">{{icon}}</mat-icon>\r\n <span class=\"mat-h3\">{{placeholder}}</span>\r\n</button>\r\n<input type=\"file\" #input\r\n [accept]=accept [multiple]=multiple (change)='_change($event)' style=\"display: none\" />\r\n<ng-template #preview>\r\n <div *ngFor='let a of items' class=\"attachment-item\"\r\n [class.deleted]=\"a.deleted\" [class.failed]=\"a.failed\"\r\n [progressIndicator]=\"a.progress\">\r\n <img *ngIf=\"a.isImage\" [src]=\"a.url\" (click)=\"openPreview(a)\" height=\"80\" class=\"file-preview\">\r\n <div *ngIf=\"a.hasPreview && !a.isImage\" fxLayout=\"column\" class=\"file-preview\">\r\n <button mat-icon-button (click)=\"openPreview(a)\" [bizdocTooltip]=\"'Preview'|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">find_in_page</mat-icon></button>\r\n <span>.{{a.fileExt}}</span>\r\n </div>\r\n <mat-icon *ngIf=\"a.icon\" [svgIcon]=\"a.icon\" [inline]=\"true\"></mat-icon>\r\n <div class=\"file-overlay row\">\r\n <span class=\"filename\">{{a.fileName}}</span>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button class=\"options\" [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'Options' | translate\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n </div>\r\n <mat-menu #menu>\r\n <ng-container *ngIf=\"!a.failed\">\r\n <ng-container *ngIf=\"canEdit(a) && !a.failed\">\r\n <ng-container *ngIf=\"!a.checkedOut\">\r\n <button mat-menu-item (click)=\"checkOut(a)\">{{\"CheckOut\" | translate}}</button>\r\n <button mat-menu-item (click)=\"prompt()\">{{\"Add\" | translate}}</button>\r\n </ng-container>\r\n <button mat-menu-item (click)=\"checkIn(a)\" *ngIf=\"a.checkedOut\">{{\"CheckIn\" | translate}}</button>\r\n </ng-container>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"download(a)\">{{\"Download\" | translate}}</button>\r\n <button mat-menu-item *ngIf=\"canPreview(a)\" (click)=\"openPreview(a)\"><mat-icon>landscape</mat-icon> {{\"Preview\" | translate}}</button>\r\n <ng-container *ngIf=\"hasVersion(a)\">\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item *ngFor=\"let v of getVersions(a)\" (click)=\"previewOrDownload(v)\">{{v.time | amCalendar}}</button>\r\n </ng-container>\r\n <ng-container *ngIf=\"canEdit(a)\">\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"discard(a)\">{{\"Discard\" | translate}}</button>\r\n </ng-container>\r\n </ng-container>\r\n <button mat-menu-item (click)=\"cancel(a)\" *ngIf=\"a.failed\">{{\"Cancel\" | translate}}</button>\r\n </mat-menu>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{display:flex}.attachment-item{height:80px;position:relative}.attachment-item img{cursor:zoom-in}.attachment-item .file-preview{position:absolute}.attachment-item .file-overlay{position:relative;height:inherit}.attachment-item .file-overlay .filename{font-size:x-small;cursor:pointer;background:rgba(255,255,255,.4);align-self:flex-end}.attachment-item .file-overlay:hover .filename{background:white;opacity:.5}\n"], components: [{ 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: i12$2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: ProgressDirective, selector: "[progressIndicator]", inputs: ["progressIndicator"] }, { type: i6$1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i9.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }], pipes: { "translate": TranslatePipe, "amCalendar": CalendarPipe } });
|
5390
|
+
FileInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: FileInput, selector: "bizdoc-file-upload", inputs: { multiple: "multiple", accept: "accept", icon: "icon", value: "value", placeholder: "placeholder", required: "required", disabled: "disabled" }, host: { listeners: { "document:drop": "handleDocumentDrop($event)", "drop": "handleDrop($event)", "dragenter": "handleEnter($event)", "dragleave": "handleLeave($event)", "dragover": "handleOver($event)" }, properties: { "id": "this.id", "attr.aria-describedby": "this.describedBy" }, classAttribute: "file-dropable" }, viewQueries: [{ propertyName: "_input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<button mat-button *ngIf=\"!items; else preview\" (click)=\"prompt()\">\r\n <mat-icon class=\"filled\">{{icon}}</mat-icon>\r\n <span class=\"mat-h3\">{{placeholder}}</span>\r\n</button>\r\n<input type=\"file\" #input\r\n [accept]=accept [multiple]=multiple (change)='_change($event)' style=\"display: none\" />\r\n<ng-template #preview>\r\n <div *ngFor='let a of items' class=\"attachment-item\"\r\n [class.deleted]=\"a.deleted\" [class.failed]=\"a.failed\"\r\n [progressIndicator]=\"a.progress\">\r\n <img *ngIf=\"a.isImage\" [src]=\"a.url\" (click)=\"openPreview(a)\" height=\"80\" class=\"file-preview\">\r\n <div *ngIf=\"a.hasPreview && !a.isImage\" fxLayout=\"column\" class=\"file-preview\">\r\n <button mat-icon-button (click)=\"openPreview(a)\" [bizdocTooltip]=\"'Preview'|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">find_in_page</mat-icon></button>\r\n <span>.{{a.fileExt}}</span>\r\n </div>\r\n <mat-icon *ngIf=\"a.icon\" [svgIcon]=\"a.icon\" [inline]=\"true\"></mat-icon>\r\n <div class=\"file-overlay row\">\r\n <span class=\"filename\">{{a.fileName}}</span>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button class=\"options\" [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'Options' | translate\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n </div>\r\n <mat-menu #menu>\r\n <ng-container *ngIf=\"!a.failed\">\r\n <ng-container *ngIf=\"canEdit(a) && !a.failed\">\r\n <ng-container *ngIf=\"!a.checkedOut\">\r\n <button mat-menu-item (click)=\"checkOut(a)\">{{\"CheckOut\" | translate}}</button>\r\n <button mat-menu-item (click)=\"prompt()\" *ngIf=\"multiple\">{{\"Add\" | translate}}</button>\r\n </ng-container>\r\n <button mat-menu-item (click)=\"checkIn(a)\" *ngIf=\"a.checkedOut\">{{\"CheckIn\" | translate}}</button>\r\n </ng-container>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"download(a)\">{{\"Download\" | translate}}</button>\r\n <button mat-menu-item *ngIf=\"canPreview(a)\" (click)=\"openPreview(a)\"><mat-icon>landscape</mat-icon> {{\"Preview\" | translate}}</button>\r\n <ng-container *ngIf=\"hasVersion(a)\">\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item *ngFor=\"let v of getVersions(a)\" (click)=\"previewOrDownload(v)\">{{v.time | amCalendar}}</button>\r\n </ng-container>\r\n <ng-container *ngIf=\"canEdit(a)\">\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"discard(a)\">{{\"Discard\" | translate}}</button>\r\n </ng-container>\r\n </ng-container>\r\n <button mat-menu-item (click)=\"cancel(a)\" *ngIf=\"a.failed\">{{\"Cancel\" | translate}}</button>\r\n </mat-menu>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{display:flex}.attachment-item{height:80px;position:relative}.attachment-item img{cursor:zoom-in}.attachment-item .file-preview{position:absolute}.attachment-item .file-overlay{position:relative;height:inherit}.attachment-item .file-overlay .filename{font-size:x-small;cursor:pointer;background:rgba(255,255,255,.4);align-self:flex-end}.attachment-item .file-overlay:hover .filename{background:white;opacity:.5}\n"], components: [{ 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: i12$2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: ProgressDirective, selector: "[progressIndicator]", inputs: ["progressIndicator"] }, { type: i6$1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i9.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }], pipes: { "translate": TranslatePipe, "amCalendar": CalendarPipe } });
|
5375
5391
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: FileInput, decorators: [{
|
5376
5392
|
type: Component,
|
5377
|
-
args: [{ host: { class: 'file-dropable' }, selector: 'bizdoc-file-upload', template: "<button mat-button *ngIf=\"!items; else preview\" (click)=\"prompt()\">\r\n <mat-icon class=\"filled\">{{icon}}</mat-icon>\r\n <span class=\"mat-h3\">{{placeholder}}</span>\r\n</button>\r\n<input type=\"file\" #input\r\n [accept]=accept [multiple]=multiple (change)='_change($event)' style=\"display: none\" />\r\n<ng-template #preview>\r\n <div *ngFor='let a of items' class=\"attachment-item\"\r\n [class.deleted]=\"a.deleted\" [class.failed]=\"a.failed\"\r\n [progressIndicator]=\"a.progress\">\r\n <img *ngIf=\"a.isImage\" [src]=\"a.url\" (click)=\"openPreview(a)\" height=\"80\" class=\"file-preview\">\r\n <div *ngIf=\"a.hasPreview && !a.isImage\" fxLayout=\"column\" class=\"file-preview\">\r\n <button mat-icon-button (click)=\"openPreview(a)\" [bizdocTooltip]=\"'Preview'|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">find_in_page</mat-icon></button>\r\n <span>.{{a.fileExt}}</span>\r\n </div>\r\n <mat-icon *ngIf=\"a.icon\" [svgIcon]=\"a.icon\" [inline]=\"true\"></mat-icon>\r\n <div class=\"file-overlay row\">\r\n <span class=\"filename\">{{a.fileName}}</span>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button class=\"options\" [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'Options' | translate\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n </div>\r\n <mat-menu #menu>\r\n <ng-container *ngIf=\"!a.failed\">\r\n <ng-container *ngIf=\"canEdit(a) && !a.failed\">\r\n <ng-container *ngIf=\"!a.checkedOut\">\r\n <button mat-menu-item (click)=\"checkOut(a)\">{{\"CheckOut\" | translate}}</button>\r\n <button mat-menu-item (click)=\"prompt()\">{{\"Add\" | translate}}</button>\r\n </ng-container>\r\n <button mat-menu-item (click)=\"checkIn(a)\" *ngIf=\"a.checkedOut\">{{\"CheckIn\" | translate}}</button>\r\n </ng-container>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"download(a)\">{{\"Download\" | translate}}</button>\r\n <button mat-menu-item *ngIf=\"canPreview(a)\" (click)=\"openPreview(a)\"><mat-icon>landscape</mat-icon> {{\"Preview\" | translate}}</button>\r\n <ng-container *ngIf=\"hasVersion(a)\">\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item *ngFor=\"let v of getVersions(a)\" (click)=\"previewOrDownload(v)\">{{v.time | amCalendar}}</button>\r\n </ng-container>\r\n <ng-container *ngIf=\"canEdit(a)\">\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"discard(a)\">{{\"Discard\" | translate}}</button>\r\n </ng-container>\r\n </ng-container>\r\n <button mat-menu-item (click)=\"cancel(a)\" *ngIf=\"a.failed\">{{\"Cancel\" | translate}}</button>\r\n </mat-menu>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{display:flex}.attachment-item{height:80px;position:relative}.attachment-item img{cursor:zoom-in}.attachment-item .file-preview{position:absolute}.attachment-item .file-overlay{position:relative;height:inherit}.attachment-item .file-overlay .filename{font-size:x-small;cursor:pointer;background:rgba(255,255,255,.4);align-self:flex-end}.attachment-item .file-overlay:hover .filename{background:white;opacity:.5}\n"] }]
|
5393
|
+
args: [{ host: { class: 'file-dropable' }, selector: 'bizdoc-file-upload', template: "<button mat-button *ngIf=\"!items; else preview\" (click)=\"prompt()\">\r\n <mat-icon class=\"filled\">{{icon}}</mat-icon>\r\n <span class=\"mat-h3\">{{placeholder}}</span>\r\n</button>\r\n<input type=\"file\" #input\r\n [accept]=accept [multiple]=multiple (change)='_change($event)' style=\"display: none\" />\r\n<ng-template #preview>\r\n <div *ngFor='let a of items' class=\"attachment-item\"\r\n [class.deleted]=\"a.deleted\" [class.failed]=\"a.failed\"\r\n [progressIndicator]=\"a.progress\">\r\n <img *ngIf=\"a.isImage\" [src]=\"a.url\" (click)=\"openPreview(a)\" height=\"80\" class=\"file-preview\">\r\n <div *ngIf=\"a.hasPreview && !a.isImage\" fxLayout=\"column\" class=\"file-preview\">\r\n <button mat-icon-button (click)=\"openPreview(a)\" [bizdocTooltip]=\"'Preview'|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">find_in_page</mat-icon></button>\r\n <span>.{{a.fileExt}}</span>\r\n </div>\r\n <mat-icon *ngIf=\"a.icon\" [svgIcon]=\"a.icon\" [inline]=\"true\"></mat-icon>\r\n <div class=\"file-overlay row\">\r\n <span class=\"filename\">{{a.fileName}}</span>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button class=\"options\" [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'Options' | translate\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n </div>\r\n <mat-menu #menu>\r\n <ng-container *ngIf=\"!a.failed\">\r\n <ng-container *ngIf=\"canEdit(a) && !a.failed\">\r\n <ng-container *ngIf=\"!a.checkedOut\">\r\n <button mat-menu-item (click)=\"checkOut(a)\">{{\"CheckOut\" | translate}}</button>\r\n <button mat-menu-item (click)=\"prompt()\" *ngIf=\"multiple\">{{\"Add\" | translate}}</button>\r\n </ng-container>\r\n <button mat-menu-item (click)=\"checkIn(a)\" *ngIf=\"a.checkedOut\">{{\"CheckIn\" | translate}}</button>\r\n </ng-container>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"download(a)\">{{\"Download\" | translate}}</button>\r\n <button mat-menu-item *ngIf=\"canPreview(a)\" (click)=\"openPreview(a)\"><mat-icon>landscape</mat-icon> {{\"Preview\" | translate}}</button>\r\n <ng-container *ngIf=\"hasVersion(a)\">\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item *ngFor=\"let v of getVersions(a)\" (click)=\"previewOrDownload(v)\">{{v.time | amCalendar}}</button>\r\n </ng-container>\r\n <ng-container *ngIf=\"canEdit(a)\">\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"discard(a)\">{{\"Discard\" | translate}}</button>\r\n </ng-container>\r\n </ng-container>\r\n <button mat-menu-item (click)=\"cancel(a)\" *ngIf=\"a.failed\">{{\"Cancel\" | translate}}</button>\r\n </mat-menu>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{display:flex}.attachment-item{height:80px;position:relative}.attachment-item img{cursor:zoom-in}.attachment-item .file-preview{position:absolute}.attachment-item .file-overlay{position:relative;height:inherit}.attachment-item .file-overlay .filename{font-size:x-small;cursor:pointer;background:rgba(255,255,255,.4);align-self:flex-end}.attachment-item .file-overlay:hover .filename{background:white;opacity:.5}\n"] }]
|
5378
5394
|
}], ctorParameters: function () {
|
5379
5395
|
return [{ type: i0.ElementRef }, { type: MailboxService }, { type: i1$5.DomSanitizer }, { type: AttachmentInfo }, { type: TranslateService }, { type: SessionService }, { type: PromptService }, { type: i1$2.NgControl, decorators: [{
|
5380
5396
|
type: Optional
|
@@ -6609,6 +6625,17 @@ function modelize() {
|
|
6609
6625
|
});
|
6610
6626
|
return data;
|
6611
6627
|
}));
|
6628
|
+
}
|
6629
|
+
function errResource(error) {
|
6630
|
+
switch (error.status) {
|
6631
|
+
case 401:
|
6632
|
+
return 'Unauthorized';
|
6633
|
+
case 426:
|
6634
|
+
return 'LicenseErr';
|
6635
|
+
case 406:
|
6636
|
+
return 'Unauthorized';
|
6637
|
+
}
|
6638
|
+
return null;
|
6612
6639
|
}
|
6613
6640
|
|
6614
6641
|
class ArraySortPipe {
|
@@ -9512,7 +9539,7 @@ class CubeAccumulationChartComponent {
|
|
9512
9539
|
this._draw();
|
9513
9540
|
this.loadingChange.emit(false);
|
9514
9541
|
}, (e) => {
|
9515
|
-
this._sb.error(e
|
9542
|
+
this._sb.error(errResource(e));
|
9516
9543
|
this.loadingChange.emit(false);
|
9517
9544
|
});
|
9518
9545
|
}
|
@@ -9766,7 +9793,7 @@ class CubeChartComponent {
|
|
9766
9793
|
this._draw();
|
9767
9794
|
this.loadingChange.emit(false);
|
9768
9795
|
}, (e) => {
|
9769
|
-
this._sb.error(e
|
9796
|
+
this._sb.error(errResource(e));
|
9770
9797
|
this.loadingChange.emit(false);
|
9771
9798
|
});
|
9772
9799
|
}
|
@@ -10057,7 +10084,7 @@ class CubeGridComponent {
|
|
10057
10084
|
this.loadingChange.emit(false);
|
10058
10085
|
});
|
10059
10086
|
}, (e) => {
|
10060
|
-
this._sb.error(e
|
10087
|
+
this._sb.error(errResource(e));
|
10061
10088
|
this.loadingChange.emit(false);
|
10062
10089
|
});
|
10063
10090
|
}
|
@@ -10363,7 +10390,7 @@ class CubePivotComponent {
|
|
10363
10390
|
this._draw();
|
10364
10391
|
this.loadingChange.emit(false);
|
10365
10392
|
}, (e) => {
|
10366
|
-
this._sb.error(e
|
10393
|
+
this._sb.error(errResource(e));
|
10367
10394
|
this.loadingChange.emit(false);
|
10368
10395
|
});
|
10369
10396
|
}
|
@@ -10744,18 +10771,20 @@ class CubeSpreadsheetComponent {
|
|
10744
10771
|
this._draw();
|
10745
10772
|
this.loadingChange.emit(false);
|
10746
10773
|
});
|
10747
|
-
}, e =>
|
10774
|
+
}, e => {
|
10775
|
+
this._sb.error(errResource(e));
|
10776
|
+
this.loadingChange.emit(false);
|
10777
|
+
});
|
10748
10778
|
else
|
10749
10779
|
this._service.table(this._cube.name, this._xAxis, { filters: this.filters, indices: this._indices }).
|
10750
10780
|
subscribe(data => {
|
10751
10781
|
this._datatable(data);
|
10752
10782
|
this._draw();
|
10753
10783
|
this.loadingChange.emit(false);
|
10754
|
-
}, e =>
|
10755
|
-
|
10756
|
-
|
10757
|
-
|
10758
|
-
this.loadingChange.emit(false);
|
10784
|
+
}, e => {
|
10785
|
+
this._sb.error(errResource(e));
|
10786
|
+
this.loadingChange.emit(false);
|
10787
|
+
});
|
10759
10788
|
}
|
10760
10789
|
_datatable(data) {
|
10761
10790
|
var _a;
|
@@ -10872,7 +10901,7 @@ class CubeSpreadsheetComponent {
|
|
10872
10901
|
return;
|
10873
10902
|
this._fillx(x, x1, axes);
|
10874
10903
|
}
|
10875
|
-
else if (this._indices && y <= this._indices.length
|
10904
|
+
else if (this._indices && y <= this._indices.length) {
|
10876
10905
|
index = this._indices[y - 1];
|
10877
10906
|
this._fillx(x, x1, axes);
|
10878
10907
|
}
|
@@ -11311,12 +11340,12 @@ class CubeViewPaneComponent extends ViewBase {
|
|
11311
11340
|
}
|
11312
11341
|
}
|
11313
11342
|
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 });
|
11314
|
-
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\">
|
11343
|
+
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 } });
|
11315
11344
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CubeViewPaneComponent, decorators: [{
|
11316
11345
|
type: Component,
|
11317
11346
|
args: [{ host: {
|
11318
11347
|
class: 'pane'
|
11319
|
-
}, 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\">
|
11348
|
+
}, 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"] }]
|
11320
11349
|
}], ctorParameters: function () { return [{ type: SessionService }, { type: PaneRef }, { type: Popup }, { type: RouterImpl }, { type: CubeService }, { type: GuideService }]; }, propDecorators: { viewPane: [{
|
11321
11350
|
type: ViewChild,
|
11322
11351
|
args: [CubeViewComponent, { static: true }]
|
@@ -15406,7 +15435,7 @@ class CubeMatrixComponent {
|
|
15406
15435
|
clearTimeout(progressTask);
|
15407
15436
|
this.loadingChange.next(this.loading = false);
|
15408
15437
|
}, (e) => {
|
15409
|
-
this._sb.error(e
|
15438
|
+
this._sb.error(errResource(e));
|
15410
15439
|
clearTimeout(progressTask);
|
15411
15440
|
this.loadingChange.next(this.loading = false);
|
15412
15441
|
this.loadingChange.error(e);
|
@@ -15569,6 +15598,8 @@ class CubeMatrixComponent {
|
|
15569
15598
|
});
|
15570
15599
|
}
|
15571
15600
|
_format(val, options) {
|
15601
|
+
if (val === 0)
|
15602
|
+
return '0';
|
15572
15603
|
if (options) {
|
15573
15604
|
if (options.format === 'percent')
|
15574
15605
|
return formatPercent(val, this.LANGUAGE, options.precision || this.PRECISION);
|
@@ -15691,10 +15722,10 @@ class CubeMatrixComponent {
|
|
15691
15722
|
}
|
15692
15723
|
}
|
15693
15724
|
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 });
|
15694
|
-
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 (
|
15725
|
+
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] });
|
15695
15726
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CubeMatrixComponent, decorators: [{
|
15696
15727
|
type: Component,
|
15697
|
-
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 (
|
15728
|
+
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"] }]
|
15698
15729
|
}], ctorParameters: function () { return [{ type: PromptService }, { type: CubeService }, { type: SessionService }, { type: TranslateService }, { type: DatasourceService }]; }, propDecorators: { tableElement: [{
|
15699
15730
|
type: ViewChild,
|
15700
15731
|
args: ['table']
|
@@ -17805,10 +17836,10 @@ class AppHttpInterceptor {
|
|
17805
17836
|
if (this._authenticating)
|
17806
17837
|
return this._authenticating;
|
17807
17838
|
else if (e.status === 401) {
|
17808
|
-
this._session.ok && this._router.navigate(['broken']);
|
17839
|
+
//this._session.ok && this._router.navigate(['broken']);
|
17809
17840
|
this._authenticating = this._auth.authorize().pipe(switchMap$1(() => {
|
17810
17841
|
this._authenticating = null;
|
17811
|
-
this._session.ok && history.back();
|
17842
|
+
//this._session.ok && history.back();
|
17812
17843
|
return forward();
|
17813
17844
|
}));
|
17814
17845
|
return this._authenticating;
|
@@ -20281,9 +20312,11 @@ class ReportComponent {
|
|
20281
20312
|
this._route.params.pipe(takeUntil(this._destroy)).subscribe(p => {
|
20282
20313
|
const id = p['id'];
|
20283
20314
|
this.report = this._session.profile.reports.find(r => r.name === id);
|
20315
|
+
this.hasFilters = (this.report.arguments && this.report.arguments.length > 0) || this.report.argumentsTemplate !== undefined;
|
20284
20316
|
this._cd.detectChanges();
|
20285
20317
|
this._title.set(this.report.title);
|
20286
20318
|
this.args = this._fromQueryArgs(this._route.snapshot.queryParams);
|
20319
|
+
this.anyFilters = Object.keys(this.args).length > 0;
|
20287
20320
|
this._navigating = true;
|
20288
20321
|
this.viewer.execute();
|
20289
20322
|
});
|
@@ -20299,6 +20332,12 @@ class ReportComponent {
|
|
20299
20332
|
guide() {
|
20300
20333
|
this._guide.start(this.report.guide);
|
20301
20334
|
}
|
20335
|
+
clearFilter() {
|
20336
|
+
this.args = {};
|
20337
|
+
this.anyFilters = false;
|
20338
|
+
this._cd.detectChanges();
|
20339
|
+
this.viewer.execute();
|
20340
|
+
}
|
20302
20341
|
/**
|
20303
20342
|
*
|
20304
20343
|
* @param qargs
|
@@ -20350,10 +20389,10 @@ class ReportComponent {
|
|
20350
20389
|
}
|
20351
20390
|
}
|
20352
20391
|
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 });
|
20353
|
-
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)=\"
|
20392
|
+
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 } });
|
20354
20393
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ReportComponent, decorators: [{
|
20355
20394
|
type: Component,
|
20356
|
-
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)=\"
|
20395
|
+
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"] }]
|
20357
20396
|
}], ctorParameters: function () { return [{ type: WindowTitleService }, { type: i1$6.ActivatedRoute }, { type: SessionService }, { type: i0.ChangeDetectorRef }, { type: PromptService }, { type: GuideService }]; }, propDecorators: { filter: [{
|
20358
20397
|
type: ViewChild,
|
20359
20398
|
args: [MatSidenav, { static: true }]
|
@@ -25873,9 +25912,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
25873
25912
|
}], ctorParameters: function () { return [{ type: SessionService }, { type: DocumentViewRef }, { type: CubeService }, { type: RouterImpl }]; } });
|
25874
25913
|
|
25875
25914
|
class CubeSumComponent {
|
25876
|
-
constructor(_ds, _service, _session) {
|
25915
|
+
constructor(_ds, _service, _sb, _session) {
|
25877
25916
|
this._ds = _ds;
|
25878
25917
|
this._service = _service;
|
25918
|
+
this._sb = _sb;
|
25879
25919
|
this._session = _session;
|
25880
25920
|
this.onExplore = new EventEmitter();
|
25881
25921
|
this.back = true;
|
@@ -25916,13 +25956,7 @@ class CubeSumComponent {
|
|
25916
25956
|
indices: this.indices,
|
25917
25957
|
scope: this.scope,
|
25918
25958
|
filters
|
25919
|
-
}).toPromise();
|
25920
|
-
function fill(serie, point) {
|
25921
|
-
if (serie.index)
|
25922
|
-
this.current.indices.push({ name: serie.index, title: serie.title, value: point.y });
|
25923
|
-
else
|
25924
|
-
this.current = { axis: point.x, name: axis, value: point.y, indices: [] };
|
25925
|
-
}
|
25959
|
+
}).toPromise().catch(this._handleErr.bind(this));
|
25926
25960
|
for (var i = 0; i < results.length; i++) {
|
25927
25961
|
const { index, title, points } = results[i];
|
25928
25962
|
for (var j = 0; j < points.length; j++) {
|
@@ -25964,7 +25998,7 @@ class CubeSumComponent {
|
|
25964
25998
|
indices: this.indices,
|
25965
25999
|
scope: this.scope,
|
25966
26000
|
filters
|
25967
|
-
}).toPromise();
|
26001
|
+
}).toPromise().catch(this._handleErr.bind(this));
|
25968
26002
|
const level = { axis, indices: [], scope };
|
25969
26003
|
for (var i = 0; i < results.length; i++) {
|
25970
26004
|
const { index, title, points } = results[i];
|
@@ -25984,6 +26018,9 @@ class CubeSumComponent {
|
|
25984
26018
|
this.next = yield parallel(1);
|
25985
26019
|
});
|
25986
26020
|
}
|
26021
|
+
_handleErr(response) {
|
26022
|
+
this._sb.error(errResource(response));
|
26023
|
+
}
|
25987
26024
|
_fish(axis) {
|
25988
26025
|
return __awaiter(this, void 0, void 0, function* () {
|
25989
26026
|
this.loading = true;
|
@@ -25994,7 +26031,7 @@ class CubeSumComponent {
|
|
25994
26031
|
indices: this.indices, filters,
|
25995
26032
|
scope: this.scope
|
25996
26033
|
}).
|
25997
|
-
toPromise();
|
26034
|
+
toPromise().catch(this._handleErr.bind(this));
|
25998
26035
|
this.current = {
|
25999
26036
|
axis,
|
26000
26037
|
value: 0,
|
@@ -26191,7 +26228,7 @@ class CubeSumComponent {
|
|
26191
26228
|
const results = this._scoperesults = yield this._service.series(this._cube.name, this.xAxis, {
|
26192
26229
|
indices: this.indices, filters,
|
26193
26230
|
scope: this.scope
|
26194
|
-
}).toPromise();
|
26231
|
+
}).toPromise().catch(this._handleErr.bind(this));
|
26195
26232
|
this._scope = scope;
|
26196
26233
|
if (!results.some(s => s.points.length))
|
26197
26234
|
return;
|
@@ -26245,7 +26282,7 @@ class CubeSumComponent {
|
|
26245
26282
|
this.onExplore.emit({ axes, index });
|
26246
26283
|
}
|
26247
26284
|
}
|
26248
|
-
CubeSumComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CubeSumComponent, deps: [{ token: DatasourceService }, { token: CubeService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component });
|
26285
|
+
CubeSumComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CubeSumComponent, deps: [{ token: DatasourceService }, { token: CubeService }, { token: PromptService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component });
|
26249
26286
|
CubeSumComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: CubeSumComponent, selector: "bizdoc-cube-sum", inputs: { xAxis: "xAxis", periodPolicy: "periodPolicy", parentAxis: "parentAxis", filters: "filters", cube: "cube", indices: "indices", scope: "scope" }, outputs: { onExplore: "explore" }, usesOnChanges: true, ngImport: i0, template: " <!-- levels -->\r\n<div class=\"row\">\r\n <div *ngIf=\"prev\" class=\"level prev-level\">\r\n <div class=\"level-header row\">\r\n <mat-icon class=\"cliclable mat-icon-rtl-mirror\" [inline]=true (click)=\"goprev()\" *ngIf=\"back\">keyboard_arrow_left</mat-icon>\r\n <div div class=\"mat-h1 title\">\r\n {{'PrevLevel'| translate}}\r\n </div>\r\n <span class=\"divider\"></span>\r\n <mat-icon *ngIf=\"forward\" class=\"cliclable mat-icon-rtl-mirror\" [inline]=true (click)=\"gonext()\">keyboard_arrow_right</mat-icon>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"level; context: {use: prev}\"></ng-container>\r\n </div>\r\n <div *ngIf=\"current\" class=\"level current-level\">\r\n <div class=\"level-header row\">\r\n <div div class=\"mat-h1 title\">\r\n {{'CurrentLevel'| translate : primaryAxis.title}}\r\n </div>\r\n <span class=\"divider\"></span>\r\n <mat-icon [bizdocTooltip]=\"help\" *ngIf=\"help\" [inline]=\"true\">help_outline</mat-icon>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"level; context: {use: current}\"></ng-container>\r\n </div>\r\n <div *ngIf=\"next\" class=\"level next-level\">\r\n <div class=\"level-header\">\r\n <div div class=\"mat-h1 title\">\r\n {{'NextLevel'| translate}}\r\n </div>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"level; context: {use: next}\"></ng-container>\r\n </div>\r\n</div>\r\n<!-- level -->\r\n<ng-template #level let-use=\"use\" let-help=\"help\">\r\n <div>\r\n <h2 class=\"mat-h1\" [class.cliclable]=\"use.value !== 0\" (click)=\"explore(use)\">{{use.title}}</h2>\r\n <div class=\"row\">\r\n <h3 class=\"mat-h1\" [class.cliclable]=\"use.value !== 0\" (click)=\"explore(use)\">{{use.value | currency : currencyCode : 'symbol' : digitsInfo}}</h3>\r\n <span class=\"divider\"></span>\r\n <div *ngIf=\"use.chain && use.value !== use.chain.value\">\r\n <span *ngIf=\"use.value !== 0 && use.chain.value !== 0\">{{Math.round(use.value / use.chain.value * 100) }}%</span>\r\n <mat-icon>{{use.value > use.chain.value ? 'trending_up':'trending_down' }}</mat-icon>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- -->\r\n <div class=\"row\">\r\n <div *ngFor=\"let i of use.indices\" class=\"index\">\r\n <h4 class=\"mat-h3 title\">{{i.title}}</h4>\r\n <h5 class=\"mat-h3\" [class.cliclable]=\"i.value !== 0\" (click)=\"explore(use, i.name)\">{{i.value | currency : currencyCode : 'symbol' : digitsInfo}}</h5>\r\n </div>\r\n </div>\r\n <div class=\"bar\" *ngIf=\"use.indices.length\" [class.available]=\"use.percent < 100\">\r\n <div class=\"value\" [style.flexBasis]=\"Math.round(use.percent < 100 ?\r\n 100 - use.percent :\r\n 100 / use.percent * 100) + '%'\"\r\n [@bar]=\"use.animation\"></div>\r\n <div class=\"overflow\" *ngIf=\"use.percent > 0\"></div>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{padding:0 8px}.level{border-width:thin;border-radius:3px;padding:8px;margin:3px;flex:1 1 0;border-style:solid}.level .cliclable{cursor:pointer}.level.next-level{border-style:dashed}.level .level-header{align-items:center}.level .level-header .title{margin:0;line-height:22px;font-size:inherit;font-feature-settings:\"pcap\",\"c2pc\";font-variant-caps:all-petite-caps}.level h3{margin:0;font-size:x-large}.level h2{font-weight:400;font-size:larger;margin:0}.level .percent{display:flex;align-items:center}.level .index{padding:0 4px}.level .index h5,.level .index h4{margin:0}.level .bar{display:flex}.level .bar .value,.level .bar .overflow{height:12px}.level .bar .value{flex:0 0 0%}.level .bar .overflow{flex:1 1 0%;box-sizing:border-box}.level .bar.available .overflow{border-width:1px;border-style:dashed}\n"], components: [{ type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": TranslatePipe, "currency": i10.CurrencyPipe }, animations: [trigger('bar', [
|
26250
26287
|
transition('*<=>*', [style({
|
26251
26288
|
flexBasis: '{{startWidth}}%'
|
@@ -26258,7 +26295,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
26258
26295
|
flexBasis: '{{startWidth}}%'
|
26259
26296
|
}), animate('500ms ease')], { params: { startWidth: 100 } }),
|
26260
26297
|
])], template: " <!-- levels -->\r\n<div class=\"row\">\r\n <div *ngIf=\"prev\" class=\"level prev-level\">\r\n <div class=\"level-header row\">\r\n <mat-icon class=\"cliclable mat-icon-rtl-mirror\" [inline]=true (click)=\"goprev()\" *ngIf=\"back\">keyboard_arrow_left</mat-icon>\r\n <div div class=\"mat-h1 title\">\r\n {{'PrevLevel'| translate}}\r\n </div>\r\n <span class=\"divider\"></span>\r\n <mat-icon *ngIf=\"forward\" class=\"cliclable mat-icon-rtl-mirror\" [inline]=true (click)=\"gonext()\">keyboard_arrow_right</mat-icon>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"level; context: {use: prev}\"></ng-container>\r\n </div>\r\n <div *ngIf=\"current\" class=\"level current-level\">\r\n <div class=\"level-header row\">\r\n <div div class=\"mat-h1 title\">\r\n {{'CurrentLevel'| translate : primaryAxis.title}}\r\n </div>\r\n <span class=\"divider\"></span>\r\n <mat-icon [bizdocTooltip]=\"help\" *ngIf=\"help\" [inline]=\"true\">help_outline</mat-icon>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"level; context: {use: current}\"></ng-container>\r\n </div>\r\n <div *ngIf=\"next\" class=\"level next-level\">\r\n <div class=\"level-header\">\r\n <div div class=\"mat-h1 title\">\r\n {{'NextLevel'| translate}}\r\n </div>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"level; context: {use: next}\"></ng-container>\r\n </div>\r\n</div>\r\n<!-- level -->\r\n<ng-template #level let-use=\"use\" let-help=\"help\">\r\n <div>\r\n <h2 class=\"mat-h1\" [class.cliclable]=\"use.value !== 0\" (click)=\"explore(use)\">{{use.title}}</h2>\r\n <div class=\"row\">\r\n <h3 class=\"mat-h1\" [class.cliclable]=\"use.value !== 0\" (click)=\"explore(use)\">{{use.value | currency : currencyCode : 'symbol' : digitsInfo}}</h3>\r\n <span class=\"divider\"></span>\r\n <div *ngIf=\"use.chain && use.value !== use.chain.value\">\r\n <span *ngIf=\"use.value !== 0 && use.chain.value !== 0\">{{Math.round(use.value / use.chain.value * 100) }}%</span>\r\n <mat-icon>{{use.value > use.chain.value ? 'trending_up':'trending_down' }}</mat-icon>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- -->\r\n <div class=\"row\">\r\n <div *ngFor=\"let i of use.indices\" class=\"index\">\r\n <h4 class=\"mat-h3 title\">{{i.title}}</h4>\r\n <h5 class=\"mat-h3\" [class.cliclable]=\"i.value !== 0\" (click)=\"explore(use, i.name)\">{{i.value | currency : currencyCode : 'symbol' : digitsInfo}}</h5>\r\n </div>\r\n </div>\r\n <div class=\"bar\" *ngIf=\"use.indices.length\" [class.available]=\"use.percent < 100\">\r\n <div class=\"value\" [style.flexBasis]=\"Math.round(use.percent < 100 ?\r\n 100 - use.percent :\r\n 100 / use.percent * 100) + '%'\"\r\n [@bar]=\"use.animation\"></div>\r\n <div class=\"overflow\" *ngIf=\"use.percent > 0\"></div>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{padding:0 8px}.level{border-width:thin;border-radius:3px;padding:8px;margin:3px;flex:1 1 0;border-style:solid}.level .cliclable{cursor:pointer}.level.next-level{border-style:dashed}.level .level-header{align-items:center}.level .level-header .title{margin:0;line-height:22px;font-size:inherit;font-feature-settings:\"pcap\",\"c2pc\";font-variant-caps:all-petite-caps}.level h3{margin:0;font-size:x-large}.level h2{font-weight:400;font-size:larger;margin:0}.level .percent{display:flex;align-items:center}.level .index{padding:0 4px}.level .index h5,.level .index h4{margin:0}.level .bar{display:flex}.level .bar .value,.level .bar .overflow{height:12px}.level .bar .value{flex:0 0 0%}.level .bar .overflow{flex:1 1 0%;box-sizing:border-box}.level .bar.available .overflow{border-width:1px;border-style:dashed}\n"] }]
|
26261
|
-
}], ctorParameters: function () { return [{ type: DatasourceService }, { type: CubeService }, { type: SessionService }]; }, propDecorators: { xAxis: [{
|
26298
|
+
}], ctorParameters: function () { return [{ type: DatasourceService }, { type: CubeService }, { type: PromptService }, { type: SessionService }]; }, propDecorators: { xAxis: [{
|
26262
26299
|
type: Input
|
26263
26300
|
}], periodPolicy: [{
|
26264
26301
|
type: Input
|
@@ -26551,7 +26588,7 @@ class CubeParallelComponent {
|
|
26551
26588
|
this.width = Math.max(Math.round(this.size / this.items.length), 150) + 'px';
|
26552
26589
|
this._loading.next(false);
|
26553
26590
|
}, (e) => {
|
26554
|
-
this._sb.error(e
|
26591
|
+
this._sb.error(errResource(e));
|
26555
26592
|
this._loading.next(false);
|
26556
26593
|
});
|
26557
26594
|
}
|