@esfaenza/dashboard-feature 11.2.2

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 (71) hide show
  1. package/README.md +24 -0
  2. package/bundles/esfaenza-dashboard-feature.umd.js +1328 -0
  3. package/bundles/esfaenza-dashboard-feature.umd.js.map +1 -0
  4. package/bundles/esfaenza-dashboard-feature.umd.min.js +2 -0
  5. package/bundles/esfaenza-dashboard-feature.umd.min.js.map +1 -0
  6. package/esfaenza-dashboard-feature.d.ts +8 -0
  7. package/esfaenza-dashboard-feature.metadata.json +1 -0
  8. package/esm2015/esfaenza-dashboard-feature.js +9 -0
  9. package/esm2015/lib/components/dashboard/dashboard.component.js +157 -0
  10. package/esm2015/lib/components/dashboard/dashboard.component.loc.js +16 -0
  11. package/esm2015/lib/components/widgets/BaseWidgetComponent.js +81 -0
  12. package/esm2015/lib/components/widgets/IWidgetComponent.js +2 -0
  13. package/esm2015/lib/components/widgets/JaceWidgetTypes.js +8 -0
  14. package/esm2015/lib/components/widgets/chart/jace-dsh-chart.component.js +77 -0
  15. package/esm2015/lib/components/widgets/counter/jace-dsh-counter.component.js +76 -0
  16. package/esm2015/lib/components/widgets/list/jace-dsh-list.component.js +89 -0
  17. package/esm2015/lib/components/widgets/multiprog/jace-dsh-multiprog.component.js +78 -0
  18. package/esm2015/lib/dashboard-feature.module.js +98 -0
  19. package/esm2015/lib/models/config/JaceDashboardConfig.js +49 -0
  20. package/esm2015/lib/models/externals/JaceDashboardLayoutDetail.js +4 -0
  21. package/esm2015/lib/models/externals/JaceWidgetInstanceDetail.js +7 -0
  22. package/esm2015/lib/models/externals/Repository.js +6 -0
  23. package/esm2015/lib/models/externals/SaveJaceDashboardLayoutDTO.js +3 -0
  24. package/esm2015/lib/models/options/DefaultDashboardModuleOptions.js +36 -0
  25. package/esm2015/lib/models/options/IDashboardModuleOptions.js +2 -0
  26. package/esm2015/lib/models/options/IWidgetTypeConfig.js +2 -0
  27. package/esm2015/lib/models/widgets/BaseJaceWidgetModel.js +22 -0
  28. package/esm2015/lib/models/widgets/IJaceWidgetModel.js +2 -0
  29. package/esm2015/lib/models/widgets/JaceChartWidgetModel.js +27 -0
  30. package/esm2015/lib/models/widgets/JaceCounterWidgetModel.js +23 -0
  31. package/esm2015/lib/models/widgets/JaceListWidgetModel.js +39 -0
  32. package/esm2015/lib/models/widgets/JaceMultiprogWidgetModel.js +29 -0
  33. package/esm2015/lib/private-injection-tokens.js +3 -0
  34. package/esm2015/lib/public-injection-tokens.js +15 -0
  35. package/esm2015/lib/services/DashboardWidgetFactory.js +66 -0
  36. package/esm2015/lib/services/IDashboardFeatureDataService.js +2 -0
  37. package/esm2015/lib/services/dashboard-feature.service.js +39 -0
  38. package/esm2015/public-api.js +20 -0
  39. package/fesm2015/esfaenza-dashboard-feature.js +955 -0
  40. package/fesm2015/esfaenza-dashboard-feature.js.map +1 -0
  41. package/lib/components/dashboard/dashboard.component.d.ts +44 -0
  42. package/lib/components/dashboard/dashboard.component.loc.d.ts +5 -0
  43. package/lib/components/widgets/BaseWidgetComponent.d.ts +41 -0
  44. package/lib/components/widgets/IWidgetComponent.d.ts +23 -0
  45. package/lib/components/widgets/JaceWidgetTypes.d.ts +6 -0
  46. package/lib/components/widgets/chart/jace-dsh-chart.component.d.ts +22 -0
  47. package/lib/components/widgets/counter/jace-dsh-counter.component.d.ts +21 -0
  48. package/lib/components/widgets/list/jace-dsh-list.component.d.ts +24 -0
  49. package/lib/components/widgets/multiprog/jace-dsh-multiprog.component.d.ts +23 -0
  50. package/lib/dashboard-feature.module.d.ts +8 -0
  51. package/lib/models/config/JaceDashboardConfig.d.ts +46 -0
  52. package/lib/models/externals/JaceDashboardLayoutDetail.d.ts +6 -0
  53. package/lib/models/externals/JaceWidgetInstanceDetail.d.ts +17 -0
  54. package/lib/models/externals/Repository.d.ts +5 -0
  55. package/lib/models/externals/SaveJaceDashboardLayoutDTO.d.ts +4 -0
  56. package/lib/models/options/DefaultDashboardModuleOptions.d.ts +7 -0
  57. package/lib/models/options/IDashboardModuleOptions.d.ts +5 -0
  58. package/lib/models/options/IWidgetTypeConfig.d.ts +8 -0
  59. package/lib/models/widgets/BaseJaceWidgetModel.d.ts +31 -0
  60. package/lib/models/widgets/IJaceWidgetModel.d.ts +13 -0
  61. package/lib/models/widgets/JaceChartWidgetModel.d.ts +8 -0
  62. package/lib/models/widgets/JaceCounterWidgetModel.d.ts +10 -0
  63. package/lib/models/widgets/JaceListWidgetModel.d.ts +15 -0
  64. package/lib/models/widgets/JaceMultiprogWidgetModel.d.ts +9 -0
  65. package/lib/private-injection-tokens.d.ts +3 -0
  66. package/lib/public-injection-tokens.d.ts +15 -0
  67. package/lib/services/DashboardWidgetFactory.d.ts +20 -0
  68. package/lib/services/IDashboardFeatureDataService.d.ts +11 -0
  69. package/lib/services/dashboard-feature.service.d.ts +16 -0
  70. package/package.json +27 -0
  71. package/public-api.d.ts +16 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esfaenza-dashboard-feature.js","sources":["../../../projects/dashboard-feature/src/lib/public-injection-tokens.ts","../../../projects/dashboard-feature/src/lib/private-injection-tokens.ts","../../../projects/dashboard-feature/src/lib/components/widgets/chart/jace-dsh-chart.component.ts","../../../projects/dashboard-feature/src/lib/components/widgets/counter/jace-dsh-counter.component.ts","../../../projects/dashboard-feature/src/lib/components/widgets/list/jace-dsh-list.component.ts","../../../projects/dashboard-feature/src/lib/components/widgets/multiprog/jace-dsh-multiprog.component.ts","../../../projects/dashboard-feature/src/lib/models/widgets/BaseJaceWidgetModel.ts","../../../projects/dashboard-feature/src/lib/models/widgets/JaceChartWidgetModel.ts","../../../projects/dashboard-feature/src/lib/models/widgets/JaceCounterWidgetModel.ts","../../../projects/dashboard-feature/src/lib/models/widgets/JaceListWidgetModel.ts","../../../projects/dashboard-feature/src/lib/models/widgets/JaceMultiprogWidgetModel.ts","../../../projects/dashboard-feature/src/lib/models/options/DefaultDashboardModuleOptions.ts","../../../projects/dashboard-feature/src/lib/services/DashboardWidgetFactory.ts","../../../projects/dashboard-feature/src/lib/components/dashboard/dashboard.component.loc.ts","../../../projects/dashboard-feature/src/lib/models/externals/SaveJaceDashboardLayoutDTO.ts","../../../projects/dashboard-feature/src/lib/models/externals/JaceWidgetInstanceDetail.ts","../../../projects/dashboard-feature/src/lib/components/dashboard/dashboard.component.ts","../../../projects/dashboard-feature/src/lib/models/externals/Repository.ts","../../../projects/dashboard-feature/src/lib/services/dashboard-feature.service.ts","../../../projects/dashboard-feature/src/lib/dashboard-feature.module.ts","../../../projects/dashboard-feature/src/lib/components/widgets/BaseWidgetComponent.ts","../../../projects/dashboard-feature/src/lib/components/widgets/JaceWidgetTypes.ts","../../../projects/dashboard-feature/src/public-api.ts","../../../projects/dashboard-feature/src/esfaenza-dashboard-feature.ts"],"sourcesContent":["import {InjectionToken} from \"@angular/core\";\r\nimport { IDashboardFeatureDataService } from \"./services/IDashboardFeatureDataService\";\r\n\r\n/**\r\n * Injection Token della stringa che rappresenta il 'locale' nel sistema @es-faenza/localization\r\n */\r\nexport const DSH_LOCALE: InjectionToken<string> = new InjectionToken<string>('DSH_LOCALE');\r\n/**\r\n * Injection Token dell'url del FE\r\n */\r\nexport const DSH_BACKEND_URL: InjectionToken<string> = new InjectionToken<string>('DSH_BACKEND_URL');\r\n/**\r\n * Token di registrazione della DashboardFeatureService.\r\n * Permette di fare l'override dell'implementazione di default a scopo di test delle widget\r\n */\r\nexport const DSH_DATA_SERVICE: InjectionToken<IDashboardFeatureDataService> = new InjectionToken<IDashboardFeatureDataService>('DSH_DATA_SERVICE');\r\n\r\n","import {InjectionToken} from \"@angular/core\";\r\nimport { IDashboardModuleOptions } from \"./models/options/IDashboardModuleOptions\";\r\n\r\n\r\nexport const DSH_OPTIONS: InjectionToken<IDashboardModuleOptions> = new InjectionToken<IDashboardModuleOptions>('DSH_MODULE_OPTIONS');","import { Component, EventEmitter, Inject, Input, OnInit, Output, SimpleChanges } from '@angular/core';\r\n\r\nimport { IJaceWidgetModel } from '../../../models/widgets/IJaceWidgetModel';\r\nimport { IWidgetComponent } from '../IWidgetComponent';\r\n\r\nimport { JaceChartWidgetModel } from '../../../models/widgets/JaceChartWidgetModel';\r\nimport { DSH_DATA_SERVICE } from '../../../public-injection-tokens';\r\nimport { IDashboardFeatureDataService } from '../../../services/IDashboardFeatureDataService';\r\n\r\n@Component({\r\n selector: 'jace-dsh-chart',\r\n templateUrl: './jace-dsh-chart.component.html',\r\n styleUrls: ['./jace-dsh-chart.component.css']\r\n})\r\n\r\nexport class JaceChartWidgetComponent implements IWidgetComponent, OnInit {\r\n\r\n model?: JaceChartWidgetModel;\r\n\r\n @Input() DashboardDate!: Date;\r\n @Output() OnRemove = new EventEmitter<string>();\r\n\r\n configuration: boolean = false;\r\n dataReady: boolean = false;\r\n lastdate: string = \"\";\r\n public chartName:string=\"\";\r\n\r\n constructor(@Inject(DSH_DATA_SERVICE) private dshService: IDashboardFeatureDataService) { }\r\n\r\n setWidgetModel(widgetModel: IJaceWidgetModel): void {\r\n this.model = <JaceChartWidgetModel>widgetModel;\r\n this.refreshData();\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n //console.log(changes['DashboardDate'].currentValue);\r\n if (changes['DashboardDate'].previousValue)\r\n this.lastdate = changes['DashboardDate'].previousValue.toISOString();\r\n\r\n let curdate: string = \"\";\r\n\r\n if (changes['DashboardDate'].currentValue)\r\n curdate = changes['DashboardDate'].currentValue.toISOString();\r\n //fix per il datetimepicker material che cambia l'oggetto al momento del caricamento\r\n if (this.lastdate != curdate) {\r\n this.lastdate = curdate;\r\n this.refreshData();\r\n }\r\n\r\n }\r\n\r\n refreshData() {\r\n if (!this.model)\r\n return;\r\n const pars: { [key: string]: string } = {};\r\n if(this.DashboardDate)\r\n pars[\"DT\"] = this.DashboardDate.toISOString();\r\n if (this.model.options && Object.keys(this.model.options).length != 0) {\r\n for (let index = 0; index < Object.keys(this.model.options).length; index++) {\r\n const k = Object.keys(this.model.options)[index];\r\n pars[k] = this.model.options[k];\r\n }\r\n }\r\n\r\n this.dshService.GetWidgetData(this.model.name, pars).subscribe(data => {\r\n if (this.model) {\r\n this.model.setData(data);\r\n this.chartName = this.model.name;\r\n this.dataReady = true;\r\n }\r\n }\r\n );\r\n }\r\n\r\n removeWidget() {\r\n if (!this.model)\r\n return;\r\n this.OnRemove.emit(this.model.name);\r\n }\r\n\r\n configure() {\r\n if (this.configuration) {\r\n //finito di configurare -> refreshData\r\n this.refreshData();\r\n }\r\n this.configuration = !this.configuration;\r\n }\r\n}","import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, OnInit, Output, SimpleChanges } from '@angular/core';\r\n\r\nimport { IJaceWidgetModel } from '../../../models/widgets/IJaceWidgetModel';\r\nimport { IWidgetComponent } from '../IWidgetComponent';\r\nimport { JaceCounterWidgetModel } from '../../../models/widgets/JaceCounterWidgetModel';\r\n\r\nimport { DSH_DATA_SERVICE } from '../../../public-injection-tokens';\r\nimport { IDashboardFeatureDataService } from '../../../services/IDashboardFeatureDataService';\r\n\r\n@Component({\r\n selector: 'jace-dsh-counter',\r\n templateUrl: './jace-dsh-counter.component.html',\r\n styleUrls: ['./jace-dsh-counter.component.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n\r\nexport class JaceCounterWidgetComponent implements IWidgetComponent, OnInit {\r\n\r\n model?: JaceCounterWidgetModel;\r\n\r\n @Input() DashboardDate!: Date;\r\n @Output() OnRemove = new EventEmitter<string>();\r\n\r\n configuration: boolean = false;\r\n dataReady: boolean = false;\r\n lastdate: string = \"\";\r\n\r\n constructor(@Inject(DSH_DATA_SERVICE) private dshService: IDashboardFeatureDataService) { }\r\n\r\n setWidgetModel(widgetModel: IJaceWidgetModel): void {\r\n this.model = <JaceCounterWidgetModel>widgetModel;\r\n this.refreshData();\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n //console.log(changes['DashboardDate'].currentValue);\r\n if (changes['DashboardDate'].previousValue)\r\n this.lastdate = changes['DashboardDate'].previousValue.toISOString();\r\n\r\n let curdate: string = \"\";\r\n\r\n if (changes['DashboardDate'].currentValue)\r\n curdate = changes['DashboardDate'].currentValue.toISOString();\r\n //fix per il datetimepicker material che cambia l'oggetto al momento del caricamento\r\n if (this.lastdate != curdate) {\r\n this.lastdate = curdate;\r\n this.refreshData();\r\n }\r\n\r\n }\r\n\r\n refreshData() {\r\n if (!this.model)\r\n return;\r\n const pars: { [key: string]: string } = {};\r\n if(this.DashboardDate)\r\n pars[\"DT\"] = this.DashboardDate.toISOString();\r\n if (this.model.options && Object.keys(this.model.options).length != 0) {\r\n for (let index = 0; index < Object.keys(this.model.options).length; index++) {\r\n const k = Object.keys(this.model.options)[index];\r\n pars[k] = this.model.options[k];\r\n }\r\n }\r\n\r\n this.dshService.GetWidgetData(this.model.name, pars).subscribe(data => {\r\n if (this.model) {\r\n this.model.setData(data);\r\n this.dataReady = true;\r\n }\r\n }\r\n );\r\n }\r\n\r\n removeWidget() {\r\n if (!this.model)\r\n return;\r\n this.OnRemove.emit(this.model.name);\r\n }\r\n\r\n configure() {\r\n if (this.configuration) {\r\n //finito di configurare -> refreshData\r\n this.refreshData();\r\n }\r\n this.configuration = !this.configuration;\r\n }\r\n}","import { Component, EventEmitter, Inject, Input, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { IJaceWidgetModel } from '../../../models/widgets/IJaceWidgetModel';\r\nimport { IWidgetComponent } from '../IWidgetComponent';\r\nimport { JaceListItemWidget, JaceListWidgetModel } from '../../../models/widgets/JaceListWidgetModel';\r\nimport { Router } from '@angular/router';\r\nimport { DSH_DATA_SERVICE } from '../../../public-injection-tokens';\r\nimport { IDashboardFeatureDataService } from '../../../services/IDashboardFeatureDataService';\r\n\r\n@Component({\r\n selector: 'jace-dsh-list',\r\n templateUrl: './jace-dsh-list.component.html',\r\n styleUrls: ['./jace-dsh-list.component.css']\r\n})\r\n\r\nexport class JaceListWidgetComponent implements IWidgetComponent, OnInit {\r\n\r\n model?: JaceListWidgetModel;\r\n\r\n @Input() DashboardDate!: Date;\r\n @Output() OnRemove = new EventEmitter<string>();\r\n\r\n configuration: boolean = false;\r\n dataReady: boolean = false;\r\n lastdate: string = \"\";\r\n\r\n constructor(@Inject(DSH_DATA_SERVICE) private dshService: IDashboardFeatureDataService,private router: Router) { }\r\n\r\n setWidgetModel(widgetModel: IJaceWidgetModel): void {\r\n this.model = <JaceListWidgetModel>widgetModel;\r\n this.refreshData();\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n //console.log(changes['DashboardDate'].currentValue);\r\n if (changes['DashboardDate'].previousValue)\r\n this.lastdate = changes['DashboardDate'].previousValue.toISOString();\r\n\r\n let curdate: string = \"\";\r\n\r\n if (changes['DashboardDate'].currentValue)\r\n curdate = changes['DashboardDate'].currentValue.toISOString();\r\n //fix per il datetimepicker material che cambia l'oggetto al momento del caricamento\r\n if (this.lastdate != curdate) {\r\n this.lastdate = curdate;\r\n this.refreshData();\r\n }\r\n\r\n }\r\n\r\n refreshData() {\r\n if (!this.model)\r\n return;\r\n const pars: { [key: string]: string } = {};\r\n if(this.DashboardDate)\r\n pars[\"DT\"] = this.DashboardDate.toISOString();\r\n if (this.model.options && Object.keys(this.model.options).length != 0) {\r\n for (let index = 0; index < Object.keys(this.model.options).length; index++) {\r\n const k = Object.keys(this.model.options)[index];\r\n pars[k] = this.model.options[k];\r\n }\r\n }\r\n\r\n this.dshService.GetWidgetData(this.model.name, pars).subscribe(data => {\r\n if (this.model) {\r\n this.model.setData(data);\r\n this.dataReady = true;\r\n }\r\n }\r\n );\r\n }\r\n\r\n removeWidget() {\r\n if (!this.model)\r\n return;\r\n this.OnRemove.emit(this.model.name);\r\n }\r\n\r\n itemClicked(item: JaceListItemWidget){\r\n if(item.link)\r\n {\r\n //naviga al link\r\n let to = item.link;\r\n let par:{[key:string]:any} = {};\r\n if(item.id && item.idParamName){ \r\n par[item.idParamName] = item.id;\r\n }\r\n \r\n this.router.navigate([to, par]);\r\n }\r\n }\r\n\r\n configure() {\r\n if (this.configuration) {\r\n //finito di configurare -> refreshData\r\n this.refreshData();\r\n }\r\n this.configuration = !this.configuration;\r\n }\r\n}","import { Component, EventEmitter, Inject, Input, OnInit, Output, SimpleChanges } from '@angular/core';\r\n\r\nimport { IJaceWidgetModel } from '../../../models/widgets/IJaceWidgetModel';\r\nimport { IWidgetComponent } from '../IWidgetComponent';\r\n\r\nimport { Router } from '@angular/router';\r\nimport { JaceMultiprogWidgetModel } from '../../../models/widgets/JaceMultiprogWidgetModel';\r\nimport { DSH_DATA_SERVICE } from '../../../public-injection-tokens';\r\nimport { IDashboardFeatureDataService } from '../../../services/IDashboardFeatureDataService';\r\n\r\n@Component({\r\n selector: 'jace-dsh-multiprog',\r\n templateUrl: './jace-dsh-multiprog.component.html',\r\n styleUrls: ['./jace-dsh-multiprog.component.css']\r\n})\r\n\r\nexport class JaceMultiprogWidgetComponent implements IWidgetComponent, OnInit {\r\n\r\n model?: JaceMultiprogWidgetModel;\r\n\r\n @Input() DashboardDate!: Date;\r\n @Output() OnRemove = new EventEmitter<string>();\r\n\r\n configuration: boolean = false;\r\n dataReady: boolean = false;\r\n lastdate: string = \"\";\r\n\r\n constructor(@Inject(DSH_DATA_SERVICE) private dshService: IDashboardFeatureDataService,private router: Router) { }\r\n\r\n setWidgetModel(widgetModel: IJaceWidgetModel): void {\r\n this.model = <JaceMultiprogWidgetModel>widgetModel;\r\n this.refreshData();\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n //console.log(changes['DashboardDate'].currentValue);\r\n if (changes['DashboardDate'].previousValue)\r\n this.lastdate = changes['DashboardDate'].previousValue.toISOString();\r\n\r\n let curdate: string = \"\";\r\n\r\n if (changes['DashboardDate'].currentValue)\r\n curdate = changes['DashboardDate'].currentValue.toISOString();\r\n //fix per il datetimepicker material che cambia l'oggetto al momento del caricamento\r\n if (this.lastdate != curdate) {\r\n this.lastdate = curdate;\r\n this.refreshData();\r\n }\r\n\r\n }\r\n\r\n refreshData() {\r\n if (!this.model)\r\n return;\r\n const pars: { [key: string]: string } = {};\r\n if(this.DashboardDate)\r\n pars[\"DT\"] = this.DashboardDate.toISOString();\r\n if (this.model.options && Object.keys(this.model.options).length != 0) {\r\n for (let index = 0; index < Object.keys(this.model.options).length; index++) {\r\n const k = Object.keys(this.model.options)[index];\r\n pars[k] = this.model.options[k];\r\n }\r\n }\r\n\r\n this.dshService.GetWidgetData(this.model.name, pars).subscribe(data => {\r\n if (this.model) {\r\n this.model.setData(data);\r\n this.dataReady = true;\r\n }\r\n }\r\n );\r\n }\r\n\r\n removeWidget() {\r\n if (!this.model)\r\n return;\r\n this.OnRemove.emit(this.model.name);\r\n }\r\n\r\n\r\n configure() {\r\n if (this.configuration) {\r\n //finito di configurare -> refreshData\r\n this.refreshData();\r\n }\r\n this.configuration = !this.configuration;\r\n }\r\n}","import { GridsterItem, GridsterItemComponentInterface } from \"angular-gridster2\";\r\nimport { JaceWidgetInstanceDetail } from \"../externals/JaceWidgetInstanceDetail\";\r\nimport { IJaceWidgetModel } from \"./IJaceWidgetModel\";\r\n\r\nexport abstract class BaseJaceWidgetModel implements IJaceWidgetModel{\r\n \r\n name!: string;\r\n title?: string| undefined;\r\n widgetType!: string;\r\n dataError: boolean;\r\n options?: { [key: string]: any; }| undefined;\r\n\r\n x!: number;\r\n y!: number;\r\n //grid overrides\r\n rows!: number;\r\n cols!: number;\r\n resizeEnabled?: boolean = false;\r\n layerIndex?: number | undefined;\r\n initCallback?: ((item: GridsterItem, itemComponent: GridsterItemComponentInterface) => void) | undefined;\r\n dragEnabled?: boolean | undefined;\r\n compactEnabled?: boolean | undefined;\r\n maxItemRows?: number | undefined;\r\n minItemRows?: number | undefined;\r\n maxItemCols?: number | undefined;\r\n minItemCols?: number | undefined;\r\n minItemArea?: number | undefined;\r\n maxItemArea?: number | undefined;\r\n\r\n [propName: string]: any;\r\n\r\n constructor(){\r\n this.dataError = false;\r\n this.options = {};\r\n }\r\n\r\n configureFromInstanceDetails(details: JaceWidgetInstanceDetail): void {\r\n this.name = details.name;\r\n this.widgetType = details.type;\r\n this.title = details.title;\r\n this.x = details.x;\r\n this.y = details.y;\r\n this.cols = details.cols;\r\n this.rows = details.rows;\r\n this.compactEnabled = details.compactenabled;\r\n this.dragEnabled = details.dragenabled;\r\n this.options = details.options;\r\n this.dataError = details.queryerror;\r\n this.resizeEnabled = details.resizeenabled;\r\n }\r\n abstract setData(data?: any): void ;\r\n}","\r\nimport { JaceWidgetInstanceDetail } from \"../externals/JaceWidgetInstanceDetail\";\r\nimport { BaseJaceWidgetModel } from \"./BaseJaceWidgetModel\";\r\n\r\nexport class JaceChartWidgetModel extends BaseJaceWidgetModel {\r\n \r\n chartType: 'pie' | 'line' | 'vertical' | 'vertical-2d' | 'vertical-stacked'='line';\r\n legend: boolean=false;\r\n\r\n //LineChartData | PieChartData | Vertical2DChartData | VerticalChartData | VerticalStackedChartData | any;\r\n chartData: any;\r\n\r\n constructor() {\r\n super();\r\n this.widgetType= \"CHART\"; \r\n }\r\n\r\n setData(data?: any): void {\r\n if (!data)\r\n return;\r\n\r\n if (data['queryerror'])\r\n this.dataError = data['queryerror'];\r\n\r\n if (data['legend'])\r\n this.legend = data['legend'];\r\n else\r\n this.legend = true;\r\n if (data['charttype'])\r\n this.chartType = data['charttype'];\r\n\r\n if (data['chartdata']) {\r\n this.chartData = data['chartdata'];\r\n }\r\n if (this.options && this.options['legend'] == undefined)\r\n this.options['legend'] = true;\r\n }\r\n\r\n}","\r\nimport { BaseJaceWidgetModel } from \"./BaseJaceWidgetModel\";\r\nimport { IJaceWidgetModel } from \"./IJaceWidgetModel\";\r\n\r\nexport class JaceCounterWidgetModel extends BaseJaceWidgetModel {\r\n\r\n superText?: string=undefined;\r\n subText?: string = undefined;\r\n value: number = 0; \r\n icon?: string=undefined;\r\n unit?: string=undefined;\r\n \r\n\r\n constructor() {\r\n super();\r\n this.widgetType= \"COUNTER\"; \r\n }\r\n \r\n\r\n setData(data?: any): void {\r\n if (data['queryerror'])\r\n this.dataError = data['queryerror'];\r\n this.superText = data['supertext'];\r\n this.subText = data['subtext'];\r\n this.value = data['value'];\r\n this.icon = data['icon'];\r\n this.options = data['options'];\r\n this.unit = data['unit'];\r\n }\r\n\r\n \r\n\r\n\r\n\r\n}","import { GridsterItem, GridsterItemComponentInterface } from \"angular-gridster2\";\r\nimport { JaceWidgetInstanceDetail } from \"../externals/JaceWidgetInstanceDetail\";\r\nimport { BaseJaceWidgetModel } from \"./BaseJaceWidgetModel\";\r\nimport { IJaceWidgetModel } from \"./IJaceWidgetModel\";\r\n\r\nexport class JaceListItemWidget {\r\n id?: any;\r\n idParamName?: string;\r\n description!: string;\r\n subline?: string;\r\n classes?: string;\r\n link?: string;\r\n}\r\nexport class JaceListWidgetModel extends BaseJaceWidgetModel{\r\n \r\n superText?: string = undefined;\r\n items: JaceListItemWidget[] = [];\r\n\r\n constructor() {\r\n super();\r\n this.widgetType= \"LIST\"; \r\n }\r\n\r\n\r\n setData(data?: any) {\r\n if (!data)\r\n return;\r\n if (data['queryerror'])\r\n this.dataError = data['queryerror'];\r\n this.superText = data['supertext'];\r\n if (data['items']) {\r\n const d = data['items'] as Array<any>;\r\n this.items = [];\r\n for (let index = 0; index < d.length; index++) {\r\n const item = new JaceListItemWidget();\r\n const element = d[index];\r\n\r\n if (element['id'])\r\n item.id = element['id'];\r\n\r\n if (element['idparamname'])\r\n item.idParamName = element['idparamname'];\r\n\r\n if (element['link'])\r\n item.link = element['link'];\r\n\r\n if (element['subline'])\r\n item.subline = element['subline'];\r\n\r\n if (element['classes'])\r\n item.classes = element['classes'];\r\n\r\n item.description = element.description;\r\n this.items.push(item);\r\n }\r\n }\r\n }\r\n\r\n}","import { BaseJaceWidgetModel } from \"./BaseJaceWidgetModel\";\r\n\r\n\r\nexport class JaceMultiprogWidgetModel extends BaseJaceWidgetModel {\r\n \r\n resizeEnabled: boolean = true;\r\n\r\n progressTitles: string[]=[];\r\n progressValues: number[]=[];\r\n\r\n circleProgress: boolean=false;\r\n \r\n constructor() {\r\n super();\r\n this.widgetType= \"MULTIPROGRESS\"; \r\n }\r\n\r\n setData(data?: any): void {\r\n\r\n if (data['queryerror'])\r\n this.dataError = data['queryerror'];\r\n\r\n this.progressTitles = data['progresstitles'] ?? [];\r\n this.progressValues = data['progressvalues'] ?? [];\r\n this.circleProgress = data['circleprogress'];\r\n this.options = data['options'] ?? {};\r\n\r\n\r\n if (this.circleProgress === undefined)\r\n this.circleProgress = true;\r\n\r\n if (this.cols === undefined && this.progressValues) {\r\n if (this.progressValues.length == 1)\r\n this.cols = 1;\r\n else\r\n this.cols = 2;\r\n }\r\n }\r\n\r\n}","import { JaceChartWidgetComponent } from \"../../components/widgets/chart/jace-dsh-chart.component\";\r\nimport { JaceCounterWidgetComponent } from \"../../components/widgets/counter/jace-dsh-counter.component\";\r\nimport { JaceListWidgetComponent } from \"../../components/widgets/list/jace-dsh-list.component\";\r\nimport { JaceMultiprogWidgetComponent } from \"../../components/widgets/multiprog/jace-dsh-multiprog.component\";\r\nimport { JaceChartWidgetModel } from \"../widgets/JaceChartWidgetModel\";\r\nimport { JaceCounterWidgetModel } from \"../widgets/JaceCounterWidgetModel\";\r\nimport { JaceListWidgetModel } from \"../widgets/JaceListWidgetModel\";\r\nimport { JaceMultiprogWidgetModel } from \"../widgets/JaceMultiprogWidgetModel\";\r\nimport { IDashboardModuleOptions } from \"./IDashboardModuleOptions\";\r\nimport { IWidgetTypeConfig } from \"./IWidgetTypeConfig\";\r\n\r\nexport class DefaultDashboardModuleOptions implements IDashboardModuleOptions{\r\n locale!: string;\r\n widgetTypes!: IWidgetTypeConfig[];\r\n\r\n constructor(){\r\n this.locale = \"it-IT\";\r\n this.widgetTypes = [\r\n {\r\n name: \"COUNTER\",\r\n component: JaceCounterWidgetComponent,\r\n model: JaceCounterWidgetModel\r\n },\r\n {\r\n name: \"LIST\",\r\n component: JaceListWidgetComponent,\r\n model: JaceListWidgetModel\r\n },\r\n {\r\n name: \"CHART\",\r\n component: JaceChartWidgetComponent,\r\n model: JaceChartWidgetModel\r\n },\r\n {\r\n name: \"MULTIPROGRESS\",\r\n component: JaceMultiprogWidgetComponent,\r\n model: JaceMultiprogWidgetModel\r\n }\r\n ];\r\n }\r\n}","import { ComponentRef, Injectable, ViewContainerRef,ComponentFactoryResolver } from '@angular/core';\r\nimport { IWidgetComponent } from '../components/widgets/IWidgetComponent';\r\nimport { JaceDashboardConfig } from '../models/config/JaceDashboardConfig';\r\nimport { JaceWidgetInstanceDetail } from '../models/externals/JaceWidgetInstanceDetail';\r\nimport { IJaceWidgetModel } from '../models/widgets/IJaceWidgetModel';\r\nimport { IDashboardModuleOptions } from '../models/options/IDashboardModuleOptions';\r\nimport { IWidgetTypeConfig } from '../models/options/IWidgetTypeConfig';\r\n\r\n\r\nexport interface IConstructableModel<T> {\r\n new(): T;\r\n}\r\n\r\n//singleton\r\n@Injectable({ providedIn: 'root' })\r\nexport class DashboardWidgetFactory {\r\n\r\n types: { [name: string]: IWidgetTypeConfig } = {};\r\n\r\n //verione ng 13\r\n //constructor() { }\r\n\r\n constructor(private componentFactoryResolver: ComponentFactoryResolver) { }\r\n\r\n\r\n addOption(option: IDashboardModuleOptions) {\r\n\r\n if (option.widgetTypes) {\r\n option.widgetTypes.forEach((o) => {\r\n this.types[o.name] = o;\r\n })\r\n }\r\n }\r\n\r\n //versione ng 13+\r\n /* resolveComponent(type: string, vcr: ViewContainerRef): ComponentRef<IWidgetComponent> | null {\r\n\r\n if (!this.types)\r\n return null;\r\n\r\n let t = this.types[type];\r\n\r\n if (!t)\r\n return null;\r\n\r\n let componentRef: ComponentRef<IWidgetComponent> = vcr.createComponent(t.component);\r\n\r\n return componentRef;\r\n } */\r\n //versione ng11 \r\n resolveComponent(type: string, vcr: ViewContainerRef): ComponentRef<IWidgetComponent> | null {\r\n\r\n if (!this.types)\r\n return null;\r\n\r\n let t = this.types[type];\r\n\r\n if (!t)\r\n return null;\r\n //DEPRECATO dopo ng11: è stato tolto il meccanismo dei ComponentFactory per i componenti dinamici\r\n let cf = this.componentFactoryResolver.resolveComponentFactory(t.component);\r\n let componentRef: ComponentRef<IWidgetComponent> = vcr.createComponent(cf);\r\n\r\n return componentRef;\r\n }\r\n\r\n resolveDefinition(type: string, details: JaceWidgetInstanceDetail): IJaceWidgetModel | null {\r\n\r\n if (!this.types)\r\n return null;\r\n\r\n let t = this.types[type];\r\n\r\n if (!t)\r\n return null;\r\n\r\n let definitionInstance = this.createInstance(t.model);\r\n definitionInstance.configureFromInstanceDetails(details);\r\n\r\n return definitionInstance;\r\n }\r\n\r\n private createInstance<T extends IJaceWidgetModel>(type: IConstructableModel<T>): T {\r\n return new type();\r\n }\r\n\r\n}","import { Injectable, Inject } from \"@angular/core\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\nimport { IDashboardModuleOptions } from \"../../models/options/IDashboardModuleOptions\";\r\nimport { DSH_OPTIONS } from \"../../private-injection-tokens\";\r\n\r\n\r\n\r\n@Injectable()\r\nexport class DashboardLoc extends LocalizationService {\r\n constructor(@Inject(DSH_OPTIONS) options: IDashboardModuleOptions) {\r\n super(options.locale);\r\n super.set(\"en->it\", \"Dashboard\", [\"Dashboard\"]);\r\n \r\n }\r\n}","import { JaceWidgetInstanceDetail } from \"./JaceWidgetInstanceDetail\";\r\n\r\n\r\nexport class SaveJaceDashboardLayoutDTO {\r\n //TODO eliminare le proprietà che non devono essere usate per la creazione dell'entità\r\n\r\n widgets!: JaceWidgetInstanceDetail[];\r\n\r\n}","//Definizione della widget restituita dal backend\r\nexport class JaceWidgetInstanceDetail {\r\n id?: number;\r\n name!: string;\r\n title?: string;\r\n type!: string;\r\n x!: number;\r\n y!: number;\r\n cols!: number;\r\n rows!: number;\r\n \r\n dragenabled?: boolean;\r\n resizeenabled?: boolean;\r\n compactenabled?: boolean; \r\n options?: { [key: string]: any };\r\n queryerror: boolean = false;\r\n }","import { AfterViewChecked, AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ComponentRef, Inject, Input, OnChanges, OnDestroy, OnInit, QueryList, SimpleChanges, ViewChildren, ViewContainerRef, ViewEncapsulation } from \"@angular/core\";\r\nimport { JaceDashboardConfig } from \"../../models/config/JaceDashboardConfig\";\r\nimport { IJaceWidgetModel } from \"../../models/widgets/IJaceWidgetModel\";\r\nimport { InboundMessageTypes, InterComService } from \"@esfaenza/extensions\";\r\n\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\nimport { DashboardLoc } from \"./dashboard.component.loc\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { SaveJaceDashboardLayoutDTO } from \"../../models/externals/SaveJaceDashboardLayoutDTO\";\r\nimport { JaceWidgetInstanceDetail } from \"../../models/externals/JaceWidgetInstanceDetail\";\r\nimport { JaceDashboardLayoutDetail } from \"../../models/externals/JaceDashboardLayoutDetail\";\r\nimport { DashboardWidgetFactory } from \"../../services/DashboardWidgetFactory\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { IWidgetComponent } from \"../widgets/IWidgetComponent\";\r\nimport { DSH_DATA_SERVICE } from \"../../public-injection-tokens\";\r\nimport { IDashboardFeatureDataService } from \"../../services/IDashboardFeatureDataService\";\r\n\r\n/**\r\n * Componente di base che rappresenta una dashboard.\r\n * Utilizza Gridster2 per il layout delle widget [Gridster2](https://tiberiuzuld.github.io/angular-gridster2/)\r\n */\r\n@Component({\r\n selector: 'dashboard',\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n { provide: LocalizationService, useClass: DashboardLoc }\r\n ],\r\n templateUrl: './dashboard.component.html',\r\n styleUrls: ['./dashboard.component.css'] \r\n})\r\nexport class DashboardComponent implements OnInit, AfterViewInit, OnDestroy, OnChanges{\r\n /**\r\n * Configurazione di questa dashboard.\r\n * Contiene anche le configurazioni di layout di Gridster2\r\n */\r\n @Input() Configuration!: JaceDashboardConfig;\r\n\r\n public dashboardDate = new Date();\r\n public dashboardLayout? : JaceDashboardLayoutDetail;\r\n\r\n widgetDefinitions : (IJaceWidgetModel|null)[]=[];\r\n\r\n changesSub?: Subscription;\r\n\r\n trackedSubscriptions: Subscription[]=[];\r\n\r\n @ViewChildren('grid_item', { read: ViewContainerRef }) gridItemRefs!: QueryList<ViewContainerRef>;\r\n\r\n constructor( \r\n @Inject(DSH_DATA_SERVICE) private dshService: IDashboardFeatureDataService, \r\n private intercom: InterComService,\r\n public lc: LocalizationService,\r\n private route: ActivatedRoute,\r\n private cmpFactory: DashboardWidgetFactory,\r\n private cdr : ChangeDetectorRef\r\n ) {\r\n \r\n this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data[\"title\"]) });\r\n }\r\n\r\n \r\n\r\n public ngOnInit() {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n\r\n //qui this.gridItemRefs è 'riempito'\r\n // sottoscrivo changes che sparerà tutte le volte che ngFor si aggiorna (ovvero quando cambia dashboard)\r\n this.changesSub = this.gridItemRefs.changes.subscribe((comps: QueryList<ViewContainerRef>) => {\r\n this.renderLayout(comps);\r\n });\r\n //prima volta\r\n /* if(this.Configuration)\r\n this.reloadData(); */\r\n\r\n setTimeout(()=>this.reloadData(),500);\r\n }\r\n\r\n \r\n\r\n ngOnDestroy(): void {\r\n //unsubscribe dalle changes dei viewref\r\n if(this.changesSub)\r\n this.changesSub.unsubscribe();\r\n\r\n this.clearTrackedSubscriptions();\r\n }\r\n\r\n clearTrackedSubscriptions(){\r\n if(this.trackedSubscriptions){\r\n for (let index = 0; index < this.trackedSubscriptions.length; index++) {\r\n const element = this.trackedSubscriptions[index];\r\n element.unsubscribe();\r\n }\r\n this.trackedSubscriptions=[];\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n \r\n if(changes.Configuration){\r\n\r\n //appena ho configuration\r\n \r\n\r\n }\r\n }\r\n\r\n reloadData(){\r\n this.dshService.GetUserDashboard(this.Configuration.accountId,this.Configuration.dashboardName).subscribe(c => {\r\n this.dashboardLayout = c;\r\n this.widgetDefinitions =c.widgets.map(i =>{\r\n return this.cmpFactory.resolveDefinition(i.type,i)\r\n });\r\n \r\n }); \r\n }\r\n\r\n removeItem(widgetName:string) {\r\n if(!this.dashboardLayout)\r\n return;\r\n let idx =this.dashboardLayout.widgets.findIndex(s=>s.name==widgetName);\r\n this.widgetDefinitions.splice(idx, 1);\r\n }\r\n\r\n saveDashboard(){\r\n if(!this.dashboardLayout)\r\n return;\r\n const dto = new SaveJaceDashboardLayoutDTO();\r\n \r\n dto.widgets = [];\r\n for (let index = 0; index < this.widgetDefinitions.length; index++) {\r\n const w: IJaceWidgetModel|null = this.widgetDefinitions[index];\r\n if(w==null)\r\n continue;\r\n let v = new JaceWidgetInstanceDetail();\r\n v.id = w.id;\r\n v.name = w.name;\r\n v.x = w.x;\r\n v.y = w.y;\r\n v.cols = w.cols;\r\n v.rows = w.rows;\r\n v.compactenabled = w.compactEnabled;\r\n v.dragenabled = w.dragEnabled;\r\n v.resizeenabled = w.resizeEnabled;\r\n v.type = w.widgetType;\r\n v.title = w.title;\r\n v.options = w.options;\r\n dto.widgets.push(v);\r\n }\r\n this.dshService.SaveUserDashboard(dto).subscribe(res => {\r\n if(res.success)\r\n console.log('Dashboard saved');\r\n \r\n });\r\n }\r\n\r\n renderLayout(comps: QueryList<ViewContainerRef>){\r\n\r\n this.clearTrackedSubscriptions();\r\n\r\n comps.map((host, index) => {\r\n const vcr = host;\r\n vcr.clear();\r\n const widgetData = this.widgetDefinitions[index];\r\n \r\n if(!widgetData || !widgetData.widgetType)\r\n return;\r\n\r\n\r\n\r\n let componentRef: ComponentRef<IWidgetComponent>|null;\r\n componentRef = this.cmpFactory.resolveComponent(widgetData?.widgetType,vcr);\r\n\r\n if(!componentRef)\r\n {\r\n console.log(`Tipo widget sconosciuto ${widgetData.widgetType}`);\r\n return;\r\n }\r\n \r\n \r\n //setta l'input della data\r\n if(this.Configuration.showDateInput)\r\n componentRef.instance.DashboardDate = this.dashboardDate;\r\n\r\n //setta il modello\r\n componentRef.instance.setWidgetModel(widgetData);\r\n\r\n //setta la callback per OnRemove\r\n let s = componentRef.instance.OnRemove.subscribe(name=>this.removeItem(name));\r\n this.trackedSubscriptions.push(s);\r\n \r\n //componentRef.changeDetectorRef.markForCheck();\r\n\r\n //componentRef.changeDetectorRef.detectChanges();\r\n });\r\n this.cdr.detectChanges();\r\n }\r\n\r\n\r\n addItem() {\r\n\r\n //this.dashboard.push({});\r\n }\r\n}","export const Repository={\r\n GET_Dashboard_GetLayout: \"/api/Dashboard/GetLayout\",\r\n POST_Dashboard_SaveLayout: \"/api/Dashboard/SaveLayout\",\r\n GET_Dashboard_GetWidgetData: \"/api/Dashboard/GetWidgetData\"\r\n\r\n}","import { Inject, Injectable } from '@angular/core';\nimport { JaceDashboardLayoutDetail } from '../models/externals/JaceDashboardLayoutDetail';\nimport { Observable, of } from 'rxjs';\nimport { SaveJaceDashboardLayoutDTO } from '../models/externals/SaveJaceDashboardLayoutDTO';\nimport { CallResult } from '@esfaenza/extensions';\nimport { HTTPService } from '@esfaenza/httpservice';\nimport { DSH_BACKEND_URL } from '../public-injection-tokens';\nimport { HttpParams } from '@angular/common/http';\nimport { Repository } from '../models/externals/Repository';\nimport { IDashboardFeatureDataService } from './IDashboardFeatureDataService';\n\n@Injectable()\nexport class DashboardFeatureAPIDataService implements IDashboardFeatureDataService {\n\n constructor(private http: HTTPService,@Inject(DSH_BACKEND_URL) private backend: string) {}\n\n GetUserDashboard(idaccount: number,dashboardName: string): Observable<JaceDashboardLayoutDetail> {\n\n \n \n let params = new HttpParams();\n params = params.append(\"idaccount\", idaccount.toString());\n params = params.append(\"name\", dashboardName);\n return this.http.get<JaceDashboardLayoutDetail>(this.backend + Repository[\"GET_Dashboard_GetLayout\"], params);\n\n }\n\n SaveUserDashboard(dto: SaveJaceDashboardLayoutDTO): Observable<CallResult> {\n \n return this.http.post<CallResult>(this.backend + Repository[\"POST_Dashboard_SaveLayout\"], dto);\n }\n\n GetWidgetData(name: string, options: { [key: string]: string }): Observable<any> {\n \n let params = new HttpParams();\n params = params.append(\"name\", name.toString());\n if (options && Object.keys(options).length != 0) {\n for (let index = 0; index < Object.keys(options).length; index++) {\n const k = Object.keys(options)[index];\n params = params.append(k, options[k]);\n }\n }\n\n return this.http.get<any>(this.backend + Repository[\"GET_Dashboard_GetWidgetData\"], params)\n }\n} \n\n","\nimport { Inject, ModuleWithProviders, NgModule, Optional } from '@angular/core';\n\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\n\nimport { GridsterModule } from 'angular-gridster2';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { DSH_OPTIONS } from './private-injection-tokens';\nimport { DefaultDashboardModuleOptions } from './models/options/DefaultDashboardModuleOptions';\nimport { IDashboardModuleOptions } from './models/options/IDashboardModuleOptions';\nimport { DashboardWidgetFactory } from './services/DashboardWidgetFactory';\nimport { DashboardComponent } from './components/dashboard/dashboard.component';\nimport { FormsAndValidationsModule } from '@esfaenza/forms-and-validations';\nimport { EsChartsModule } from '@esfaenza/es-charts'; \nimport { JaceListWidgetComponent } from './components/widgets/list/jace-dsh-list.component';\nimport { JaceCounterWidgetComponent } from './components/widgets/counter/jace-dsh-counter.component';\nimport { JaceChartWidgetComponent } from './components/widgets/chart/jace-dsh-chart.component';\nimport { JaceMultiprogWidgetComponent } from './components/widgets/multiprog/jace-dsh-multiprog.component';\nimport { NgCircleProgressModule } from 'ng-circle-progress';\nimport { HttpserviceModule } from '@esfaenza/httpservice';\nimport { DashboardFeatureAPIDataService } from './services/dashboard-feature.service';\nimport { DSH_DATA_SERVICE } from './public-injection-tokens';\n\nconst MODULES = [\n // Base\n CommonModule,\n FormsModule,\n GridsterModule,\n MatProgressBarModule,\n FormsAndValidationsModule,\n EsChartsModule,\n HttpserviceModule,\n /* EsChartsModule.forRoot({\n locale: myconfig.LOCALE,\n animations: true,\n theme: 'spiritedaway',\n adapter: null,\n debugMode: false\n }), */\n NgCircleProgressModule.forRoot({\n // set defaults here\n radius: 50,\n outerStrokeWidth: 8,\n innerStrokeWidth: 4,\n outerStrokeColor: \"#78C000\",\n innerStrokeColor: \"#C7E596\",\n animationDuration: 300\n })\n];\n\nconst COMPONENTS = [\n DashboardComponent,\n JaceListWidgetComponent,\n JaceCounterWidgetComponent,\n JaceChartWidgetComponent,\n JaceMultiprogWidgetComponent\n];\n\n\n@NgModule({\n declarations: [\n ...COMPONENTS\n ],\n imports: [\n ...MODULES\n ],\n exports: [\n ...COMPONENTS\n ]\n})\nexport class DashboardFeatureModule {\n\n static forRoot(options: IDashboardModuleOptions): ModuleWithProviders<DashboardFeatureModule> {\n return {\n ngModule: DashboardFeatureModule,\n providers: [\n { provide: DSH_OPTIONS, multi: true, useValue: new DefaultDashboardModuleOptions() },\n { provide: DSH_OPTIONS, multi: true, useValue: options},\n { provide: DSH_DATA_SERVICE, useClass:DashboardFeatureAPIDataService}\n ]\n };\n }\n\n static forChild(options?: IDashboardModuleOptions): ModuleWithProviders<DashboardFeatureModule> {\n return {\n ngModule: DashboardFeatureModule,\n providers: [\n { provide: DSH_OPTIONS, multi: true, useValue: new DefaultDashboardModuleOptions() },\n { provide: DSH_OPTIONS, multi: true, useValue: options}\n ]\n };\n }\n \n constructor(componentFactory: DashboardWidgetFactory, @Optional() @Inject(DSH_OPTIONS) options: IDashboardModuleOptions[]) {\n if (!options) { \n //componentFactory.addOption(new DefaultDashboardModuleOptions());\n return;\n }\n options.map((o)=>componentFactory.addOption(o));\n \n }\n\n}\n","\r\nimport { Component, Directive, EventEmitter, Inject, Injectable, SimpleChanges } from \"@angular/core\";\r\nimport { IJaceWidgetModel } from \"../../models/widgets/IJaceWidgetModel\";\r\nimport { IWidgetComponent } from \"./IWidgetComponent\";\r\nimport { IDashboardFeatureDataService } from \"../../services/IDashboardFeatureDataService\";\r\nimport { DSH_DATA_SERVICE } from \"../../public-injection-tokens\";\r\n\r\n/**\r\n * Classe di base astratta per la creazione di Widget custom.\r\n */\r\n @Injectable()\r\nexport abstract class BaseWidgetComponent<T extends IJaceWidgetModel> implements IWidgetComponent{\r\n\r\n model?: T;\r\n\r\n DashboardDate!: Date;\r\n OnRemove = new EventEmitter<string>();\r\n\r\n configuration: boolean = false;\r\n dataReady: boolean = false;\r\n lastdate: string = \"\";\r\n\r\n constructor(@Inject(DSH_DATA_SERVICE) protected dshService: IDashboardFeatureDataService) { }\r\n\r\n setWidgetModel(widgetModel: IJaceWidgetModel): void {\r\n \r\n this.model = <T>widgetModel;\r\n\r\n this.refreshData();\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n //console.log(changes['DashboardDate'].currentValue);\r\n if (changes['DashboardDate'].previousValue)\r\n this.lastdate = changes['DashboardDate'].previousValue.toISOString();\r\n\r\n let curdate: string = \"\";\r\n\r\n if (changes['DashboardDate'].currentValue)\r\n curdate = changes['DashboardDate'].currentValue.toISOString();\r\n //fix per il datetimepicker material che cambia l'oggetto al momento del caricamento\r\n if (this.lastdate != curdate) {\r\n this.lastdate = curdate;\r\n this.refreshData();\r\n }\r\n\r\n }\r\n\r\n /**\r\n * Prepara i parametri e lancia la chiamata GetWidgetData della DashboardFeatureService.\r\n * Imposta il model con i dati restituiti (setData) e imposta la variabile dataReady del campo a true\r\n */\r\n refreshData() : void {\r\n if (!this.model)\r\n return;\r\n const pars: { [key: string]: string } = {};\r\n if(this.DashboardDate)\r\n pars[\"DT\"] = this.DashboardDate.toISOString();\r\n if (this.model.options && Object.keys(this.model.options).length != 0) {\r\n for (let index = 0; index < Object.keys(this.model.options).length; index++) {\r\n const k = Object.keys(this.model.options)[index];\r\n pars[k] = this.model.options[k];\r\n }\r\n }\r\n\r\n this.prepareGetDataParameters(pars);\r\n\r\n this.dshService.GetWidgetData(this.model.name, pars).subscribe(data => {\r\n if (this.model) {\r\n this.model.setData(data);\r\n this.dataReady = true;\r\n }\r\n }\r\n );\r\n } \r\n /**\r\n * Modifica/aggiorna i parametri della chiamata GetWidgetData prima di eseguirla. * \r\n * \r\n * @param pars parametri della chiamata. Se impostata, già contengono il parametro 'DT' con la data selezionata a livello di dashboard\r\n */\r\n abstract prepareGetDataParameters(pars: { [key: string]: string; }) :void;\r\n\r\n /**\r\n * Da chiamare quando l'utente preme il pulsante 'rimuovi' nella toolbar della widget.\r\n */\r\n removeWidget() :void{\r\n if (!this.model)\r\n return;\r\n this.OnRemove.emit(this.model.name);\r\n }\r\n\r\n /**\r\n * Da chiamare quando viene premuto il pulsante 'configure' nella toolbar della widget\r\n */\r\n configureWidget() :void{\r\n if (this.configuration) {\r\n //finito di configurare -> refreshData\r\n this.refreshData();\r\n }\r\n this.configuration = !this.configuration;\r\n }\r\n}","export enum JaceWidgetTypes{\r\nCHART='CHART',\r\nCOUNTER='COUNTER',\r\nLIST='LIST',\r\nMULTIPROGRESS='MULTIPROGRESS'\r\n}","/*\n * Public API Surface of dashboard-feature\n */\n\n\nexport * from './lib/public-injection-tokens';\nexport * from './lib/dashboard-feature.module';\n\nexport * from './lib/components/widgets/IWidgetComponent';\nexport * from './lib/components/widgets/BaseWidgetComponent';\n\nexport * from './lib/models/widgets/IJaceWidgetModel';\nexport * from './lib/models/widgets/BaseJaceWidgetModel';\n\nexport * from './lib/models/options/IWidgetTypeConfig';\nexport * from './lib/models/options/IDashboardModuleOptions';\nexport * from './lib/models/options/DefaultDashboardModuleOptions';\n\nexport * from './lib/services/IDashboardFeatureDataService';\n\n\nexport * from './lib/components/dashboard/dashboard.component';\nexport * from './lib/components/widgets/chart/jace-dsh-chart.component';\nexport * from './lib/components/widgets/counter/jace-dsh-counter.component';\nexport * from './lib/components/widgets/list/jace-dsh-list.component';\nexport * from './lib/components/widgets/multiprog/jace-dsh-multiprog.component';\n\nexport * from './lib/components/widgets/JaceWidgetTypes';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {DashboardLoc as ɵa} from './lib/components/dashboard/dashboard.component.loc';\nexport {DSH_OPTIONS as ɵb} from './lib/private-injection-tokens';\nexport {DashboardWidgetFactory as ɵc} from './lib/services/DashboardWidgetFactory';\nexport {DashboardFeatureAPIDataService as ɵd} from './lib/services/dashboard-feature.service';"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { AfterViewInit, ChangeDetectorRef, OnChanges, OnDestroy, OnInit, QueryList, SimpleChanges, ViewContainerRef } from "@angular/core";
