@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
+ {"__symbolic":"module","version":4,"metadata":{"DSH_LOCALE":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":6,"character":54},"arguments":["DSH_LOCALE"]},"DSH_BACKEND_URL":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":10,"character":59},"arguments":["DSH_BACKEND_URL"]},"DSH_DATA_SERVICE":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":15,"character":82},"arguments":["DSH_DATA_SERVICE"]},"DashboardFeatureModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":60,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"DashboardComponent"},{"__symbolic":"reference","name":"JaceListWidgetComponent"},{"__symbolic":"reference","name":"JaceCounterWidgetComponent"},{"__symbolic":"reference","name":"JaceChartWidgetComponent"},{"__symbolic":"reference","name":"JaceMultiprogWidgetComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":26,"character":2},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":27,"character":2},{"__symbolic":"reference","module":"angular-gridster2","name":"GridsterModule","line":28,"character":2},{"__symbolic":"reference","module":"@angular/material/progress-bar","name":"MatProgressBarModule","line":29,"character":2},{"__symbolic":"reference","module":"@esfaenza/forms-and-validations","name":"FormsAndValidationsModule","line":30,"character":2},{"__symbolic":"reference","module":"@esfaenza/es-charts","name":"EsChartsModule","line":31,"character":2},{"__symbolic":"reference","module":"@esfaenza/httpservice","name":"HttpserviceModule","line":32,"character":2},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ng-circle-progress","name":"NgCircleProgressModule","line":40,"character":2},"member":"forRoot"},"arguments":[{"radius":50,"outerStrokeWidth":8,"innerStrokeWidth":4,"outerStrokeColor":"#78C000","innerStrokeColor":"#C7E596","animationDuration":300}]}],"exports":[{"__symbolic":"reference","name":"DashboardComponent"},{"__symbolic":"reference","name":"JaceListWidgetComponent"},{"__symbolic":"reference","name":"JaceCounterWidgetComponent"},{"__symbolic":"reference","name":"JaceChartWidgetComponent"},{"__symbolic":"reference","name":"JaceMultiprogWidgetComponent"}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":94,"character":57}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":94,"character":69},"arguments":[{"__symbolic":"reference","name":"ɵb"}]}]],"parameters":[{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"IDashboardModuleOptions"}]}]}]},"statics":{"forRoot":{"__symbolic":"function","parameters":["options"],"value":{"ngModule":{"__symbolic":"reference","name":"DashboardFeatureModule"},"providers":[{"provide":{"__symbolic":"reference","name":"ɵb"},"multi":true,"useValue":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"DefaultDashboardModuleOptions"}}},{"provide":{"__symbolic":"reference","name":"ɵb"},"multi":true,"useValue":{"__symbolic":"reference","name":"options"}},{"provide":{"__symbolic":"reference","name":"DSH_DATA_SERVICE"},"useClass":{"__symbolic":"reference","name":"ɵd"}}]}},"forChild":{"__symbolic":"function","parameters":["options"],"value":{"ngModule":{"__symbolic":"reference","name":"DashboardFeatureModule"},"providers":[{"provide":{"__symbolic":"reference","name":"ɵb"},"multi":true,"useValue":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"DefaultDashboardModuleOptions"}}},{"provide":{"__symbolic":"reference","name":"ɵb"},"multi":true,"useValue":{"__symbolic":"reference","name":"options"}}]}}}},"IWidgetComponent":{"__symbolic":"interface"},"BaseWidgetComponent":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":10,"character":2}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":22,"character":17},"arguments":[{"__symbolic":"reference","name":"DSH_DATA_SERVICE"}]}]],"parameters":[{"__symbolic":"reference","name":"IDashboardFeatureDataService"}]}],"setWidgetModel":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"refreshData":[{"__symbolic":"method"}],"prepareGetDataParameters":[{"__symbolic":"method"}],"removeWidget":[{"__symbolic":"method"}],"configureWidget":[{"__symbolic":"method"}]}},"IJaceWidgetModel":{"__symbolic":"interface"},"BaseJaceWidgetModel":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"configureFromInstanceDetails":[{"__symbolic":"method"}],"setData":[{"__symbolic":"method"}]}},"IWidgetTypeConfig":{"__symbolic":"interface"},"IDashboardModuleOptions":{"__symbolic":"interface"},"DefaultDashboardModuleOptions":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}]}},"IDashboardFeatureDataService":{"__symbolic":"interface"},"DashboardComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":21,"character":1},"arguments":[{"selector":"dashboard","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":23,"character":19},"member":"None"},"providers":[{"provide":{"__symbolic":"reference","module":"@esfaenza/localizations","name":"LocalizationService","line":25,"character":19},"useClass":{"__symbolic":"reference","name":"ɵa"}}],"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 [JsDates]=\"true\" [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-container *ngFor=\"let item of widgetDefinitions\"> -->\r\n <ng-template #grid_item></ng-template>\r\n <!-- </ng-container> -->\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:1px solid #ddd;border-radius:5px;min-width:204px}.jace-dsh-widget-header{margin:0 .5rem;display:flex;flex-flow:row;justify-content:left;align-items:center}.jace-dsh-widget-title{padding:.5rem .2rem .3rem;border-bottom:1px solid #ddd;text-transform:uppercase;font-size:.8rem}.jace-dsh-widget-body{margin:0 .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:0;right:0;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}"]}]}],"members":{"Configuration":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":5}}]}],"gridItemRefs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":46,"character":5},"arguments":["grid_item",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":46,"character":39}}]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":49,"character":9},"arguments":[{"__symbolic":"reference","name":"DSH_DATA_SERVICE"}]}],null,null,null,null,null],"parameters":[{"__symbolic":"reference","name":"IDashboardFeatureDataService"},{"__symbolic":"reference","module":"@esfaenza/extensions","name":"InterComService","line":50,"character":26},{"__symbolic":"reference","module":"@esfaenza/localizations","name":"LocalizationService","line":51,"character":19},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":52,"character":23},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":54,"character":22}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"clearTrackedSubscriptions":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"reloadData":[{"__symbolic":"method"}],"removeItem":[{"__symbolic":"method"}],"saveDashboard":[{"__symbolic":"method"}],"renderLayout":[{"__symbolic":"method"}],"addItem":[{"__symbolic":"method"}]}},"JaceChartWidgetComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"jace-dsh-chart","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\r\n <div class=\"jace-dsh-chart-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 <!-- [Type]=\"Widget.chartType\" -->\r\n <h6 *ngIf=\"model?.queryerror\" class=\"fg-disabled\" style=\"margin-top: 0.5rem;\"><span\r\n class=\"fa fa-times-circle-o\"></span>&nbsp;&nbsp;Error retrieving data</h6>\r\n <es-chart [Legend]=\"model.legend\" [Theme]=\"'dataviz'\" [Type]=\"model.chartType\" [Data]=\"model.chartData\"\r\n [name]=\"chartName\"></es-chart>\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":[""]}]}],"members":{"DashboardDate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":5}}]}],"OnRemove":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":20,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":27,"character":17},"arguments":[{"__symbolic":"reference","name":"DSH_DATA_SERVICE"}]}]],"parameters":[{"__symbolic":"reference","name":"IDashboardFeatureDataService"}]}],"setWidgetModel":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"refreshData":[{"__symbolic":"method"}],"removeWidget":[{"__symbolic":"method"}],"configure":[{"__symbolic":"method"}]}},"JaceCounterWidgetComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"jace-dsh-counter","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":13,"character":21},"member":"OnPush"},"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}"]}]}],"members":{"DashboardDate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":5}}]}],"OnRemove":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":21,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":27,"character":17},"arguments":[{"__symbolic":"reference","name":"DSH_DATA_SERVICE"}]}]],"parameters":[{"__symbolic":"reference","name":"IDashboardFeatureDataService"}]}],"setWidgetModel":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"refreshData":[{"__symbolic":"method"}],"removeWidget":[{"__symbolic":"method"}],"configure":[{"__symbolic":"method"}]}},"JaceListWidgetComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"jace-dsh-list","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.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}"]}]}],"members":{"DashboardDate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":5}}]}],"OnRemove":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":19,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":25,"character":17},"arguments":[{"__symbolic":"reference","name":"DSH_DATA_SERVICE"}]}],null],"parameters":[{"__symbolic":"reference","name":"IDashboardFeatureDataService"},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":25,"character":107}]}],"setWidgetModel":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"refreshData":[{"__symbolic":"method"}],"removeWidget":[{"__symbolic":"method"}],"itemClicked":[{"__symbolic":"method"}],"configure":[{"__symbolic":"method"}]}},"JaceMultiprogWidgetComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"jace-dsh-multiprog","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 [percent]=\"model.progressValues[i]\" [showSubtitle]=false [radius]=\"36\"\r\n [outerStrokeWidth]=\"4\" [innerStrokeWidth]=\"2\" [outerStrokeColor]=\"'#7489AA'\"\r\n [innerStrokeColor]=\"'#EFECCA'\" [animation]=\"true\" [animationDuration]=\"300\" [showTitle]=\"true\"\r\n *ngIf=\"model.circleProgress\"></circle-progress>\r\n <!-- [title] = \"model.progressValues[i]|number||''\" -->\r\n <mat-progress-bar [value]=\"model.progressValues[i]\" [mode]=\"'determinate'\" *ngIf=\"!model.circleProgress\">\r\n </mat-progress-bar>\r\n <!-- <span>{{item}}</span>:<span>{{model.progressValues[i]}}</span> -->\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}"]}]}],"members":{"DashboardDate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":5}}]}],"OnRemove":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":21,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":27,"character":17},"arguments":[{"__symbolic":"reference","name":"DSH_DATA_SERVICE"}]}],null],"parameters":[{"__symbolic":"reference","name":"IDashboardFeatureDataService"},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":27,"character":107}]}],"setWidgetModel":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"refreshData":[{"__symbolic":"method"}],"removeWidget":[{"__symbolic":"method"}],"configure":[{"__symbolic":"method"}]}},"JaceWidgetTypes":{"CHART":"CHART","COUNTER":"COUNTER","LIST":"LIST","MULTIPROGRESS":"MULTIPROGRESS"},"ɵa":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@esfaenza/localizations","name":"LocalizationService","line":8,"character":34},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":9,"character":17},"arguments":[{"__symbolic":"reference","name":"ɵb"}]}]],"parameters":[{"__symbolic":"reference","name":"IDashboardModuleOptions"}]}]}},"ɵb":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":4,"character":72},"arguments":["DSH_MODULE_OPTIONS"]},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":14,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":22,"character":50}]}],"addOption":[{"__symbolic":"method"}],"resolveComponent":[{"__symbolic":"method"}],"resolveDefinition":[{"__symbolic":"method"}],"createInstance":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":11,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":14,"character":41},"arguments":[{"__symbolic":"reference","name":"DSH_BACKEND_URL"}]}]],"parameters":[{"__symbolic":"reference","module":"@esfaenza/httpservice","name":"HTTPService","line":14,"character":28},{"__symbolic":"reference","name":"string"}]}],"GetUserDashboard":[{"__symbolic":"method"}],"SaveUserDashboard":[{"__symbolic":"method"}],"GetWidgetData":[{"__symbolic":"method"}]}}},"origins":{"DSH_LOCALE":"./lib/public-injection-tokens","DSH_BACKEND_URL":"./lib/public-injection-tokens","DSH_DATA_SERVICE":"./lib/public-injection-tokens","DashboardFeatureModule":"./lib/dashboard-feature.module","IWidgetComponent":"./lib/components/widgets/IWidgetComponent","BaseWidgetComponent":"./lib/components/widgets/BaseWidgetComponent","IJaceWidgetModel":"./lib/models/widgets/IJaceWidgetModel","BaseJaceWidgetModel":"./lib/models/widgets/BaseJaceWidgetModel","IWidgetTypeConfig":"./lib/models/options/IWidgetTypeConfig","IDashboardModuleOptions":"./lib/models/options/IDashboardModuleOptions","DefaultDashboardModuleOptions":"./lib/models/options/DefaultDashboardModuleOptions","IDashboardFeatureDataService":"./lib/services/IDashboardFeatureDataService","DashboardComponent":"./lib/components/dashboard/dashboard.component","JaceChartWidgetComponent":"./lib/components/widgets/chart/jace-dsh-chart.component","JaceCounterWidgetComponent":"./lib/components/widgets/counter/jace-dsh-counter.component","JaceListWidgetComponent":"./lib/components/widgets/list/jace-dsh-list.component","JaceMultiprogWidgetComponent":"./lib/components/widgets/multiprog/jace-dsh-multiprog.component","JaceWidgetTypes":"./lib/components/widgets/JaceWidgetTypes","ɵa":"./lib/components/dashboard/dashboard.component.loc","ɵb":"./lib/private-injection-tokens","ɵc":"./lib/services/DashboardWidgetFactory","ɵd":"./lib/services/dashboard-feature.service"},"importAs":"@esfaenza/dashboard-feature"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ export { DashboardLoc as ɵa } from './lib/components/dashboard/dashboard.component.loc';
6
+ export { DSH_OPTIONS as ɵb } from './lib/private-injection-tokens';
7
+ export { DashboardWidgetFactory as ɵc } from './lib/services/DashboardWidgetFactory';
8
+ export { DashboardFeatureAPIDataService as ɵd } from './lib/services/dashboard-feature.service';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNmYWVuemEtZGFzaGJvYXJkLWZlYXR1cmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQtZmVhdHVyZS9zcmMvZXNmYWVuemEtZGFzaGJvYXJkLWZlYXR1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQztBQUU3QixPQUFPLEVBQUMsWUFBWSxJQUFJLEVBQUUsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQ3RGLE9BQU8sRUFBQyxXQUFXLElBQUksRUFBRSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ25GLE9BQU8sRUFBQyw4QkFBOEIsSUFBSSxFQUFFLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcblxuZXhwb3J0IHtEYXNoYm9hcmRMb2MgYXMgybVhfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Rhc2hib2FyZC9kYXNoYm9hcmQuY29tcG9uZW50LmxvYyc7XG5leHBvcnQge0RTSF9PUFRJT05TIGFzIMm1Yn0gZnJvbSAnLi9saWIvcHJpdmF0ZS1pbmplY3Rpb24tdG9rZW5zJztcbmV4cG9ydCB7RGFzaGJvYXJkV2lkZ2V0RmFjdG9yeSBhcyDJtWN9IGZyb20gJy4vbGliL3NlcnZpY2VzL0Rhc2hib2FyZFdpZGdldEZhY3RvcnknO1xuZXhwb3J0IHtEYXNoYm9hcmRGZWF0dXJlQVBJRGF0YVNlcnZpY2UgYXMgybVkfSBmcm9tICcuL2xpYi9zZXJ2aWNlcy9kYXNoYm9hcmQtZmVhdHVyZS5zZXJ2aWNlJzsiXX0=
@@ -0,0 +1,157 @@
1
+ import { ChangeDetectorRef, Component, Inject, Input, ViewChildren, ViewContainerRef, ViewEncapsulation } from "@angular/core";
2
+ import { InboundMessageTypes, InterComService } from "@esfaenza/extensions";
3
+ import { LocalizationService } from "@esfaenza/localizations";
4
+ import { DashboardLoc } from "./dashboard.component.loc";
5
+ import { ActivatedRoute } from "@angular/router";
6
+ import { SaveJaceDashboardLayoutDTO } from "../../models/externals/SaveJaceDashboardLayoutDTO";
7
+ import { JaceWidgetInstanceDetail } from "../../models/externals/JaceWidgetInstanceDetail";
8
+ import { DashboardWidgetFactory } from "../../services/DashboardWidgetFactory";
9
+ import { DSH_DATA_SERVICE } from "../../public-injection-tokens";
10
+ /**
11
+ * Componente di base che rappresenta una dashboard.
12
+ * Utilizza Gridster2 per il layout delle widget [Gridster2](https://tiberiuzuld.github.io/angular-gridster2/)
13
+ */
14
+ export class DashboardComponent {
15
+ constructor(dshService, intercom, lc, route, cmpFactory, cdr) {
16
+ this.dshService = dshService;
17
+ this.intercom = intercom;
18
+ this.lc = lc;
19
+ this.route = route;
20
+ this.cmpFactory = cmpFactory;
21
+ this.cdr = cdr;
22
+ this.dashboardDate = new Date();
23
+ this.widgetDefinitions = [];
24
+ this.trackedSubscriptions = [];
25
+ this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data["title"]) });
26
+ }
27
+ ngOnInit() {
28
+ }
29
+ ngAfterViewInit() {
30
+ //qui this.gridItemRefs è 'riempito'
31
+ // sottoscrivo changes che sparerà tutte le volte che ngFor si aggiorna (ovvero quando cambia dashboard)
32
+ this.changesSub = this.gridItemRefs.changes.subscribe((comps) => {
33
+ this.renderLayout(comps);
34
+ });
35
+ //prima volta
36
+ /* if(this.Configuration)
37
+ this.reloadData(); */
38
+ setTimeout(() => this.reloadData(), 500);
39
+ }
40
+ ngOnDestroy() {
41
+ //unsubscribe dalle changes dei viewref
42
+ if (this.changesSub)
43
+ this.changesSub.unsubscribe();
44
+ this.clearTrackedSubscriptions();
45
+ }
46
+ clearTrackedSubscriptions() {
47
+ if (this.trackedSubscriptions) {
48
+ for (let index = 0; index < this.trackedSubscriptions.length; index++) {
49
+ const element = this.trackedSubscriptions[index];
50
+ element.unsubscribe();
51
+ }
52
+ this.trackedSubscriptions = [];
53
+ }
54
+ }
55
+ ngOnChanges(changes) {
56
+ if (changes.Configuration) {
57
+ //appena ho configuration
58
+ }
59
+ }
60
+ reloadData() {
61
+ this.dshService.GetUserDashboard(this.Configuration.accountId, this.Configuration.dashboardName).subscribe(c => {
62
+ this.dashboardLayout = c;
63
+ this.widgetDefinitions = c.widgets.map(i => {
64
+ return this.cmpFactory.resolveDefinition(i.type, i);
65
+ });
66
+ });
67
+ }
68
+ removeItem(widgetName) {
69
+ if (!this.dashboardLayout)
70
+ return;
71
+ let idx = this.dashboardLayout.widgets.findIndex(s => s.name == widgetName);
72
+ this.widgetDefinitions.splice(idx, 1);
73
+ }
74
+ saveDashboard() {
75
+ if (!this.dashboardLayout)
76
+ return;
77
+ const dto = new SaveJaceDashboardLayoutDTO();
78
+ dto.widgets = [];
79
+ for (let index = 0; index < this.widgetDefinitions.length; index++) {
80
+ const w = this.widgetDefinitions[index];
81
+ if (w == null)
82
+ continue;
83
+ let v = new JaceWidgetInstanceDetail();
84
+ v.id = w.id;
85
+ v.name = w.name;
86
+ v.x = w.x;
87
+ v.y = w.y;
88
+ v.cols = w.cols;
89
+ v.rows = w.rows;
90
+ v.compactenabled = w.compactEnabled;
91
+ v.dragenabled = w.dragEnabled;
92
+ v.resizeenabled = w.resizeEnabled;
93
+ v.type = w.widgetType;
94
+ v.title = w.title;
95
+ v.options = w.options;
96
+ dto.widgets.push(v);
97
+ }
98
+ this.dshService.SaveUserDashboard(dto).subscribe(res => {
99
+ if (res.success)
100
+ console.log('Dashboard saved');
101
+ });
102
+ }
103
+ renderLayout(comps) {
104
+ this.clearTrackedSubscriptions();
105
+ comps.map((host, index) => {
106
+ const vcr = host;
107
+ vcr.clear();
108
+ const widgetData = this.widgetDefinitions[index];
109
+ if (!widgetData || !widgetData.widgetType)
110
+ return;
111
+ let componentRef;
112
+ componentRef = this.cmpFactory.resolveComponent(widgetData === null || widgetData === void 0 ? void 0 : widgetData.widgetType, vcr);
113
+ if (!componentRef) {
114
+ console.log(`Tipo widget sconosciuto ${widgetData.widgetType}`);
115
+ return;
116
+ }
117
+ //setta l'input della data
118
+ if (this.Configuration.showDateInput)
119
+ componentRef.instance.DashboardDate = this.dashboardDate;
120
+ //setta il modello
121
+ componentRef.instance.setWidgetModel(widgetData);
122
+ //setta la callback per OnRemove
123
+ let s = componentRef.instance.OnRemove.subscribe(name => this.removeItem(name));
124
+ this.trackedSubscriptions.push(s);
125
+ //componentRef.changeDetectorRef.markForCheck();
126
+ //componentRef.changeDetectorRef.detectChanges();
127
+ });
128
+ this.cdr.detectChanges();
129
+ }
130
+ addItem() {
131
+ //this.dashboard.push({});
132
+ }
133
+ }
134
+ DashboardComponent.decorators = [
135
+ { type: Component, args: [{
136
+ selector: 'dashboard',
137
+ encapsulation: ViewEncapsulation.None,
138
+ providers: [
139
+ { provide: LocalizationService, useClass: DashboardLoc }
140
+ ],
141
+ 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 [JsDates]=\"true\" [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-container *ngFor=\"let item of widgetDefinitions\"> -->\r\n <ng-template #grid_item></ng-template>\r\n <!-- </ng-container> -->\r\n </gridster-item>\r\n </gridster>\r\n\r\n</ng-container>",
142
+ 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:1px solid #ddd;border-radius:5px;min-width:204px}.jace-dsh-widget-header{margin:0 .5rem;display:flex;flex-flow:row;justify-content:left;align-items:center}.jace-dsh-widget-title{padding:.5rem .2rem .3rem;border-bottom:1px solid #ddd;text-transform:uppercase;font-size:.8rem}.jace-dsh-widget-body{margin:0 .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:0;right:0;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}"]
143
+ },] }
144
+ ];
145
+ DashboardComponent.ctorParameters = () => [
146
+ { type: undefined, decorators: [{ type: Inject, args: [DSH_DATA_SERVICE,] }] },
147
+ { type: InterComService },
148
+ { type: LocalizationService },
149
+ { type: ActivatedRoute },
150
+ { type: DashboardWidgetFactory },
151
+ { type: ChangeDetectorRef }
152
+ ];
153
+ DashboardComponent.propDecorators = {
154
+ Configuration: [{ type: Input }],
155
+ gridItemRefs: [{ type: ViewChildren, args: ['grid_item', { read: ViewContainerRef },] }]
156
+ };
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC1mZWF0dXJlL3NyYy9saWIvY29tcG9uZW50cy9kYXNoYm9hcmQvZGFzaGJvYXJkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTRELGlCQUFpQixFQUFFLFNBQVMsRUFBZ0IsTUFBTSxFQUFFLEtBQUssRUFBMEQsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9QLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRTNGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRy9FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBR2pFOzs7R0FHRztBQVVILE1BQU0sT0FBTyxrQkFBa0I7SUFrQjNCLFlBQ3NDLFVBQXdDLEVBQ2xFLFFBQXlCLEVBQzFCLEVBQXVCLEVBQ3RCLEtBQXFCLEVBQ3JCLFVBQWtDLEVBQ2xDLEdBQXVCO1FBTEcsZUFBVSxHQUFWLFVBQVUsQ0FBOEI7UUFDbEUsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDMUIsT0FBRSxHQUFGLEVBQUUsQ0FBcUI7UUFDdEIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsZUFB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VSxDQUFDLENBQUM7WUFFakQsZ0NBQWdDO1lBQ2hDLElBQUksQ0FBQyxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUEsRUFBRSxDQUFBLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUM5RSxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRWxDLGdEQUFnRDtZQUVoRCxpREFBaUQ7UUFDckQsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFHRCxPQUFPO1FBRUgsMEJBQTBCO0lBQzlCLENBQUM7OztZQXZMSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxTQUFTLEVBQUU7b0JBQ1AsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRTtpQkFDM0Q7Z0JBQ0QsNjBDQUF5Qzs7YUFFNUM7Ozs0Q0FvQlEsTUFBTSxTQUFDLGdCQUFnQjtZQTlDRixlQUFlO1lBRXBDLG1CQUFtQjtZQUVuQixjQUFjO1lBSWQsc0JBQXNCO1lBWG9DLGlCQUFpQjs7OzRCQW1DL0UsS0FBSzsyQkFXTCxZQUFZLFNBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3Q2hlY2tlZCwgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIENvbXBvbmVudFJlZiwgSW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgUXVlcnlMaXN0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGRyZW4sIFZpZXdDb250YWluZXJSZWYsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSmFjZURhc2hib2FyZENvbmZpZyB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29uZmlnL0phY2VEYXNoYm9hcmRDb25maWdcIjtcclxuaW1wb3J0IHsgSUphY2VXaWRnZXRNb2RlbCB9IGZyb20gXCIuLi8uLi9tb2RlbHMvd2lkZ2V0cy9JSmFjZVdpZGdldE1vZGVsXCI7XHJcbmltcG9ydCB7IEluYm91bmRNZXNzYWdlVHlwZXMsIEludGVyQ29tU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvZXh0ZW5zaW9uc1wiO1xyXG5cclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBEYXNoYm9hcmRMb2MgfSBmcm9tIFwiLi9kYXNoYm9hcmQuY29tcG9uZW50LmxvY1wiO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgU2F2ZUphY2VEYXNoYm9hcmRMYXlvdXREVE8gfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2V4dGVybmFscy9TYXZlSmFjZURhc2hib2FyZExheW91dERUT1wiO1xyXG5pbXBvcnQgeyBKYWNlV2lkZ2V0SW5zdGFuY2VEZXRhaWwgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2V4dGVybmFscy9KYWNlV2lkZ2V0SW5zdGFuY2VEZXRhaWxcIjtcclxuaW1wb3J0IHsgSmFjZURhc2hib2FyZExheW91dERldGFpbCB9IGZyb20gXCIuLi8uLi9tb2RlbHMvZXh0ZXJuYWxzL0phY2VEYXNoYm9hcmRMYXlvdXREZXRhaWxcIjtcclxuaW1wb3J0IHsgRGFzaGJvYXJkV2lkZ2V0RmFjdG9yeSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9EYXNoYm9hcmRXaWRnZXRGYWN0b3J5XCI7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IElXaWRnZXRDb21wb25lbnQgfSBmcm9tIFwiLi4vd2lkZ2V0cy9JV2lkZ2V0Q29tcG9uZW50XCI7XHJcbmltcG9ydCB7IERTSF9EQVRBX1NFUlZJQ0UgfSBmcm9tIFwiLi4vLi4vcHVibGljLWluamVjdGlvbi10b2tlbnNcIjtcclxuaW1wb3J0IHsgSURhc2hib2FyZEZlYXR1cmVEYXRhU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9JRGFzaGJvYXJkRmVhdHVyZURhdGFTZXJ2aWNlXCI7XHJcblxyXG4vKipcclxuICogQ29tcG9uZW50ZSBkaSBiYXNlIGNoZSByYXBwcmVzZW50YSB1bmEgZGFzaGJvYXJkLlxyXG4gKiBVdGlsaXp6YSBHcmlkc3RlcjIgcGVyIGlsIGxheW91dCBkZWxsZSB3aWRnZXQgW0dyaWRzdGVyMl0oaHR0cHM6Ly90aWJlcml1enVsZC5naXRodWIuaW8vYW5ndWxhci1ncmlkc3RlcjIvKVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2Rhc2hib2FyZCcsXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgeyBwcm92aWRlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCB1c2VDbGFzczogRGFzaGJvYXJkTG9jIH1cclxuICAgIF0sXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGFzaGJvYXJkLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2Rhc2hib2FyZC5jb21wb25lbnQuY3NzJ10gICAgXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsICBPbkRlc3Ryb3ksIE9uQ2hhbmdlc3tcclxuICAgIC8qKlxyXG4gICAgICogQ29uZmlndXJhemlvbmUgZGkgcXVlc3RhIGRhc2hib2FyZC5cclxuICAgICAqIENvbnRpZW5lIGFuY2hlIGxlIGNvbmZpZ3VyYXppb25pIGRpIGxheW91dCBkaSBHcmlkc3RlcjJcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgQ29uZmlndXJhdGlvbiE6IEphY2VEYXNoYm9hcmRDb25maWc7XHJcblxyXG4gICAgcHVibGljIGRhc2hib2FyZERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgcHVibGljIGRhc2hib2FyZExheW91dD8gOiBKYWNlRGFzaGJvYXJkTGF5b3V0RGV0YWlsO1xyXG5cclxuICAgIHdpZGdldERlZmluaXRpb25zIDogKElKYWNlV2lkZ2V0TW9kZWx8bnVsbClbXT1bXTtcclxuXHJcbiAgICBjaGFuZ2VzU3ViPzogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAgIHRyYWNrZWRTdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXT1bXTtcclxuXHJcbiAgICBAVmlld0NoaWxkcmVuKCdncmlkX2l0ZW0nLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgZ3JpZEl0ZW1SZWZzITogUXVlcnlMaXN0PFZpZXdDb250YWluZXJSZWY+O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCBcclxuICAgICAgICBASW5qZWN0KERTSF9EQVRBX1NFUlZJQ0UpIHByaXZhdGUgZHNoU2VydmljZTogSURhc2hib2FyZEZlYXR1cmVEYXRhU2VydmljZSwgXHJcbiAgICAgICAgcHJpdmF0ZSBpbnRlcmNvbTogSW50ZXJDb21TZXJ2aWNlLFxyXG4gICAgICAgIHB1YmxpYyBsYzogTG9jYWxpemF0aW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICBwcml2YXRlIGNtcEZhY3Rvcnk6IERhc2hib2FyZFdpZGdldEZhY3RvcnksXHJcbiAgICAgICAgcHJpdmF0ZSBjZHIgOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICAgICAgICkge1xyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMuaW50ZXJjb20uc2VuZChJbmJvdW5kTWVzc2FnZVR5cGVzLk5hdmlnYXRpb24sIHsgc3ViOiBmYWxzZSwgcm91dGVUaXRsZTogdGhpcy5sYy5sb2ModGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhW1widGl0bGVcIl0pIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIFxyXG5cclxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcblxyXG4gICAgICAgIC8vcXVpIHRoaXMuZ3JpZEl0ZW1SZWZzIMOoICdyaWVtcGl0bydcclxuICAgICAgICAvLyBzb3R0b3Njcml2byBjaGFuZ2VzIGNoZSBzcGFyZXLDoCB0dXR0ZSBsZSB2b2x0ZSBjaGUgbmdGb3Igc2kgYWdnaW9ybmEgKG92dmVybyBxdWFuZG8gY2FtYmlhIGRhc2hib2FyZClcclxuICAgICAgICB0aGlzLmNoYW5nZXNTdWIgPSB0aGlzLmdyaWRJdGVtUmVmcy5jaGFuZ2VzLnN1YnNjcmliZSgoY29tcHM6IFF1ZXJ5TGlzdDxWaWV3Q29udGFpbmVyUmVmPikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckxheW91dChjb21wcyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy9wcmltYSB2b2x0YVxyXG4gICAgICAgIC8qIGlmKHRoaXMuQ29uZmlndXJhdGlvbilcclxuICAgICAgICAgICAgdGhpcy5yZWxvYWREYXRhKCk7ICovXHJcblxyXG4gICAgICAgIHNldFRpbWVvdXQoKCk9PnRoaXMucmVsb2FkRGF0YSgpLDUwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgXHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgLy91bnN1YnNjcmliZSBkYWxsZSBjaGFuZ2VzIGRlaSB2aWV3cmVmXHJcbiAgICAgICAgaWYodGhpcy5jaGFuZ2VzU3ViKVxyXG4gICAgICAgICAgICB0aGlzLmNoYW5nZXNTdWIudW5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICAgICAgdGhpcy5jbGVhclRyYWNrZWRTdWJzY3JpcHRpb25zKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xlYXJUcmFja2VkU3Vic2NyaXB0aW9ucygpe1xyXG4gICAgICAgIGlmKHRoaXMudHJhY2tlZFN1YnNjcmlwdGlvbnMpe1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy50cmFja2VkU3Vic2NyaXB0aW9ucy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLnRyYWNrZWRTdWJzY3JpcHRpb25zW2luZGV4XTtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQudW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnRyYWNrZWRTdWJzY3JpcHRpb25zPVtdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYoY2hhbmdlcy5Db25maWd1cmF0aW9uKXtcclxuXHJcbiAgICAgICAgICAgIC8vYXBwZW5hIGhvIGNvbmZpZ3VyYXRpb25cclxuICAgICAgICAgICAgXHJcblxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZWxvYWREYXRhKCl7XHJcbiAgICAgICAgdGhpcy5kc2hTZXJ2aWNlLkdldFVzZXJEYXNoYm9hcmQodGhpcy5Db25maWd1cmF0aW9uLmFjY291bnRJZCx0aGlzLkNvbmZpZ3VyYXRpb24uZGFzaGJvYXJkTmFtZSkuc3Vic2NyaWJlKGMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmRhc2hib2FyZExheW91dCA9IGM7XHJcbiAgICAgICAgICAgIHRoaXMud2lkZ2V0RGVmaW5pdGlvbnMgPWMud2lkZ2V0cy5tYXAoaSA9PntcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNtcEZhY3RvcnkucmVzb2x2ZURlZmluaXRpb24oaS50eXBlLGkpXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICB9KTsgXHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlSXRlbSh3aWRnZXROYW1lOnN0cmluZykge1xyXG4gICAgICAgIGlmKCF0aGlzLmRhc2hib2FyZExheW91dClcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIGxldCBpZHggPXRoaXMuZGFzaGJvYXJkTGF5b3V0LndpZGdldHMuZmluZEluZGV4KHM9PnMubmFtZT09d2lkZ2V0TmFtZSk7XHJcbiAgICAgICAgdGhpcy53aWRnZXREZWZpbml0aW9ucy5zcGxpY2UoaWR4LCAxKTtcclxuICAgIH1cclxuXHJcbiAgICBzYXZlRGFzaGJvYXJkKCl7XHJcbiAgICAgICAgaWYoIXRoaXMuZGFzaGJvYXJkTGF5b3V0KVxyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgICBjb25zdCBkdG8gPSBuZXcgU2F2ZUphY2VEYXNoYm9hcmRMYXlvdXREVE8oKTtcclxuICAgICAgICBcclxuICAgICAgICBkdG8ud2lkZ2V0cyA9IFtdO1xyXG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLndpZGdldERlZmluaXRpb25zLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgICAgICBjb25zdCB3OiBJSmFjZVdpZGdldE1vZGVsfG51bGwgPSB0aGlzLndpZGdldERlZmluaXRpb25zW2luZGV4XTtcclxuICAgICAgICAgICAgaWYodz09bnVsbClcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBsZXQgdiA9IG5ldyBKYWNlV2lkZ2V0SW5zdGFuY2VEZXRhaWwoKTtcclxuICAgICAgICAgICAgdi5pZCA9IHcuaWQ7XHJcbiAgICAgICAgICAgIHYubmFtZSA9IHcubmFtZTtcclxuICAgICAgICAgICAgdi54ID0gdy54O1xyXG4gICAgICAgICAgICB2LnkgPSB3Lnk7XHJcbiAgICAgICAgICAgIHYuY29scyA9IHcuY29scztcclxuICAgICAgICAgICAgdi5yb3dzID0gdy5yb3dzO1xyXG4gICAgICAgICAgICB2LmNvbXBhY3RlbmFibGVkID0gdy5jb21wYWN0RW5hYmxlZDtcclxuICAgICAgICAgICAgdi5kcmFnZW5hYmxlZCA9IHcuZHJhZ0VuYWJsZWQ7XHJcbiAgICAgICAgICAgIHYucmVzaXplZW5hYmxlZCA9IHcucmVzaXplRW5hYmxlZDtcclxuICAgICAgICAgICAgdi50eXBlID0gdy53aWRnZXRUeXBlO1xyXG4gICAgICAgICAgICB2LnRpdGxlID0gdy50aXRsZTtcclxuICAgICAgICAgICAgdi5vcHRpb25zID0gdy5vcHRpb25zO1xyXG4gICAgICAgICAgICBkdG8ud2lkZ2V0cy5wdXNoKHYpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmRzaFNlcnZpY2UuU2F2ZVVzZXJEYXNoYm9hcmQoZHRvKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgICAgaWYocmVzLnN1Y2Nlc3MpXHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnRGFzaGJvYXJkIHNhdmVkJyk7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXJMYXlvdXQoY29tcHM6IFF1ZXJ5TGlzdDxWaWV3Q29udGFpbmVyUmVmPil7XHJcblxyXG4gICAgICAgIHRoaXMuY2xlYXJUcmFja2VkU3Vic2NyaXB0aW9ucygpO1xyXG5cclxuICAgICAgICBjb21wcy5tYXAoKGhvc3QsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHZjciA9IGhvc3Q7XHJcbiAgICAgICAgICAgIHZjci5jbGVhcigpO1xyXG4gICAgICAgICAgICBjb25zdCB3aWRnZXREYXRhID0gdGhpcy53aWRnZXREZWZpbml0aW9uc1tpbmRleF07XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBpZighd2lkZ2V0RGF0YSB8fCAhd2lkZ2V0RGF0YS53aWRnZXRUeXBlKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuXHJcblxyXG4gICAgICAgICAgICBsZXQgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8SVdpZGdldENvbXBvbmVudD58bnVsbDtcclxuICAgICAgICAgICAgY29tcG9uZW50UmVmID0gdGhpcy5jbXBGYWN0b3J5LnJlc29sdmVDb21wb25lbnQod2lkZ2V0RGF0YT8ud2lkZ2V0VHlwZSx2Y3IpO1xyXG5cclxuICAgICAgICAgICAgaWYoIWNvbXBvbmVudFJlZilcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgVGlwbyB3aWRnZXQgc2Nvbm9zY2l1dG8gJHt3aWRnZXREYXRhLndpZGdldFR5cGV9YCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIC8vc2V0dGEgbCdpbnB1dCBkZWxsYSBkYXRhXHJcbiAgICAgICAgICAgIGlmKHRoaXMuQ29uZmlndXJhdGlvbi5zaG93RGF0ZUlucHV0KVxyXG4gICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuRGFzaGJvYXJkRGF0ZSA9IHRoaXMuZGFzaGJvYXJkRGF0ZTtcclxuXHJcbiAgICAgICAgICAgIC8vc2V0dGEgaWwgbW9kZWxsb1xyXG4gICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2Uuc2V0V2lkZ2V0TW9kZWwod2lkZ2V0RGF0YSk7XHJcblxyXG4gICAgICAgICAgICAvL3NldHRhIGxhIGNhbGxiYWNrIHBlciBPblJlbW92ZVxyXG4gICAgICAgICAgICBsZXQgcyA9IGNvbXBvbmVudFJlZi5pbnN0YW5jZS5PblJlbW92ZS5zdWJzY3JpYmUobmFtZT0+dGhpcy5yZW1vdmVJdGVtKG5hbWUpKTtcclxuICAgICAgICAgICAgdGhpcy50cmFja2VkU3Vic2NyaXB0aW9ucy5wdXNoKHMpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgLy9jb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcblxyXG4gICAgICAgICAgICAvL2NvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBhZGRJdGVtKCkge1xyXG5cclxuICAgICAgICAvL3RoaXMuZGFzaGJvYXJkLnB1c2goe30pO1xyXG4gICAgfVxyXG59Il19
@@ -0,0 +1,16 @@
1
+ import { Injectable, Inject } from "@angular/core";
2
+ import { LocalizationService } from "@esfaenza/localizations";
3
+ import { DSH_OPTIONS } from "../../private-injection-tokens";
4
+ export class DashboardLoc extends LocalizationService {
5
+ constructor(options) {
6
+ super(options.locale);
7
+ super.set("en->it", "Dashboard", ["Dashboard"]);
8
+ }
9
+ }
10
+ DashboardLoc.decorators = [
11
+ { type: Injectable }
12
+ ];
13
+ DashboardLoc.ctorParameters = () => [
14
+ { type: undefined, decorators: [{ type: Inject, args: [DSH_OPTIONS,] }] }
15
+ ];
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLmNvbXBvbmVudC5sb2MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQtZmVhdHVyZS9zcmMvbGliL2NvbXBvbmVudHMvZGFzaGJvYXJkL2Rhc2hib2FyZC5jb21wb25lbnQubG9jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUs3RCxNQUFNLE9BQU8sWUFBYSxTQUFRLG1CQUFtQjtJQUNqRCxZQUFpQyxPQUFnQztRQUM3RCxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RCLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFFcEQsQ0FBQzs7O1lBTkosVUFBVTs7OzRDQUVNLE1BQU0sU0FBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBJRGFzaGJvYXJkTW9kdWxlT3B0aW9ucyB9IGZyb20gXCIuLi8uLi9tb2RlbHMvb3B0aW9ucy9JRGFzaGJvYXJkTW9kdWxlT3B0aW9uc1wiO1xyXG5pbXBvcnQgeyBEU0hfT1BUSU9OUyB9IGZyb20gXCIuLi8uLi9wcml2YXRlLWluamVjdGlvbi10b2tlbnNcIjtcclxuXHJcblxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRGFzaGJvYXJkTG9jIGV4dGVuZHMgTG9jYWxpemF0aW9uU2VydmljZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KERTSF9PUFRJT05TKSBvcHRpb25zOiBJRGFzaGJvYXJkTW9kdWxlT3B0aW9ucykge1xyXG4gICAgICAgIHN1cGVyKG9wdGlvbnMubG9jYWxlKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJlbi0+aXRcIiwgXCJEYXNoYm9hcmRcIiwgW1wiRGFzaGJvYXJkXCJdKTtcclxuICAgICAgICBcclxuICAgIH1cclxufSJdfQ==
@@ -0,0 +1,81 @@
1
+ import { EventEmitter, Inject, Injectable } from "@angular/core";
2
+ import { DSH_DATA_SERVICE } from "../../public-injection-tokens";
3
+ /**
4
+ * Classe di base astratta per la creazione di Widget custom.
5
+ */
6
+ export class BaseWidgetComponent {
7
+ constructor(dshService) {
8
+ this.dshService = dshService;
9
+ this.OnRemove = new EventEmitter();
10
+ this.configuration = false;
11
+ this.dataReady = false;
12
+ this.lastdate = "";
13
+ }
14
+ setWidgetModel(widgetModel) {
15
+ this.model = widgetModel;
16
+ this.refreshData();
17
+ }
18
+ ngOnInit() { }
19
+ ngOnChanges(changes) {
20
+ //console.log(changes['DashboardDate'].currentValue);
21
+ if (changes['DashboardDate'].previousValue)
22
+ this.lastdate = changes['DashboardDate'].previousValue.toISOString();
23
+ let curdate = "";
24
+ if (changes['DashboardDate'].currentValue)
25
+ curdate = changes['DashboardDate'].currentValue.toISOString();
26
+ //fix per il datetimepicker material che cambia l'oggetto al momento del caricamento
27
+ if (this.lastdate != curdate) {
28
+ this.lastdate = curdate;
29
+ this.refreshData();
30
+ }
31
+ }
32
+ /**
33
+ * Prepara i parametri e lancia la chiamata GetWidgetData della DashboardFeatureService.
34
+ * Imposta il model con i dati restituiti (setData) e imposta la variabile dataReady del campo a true
35
+ */
36
+ refreshData() {
37
+ if (!this.model)
38
+ return;
39
+ const pars = {};
40
+ if (this.DashboardDate)
41
+ pars["DT"] = this.DashboardDate.toISOString();
42
+ if (this.model.options && Object.keys(this.model.options).length != 0) {
43
+ for (let index = 0; index < Object.keys(this.model.options).length; index++) {
44
+ const k = Object.keys(this.model.options)[index];
45
+ pars[k] = this.model.options[k];
46
+ }
47
+ }
48
+ this.prepareGetDataParameters(pars);
49
+ this.dshService.GetWidgetData(this.model.name, pars).subscribe(data => {
50
+ if (this.model) {
51
+ this.model.setData(data);
52
+ this.dataReady = true;
53
+ }
54
+ });
55
+ }
56
+ /**
57
+ * Da chiamare quando l'utente preme il pulsante 'rimuovi' nella toolbar della widget.
58
+ */
59
+ removeWidget() {
60
+ if (!this.model)
61
+ return;
62
+ this.OnRemove.emit(this.model.name);
63
+ }
64
+ /**
65
+ * Da chiamare quando viene premuto il pulsante 'configure' nella toolbar della widget
66
+ */
67
+ configureWidget() {
68
+ if (this.configuration) {
69
+ //finito di configurare -> refreshData
70
+ this.refreshData();
71
+ }
72
+ this.configuration = !this.configuration;
73
+ }
74
+ }
75
+ BaseWidgetComponent.decorators = [
76
+ { type: Injectable }
77
+ ];
78
+ BaseWidgetComponent.ctorParameters = () => [
79
+ { type: undefined, decorators: [{ type: Inject, args: [DSH_DATA_SERVICE,] }] }
80
+ ];
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZVdpZGdldENvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC1mZWF0dXJlL3NyYy9saWIvY29tcG9uZW50cy93aWRnZXRzL0Jhc2VXaWRnZXRDb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUF3QixZQUFZLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFJdEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFakU7O0dBRUc7QUFFSCxNQUFNLE9BQWdCLG1CQUFtQjtJQVdyQyxZQUFnRCxVQUF3QztRQUF4QyxlQUFVLEdBQVYsVUFBVSxDQUE4QjtRQU54RixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV0QyxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUMvQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGFBQVEsR0FBVyxFQUFFLENBQUM7SUFFc0UsQ0FBQztJQUU3RixjQUFjLENBQUMsV0FBNkI7UUFFeEMsSUFBSSxDQUFDLEtBQUssR0FBTSxXQUFXLENBQUM7UUFFNUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxRQUFRLEtBQUssQ0FBQztJQUVkLFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixxREFBcUQ7UUFDckQsSUFBSSxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsYUFBYTtZQUN0QyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFekUsSUFBSSxPQUFPLEdBQVcsRUFBRSxDQUFDO1FBRXpCLElBQUksT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLFlBQVk7WUFDckMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbEUsb0ZBQW9GO1FBQ3BGLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxPQUFPLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7WUFDeEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3RCO0lBRUwsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVc7UUFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFDWCxPQUFPO1FBQ1gsTUFBTSxJQUFJLEdBQThCLEVBQUUsQ0FBQztRQUMzQyxJQUFHLElBQUksQ0FBQyxhQUFhO1lBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2xELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDbkUsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQ3pFLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDakQsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ25DO1NBQ0o7UUFFRCxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFcEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2xFLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDWixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7YUFDekI7UUFDTCxDQUFDLENBQ0EsQ0FBQztJQUNOLENBQUM7SUFRRDs7T0FFRztJQUNILFlBQVk7UUFDUixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFDWCxPQUFPO1FBQ1gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxlQUFlO1FBQ1gsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3BCLHNDQUFzQztZQUN0QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdEI7UUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM3QyxDQUFDOzs7WUE1RkgsVUFBVTs7OzRDQVlLLE1BQU0sU0FBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbmplY3RhYmxlLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSUphY2VXaWRnZXRNb2RlbCB9IGZyb20gXCIuLi8uLi9tb2RlbHMvd2lkZ2V0cy9JSmFjZVdpZGdldE1vZGVsXCI7XHJcbmltcG9ydCB7IElXaWRnZXRDb21wb25lbnQgfSBmcm9tIFwiLi9JV2lkZ2V0Q29tcG9uZW50XCI7XHJcbmltcG9ydCB7IElEYXNoYm9hcmRGZWF0dXJlRGF0YVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvSURhc2hib2FyZEZlYXR1cmVEYXRhU2VydmljZVwiO1xyXG5pbXBvcnQgeyBEU0hfREFUQV9TRVJWSUNFIH0gZnJvbSBcIi4uLy4uL3B1YmxpYy1pbmplY3Rpb24tdG9rZW5zXCI7XHJcblxyXG4vKipcclxuICogQ2xhc3NlIGRpIGJhc2UgYXN0cmF0dGEgcGVyIGxhIGNyZWF6aW9uZSBkaSBXaWRnZXQgY3VzdG9tLlxyXG4gKi9cclxuIEBJbmplY3RhYmxlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VXaWRnZXRDb21wb25lbnQ8VCBleHRlbmRzIElKYWNlV2lkZ2V0TW9kZWw+IGltcGxlbWVudHMgSVdpZGdldENvbXBvbmVudHtcclxuXHJcbiAgICBtb2RlbD86IFQ7XHJcblxyXG4gICAgRGFzaGJvYXJkRGF0ZSE6IERhdGU7XHJcbiAgICBPblJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICAgIGNvbmZpZ3VyYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGRhdGFSZWFkeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgbGFzdGRhdGU6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gICAgY29uc3RydWN0b3IoQEluamVjdChEU0hfREFUQV9TRVJWSUNFKSBwcm90ZWN0ZWQgZHNoU2VydmljZTogSURhc2hib2FyZEZlYXR1cmVEYXRhU2VydmljZSkgeyB9XHJcblxyXG4gICAgc2V0V2lkZ2V0TW9kZWwod2lkZ2V0TW9kZWw6IElKYWNlV2lkZ2V0TW9kZWwpOiB2b2lkIHtcclxuICAgICAgICBcclxuICAgICAgICB0aGlzLm1vZGVsID0gPFQ+d2lkZ2V0TW9kZWw7XHJcblxyXG4gICAgICAgIHRoaXMucmVmcmVzaERhdGEoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHsgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICAvL2NvbnNvbGUubG9nKGNoYW5nZXNbJ0Rhc2hib2FyZERhdGUnXS5jdXJyZW50VmFsdWUpO1xyXG4gICAgICAgIGlmIChjaGFuZ2VzWydEYXNoYm9hcmREYXRlJ10ucHJldmlvdXNWYWx1ZSlcclxuICAgICAgICAgICAgdGhpcy5sYXN0ZGF0ZSA9IGNoYW5nZXNbJ0Rhc2hib2FyZERhdGUnXS5wcmV2aW91c1ZhbHVlLnRvSVNPU3RyaW5nKCk7XHJcblxyXG4gICAgICAgIGxldCBjdXJkYXRlOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgICAgICBpZiAoY2hhbmdlc1snRGFzaGJvYXJkRGF0ZSddLmN1cnJlbnRWYWx1ZSlcclxuICAgICAgICAgICAgY3VyZGF0ZSA9IGNoYW5nZXNbJ0Rhc2hib2FyZERhdGUnXS5jdXJyZW50VmFsdWUudG9JU09TdHJpbmcoKTtcclxuICAgICAgICAvL2ZpeCBwZXIgaWwgZGF0ZXRpbWVwaWNrZXIgbWF0ZXJpYWwgY2hlIGNhbWJpYSBsJ29nZ2V0dG8gYWwgbW9tZW50byBkZWwgY2FyaWNhbWVudG9cclxuICAgICAgICBpZiAodGhpcy5sYXN0ZGF0ZSAhPSBjdXJkYXRlKSB7XHJcbiAgICAgICAgICAgIHRoaXMubGFzdGRhdGUgPSBjdXJkYXRlO1xyXG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hEYXRhKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByZXBhcmEgaSBwYXJhbWV0cmkgZSBsYW5jaWEgbGEgY2hpYW1hdGEgR2V0V2lkZ2V0RGF0YSBkZWxsYSBEYXNoYm9hcmRGZWF0dXJlU2VydmljZS5cclxuICAgICAqIEltcG9zdGEgaWwgbW9kZWwgY29uIGkgZGF0aSByZXN0aXR1aXRpIChzZXREYXRhKSBlIGltcG9zdGEgbGEgdmFyaWFiaWxlIGRhdGFSZWFkeSBkZWwgY2FtcG8gYSB0cnVlXHJcbiAgICAgKi9cclxuICAgIHJlZnJlc2hEYXRhKCkgOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMubW9kZWwpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICBjb25zdCBwYXJzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XHJcbiAgICAgICAgaWYodGhpcy5EYXNoYm9hcmREYXRlKVxyXG4gICAgICAgICAgICBwYXJzW1wiRFRcIl0gPSB0aGlzLkRhc2hib2FyZERhdGUudG9JU09TdHJpbmcoKTtcclxuICAgICAgICBpZiAodGhpcy5tb2RlbC5vcHRpb25zICYmIE9iamVjdC5rZXlzKHRoaXMubW9kZWwub3B0aW9ucykubGVuZ3RoICE9IDApIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IE9iamVjdC5rZXlzKHRoaXMubW9kZWwub3B0aW9ucykubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBrID0gT2JqZWN0LmtleXModGhpcy5tb2RlbC5vcHRpb25zKVtpbmRleF07XHJcbiAgICAgICAgICAgICAgICBwYXJzW2tdID0gdGhpcy5tb2RlbC5vcHRpb25zW2tdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnByZXBhcmVHZXREYXRhUGFyYW1ldGVycyhwYXJzKTtcclxuXHJcbiAgICAgICAgdGhpcy5kc2hTZXJ2aWNlLkdldFdpZGdldERhdGEodGhpcy5tb2RlbC5uYW1lLCBwYXJzKS5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1vZGVsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1vZGVsLnNldERhdGEoZGF0YSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGFSZWFkeSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgIH0gICAgXHJcbiAgICAvKipcclxuICAgICAqIE1vZGlmaWNhL2FnZ2lvcm5hIGkgcGFyYW1ldHJpIGRlbGxhIGNoaWFtYXRhIEdldFdpZGdldERhdGEgcHJpbWEgZGkgZXNlZ3VpcmxhLiAgICAgKiBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHBhcnMgcGFyYW1ldHJpIGRlbGxhIGNoaWFtYXRhLiBTZSBpbXBvc3RhdGEsIGdpw6AgY29udGVuZ29ubyBpbCBwYXJhbWV0cm8gJ0RUJyBjb24gbGEgZGF0YSBzZWxlemlvbmF0YSBhIGxpdmVsbG8gZGkgZGFzaGJvYXJkXHJcbiAgICAgKi9cclxuICAgIGFic3RyYWN0IHByZXBhcmVHZXREYXRhUGFyYW1ldGVycyhwYXJzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZzsgfSkgOnZvaWQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEYSBjaGlhbWFyZSBxdWFuZG8gbCd1dGVudGUgcHJlbWUgaWwgcHVsc2FudGUgJ3JpbXVvdmknIG5lbGxhIHRvb2xiYXIgZGVsbGEgd2lkZ2V0LlxyXG4gICAgICovXHJcbiAgICByZW1vdmVXaWRnZXQoKSA6dm9pZHtcclxuICAgICAgICBpZiAoIXRoaXMubW9kZWwpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB0aGlzLk9uUmVtb3ZlLmVtaXQodGhpcy5tb2RlbC5uYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERhIGNoaWFtYXJlIHF1YW5kbyB2aWVuZSBwcmVtdXRvIGlsIHB1bHNhbnRlICdjb25maWd1cmUnIG5lbGxhIHRvb2xiYXIgZGVsbGEgd2lkZ2V0XHJcbiAgICAgKi9cclxuICAgIGNvbmZpZ3VyZVdpZGdldCgpIDp2b2lke1xyXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb24pIHtcclxuICAgICAgICAgICAgLy9maW5pdG8gZGkgY29uZmlndXJhcmUgLT4gcmVmcmVzaERhdGFcclxuICAgICAgICAgICAgdGhpcy5yZWZyZXNoRGF0YSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSAhdGhpcy5jb25maWd1cmF0aW9uO1xyXG4gICAgfVxyXG59Il19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSVdpZGdldENvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC1mZWF0dXJlL3NyYy9saWIvY29tcG9uZW50cy93aWRnZXRzL0lXaWRnZXRDb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBJSmFjZVdpZGdldE1vZGVsIH0gZnJvbSBcIi4uLy4uL21vZGVscy93aWRnZXRzL0lKYWNlV2lkZ2V0TW9kZWxcIjtcclxuXHJcbi8qKlxyXG4gKiBJbnRlcmZhY2NpYSBjaGUgb2duaSBDb21wb25lbnQgY2hlIHJhcHByZXNlbnRhIHVuYSB3aWRnZXQgZGV2ZSBpbXBsZW1lbnRhcmUuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIElXaWRnZXRDb21wb25lbnR7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZSByaWxldmFudGUgcGVyIHF1ZXN0YSBkYXNoYm9hcmQsIGluIHF1ZXN0byBpbnB1dCB2aWVuZSBpbXBvc3RhdGEgbGEgZGF0YSBzZWxlemlvbmF0YSBkYWxsJ3V0ZW50ZS5cclxuICAgICAqL1xyXG4gICAgRGFzaGJvYXJkRGF0ZTogRGF0ZTtcclxuICAgIC8qKlxyXG4gICAgICogTGFuY2lhdG8gcXVhbmRvIHF1ZXN0YSB3aWRnZXQgdmllbmUgcmltb3NzYSBkYWxsYSBkYXNoYm9hcmRcclxuICAgICAqL1xyXG4gICAgT25SZW1vdmU6IEV2ZW50RW1pdHRlcjxzdHJpbmc+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW1wb3N0YSBpbCBtb2RlbGxvIGRlbGxhIHdpZGdldCBuZWwgY29tcG9uZW50ZS5cclxuICAgICAqIFxyXG4gICAgICogTGFuY2lhdGEgc3ViaXRvIGRvcG8gbGEgY3JlYXppb25lIGRlbCBDb21wb25lbnRlLCBkdXJhbnRlIGlsIHJlbmRlcmluZyBkZWwgbGF5b3V0IGRlbGxhIGRhc2hib2FyZC5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHdpZGdldE1vZGVsIEltcG9zdGEgaWwgbW9kZWxsbyBkZWxsYSB3aWRnZXQgbGV0dG8gbmVsIGxheW91dCByaWNldnV0byBkYWwgQkVcclxuICAgICAqL1xyXG4gICAgc2V0V2lkZ2V0TW9kZWwod2lkZ2V0TW9kZWw6IElKYWNlV2lkZ2V0TW9kZWwpOnZvaWQ7XHJcbn0iXX0=
@@ -0,0 +1,8 @@
1
+ export var JaceWidgetTypes;
2
+ (function (JaceWidgetTypes) {
3
+ JaceWidgetTypes["CHART"] = "CHART";
4
+ JaceWidgetTypes["COUNTER"] = "COUNTER";
5
+ JaceWidgetTypes["LIST"] = "LIST";
6
+ JaceWidgetTypes["MULTIPROGRESS"] = "MULTIPROGRESS";
7
+ })(JaceWidgetTypes || (JaceWidgetTypes = {}));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSmFjZVdpZGdldFR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGFzaGJvYXJkLWZlYXR1cmUvc3JjL2xpYi9jb21wb25lbnRzL3dpZGdldHMvSmFjZVdpZGdldFR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGVBS1g7QUFMRCxXQUFZLGVBQWU7SUFDM0Isa0NBQWEsQ0FBQTtJQUNiLHNDQUFpQixDQUFBO0lBQ2pCLGdDQUFXLENBQUE7SUFDWCxrREFBNkIsQ0FBQTtBQUM3QixDQUFDLEVBTFcsZUFBZSxLQUFmLGVBQWUsUUFLMUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBKYWNlV2lkZ2V0VHlwZXN7XHJcbkNIQVJUPSdDSEFSVCcsXHJcbkNPVU5URVI9J0NPVU5URVInLFxyXG5MSVNUPSdMSVNUJyxcclxuTVVMVElQUk9HUkVTUz0nTVVMVElQUk9HUkVTUydcclxufSJdfQ==
@@ -0,0 +1,77 @@
1
+ import { Component, EventEmitter, Inject, Input, Output } from '@angular/core';
2
+ import { DSH_DATA_SERVICE } from '../../../public-injection-tokens';
3
+ export class JaceChartWidgetComponent {
4
+ constructor(dshService) {
5
+ this.dshService = dshService;
6
+ this.OnRemove = new EventEmitter();
7
+ this.configuration = false;
8
+ this.dataReady = false;
9
+ this.lastdate = "";
10
+ this.chartName = "";
11
+ }
12
+ setWidgetModel(widgetModel) {
13
+ this.model = widgetModel;
14
+ this.refreshData();
15
+ }
16
+ ngOnInit() { }
17
+ ngOnChanges(changes) {
18
+ //console.log(changes['DashboardDate'].currentValue);
19
+ if (changes['DashboardDate'].previousValue)
20
+ this.lastdate = changes['DashboardDate'].previousValue.toISOString();
21
+ let curdate = "";
22
+ if (changes['DashboardDate'].currentValue)
23
+ curdate = changes['DashboardDate'].currentValue.toISOString();
24
+ //fix per il datetimepicker material che cambia l'oggetto al momento del caricamento
25
+ if (this.lastdate != curdate) {
26
+ this.lastdate = curdate;
27
+ this.refreshData();
28
+ }
29
+ }
30
+ refreshData() {
31
+ if (!this.model)
32
+ return;
33
+ const pars = {};
34
+ if (this.DashboardDate)
35
+ pars["DT"] = this.DashboardDate.toISOString();
36
+ if (this.model.options && Object.keys(this.model.options).length != 0) {
37
+ for (let index = 0; index < Object.keys(this.model.options).length; index++) {
38
+ const k = Object.keys(this.model.options)[index];
39
+ pars[k] = this.model.options[k];
40
+ }
41
+ }
42
+ this.dshService.GetWidgetData(this.model.name, pars).subscribe(data => {
43
+ if (this.model) {
44
+ this.model.setData(data);
45
+ this.chartName = this.model.name;
46
+ this.dataReady = true;
47
+ }
48
+ });
49
+ }
50
+ removeWidget() {
51
+ if (!this.model)
52
+ return;
53
+ this.OnRemove.emit(this.model.name);
54
+ }
55
+ configure() {
56
+ if (this.configuration) {
57
+ //finito di configurare -> refreshData
58
+ this.refreshData();
59
+ }
60
+ this.configuration = !this.configuration;
61
+ }
62
+ }
63
+ JaceChartWidgetComponent.decorators = [
64
+ { type: Component, args: [{
65
+ selector: 'jace-dsh-chart',
66
+ 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\r\n <div class=\"jace-dsh-chart-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 <!-- [Type]=\"Widget.chartType\" -->\r\n <h6 *ngIf=\"model?.queryerror\" class=\"fg-disabled\" style=\"margin-top: 0.5rem;\"><span\r\n class=\"fa fa-times-circle-o\"></span>&nbsp;&nbsp;Error retrieving data</h6>\r\n <es-chart [Legend]=\"model.legend\" [Theme]=\"'dataviz'\" [Type]=\"model.chartType\" [Data]=\"model.chartData\"\r\n [name]=\"chartName\"></es-chart>\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>",
67
+ styles: [""]
68
+ },] }
69
+ ];
70
+ JaceChartWidgetComponent.ctorParameters = () => [
71
+ { type: undefined, decorators: [{ type: Inject, args: [DSH_DATA_SERVICE,] }] }
72
+ ];
73
+ JaceChartWidgetComponent.propDecorators = {
74
+ DashboardDate: [{ type: Input }],
75
+ OnRemove: [{ type: Output }]
76
+ };
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamFjZS1kc2gtY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGFzaGJvYXJkLWZlYXR1cmUvc3JjL2xpYi9jb21wb25lbnRzL3dpZGdldHMvY2hhcnQvamFjZS1kc2gtY2hhcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQU10RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQVNwRSxNQUFNLE9BQU8sd0JBQXdCO0lBWWpDLFlBQThDLFVBQXdDO1FBQXhDLGVBQVUsR0FBVixVQUFVLENBQThCO1FBUDVFLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRWhELGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBQy9CLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUNmLGNBQVMsR0FBUSxFQUFFLENBQUM7SUFFK0QsQ0FBQztJQUUzRixjQUFjLENBQUMsV0FBNkI7UUFDeEMsSUFBSSxDQUFDLEtBQUssR0FBeUIsV0FBVyxDQUFDO1FBQy9DLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsUUFBUSxLQUFLLENBQUM7SUFFZCxXQUFXLENBQUMsT0FBc0I7UUFDOUIscURBQXFEO1FBQ3JELElBQUksT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLGFBQWE7WUFDdEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRXpFLElBQUksT0FBTyxHQUFXLEVBQUUsQ0FBQztRQUV6QixJQUFJLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxZQUFZO1lBQ3JDLE9BQU8sR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2xFLG9GQUFvRjtRQUNwRixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksT0FBTyxFQUFFO1lBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUN0QjtJQUVMLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLO1lBQ1gsT0FBTztRQUNYLE1BQU0sSUFBSSxHQUE4QixFQUFFLENBQUM7UUFDM0MsSUFBRyxJQUFJLENBQUMsYUFBYTtZQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNsRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQ25FLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUN6RSxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2pELElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNuQztTQUNKO1FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2xFLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDWixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztnQkFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7YUFDekI7UUFDTCxDQUFDLENBQ0EsQ0FBQztJQUNOLENBQUM7SUFFRCxZQUFZO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLO1lBQ1gsT0FBTztRQUNYLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFNBQVM7UUFDTCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDcEIsc0NBQXNDO1lBQ3RDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUN0QjtRQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzdDLENBQUM7OztZQS9FSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsbTFEQUE4Qzs7YUFFakQ7Ozs0Q0FjZ0IsTUFBTSxTQUFDLGdCQUFnQjs7OzRCQVJuQyxLQUFLO3VCQUNMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IElKYWNlV2lkZ2V0TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvd2lkZ2V0cy9JSmFjZVdpZGdldE1vZGVsJztcclxuaW1wb3J0IHsgSVdpZGdldENvbXBvbmVudCB9IGZyb20gJy4uL0lXaWRnZXRDb21wb25lbnQnO1xyXG5cclxuaW1wb3J0IHsgSmFjZUNoYXJ0V2lkZ2V0TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvd2lkZ2V0cy9KYWNlQ2hhcnRXaWRnZXRNb2RlbCc7XHJcbmltcG9ydCB7IERTSF9EQVRBX1NFUlZJQ0UgfSBmcm9tICcuLi8uLi8uLi9wdWJsaWMtaW5qZWN0aW9uLXRva2Vucyc7XHJcbmltcG9ydCB7IElEYXNoYm9hcmRGZWF0dXJlRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9JRGFzaGJvYXJkRmVhdHVyZURhdGFTZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdqYWNlLWRzaC1jaGFydCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vamFjZS1kc2gtY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vamFjZS1kc2gtY2hhcnQuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgSmFjZUNoYXJ0V2lkZ2V0Q29tcG9uZW50IGltcGxlbWVudHMgSVdpZGdldENvbXBvbmVudCwgT25Jbml0IHtcclxuXHJcbiAgICBtb2RlbD86IEphY2VDaGFydFdpZGdldE1vZGVsO1xyXG5cclxuICAgIEBJbnB1dCgpIERhc2hib2FyZERhdGUhOiBEYXRlO1xyXG4gICAgQE91dHB1dCgpIE9uUmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gICAgY29uZmlndXJhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgZGF0YVJlYWR5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBsYXN0ZGF0ZTogc3RyaW5nID0gXCJcIjtcclxuICAgIHB1YmxpYyBjaGFydE5hbWU6c3RyaW5nPVwiXCI7XHJcblxyXG4gICAgY29uc3RydWN0b3IoQEluamVjdChEU0hfREFUQV9TRVJWSUNFKSBwcml2YXRlIGRzaFNlcnZpY2U6IElEYXNoYm9hcmRGZWF0dXJlRGF0YVNlcnZpY2UpIHsgfVxyXG5cclxuICAgIHNldFdpZGdldE1vZGVsKHdpZGdldE1vZGVsOiBJSmFjZVdpZGdldE1vZGVsKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5tb2RlbCA9IDxKYWNlQ2hhcnRXaWRnZXRNb2RlbD53aWRnZXRNb2RlbDtcclxuICAgICAgICB0aGlzLnJlZnJlc2hEYXRhKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7IH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgLy9jb25zb2xlLmxvZyhjaGFuZ2VzWydEYXNoYm9hcmREYXRlJ10uY3VycmVudFZhbHVlKTtcclxuICAgICAgICBpZiAoY2hhbmdlc1snRGFzaGJvYXJkRGF0ZSddLnByZXZpb3VzVmFsdWUpXHJcbiAgICAgICAgICAgIHRoaXMubGFzdGRhdGUgPSBjaGFuZ2VzWydEYXNoYm9hcmREYXRlJ10ucHJldmlvdXNWYWx1ZS50b0lTT1N0cmluZygpO1xyXG5cclxuICAgICAgICBsZXQgY3VyZGF0ZTogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICAgICAgaWYgKGNoYW5nZXNbJ0Rhc2hib2FyZERhdGUnXS5jdXJyZW50VmFsdWUpXHJcbiAgICAgICAgICAgIGN1cmRhdGUgPSBjaGFuZ2VzWydEYXNoYm9hcmREYXRlJ10uY3VycmVudFZhbHVlLnRvSVNPU3RyaW5nKCk7XHJcbiAgICAgICAgLy9maXggcGVyIGlsIGRhdGV0aW1lcGlja2VyIG1hdGVyaWFsIGNoZSBjYW1iaWEgbCdvZ2dldHRvIGFsIG1vbWVudG8gZGVsIGNhcmljYW1lbnRvXHJcbiAgICAgICAgaWYgKHRoaXMubGFzdGRhdGUgIT0gY3VyZGF0ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmxhc3RkYXRlID0gY3VyZGF0ZTtcclxuICAgICAgICAgICAgdGhpcy5yZWZyZXNoRGF0YSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgcmVmcmVzaERhdGEoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLm1vZGVsKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgY29uc3QgcGFyczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xyXG4gICAgICAgIGlmKHRoaXMuRGFzaGJvYXJkRGF0ZSlcclxuICAgICAgICAgICAgcGFyc1tcIkRUXCJdID0gdGhpcy5EYXNoYm9hcmREYXRlLnRvSVNPU3RyaW5nKCk7XHJcbiAgICAgICAgaWYgKHRoaXMubW9kZWwub3B0aW9ucyAmJiBPYmplY3Qua2V5cyh0aGlzLm1vZGVsLm9wdGlvbnMpLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBPYmplY3Qua2V5cyh0aGlzLm1vZGVsLm9wdGlvbnMpLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgayA9IE9iamVjdC5rZXlzKHRoaXMubW9kZWwub3B0aW9ucylbaW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgcGFyc1trXSA9IHRoaXMubW9kZWwub3B0aW9uc1trXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5kc2hTZXJ2aWNlLkdldFdpZGdldERhdGEodGhpcy5tb2RlbC5uYW1lLCBwYXJzKS5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1vZGVsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1vZGVsLnNldERhdGEoZGF0YSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXJ0TmFtZSA9IHRoaXMubW9kZWwubmFtZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0YVJlYWR5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZVdpZGdldCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMubW9kZWwpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB0aGlzLk9uUmVtb3ZlLmVtaXQodGhpcy5tb2RlbC5uYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25maWd1cmUoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29uZmlndXJhdGlvbikge1xyXG4gICAgICAgICAgICAvL2Zpbml0byBkaSBjb25maWd1cmFyZSAtPiByZWZyZXNoRGF0YVxyXG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hEYXRhKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbiA9ICF0aGlzLmNvbmZpZ3VyYXRpb247XHJcbiAgICB9XHJcbn0iXX0=