@esfaenza/dashboard-feature 19.2.9 → 20.3.0

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 (36) hide show
  1. package/fesm2022/esfaenza-dashboard-feature.mjs +291 -223
  2. package/fesm2022/esfaenza-dashboard-feature.mjs.map +1 -1
  3. package/index.d.ts +693 -3
  4. package/package.json +13 -13
  5. package/lib/components/dashboard/dashboard.component.d.ts +0 -46
  6. package/lib/components/widgets/BaseWidgetComponent.d.ts +0 -44
  7. package/lib/components/widgets/IWidgetComponent.d.ts +0 -23
  8. package/lib/components/widgets/JaceWidgetTypes.d.ts +0 -6
  9. package/lib/components/widgets/chart/jace-dsh-chart.component.d.ts +0 -29
  10. package/lib/components/widgets/counter/jace-dsh-counter.component.d.ts +0 -24
  11. package/lib/components/widgets/list/jace-dsh-list.component.d.ts +0 -27
  12. package/lib/components/widgets/multiprog/circle-progress/circle-progress.component.d.ts +0 -219
  13. package/lib/components/widgets/multiprog/jace-dsh-multiprog.component.d.ts +0 -26
  14. package/lib/components/widgets/multiprog/progress-bar/progress-bar.component.d.ts +0 -6
  15. package/lib/dashboard-feature.module.d.ts +0 -24
  16. package/lib/models/config/JaceDashboardConfig.d.ts +0 -51
  17. package/lib/models/externals/JaceDashboardLayoutAppSearch.d.ts +0 -6
  18. package/lib/models/externals/JaceDashboardLayoutDetail.d.ts +0 -6
  19. package/lib/models/externals/JaceWidgetInstanceDetail.d.ts +0 -18
  20. package/lib/models/externals/Repository.d.ts +0 -5
  21. package/lib/models/externals/SaveJaceDashboardLayoutDTO.d.ts +0 -6
  22. package/lib/models/options/DefaultDashboardModuleOptions.d.ts +0 -6
  23. package/lib/models/options/IDashboardModuleOptions.d.ts +0 -4
  24. package/lib/models/options/IWidgetTypeConfig.d.ts +0 -8
  25. package/lib/models/widgets/BaseJaceWidgetModel.d.ts +0 -32
  26. package/lib/models/widgets/IJaceWidgetModel.d.ts +0 -33
  27. package/lib/models/widgets/JaceChartWidgetModel.d.ts +0 -10
  28. package/lib/models/widgets/JaceCounterWidgetModel.d.ts +0 -10
  29. package/lib/models/widgets/JaceListWidgetModel.d.ts +0 -16
  30. package/lib/models/widgets/JaceMultiprogWidgetModel.d.ts +0 -9
  31. package/lib/private-injection-tokens.d.ts +0 -3
  32. package/lib/public-injection-tokens.d.ts +0 -7
  33. package/lib/services/DashboardWidgetFactory.d.ts +0 -28
  34. package/lib/services/IDashboardFeatureDataService.d.ts +0 -11
  35. package/lib/services/dashboard-feature.service.d.ts +0 -18
  36. package/public-api.d.ts +0 -25
@@ -1,10 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, EventEmitter, ViewChild, Output, Input, Inject, Component, Injectable, ViewContainerRef, ViewChildren, ViewEncapsulation, Optional, NgModule } from '@angular/core';
2
+ import { InjectionToken, EventEmitter, ViewChild, Output, Input, Inject, Component, DOCUMENT, Injectable, ViewContainerRef, ViewChildren, ViewEncapsulation, Optional, NgModule } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
- import { DOCUMENT, CommonModule } from '@angular/common';
5
- import * as i5 from '@angular/forms';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i4 from '@angular/forms';
6
6
  import { FormsModule } from '@angular/forms';
7
- import * as i6 from 'angular-gridster2';
7
+ import * as i5 from 'angular-gridster2';
8
8
  import { GridsterModule, GridType } from 'angular-gridster2';
9
9
  import * as i2 from '@esfaenza/es-charts';
10
10
  import { PieChartSettings, EsChartsModule } from '@esfaenza/es-charts';
@@ -13,7 +13,7 @@ import { timer, Subject } from 'rxjs';
13
13
  import * as i1$2 from '@esfaenza/extensions';
14
14
  import { InboundMessageTypes } from '@esfaenza/extensions';
15
15
  import { takeUntil, map } from 'rxjs/operators';
16
- import * as i7 from '@esfaenza/forms-and-validations';
16
+ import * as i6 from '@esfaenza/forms-and-validations';
17
17
  import { FormsAndValidationsModule } from '@esfaenza/forms-and-validations';
18
18
  import * as i1$3 from '@esfaenza/httpservice';
19
19
  import { HttpserviceModule } from '@esfaenza/httpservice';
@@ -102,12 +102,12 @@ class JaceChartWidgetComponent {
102
102
  }
103
103
  this.configuration = !this.configuration;
104
104
  }
105
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: JaceChartWidgetComponent, deps: [{ token: DSH_DATA_SERVICE }], target: i0.ɵɵFactoryTarget.Component }); }
106
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: JaceChartWidgetComponent, isStandalone: false, selector: "jace-dsh-chart", inputs: { DashboardDate: "DashboardDate" }, outputs: { OnRemove: "OnRemove" }, viewQueries: [{ propertyName: "containerEl", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div style=\"display: flex; flex-direction: column; height: 100%;\">\r\n <div class=\"jace-dsh-widget-header {{model?.name}}-header\" style=\"height: 33px;\">\r\n <div class=\"jace-dsh-widget-title\" *ngIf=\"model.title\">\r\n {{model.title}}\r\n </div>\r\n <div class=\"jace-dsh-widget-controls\" *ngIf=\"dataReady\">\r\n <span class=\"transition drag-handler jace-dsh-widget-drag\" *ngIf=\"model.dragEnabled\">\r\n <i class=\"fa fa-arrows-alt\"></i>\r\n </span>\r\n <span class=\"transition jace-dsh-widget-opts\" (click)=\"configure()\">\r\n <i class=\"fa fa-cog\"></i>\r\n </span>\r\n <span (click)=\"removeWidget()\" class=\"transition remove-button jace-dsh-widget-close\">\r\n <i class=\"fa fa-times\"></i>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"jace-dsh-widget-body gridster-item-content {{model?.name}}-body\" #container style=\"flex-grow: 1;\">\r\n <div class=\"jace-dsh-widget-loading\" *ngIf=\"!dataReady\">\r\n <i class=\"fa fa-spinner fa-spin\"></i>\r\n </div>\r\n <div *ngIf=\"dataReady\" class=\"jace-dsh-chart-container jace-dsh-widget-slide\" [ngClass]=\"{'jace-dsh-widget-content-hide':configuration,'jace-dsh-widget-content-show':!configuration}\">\r\n <!-- [Type]=\"Widget.chartType\" -->\r\n <h6 *ngIf=\"model?.queryerror\" class=\"fg-disabled\" style=\"margin-top: 0.5rem;\"><span class=\"fa fa-times-circle-o\"></span>&nbsp;&nbsp;Error retrieving data</h6>\r\n <div *ngIf=\"!model?.queryerror && sizeCalculated\" [style.height.px]=\"(size/100)*95\">\r\n <es-chart [Legend]=\"model.legend\" [Theme]=\"'dataviz'\" [Type]=\"model.chartType\" [Data]=\"model.chartData\" [Settings]=\"model.chartSettings\" [name]=\"chartName\"></es-chart>\r\n </div>\r\n </div>\r\n\r\n <div class=\"jace-dsh-widget-settings jace-dsh-widget-slide\" [ngClass]=\"{'jace-dsh-widget-settings-hide':!configuration,'jace-dsh-widget-settings-show':configuration}\">\r\n <p>Configuration</p>\r\n </div>\r\n </div>\r\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.EsChartComponent, selector: "es-chart", inputs: ["Type", "Data", "DataArray"] }] }); }
105
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: JaceChartWidgetComponent, deps: [{ token: DSH_DATA_SERVICE }], target: i0.ɵɵFactoryTarget.Component }); }
106
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.24", type: JaceChartWidgetComponent, isStandalone: false, selector: "jace-dsh-chart", inputs: { DashboardDate: "DashboardDate" }, outputs: { OnRemove: "OnRemove" }, viewQueries: [{ propertyName: "containerEl", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div style=\"display: flex; flex-direction: column; height: 100%;\">\n <div class=\"jace-dsh-widget-header {{model?.name}}-header\" style=\"height: 33px;\">\n @if (model.title) {\n <div class=\"jace-dsh-widget-title\">\n {{model.title}}\n </div>\n }\n @if (dataReady) {\n <div class=\"jace-dsh-widget-controls\">\n @if (model.dragEnabled) {\n <span class=\"transition drag-handler jace-dsh-widget-drag\">\n <i class=\"fa fa-arrows-alt\"></i>\n </span>\n }\n <span class=\"transition jace-dsh-widget-opts\" (click)=\"configure()\">\n <i class=\"fa fa-cog\"></i>\n </span>\n <span (click)=\"removeWidget()\" class=\"transition remove-button jace-dsh-widget-close\">\n <i class=\"fa fa-times\"></i>\n </span>\n </div>\n }\n </div>\n <div class=\"jace-dsh-widget-body gridster-item-content {{model?.name}}-body\" #container style=\"flex-grow: 1;\">\n @if (!dataReady) {\n <div class=\"jace-dsh-widget-loading\">\n <i class=\"fa fa-spinner fa-spin\"></i>\n </div>\n }\n @if (dataReady) {\n <div class=\"jace-dsh-chart-container jace-dsh-widget-slide\" [ngClass]=\"{'jace-dsh-widget-content-hide':configuration,'jace-dsh-widget-content-show':!configuration}\">\n <!-- [Type]=\"Widget.chartType\" -->\n @if (model?.queryerror) {\n <h6 class=\"fg-disabled\" style=\"margin-top: 0.5rem;\"><span class=\"fa fa-times-circle-o\"></span>&nbsp;&nbsp;Error retrieving data</h6>\n }\n @if (!model?.queryerror && sizeCalculated) {\n <div [style.height.px]=\"(size/100)*95\">\n <es-chart [Legend]=\"model.legend\" [Theme]=\"'dataviz'\" [Type]=\"model.chartType\" [Data]=\"model.chartData\" [Settings]=\"model.chartSettings\" [name]=\"chartName\"></es-chart>\n </div>\n }\n </div>\n }\n\n <div class=\"jace-dsh-widget-settings jace-dsh-widget-slide\" [ngClass]=\"{'jace-dsh-widget-settings-hide':!configuration,'jace-dsh-widget-settings-show':configuration}\">\n <p>Configuration</p>\n </div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.EsChartComponent, selector: "es-chart", inputs: ["Type", "Data", "DataArray"] }] }); }
107
107
  }