2
+ import { JaceDashboardConfig } from "../../models/config/JaceDashboardConfig";
3
+ import { IJaceWidgetModel } from "../../models/widgets/IJaceWidgetModel";
4
+ import { InterComService } from "@esfaenza/extensions";
5
+ import { LocalizationService } from "@esfaenza/localizations";
6
+ import { ActivatedRoute } from "@angular/router";
7
+ import { JaceDashboardLayoutDetail } from "../../models/externals/JaceDashboardLayoutDetail";
8
+ import { DashboardWidgetFactory } from "../../services/DashboardWidgetFactory";
9
+ import { Subscription } from "rxjs";
10
+ import { IDashboardFeatureDataService } from "../../services/IDashboardFeatureDataService";
11
+ /**
12
+ * Componente di base che rappresenta una dashboard.
13
+ * Utilizza Gridster2 per il layout delle widget [Gridster2](https://tiberiuzuld.github.io/angular-gridster2/)
14
+ */
15
+ export declare class DashboardComponent implements OnInit, AfterViewInit, OnDestroy, OnChanges {
16
+ private dshService;
17
+ private intercom;
18
+ lc: LocalizationService;
19
+ private route;
20
+ private cmpFactory;
21
+ private cdr;
22
+ /**
23
+ * Configurazione di questa dashboard.
24
+ * Contiene anche le configurazioni di layout di Gridster2
25
+ */
26
+ Configuration: JaceDashboardConfig;
27
+ dashboardDate: Date;
28
+ dashboardLayout?: JaceDashboardLayoutDetail;
29
+ widgetDefinitions: (IJaceWidgetModel | null)[];
30
+ changesSub?: Subscription;
31
+ trackedSubscriptions: Subscription[];
32
+ gridItemRefs: QueryList<ViewContainerRef>;
33
+ constructor(dshService: IDashboardFeatureDataService, intercom: InterComService, lc: LocalizationService, route: ActivatedRoute, cmpFactory: DashboardWidgetFactory, cdr: ChangeDetectorRef);
34
+ ngOnInit(): void;
35
+ ngAfterViewInit(): void;
36
+ ngOnDestroy(): void;
37
+ clearTrackedSubscriptions(): void;
38
+ ngOnChanges(changes: SimpleChanges): void;
39
+ reloadData(): void;
40
+ removeItem(widgetName: string): void;
41
+ saveDashboard(): void;
42
+ renderLayout(comps: QueryList<ViewContainerRef>): void;
43
+ addItem(): void;
44
+ }
@@ -0,0 +1,5 @@
1
+ import { LocalizationService } from "@esfaenza/localizations";
2
+ import { IDashboardModuleOptions } from "../../models/options/IDashboardModuleOptions";
3
+ export declare class DashboardLoc extends LocalizationService {
4
+ constructor(options: IDashboardModuleOptions);
5
+ }
@@ -0,0 +1,41 @@
1
+ import { EventEmitter, SimpleChanges } from "@angular/core";
2
+ import { IJaceWidgetModel } from "../../models/widgets/IJaceWidgetModel";
3
+ import { IWidgetComponent } from "./IWidgetComponent";
4
+ import { IDashboardFeatureDataService } from "../../services/IDashboardFeatureDataService";
5
+ /**
6
+ * Classe di base astratta per la creazione di Widget custom.
7
+ */
8
+ export declare abstract class BaseWidgetComponent<T extends IJaceWidgetModel> implements IWidgetComponent {
9
+ protected dshService: IDashboardFeatureDataService;
10
+ model?: T;
11
+ DashboardDate: Date;
12
+ OnRemove: EventEmitter<string>;
13
+ configuration: boolean;
14
+ dataReady: boolean;
15
+ lastdate: string;
16
+ constructor(dshService: IDashboardFeatureDataService);
17
+ setWidgetModel(widgetModel: IJaceWidgetModel): void;
18
+ ngOnInit(): void;
19
+ ngOnChanges(changes: SimpleChanges): void;
20
+ /**
21
+ * Prepara i parametri e lancia la chiamata GetWidgetData della DashboardFeatureService.
22
+ * Imposta il model con i dati restituiti (setData) e imposta la variabile dataReady del campo a true
23
+ */
24
+ refreshData(): void;
25
+ /**
26
+ * Modifica/aggiorna i parametri della chiamata GetWidgetData prima di eseguirla. *
27
+ *
28
+ * @param pars parametri della chiamata. Se impostata, già contengono il parametro 'DT' con la data selezionata a livello di dashboard
29
+ */
30
+ abstract prepareGetDataParameters(pars: {
31
+ [key: string]: string;
32
+ }): void;
33
+ /**
34
+ * Da chiamare quando l'utente preme il pulsante 'rimuovi' nella toolbar della widget.
35
+ */
36
+ removeWidget(): void;
37
+ /**
38
+ * Da chiamare quando viene premuto il pulsante 'configure' nella toolbar della widget
39
+ */
40
+ configureWidget(): void;
41
+ }
@@ -0,0 +1,23 @@
1
+ import { EventEmitter } from "@angular/core";
2
+ import { IJaceWidgetModel } from "../../models/widgets/IJaceWidgetModel";
3
+ /**
4
+ * Interfaccia che ogni Component che rappresenta una widget deve implementare.
5
+ */
6
+ export interface IWidgetComponent {
7
+ /**
8
+ * Se rilevante per questa dashboard, in questo input viene impostata la data selezionata dall'utente.
9
+ */
10
+ DashboardDate: Date;
11
+ /**
12
+ * Lanciato quando questa widget viene rimossa dalla dashboard
13
+ */
14
+ OnRemove: EventEmitter<string>;
15
+ /**
16
+ * Imposta il modello della widget nel componente.
17
+ *
18
+ * Lanciata subito dopo la creazione del Componente, durante il rendering del layout della dashboard.
19
+ *
20
+ * @param widgetModel Imposta il modello della widget letto nel layout ricevuto dal BE
21
+ */
22
+ setWidgetModel(widgetModel: IJaceWidgetModel): void;
23
+ }
@@ -0,0 +1,6 @@
1
+ export declare enum JaceWidgetTypes {
2
+ CHART = "CHART",
3
+ COUNTER = "COUNTER",
4
+ LIST = "LIST",
5
+ MULTIPROGRESS = "MULTIPROGRESS"
6
+ }
@@ -0,0 +1,22 @@
1
+ import { EventEmitter, OnInit, SimpleChanges } from '@angular/core';
2
+ import { IJaceWidgetModel } from '../../../models/widgets/IJaceWidgetModel';
3
+ import { IWidgetComponent } from '../IWidgetComponent';
4
+ import { JaceChartWidgetModel } from '../../../models/widgets/JaceChartWidgetModel';
5
+ import { IDashboardFeatureDataService } from '../../../services/IDashboardFeatureDataService';
6
+ export declare class JaceChartWidgetComponent implements IWidgetComponent, OnInit {
7
+ private dshService;
8
+ model?: JaceChartWidgetModel;
9
+ DashboardDate: Date;
10
+ OnRemove: EventEmitter<string>;
11
+ configuration: boolean;
12
+ dataReady: boolean;
13
+ lastdate: string;
14
+ chartName: string;
15
+ constructor(dshService: IDashboardFeatureDataService);
16
+ setWidgetModel(widgetModel: IJaceWidgetModel): void;
17
+ ngOnInit(): void;
18
+ ngOnChanges(changes: SimpleChanges): void;
19
+ refreshData(): void;
20
+ removeWidget(): void;
21
+ configure(): void;
22
+ }
@@ -0,0 +1,21 @@
1
+ import { EventEmitter, OnInit, SimpleChanges } from '@angular/core';
2
+ import { IJaceWidgetModel } from '../../../models/widgets/IJaceWidgetModel';
3
+ import { IWidgetComponent } from '../IWidgetComponent';
4
+ import { JaceCounterWidgetModel } from '../../../models/widgets/JaceCounterWidgetModel';
5
+ import { IDashboardFeatureDataService } from '../../../services/IDashboardFeatureDataService';
6
+ export declare class JaceCounterWidgetComponent implements IWidgetComponent, OnInit {
7
+ private dshService;
8
+ model?: JaceCounterWidgetModel;
9
+ DashboardDate: Date;
10
+ OnRemove: EventEmitter<string>;
11
+ configuration: boolean;
12
+ dataReady: boolean;
13
+ lastdate: string;
14
+ constructor(dshService: IDashboardFeatureDataService);
15
+ setWidgetModel(widgetModel: IJaceWidgetModel): void;
16
+ ngOnInit(): void;
17
+ ngOnChanges(changes: SimpleChanges): void;
18
+ refreshData(): void;
19
+ removeWidget(): void;
20
+ configure(): void;
21
+ }
@@ -0,0 +1,24 @@
1
+ import { EventEmitter, OnInit, SimpleChanges } from '@angular/core';
2
+ import { IJaceWidgetModel } from '../../../models/widgets/IJaceWidgetModel';
3
+ import { IWidgetComponent } from '../IWidgetComponent';
4
+ import { JaceListItemWidget, JaceListWidgetModel } from '../../../models/widgets/JaceListWidgetModel';
5
+ import { Router } from '@angular/router';
6
+ import { IDashboardFeatureDataService } from '../../../services/IDashboardFeatureDataService';
7
+ export declare class JaceListWidgetComponent implements IWidgetComponent, OnInit {
8
+ private dshService;
9
+ private router;
10
+ model?: JaceListWidgetModel;
11
+ DashboardDate: Date;
12
+ OnRemove: EventEmitter<string>;
13
+ configuration: boolean;
14
+ dataReady: boolean;
15
+ lastdate: string;
16
+ constructor(dshService: IDashboardFeatureDataService, router: Router);
17
+ setWidgetModel(widgetModel: IJaceWidgetModel): void;
18
+ ngOnInit(): void;
19
+ ngOnChanges(changes: SimpleChanges): void;
20
+ refreshData(): void;
21
+ removeWidget(): void;
22
+ itemClicked(item: JaceListItemWidget): void;
23
+ configure(): void;
24
+ }
@@ -0,0 +1,23 @@
1
+ import { EventEmitter, OnInit, SimpleChanges } from '@angular/core';
2
+ import { IJaceWidgetModel } from '../../../models/widgets/IJaceWidgetModel';
3
+ import { IWidgetComponent } from '../IWidgetComponent';
4
+ import { Router } from '@angular/router';
5
+ import { JaceMultiprogWidgetModel } from '../../../models/widgets/JaceMultiprogWidgetModel';
6
+ import { IDashboardFeatureDataService } from '../../../services/IDashboardFeatureDataService';
7
+ export declare class JaceMultiprogWidgetComponent implements IWidgetComponent, OnInit {
8
+ private dshService;
9
+ private router;
10
+ model?: JaceMultiprogWidgetModel;
11
+ DashboardDate: Date;
12
+ OnRemove: EventEmitter<string>;
13
+ configuration: boolean;
14
+ dataReady: boolean;
15
+ lastdate: string;
16
+ constructor(dshService: IDashboardFeatureDataService, router: Router);
17
+ setWidgetModel(widgetModel: IJaceWidgetModel): void;
18
+ ngOnInit(): void;
19
+ ngOnChanges(changes: SimpleChanges): void;
20
+ refreshData(): void;
21
+ removeWidget(): void;
22
+ configure(): void;
23
+ }
@@ -0,0 +1,8 @@
1
+ import { ModuleWithProviders } from '@angular/core';
2
+ import { IDashboardModuleOptions } from './models/options/IDashboardModuleOptions';
3
+ import { DashboardWidgetFactory } from './services/DashboardWidgetFactory';
4
+ export declare class DashboardFeatureModule {
5
+ static forRoot(options: IDashboardModuleOptions): ModuleWithProviders<DashboardFeatureModule>;
6
+ static forChild(options?: IDashboardModuleOptions): ModuleWithProviders<DashboardFeatureModule>;
7
+ constructor(componentFactory: DashboardWidgetFactory, options: IDashboardModuleOptions[]);
8
+ }
@@ -0,0 +1,46 @@
1
+ import { GridsterConfig } from 'angular-gridster2';
2
+ /**
3
+ * Configurazione della dashboard
4
+ */
5
+ export declare class JaceDashboardConfig {
6
+ /**
7
+ * Nome della dashboard (deve essere univoco nel modulo).
8
+ * Deve essere 'conosciuto' nel BE in modo da ottenere il layout delle widget da visualizzare.
9
+ * Verrà usato anche per salvare le preferenze dell'account (widget ridimensionate/spostate/eliminate)
10
+ */
11
+ dashboardName: string;
12
+ /**
13
+ * ID dell'account dell'utente che deve visualizzare la dashboard.
14
+ * HINT: Leggerlo da JaceIdentity dell'account al momento loggato.
15
+ */
16
+ accountId: number;
17
+ /**
18
+ * Configurazioni specifiche del layout di [Gridster2](https://tiberiuzuld.github.io/angular-gridster2/)
19
+ */
20
+ gridsterConfig: GridsterConfig;
21
+ /**
22
+ * Se questa dashboard contiene widget che mostrano dati che dipendono dalla data corrente
23
+ * mostra il controllo (datetimepicker) per variare la data in base a cui mostrare i dati.
24
+ *
25
+ * NOTA: showToolbar deve essere a true.
26
+ *
27
+ * Default = false
28
+ */
29
+ showDateInput: boolean;
30
+ /**
31
+ * Mostrare la toolbar in cima alla dashboard che contiene il titolo, il pulsante per salvare il proprio layout personalizzato
32
+ * e il picker per scegliere la data nel caso che le widget nella dashboard mostrino dati dipendenti dalla data.
33
+ *
34
+ * Default = true
35
+ */
36
+ showToolbar: boolean;
37
+ /**
38
+ * Titolo della dashboard mostrato in cima al layout all'interno della toolbar.
39
+ *
40
+ * NOTA: showToolbar deve essere a true.
41
+ *
42
+ * Default = undefined
43
+ */
44
+ dashboardTitle: string;
45
+ constructor();
46
+ }
@@ -0,0 +1,6 @@
1
+ import { JaceWidgetInstanceDetail } from "./JaceWidgetInstanceDetail";
2
+ export declare class JaceDashboardLayoutDetail {
3
+ accountid: number;
4
+ name: string;
5
+ widgets: JaceWidgetInstanceDetail[];
6
+ }
@@ -0,0 +1,17 @@
1
+ export declare class JaceWidgetInstanceDetail {
2
+ id?: number;
3
+ name: string;
4
+ title?: string;
5
+ type: string;
6
+ x: number;
7
+ y: number;
8
+ cols: number;
9
+ rows: number;
10
+ dragenabled?: boolean;
11
+ resizeenabled?: boolean;
12
+ compactenabled?: boolean;
13
+ options?: {
14
+ [key: string]: any;
15
+ };
16
+ queryerror: boolean;
17
+ }
@@ -0,0 +1,5 @@
1
+ export declare const Repository: {
2
+ GET_Dashboard_GetLayout: string;
3
+ POST_Dashboard_SaveLayout: string;
4
+ GET_Dashboard_GetWidgetData: string;
5
+ };
@@ -0,0 +1,4 @@
1
+ import { JaceWidgetInstanceDetail } from "./JaceWidgetInstanceDetail";
2
+ export declare class SaveJaceDashboardLayoutDTO {
3
+ widgets: JaceWidgetInstanceDetail[];
4
+ }
@@ -0,0 +1,7 @@
1
+ import { IDashboardModuleOptions } from "./IDashboardModuleOptions";
2
+ import { IWidgetTypeConfig } from "./IWidgetTypeConfig";
3
+ export declare class DefaultDashboardModuleOptions implements IDashboardModuleOptions {
4
+ locale: string;
5
+ widgetTypes: IWidgetTypeConfig[];
6
+ constructor();
7
+ }
@@ -0,0 +1,5 @@
1
+ import { IWidgetTypeConfig } from "./IWidgetTypeConfig";
2
+ export interface IDashboardModuleOptions {
3
+ locale: string;
4
+ widgetTypes: IWidgetTypeConfig[];
5
+ }
@@ -0,0 +1,8 @@
1
+ import { Type } from "@angular/core";
2
+ import { IWidgetComponent } from "../../components/widgets/IWidgetComponent";
3
+ import { IJaceWidgetModel } from "../widgets/IJaceWidgetModel";
4
+ export interface IWidgetTypeConfig {
5
+ name: string;
6
+ component: Type<IWidgetComponent>;
7
+ model: Type<IJaceWidgetModel>;
8
+ }
@@ -0,0 +1,31 @@
1
+ import { GridsterItem, GridsterItemComponentInterface } from "angular-gridster2";
2
+ import { JaceWidgetInstanceDetail } from "../externals/JaceWidgetInstanceDetail";
3
+ import { IJaceWidgetModel } from "./IJaceWidgetModel";
4
+ export declare abstract class BaseJaceWidgetModel implements IJaceWidgetModel {
5
+ name: string;
6
+ title?: string | undefined;
7
+ widgetType: string;
8
+ dataError: boolean;
9
+ options?: {
10
+ [key: string]: any;
11
+ } | undefined;
12
+ x: number;
13
+ y: number;
14
+ rows: number;
15
+ cols: number;
16
+ resizeEnabled?: boolean;
17
+ layerIndex?: number | undefined;
18
+ initCallback?: ((item: GridsterItem, itemComponent: GridsterItemComponentInterface) => void) | undefined;
19
+ dragEnabled?: boolean | undefined;
20
+ compactEnabled?: boolean | undefined;
21
+ maxItemRows?: number | undefined;
22
+ minItemRows?: number | undefined;
23
+ maxItemCols?: number | undefined;
24
+ minItemCols?: number | undefined;
25
+ minItemArea?: number | undefined;
26
+ maxItemArea?: number | undefined;
27
+ [propName: string]: any;
28
+ constructor();
29
+ configureFromInstanceDetails(details: JaceWidgetInstanceDetail): void;
30
+ abstract setData(data?: any): void;
31
+ }
@@ -0,0 +1,13 @@
1
+ import { GridsterItem } from 'angular-gridster2';
2
+ import { JaceWidgetInstanceDetail } from '../externals/JaceWidgetInstanceDetail';
3
+ export interface IJaceWidgetModel extends GridsterItem {
4
+ name: string;
5
+ title?: string;
6
+ widgetType: string;
7
+ dataError: boolean;
8
+ options?: {
9
+ [key: string]: any;
10
+ };
11
+ configureFromInstanceDetails(details: JaceWidgetInstanceDetail): void;
12
+ setData(data?: any): void;
13
+ }
@@ -0,0 +1,8 @@
1
+ import { BaseJaceWidgetModel } from "./BaseJaceWidgetModel";
2
+ export declare class JaceChartWidgetModel extends BaseJaceWidgetModel {
3
+ chartType: 'pie' | 'line' | 'vertical' | 'vertical-2d' | 'vertical-stacked';
4
+ legend: boolean;
5
+ chartData: any;
6
+ constructor();
7
+ setData(data?: any): void;
8
+ }
@@ -0,0 +1,10 @@
1
+ import { BaseJaceWidgetModel } from "./BaseJaceWidgetModel";
2
+ export declare class JaceCounterWidgetModel extends BaseJaceWidgetModel {
3
+ superText?: string;
4
+ subText?: string;
5
+ value: number;
6
+ icon?: string;
7
+ unit?: string;
8
+ constructor();
9
+ setData(data?: any): void;
10
+ }
@@ -0,0 +1,15 @@
1
+ import { BaseJaceWidgetModel } from "./BaseJaceWidgetModel";
2
+ export declare class JaceListItemWidget {
3
+ id?: any;
4
+ idParamName?: string;
5
+ description: string;
6
+ subline?: string;
7
+ classes?: string;
8
+ link?: string;
9
+ }
10
+ export declare class JaceListWidgetModel extends BaseJaceWidgetModel {
11
+ superText?: string;
12
+ items: JaceListItemWidget[];
13
+ constructor();
14
+ setData(data?: any): void;
15
+ }
@@ -0,0 +1,9 @@
1
+ import { BaseJaceWidgetModel } from "./BaseJaceWidgetModel";
2
+ export declare class JaceMultiprogWidgetModel extends BaseJaceWidgetModel {
3
+ resizeEnabled: boolean;
4
+ progressTitles: string[];
5
+ progressValues: number[];
6
+ circleProgress: boolean;
7
+ constructor();
8
+ setData(data?: any): void;
9
+ }
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from "@angular/core";
2
+ import { IDashboardModuleOptions } from "./models/options/IDashboardModuleOptions";
3
+ export declare const DSH_OPTIONS: InjectionToken<IDashboardModuleOptions>;