nuxeo-development-framework 5.5.2 → 5.5.4

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.
Files changed (40) hide show
  1. package/bundles/nuxeo-development-framework.umd.js +372 -96
  2. package/bundles/nuxeo-development-framework.umd.js.map +1 -1
  3. package/esm2015/lib/components/reports/charts/plugins/data-labels.js +3 -3
  4. package/esm2015/lib/components/reports/charts/utility/css.js +3 -3
  5. package/esm2015/lib/components/reports/ndf-reports/base/base-graph.report.js +6 -3
  6. package/esm2015/lib/components/reports/ndf-reports/base/base-report.js +2 -1
  7. package/esm2015/lib/components/reports/ndf-reports/components/dynamic-timeline-report/dynamic-timeline-report.component.js +26 -4
  8. package/esm2015/lib/components/reports/ndf-reports/components/graph-report/graph-report.component.js +28 -4
  9. package/esm2015/lib/components/reports/ndf-reports/containers/ndf-report/ndf-report.component.js +7 -1
  10. package/esm2015/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.js +73 -22
  11. package/esm2015/lib/components/reports/ndf-reports/models/details.js +1 -1
  12. package/esm2015/lib/components/reports/ndf-reports/models/ndf-reports.config.js +1 -1
  13. package/esm2015/lib/components/reports/ndf-reports/ndf-reports.module.js +15 -3
  14. package/esm2015/lib/components/reports/ndf-reports/services/chart-theme.service.js +54 -0
  15. package/esm2015/lib/components/reports/ndf-reports/services/dynamic-timeline-report.service.js +1 -1
  16. package/esm2015/lib/components/reports/ndf-reports/services/index.js +3 -2
  17. package/esm2015/lib/components/reports/ndf-reports/services/report-config-mapper.service.js +21 -4
  18. package/esm2015/lib/components/reports/ndf-reports/services/report-configuration.service.js +41 -0
  19. package/esm2015/lib/components/reports/ndf-reports/utilities/dataset-colors.js +51 -0
  20. package/esm2015/lib/components/reports/ndf-reports/utilities/index.js +2 -1
  21. package/esm2015/lib/components/reports/ndf-reports/utilities/reports-table.mapper.js +7 -8
  22. package/fesm2015/nuxeo-development-framework.js +327 -84
  23. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  24. package/lib/components/reports/ndf-reports/base/base-graph.report.d.ts +5 -2
  25. package/lib/components/reports/ndf-reports/base/base-report.d.ts +2 -1
  26. package/lib/components/reports/ndf-reports/components/dynamic-timeline-report/dynamic-timeline-report.component.d.ts +5 -2
  27. package/lib/components/reports/ndf-reports/components/graph-report/graph-report.component.d.ts +5 -1
  28. package/lib/components/reports/ndf-reports/containers/ndf-report/ndf-report.component.d.ts +3 -1
  29. package/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.d.ts +11 -7
  30. package/lib/components/reports/ndf-reports/models/details.d.ts +1 -1
  31. package/lib/components/reports/ndf-reports/models/ndf-reports.config.d.ts +0 -2
  32. package/lib/components/reports/ndf-reports/services/chart-theme.service.d.ts +14 -0
  33. package/lib/components/reports/ndf-reports/services/index.d.ts +2 -1
  34. package/lib/components/reports/ndf-reports/services/report-config-mapper.service.d.ts +1 -0
  35. package/lib/components/reports/ndf-reports/services/report-configuration.service.d.ts +14 -0
  36. package/lib/components/reports/ndf-reports/utilities/dataset-colors.d.ts +1 -0
  37. package/lib/components/reports/ndf-reports/utilities/index.d.ts +1 -0
  38. package/package.json +1 -1
  39. package/esm2015/lib/components/reports/ndf-reports/services/report-details.service.js +0 -29
  40. package/lib/components/reports/ndf-reports/services/report-details.service.d.ts +0 -12
@@ -43490,7 +43490,7 @@
43490
43490
  * @returns {string | number} - The value of the CSS variable or the provided default value.
43491
43491
  */
43492
43492
  function getCssVariable(key, defaultValue) {
43493
- var root = document.documentElement;
43493
+ var root = document.querySelector('[data-theme]') || document.documentElement;
43494
43494
  var computedStyle = getComputedStyle(root);
43495
43495
  return computedStyle.getPropertyValue(key).trim() || defaultValue;
43496
43496
  }
@@ -43547,7 +43547,7 @@
43547
43547
  '#3c3cf0',
43548
43548
  '#f17205' // Bright orange
43549
43549
  ]; }
43550
- var root = document.documentElement;
43550
+ var root = document.querySelector('[data-theme]') || document.documentElement;
43551
43551
  var computedStyle = getComputedStyle(root);
43552
43552
  var colors = [];
43553
43553
  for (var index = 0; index < length; index++) {
@@ -44210,7 +44210,7 @@
44210
44210
  var fitsInside = textMetrics.width + textPadding * 2 <= dataPoint.width;
44211
44211
  if (fitsInside) {
44212
44212
  return {
44213
- x: dataPoint.x + (isReversed ? textMetrics.width / 2 : -textMetrics.width / 2),
44213
+ x: dataPoint.x + (isReversed ? textMetrics.width / 2 + textPadding : -(textMetrics.width / 2 + textPadding)),
44214
44214
  y: dataPoint.y,
44215
44215
  color: getTextColor(backgroundColor)
44216
44216
  };
@@ -44228,7 +44228,7 @@
44228
44228
  if (fitsInside) {
44229
44229
  return {
44230
44230
  x: dataPoint.x,
44231
- y: dataPoint.y,
44231
+ y: dataPoint.y + textPadding / 2 + textMetrics.height / 2,
44232
44232
  color: getTextColor(backgroundColor)
44233
44233
  };
44234
44234
  }
@@ -45356,6 +45356,122 @@
45356
45356
  };
45357
45357
  }
45358
45358
 