108
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: JaceChartWidgetComponent, decorators: [{
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: JaceChartWidgetComponent, decorators: [{
109
109
  type: Component,
110
- args: [{ selector: 'jace-dsh-chart', standalone: false, template: "<div style=\"display: flex; flex-direction: column; height: 100%;\">\r\n <div class=\"jace-dsh-widget-header {{model?.name}}-header\" style=\"height: 33px;\">\r\n <div class=\"jace-dsh-widget-title\" *ngIf=\"model.title\">\r\n {{model.title}}\r\n </div>\r\n <div class=\"jace-dsh-widget-controls\" *ngIf=\"dataReady\">\r\n <span class=\"transition drag-handler jace-dsh-widget-drag\" *ngIf=\"model.dragEnabled\">\r\n <i class=\"fa fa-arrows-alt\"></i>\r\n </span>\r\n <span class=\"transition jace-dsh-widget-opts\" (click)=\"configure()\">\r\n <i class=\"fa fa-cog\"></i>\r\n </span>\r\n <span (click)=\"removeWidget()\" class=\"transition remove-button jace-dsh-widget-close\">\r\n <i class=\"fa fa-times\"></i>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"jace-dsh-widget-body gridster-item-content {{model?.name}}-body\" #container style=\"flex-grow: 1;\">\r\n <div class=\"jace-dsh-widget-loading\" *ngIf=\"!dataReady\">\r\n <i class=\"fa fa-spinner fa-spin\"></i>\r\n </div>\r\n <div *ngIf=\"dataReady\" class=\"jace-dsh-chart-container jace-dsh-widget-slide\" [ngClass]=\"{'jace-dsh-widget-content-hide':configuration,'jace-dsh-widget-content-show':!configuration}\">\r\n <!-- [Type]=\"Widget.chartType\" -->\r\n <h6 *ngIf=\"model?.queryerror\" class=\"fg-disabled\" style=\"margin-top: 0.5rem;\"><span class=\"fa fa-times-circle-o\"></span>&nbsp;&nbsp;Error retrieving data</h6>\r\n <div *ngIf=\"!model?.queryerror && sizeCalculated\" [style.height.px]=\"(size/100)*95\">\r\n <es-chart [Legend]=\"model.legend\" [Theme]=\"'dataviz'\" [Type]=\"model.chartType\" [Data]=\"model.chartData\" [Settings]=\"model.chartSettings\" [name]=\"chartName\"></es-chart>\r\n </div>\r\n </div>\r\n\r\n <div class=\"jace-dsh-widget-settings jace-dsh-widget-slide\" [ngClass]=\"{'jace-dsh-widget-settings-hide':!configuration,'jace-dsh-widget-settings-show':configuration}\">\r\n <p>Configuration</p>\r\n </div>\r\n </div>\r\n</div>" }]
110
+ args: [{ selector: 'jace-dsh-chart', standalone: false, template: "<div style=\"display: flex; flex-direction: column; height: 100%;\">\n <div class=\"jace-dsh-widget-header {{model?.name}}-header\" style=\"height: 33px;\">\n @if (model.title) {\n <div class=\"jace-dsh-widget-title\">\n {{model.title}}\n </div>\n }\n @if (dataReady) {\n <div class=\"jace-dsh-widget-controls\">\n @if (model.dragEnabled) {\n <span class=\"transition drag-handler jace-dsh-widget-drag\">\n <i class=\"fa fa-arrows-alt\"></i>\n </span>\n }\n <span class=\"transition jace-dsh-widget-opts\" (click)=\"configure()\">\n <i class=\"fa fa-cog\"></i>\n </span>\n <span (click)=\"removeWidget()\" class=\"transition remove-button jace-dsh-widget-close\">\n <i class=\"fa fa-times\"></i>\n </span>\n </div>\n }\n </div>\n <div class=\"jace-dsh-widget-body gridster-item-content {{model?.name}}-body\" #container style=\"flex-grow: 1;\">\n @if (!dataReady) {\n <div class=\"jace-dsh-widget-loading\">\n <i class=\"fa fa-spinner fa-spin\"></i>\n </div>\n }\n @if (dataReady) {\n <div class=\"jace-dsh-chart-container jace-dsh-widget-slide\" [ngClass]=\"{'jace-dsh-widget-content-hide':configuration,'jace-dsh-widget-content-show':!configuration}\">\n <!-- [Type]=\"Widget.chartType\" -->\n @if (model?.queryerror) {\n <h6 class=\"fg-disabled\" style=\"margin-top: 0.5rem;\"><span class=\"fa fa-times-circle-o\"></span>&nbsp;&nbsp;Error retrieving data</h6>\n }\n @if (!model?.queryerror && sizeCalculated) {\n <div [style.height.px]=\"(size/100)*95\">\n <es-chart [Legend]=\"model.legend\" [Theme]=\"'dataviz'\" [Type]=\"model.chartType\" [Data]=\"model.chartData\" [Settings]=\"model.chartSettings\" [name]=\"chartName\"></es-chart>\n </div>\n }\n </div>\n }\n\n <div class=\"jace-dsh-widget-settings jace-dsh-widget-slide\" [ngClass]=\"{'jace-dsh-widget-settings-hide':!configuration,'jace-dsh-widget-settings-show':configuration}\">\n <p>Configuration</p>\n </div>\n </div>\n</div>" }]
111
111
  }], ctorParameters: () => [{ type: undefined, decorators: [{
112
112
  type: Inject,
113
113
  args: [DSH_DATA_SERVICE]
@@ -181,12 +181,12 @@ class JaceCounterWidgetComponent {
181
181
  }
182
182
  this.configuration = !this.configuration;
183
183
  }
184
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: JaceCounterWidgetComponent, deps: [{ token: DSH_DATA_SERVICE }], target: i0.ɵɵFactoryTarget.Component }); }
185
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: JaceCounterWidgetComponent, isStandalone: false, selector: "jace-dsh-counter", inputs: { DashboardDate: "DashboardDate" }, outputs: { OnRemove: "OnRemove" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"jace-dsh-widget-header {{model?.name}}-header\">\r\n <div class=\"jace-dsh-widget-title\" *ngIf=\"model.title\">\r\n {{model.title}}\r\n </div>\r\n <div class=\"jace-dsh-widget-controls\" *ngIf=\"dataReady\">\r\n <span class=\"transition drag-handler jace-dsh-widget-drag\" *ngIf=\"model.dragEnabled\">\r\n <i class=\"fa fa-arrows-alt\"></i>\r\n </span>\r\n <span class=\"transition jace-dsh-widget-opts\" (click)=\"configure()\">\r\n <i class=\"fa fa-cog\"></i>\r\n </span>\r\n <span (click)=\"removeWidget()\" class=\"transition remove-button jace-dsh-widget-close\">\r\n <i class=\"fa fa-times\"></i>\r\n </span>\r\n </div>\r\n</div>\r\n<div class=\"jace-dsh-widget-body gridster-item-content {{model?.name}}-body\">\r\n <div class=\"jace-dsh-widget-loading\" *ngIf=\"!dataReady\">\r\n <i class=\"fa fa-spinner fa-spin\"></i>\r\n </div>\r\n <div class=\"jace-dsh-counter-body jace-dsh-widget-slide\"\r\n [ngClass]=\"{'jace-dsh-widget-content-hide':configuration,'jace-dsh-widget-content-show':!configuration}\"\r\n *ngIf=\"dataReady\">\r\n <i class=\"jace-dsh-counter-icon fa fa-2x\" [ngClass]=\"[ model.icon ? model.icon : '']\" *ngIf=\"model.icon\"></i>\r\n <div class=\"jace-dsh-counter-super\">{{model.superText}}</div>\r\n <div class=\"jace-dsh-counter-value\"><span>{{model.value}}</span> <span\r\n class=\"jace-dsh-counter-unit\">{{model.unit}}</span> </div>\r\n\r\n <div class=\"jace-dsh-counter-sub\">{{model.subText}}</div>\r\n </div>\r\n\r\n <div class=\"jace-dsh-widget-settings jace-dsh-widget-slide \"\r\n [ngClass]=\"{'jace-dsh-widget-settings-hide':!configuration,'jace-dsh-widget-settings-show':configuration}\">\r\n <p>Configuration</p>\r\n </div>\r\n</div>", styles: [".jace-dsh-counter-body{padding:1em .5em}.jace-dsh-counter-value{font-size:2em;font-weight:700;text-align:center}.jace-dsh-counter-unit{margin-left:.08em;font-size:.5em;text-align:center}.jace-dsh-counter-super{font-size:1em;text-align:center}.jace-dsh-counter-sub{font-size:.8em;text-align:center}.jace-dsh-counter-icon{position:absolute;font-size:2.6em;color:#b0c4de}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
184
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: JaceCounterWidgetComponent, deps: [{ token: DSH_DATA_SERVICE }], target: i0.ɵɵFactoryTarget.Component }); }
185
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.24", type: JaceCounterWidgetComponent, isStandalone: false, selector: "jace-dsh-counter", inputs: { DashboardDate: "DashboardDate" }, outputs: { OnRemove: "OnRemove" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"jace-dsh-widget-header {{model?.name}}-header\">\n @if (model.title) {\n <div class=\"jace-dsh-widget-title\">\n {{model.title}}\n </div>\n }\n @if (dataReady) {\n <div class=\"jace-dsh-widget-controls\">\n @if (model.dragEnabled) {\n <span class=\"transition drag-handler jace-dsh-widget-drag\">\n <i class=\"fa fa-arrows-alt\"></i>\n </span>\n }\n <span class=\"transition jace-dsh-widget-opts\" (click)=\"configure()\">\n <i class=\"fa fa-cog\"></i>\n </span>\n <span (click)=\"removeWidget()\" class=\"transition remove-button jace-dsh-widget-close\">\n <i class=\"fa fa-times\"></i>\n </span>\n </div>\n }\n</div>\n<div class=\"jace-dsh-widget-body gridster-item-content {{model?.name}}-body\">\n @if (!dataReady) {\n <div class=\"jace-dsh-widget-loading\">\n <i class=\"fa fa-spinner fa-spin\"></i>\n </div>\n }\n @if (dataReady) {\n <div class=\"jace-dsh-counter-body jace-dsh-widget-slide\"\n [ngClass]=\"{'jace-dsh-widget-content-hide':configuration,'jace-dsh-widget-content-show':!configuration}\"\n >\n @if (model.icon) {\n <i class=\"jace-dsh-counter-icon fa fa-2x\" [ngClass]=\"[ model.icon ? model.icon : '']\"></i>\n }\n <div class=\"jace-dsh-counter-super\">{{model.superText}}</div>\n <div class=\"jace-dsh-counter-value\"><span>{{model.value}}</span> <span\n class=\"jace-dsh-counter-unit\">{{model.unit}}</span> </div>\n <div class=\"jace-dsh-counter-sub\">{{model.subText}}</div>\n </div>\n}\n\n<div class=\"jace-dsh-widget-settings jace-dsh-widget-slide \"\n [ngClass]=\"{'jace-dsh-widget-settings-hide':!configuration,'jace-dsh-widget-settings-show':configuration}\">\n <p>Configuration</p>\n</div>\n</div>", styles: [".jace-dsh-counter-body{padding:1em .5em}.jace-dsh-counter-value{font-size:2em;font-weight:700;text-align:center}.jace-dsh-counter-unit{margin-left:.08em;font-size:.5em;text-align:center}.jace-dsh-counter-super{font-size:1em;text-align:center}.jace-dsh-counter-sub{font-size:.8em;text-align:center}.jace-dsh-counter-icon{position:absolute;font-size:2.6em;color:#b0c4de}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
186
186
  }
187
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: JaceCounterWidgetComponent, decorators: [{
187
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: JaceCounterWidgetComponent, decorators: [{
188
188
  type: Component,
189
- args: [{ selector: 'jace-dsh-counter', standalone: false, template: "<div class=\"jace-dsh-widget-header {{model?.name}}-header\">\r\n <div class=\"jace-dsh-widget-title\" *ngIf=\"model.title\">\r\n {{model.title}}\r\n </div>\r\n <div class=\"jace-dsh-widget-controls\" *ngIf=\"dataReady\">\r\n <span class=\"transition drag-handler jace-dsh-widget-drag\" *ngIf=\"model.dragEnabled\">\r\n <i class=\"fa fa-arrows-alt\"></i>\r\n </span>\r\n <span class=\"transition jace-dsh-widget-opts\" (click)=\"configure()\">\r\n <i class=\"fa fa-cog\"></i>\r\n </span>\r\n <span (click)=\"removeWidget()\" class=\"transition remove-button jace-dsh-widget-close\">\r\n <i class=\"fa fa-times\"></i>\r\n </span>\r\n </div>\r\n</div>\r\n<div class=\"jace-dsh-widget-body gridster-item-content {{model?.name}}-body\">\r\n <div class=\"jace-dsh-widget-loading\" *ngIf=\"!dataReady\">\r\n <i class=\"fa fa-spinner fa-spin\"></i>\r\n </div>\r\n <div class=\"jace-dsh-counter-body jace-dsh-widget-slide\"\r\n [ngClass]=\"{'jace-dsh-widget-content-hide':configuration,'jace-dsh-widget-content-show':!configuration}\"\r\n *ngIf=\"dataReady\">\r\n <i class=\"jace-dsh-counter-icon fa fa-2x\" [ngClass]=\"[ model.icon ? model.icon : '']\" *ngIf=\"model.icon\"></i>\r\n <div class=\"jace-dsh-counter-super\">{{model.superText}}</div>\r\n <div class=\"jace-dsh-counter-value\"><span>{{model.value}}</span> <span\r\n class=\"jace-dsh-counter-unit\">{{model.unit}}</span> </div>\r\n\r\n <div class=\"jace-dsh-counter-sub\">{{model.subText}}</div>\r\n </div>\r\n\r\n <div class=\"jace-dsh-widget-settings jace-dsh-widget-slide \"\r\n [ngClass]=\"{'jace-dsh-widget-settings-hide':!configuration,'jace-dsh-widget-settings-show':configuration}\">\r\n <p>Configuration</p>\r\n </div>\r\n</div>", styles: [".jace-dsh-counter-body{padding:1em .5em}.jace-dsh-counter-value{font-size:2em;font-weight:700;text-align:center}.jace-dsh-counter-unit{margin-left:.08em;font-size:.5em;text-align:center}.jace-dsh-counter-super{font-size:1em;text-align:center}.jace-dsh-counter-sub{font-size:.8em;text-align:center}.jace-dsh-counter-icon{position:absolute;font-size:2.6em;color:#b0c4de}\n"] }]
189
+ args: [{ selector: 'jace-dsh-counter', standalone: false, template: "<div class=\"jace-dsh-widget-header {{model?.name}}-header\">\n @if (model.title) {\n <div class=\"jace-dsh-widget-title\">\n {{model.title}}\n </div>\n }\n @if (dataReady) {\n <div class=\"jace-dsh-widget-controls\">\n @if (model.dragEnabled) {\n <span class=\"transition drag-handler jace-dsh-widget-drag\">\n <i class=\"fa fa-arrows-alt\"></i>\n </span>\n }\n <span class=\"transition jace-dsh-widget-opts\" (click)=\"configure()\">\n <i class=\"fa fa-cog\"></i>\n </span>\n <span (click)=\"removeWidget()\" class=\"transition remove-button jace-dsh-widget-close\">\n <i class=\"fa fa-times\"></i>\n </span>\n </div>\n }\n</div>\n<div class=\"jace-dsh-widget-body gridster-item-content {{model?.name}}-body\">\n @if (!dataReady) {\n <div class=\"jace-dsh-widget-loading\">\n <i class=\"fa fa-spinner fa-spin\"></i>\n </div>\n }\n @if (dataReady) {\n <div class=\"jace-dsh-counter-body jace-dsh-widget-slide\"\n [ngClass]=\"{'jace-dsh-widget-content-hide':configuration,'jace-dsh-widget-content-show':!configuration}\"\n >\n @if (model.icon) {\n <i class=\"jace-dsh-counter-icon fa fa-2x\" [ngClass]=\"[ model.icon ? model.icon : '']\"></i>\n }\n <div class=\"jace-dsh-counter-super\">{{model.superText}}</div>\n <div class=\"jace-dsh-counter-value\"><span>{{model.value}}</span> <span\n class=\"jace-dsh-counter-unit\">{{model.unit}}</span> </div>\n <div class=\"jace-dsh-counter-sub\">{{model.subText}}</div>\n </div>\n}\n\n<div class=\"jace-dsh-widget-settings jace-dsh-widget-slide \"\n [ngClass]=\"{'jace-dsh-widget-settings-hide':!configuration,'jace-dsh-widget-settings-show':configuration}\">\n <p>Configuration</p>\n</div>\n</div>", styles: [".jace-dsh-counter-body{padding:1em .5em}.jace-dsh-counter-value{font-size:2em;font-weight:700;text-align:center}.jace-dsh-counter-unit{margin-left:.08em;font-size:.5em;text-align:center}.jace-dsh-counter-super{font-size:1em;text-align:center}.jace-dsh-counter-sub{font-size:.8em;text-align:center}.jace-dsh-counter-icon{position:absolute;font-size:2.6em;color:#b0c4de}\n"] }]
190
190
  }], ctorParameters: () => [{ type: undefined, decorators: [{
191
191
  type: Inject,
192
192
  args: [DSH_DATA_SERVICE]
@@ -267,12 +267,12 @@ class JaceListWidgetComponent {
267
267
  }
268
268
  this.configuration = !this.configuration;
269
269
  }
270
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: JaceListWidgetComponent, deps: [{ token: DSH_DATA_SERVICE }, { token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
271
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: JaceListWidgetComponent, isStandalone: false, selector: "jace-dsh-list", inputs: { DashboardDate: "DashboardDate" }, outputs: { OnRemove: "OnRemove" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"jace-dsh-widget-header {{model?.name}}-header\">\r\n <div class=\"jace-dsh-widget-title\" *ngIf=\"model.title\">\r\n {{model.title}}\r\n </div>\r\n <div class=\"jace-dsh-widget-controls\" *ngIf=\"dataReady\">\r\n <span class=\"transition drag-handler jace-dsh-widget-drag\" *ngIf=\"model.dragEnabled\">\r\n <i class=\"fa fa-arrows-alt\"></i>\r\n </span>\r\n <span class=\"transition jace-dsh-widget-opts\" (click)=\"configure()\">\r\n <i class=\"fa fa-cog\"></i>\r\n </span>\r\n <span (click)=\"removeWidget()\" class=\"transition remove-button jace-dsh-widget-close\">\r\n <i class=\"fa fa-times\"></i>\r\n </span>\r\n </div>\r\n</div>\r\n<div class=\"jace-dsh-widget-body gridster-item-content {{model?.name}}-body\">\r\n <div class=\"jace-dsh-widget-loading\" *ngIf=\"!dataReady\">\r\n <i class=\"fa fa-spinner fa-spin\"></i>\r\n </div>\r\n <div class=\"jace-dsh-list-body jace-dsh-widget-slide\"\r\n [ngClass]=\"{'jace-dsh-widget-content-hide':configuration,'jace-dsh-widget-content-show':!configuration}\"\r\n *ngIf=\"dataReady\">\r\n <div class=\"jace-dsh-list-super-text\" *ngIf=\"model.superText\">{{model.superText}}</div>\r\n <div class=\"jace-dsh-list-item\" (click)=\"itemClicked(item)\" [class.jace-dsh-list-link]=\"item.link\"\r\n *ngFor=\"let item of model.items\">\r\n <div>\r\n <span class=\"jace-dsh-list-item-id\" *ngIf=\"item.id && item.showId\">{{item.id}}</span>\r\n <span>{{item.description}}</span>\r\n </div>\r\n <div *ngIf=\"item.subline\">\r\n <span class=\"jace-dsh-list-item-subline\">{{item.subline}}</span>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"jace-dsh-widget-settings jace-dsh-widget-slide \"\r\n [ngClass]=\"{'jace-dsh-widget-settings-hide':!configuration,'jace-dsh-widget-settings-show':configuration}\">\r\n <p>Configuration</p>\r\n </div>\r\n</div>", styles: [".jace-dsh-list-body{height:100%;overflow-y:auto}.jace-dsh-list-super-text{font-weight:500}.jace-dsh-list-item{display:flow;flex-direction:row;justify-content:flex-start;padding:.4em;border:1px solid #eee;margin-top:2px}.jace-dsh-list-item-id{margin-right:1em;color:#fff;background:#637ca0;font-size:.8em;padding:.2em .5em;border-radius:.2em}.jace-dsh-list-link{color:#0275d8!important;cursor:pointer;text-decoration:none;display:block}.jace-dsh-list-link:hover{cursor:pointer;color:#fff;background-color:#b0c4de;text-decoration:underline}.jace-dsh-list-item-subline{font-size:.5em}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
270
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: JaceListWidgetComponent, deps: [{ token: DSH_DATA_SERVICE }, { token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
271
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.24", type: JaceListWidgetComponent, isStandalone: false, selector: "jace-dsh-list", inputs: { DashboardDate: "DashboardDate" }, outputs: { OnRemove: "OnRemove" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"jace-dsh-widget-header {{model?.name}}-header\">\n @if (model.title) {\n <div class=\"jace-dsh-widget-title\">\n {{model.title}}\n </div>\n }\n @if (dataReady) {\n <div class=\"jace-dsh-widget-controls\">\n @if (model.dragEnabled) {\n <span class=\"transition drag-handler jace-dsh-widget-drag\">\n <i class=\"fa fa-arrows-alt\"></i>\n </span>\n }\n <span class=\"transition jace-dsh-widget-opts\" (click)=\"configure()\">\n <i class=\"fa fa-cog\"></i>\n </span>\n <span (click)=\"removeWidget()\" class=\"transition remove-button jace-dsh-widget-close\">\n <i class=\"fa fa-times\"></i>\n </span>\n </div>\n }\n</div>\n<div class=\"jace-dsh-widget-body gridster-item-content {{model?.name}}-body\">\n @if (!dataReady) {\n <div class=\"jace-dsh-widget-loading\">\n <i class=\"fa fa-spinner fa-spin\"></i>\n </div>\n }\n @if (dataReady) {\n <div class=\"jace-dsh-list-body jace-dsh-widget-slide\"\n [ngClass]=\"{'jace-dsh-widget-content-hide':configuration,'jace-dsh-widget-content-show':!configuration}\"\n >\n @if (model.superText) {\n <div class=\"jace-dsh-list-super-text\">{{model.superText}}</div>\n }\n @for (item of model.items; track item) {\n <div class=\"jace-dsh-list-item\" (click)=\"itemClicked(item)\" [class.jace-dsh-list-link]=\"item.link\"\n >\n <div>\n @if (item.id && item.showId) {\n <span class=\"jace-dsh-list-item-id\">{{item.id}}</span>\n }\n <span>{{item.description}}</span>\n </div>\n @if (item.subline) {\n <div>\n <span class=\"jace-dsh-list-item-subline\">{{item.subline}}</span>\n </div>\n }\n </div>\n }\n </div>\n }\n <div class=\"jace-dsh-widget-settings jace-dsh-widget-slide \"\n [ngClass]=\"{'jace-dsh-widget-settings-hide':!configuration,'jace-dsh-widget-settings-show':configuration}\">\n <p>Configuration</p>\n </div>\n</div>", styles: [".jace-dsh-list-body{height:100%;overflow-y:auto}.jace-dsh-list-super-text{font-weight:500}.jace-dsh-list-item{display:flow;flex-direction:row;justify-content:flex-start;padding:.4em;border:1px solid #eee;margin-top:2px}.jace-dsh-list-item-id{margin-right:1em;color:#fff;background:#637ca0;font-size:.8em;padding:.2em .5em;border-radius:.2em}.jace-dsh-list-link{color:#0275d8!important;cursor:pointer;text-decoration:none;display:block}.jace-dsh-list-link:hover{cursor:pointer;color:#fff;background-color:#b0c4de;text-decoration:underline}.jace-dsh-list-item-subline{font-size:.5em}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
272
272
  }
273
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: JaceListWidgetComponent, decorators: [{
273
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: JaceListWidgetComponent, decorators: [{
274
274
  type: Component,
275
- args: [{ selector: 'jace-dsh-list', standalone: false, template: "<div class=\"jace-dsh-widget-header {{model?.name}}-header\">\r\n <div class=\"jace-dsh-widget-title\" *ngIf=\"model.title\">\r\n {{model.title}}\r\n </div>\r\n <div class=\"jace-dsh-widget-controls\" *ngIf=\"dataReady\">\r\n <span class=\"transition drag-handler jace-dsh-widget-drag\" *ngIf=\"model.dragEnabled\">\r\n <i class=\"fa fa-arrows-alt\"></i>\r\n </span>\r\n <span class=\"transition jace-dsh-widget-opts\" (click)=\"configure()\">\r\n <i class=\"fa fa-cog\"></i>\r\n </span>\r\n <span (click)=\"removeWidget()\" class=\"transition remove-button jace-dsh-widget-close\">\r\n <i class=\"fa fa-times\"></i>\r\n </span>\r\n </div>\r\n</div>\r\n<div class=\"jace-dsh-widget-body gridster-item-content {{model?.name}}-body\">\r\n <div class=\"jace-dsh-widget-loading\" *ngIf=\"!dataReady\">\r\n <i class=\"fa fa-spinner fa-spin\"></i>\r\n </div>\r\n <div class=\"jace-dsh-list-body jace-dsh-widget-slide\"\r\n [ngClass]=\"{'jace-dsh-widget-content-hide':configuration,'jace-dsh-widget-content-show':!configuration}\"\r\n *ngIf=\"dataReady\">\r\n <div class=\"jace-dsh-list-super-text\" *ngIf=\"model.superText\">{{model.superText}}</div>\r\n <div class=\"jace-dsh-list-item\" (click)=\"itemClicked(item)\" [class.jace-dsh-list-link]=\"item.link\"\r\n *ngFor=\"let item of model.items\">\r\n <div>\r\n <span class=\"jace-dsh-list-item-id\" *ngIf=\"item.id && item.showId\">{{item.id}}</span>\r\n <span>{{item.description}}</span>\r\n </div>\r\n <div *ngIf=\"item.subline\">\r\n <span class=\"jace-dsh-list-item-subline\">{{item.subline}}</span>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"jace-dsh-widget-settings jace-dsh-widget-slide \"\r\n [ngClass]=\"{'jace-dsh-widget-settings-hide':!configuration,'jace-dsh-widget-settings-show':configuration}\">\r\n <p>Configuration</p>\r\n </div>\r\n</div>", styles: [".jace-dsh-list-body{height:100%;overflow-y:auto}.jace-dsh-list-super-text{font-weight:500}.jace-dsh-list-item{display:flow;flex-direction:row;justify-content:flex-start;padding:.4em;border:1px solid #eee;margin-top:2px}.jace-dsh-list-item-id{margin-right:1em;color:#fff;background:#637ca0;font-size:.8em;padding:.2em .5em;border-radius:.2em}.jace-dsh-list-link{color:#0275d8!important;cursor:pointer;text-decoration:none;display:block}.jace-dsh-list-link:hover{cursor:pointer;color:#fff;background-color:#b0c4de;text-decoration:underline}.jace-dsh-list-item-subline{font-size:.5em}\n"] }]
275
+ args: [{ selector: 'jace-dsh-list', standalone: false, template: "<div class=\"jace-dsh-widget-header {{model?.name}}-header\">\n @if (model.title) {\n <div class=\"jace-dsh-widget-title\">\n {{model.title}}\n </div>\n }\n @if (dataReady) {\n <div class=\"jace-dsh-widget-controls\">\n @if (model.dragEnabled) {\n <span class=\"transition drag-handler jace-dsh-widget-drag\">\n <i class=\"fa fa-arrows-alt\"></i>\n </span>\n }\n <span class=\"transition jace-dsh-widget-opts\" (click)=\"configure()\">\n <i class=\"fa fa-cog\"></i>\n </span>\n <span (click)=\"removeWidget()\" class=\"transition remove-button jace-dsh-widget-close\">\n <i class=\"fa fa-times\"></i>\n </span>\n </div>\n }\n</div>\n<div class=\"jace-dsh-widget-body gridster-item-content {{model?.name}}-body\">\n @if (!dataReady) {\n <div class=\"jace-dsh-widget-loading\">\n <i class=\"fa fa-spinner fa-spin\"></i>\n </div>\n }\n @if (dataReady) {\n <div class=\"jace-dsh-list-body jace-dsh-widget-slide\"\n [ngClass]=\"{'jace-dsh-widget-content-hide':configuration,'jace-dsh-widget-content-show':!configuration}\"\n >\n @if (model.superText) {\n <div class=\"jace-dsh-list-super-text\">{{model.superText}}</div>\n }\n @for (item of model.items; track item) {\n <div class=\"jace-dsh-list-item\" (click)=\"itemClicked(item)\" [class.jace-dsh-list-link]=\"item.link\"\n >\n <div>\n @if (item.id && item.showId) {\n <span class=\"jace-dsh-list-item-id\">{{item.id}}</span>\n }\n <span>{{item.description}}</span>\n </div>\n @if (item.subline) {\n <div>\n <span class=\"jace-dsh-list-item-subline\">{{item.subline}}</span>\n </div>\n }\n </div>\n }\n </div>\n }\n <div class=\"jace-dsh-widget-settings jace-dsh-widget-slide \"\n [ngClass]=\"{'jace-dsh-widget-settings-hide':!configuration,'jace-dsh-widget-settings-show':configuration}\">\n <p>Configuration</p>\n </div>\n</div>", styles: [".jace-dsh-list-body{height:100%;overflow-y:auto}.jace-dsh-list-super-text{font-weight:500}.jace-dsh-list-item{display:flow;flex-direction:row;justify-content:flex-start;padding:.4em;border:1px solid #eee;margin-top:2px}.jace-dsh-list-item-id{margin-right:1em;color:#fff;background:#637ca0;font-size:.8em;padding:.2em .5em;border-radius:.2em}.jace-dsh-list-link{color:#0275d8!important;cursor:pointer;text-decoration:none;display:block}.jace-dsh-list-link:hover{cursor:pointer;color:#fff;background-color:#b0c4de;text-decoration:underline}.jace-dsh-list-item-subline{font-size:.5em}\n"] }]
276
276
  }], ctorParameters: () => [{ type: undefined, decorators: [{
277
277
  type: Inject,
278
278
  args: [DSH_DATA_SERVICE]
@@ -802,193 +802,261 @@ class CircleProgressComponent {
802
802
  Object.assign(this.options, defaultOptions);
803
803
  Object.assign(this.defaultOptions, defaultOptions);
804
804
  }
805
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: CircleProgressComponent, deps: [{ token: CircleProgressOptions }, { token: i0.NgZone }, { token: i0.ElementRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
806
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: CircleProgressComponent, isStandalone: false, selector: "circle-progress", inputs: { name: "name", class: "class", backgroundGradient: "backgroundGradient", backgroundColor: "backgroundColor", backgroundGradientStopColor: "backgroundGradientStopColor", backgroundOpacity: "backgroundOpacity", backgroundStroke: "backgroundStroke", backgroundStrokeWidth: "backgroundStrokeWidth", backgroundPadding: "backgroundPadding", radius: "radius", space: "space", percent: "percent", toFixed: "toFixed", maxPercent: "maxPercent", renderOnClick: "renderOnClick", units: "units", unitsFontSize: "unitsFontSize", unitsFontWeight: "unitsFontWeight", unitsColor: "unitsColor", outerStrokeGradient: "outerStrokeGradient", outerStrokeWidth: "outerStrokeWidth", outerStrokeColor: "outerStrokeColor", outerStrokeGradientStopColor: "outerStrokeGradientStopColor", outerStrokeLinecap: "outerStrokeLinecap", innerStrokeColor: "innerStrokeColor", innerStrokeWidth: "innerStrokeWidth", titleFormat: "titleFormat", title: "title", titleColor: "titleColor", titleFontSize: "titleFontSize", titleFontWeight: "titleFontWeight", subtitleFormat: "subtitleFormat", subtitle: "subtitle", subtitleColor: "subtitleColor", subtitleFontSize: "subtitleFontSize", subtitleFontWeight: "subtitleFontWeight", imageSrc: "imageSrc", imageHeight: "imageHeight", imageWidth: "imageWidth", animation: "animation", animateTitle: "animateTitle", animateSubtitle: "animateSubtitle", animationDuration: "animationDuration", showTitle: "showTitle", showSubtitle: "showSubtitle", showUnits: "showUnits", showImage: "showImage", showBackground: "showBackground", showInnerStroke: "showInnerStroke", clockwise: "clockwise", responsive: "responsive", startFromZero: "startFromZero", showZeroOuterStroke: "showZeroOuterStroke", lazy: "lazy", templateOptions: ["options", "templateOptions"] }, outputs: { onClick: "onClick" }, usesOnChanges: true, ngImport: i0, template: `
807
- <svg xmlns="http://www.w3.org/2000/svg" *ngIf="svg"
808
- [attr.viewBox]="svg.viewBox" preserveAspectRatio="xMidYMid meet"
809
- [attr.height]="svg.height" [attr.width]="svg.width" (click)="emitClickEvent($event)" [attr.class]="options.class">
810
- <defs>
811
- <linearGradient *ngIf="options.outerStrokeGradient" [attr.id]="svg.outerLinearGradient.id">
812
- <stop offset="5%" [attr.stop-color]="svg.outerLinearGradient.colorStop1" [attr.stop-opacity]="1"/>
813
- <stop offset="95%" [attr.stop-color]="svg.outerLinearGradient.colorStop2" [attr.stop-opacity]="1"/>
814
- </linearGradient>
815
- <radialGradient *ngIf="options.backgroundGradient" [attr.id]="svg.radialGradient.id">
816
- <stop offset="5%" [attr.stop-color]="svg.radialGradient.colorStop1" [attr.stop-opacity]="1"/>
817
- <stop offset="95%" [attr.stop-color]="svg.radialGradient.colorStop2" [attr.stop-opacity]="1"/>
818
- </radialGradient>
819
- </defs>
820
- <ng-container *ngIf="options.showBackground">
821
- <circle *ngIf="!options.backgroundGradient"
822
- [attr.cx]="svg.backgroundCircle.cx"
823
- [attr.cy]="svg.backgroundCircle.cy"
824
- [attr.r]="svg.backgroundCircle.r"
825
- [attr.fill]="svg.backgroundCircle.fill"
826
- [attr.fill-opacity]="svg.backgroundCircle.fillOpacity"
827
- [attr.stroke]="svg.backgroundCircle.stroke"
828
- [attr.stroke-width]="svg.backgroundCircle.strokeWidth"/>
829
- <circle *ngIf="options.backgroundGradient"
830
- [attr.cx]="svg.backgroundCircle.cx"
831
- [attr.cy]="svg.backgroundCircle.cy"
832
- [attr.r]="svg.backgroundCircle.r"
833
- attr.fill="url({{window.location.href}}#{{svg.radialGradient.id}})"
834
- [attr.fill-opacity]="svg.backgroundCircle.fillOpacity"
835
- [attr.stroke]="svg.backgroundCircle.stroke"
836
- [attr.stroke-width]="svg.backgroundCircle.strokeWidth"/>
837
- </ng-container>
838
- <circle *ngIf="options.showInnerStroke"
839
- [attr.cx]="svg.circle.cx"
840
- [attr.cy]="svg.circle.cy"
841
- [attr.r]="svg.circle.r"
842
- [attr.fill]="svg.circle.fill"
843
- [attr.stroke]="svg.circle.stroke"
844
- [attr.stroke-width]="svg.circle.strokeWidth"/>
845
- <ng-container *ngIf="+options.percent!==0 || options.showZeroOuterStroke">
846
- <path *ngIf="!options.outerStrokeGradient"
847
- [attr.d]="svg.path.d"
848
- [attr.stroke]="svg.path.stroke"
849
- [attr.stroke-width]="svg.path.strokeWidth"
850
- [attr.stroke-linecap]="svg.path.strokeLinecap"
851
- [attr.fill]="svg.path.fill"/>
852
- <path *ngIf="options.outerStrokeGradient"
853
- [attr.d]="svg.path.d"
854
- attr.stroke="url({{window.location.href}}#{{svg.outerLinearGradient.id}})"
855
- [attr.stroke-width]="svg.path.strokeWidth"
856
- [attr.stroke-linecap]="svg.path.strokeLinecap"
857
- [attr.fill]="svg.path.fill"/>
858
- </ng-container>
859
- <text *ngIf="!options.showImage && (options.showTitle || options.showUnits || options.showSubtitle)"
860
- alignment-baseline="baseline"
861
- [attr.x]="svg.circle.cx"
862
- [attr.y]="svg.circle.cy"
863
- [attr.text-anchor]="svg.title.textAnchor">
864
- <ng-container *ngIf="options.showTitle">
865
- <tspan *ngFor="let tspan of svg.title.tspans"
866
- [attr.x]="svg.title.x"
867
- [attr.y]="svg.title.y"
868
- [attr.dy]="tspan.dy"
869
- [attr.font-size]="svg.title.fontSize"
870
- [attr.font-weight]="svg.title.fontWeight"
871
- [attr.fill]="svg.title.color">{{tspan.span}}</tspan>
872
- </ng-container>
873
- <tspan *ngIf="options.showUnits"
874
- [attr.font-size]="svg.units.fontSize"
875
- [attr.font-weight]="svg.units.fontWeight"
876
- [attr.fill]="svg.units.color">{{svg.units.text}}</tspan>
877
- <ng-container *ngIf="options.showSubtitle">
878
- <tspan *ngFor="let tspan of svg.subtitle.tspans"
879
- [attr.x]="svg.subtitle.x"
880
- [attr.y]="svg.subtitle.y"
881
- [attr.dy]="tspan.dy"
882
- [attr.font-size]="svg.subtitle.fontSize"
883
- [attr.font-weight]="svg.subtitle.fontWeight"
884
- [attr.fill]="svg.subtitle.color">{{tspan.span}}</tspan>
885
- </ng-container>
886
- </text>
887
- <image *ngIf="options.showImage" preserveAspectRatio="none"
888
- [attr.height]="svg.image.height"
889
- [attr.width]="svg.image.width"
890
- [attr.xlink:href]="svg.image.src"
891
- [attr.x]="svg.image.x"
892
- [attr.y]="svg.image.y"
893
- />
894
- </svg>
895
- `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
805
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: CircleProgressComponent, deps: [{ token: CircleProgressOptions }, { token: i0.NgZone }, { token: i0.ElementRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
806
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.24", type: CircleProgressComponent, isStandalone: false, selector: "circle-progress", inputs: { name: "name", class: "class", backgroundGradient: "backgroundGradient", backgroundColor: "backgroundColor", backgroundGradientStopColor: "backgroundGradientStopColor", backgroundOpacity: "backgroundOpacity", backgroundStroke: "backgroundStroke", backgroundStrokeWidth: "backgroundStrokeWidth", backgroundPadding: "backgroundPadding", radius: "radius", space: "space", percent: "percent", toFixed: "toFixed", maxPercent: "maxPercent", renderOnClick: "renderOnClick", units: "units", unitsFontSize: "unitsFontSize", unitsFontWeight: "unitsFontWeight", unitsColor: "unitsColor", outerStrokeGradient: "outerStrokeGradient", outerStrokeWidth: "outerStrokeWidth", outerStrokeColor: "outerStrokeColor", outerStrokeGradientStopColor: "outerStrokeGradientStopColor", outerStrokeLinecap: "outerStrokeLinecap", innerStrokeColor: "innerStrokeColor", innerStrokeWidth: "innerStrokeWidth", titleFormat: "titleFormat", title: "title", titleColor: "titleColor", titleFontSize: "titleFontSize", titleFontWeight: "titleFontWeight", subtitleFormat: "subtitleFormat", subtitle: "subtitle", subtitleColor: "subtitleColor", subtitleFontSize: "subtitleFontSize", subtitleFontWeight: "subtitleFontWeight", imageSrc: "imageSrc", imageHeight: "imageHeight", imageWidth: "imageWidth", animation: "animation", animateTitle: "animateTitle", animateSubtitle: "animateSubtitle", animationDuration: "animationDuration", showTitle: "showTitle", showSubtitle: "showSubtitle", showUnits: "showUnits", showImage: "showImage", showBackground: "showBackground", showInnerStroke: "showInnerStroke", clockwise: "clockwise", responsive: "responsive", startFromZero: "startFromZero", showZeroOuterStroke: "showZeroOuterStroke", lazy: "lazy", templateOptions: ["options", "templateOptions"] }, outputs: { onClick: "onClick" }, usesOnChanges: true, ngImport: i0, template: `
807
+ @if (svg) {
808
+ <svg xmlns="http://www.w3.org/2000/svg"
809
+ [attr.viewBox]="svg.viewBox" preserveAspectRatio="xMidYMid meet"
810
+ [attr.height]="svg.height" [attr.width]="svg.width" (click)="emitClickEvent($event)" [attr.class]="options.class">
811
+ <defs>
812
+ @if (options.outerStrokeGradient) {
813
+ <linearGradient [attr.id]="svg.outerLinearGradient.id">
814
+ <stop offset="5%" [attr.stop-color]="svg.outerLinearGradient.colorStop1" [attr.stop-opacity]="1"/>
815
+ <stop offset="95%" [attr.stop-color]="svg.outerLinearGradient.colorStop2" [attr.stop-opacity]="1"/>
816
+ </linearGradient>
817
+ }
818
+ @if (options.backgroundGradient) {
819
+ <radialGradient [attr.id]="svg.radialGradient.id">
820
+ <stop offset="5%" [attr.stop-color]="svg.radialGradient.colorStop1" [attr.stop-opacity]="1"/>
821
+ <stop offset="95%" [attr.stop-color]="svg.radialGradient.colorStop2" [attr.stop-opacity]="1"/>
822
+ </radialGradient>
823
+ }
824
+ </defs>
825
+ @if (options.showBackground) {
826
+ <ng-container>
827
+ @if (!options.backgroundGradient) {
828
+ <circle
829
+ [attr.cx]="svg.backgroundCircle.cx"
830
+ [attr.cy]="svg.backgroundCircle.cy"
831
+ [attr.r]="svg.backgroundCircle.r"
832
+ [attr.fill]="svg.backgroundCircle.fill"
833
+ [attr.fill-opacity]="svg.backgroundCircle.fillOpacity"
834
+ [attr.stroke]="svg.backgroundCircle.stroke"
835
+ [attr.stroke-width]="svg.backgroundCircle.strokeWidth"/>
836
+ }
837
+ @if (options.backgroundGradient) {
838
+ <circle
839
+ [attr.cx]="svg.backgroundCircle.cx"
840
+ [attr.cy]="svg.backgroundCircle.cy"
841
+ [attr.r]="svg.backgroundCircle.r"
842
+ attr.fill="url({{window.location.href}}#{{svg.radialGradient.id}})"
843
+ [attr.fill-opacity]="svg.backgroundCircle.fillOpacity"
844
+ [attr.stroke]="svg.backgroundCircle.stroke"
845
+ [attr.stroke-width]="svg.backgroundCircle.strokeWidth"/>
846
+ }
847
+ </ng-container>
848
+ }
849
+ @if (options.showInnerStroke) {
850
+ <circle
851
+ [attr.cx]="svg.circle.cx"
852
+ [attr.cy]="svg.circle.cy"
853
+ [attr.r]="svg.circle.r"
854
+ [attr.fill]="svg.circle.fill"
855
+ [attr.stroke]="svg.circle.stroke"
856
+ [attr.stroke-width]="svg.circle.strokeWidth"/>
857
+ }
858
+ @if (+options.percent!==0 || options.showZeroOuterStroke) {
859
+ <ng-container>
860
+ @if (!options.outerStrokeGradient) {
861
+ <path
862
+ [attr.d]="svg.path.d"
863
+ [attr.stroke]="svg.path.stroke"
864
+ [attr.stroke-width]="svg.path.strokeWidth"
865
+ [attr.stroke-linecap]="svg.path.strokeLinecap"
866
+ [attr.fill]="svg.path.fill"/>
867
+ }
868
+ @if (options.outerStrokeGradient) {
869
+ <path
870
+ [attr.d]="svg.path.d"
871
+ attr.stroke="url({{window.location.href}}#{{svg.outerLinearGradient.id}})"
872
+ [attr.stroke-width]="svg.path.strokeWidth"
873
+ [attr.stroke-linecap]="svg.path.strokeLinecap"
874
+ [attr.fill]="svg.path.fill"/>
875
+ }
876
+ </ng-container>
877
+ }
878
+ @if (!options.showImage && (options.showTitle || options.showUnits || options.showSubtitle)) {
879
+ <text
880
+ alignment-baseline="baseline"
881
+ [attr.x]="svg.circle.cx"
882
+ [attr.y]="svg.circle.cy"
883
+ [attr.text-anchor]="svg.title.textAnchor">
884
+ @if (options.showTitle) {
885
+ <ng-container>
886
+ @for (tspan of svg.title.tspans; track tspan) {
887
+ <tspan
888
+ [attr.x]="svg.title.x"
889
+ [attr.y]="svg.title.y"
890
+ [attr.dy]="tspan.dy"
891
+ [attr.font-size]="svg.title.fontSize"
892
+ [attr.font-weight]="svg.title.fontWeight"
893
+ [attr.fill]="svg.title.color">{{tspan.span}}</tspan>
894
+ }
895
+ </ng-container>
896
+ }
897
+ @if (options.showUnits) {
898
+ <tspan
899
+ [attr.font-size]="svg.units.fontSize"
900
+ [attr.font-weight]="svg.units.fontWeight"
901
+ [attr.fill]="svg.units.color">{{svg.units.text}}</tspan>
902
+ }
903
+ @if (options.showSubtitle) {
904
+ <ng-container>
905
+ @for (tspan of svg.subtitle.tspans; track tspan) {
906
+ <tspan
907
+ [attr.x]="svg.subtitle.x"
908
+ [attr.y]="svg.subtitle.y"
909
+ [attr.dy]="tspan.dy"
910
+ [attr.font-size]="svg.subtitle.fontSize"
911
+ [attr.font-weight]="svg.subtitle.fontWeight"
912
+ [attr.fill]="svg.subtitle.color">{{tspan.span}}</tspan>
913
+ }
914
+ </ng-container>
915
+ }
916
+ </text>
917
+ }
918
+ @if (options.showImage) {
919
+ <image preserveAspectRatio="none"
920
+ [attr.height]="svg.image.height"
921
+ [attr.width]="svg.image.width"
922
+ [attr.xlink:href]="svg.image.src"
923
+ [attr.x]="svg.image.x"
924
+ [attr.y]="svg.image.y"
925
+ />
926
+ }
927
+ </svg>
928
+ }
929
+ `, isInline: true }); }
896
930
  }
897
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: CircleProgressComponent, decorators: [{
931
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: CircleProgressComponent, decorators: [{
898
932
  type: Component,
899
933
  args: [{
900
934
  selector: 'circle-progress',
901
935
  standalone: false,
902
- template: `
903
- <svg xmlns="http://www.w3.org/2000/svg" *ngIf="svg"
904
- [attr.viewBox]="svg.viewBox" preserveAspectRatio="xMidYMid meet"
905
- [attr.height]="svg.height" [attr.width]="svg.width" (click)="emitClickEvent($event)" [attr.class]="options.class">
906
- <defs>
907
- <linearGradient *ngIf="options.outerStrokeGradient" [attr.id]="svg.outerLinearGradient.id">
908
- <stop offset="5%" [attr.stop-color]="svg.outerLinearGradient.colorStop1" [attr.stop-opacity]="1"/>
909
- <stop offset="95%" [attr.stop-color]="svg.outerLinearGradient.colorStop2" [attr.stop-opacity]="1"/>
910
- </linearGradient>
911
- <radialGradient *ngIf="options.backgroundGradient" [attr.id]="svg.radialGradient.id">
912
- <stop offset="5%" [attr.stop-color]="svg.radialGradient.colorStop1" [attr.stop-opacity]="1"/>
913
- <stop offset="95%" [attr.stop-color]="svg.radialGradient.colorStop2" [attr.stop-opacity]="1"/>
914
- </radialGradient>
915
- </defs>
916
- <ng-container *ngIf="options.showBackground">
917
- <circle *ngIf="!options.backgroundGradient"
918
- [attr.cx]="svg.backgroundCircle.cx"
919
- [attr.cy]="svg.backgroundCircle.cy"
920
- [attr.r]="svg.backgroundCircle.r"
921
- [attr.fill]="svg.backgroundCircle.fill"
922
- [attr.fill-opacity]="svg.backgroundCircle.fillOpacity"
923
- [attr.stroke]="svg.backgroundCircle.stroke"
924
- [attr.stroke-width]="svg.backgroundCircle.strokeWidth"/>
925
- <circle *ngIf="options.backgroundGradient"
926
- [attr.cx]="svg.backgroundCircle.cx"
927
- [attr.cy]="svg.backgroundCircle.cy"
928
- [attr.r]="svg.backgroundCircle.r"
929
- attr.fill="url({{window.location.href}}#{{svg.radialGradient.id}})"
930
- [attr.fill-opacity]="svg.backgroundCircle.fillOpacity"
931
- [attr.stroke]="svg.backgroundCircle.stroke"
932
- [attr.stroke-width]="svg.backgroundCircle.strokeWidth"/>
933
- </ng-container>
934
- <circle *ngIf="options.showInnerStroke"
935
- [attr.cx]="svg.circle.cx"
936
- [attr.cy]="svg.circle.cy"
937
- [attr.r]="svg.circle.r"
938
- [attr.fill]="svg.circle.fill"
939
- [attr.stroke]="svg.circle.stroke"
940
- [attr.stroke-width]="svg.circle.strokeWidth"/>
941
- <ng-container *ngIf="+options.percent!==0 || options.showZeroOuterStroke">
942
- <path *ngIf="!options.outerStrokeGradient"
943
- [attr.d]="svg.path.d"
944
- [attr.stroke]="svg.path.stroke"
945
- [attr.stroke-width]="svg.path.strokeWidth"
946
- [attr.stroke-linecap]="svg.path.strokeLinecap"
947
- [attr.fill]="svg.path.fill"/>
948
- <path *ngIf="options.outerStrokeGradient"
949
- [attr.d]="svg.path.d"
950
- attr.stroke="url({{window.location.href}}#{{svg.outerLinearGradient.id}})"
951
- [attr.stroke-width]="svg.path.strokeWidth"
952
- [attr.stroke-linecap]="svg.path.strokeLinecap"
953
- [attr.fill]="svg.path.fill"/>
954
- </ng-container>
955
- <text *ngIf="!options.showImage && (options.showTitle || options.showUnits || options.showSubtitle)"
956
- alignment-baseline="baseline"
957
- [attr.x]="svg.circle.cx"
958
- [attr.y]="svg.circle.cy"
959
- [attr.text-anchor]="svg.title.textAnchor">
960
- <ng-container *ngIf="options.showTitle">
961
- <tspan *ngFor="let tspan of svg.title.tspans"
962
- [attr.x]="svg.title.x"
963
- [attr.y]="svg.title.y"
964
- [attr.dy]="tspan.dy"
965
- [attr.font-size]="svg.title.fontSize"
966
- [attr.font-weight]="svg.title.fontWeight"
967
- [attr.fill]="svg.title.color">{{tspan.span}}</tspan>
968
- </ng-container>
969
- <tspan *ngIf="options.showUnits"
970
- [attr.font-size]="svg.units.fontSize"
971
- [attr.font-weight]="svg.units.fontWeight"
972
- [attr.fill]="svg.units.color">{{svg.units.text}}</tspan>
973
- <ng-container *ngIf="options.showSubtitle">
974
- <tspan *ngFor="let tspan of svg.subtitle.tspans"
975
- [attr.x]="svg.subtitle.x"
976
- [attr.y]="svg.subtitle.y"
977
- [attr.dy]="tspan.dy"
978
- [attr.font-size]="svg.subtitle.fontSize"
979
- [attr.font-weight]="svg.subtitle.fontWeight"
980
- [attr.fill]="svg.subtitle.color">{{tspan.span}}</tspan>
981
- </ng-container>
982
- </text>
983
- <image *ngIf="options.showImage" preserveAspectRatio="none"
984
- [attr.height]="svg.image.height"
985
- [attr.width]="svg.image.width"
986
- [attr.xlink:href]="svg.image.src"
987
- [attr.x]="svg.image.x"
988
- [attr.y]="svg.image.y"
989
- />
990
- </svg>
991
- `
936
+ template: `
937
+ @if (svg) {
938
+ <svg xmlns="http://www.w3.org/2000/svg"
939
+ [attr.viewBox]="svg.viewBox" preserveAspectRatio="xMidYMid meet"
940
+ [attr.height]="svg.height" [attr.width]="svg.width" (click)="emitClickEvent($event)" [attr.class]="options.class">
941
+ <defs>
942
+ @if (options.outerStrokeGradient) {
943
+ <linearGradient [attr.id]="svg.outerLinearGradient.id">
944
+ <stop offset="5%" [attr.stop-color]="svg.outerLinearGradient.colorStop1" [attr.stop-opacity]="1"/>
945
+ <stop offset="95%" [attr.stop-color]="svg.outerLinearGradient.colorStop2" [attr.stop-opacity]="1"/>
946
+ </linearGradient>
947
+ }
948
+ @if (options.backgroundGradient) {
949
+ <radialGradient [attr.id]="svg.radialGradient.id">
950
+ <stop offset="5%" [attr.stop-color]="svg.radialGradient.colorStop1" [attr.stop-opacity]="1"/>
951
+ <stop offset="95%" [attr.stop-color]="svg.radialGradient.colorStop2" [attr.stop-opacity]="1"/>
952
+ </radialGradient>
953
+ }
954
+ </defs>
955
+ @if (options.showBackground) {
956
+ <ng-container>
957
+ @if (!options.backgroundGradient) {
958
+ <circle
959
+ [attr.cx]="svg.backgroundCircle.cx"
960
+ [attr.cy]="svg.backgroundCircle.cy"
961
+ [attr.r]="svg.backgroundCircle.r"
962
+ [attr.fill]="svg.backgroundCircle.fill"
963
+ [attr.fill-opacity]="svg.backgroundCircle.fillOpacity"
964
+ [attr.stroke]="svg.backgroundCircle.stroke"
965
+ [attr.stroke-width]="svg.backgroundCircle.strokeWidth"/>
966
+ }
967
+ @if (options.backgroundGradient) {
968
+ <circle
969
+ [attr.cx]="svg.backgroundCircle.cx"
970
+ [attr.cy]="svg.backgroundCircle.cy"
971
+ [attr.r]="svg.backgroundCircle.r"
972
+ attr.fill="url({{window.location.href}}#{{svg.radialGradient.id}})"
973
+ [attr.fill-opacity]="svg.backgroundCircle.fillOpacity"
974
+ [attr.stroke]="svg.backgroundCircle.stroke"
975
+ [attr.stroke-width]="svg.backgroundCircle.strokeWidth"/>
976
+ }
977
+ </ng-container>
978
+ }
979
+ @if (options.showInnerStroke) {
980
+ <circle
981
+ [attr.cx]="svg.circle.cx"
982
+ [attr.cy]="svg.circle.cy"
983
+ [attr.r]="svg.circle.r"
984
+ [attr.fill]="svg.circle.fill"
985
+ [attr.stroke]="svg.circle.stroke"
986
+ [attr.stroke-width]="svg.circle.strokeWidth"/>
987
+ }
988
+ @if (+options.percent!==0 || options.showZeroOuterStroke) {
989
+ <ng-container>
990
+ @if (!options.outerStrokeGradient) {
991
+ <path
992
+ [attr.d]="svg.path.d"
993
+ [attr.stroke]="svg.path.stroke"
994
+ [attr.stroke-width]="svg.path.strokeWidth"
995
+ [attr.stroke-linecap]="svg.path.strokeLinecap"
996
+ [attr.fill]="svg.path.fill"/>
997
+ }
998
+ @if (options.outerStrokeGradient) {
999
+ <path
1000
+ [attr.d]="svg.path.d"
1001
+ attr.stroke="url({{window.location.href}}#{{svg.outerLinearGradient.id}})"
1002
+ [attr.stroke-width]="svg.path.strokeWidth"
1003
+ [attr.stroke-linecap]="svg.path.strokeLinecap"
1004
+ [attr.fill]="svg.path.fill"/>
1005
+ }
1006
+ </ng-container>
1007
+ }
1008
+ @if (!options.showImage && (options.showTitle || options.showUnits || options.showSubtitle)) {
1009
+ <text
1010
+ alignment-baseline="baseline"
1011
+ [attr.x]="svg.circle.cx"
1012
+ [attr.y]="svg.circle.cy"
1013
+ [attr.text-anchor]="svg.title.textAnchor">
1014
+ @if (options.showTitle) {
1015
+ <ng-container>
1016
+ @for (tspan of svg.title.tspans; track tspan) {
1017
+ <tspan
1018
+ [attr.x]="svg.title.x"
1019
+ [attr.y]="svg.title.y"
1020
+ [attr.dy]="tspan.dy"
1021
+ [attr.font-size]="svg.title.fontSize"
1022
+ [attr.font-weight]="svg.title.fontWeight"
1023
+ [attr.fill]="svg.title.color">{{tspan.span}}</tspan>
1024
+ }
1025
+ </ng-container>
1026
+ }
1027
+ @if (options.showUnits) {
1028
+ <tspan
1029
+ [attr.font-size]="svg.units.fontSize"
1030
+ [attr.font-weight]="svg.units.fontWeight"
1031
+ [attr.fill]="svg.units.color">{{svg.units.text}}</tspan>
1032
+ }
1033
+ @if (options.showSubtitle) {
1034
+ <ng-container>
1035
+ @for (tspan of svg.subtitle.tspans; track tspan) {
1036
+ <tspan
1037
+ [attr.x]="svg.subtitle.x"
1038
+ [attr.y]="svg.subtitle.y"
1039
+ [attr.dy]="tspan.dy"
1040
+ [attr.font-size]="svg.subtitle.fontSize"
1041
+ [attr.font-weight]="svg.subtitle.fontWeight"
1042
+ [attr.fill]="svg.subtitle.color">{{tspan.span}}</tspan>
1043
+ }
1044
+ </ng-container>
1045
+ }
1046
+ </text>
1047
+ }
1048
+ @if (options.showImage) {
1049
+ <image preserveAspectRatio="none"
1050
+ [attr.height]="svg.image.height"
1051
+ [attr.width]="svg.image.width"
1052
+ [attr.xlink:href]="svg.image.src"
1053
+ [attr.x]="svg.image.x"
1054
+ [attr.y]="svg.image.y"
1055
+ />
1056
+ }
1057
+ </svg>
1058
+ }
1059
+ `
992
1060
  }]
993
1061
  }], ctorParameters: () => [{ type: CircleProgressOptions }, { type: i0.NgZone }, { type: i0.ElementRef }, { type: i0.Injector }], propDecorators: { onClick: [{
994
1062
  type: Output
@@ -1106,15 +1174,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
1106
1174
  }] } });
1107
1175
 
1108
1176
  class ProgressBarComponent {
1109
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1110
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: ProgressBarComponent, isStandalone: false, selector: "progress-bar", inputs: { value: "value" }, ngImport: i0, template: `
1177
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: ProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1178
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.24", type: ProgressBarComponent, isStandalone: false, selector: "progress-bar", inputs: { value: "value" }, ngImport: i0, template: `
1111
1179
  <div class="progress-bar-container">
1112
1180
  <div class="progress-bar" [style.width.%]="value">
1113
1181
  <!-- {{ value }} % -->
1114
1182
  </div>
1115
1183
  </div>`, isInline: true, styles: [".progress-bar-container{width:100%;background-color:#f1f1f1;border-radius:5px;overflow:hidden}.progress-bar{height:20px;background-color:#6200ee;text-align:center;line-height:20px;color:#fff;transition:width .4s ease}\n"] }); }
1116
1184
  }
1117
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ProgressBarComponent, decorators: [{
1185
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: ProgressBarComponent, decorators: [{
1118
1186
  type: Component,
1119
1187
  args: [{ selector: 'progress-bar', standalone: false, template: `
1120
1188
  <div class="progress-bar-container">
@@ -1186,12 +1254,12 @@ class JaceMultiprogWidgetComponent {
1186
1254
  }
1187
1255
  this.configuration = !this.configuration;
1188
1256
  }
1189
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: JaceMultiprogWidgetComponent, deps: [{ token: DSH_DATA_SERVICE }, { token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
1190
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: JaceMultiprogWidgetComponent, isStandalone: false, selector: "jace-dsh-multiprog", inputs: { DashboardDate: "DashboardDate" }, outputs: { OnRemove: "OnRemove" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"jace-dsh-widget-header {{model?.name}}-header\">\r\n <div class=\"jace-dsh-widget-title\" *ngIf=\"model.title\">\r\n {{model.title}}\r\n </div>\r\n <div class=\"jace-dsh-widget-controls\" *ngIf=\"dataReady\">\r\n <span class=\"transition drag-handler jace-dsh-widget-drag\" *ngIf=\"model.dragEnabled\">\r\n <i class=\"fa fa-arrows-alt\"></i>\r\n </span>\r\n <span class=\"transition jace-dsh-widget-opts\" (click)=\"configure()\">\r\n <i class=\"fa fa-cog\"></i>\r\n </span>\r\n <span (click)=\"removeWidget()\" class=\"transition remove-button jace-dsh-widget-close\">\r\n <i class=\"fa fa-times\"></i>\r\n </span>\r\n\r\n </div>\r\n</div>\r\n<div class=\"jace-dsh-widget-body gridster-item-content {{model?.name}}-body\">\r\n <div class=\"jace-dsh-widget-loading\" *ngIf=\"!dataReady\">\r\n <i class=\"fa fa-spinner\"></i>\r\n </div>\r\n <div class=\"jace-dsh-multiprog-container jace-dsh-widget-slide\"\r\n [ngClass]=\"{'jace-dsh-widget-content-hide':configuration,'jace-dsh-widget-content-show':!configuration}\"\r\n *ngIf=\"dataReady\">\r\n <div *ngFor=\"let item of model.progressTitles; let i = index\" class=\"jace-dsh-multiprog-progress\">\r\n <div class=\"jace-dsh-multiprog-title\">{{item}}</div>\r\n <circle-progress *ngIf=\"model.circleProgress\" [percent]=\"model.progressValues[i]\" [showSubtitle]=false [radius]=\"36\" [outerStrokeWidth]=\"4\" [innerStrokeWidth]=\"2\" [outerStrokeColor]=\"'#7489AA'\" [innerStrokeColor]=\"'#EFECCA'\" [animation]=\"true\"\r\n [animationDuration]=\"300\" [showTitle]=\"true\"></circle-progress>\r\n\r\n <progress-bar [value]=\"model.progressValues[i]\" *ngIf=\"!model.circleProgress\"></progress-bar>\r\n </div>\r\n </div>\r\n <div class=\"jace-dsh-widget-settings jace-dsh-widget-slide \"\r\n [ngClass]=\"{'jace-dsh-widget-settings-hide':!configuration,'jace-dsh-widget-settings-show':configuration}\">\r\n <p>Configuration</p>\r\n </div>\r\n</div>", styles: [".jace-dsh-multiprog-title{text-align:center;font-weight:600;font-size:.8em}.jace-dsh-multiprog-container{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-evenly;padding:.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CircleProgressComponent, selector: "circle-progress", inputs: ["name", "class", "backgroundGradient", "backgroundColor", "backgroundGradientStopColor", "backgroundOpacity", "backgroundStroke", "backgroundStrokeWidth", "backgroundPadding", "radius", "space", "percent", "toFixed", "maxPercent", "renderOnClick", "units", "unitsFontSize", "unitsFontWeight", "unitsColor", "outerStrokeGradient", "outerStrokeWidth", "outerStrokeColor", "outerStrokeGradientStopColor", "outerStrokeLinecap", "innerStrokeColor", "innerStrokeWidth", "titleFormat", "title", "titleColor", "titleFontSize", "titleFontWeight", "subtitleFormat", "subtitle", "subtitleColor", "subtitleFontSize", "subtitleFontWeight", "imageSrc", "imageHeight", "imageWidth", "animation", "animateTitle", "animateSubtitle", "animationDuration", "showTitle", "showSubtitle", "showUnits", "showImage", "showBackground", "showInnerStroke", "clockwise", "responsive", "startFromZero", "showZeroOuterStroke", "lazy", "options"], outputs: ["onClick"] }, { kind: "component", type: ProgressBarComponent, selector: "progress-bar", inputs: ["value"] }] }); }
1257
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: JaceMultiprogWidgetComponent, deps: [{ token: DSH_DATA_SERVICE }, { token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
1258
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.24", type: JaceMultiprogWidgetComponent, isStandalone: false, selector: "jace-dsh-multiprog", inputs: { DashboardDate: "DashboardDate" }, outputs: { OnRemove: "OnRemove" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"jace-dsh-widget-header {{model?.name}}-header\">\n @if (model.title) {\n <div class=\"jace-dsh-widget-title\">\n {{model.title}}\n </div>\n }\n @if (dataReady) {\n <div class=\"jace-dsh-widget-controls\">\n @if (model.dragEnabled) {\n <span class=\"transition drag-handler jace-dsh-widget-drag\">\n <i class=\"fa fa-arrows-alt\"></i>\n </span>\n }\n <span class=\"transition jace-dsh-widget-opts\" (click)=\"configure()\">\n <i class=\"fa fa-cog\"></i>\n </span>\n <span (click)=\"removeWidget()\" class=\"transition remove-button jace-dsh-widget-close\">\n <i class=\"fa fa-times\"></i>\n </span>\n </div>\n }\n</div>\n<div class=\"jace-dsh-widget-body gridster-item-content {{model?.name}}-body\">\n @if (!dataReady) {\n <div class=\"jace-dsh-widget-loading\">\n <i class=\"fa fa-spinner\"></i>\n </div>\n }\n @if (dataReady) {\n <div class=\"jace-dsh-multiprog-container jace-dsh-widget-slide\"\n [ngClass]=\"{'jace-dsh-widget-content-hide':configuration,'jace-dsh-widget-content-show':!configuration}\"\n >\n @for (item of model.progressTitles; track item; let i = $index) {\n <div class=\"jace-dsh-multiprog-progress\">\n <div class=\"jace-dsh-multiprog-title\">{{item}}</div>\n @if (model.circleProgress) {\n <circle-progress [percent]=\"model.progressValues[i]\" [showSubtitle]=false [radius]=\"36\" [outerStrokeWidth]=\"4\" [innerStrokeWidth]=\"2\" [outerStrokeColor]=\"'#7489AA'\" [innerStrokeColor]=\"'#EFECCA'\" [animation]=\"true\"\n [animationDuration]=\"300\" [showTitle]=\"true\"></circle-progress>\n }\n @if (!model.circleProgress) {\n <progress-bar [value]=\"model.progressValues[i]\"></progress-bar>\n }\n </div>\n }\n </div>\n }\n <div class=\"jace-dsh-widget-settings jace-dsh-widget-slide \"\n [ngClass]=\"{'jace-dsh-widget-settings-hide':!configuration,'jace-dsh-widget-settings-show':configuration}\">\n <p>Configuration</p>\n </div>\n</div>", styles: [".jace-dsh-multiprog-title{text-align:center;font-weight:600;font-size:.8em}.jace-dsh-multiprog-container{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-evenly;padding:.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: CircleProgressComponent, selector: "circle-progress", inputs: ["name", "class", "backgroundGradient", "backgroundColor", "backgroundGradientStopColor", "backgroundOpacity", "backgroundStroke", "backgroundStrokeWidth", "backgroundPadding", "radius", "space", "percent", "toFixed", "maxPercent", "renderOnClick", "units", "unitsFontSize", "unitsFontWeight", "unitsColor", "outerStrokeGradient", "outerStrokeWidth", "outerStrokeColor", "outerStrokeGradientStopColor", "outerStrokeLinecap", "innerStrokeColor", "innerStrokeWidth", "titleFormat", "title", "titleColor", "titleFontSize", "titleFontWeight", "subtitleFormat", "subtitle", "subtitleColor", "subtitleFontSize", "subtitleFontWeight", "imageSrc", "imageHeight", "imageWidth", "animation", "animateTitle", "animateSubtitle", "animationDuration", "showTitle", "showSubtitle", "showUnits", "showImage", "showBackground", "showInnerStroke", "clockwise", "responsive", "startFromZero", "showZeroOuterStroke", "lazy", "options"], outputs: ["onClick"] }, { kind: "component", type: ProgressBarComponent, selector: "progress-bar", inputs: ["value"] }] }); }
1191
1259
  }
1192
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: JaceMultiprogWidgetComponent, decorators: [{
1260
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: JaceMultiprogWidgetComponent, decorators: [{
1193
1261
  type: Component,
1194
- args: [{ selector: 'jace-dsh-multiprog', standalone: false, template: "<div class=\"jace-dsh-widget-header {{model?.name}}-header\">\r\n <div class=\"jace-dsh-widget-title\" *ngIf=\"model.title\">\r\n {{model.title}}\r\n </div>\r\n <div class=\"jace-dsh-widget-controls\" *ngIf=\"dataReady\">\r\n <span class=\"transition drag-handler jace-dsh-widget-drag\" *ngIf=\"model.dragEnabled\">\r\n <i class=\"fa fa-arrows-alt\"></i>\r\n </span>\r\n <span class=\"transition jace-dsh-widget-opts\" (click)=\"configure()\">\r\n <i class=\"fa fa-cog\"></i>\r\n </span>\r\n <span (click)=\"removeWidget()\" class=\"transition remove-button jace-dsh-widget-close\">\r\n <i class=\"fa fa-times\"></i>\r\n </span>\r\n\r\n </div>\r\n</div>\r\n<div class=\"jace-dsh-widget-body gridster-item-content {{model?.name}}-body\">\r\n <div class=\"jace-dsh-widget-loading\" *ngIf=\"!dataReady\">\r\n <i class=\"fa fa-spinner\"></i>\r\n </div>\r\n <div class=\"jace-dsh-multiprog-container jace-dsh-widget-slide\"\r\n [ngClass]=\"{'jace-dsh-widget-content-hide':configuration,'jace-dsh-widget-content-show':!configuration}\"\r\n *ngIf=\"dataReady\">\r\n <div *ngFor=\"let item of model.progressTitles; let i = index\" class=\"jace-dsh-multiprog-progress\">\r\n <div class=\"jace-dsh-multiprog-title\">{{item}}</div>\r\n <circle-progress *ngIf=\"model.circleProgress\" [percent]=\"model.progressValues[i]\" [showSubtitle]=false [radius]=\"36\" [outerStrokeWidth]=\"4\" [innerStrokeWidth]=\"2\" [outerStrokeColor]=\"'#7489AA'\" [innerStrokeColor]=\"'#EFECCA'\" [animation]=\"true\"\r\n [animationDuration]=\"300\" [showTitle]=\"true\"></circle-progress>\r\n\r\n <progress-bar [value]=\"model.progressValues[i]\" *ngIf=\"!model.circleProgress\"></progress-bar>\r\n </div>\r\n </div>\r\n <div class=\"jace-dsh-widget-settings jace-dsh-widget-slide \"\r\n [ngClass]=\"{'jace-dsh-widget-settings-hide':!configuration,'jace-dsh-widget-settings-show':configuration}\">\r\n <p>Configuration</p>\r\n </div>\r\n</div>", styles: [".jace-dsh-multiprog-title{text-align:center;font-weight:600;font-size:.8em}.jace-dsh-multiprog-container{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-evenly;padding:.5rem}\n"] }]
1262
+ args: [{ selector: 'jace-dsh-multiprog', standalone: false, template: "<div class=\"jace-dsh-widget-header {{model?.name}}-header\">\n @if (model.title) {\n <div class=\"jace-dsh-widget-title\">\n {{model.title}}\n </div>\n }\n @if (dataReady) {\n <div class=\"jace-dsh-widget-controls\">\n @if (model.dragEnabled) {\n <span class=\"transition drag-handler jace-dsh-widget-drag\">\n <i class=\"fa fa-arrows-alt\"></i>\n </span>\n }\n <span class=\"transition jace-dsh-widget-opts\" (click)=\"configure()\">\n <i class=\"fa fa-cog\"></i>\n </span>\n <span (click)=\"removeWidget()\" class=\"transition remove-button jace-dsh-widget-close\">\n <i class=\"fa fa-times\"></i>\n </span>\n </div>\n }\n</div>\n<div class=\"jace-dsh-widget-body gridster-item-content {{model?.name}}-body\">\n @if (!dataReady) {\n <div class=\"jace-dsh-widget-loading\">\n <i class=\"fa fa-spinner\"></i>\n </div>\n }\n @if (dataReady) {\n <div class=\"jace-dsh-multiprog-container jace-dsh-widget-slide\"\n [ngClass]=\"{'jace-dsh-widget-content-hide':configuration,'jace-dsh-widget-content-show':!configuration}\"\n >\n @for (item of model.progressTitles; track item; let i = $index) {\n <div class=\"jace-dsh-multiprog-progress\">\n <div class=\"jace-dsh-multiprog-title\">{{item}}</div>\n @if (model.circleProgress) {\n <circle-progress [percent]=\"model.progressValues[i]\" [showSubtitle]=false [radius]=\"36\" [outerStrokeWidth]=\"4\" [innerStrokeWidth]=\"2\" [outerStrokeColor]=\"'#7489AA'\" [innerStrokeColor]=\"'#EFECCA'\" [animation]=\"true\"\n [animationDuration]=\"300\" [showTitle]=\"true\"></circle-progress>\n }\n @if (!model.circleProgress) {\n <progress-bar [value]=\"model.progressValues[i]\"></progress-bar>\n }\n </div>\n }\n </div>\n }\n <div class=\"jace-dsh-widget-settings jace-dsh-widget-slide \"\n [ngClass]=\"{'jace-dsh-widget-settings-hide':!configuration,'jace-dsh-widget-settings-show':configuration}\">\n <p>Configuration</p>\n </div>\n</div>", styles: [".jace-dsh-multiprog-title{text-align:center;font-weight:600;font-size:.8em}.jace-dsh-multiprog-container{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-evenly;padding:.5rem}\n"] }]
1195
1263
  }], ctorParameters: () => [{ type: undefined, decorators: [{
1196
1264
  type: Inject,
1197
1265
  args: [DSH_DATA_SERVICE]
@@ -1416,10 +1484,10 @@ class DashboardWidgetFactory {
1416
1484
  createInstance(type) {
1417
1485
  return new type();
1418
1486
  }
1419
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DashboardWidgetFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1420
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DashboardWidgetFactory, providedIn: "root" }); }
1487
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: DashboardWidgetFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1488
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: DashboardWidgetFactory, providedIn: "root" }); }
1421
1489
  }
1422
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DashboardWidgetFactory, decorators: [{
1490
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: DashboardWidgetFactory, decorators: [{
1423
1491
  type: Injectable,
1424
1492
  args: [{ providedIn: "root" }]
1425
1493
  }], ctorParameters: () => [] });
@@ -1569,12 +1637,12 @@ class DashboardComponent {
1569
1637
  addItem() {
1570
1638
  //this.dashboard.push({});
1571
1639
  }
1572
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DashboardComponent, deps: [{ token: DSH_DATA_SERVICE }, { token: i1$2.InterComService }, { token: i1$1.ActivatedRoute }, { token: DashboardWidgetFactory }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
1573
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: DashboardComponent, isStandalone: false, selector: "es-dashboard", inputs: { Configuration: "Configuration" }, viewQueries: [{ propertyName: "gridItemRefs", predicate: ["grid_item"], descendants: true, read: ViewContainerRef }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"Configuration\">\r\n\r\n <form role=\"form\" class=\"jace-dsh-toolbar\" *ngIf=\"Configuration.showToolbar\">\r\n <div *ngIf=\"Configuration.dashboardTitle\" class=\"jace-dsh-toolbar-title\">\r\n {{Configuration.dashboardTitle}}\r\n </div>\r\n <div class=\"jace-dsh-toolbar-dtp\" *ngIf=\"Configuration?.showDateInput\">\r\n <form-date InOutFormat=\"date\" [FormLayout]=\"false\" id=\"txt_dashboarddate\" [Validation]=\"false\"\r\n autocomplete=\"off\" [(ngModel)]=\"dashboardDate\" name=\"dashboarddate\" [Placeholder]=\"'Dashboard Date'\">\r\n </form-date>\r\n </div>\r\n <div class=\"jace-dsh-save-button\" (click)=\"saveDashboard()\">\r\n <span class=\"transition\">\r\n <i class=\"fa fa-save\"></i>\r\n </span>\r\n </div>\r\n </form>\r\n\r\n <gridster [options]=\"Configuration.gridsterConfig\" class=\"jace-dsh-widget-area\">\r\n <gridster-item [item]=\"item\" *ngFor=\"let item of widgetDefinitions\" class=\"jace-dsh-widget {{item?.name}}\">\r\n <ng-template #grid_item></ng-template>\r\n </gridster-item>\r\n </gridster>\r\n\r\n</ng-container>", styles: [".jace-dsh-toolbar{font-size:smaller;display:flex;flex-flow:row;justify-content:flex-end;align-items:center;padding:0 1em .5em}.jace-dsh-toolbar-title{flex:2 1 auto;font-size:2em;color:#777;font-variant:small-caps}.jace-dsh-toolbar-dtp{flex:1 1 auto}.jace-dsh-save-button{font-size:larger;padding:.5em 1em;border-radius:4px;border:1px solid #ddd;color:#777;margin-left:.5em;cursor:pointer;flex:0 0 auto}.jace-dsh-save-button:hover{color:#000;border-color:#000}.jace-dsh-widget-area{background:#e9ebee;scroll-behavior:auto}.jace-dsh-widget{border:solid 1px #ddd;border-radius:5px;min-width:204px}.jace-dsh-widget-header{margin:0rem .5rem;display:flex;flex-flow:row;justify-content:left;align-items:center}.jace-dsh-widget-title{padding:.5rem .2rem .3rem;border-bottom:solid 1px #ddd;text-transform:uppercase;font-size:.8rem}.jace-dsh-widget-body{margin:0rem .5rem;display:flex;flex-wrap:nowrap;overflow-x:clip}.jace-dsh-widget-loading{padding:.5rem;width:100%;flex:0 0 auto;font-size:4rem;font-weight:700;text-align:center}.jace-dsh-widget-slide{transition-property:transform;transition-duration:.75s;transition-timing-function:ease;width:100%;flex:0 0 auto}.jace-dsh-widget-content-show{transform:translate(0) translateZ(0)}.jace-dsh-widget-content-hide,.jace-dsh-widget-settings-show{transform:translate(-100%) translateZ(0)}.jace-dsh-widget-settings-hide{transform:translate(0) translateZ(0)}.jace-dsh-widget-settings{padding:.5rem;width:100%;flex:0 0 auto}.jace-dsh-widget-controls{margin-left:auto;order:2;z-index:1;top:0rem;right:0rem;padding:.2rem .1rem;font-size:1rem;color:#bbb;align-items:center;cursor:pointer}.jace-dsh-widget-drag{font-size:.78em}.jace-dsh-widget-opts{font-size:.92em}.jace-dsh-widget-close{font-size:1.1em}.jace-dsh-widget-controls span{margin-right:.1rem;margin-left:.1rem}.jace-dsh-widget-controls span:hover{color:#637ca0}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i6.GridsterComponent, selector: "gridster", inputs: ["options"] }, { kind: "component", type: i6.GridsterItemComponent, selector: "gridster-item", inputs: ["item"], outputs: ["itemInit", "itemChange", "itemResize"] }, { kind: "component", type: i7.EsFormDateComponent, selector: "form-date", inputs: ["InOutFormat", "FloatingLabel", "DateFormat"] }], encapsulation: i0.ViewEncapsulation.None }); }
1640
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: DashboardComponent, deps: [{ token: DSH_DATA_SERVICE }, { token: i1$2.InterComService }, { token: i1$1.ActivatedRoute }, { token: DashboardWidgetFactory }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
1641
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.24", type: DashboardComponent, isStandalone: false, selector: "es-dashboard", inputs: { Configuration: "Configuration" }, viewQueries: [{ propertyName: "gridItemRefs", predicate: ["grid_item"], descendants: true, read: ViewContainerRef }], usesOnChanges: true, ngImport: i0, template: "@if (Configuration) {\n @if (Configuration.showToolbar) {\n <form role=\"form\" class=\"jace-dsh-toolbar\">\n @if (Configuration.dashboardTitle) {\n <div class=\"jace-dsh-toolbar-title\">\n {{Configuration.dashboardTitle}}\n </div>\n }\n @if (Configuration?.showDateInput) {\n <div class=\"jace-dsh-toolbar-dtp\">\n <form-date InOutFormat=\"date\" [FormLayout]=\"false\" id=\"txt_dashboarddate\" [Validation]=\"false\"\n autocomplete=\"off\" [(ngModel)]=\"dashboardDate\" name=\"dashboarddate\" [Placeholder]=\"'Dashboard Date'\">\n </form-date>\n </div>\n }\n <div class=\"jace-dsh-save-button\" (click)=\"saveDashboard()\">\n <span class=\"transition\">\n <i class=\"fa fa-save\"></i>\n </span>\n </div>\n </form>\n }\n <gridster [options]=\"Configuration.gridsterConfig\" class=\"jace-dsh-widget-area\">\n @for (item of widgetDefinitions; track item) {\n <gridster-item [item]=\"item\" class=\"jace-dsh-widget {{item?.name}}\">\n <ng-template #grid_item></ng-template>\n </gridster-item>\n }\n </gridster>\n}", styles: [".jace-dsh-toolbar{font-size:smaller;display:flex;flex-flow:row;justify-content:flex-end;align-items:center;padding:0 1em .5em}.jace-dsh-toolbar-title{flex:2 1 auto;font-size:2em;color:#777;font-variant:small-caps}.jace-dsh-toolbar-dtp{flex:1 1 auto}.jace-dsh-save-button{font-size:larger;padding:.5em 1em;border-radius:4px;border:1px solid #ddd;color:#777;margin-left:.5em;cursor:pointer;flex:0 0 auto}.jace-dsh-save-button:hover{color:#000;border-color:#000}.jace-dsh-widget-area{background:#e9ebee;scroll-behavior:auto}.jace-dsh-widget{border:solid 1px #ddd;border-radius:5px;min-width:204px}.jace-dsh-widget-header{margin:0rem .5rem;display:flex;flex-flow:row;justify-content:left;align-items:center}.jace-dsh-widget-title{padding:.5rem .2rem .3rem;border-bottom:solid 1px #ddd;text-transform:uppercase;font-size:.8rem}.jace-dsh-widget-body{margin:0rem .5rem;display:flex;flex-wrap:nowrap;overflow-x:clip}.jace-dsh-widget-loading{padding:.5rem;width:100%;flex:0 0 auto;font-size:4rem;font-weight:700;text-align:center}.jace-dsh-widget-slide{transition-property:transform;transition-duration:.75s;transition-timing-function:ease;width:100%;flex:0 0 auto}.jace-dsh-widget-content-show{transform:translate(0) translateZ(0)}.jace-dsh-widget-content-hide,.jace-dsh-widget-settings-show{transform:translate(-100%) translateZ(0)}.jace-dsh-widget-settings-hide{transform:translate(0) translateZ(0)}.jace-dsh-widget-settings{padding:.5rem;width:100%;flex:0 0 auto}.jace-dsh-widget-controls{margin-left:auto;order:2;z-index:1;top:0rem;right:0rem;padding:.2rem .1rem;font-size:1rem;color:#bbb;align-items:center;cursor:pointer}.jace-dsh-widget-drag{font-size:.78em}.jace-dsh-widget-opts{font-size:.92em}.jace-dsh-widget-close{font-size:1.1em}.jace-dsh-widget-controls span{margin-right:.1rem;margin-left:.1rem}.jace-dsh-widget-controls span:hover{color:#637ca0}\n"], dependencies: [{ kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i5.GridsterComponent, selector: "gridster", inputs: ["options"] }, { kind: "component", type: i5.GridsterItemComponent, selector: "gridster-item", inputs: ["item"], outputs: ["itemInit", "itemChange", "itemResize"] }, { kind: "component", type: i6.EsFormDateComponent, selector: "form-date", inputs: ["InOutFormat", "FloatingLabel", "DateFormat"] }], encapsulation: i0.ViewEncapsulation.None }); }
1574
1642
  }
1575
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DashboardComponent, decorators: [{
1643
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: DashboardComponent, decorators: [{
1576
1644
  type: Component,
1577
- args: [{ selector: 'es-dashboard', encapsulation: ViewEncapsulation.None, standalone: false, template: "<ng-container *ngIf=\"Configuration\">\r\n\r\n <form role=\"form\" class=\"jace-dsh-toolbar\" *ngIf=\"Configuration.showToolbar\">\r\n <div *ngIf=\"Configuration.dashboardTitle\" class=\"jace-dsh-toolbar-title\">\r\n {{Configuration.dashboardTitle}}\r\n </div>\r\n <div class=\"jace-dsh-toolbar-dtp\" *ngIf=\"Configuration?.showDateInput\">\r\n <form-date InOutFormat=\"date\" [FormLayout]=\"false\" id=\"txt_dashboarddate\" [Validation]=\"false\"\r\n autocomplete=\"off\" [(ngModel)]=\"dashboardDate\" name=\"dashboarddate\" [Placeholder]=\"'Dashboard Date'\">\r\n </form-date>\r\n </div>\r\n <div class=\"jace-dsh-save-button\" (click)=\"saveDashboard()\">\r\n <span class=\"transition\">\r\n <i class=\"fa fa-save\"></i>\r\n </span>\r\n </div>\r\n </form>\r\n\r\n <gridster [options]=\"Configuration.gridsterConfig\" class=\"jace-dsh-widget-area\">\r\n <gridster-item [item]=\"item\" *ngFor=\"let item of widgetDefinitions\" class=\"jace-dsh-widget {{item?.name}}\">\r\n <ng-template #grid_item></ng-template>\r\n </gridster-item>\r\n </gridster>\r\n\r\n</ng-container>", styles: [".jace-dsh-toolbar{font-size:smaller;display:flex;flex-flow:row;justify-content:flex-end;align-items:center;padding:0 1em .5em}.jace-dsh-toolbar-title{flex:2 1 auto;font-size:2em;color:#777;font-variant:small-caps}.jace-dsh-toolbar-dtp{flex:1 1 auto}.jace-dsh-save-button{font-size:larger;padding:.5em 1em;border-radius:4px;border:1px solid #ddd;color:#777;margin-left:.5em;cursor:pointer;flex:0 0 auto}.jace-dsh-save-button:hover{color:#000;border-color:#000}.jace-dsh-widget-area{background:#e9ebee;scroll-behavior:auto}.jace-dsh-widget{border:solid 1px #ddd;border-radius:5px;min-width:204px}.jace-dsh-widget-header{margin:0rem .5rem;display:flex;flex-flow:row;justify-content:left;align-items:center}.jace-dsh-widget-title{padding:.5rem .2rem .3rem;border-bottom:solid 1px #ddd;text-transform:uppercase;font-size:.8rem}.jace-dsh-widget-body{margin:0rem .5rem;display:flex;flex-wrap:nowrap;overflow-x:clip}.jace-dsh-widget-loading{padding:.5rem;width:100%;flex:0 0 auto;font-size:4rem;font-weight:700;text-align:center}.jace-dsh-widget-slide{transition-property:transform;transition-duration:.75s;transition-timing-function:ease;width:100%;flex:0 0 auto}.jace-dsh-widget-content-show{transform:translate(0) translateZ(0)}.jace-dsh-widget-content-hide,.jace-dsh-widget-settings-show{transform:translate(-100%) translateZ(0)}.jace-dsh-widget-settings-hide{transform:translate(0) translateZ(0)}.jace-dsh-widget-settings{padding:.5rem;width:100%;flex:0 0 auto}.jace-dsh-widget-controls{margin-left:auto;order:2;z-index:1;top:0rem;right:0rem;padding:.2rem .1rem;font-size:1rem;color:#bbb;align-items:center;cursor:pointer}.jace-dsh-widget-drag{font-size:.78em}.jace-dsh-widget-opts{font-size:.92em}.jace-dsh-widget-close{font-size:1.1em}.jace-dsh-widget-controls span{margin-right:.1rem;margin-left:.1rem}.jace-dsh-widget-controls span:hover{color:#637ca0}\n"] }]
1645
+ args: [{ selector: 'es-dashboard', encapsulation: ViewEncapsulation.None, standalone: false, template: "@if (Configuration) {\n @if (Configuration.showToolbar) {\n <form role=\"form\" class=\"jace-dsh-toolbar\">\n @if (Configuration.dashboardTitle) {\n <div class=\"jace-dsh-toolbar-title\">\n {{Configuration.dashboardTitle}}\n </div>\n }\n @if (Configuration?.showDateInput) {\n <div class=\"jace-dsh-toolbar-dtp\">\n <form-date InOutFormat=\"date\" [FormLayout]=\"false\" id=\"txt_dashboarddate\" [Validation]=\"false\"\n autocomplete=\"off\" [(ngModel)]=\"dashboardDate\" name=\"dashboarddate\" [Placeholder]=\"'Dashboard Date'\">\n </form-date>\n </div>\n }\n <div class=\"jace-dsh-save-button\" (click)=\"saveDashboard()\">\n <span class=\"transition\">\n <i class=\"fa fa-save\"></i>\n </span>\n </div>\n </form>\n }\n <gridster [options]=\"Configuration.gridsterConfig\" class=\"jace-dsh-widget-area\">\n @for (item of widgetDefinitions; track item) {\n <gridster-item [item]=\"item\" class=\"jace-dsh-widget {{item?.name}}\">\n <ng-template #grid_item></ng-template>\n </gridster-item>\n }\n </gridster>\n}", styles: [".jace-dsh-toolbar{font-size:smaller;display:flex;flex-flow:row;justify-content:flex-end;align-items:center;padding:0 1em .5em}.jace-dsh-toolbar-title{flex:2 1 auto;font-size:2em;color:#777;font-variant:small-caps}.jace-dsh-toolbar-dtp{flex:1 1 auto}.jace-dsh-save-button{font-size:larger;padding:.5em 1em;border-radius:4px;border:1px solid #ddd;color:#777;margin-left:.5em;cursor:pointer;flex:0 0 auto}.jace-dsh-save-button:hover{color:#000;border-color:#000}.jace-dsh-widget-area{background:#e9ebee;scroll-behavior:auto}.jace-dsh-widget{border:solid 1px #ddd;border-radius:5px;min-width:204px}.jace-dsh-widget-header{margin:0rem .5rem;display:flex;flex-flow:row;justify-content:left;align-items:center}.jace-dsh-widget-title{padding:.5rem .2rem .3rem;border-bottom:solid 1px #ddd;text-transform:uppercase;font-size:.8rem}.jace-dsh-widget-body{margin:0rem .5rem;display:flex;flex-wrap:nowrap;overflow-x:clip}.jace-dsh-widget-loading{padding:.5rem;width:100%;flex:0 0 auto;font-size:4rem;font-weight:700;text-align:center}.jace-dsh-widget-slide{transition-property:transform;transition-duration:.75s;transition-timing-function:ease;width:100%;flex:0 0 auto}.jace-dsh-widget-content-show{transform:translate(0) translateZ(0)}.jace-dsh-widget-content-hide,.jace-dsh-widget-settings-show{transform:translate(-100%) translateZ(0)}.jace-dsh-widget-settings-hide{transform:translate(0) translateZ(0)}.jace-dsh-widget-settings{padding:.5rem;width:100%;flex:0 0 auto}.jace-dsh-widget-controls{margin-left:auto;order:2;z-index:1;top:0rem;right:0rem;padding:.2rem .1rem;font-size:1rem;color:#bbb;align-items:center;cursor:pointer}.jace-dsh-widget-drag{font-size:.78em}.jace-dsh-widget-opts{font-size:.92em}.jace-dsh-widget-close{font-size:1.1em}.jace-dsh-widget-controls span{margin-right:.1rem;margin-left:.1rem}.jace-dsh-widget-controls span:hover{color:#637ca0}\n"] }]
1578
1646
  }], ctorParameters: () => [{ type: undefined, decorators: [{
1579
1647
  type: Inject,
1580
1648
  args: [DSH_DATA_SERVICE]
@@ -1617,10 +1685,10 @@ class DashboardFeatureAPIDataService {
1617
1685
  }
1618
1686
  return this.http.get(Repository["GET_Dashboard_GetWidgetData"], params);
1619
1687
  }
1620
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DashboardFeatureAPIDataService, deps: [{ token: i1$3.HTTPService }], target: i0.ɵɵFactoryTarget.Injectable }); }
1621
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DashboardFeatureAPIDataService }); }
1688
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: DashboardFeatureAPIDataService, deps: [{ token: i1$3.HTTPService }], target: i0.ɵɵFactoryTarget.Injectable }); }
1689
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: DashboardFeatureAPIDataService }); }
1622
1690
  }
1623
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DashboardFeatureAPIDataService, decorators: [{
1691
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: DashboardFeatureAPIDataService, decorators: [{
1624
1692
  type: Injectable
1625
1693
  }], ctorParameters: () => [{ type: i1$3.HTTPService }] });
1626
1694
 
@@ -1660,8 +1728,8 @@ class DashboardFeatureModule {
1660
1728
  return;
1661
1729
  options.map((o) => componentFactory.addOption(o));
1662
1730
  }
1663
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DashboardFeatureModule, deps: [{ token: DashboardWidgetFactory }, { token: DSH_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
1664
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: DashboardFeatureModule, declarations: [DashboardComponent,
1731
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: DashboardFeatureModule, deps: [{ token: DashboardWidgetFactory }, { token: DSH_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
1732
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.24", ngImport: i0, type: DashboardFeatureModule, declarations: [DashboardComponent,
1665
1733
  JaceListWidgetComponent,
1666
1734
  JaceCounterWidgetComponent,
1667
1735
  JaceChartWidgetComponent,
@@ -1681,9 +1749,9 @@ class DashboardFeatureModule {
1681
1749
  JaceMultiprogWidgetComponent,
1682
1750
  CircleProgressComponent,
1683
1751
  ProgressBarComponent] }); }
1684
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DashboardFeatureModule, imports: [MODULES] }); }
1752
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: DashboardFeatureModule, imports: [MODULES] }); }
1685
1753
  }
1686
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DashboardFeatureModule, decorators: [{
1754
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: DashboardFeatureModule, decorators: [{
1687
1755
  type: NgModule,
1688
1756
  args: [{
1689
1757
  declarations: [...COMPONENTS],
@@ -1837,10 +1905,10 @@ class BaseWidgetComponent {
1837
1905
  }
1838
1906
  this.configuration = !this.configuration;
1839
1907
  }
1840
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: BaseWidgetComponent, deps: [{ token: DSH_DATA_SERVICE }], target: i0.ɵɵFactoryTarget.Injectable }); }
1841
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: BaseWidgetComponent }); }
1908
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: BaseWidgetComponent, deps: [{ token: DSH_DATA_SERVICE }], target: i0.ɵɵFactoryTarget.Injectable }); }
1909
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: BaseWidgetComponent }); }
1842
1910
  }
1843
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: BaseWidgetComponent, decorators: [{
1911
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: BaseWidgetComponent, decorators: [{
1844
1912
  type: Injectable
1845
1913
  }], ctorParameters: () => [{ type: undefined, decorators: [{
1846
1914
  type: Inject,