45359
+ function mapToNdfTableConfig(report, details) {
45360
+ var _a, _b, _c, _d;
45361
+ var _request = report.request;
45362
+ var _detailsConfig = details.source;
45363
+ var customUrl = ___default["default"].merge({
45364
+ url: "/api/v1" + (_request === null || _request === void 0 ? void 0 : _request.customUrl.url),
45365
+ method: _request === null || _request === void 0 ? void 0 : _request.customUrl.method
45366
+ }, ((_a = _detailsConfig === null || _detailsConfig === void 0 ? void 0 : _detailsConfig.request) === null || _a === void 0 ? void 0 : _a.customUrl) || {});
45367
+ var _headers = ((_b = _detailsConfig.request) === null || _b === void 0 ? void 0 : _b.headers) || _request.headers || {};
45368
+ var _queryParam = ((_c = _detailsConfig.request) === null || _c === void 0 ? void 0 : _c.params) || _request.params || {};
45369
+ var _sortingBy = ___default["default"].merge({
45370
+ sortBy: 'dc:modified',
45371
+ sortOrder: 'desc'
45372
+ }, _detailsConfig.sortingBy || {});
45373
+ var data = {
45374
+ options: {
45375
+ columns: _detailsConfig.columnsOptions,
45376
+ filters: {
45377
+ mode: 'payload',
45378
+ fields: [],
45379
+ panel: {
45380
+ visible: false,
45381
+ toggleButton: false
45382
+ }
45383
+ },
45384
+ export: _detailsConfig === null || _detailsConfig === void 0 ? void 0 : _detailsConfig.export
45385
+ },
45386
+ pageNumber: 1,
45387
+ pageSize: 10,
45388
+ fullWidth: 'auto',
45389
+ prefix: _detailsConfig.prefix || '',
45390
+ fields: (_detailsConfig === null || _detailsConfig === void 0 ? void 0 : _detailsConfig.fields) || {},
45391
+ pageProvider: _request.pageProvider || _detailsConfig.request.pageProvider,
45392
+ columns: _detailsConfig.columns || [],
45393
+ customUrl: customUrl,
45394
+ headers: _headers,
45395
+ queryParam: _queryParam,
45396
+ quickFilters: _detailsConfig.quickFilters,
45397
+ sortingBy: _sortingBy,
45398
+ requestActions: (_d = _detailsConfig === null || _detailsConfig === void 0 ? void 0 : _detailsConfig.request) === null || _d === void 0 ? void 0 : _d.actions
45399
+ };
45400
+ return data;
45401
+ }
45402
+
45403
+ function replaceDatasetColors(datasets) {
45404
+ if (!Array.isArray(datasets)) {
45405
+ return datasets;
45406
+ }
45407
+ return datasets.map(function (dataset) {
45408
+ var e_1, _a;
45409
+ var newDataset = Object.assign({}, dataset);
45410
+ try {
45411
+ // Process each property that might contain colors
45412
+ for (var _b = __values(Object.entries(dataset)), _c = _b.next(); !_c.done; _c = _b.next()) {
45413
+ var _d = __read(_c.value, 2), key = _d[0], value = _d[1];
45414
+ if (isColorProperty(key)) {
45415
+ newDataset[key] = replaceColors(value);
45416
+ }
45417
+ }
45418
+ }
45419
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
45420
+ finally {
45421
+ try {
45422
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
45423
+ }
45424
+ finally { if (e_1) throw e_1.error; }
45425
+ }
45426
+ return newDataset;
45427
+ });
45428
+ }
45429
+ // Helper function to identify color-related properties
45430
+ function isColorProperty(propertyName) {
45431
+ var colorProperties = [
45432
+ 'backgroundColor',
45433
+ 'borderColor',
45434
+ 'pointBackgroundColor',
45435
+ 'pointBorderColor',
45436
+ 'pointHoverBackgroundColor',
45437
+ 'pointHoverBorderColor',
45438
+ 'hoverBackgroundColor',
45439
+ 'hoverBorderColor',
45440
+ 'color'
45441
+ ];
45442
+ return colorProperties.includes(propertyName) || propertyName.toLowerCase().includes('color');
45443
+ }
45444
+ // Keep the original replaceColors for processing individual values
45445
+ function replaceColors(data) {
45446
+ var e_2, _a;
45447
+ if (typeof data === 'string' && (data.startsWith('var') || data.startsWith('--'))) {
45448
+ var match = data.match(/var\((--[^)]+)\)/);
45449
+ var value = match ? match[1] : data;
45450
+ return getColor(value);
45451
+ }
45452
+ if (data === null || typeof data !== 'object') {
45453
+ return data;
45454
+ }
45455
+ if (Array.isArray(data)) {
45456
+ return data.map(function (item) { return replaceColors(item); });
45457
+ }
45458
+ var newObject = {};
45459
+ try {
45460
+ for (var _b = __values(Object.entries(data)), _c = _b.next(); !_c.done; _c = _b.next()) {
45461
+ var _d = __read(_c.value, 2), key = _d[0], value = _d[1];
45462
+ newObject[key] = replaceColors(value);
45463
+ }
45464
+ }
45465
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
45466
+ finally {
45467
+ try {
45468
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
45469
+ }
45470
+ finally { if (e_2) throw e_2.error; }
45471
+ }
45472
+ return newObject;
45473
+ }
45474
+
45359
45475
  var ReportConfigMapperService = /** @class */ (function () {
45360
45476
  function ReportConfigMapperService(_chartPluginsRegistry) {
45361
45477
  this._chartPluginsRegistry = _chartPluginsRegistry;
@@ -45371,7 +45487,7 @@
45371
45487
  if (Array.isArray(plugins) && plugins.length > 0) {
45372
45488
  chart.plugins = this._preparePlugins(plugins);
45373
45489
  }
45374
- chart.colors = __spreadArray(__spreadArray([], __read((colors || []))), __read(getColors()));
45490
+ chart.colors = this._prepareColors(colors);
45375
45491
  return Object.assign(Object.assign({}, config), { chart: chart });
45376
45492
  };
45377
45493
  /**
@@ -45382,11 +45498,13 @@
45382
45498
  ReportConfigMapperService.prototype.prepareGraphLineConfig = function (config) {
45383
45499
  var _a = config.chart, plugins = _a.plugins, options = _a.options, rest = __rest(_a, ["plugins", "options"]);
45384
45500
  var chart = Object.assign(Object.assign({}, rest), { options: getLineOptions(options) });
45501
+ if (chart.datasets && !!chart.datasets.length) {
45502
+ chart.datasets = replaceDatasetColors(chart.datasets);
45503
+ }
45385
45504
  if (Array.isArray(plugins) && plugins.length > 0) {
45386
45505
  chart.plugins = this._preparePlugins(plugins);
45387
45506
  }
45388
- var _colors = __spreadArray(__spreadArray([], __read(((config === null || config === void 0 ? void 0 : config.colors) || []))), __read(getColors()));
45389
- return Object.assign(Object.assign({}, config), { colors: _colors, chart: chart });
45507
+ return Object.assign(Object.assign({}, config), { colors: this._prepareColors(config === null || config === void 0 ? void 0 : config.colors), chart: chart });
45390
45508
  };
45391
45509
  /**
45392
45510
  * Prepares a custom chart configuration
@@ -45411,6 +45529,9 @@
45411
45529
  ReportConfigMapperService.prototype._preparePlugins = function (plugins) {
45412
45530
  var _this = this;
45413
45531
  return plugins.reduce(function (acc, plgName) {
45532
+ if (!plgName || typeof plgName !== 'string') {
45533
+ return acc;
45534
+ }
45414
45535
  var plugin = _this._chartPluginsRegistry.get(plgName);
45415
45536
  if (plugin) {
45416
45537
  return __spreadArray(__spreadArray([], __read(acc)), [plugin]);
@@ -45431,6 +45552,17 @@
45431
45552
  var key = type === 'bar' ? direction + "Bar" : type;
45432
45553
  return ((_a = _optionsMap[key]) === null || _a === void 0 ? void 0 : _a.call(_optionsMap, options)) || {};
45433
45554
  };
45555
+ ReportConfigMapperService.prototype._prepareColors = function (colors) {
45556
+ var _colors = (colors || []).map(function (color) {
45557
+ var str = "" + color;
45558
+ if (str.startsWith('var(')) {
45559
+ var match = str.match(/^var\((--[^)]+)\)/);
45560
+ return match ? getColor(match[1]) : str;
45561
+ }
45562
+ return str.startsWith('--') ? getColor(str) : str;
45563
+ });
45564
+ return __spreadArray(__spreadArray([], __read(_colors)), __read(getColors()));
45565
+ };
45434
45566
  return ReportConfigMapperService;
45435
45567
  }());
45436
45568
  ReportConfigMapperService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ReportConfigMapperService, deps: [{ token: ChartPluginsRegistry }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
@@ -45574,14 +45706,26 @@
45574
45706
  }]
45575
45707
  }], ctorParameters: function () { return [{ type: i0__namespace.ComponentFactoryResolver }]; } });
45576
45708
 
45577
- var ReportDetailsService = /** @class */ (function (_super) {
45578
- __extends(ReportDetailsService, _super);
45579
- function ReportDetailsService(injector) {
45709
+ var ReportConfigurationService = /** @class */ (function (_super) {
45710
+ __extends(ReportConfigurationService, _super);
45711
+ function ReportConfigurationService(injector) {
45580
45712
  var _this = _super.call(this, injector) || this;
45581
45713
  _this.injector = injector;
45582
45714
  return _this;
45583
45715
  }
45584
- ReportDetailsService.prototype.getTableConfiguration = function (key, localPath) {
45716
+ ReportConfigurationService.prototype.getTableConfiguration = function (key, localPath) {
45717
+ var _a;
45718
+ return this.fetchData({
45719
+ key: key,
45720
+ type: NDF_EDITOR_TYPE.TABLES,
45721
+ app: (_a = this.environment) === null || _a === void 0 ? void 0 : _a.appKey,
45722
+ localPath: localPath
45723
+ }).pipe(operators.map(function (res) {
45724
+ var _a;
45725
+ return (_a = res === null || res === void 0 ? void 0 : res.data) === null || _a === void 0 ? void 0 : _a.config;
45726
+ }));
45727
+ };
45728
+ ReportConfigurationService.prototype.getReportsConfiguration = function (key, localPath) {
45585
45729
  var _a;
45586
45730
  return this.fetchData({
45587
45731
  key: key,
@@ -45593,15 +45737,68 @@
45593
45737
  return (_a = res === null || res === void 0 ? void 0 : res.data) === null || _a === void 0 ? void 0 : _a.config;
45594
45738
  }));
45595
45739
  };
45596
- return ReportDetailsService;
45740
+ return ReportConfigurationService;
45597
45741
  }(BaseEditorConfigService));
45598
- ReportDetailsService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ReportDetailsService, deps: [{ token: i0__namespace.Injector }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
45599
- ReportDetailsService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ReportDetailsService, providedIn: 'root' });
45600
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ReportDetailsService, decorators: [{
45742
+ ReportConfigurationService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ReportConfigurationService, deps: [{ token: i0__namespace.Injector }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
45743
+ ReportConfigurationService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ReportConfigurationService, providedIn: 'root' });
45744
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ReportConfigurationService, decorators: [{
45601
45745
  type: i0.Injectable,
45602
45746
  args: [{ providedIn: 'root' }]
45603
45747
  }], ctorParameters: function () { return [{ type: i0__namespace.Injector }]; } });
45604
45748
 
45749
+ var ChartThemeService = /** @class */ (function () {
45750
+ function ChartThemeService() {
45751
+ this.currentTheme = new rxjs.BehaviorSubject('light');
45752
+ this.theme$ = this.currentTheme.asObservable();
45753
+ this._initializeThemeDetection();
45754
+ }
45755
+ ChartThemeService.prototype.getCurrentTheme = function () {
45756
+ return this._getThemeFromBody();
45757
+ };
45758
+ ChartThemeService.prototype.destroy = function () {
45759
+ if (this.observer) {
45760
+ this.observer.disconnect();
45761
+ }
45762
+ };
45763
+ ChartThemeService.prototype._initializeThemeDetection = function () {
45764
+ var initialTheme = this._getThemeFromBody();
45765
+ if (initialTheme !== this.currentTheme.value) {
45766
+ this.currentTheme.next(initialTheme);
45767
+ }
45768
+ this._setupThemeWatcher();
45769
+ };
45770
+ ChartThemeService.prototype._getThemeFromBody = function () {
45771
+ var bodyTheme = document.body.getAttribute('data-theme');
45772
+ return bodyTheme === 'dark' || bodyTheme === 'light' ? bodyTheme : 'light';
45773
+ };
45774
+ ChartThemeService.prototype._setupThemeWatcher = function () {
45775
+ var _this = this;
45776
+ this.observer = new MutationObserver(function (mutations) {
45777
+ mutations.forEach(function (mutation) {
45778
+ if (mutation.type === 'attributes' && mutation.attributeName === 'data-theme') {
45779
+ var newTheme = _this._getThemeFromBody();
45780
+ if (newTheme !== _this.currentTheme.value) {
45781
+ _this.currentTheme.next(newTheme);
45782
+ }
45783
+ }
45784
+ });
45785
+ });
45786
+ this.observer.observe(document.body, {
45787
+ attributes: true,
45788
+ attributeFilter: ['data-theme']
45789
+ });
45790
+ };
45791
+ return ChartThemeService;
45792
+ }());
45793
+ ChartThemeService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ChartThemeService, deps: [], target: i0__namespace.ɵɵFactoryTarget.Injectable });
45794
+ ChartThemeService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ChartThemeService, providedIn: 'root' });
45795
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ChartThemeService, decorators: [{
45796
+ type: i0.Injectable,
45797
+ args: [{
45798
+ providedIn: 'root'
45799
+ }]
45800
+ }], ctorParameters: function () { return []; } });
45801
+
45605
45802
  var DigitChartComponent = /** @class */ (function (_super) {
45606
45803
  __extends(DigitChartComponent, _super);
45607
45804
  function DigitChartComponent() {
@@ -45756,6 +45953,7 @@
45756
45953
  }
45757
45954
  Object.defineProperty(BaseReport.prototype, "definition", {
45758
45955
  set: function (obj) {
45956
+ this._definition = ___default["default"].cloneDeep(obj);
45759
45957
  if (obj) {
45760
45958
  this._configSub.next(this._prepareConfig(obj));
45761
45959
  }
@@ -45850,6 +46048,8 @@
45850
46048
  function BaseGraphReport() {
45851
46049
  var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
45852
46050
  _this._dialog = _this.injector.get(ReportsDialogService);
46051
+ _this._chartThemeService = _this.injector.get(ChartThemeService);
46052
+ _this._initialTheme = _this._chartThemeService.getCurrentTheme();
45853
46053
  return _this;
45854
46054
  }
45855
46055
  BaseGraphReport.prototype.openGraphDialog = function (component) {
@@ -46252,6 +46452,13 @@
46252
46452
  }));
46253
46453
  return _this;
46254
46454
  }
46455
+ GraphReportComponent.prototype.ngAfterViewInit = function () {
46456
+ this._setupThemeWatcher();
46457
+ };
46458
+ GraphReportComponent.prototype.ngOnDestroy = function () {
46459
+ _super.prototype.ngOnDestroy.call(this);
46460
+ this._chartThemeService.destroy();
46461
+ };
46255
46462
  GraphReportComponent.prototype.changeChartType = function (type) {
46256
46463
  var _d;
46257
46464
  var _a, _b;
@@ -46272,10 +46479,25 @@
46272
46479
  this.graphChartComponent.printChart();
46273
46480
  }
46274
46481
  };
46482
+ GraphReportComponent.prototype._setupThemeWatcher = function () {
46483
+ var _this = this;
46484
+ this._chartThemeService.theme$
46485
+ .pipe(operators.filter(function (value) { return value !== _this._initialTheme && !!_this._definition; }), operators.takeUntil(this.destroy$))
46486
+ .subscribe(function (theme) {
46487
+ _this._initialTheme = theme;
46488
+ var _a = _this._configSub.getValue(), chart = _a.chart, config = __rest(_a, ["chart"]);
46489
+ var data = ___default["default"].merge({}, _this._definition, {
46490
+ chart: {
46491
+ type: chart.type
46492
+ }
46493
+ });
46494
+ _this._configSub.next(_this._prepareConfig(data));
46495
+ });
46496
+ };
46275
46497
  return GraphReportComponent;
46276
46498
  }(BaseGraphReport));
46277
46499
  GraphReportComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: GraphReportComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
46278
- GraphReportComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: GraphReportComponent, selector: "app-graph-report", host: { classAttribute: "graph-report flex flex-col flex-grow" }, viewQueries: [{ propertyName: "graphChartComponent", first: true, predicate: ["graphChart"], descendants: true }], usesInheritance: true, ngImport: i0__namespace, template: "<chart-panel *ngIf=\"config$ | async as config\" class=\"ndf-report chart-report\">\r\n\t<chart-panel-header class=\"ndf-report__header mb-3\">\r\n\t\t<span>\r\n\t\t\t{{ config.label | translate }}\r\n\t\t</span>\r\n\t\t<button\r\n\t\t\t*ngIf=\"config?.dialog?.active\"\r\n\t\t\tclass=\"dialog-button print:hidden\"\r\n\t\t\t(click)=\"openGraphDialog()\"\r\n\t\t\t[matTooltip]=\"'REPORTS.fullscreen' | translate\"\r\n\t\t>\r\n\t\t\t<mat-icon>fullscreen</mat-icon>\r\n\t\t</button>\r\n\t</chart-panel-header>\r\n\r\n\t<app-graph-chart\r\n\t\t#graphChart\r\n\t\tclass=\"ndf-report__content graph-chart\"\r\n\t\t[config]=\"config\"\r\n\t\t[data]=\"data\"\r\n\t></app-graph-chart>\r\n\r\n\t<chart-panel-footer class=\"ndf-report__footer flex-wrap\">\r\n\t\t<app-report-actions\r\n\t\t\t[config]=\"config\"\r\n\t\t\t(print)=\"printChart()\"\r\n\t\t\t(navigate)=\"navigate()\"\r\n\t\t\t(open)=\"onOpen.emit(null)\"\r\n\t\t></app-report-actions>\r\n\r\n\t\t<chart-type-selector\r\n [config]=\"config?.typeConfig\"\r\n\t\t\t[direction]=\"direction\"\r\n\t\t\t[type]=\"chartType$ | async\"\r\n\t\t\t(typeChange)=\"changeChartType($event)\"\r\n\t\t></chart-type-selector>\r\n\t</chart-panel-footer>\r\n</chart-panel>\r\n", styles: [".ndf-report{display:flex;flex-direction:column;min-width:0;max-width:100%;flex-grow:1}.ndf-report__content{position:relative;padding-block:.5rem;flex-grow:1;min-width:0;max-width:100%}.chart-actions{border:var(--chart-actions-border, 1px solid var(--border-color))}.chart-actions__item{background:var(--chart-actions-background, transparent);color:var(--chart-actions-color, currentColor);box-shadow:var(--chart-actions-shadow, unset);width:var(--chart-actions-width, 35px);height:var(--chart-actions-height, 35px);border-radius:var(--chart-actions-border-radius, 4px);flex-grow:1;display:grid;place-items:center}.chart-actions__item .mat-icon{color:var(--main-color, currentColor)}.chart-actions__item:hover{--chart-actions-shadow: var(--chart-actions-hover-shadow, 0 0 0 1px var(--main-color))}.chart-actions__item.selected{--chart-actions-background: var(--chart-actions-active-background, var(--main-color));--chart-actions-color: var(--chart-actions-active-color, var(--main-hover))}.chart-actions__item.selected .mat-icon{color:currentColor!important}@media print{.chart-actions{display:none}}:host{min-width:0;max-width:100%}\n"], components: [{ type: ChartPanel, selector: "chart-panel" }, { type: ChartPanelHeaderComponent, selector: "chart-panel-header" }, { type: i2__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: GraphChartComponent, selector: "app-graph-chart" }, { type: ChartPanelFooterComponent, selector: "chart-panel-footer" }, { type: ReportActionsComponent, selector: "app-report-actions", inputs: ["config"], outputs: ["navigate", "open", "print"] }, { type: ChartTypeSelectorComponent, selector: "chart-type-selector", inputs: ["direction", "config", "type"], outputs: ["typeChange"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7__namespace.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], pipes: { "async": i4__namespace$1.AsyncPipe, "translate": i1__namespace.TranslatePipe } });
46500
+ GraphReportComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: GraphReportComponent, selector: "app-graph-report", host: { classAttribute: "graph-report flex flex-col flex-grow" }, providers: [ChartThemeService], viewQueries: [{ propertyName: "graphChartComponent", first: true, predicate: ["graphChart"], descendants: true }], usesInheritance: true, ngImport: i0__namespace, template: "<chart-panel *ngIf=\"config$ | async as config\" class=\"ndf-report chart-report\">\r\n\t<chart-panel-header class=\"ndf-report__header mb-3\">\r\n\t\t<span>\r\n\t\t\t{{ config.label | translate }}\r\n\t\t</span>\r\n\t\t<button\r\n\t\t\t*ngIf=\"config?.dialog?.active\"\r\n\t\t\tclass=\"dialog-button print:hidden\"\r\n\t\t\t(click)=\"openGraphDialog()\"\r\n\t\t\t[matTooltip]=\"'REPORTS.fullscreen' | translate\"\r\n\t\t>\r\n\t\t\t<mat-icon>fullscreen</mat-icon>\r\n\t\t</button>\r\n\t</chart-panel-header>\r\n\r\n\t<app-graph-chart\r\n\t\t#graphChart\r\n\t\tclass=\"ndf-report__content graph-chart\"\r\n\t\t[config]=\"config\"\r\n\t\t[data]=\"data\"\r\n\t></app-graph-chart>\r\n\r\n\t<chart-panel-footer class=\"ndf-report__footer flex-wrap\">\r\n\t\t<app-report-actions\r\n\t\t\t[config]=\"config\"\r\n\t\t\t(print)=\"printChart()\"\r\n\t\t\t(navigate)=\"navigate()\"\r\n\t\t\t(open)=\"onOpen.emit(null)\"\r\n\t\t></app-report-actions>\r\n\r\n\t\t<chart-type-selector\r\n [config]=\"config?.typeConfig\"\r\n\t\t\t[direction]=\"direction\"\r\n\t\t\t[type]=\"chartType$ | async\"\r\n\t\t\t(typeChange)=\"changeChartType($event)\"\r\n\t\t></chart-type-selector>\r\n\t</chart-panel-footer>\r\n</chart-panel>\r\n", styles: [".ndf-report{display:flex;flex-direction:column;min-width:0;max-width:100%;flex-grow:1}.ndf-report__content{position:relative;padding-block:.5rem;flex-grow:1;min-width:0;max-width:100%}.chart-actions{border:var(--chart-actions-border, 1px solid var(--border-color))}.chart-actions__item{background:var(--chart-actions-background, transparent);color:var(--chart-actions-color, currentColor);box-shadow:var(--chart-actions-shadow, unset);width:var(--chart-actions-width, 35px);height:var(--chart-actions-height, 35px);border-radius:var(--chart-actions-border-radius, 4px);flex-grow:1;display:grid;place-items:center}.chart-actions__item .mat-icon{color:var(--main-color, currentColor)}.chart-actions__item:hover{--chart-actions-shadow: var(--chart-actions-hover-shadow, 0 0 0 1px var(--main-color))}.chart-actions__item.selected{--chart-actions-background: var(--chart-actions-active-background, var(--main-color));--chart-actions-color: var(--chart-actions-active-color, var(--main-hover))}.chart-actions__item.selected .mat-icon{color:currentColor!important}@media print{.chart-actions{display:none}}:host{min-width:0;max-width:100%}\n"], components: [{ type: ChartPanel, selector: "chart-panel" }, { type: ChartPanelHeaderComponent, selector: "chart-panel-header" }, { type: i2__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: GraphChartComponent, selector: "app-graph-chart" }, { type: ChartPanelFooterComponent, selector: "chart-panel-footer" }, { type: ReportActionsComponent, selector: "app-report-actions", inputs: ["config"], outputs: ["navigate", "open", "print"] }, { type: ChartTypeSelectorComponent, selector: "chart-type-selector", inputs: ["direction", "config", "type"], outputs: ["typeChange"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7__namespace.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], pipes: { "async": i4__namespace$1.AsyncPipe, "translate": i1__namespace.TranslatePipe } });
46279
46501
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: GraphReportComponent, decorators: [{
46280
46502
  type: i0.Component,
46281
46503
  args: [{
@@ -46284,7 +46506,8 @@
46284
46506
  styleUrls: ['./graph-report.component.scss'],
46285
46507
  host: {
46286
46508
  class: 'graph-report flex flex-col flex-grow'
46287
- }
46509
+ },
46510
+ providers: [ChartThemeService]
46288
46511
  }]
46289
46512
  }], propDecorators: { graphChartComponent: [{
46290
46513
  type: i0.ViewChild,
@@ -46487,14 +46710,21 @@
46487
46710
  _this._timelineService = _this.injector.get(DynamicTimelineReportService);
46488
46711
  _this._criteria$ = _this.criteria$.pipe(operators.distinctUntilChanged(function (a, b) { return ___default["default"].isEqual(a, b); }));
46489
46712
  _this.selectedGroup$ = _this._timelineService.selectedGroup$;
46490
- _this.filterCriteria$ = rxjs.combineLatest([_this._criteria$, _this._timelineService.selectedGroup$]).pipe(operators.map(function (_a) {
46491
- var _b = __read(_a, 1), criteria = _b[0];
46713
+ _this.filterCriteria$ = rxjs.combineLatest([_this._criteria$, _this._timelineService.selectedGroup$]).pipe(operators.map(function (_b) {
46714
+ var _c = __read(_b, 1), criteria = _c[0];
46492
46715
  return ___default["default"].cloneDeep(___default["default"].merge(criteria || {}, _this._timelineService.prepareSelectedGroups(_this.config)));
46493
46716
  }));
46494
46717
  _this.report$ = rxjs.combineLatest([_this.config$, _this._criteria$, _this._timelineService.rebuild$]).pipe(_this._timelineService.prepareData());
46495
46718
  _this._subscribeToLanguage();
46496
46719
  return _this;
46497
46720
  }
46721
+ DynamicTimelineReportComponent.prototype.ngAfterViewInit = function () {
46722
+ this._setupThemeWatcher();
46723
+ };
46724
+ DynamicTimelineReportComponent.prototype.ngOnDestroy = function () {
46725
+ _super.prototype.ngOnDestroy.call(this);
46726
+ this._chartThemeService.destroy();
46727
+ };
46498
46728
  DynamicTimelineReportComponent.prototype._subscribeToLanguage = function () {
46499
46729
  var _this = this;
46500
46730
  this._translateService.onLangChange
@@ -46517,10 +46747,25 @@
46517
46747
  DynamicTimelineReportComponent.prototype.openDetails = function () {
46518
46748
  this.onOpen.emit(this._timelineService.payload);
46519
46749
  };
46750
+ DynamicTimelineReportComponent.prototype._setupThemeWatcher = function () {
46751
+ var _this = this;
46752
+ this._chartThemeService.theme$
46753
+ .pipe(operators.filter(function (value) { return value !== _this._initialTheme && !!_this._definition; }), operators.takeUntil(this.destroy$))
46754
+ .subscribe(function (theme) {
46755
+ _this._initialTheme = theme;
46756
+ var _a = _this._configSub.getValue(), chart = _a.chart, config = __rest(_a, ["chart"]);
46757
+ var data = ___default["default"].merge({}, _this._definition, {
46758
+ chart: {
46759
+ type: chart.type
46760
+ }
46761
+ });
46762
+ _this._configSub.next(_this._prepareConfig(data));
46763
+ });
46764
+ };
46520
46765
  return DynamicTimelineReportComponent;
46521
46766
  }(BaseGraphReport));
46522
46767
  DynamicTimelineReportComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: DynamicTimelineReportComponent, deps: [{ token: i0__namespace.Injector }], target: i0__namespace.ɵɵFactoryTarget.Component });
46523
- DynamicTimelineReportComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DynamicTimelineReportComponent, selector: "app-dynamic-timeline-report", host: { classAttribute: "timeline-report flex flex-col flex-grow" }, providers: [DynamicTimelineReportService], viewQueries: [{ propertyName: "graphChartComponent", first: true, predicate: ["graphChart"], descendants: true }], usesInheritance: true, ngImport: i0__namespace, template: "<chart-panel *ngIf=\"report$ | async as report; else noData\" class=\"ndf-report\">\r\n\t<chart-panel-header class=\"ndf-report__header mb-3\">\r\n\t\t<span>\r\n\t\t\t{{ config.label | translate }}\r\n\t\t</span>\r\n\r\n\t\t<button\r\n\t\t\t*ngIf=\"config?.dialog?.active\"\r\n\t\t\tclass=\"dialog-button print:hidden\"\r\n\t\t\t(click)=\"openTimelineDialog()\"\r\n\t\t\t[matTooltip]=\"'REPORTS.fullscreen' | translate\"\r\n\t\t>\r\n\t\t\t<mat-icon>fullscreen</mat-icon>\r\n\t\t</button>\r\n\t</chart-panel-header>\r\n\r\n\t<app-graph-chart\r\n\t\t#graphChart\r\n\t\tclass=\"ndf-report__content ndf-report__content timeline-chart\"\r\n\t\t[config]=\"report.config\"\r\n\t\t[criteria]=\"filterCriteria$ | async\"\r\n\t\t[data]=\"report.data\"\r\n\t></app-graph-chart>\r\n\r\n\t<chart-panel-footer class=\"ndf-report__footer \">\r\n\t\t<div class=\"chart-actions flex items-center rounded-lg gap-2 flex-wrap p-1\">\r\n\t\t\t<button\r\n\t\t\t\tclass=\"print-button chart-actions__item\"\r\n\t\t\t\t(click)=\"printChart()\"\r\n\t\t\t\t[matTooltip]=\"'REPORTS.print' | translate\"\r\n\t\t\t\t*ngIf=\"config?.print\"\r\n\t\t\t>\r\n\t\t\t\t<mat-icon>print</mat-icon>\r\n\t\t\t</button>\r\n\t\t\t<button\r\n\t\t\t\tclass=\"navigate-button chart-actions__item\"\r\n\t\t\t\t(click)=\"navigate()\"\r\n\t\t\t\t*ngIf=\"config?.navigate?.enabled\"\r\n\t\t\t\t[matTooltip]=\"'REPORTS.enabled' | translate\"\r\n\t\t\t>\r\n\t\t\t\t<mat-icon>send</mat-icon>\r\n\t\t\t</button>\r\n\r\n\t\t\t<button\r\n\t\t\t\tclass=\"navigate-button chart-actions__item\"\r\n\t\t\t\t(click)=\"openDetails()\"\r\n\t\t\t\t*ngIf=\"config?.details?.enabled\"\r\n\t\t\t\t[matTooltip]=\"'REPORTS.details' | translate\"\r\n\t\t\t>\r\n\t\t\t\t<mat-icon>info</mat-icon>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t\t<time-group-selector\r\n\t\t\t*ngIf=\"config?.group?.active ?? true\"\r\n\t\t\t[group]=\"selectedGroup$ | async\"\r\n\t\t\t(groupChange)=\"changeGroup($event)\"\r\n\t\t></time-group-selector>\r\n\t</chart-panel-footer>\r\n</chart-panel>\r\n\r\n<ng-template #noData>\r\n\t<chart-panel class=\"ndf-report\">\r\n\t\t<chart-panel-header class=\"ndf-report__header mb-3\">\r\n\t\t\t{{ config.label | translate }}\r\n\t\t</chart-panel-header>\r\n\t\t<app-skeleton\r\n\t\t\tanimation=\"opacity\"\r\n\t\t\tclass=\"ndf-report__content ndf-report__content timeline-chart\"\r\n\t\t\theight=\"220px\"\r\n\t\t></app-skeleton>\r\n\t</chart-panel>\r\n</ng-template>\r\n", styles: [".ndf-report{display:flex;flex-direction:column;min-width:0;max-width:100%;flex-grow:1}.ndf-report__content{position:relative;padding-block:.5rem;flex-grow:1;min-width:0;max-width:100%}.chart-actions{border:var(--chart-actions-border, 1px solid var(--border-color))}.chart-actions__item{background:var(--chart-actions-background, transparent);color:var(--chart-actions-color, currentColor);box-shadow:var(--chart-actions-shadow, unset);width:var(--chart-actions-width, 35px);height:var(--chart-actions-height, 35px);border-radius:var(--chart-actions-border-radius, 4px);flex-grow:1;display:grid;place-items:center}.chart-actions__item .mat-icon{color:var(--main-color, currentColor)}.chart-actions__item:hover{--chart-actions-shadow: var(--chart-actions-hover-shadow, 0 0 0 1px var(--main-color))}.chart-actions__item.selected{--chart-actions-background: var(--chart-actions-active-background, var(--main-color));--chart-actions-color: var(--chart-actions-active-color, var(--main-hover))}.chart-actions__item.selected .mat-icon{color:currentColor!important}@media print{.chart-actions{display:none}}:host{min-width:0;max-width:100%}.timeline-chart{display:var(--ndf-report-display, flex);flex-direction:var(--ndf-report-direction, column);justify-content:var(--ndf-report-justify-content, center);align-items:var(--ndf-report-align-items, center)}\n"], components: [{ type: ChartPanel, selector: "chart-panel" }, { type: ChartPanelHeaderComponent, selector: "chart-panel-header" }, { type: i2__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: GraphChartComponent, selector: "app-graph-chart" }, { type: ChartPanelFooterComponent, selector: "chart-panel-footer" }, { type: TimeGroupSelectorComponent, selector: "time-group-selector", inputs: ["direction", "group"], outputs: ["groupChange"] }, { type: SkeletonComponent, selector: "app-skeleton", inputs: ["styleClass", "style", "shape", "animation", "radius", "size", "width", "height", "randomWidth"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7__namespace.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], pipes: { "async": i4__namespace$1.AsyncPipe, "translate": i1__namespace.TranslatePipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
46768
+ DynamicTimelineReportComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DynamicTimelineReportComponent, selector: "app-dynamic-timeline-report", host: { classAttribute: "timeline-report flex flex-col flex-grow" }, providers: [DynamicTimelineReportService, ChartThemeService], viewQueries: [{ propertyName: "graphChartComponent", first: true, predicate: ["graphChart"], descendants: true }], usesInheritance: true, ngImport: i0__namespace, template: "<chart-panel *ngIf=\"report$ | async as report; else noData\" class=\"ndf-report\">\r\n\t<chart-panel-header class=\"ndf-report__header mb-3\">\r\n\t\t<span>\r\n\t\t\t{{ config.label | translate }}\r\n\t\t</span>\r\n\r\n\t\t<button\r\n\t\t\t*ngIf=\"config?.dialog?.active\"\r\n\t\t\tclass=\"dialog-button print:hidden\"\r\n\t\t\t(click)=\"openTimelineDialog()\"\r\n\t\t\t[matTooltip]=\"'REPORTS.fullscreen' | translate\"\r\n\t\t>\r\n\t\t\t<mat-icon>fullscreen</mat-icon>\r\n\t\t</button>\r\n\t</chart-panel-header>\r\n\r\n\t<app-graph-chart\r\n\t\t#graphChart\r\n\t\tclass=\"ndf-report__content ndf-report__content timeline-chart\"\r\n\t\t[config]=\"report.config\"\r\n\t\t[criteria]=\"filterCriteria$ | async\"\r\n\t\t[data]=\"report.data\"\r\n\t></app-graph-chart>\r\n\r\n\t<chart-panel-footer class=\"ndf-report__footer \">\r\n\t\t<div class=\"chart-actions flex items-center rounded-lg gap-2 flex-wrap p-1\">\r\n\t\t\t<button\r\n\t\t\t\tclass=\"print-button chart-actions__item\"\r\n\t\t\t\t(click)=\"printChart()\"\r\n\t\t\t\t[matTooltip]=\"'REPORTS.print' | translate\"\r\n\t\t\t\t*ngIf=\"config?.print\"\r\n\t\t\t>\r\n\t\t\t\t<mat-icon>print</mat-icon>\r\n\t\t\t</button>\r\n\t\t\t<button\r\n\t\t\t\tclass=\"navigate-button chart-actions__item\"\r\n\t\t\t\t(click)=\"navigate()\"\r\n\t\t\t\t*ngIf=\"config?.navigate?.enabled\"\r\n\t\t\t\t[matTooltip]=\"'REPORTS.enabled' | translate\"\r\n\t\t\t>\r\n\t\t\t\t<mat-icon>send</mat-icon>\r\n\t\t\t</button>\r\n\r\n\t\t\t<button\r\n\t\t\t\tclass=\"navigate-button chart-actions__item\"\r\n\t\t\t\t(click)=\"openDetails()\"\r\n\t\t\t\t*ngIf=\"config?.details?.enabled\"\r\n\t\t\t\t[matTooltip]=\"'REPORTS.details' | translate\"\r\n\t\t\t>\r\n\t\t\t\t<mat-icon>info</mat-icon>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t\t<time-group-selector\r\n\t\t\t*ngIf=\"config?.group?.active ?? true\"\r\n\t\t\t[group]=\"selectedGroup$ | async\"\r\n\t\t\t(groupChange)=\"changeGroup($event)\"\r\n\t\t></time-group-selector>\r\n\t</chart-panel-footer>\r\n</chart-panel>\r\n\r\n<ng-template #noData>\r\n\t<chart-panel class=\"ndf-report\">\r\n\t\t<chart-panel-header class=\"ndf-report__header mb-3\">\r\n\t\t\t{{ config.label | translate }}\r\n\t\t</chart-panel-header>\r\n\t\t<app-skeleton\r\n\t\t\tanimation=\"opacity\"\r\n\t\t\tclass=\"ndf-report__content ndf-report__content timeline-chart\"\r\n\t\t\theight=\"220px\"\r\n\t\t></app-skeleton>\r\n\t</chart-panel>\r\n</ng-template>\r\n", styles: [".ndf-report{display:flex;flex-direction:column;min-width:0;max-width:100%;flex-grow:1}.ndf-report__content{position:relative;padding-block:.5rem;flex-grow:1;min-width:0;max-width:100%}.chart-actions{border:var(--chart-actions-border, 1px solid var(--border-color))}.chart-actions__item{background:var(--chart-actions-background, transparent);color:var(--chart-actions-color, currentColor);box-shadow:var(--chart-actions-shadow, unset);width:var(--chart-actions-width, 35px);height:var(--chart-actions-height, 35px);border-radius:var(--chart-actions-border-radius, 4px);flex-grow:1;display:grid;place-items:center}.chart-actions__item .mat-icon{color:var(--main-color, currentColor)}.chart-actions__item:hover{--chart-actions-shadow: var(--chart-actions-hover-shadow, 0 0 0 1px var(--main-color))}.chart-actions__item.selected{--chart-actions-background: var(--chart-actions-active-background, var(--main-color));--chart-actions-color: var(--chart-actions-active-color, var(--main-hover))}.chart-actions__item.selected .mat-icon{color:currentColor!important}@media print{.chart-actions{display:none}}:host{min-width:0;max-width:100%}.timeline-chart{display:var(--ndf-report-display, flex);flex-direction:var(--ndf-report-direction, column);justify-content:var(--ndf-report-justify-content, center);align-items:var(--ndf-report-align-items, center)}\n"], components: [{ type: ChartPanel, selector: "chart-panel" }, { type: ChartPanelHeaderComponent, selector: "chart-panel-header" }, { type: i2__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: GraphChartComponent, selector: "app-graph-chart" }, { type: ChartPanelFooterComponent, selector: "chart-panel-footer" }, { type: TimeGroupSelectorComponent, selector: "time-group-selector", inputs: ["direction", "group"], outputs: ["groupChange"] }, { type: SkeletonComponent, selector: "app-skeleton", inputs: ["styleClass", "style", "shape", "animation", "radius", "size", "width", "height", "randomWidth"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7__namespace.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], pipes: { "async": i4__namespace$1.AsyncPipe, "translate": i1__namespace.TranslatePipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
46524
46769
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: DynamicTimelineReportComponent, decorators: [{
46525
46770
  type: i0.Component,
46526
46771
  args: [{
@@ -46531,7 +46776,7 @@
46531
46776
  host: {
46532
46777
  class: 'timeline-report flex flex-col flex-grow'
46533
46778
  },
46534
- providers: [DynamicTimelineReportService]
46779
+ providers: [DynamicTimelineReportService, ChartThemeService]
46535
46780
  }]
46536
46781
  }], ctorParameters: function () { return [{ type: i0__namespace.Injector }]; }, propDecorators: { graphChartComponent: [{
46537
46782
  type: i0.ViewChild,
@@ -46577,51 +46822,6 @@
46577
46822
  args: ['customChart']
46578
46823
  }] } });
46579
46824
 
46580
- function mapToNdfTableConfig(report, details) {
46581
- var _a, _b, _c, _d, _e;
46582
- var _request = report.request;
46583
- var source = ___default["default"].merge((_a = report.reports) === null || _a === void 0 ? void 0 : _a.details, details).source;
46584
- var _detailsConfig = source;
46585
- var customUrl = ___default["default"].merge({
46586
- url: "/api/v1" + (_request === null || _request === void 0 ? void 0 : _request.customUrl.url),
46587
- method: _request === null || _request === void 0 ? void 0 : _request.customUrl.method
46588
- }, ((_b = _detailsConfig === null || _detailsConfig === void 0 ? void 0 : _detailsConfig.request) === null || _b === void 0 ? void 0 : _b.customUrl) || {});
46589
- var _headers = ((_c = _detailsConfig.request) === null || _c === void 0 ? void 0 : _c.headers) || _request.headers || {};
46590
- var _queryParam = ((_d = _detailsConfig.request) === null || _d === void 0 ? void 0 : _d.params) || _request.params || {};
46591
- var _sortingBy = ___default["default"].merge({
46592
- sortBy: 'dc:modified',
46593
- sortOrder: 'desc'
46594
- }, _detailsConfig.sortingBy || {});
46595
- var data = {
46596
- options: {
46597
- columns: _detailsConfig.columnsOptions,
46598
- filters: {
46599
- mode: 'payload',
46600
- fields: [],
46601
- panel: {
46602
- visible: false,
46603
- toggleButton: false
46604
- }
46605
- },
46606
- export: _detailsConfig === null || _detailsConfig === void 0 ? void 0 : _detailsConfig.export
46607
- },
46608
- pageNumber: 1,
46609
- pageSize: 10,
46610
- fullWidth: 'auto',
46611
- prefix: _detailsConfig.prefix || '',
46612
- fields: (_detailsConfig === null || _detailsConfig === void 0 ? void 0 : _detailsConfig.fields) || {},
46613
- pageProvider: _request.pageProvider || _detailsConfig.request.pageProvider,
46614
- columns: _detailsConfig.columns || [],
46615
- customUrl: customUrl,
46616
- headers: _headers,
46617
- queryParam: _queryParam,
46618
- quickFilters: _detailsConfig.quickFilters,
46619
- sortingBy: _sortingBy,
46620
- requestActions: (_e = _detailsConfig === null || _detailsConfig === void 0 ? void 0 : _detailsConfig.request) === null || _e === void 0 ? void 0 : _e.actions
46621
- };
46622
- return data;
46623
- }
46624
-
46625
46825
  var NdfReportComponent = /** @class */ (function (_super) {
46626
46826
  __extends(NdfReportComponent, _super);
46627
46827
  function NdfReportComponent() {
@@ -46632,6 +46832,16 @@
46632
46832
  _this.onOpen = new i0.EventEmitter();
46633
46833
  return _this;
46634
46834
  }
46835
+ Object.defineProperty(NdfReportComponent.prototype, "config", {
46836
+ get: function () {
46837
+ return this._config;
46838
+ },
46839
+ set: function (value) {
46840
+ this._config = value;
46841
+ },
46842
+ enumerable: false,
46843
+ configurable: true
46844
+ });
46635
46845
  return NdfReportComponent;
46636
46846
  }(DestroySubject));
46637
46847
  NdfReportComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NdfReportComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
@@ -46701,7 +46911,7 @@
46701
46911
  ]);
46702
46912
  var NdfReportsComponent = /** @class */ (function (_super) {
46703
46913
  __extends(NdfReportsComponent, _super);
46704
- function NdfReportsComponent(_translateService, _filtersMapper, _ndfReportsService, _chartHelperService, _transformService, _cdr, _filterQueryService, _stateService, _router, _ngZone) {
46914
+ function NdfReportsComponent(_translateService, _filtersMapper, _ndfReportsService, _chartHelperService, _transformService, _cdr, _filterQueryService, _stateService, _configurationService, _router, _ngZone) {
46705
46915
  var _this = _super.call(this) || this;
46706
46916
  _this._translateService = _translateService;
46707
46917
  _this._filtersMapper = _filtersMapper;
@@ -46711,6 +46921,7 @@
46711
46921
  _this._cdr = _cdr;
46712
46922
  _this._filterQueryService = _filterQueryService;
46713
46923
  _this._stateService = _stateService;
46924
+ _this._configurationService = _configurationService;
46714
46925
  _this._router = _router;
46715
46926
  _this._ngZone = _ngZone;
46716
46927
  _this._isHeightUpdated = false;
@@ -46748,25 +46959,6 @@
46748
46959
  enumerable: false,
46749
46960
  configurable: true
46750
46961
  });
46751
- Object.defineProperty(NdfReportsComponent.prototype, "config", {
46752
- get: function () {
46753
- return this._configSubject.getValue();
46754
- },
46755
- set: function (config) {
46756
- var value = ___default["default"].cloneDeep(config);
46757
- this._checkConfigChange(value);
46758
- this._configSubject.next(value);
46759
- if (value === null || value === void 0 ? void 0 : value.activeQuery) {
46760
- this._updateActiveQuery(value === null || value === void 0 ? void 0 : value.activeQuery);
46761
- this._filtersCriteriaSubject.next(this._prepareMappedQuery(value === null || value === void 0 ? void 0 : value.activeQuery, this.filtersConfig.mode));
46762
- }
46763
- this.isPanelOpened = false;
46764
- this.isDetailsOpened = false;
46765
- this._reportDetailsSubject.next(null);
46766
- },
46767
- enumerable: false,
46768
- configurable: true
46769
- });
46770
46962
  Object.defineProperty(NdfReportsComponent.prototype, "filtersConfig", {
46771
46963
  get: function () {
46772
46964
  var _a;
@@ -46783,10 +46975,34 @@
46783
46975
  enumerable: false,
46784
46976
  configurable: true
46785
46977
  });
46978
+ Object.defineProperty(NdfReportsComponent.prototype, "config", {
46979
+ get: function () {
46980
+ return this._configSubject.getValue();
46981
+ },
46982
+ set: function (config) {
46983
+ this._config = config;
46984
+ },
46985
+ enumerable: false,
46986
+ configurable: true
46987
+ });
46786
46988
  NdfReportsComponent.prototype.ngOnInit = function () {
46787
46989
  this.reportsData$ = this._prepareReports();
46788
46990
  this._handleKeyboardEvent();
46789
46991
  };
46992
+ NdfReportsComponent.prototype.ngOnChanges = function (changes) {
46993
+ var _a, _b;
46994
+ var reportsKey = (_a = changes.reportsKey) === null || _a === void 0 ? void 0 : _a.currentValue;
46995
+ var config = (_b = changes.config) === null || _b === void 0 ? void 0 : _b.currentValue;
46996
+ if (reportsKey && config) {
46997
+ throw new Error('You cannot set both reportsKey and reports Config at the same time.');
46998
+ }
46999
+ if (config) {
47000
+ this._initReportsConfig(config);
47001
+ }
47002
+ if (reportsKey) {
47003
+ this._loadReportsConfig(reportsKey);
47004
+ }
47005
+ };
46790
47006
  NdfReportsComponent.prototype.onNavigate = function (data) {
46791
47007
  var _a, _b, _c;
46792
47008
  var report = data === null || data === void 0 ? void 0 : data.report;
@@ -46837,10 +47053,34 @@
46837
47053
  this.fluidDirective.scheduleSetHeight(100);
46838
47054
  }
46839
47055
  };
46840
- NdfReportsComponent.prototype.openReportDetails = function (_, rConfig) {
46841
- this._reportDetailsSubject.next({
46842
- config: mapToNdfTableConfig(this.config, rConfig.details),
46843
- label: rConfig.label
47056
+ NdfReportsComponent.prototype.openReportDetails = function (criteriaModel, reportConfig) {
47057
+ var _this = this;
47058
+ var _a, _b;
47059
+ if (!((_a = reportConfig === null || reportConfig === void 0 ? void 0 : reportConfig.details) === null || _a === void 0 ? void 0 : _a.enabled)) {
47060
+ return;
47061
+ }
47062
+ var source = (_b = reportConfig === null || reportConfig === void 0 ? void 0 : reportConfig.details) === null || _b === void 0 ? void 0 : _b.source;
47063
+ var config$ = source && typeof source === 'string'
47064
+ ? this._configurationService.getTableConfiguration(source).pipe(operators.map(function (config) {
47065
+ return ___default["default"].merge(config, {
47066
+ options: {
47067
+ filters: {
47068
+ mode: 'payload',
47069
+ fields: [],
47070
+ panel: {
47071
+ visible: false,
47072
+ toggleButton: false
47073
+ }
47074
+ }
47075
+ }
47076
+ });
47077
+ }))
47078
+ : rxjs.of(mapToNdfTableConfig(this.config, reportConfig.details));
47079
+ config$.pipe(operators.takeUntil(this.destroy$)).subscribe(function (config) {
47080
+ _this._reportDetailsSubject.next({
47081
+ config: config,
47082
+ label: reportConfig.label
47083
+ });
46844
47084
  });
46845
47085
  };
46846
47086
  NdfReportsComponent.prototype.closeDetailsPanel = function () {
@@ -46939,10 +47179,33 @@
46939
47179
  var _a = this._configSubject.getValue() || {}, aq = _a.activeQuery, currentConfig = __rest(_a, ["activeQuery"]);
46940
47180
  this._isConfigChanged = !___default["default"].isEqual(currentConfig, config);
46941
47181
  };
47182
+ NdfReportsComponent.prototype._loadReportsConfig = function (key) {
47183
+ var _this = this;
47184
+ this._configurationService
47185
+ .getReportsConfiguration(key)
47186
+ .pipe(operators.takeUntil(this.destroy$))
47187
+ .subscribe(function (config) {
47188
+ if (config) {
47189
+ _this._initReportsConfig(config);
47190
+ }
47191
+ });
47192
+ };
47193
+ NdfReportsComponent.prototype._initReportsConfig = function (config) {
47194
+ var value = ___default["default"].cloneDeep(config);
47195
+ this._checkConfigChange(value);
47196
+ this._configSubject.next(value);
47197
+ if (value === null || value === void 0 ? void 0 : value.activeQuery) {
47198
+ this._updateActiveQuery(value === null || value === void 0 ? void 0 : value.activeQuery);
47199
+ this._filtersCriteriaSubject.next(this._prepareMappedQuery(value === null || value === void 0 ? void 0 : value.activeQuery, this.filtersConfig.mode));
47200
+ }
47201
+ this.isPanelOpened = false;
47202
+ this.isDetailsOpened = false;
47203
+ this._reportDetailsSubject.next(null);
47204
+ };
46942
47205
  return NdfReportsComponent;
46943
47206
  }(DestroySubject));
46944
- NdfReportsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NdfReportsComponent, deps: [{ token: i1__namespace.TranslateService }, { token: FiltersMapperService }, { token: NdfReportsService }, { token: ChartManagerService }, { token: ReportTransformService }, { token: i0__namespace.ChangeDetectorRef }, { token: FilterQueryService }, { token: ReportsStateService }, { token: i1__namespace$5.Router }, { token: i0__namespace.NgZone }], target: i0__namespace.ɵɵFactoryTarget.Component });
46945
- NdfReportsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfReportsComponent, selector: "app-ndf-reports", inputs: { jsonEditorEnabled: "jsonEditorEnabled", reportsKey: "reportsKey", navigateRoute: "navigateRoute", config: "config" }, outputs: { onQueryChange: "onQueryChange" }, host: { properties: { "dir": "direction" }, classAttribute: "ndf-reports" }, viewQueries: [{ propertyName: "fluidDirective", first: true, predicate: FluidHeightDirective, descendants: true }], usesInheritance: true, ngImport: i0__namespace, template: "<div\r\n\t*ngIf=\"reportsData$ | async as reports\"\r\n\tclass=\"ndf-reports__container\"\r\n\t[class.panel-opened]=\"isPanelOpened && filtersConfig\"\r\n\t[dir]=\"direction\"\r\n\tndfFluidHeight\r\n>\r\n\t<div class=\"ndf-reports__panel print:hidden\" *ngIf=\"!!filtersConfig?.fields?.length\">\r\n\t\t<app-filters-panel\r\n\t\t\t[fields]=\"filtersConfig?.fields\"\r\n\t\t\t[aggregations]=\"aggregations\"\r\n\t\t\t(filterChanged)=\"filterChanged($event)\"\r\n\t\t\t[activeQuery]=\"activeFiltersQuery$ | async\"\r\n\t\t\tclass=\"ndf-reports__filters\"\r\n\t\t></app-filters-panel>\r\n\t</div>\r\n\r\n\t<div class=\"ndf-reports__content\" (scrolled)=\"onContentScroll($event)\">\r\n\t\t<div class=\"ndf-reports__header flex pt-4 print:hidden\">\r\n\t\t\t<button mat-stroked-button class=\"toggle-button\" (click)=\"togglePanel()\">\r\n\t\t\t\t<mat-icon> filter_alt</mat-icon>\r\n\t\t\t</button>\r\n\t\t\t<app-editor-button\r\n\t\t\t\t*ngIf=\"jsonEditorEnabled && reportsKey\"\r\n\t\t\t\t[key]=\"reportsKey\"\r\n\t\t\t\t[type]=\"editorType\"\r\n\t\t\t></app-editor-button>\r\n\t\t\t<button mat-stroked-button *ngIf=\"config?.options?.print\" class=\"print-button\" (click)=\"printAll()\">\r\n\t\t\t\t<mat-icon> print</mat-icon>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t\t<mat-spinner *ngIf=\"isLoadingResult\" class=\"mt-5 mx-auto\" [diameter]=\"48\"></mat-spinner>\r\n\r\n\t\t<div class=\"reports-grid\" *ngIf=\"!isLoadingResult\">\r\n\t\t\t<app-ndf-report\r\n\t\t\t\t*ngFor=\"let config of reportConfig.items; trackBy: trackByFn\"\r\n\t\t\t\t[config]=\"config\"\r\n\t\t\t\t[data]=\"reports?.response\"\r\n\t\t\t\t[criteria]=\"filtersParams$ | async\"\r\n\t\t\t\t[direction]=\"direction\"\r\n\t\t\t\t[attr.data-width]=\"config?.layout?.width || 4\"\r\n\t\t\t\t[attr.data-height]=\"config?.layout?.height || 'auto'\"\r\n\t\t\t\t[attr.data-start-column]=\"config?.layout?.columnPosition || 'auto'\"\r\n\t\t\t\t[attr.data-start-row]=\"config?.layout?.rowPosition || 'auto'\"\r\n\t\t\t\t[class.wide]=\"config?.layout?.width >= 6\"\r\n\t\t\t\tclass=\"reports-grid__item {{ config?.layout?.styleClass }} \"\r\n\t\t\t\t(onNavigate)=\"onNavigate($event)\"\r\n\t\t\t\t(onOpen)=\"openReportDetails($event, config)\"\r\n\t\t\t></app-ndf-report>\r\n\t\t</div>\r\n\t</div>\r\n\t<div\r\n\t\tclass=\"ndf-reports__details print:hidden\"\r\n\t\t[class.opened]=\"showDetails\"\r\n\t\t[@slideInOut]=\"showDetails ? 'open' : 'closed'\"\r\n\t\t(@slideInOut.done)=\"onDetailsAnimationEnd($event)\"\r\n\t>\r\n\t\t<app-ndf-table\r\n\t\t\t*ngIf=\"reportDetails$ | async as report\"\r\n\t\t\t[config]=\"report.config\"\r\n\t\t\t[activeQuery]=\"activeFiltersQuery$ | async\"\r\n\t\t\t[customCriteria]=\"filtersParams$ | async\"\r\n\t\t>\r\n\t\t\t<ng-template searchTableTemplate>\r\n\t\t\t\t<div class=\"ndf-reports__details__header flex gap-2\">\r\n\t\t\t\t\t<button mat-stroked-button class=\"toggle-button\" (click)=\"togglePanel()\">\r\n\t\t\t\t\t\t<mat-icon> filter_alt</mat-icon>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<button mat-stroked-button class=\"close-button\" (click)=\"closeDetailsPanel()\">\r\n\t\t\t\t\t\t<mat-icon> close</mat-icon>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</div>\r\n\t\t\t\t<h3>\r\n\t\t\t\t\t{{ report.label | translate }}\r\n\t\t\t\t</h3>\r\n\t\t\t</ng-template>\r\n\t\t</app-ndf-table>\r\n\t</div>\r\n</div>\r\n", styles: [":host{padding-inline:var(--ndf-reports-inline-padding, 0);padding-block:var(--ndf-reports-block-padding, .5rem 0);height:100%;position:relative;display:flex;flex-direction:column;background-color:var(--ndf-reports-background, #fff);box-sizing:border-box;max-width:100%;flex:0 0 100%}:host:before,:host:after{box-sizing:border-box}:host[dir=ltr]{--ndf-reports-panel-translateX: -100%;--ndf-reports-details-translateX: 100%}.ndf-reports__header{background-color:var(--ndf-reports-background, #fff);flex-direction:var(--ndf-reports-header-direction, row);justify-content:var(--ndf-reports-header-justify, space-between);align-items:var(--ndf-reports-header-items, center);padding-inline:var(--ndf-reports-header-padding-inline, .5rem);padding-block:var(--ndf-reports-header-padding-block, 0 .5rem);position:var(--ndf-reports-header-position, sticky);top:0;z-index:1}.ndf-reports__header__actions{justify-content:var(--ndf-reports-actions-justify, flex-end)}.ndf-reports__header__custom-actions .toggle-button{min-width:0;padding:0 10px}.ndf-reports__container{--panel-width: var(--ndf-reports-panel-width, 18rem);position:relative;overflow:var(--ndf-reports-container-overflow, hidden);display:grid;transition:all .2s;max-width:100%;width:100%;height:var(--ndf-reports-height, calc(var(--ndf-fluid-height) - calc(var(--ndf-reports-block-padding, 1rem) * 2.5)));flex-grow:1;grid-gap:var(--ndf-table-container-gap, .5rem);gap:var(--ndf-table-container-gap, .5rem)}.ndf-reports__container.panel-opened{--ndf-details-margin: var(--panel-width);--ndf-reports-panel-translateX: 0;--ndf-reports-content-margin: var(--panel-width)}@media print{.ndf-reports__container{--ndf-reports-container-overflow: visible;height:100%}}.ndf-reports__panel,.ndf-reports__content .ndf-reports__details{overflow:auto;transition:all .2s}.ndf-reports__panel{position:absolute;width:var(--panel-width);height:100%;transform:translate(var(--ndf-reports-panel-translateX, 100%));padding-inline:var(--ndf-reports-panel-inline-padding, .5rem);padding-block:var(--ndf-reports-panel-block-padding, .5rem);background:var(--ndf-reports-panel-background, #fff);z-index:1}.ndf-reports__content{flex-grow:1;padding-inline-start:var(--ndf-reports-content-margin, 1rem);padding-inline-end:var(--ndf-reports-content-pie, 1rem);padding-block:var(--ndf-reports-content-pb, 0 1rem);overflow-y:var(--ndf-reports-content-overflow-y, auto);position:relative;display:flex;flex-direction:column}@media print{.ndf-reports__content{--ndf-reports-content-overflow-y: visible}}.ndf-reports__details{position:absolute;inset-inline-end:0;width:calc(100% - var(--ndf-details-margin, 0px));height:100%;transform:translate(var(--ndf-reports-details-translateX, -100%));padding-inline:var(--ndf-reports-details-inline-padding, 0rem);flex-grow:1;padding-block:var(--ndf-reports-details-block-padding, 0rem);background:var(--ndf-reports-details-background, #fff);z-index:1;transition:all .2s}.reports-grid{--grid-columns: 12;--column-width: calc(100% / var(--grid-columns));display:grid;grid-gap:var(--reports-grid-gap, 1.5rem);gap:var(--reports-grid-gap, 1.5rem);grid-template-columns:var(--rg-columns, repeat(var(--grid-columns), 1fr));margin-block:var(--reports-grid-margin-block, 1.25rem 0);padding-inline:var(--reports-grid-padding-inline, .5rem)}.reports-grid__item{display:grid;grid-gap:.3rem;gap:.3rem;min-width:0;text-align:center;vertical-align:middle}.reports-grid__item[data-width=\"1\"]{--col-span: span 1}.reports-grid__item[data-start-column=\"1\"]{--col-start: 1}.reports-grid__item[data-start-row=\"1\"]{--row-start: 1}.reports-grid__item[data-height=\"1\"]{--row-span: 1}.reports-grid__item[data-width=\"2\"]{--col-span: span 2}.reports-grid__item[data-start-column=\"2\"]{--col-start: 2}.reports-grid__item[data-start-row=\"2\"]{--row-start: 2}.reports-grid__item[data-height=\"2\"]{--row-span: 2}.reports-grid__item[data-width=\"3\"]{--col-span: span 3}.reports-grid__item[data-start-column=\"3\"]{--col-start: 3}.reports-grid__item[data-start-row=\"3\"]{--row-start: 3}.reports-grid__item[data-height=\"3\"]{--row-span: 3}.reports-grid__item[data-width=\"4\"]{--col-span: span 4}.reports-grid__item[data-start-column=\"4\"]{--col-start: 4}.reports-grid__item[data-start-row=\"4\"]{--row-start: 4}.reports-grid__item[data-height=\"4\"]{--row-span: 4}.reports-grid__item[data-width=\"5\"]{--col-span: span 5}.reports-grid__item[data-start-column=\"5\"]{--col-start: 5}.reports-grid__item[data-start-row=\"5\"]{--row-start: 5}.reports-grid__item[data-height=\"5\"]{--row-span: 5}.reports-grid__item[data-width=\"6\"]{--col-span: span 6}.reports-grid__item[data-start-column=\"6\"]{--col-start: 6}.reports-grid__item[data-start-row=\"6\"]{--row-start: 6}.reports-grid__item[data-height=\"6\"]{--row-span: 6}.reports-grid__item[data-width=\"7\"]{--col-span: span 7}.reports-grid__item[data-start-column=\"7\"]{--col-start: 7}.reports-grid__item[data-start-row=\"7\"]{--row-start: 7}.reports-grid__item[data-height=\"7\"]{--row-span: 7}.reports-grid__item[data-width=\"8\"]{--col-span: span 8}.reports-grid__item[data-start-column=\"8\"]{--col-start: 8}.reports-grid__item[data-start-row=\"8\"]{--row-start: 8}.reports-grid__item[data-height=\"8\"]{--row-span: 8}.reports-grid__item[data-width=\"9\"]{--col-span: span 9}.reports-grid__item[data-start-column=\"9\"]{--col-start: 9}.reports-grid__item[data-start-row=\"9\"]{--row-start: 9}.reports-grid__item[data-height=\"9\"]{--row-span: 9}.reports-grid__item[data-width=\"10\"]{--col-span: span 10}.reports-grid__item[data-start-column=\"10\"]{--col-start: 10}.reports-grid__item[data-start-row=\"10\"]{--row-start: 10}.reports-grid__item[data-height=\"10\"]{--row-span: 10}.reports-grid__item[data-width=\"11\"]{--col-span: span 11}.reports-grid__item[data-start-column=\"11\"]{--col-start: 11}.reports-grid__item[data-start-row=\"11\"]{--row-start: 11}.reports-grid__item[data-height=\"11\"]{--row-span: 11}.reports-grid__item[data-width=\"12\"]{--col-span: span 12}.reports-grid__item[data-start-column=\"12\"]{--col-start: 12}.reports-grid__item[data-start-row=\"12\"]{--row-start: 12}.reports-grid__item[data-height=\"12\"]{--row-span: 12}@media screen{.reports-grid__item{grid-column:var(--col-start, auto)/var(--col-span, span var(--grid-column, 2));grid-row:var(--row-start, auto)/span var(--row-span, 1);grid-template-rows:subgrid}}@media print{.reports-grid{--reports-grid-gap: 11mm;--reports-grid-margin-top: 9mm;--rg-columns: repeat(2, 1fr)}.reports-grid__item{--col-start: auto;--col-span: span 1;border:1px solid #f5f5f5;border-radius:var(--cp-radius, 1rem);page-break-inside:avoid;break-inside:avoid-page}}@media screen and (max-width: 1199px){.reports-grid__item[data-width=\"1\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"2\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"3\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"4\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"5\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"6\"]{--col-start: auto;--col-span: span 6}.reports-grid__item.wide{--col-start: 1;--col-span: -1}}@media screen and (max-width: 767px){.reports-grid__item[data-width]{--col-start: 1;--col-span: -1}}\n"], components: [{ type: FiltersPanelComponent, selector: "app-filters-panel", inputs: ["aggregations", "fields", "activeQuery"], outputs: ["filterChanged"] }, { type: i1__namespace$c.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: i2__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: EditorButtonComponent, selector: "app-editor-button", inputs: ["type", "key"] }, { type: i3__namespace$1.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: NdfReportComponent, selector: "app-ndf-report", inputs: ["config", "direction", "data", "criteria"], outputs: ["onNavigate", "onOpen"] }, { type: NdfTableComponent, selector: "app-ndf-table", inputs: ["rows", "totalRecords", "autoCalculateHeight", "emptyMessage", "activeQuery", "configPath", "configTransformer", "tableKey", "jsonEditorEnabled", "config", "customCriteria", "searchTerm"], outputs: ["onRowSelected", "onRowIndexSelected", "actionOnRow", "onGettingData", "onMultiRowSelected", "onLoading", "onPage", "onInitialized", "onLoaded", "onQueryChange", "onSort"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FluidHeightDirective, selector: "[ndfFluidHeight]", inputs: ["minHeight", "ndfFluidHeight", "subtractItems", "decrease", "delay", "cssVar", "calculate", "inlineStyle"], exportAs: ["ndfFluidHeight"] }, { type: i4__namespace.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: ScrollableDivDirective, selector: "[scrolled]", inputs: ["scrollTop"], outputs: ["scrolled"] }, { type: i4__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: SearchTableTemplateDirective, selector: "[searchTableTemplate]" }], pipes: { "async": i4__namespace$1.AsyncPipe, "translate": i1__namespace.TranslatePipe }, animations: [slideAnimation] });
47207
+ NdfReportsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NdfReportsComponent, deps: [{ token: i1__namespace.TranslateService }, { token: FiltersMapperService }, { token: NdfReportsService }, { token: ChartManagerService }, { token: ReportTransformService }, { token: i0__namespace.ChangeDetectorRef }, { token: FilterQueryService }, { token: ReportsStateService }, { token: ReportConfigurationService }, { token: i1__namespace$5.Router }, { token: i0__namespace.NgZone }], target: i0__namespace.ɵɵFactoryTarget.Component });
47208
+ NdfReportsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfReportsComponent, selector: "app-ndf-reports", inputs: { jsonEditorEnabled: "jsonEditorEnabled", reportsKey: "reportsKey", navigateRoute: "navigateRoute", config: "config" }, outputs: { onQueryChange: "onQueryChange" }, host: { properties: { "dir": "direction" }, classAttribute: "ndf-reports" }, viewQueries: [{ propertyName: "fluidDirective", first: true, predicate: FluidHeightDirective, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0__namespace, template: "<div\r\n\t*ngIf=\"reportsData$ | async as reports\"\r\n\tclass=\"ndf-reports__container\"\r\n\t[class.panel-opened]=\"isPanelOpened && filtersConfig\"\r\n\t[dir]=\"direction\"\r\n\tndfFluidHeight\r\n>\r\n\t<div class=\"ndf-reports__panel print:hidden\" *ngIf=\"!!filtersConfig?.fields?.length\">\r\n\t\t<app-filters-panel\r\n\t\t\t[fields]=\"filtersConfig?.fields\"\r\n\t\t\t[aggregations]=\"aggregations\"\r\n\t\t\t(filterChanged)=\"filterChanged($event)\"\r\n\t\t\t[activeQuery]=\"activeFiltersQuery$ | async\"\r\n\t\t\tclass=\"ndf-reports__filters\"\r\n\t\t></app-filters-panel>\r\n\t</div>\r\n\r\n\t<div class=\"ndf-reports__content\" (scrolled)=\"onContentScroll($event)\">\r\n\t\t<div class=\"ndf-reports__header flex pt-4 print:hidden\">\r\n\t\t\t<button mat-stroked-button class=\"toggle-button\" (click)=\"togglePanel()\">\r\n\t\t\t\t<mat-icon> filter_alt</mat-icon>\r\n\t\t\t</button>\r\n\t\t\t<app-editor-button\r\n\t\t\t\t*ngIf=\"jsonEditorEnabled && reportsKey\"\r\n\t\t\t\t[key]=\"reportsKey\"\r\n\t\t\t\t[type]=\"editorType\"\r\n\t\t\t></app-editor-button>\r\n\t\t\t<button mat-stroked-button *ngIf=\"config?.options?.print\" class=\"print-button\" (click)=\"printAll()\">\r\n\t\t\t\t<mat-icon> print</mat-icon>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t\t<mat-spinner *ngIf=\"isLoadingResult\" class=\"mt-5 mx-auto\" [diameter]=\"48\"></mat-spinner>\r\n\r\n\t\t<div class=\"reports-grid\" *ngIf=\"!isLoadingResult\">\r\n\t\t\t<app-ndf-report\r\n\t\t\t\t*ngFor=\"let config of reportConfig.items; trackBy: trackByFn\"\r\n\t\t\t\t[config]=\"config\"\r\n\t\t\t\t[data]=\"reports?.response\"\r\n\t\t\t\t[criteria]=\"filtersParams$ | async\"\r\n\t\t\t\t[direction]=\"direction\"\r\n\t\t\t\t[attr.data-width]=\"config?.layout?.width || 4\"\r\n\t\t\t\t[attr.data-height]=\"config?.layout?.height || 'auto'\"\r\n\t\t\t\t[attr.data-start-column]=\"config?.layout?.columnPosition || 'auto'\"\r\n\t\t\t\t[attr.data-start-row]=\"config?.layout?.rowPosition || 'auto'\"\r\n\t\t\t\t[class.wide]=\"config?.layout?.width >= 6\"\r\n\t\t\t\tclass=\"reports-grid__item {{ config?.layout?.styleClass }} \"\r\n\t\t\t\t(onNavigate)=\"onNavigate($event)\"\r\n\t\t\t\t(onOpen)=\"openReportDetails($event, config)\"\r\n\t\t\t></app-ndf-report>\r\n\t\t</div>\r\n\t</div>\r\n\t<div\r\n\t\tclass=\"ndf-reports__details print:hidden\"\r\n\t\t[class.opened]=\"showDetails\"\r\n\t\t[@slideInOut]=\"showDetails ? 'open' : 'closed'\"\r\n\t\t(@slideInOut.done)=\"onDetailsAnimationEnd($event)\"\r\n\t>\r\n\t\t<app-ndf-table\r\n\t\t\t*ngIf=\"reportDetails$ | async as report\"\r\n\t\t\t[config]=\"report.config\"\r\n\t\t\t[activeQuery]=\"activeFiltersQuery$ | async\"\r\n\t\t\t[customCriteria]=\"filtersParams$ | async\"\r\n\t\t>\r\n\t\t\t<ng-template searchTableTemplate>\r\n\t\t\t\t<div class=\"ndf-reports__details__header flex gap-2\">\r\n\t\t\t\t\t<button mat-stroked-button class=\"toggle-button\" (click)=\"togglePanel()\">\r\n\t\t\t\t\t\t<mat-icon> filter_alt</mat-icon>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<button mat-stroked-button class=\"close-button\" (click)=\"closeDetailsPanel()\">\r\n\t\t\t\t\t\t<mat-icon> close</mat-icon>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</div>\r\n\t\t\t\t<h3>\r\n\t\t\t\t\t{{ report.label | translate }}\r\n\t\t\t\t</h3>\r\n\t\t\t</ng-template>\r\n\t\t</app-ndf-table>\r\n\t</div>\r\n</div>\r\n", styles: [":host{padding-inline:var(--ndf-reports-inline-padding, 0);padding-block:var(--ndf-reports-block-padding, .5rem 0);height:100%;position:relative;display:flex;flex-direction:column;background-color:var(--ndf-reports-background, #fff);box-sizing:border-box;max-width:100%;flex:0 0 100%}:host:before,:host:after{box-sizing:border-box}:host[dir=ltr]{--ndf-reports-panel-translateX: -100%;--ndf-reports-details-translateX: 100%}.ndf-reports__header{background-color:var(--ndf-reports-background, #fff);flex-direction:var(--ndf-reports-header-direction, row);justify-content:var(--ndf-reports-header-justify, space-between);align-items:var(--ndf-reports-header-items, center);padding-inline:var(--ndf-reports-header-padding-inline, .5rem);padding-block:var(--ndf-reports-header-padding-block, 0 .5rem);position:var(--ndf-reports-header-position, sticky);top:0;z-index:1}.ndf-reports__header__actions{justify-content:var(--ndf-reports-actions-justify, flex-end)}.ndf-reports__header__custom-actions .toggle-button{min-width:0;padding:0 10px}.ndf-reports__container{--panel-width: var(--ndf-reports-panel-width, 18rem);position:relative;overflow:var(--ndf-reports-container-overflow, hidden);display:grid;transition:all .2s;max-width:100%;width:100%;height:var(--ndf-reports-height, calc(var(--ndf-fluid-height) - calc(var(--ndf-reports-block-padding, 1rem) * 2.5)));flex-grow:1;grid-gap:var(--ndf-table-container-gap, .5rem);gap:var(--ndf-table-container-gap, .5rem)}.ndf-reports__container.panel-opened{--ndf-details-margin: var(--panel-width);--ndf-reports-panel-translateX: 0;--ndf-reports-content-margin: var(--panel-width)}@media print{.ndf-reports__container{--ndf-reports-container-overflow: visible;height:100%}}.ndf-reports__panel,.ndf-reports__content .ndf-reports__details{overflow:auto;transition:all .2s}.ndf-reports__panel{position:absolute;width:var(--panel-width);height:100%;transform:translate(var(--ndf-reports-panel-translateX, 100%));padding-inline:var(--ndf-reports-panel-inline-padding, .5rem);padding-block:var(--ndf-reports-panel-block-padding, .5rem);background:var(--ndf-reports-panel-background, #fff);z-index:1}.ndf-reports__content{flex-grow:1;padding-inline-start:var(--ndf-reports-content-margin, 1rem);padding-inline-end:var(--ndf-reports-content-pie, 1rem);padding-block:var(--ndf-reports-content-pb, 0 1rem);overflow-y:var(--ndf-reports-content-overflow-y, auto);position:relative;display:flex;flex-direction:column}@media print{.ndf-reports__content{--ndf-reports-content-overflow-y: visible}}.ndf-reports__details{position:absolute;inset-inline-end:0;width:calc(100% - var(--ndf-details-margin, 0px));height:100%;transform:translate(var(--ndf-reports-details-translateX, -100%));padding-inline:var(--ndf-reports-details-inline-padding, 0rem);flex-grow:1;padding-block:var(--ndf-reports-details-block-padding, 0rem);background:var(--ndf-reports-details-background, #fff);z-index:1;transition:all .2s}.reports-grid{--grid-columns: 12;--column-width: calc(100% / var(--grid-columns));display:grid;grid-gap:var(--reports-grid-gap, 1.5rem);gap:var(--reports-grid-gap, 1.5rem);grid-template-columns:var(--rg-columns, repeat(var(--grid-columns), 1fr));margin-block:var(--reports-grid-margin-block, 1.25rem 0);padding-inline:var(--reports-grid-padding-inline, .5rem)}.reports-grid__item{display:grid;grid-gap:.3rem;gap:.3rem;min-width:0;text-align:center;vertical-align:middle}.reports-grid__item[data-width=\"1\"]{--col-span: span 1}.reports-grid__item[data-start-column=\"1\"]{--col-start: 1}.reports-grid__item[data-start-row=\"1\"]{--row-start: 1}.reports-grid__item[data-height=\"1\"]{--row-span: 1}.reports-grid__item[data-width=\"2\"]{--col-span: span 2}.reports-grid__item[data-start-column=\"2\"]{--col-start: 2}.reports-grid__item[data-start-row=\"2\"]{--row-start: 2}.reports-grid__item[data-height=\"2\"]{--row-span: 2}.reports-grid__item[data-width=\"3\"]{--col-span: span 3}.reports-grid__item[data-start-column=\"3\"]{--col-start: 3}.reports-grid__item[data-start-row=\"3\"]{--row-start: 3}.reports-grid__item[data-height=\"3\"]{--row-span: 3}.reports-grid__item[data-width=\"4\"]{--col-span: span 4}.reports-grid__item[data-start-column=\"4\"]{--col-start: 4}.reports-grid__item[data-start-row=\"4\"]{--row-start: 4}.reports-grid__item[data-height=\"4\"]{--row-span: 4}.reports-grid__item[data-width=\"5\"]{--col-span: span 5}.reports-grid__item[data-start-column=\"5\"]{--col-start: 5}.reports-grid__item[data-start-row=\"5\"]{--row-start: 5}.reports-grid__item[data-height=\"5\"]{--row-span: 5}.reports-grid__item[data-width=\"6\"]{--col-span: span 6}.reports-grid__item[data-start-column=\"6\"]{--col-start: 6}.reports-grid__item[data-start-row=\"6\"]{--row-start: 6}.reports-grid__item[data-height=\"6\"]{--row-span: 6}.reports-grid__item[data-width=\"7\"]{--col-span: span 7}.reports-grid__item[data-start-column=\"7\"]{--col-start: 7}.reports-grid__item[data-start-row=\"7\"]{--row-start: 7}.reports-grid__item[data-height=\"7\"]{--row-span: 7}.reports-grid__item[data-width=\"8\"]{--col-span: span 8}.reports-grid__item[data-start-column=\"8\"]{--col-start: 8}.reports-grid__item[data-start-row=\"8\"]{--row-start: 8}.reports-grid__item[data-height=\"8\"]{--row-span: 8}.reports-grid__item[data-width=\"9\"]{--col-span: span 9}.reports-grid__item[data-start-column=\"9\"]{--col-start: 9}.reports-grid__item[data-start-row=\"9\"]{--row-start: 9}.reports-grid__item[data-height=\"9\"]{--row-span: 9}.reports-grid__item[data-width=\"10\"]{--col-span: span 10}.reports-grid__item[data-start-column=\"10\"]{--col-start: 10}.reports-grid__item[data-start-row=\"10\"]{--row-start: 10}.reports-grid__item[data-height=\"10\"]{--row-span: 10}.reports-grid__item[data-width=\"11\"]{--col-span: span 11}.reports-grid__item[data-start-column=\"11\"]{--col-start: 11}.reports-grid__item[data-start-row=\"11\"]{--row-start: 11}.reports-grid__item[data-height=\"11\"]{--row-span: 11}.reports-grid__item[data-width=\"12\"]{--col-span: span 12}.reports-grid__item[data-start-column=\"12\"]{--col-start: 12}.reports-grid__item[data-start-row=\"12\"]{--row-start: 12}.reports-grid__item[data-height=\"12\"]{--row-span: 12}@media screen{.reports-grid__item{grid-column:var(--col-start, auto)/var(--col-span, span var(--grid-column, 2));grid-row:var(--row-start, auto)/span var(--row-span, 1);grid-template-rows:subgrid}}@media print{.reports-grid{--reports-grid-gap: 11mm;--reports-grid-margin-top: 9mm;--rg-columns: repeat(2, 1fr)}.reports-grid__item{--col-start: auto;--col-span: span 1;border:1px solid #f5f5f5;border-radius:var(--cp-radius, 1rem);page-break-inside:avoid;break-inside:avoid-page}}@media screen and (max-width: 1199px){.reports-grid__item[data-width=\"1\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"2\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"3\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"4\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"5\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"6\"]{--col-start: auto;--col-span: span 6}.reports-grid__item.wide{--col-start: 1;--col-span: -1}}@media screen and (max-width: 767px){.reports-grid__item[data-width]{--col-start: 1;--col-span: -1}}\n"], components: [{ type: FiltersPanelComponent, selector: "app-filters-panel", inputs: ["aggregations", "fields", "activeQuery"], outputs: ["filterChanged"] }, { type: i1__namespace$c.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: i2__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: EditorButtonComponent, selector: "app-editor-button", inputs: ["type", "key"] }, { type: i3__namespace$1.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: NdfReportComponent, selector: "app-ndf-report", inputs: ["config", "direction", "data", "criteria"], outputs: ["onNavigate", "onOpen"] }, { type: NdfTableComponent, selector: "app-ndf-table", inputs: ["rows", "totalRecords", "autoCalculateHeight", "emptyMessage", "activeQuery", "configPath", "configTransformer", "tableKey", "jsonEditorEnabled", "config", "customCriteria", "searchTerm"], outputs: ["onRowSelected", "onRowIndexSelected", "actionOnRow", "onGettingData", "onMultiRowSelected", "onLoading", "onPage", "onInitialized", "onLoaded", "onQueryChange", "onSort"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FluidHeightDirective, selector: "[ndfFluidHeight]", inputs: ["minHeight", "ndfFluidHeight", "subtractItems", "decrease", "delay", "cssVar", "calculate", "inlineStyle"], exportAs: ["ndfFluidHeight"] }, { type: i4__namespace.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: ScrollableDivDirective, selector: "[scrolled]", inputs: ["scrollTop"], outputs: ["scrolled"] }, { type: i4__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: SearchTableTemplateDirective, selector: "[searchTableTemplate]" }], pipes: { "async": i4__namespace$1.AsyncPipe, "translate": i1__namespace.TranslatePipe }, animations: [slideAnimation] });
46946
47209
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NdfReportsComponent, decorators: [{
46947
47210
  type: i0.Component,
46948
47211
  args: [{
@@ -46955,7 +47218,7 @@
46955
47218
  },
46956
47219
  animations: [slideAnimation]
46957
47220
  }]
46958
- }], ctorParameters: function () { return [{ type: i1__namespace.TranslateService }, { type: FiltersMapperService }, { type: NdfReportsService }, { type: ChartManagerService }, { type: ReportTransformService }, { type: i0__namespace.ChangeDetectorRef }, { type: FilterQueryService }, { type: ReportsStateService }, { type: i1__namespace$5.Router }, { type: i0__namespace.NgZone }]; }, propDecorators: { fluidDirective: [{
47221
+ }], ctorParameters: function () { return [{ type: i1__namespace.TranslateService }, { type: FiltersMapperService }, { type: NdfReportsService }, { type: ChartManagerService }, { type: ReportTransformService }, { type: i0__namespace.ChangeDetectorRef }, { type: FilterQueryService }, { type: ReportsStateService }, { type: ReportConfigurationService }, { type: i1__namespace$5.Router }, { type: i0__namespace.NgZone }]; }, propDecorators: { fluidDirective: [{
46959
47222
  type: i0.ViewChild,
46960
47223
  args: [FluidHeightDirective]
46961
47224
  }], jsonEditorEnabled: [{
@@ -46994,7 +47257,10 @@
46994
47257
  DynamicTimelineReportComponent,
46995
47258
  TimeGroupSelectorComponent,
46996
47259
  GraphDialogComponent,
46997
- TimelineDialogComponent, ScrollableDivDirective, GraphChartComponent, DigitChartComponent, ReportActionsComponent, CustomReportComponent, CustomChartComponent, CustomChartDialogComponent], imports: [i4.CommonModule,
47260
+ TimelineDialogComponent, ScrollableDivDirective, GraphChartComponent, DigitChartComponent, ReportActionsComponent,
47261
+ CustomReportComponent,
47262
+ CustomChartComponent,
47263
+ CustomChartDialogComponent], imports: [i4.CommonModule,
46998
47264
  i1.TranslateModule,
46999
47265
  i3$2.MatMenuModule,
47000
47266
  i2$2.MatIconModule,
@@ -47039,7 +47305,16 @@
47039
47305
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NdfReportsModule, decorators: [{
47040
47306
  type: i0.NgModule,
47041
47307
  args: [{
47042
- declarations: [CONTAINERS, COMPONENTS, DIRECTIVES, CHARTS, ReportActionsComponent, CustomReportComponent, CustomChartComponent, CustomChartDialogComponent],
47308
+ declarations: [
47309
+ CONTAINERS,
47310
+ COMPONENTS,
47311
+ DIRECTIVES,
47312
+ CHARTS,
47313
+ ReportActionsComponent,
47314
+ CustomReportComponent,
47315
+ CustomChartComponent,
47316
+ CustomChartDialogComponent
47317
+ ],
47043
47318
  imports: [
47044
47319
  i4.CommonModule,
47045
47320
  i1.TranslateModule,
@@ -47929,6 +48204,7 @@
47929
48204
  exports.ChartPanelModule = ChartPanelModule;
47930
48205
  exports.ChartPlugins = index;
47931
48206
  exports.ChartPluginsRegistry = ChartPluginsRegistry;
48207
+ exports.ChartThemeService = ChartThemeService;
47932
48208
  exports.ChartUtils = index$2;
47933
48209
  exports.ChartsModule = ChartsModule;
47934
48210
  exports.CheckConditionPipe = CheckConditionPipe;
@@ -48257,7 +48533,7 @@
48257
48533
  exports.RemoveButtonComponent = RemoveButtonComponent;
48258
48534
  exports.RenameComponent = RenameComponent;
48259
48535
  exports.ReportConfigMapperService = ReportConfigMapperService;
48260
- exports.ReportDetailsService = ReportDetailsService;
48536
+ exports.ReportConfigurationService = ReportConfigurationService;
48261
48537
  exports.ReportTransformService = ReportTransformService;
48262
48538
  exports.ReportsDataTransformers = ReportsDataTransformers;
48263
48539
  exports.ReportsStateService = ReportsStateService;