@smartbit4all/ng-client 4.2.61 → 4.2.62

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 (118) hide show
  1. package/esm2022/lib/smart-map/api/api/api.mjs +1 -1
  2. package/esm2022/lib/smart-map/api/api/geoMap.service.mjs +1 -1
  3. package/esm2022/lib/smart-map/api/api.module.mjs +1 -1
  4. package/esm2022/lib/smart-map/api/configuration.mjs +1 -1
  5. package/esm2022/lib/smart-map/api/encoder.mjs +1 -1
  6. package/esm2022/lib/smart-map/api/index.mjs +1 -1
  7. package/esm2022/lib/smart-map/api/model/gPSPosition.mjs +1 -1
  8. package/esm2022/lib/smart-map/api/model/gPSRoute.mjs +1 -1
  9. package/esm2022/lib/smart-map/api/model/geoMapChange.mjs +1 -1
  10. package/esm2022/lib/smart-map/api/model/geoMapDataLoadingMode.mjs +1 -1
  11. package/esm2022/lib/smart-map/api/model/geoMapDataSourceDescriptor.mjs +1 -1
  12. package/esm2022/lib/smart-map/api/model/geoMapDataSourceType.mjs +1 -1
  13. package/esm2022/lib/smart-map/api/model/geoMapEditingSession.mjs +1 -1
  14. package/esm2022/lib/smart-map/api/model/geoMapInteraction.mjs +1 -1
  15. package/esm2022/lib/smart-map/api/model/geoMapItem.mjs +1 -1
  16. package/esm2022/lib/smart-map/api/model/geoMapItemKind.mjs +1 -1
  17. package/esm2022/lib/smart-map/api/model/geoMapLayer.mjs +1 -1
  18. package/esm2022/lib/smart-map/api/model/geoMapLayerChange.mjs +1 -1
  19. package/esm2022/lib/smart-map/api/model/geoMapLayerDescriptor.mjs +1 -1
  20. package/esm2022/lib/smart-map/api/model/geoMapModel.mjs +1 -1
  21. package/esm2022/lib/smart-map/api/model/geoMapOperationMode.mjs +1 -1
  22. package/esm2022/lib/smart-map/api/model/geoMapSelectionMode.mjs +1 -1
  23. package/esm2022/lib/smart-map/api/model/geoMapServerModel.mjs +1 -1
  24. package/esm2022/lib/smart-map/api/model/geoMapTextType.mjs +1 -1
  25. package/esm2022/lib/smart-map/api/model/geoMapViewState.mjs +1 -1
  26. package/esm2022/lib/smart-map/api/model/geoMapViewport.mjs +1 -1
  27. package/esm2022/lib/smart-map/api/model/models.mjs +1 -1
  28. package/esm2022/lib/smart-map/api/param.mjs +1 -1
  29. package/esm2022/lib/smart-map/api/variables.mjs +1 -1
  30. package/esm2022/lib/smart-ng-client.module.mjs +1 -1
  31. package/esm2022/lib/view-context/api/api/api.mjs +1 -1
  32. package/esm2022/lib/view-context/api/api/view.service.mjs +1 -1
  33. package/esm2022/lib/view-context/api/api.module.mjs +1 -1
  34. package/esm2022/lib/view-context/api/configuration.mjs +1 -1
  35. package/esm2022/lib/view-context/api/encoder.mjs +1 -1
  36. package/esm2022/lib/view-context/api/index.mjs +1 -1
  37. package/esm2022/lib/view-context/api/model/clipboardData.mjs +1 -1
  38. package/esm2022/lib/view-context/api/model/closeResult.mjs +1 -1
  39. package/esm2022/lib/view-context/api/model/componentConstraint.mjs +1 -1
  40. package/esm2022/lib/view-context/api/model/componentModel.mjs +1 -1
  41. package/esm2022/lib/view-context/api/model/componentModelChange.mjs +1 -1
  42. package/esm2022/lib/view-context/api/model/dataChange.mjs +1 -1
  43. package/esm2022/lib/view-context/api/model/dataChangeEvent.mjs +1 -1
  44. package/esm2022/lib/view-context/api/model/dataChangeKind.mjs +1 -1
  45. package/esm2022/lib/view-context/api/model/deviceInfo.mjs +1 -1
  46. package/esm2022/lib/view-context/api/model/downloadedFile.mjs +1 -1
  47. package/esm2022/lib/view-context/api/model/iconPosition.mjs +1 -1
  48. package/esm2022/lib/view-context/api/model/imageResource.mjs +1 -1
  49. package/esm2022/lib/view-context/api/model/link.mjs +1 -1
  50. package/esm2022/lib/view-context/api/model/messageData.mjs +1 -1
  51. package/esm2022/lib/view-context/api/model/messageOption.mjs +1 -1
  52. package/esm2022/lib/view-context/api/model/messageOptionType.mjs +1 -1
  53. package/esm2022/lib/view-context/api/model/messageResult.mjs +1 -1
  54. package/esm2022/lib/view-context/api/model/messageTextType.mjs +1 -1
  55. package/esm2022/lib/view-context/api/model/messageType.mjs +1 -1
  56. package/esm2022/lib/view-context/api/model/namedValidator.mjs +1 -1
  57. package/esm2022/lib/view-context/api/model/openPendingData.mjs +1 -1
  58. package/esm2022/lib/view-context/api/model/serverRequestExecutionStat.mjs +1 -1
  59. package/esm2022/lib/view-context/api/model/serverRequestTrack.mjs +1 -1
  60. package/esm2022/lib/view-context/api/model/serverRequestType.mjs +1 -1
  61. package/esm2022/lib/view-context/api/model/statisticRecord.mjs +1 -1
  62. package/esm2022/lib/view-context/api/model/style.mjs +1 -1
  63. package/esm2022/lib/view-context/api/model/uiAction.mjs +1 -1
  64. package/esm2022/lib/view-context/api/model/uiActionButtonDescriptor.mjs +1 -1
  65. package/esm2022/lib/view-context/api/model/uiActionButtonType.mjs +1 -1
  66. package/esm2022/lib/view-context/api/model/uiActionConstraint.mjs +1 -1
  67. package/esm2022/lib/view-context/api/model/uiActionDialogDescriptor.mjs +1 -1
  68. package/esm2022/lib/view-context/api/model/uiActionFeedbackType.mjs +1 -1
  69. package/esm2022/lib/view-context/api/model/uiActionInputType.mjs +1 -1
  70. package/esm2022/lib/view-context/api/model/uiActionRequest.mjs +1 -1
  71. package/esm2022/lib/view-context/api/model/uiActionTooltip.mjs +1 -1
  72. package/esm2022/lib/view-context/api/model/valueSet.mjs +1 -1
  73. package/esm2022/lib/view-context/api/model/viewApiError.mjs +1 -1
  74. package/esm2022/lib/view-context/api/model/viewConstraint.mjs +1 -1
  75. package/esm2022/lib/view-context/api/model/viewContext.mjs +1 -1
  76. package/esm2022/lib/view-context/api/model/viewContextChange.mjs +1 -1
  77. package/esm2022/lib/view-context/api/model/viewContextData.mjs +1 -1
  78. package/esm2022/lib/view-context/api/model/viewContextUpdate.mjs +1 -1
  79. package/esm2022/lib/view-context/api/model/viewPlaceholder.mjs +1 -1
  80. package/esm2022/lib/view-context/api/model/viewState.mjs +1 -1
  81. package/esm2022/lib/view-context/api/model/viewStateUpdate.mjs +1 -1
  82. package/esm2022/lib/view-context/api/model/viewType.mjs +1 -1
  83. package/esm2022/lib/view-context/api/param.mjs +1 -1
  84. package/esm2022/lib/view-context/api/variables.mjs +1 -1
  85. package/esm2022/lib/view-context/projects.mjs +2 -1
  86. package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.component.mjs +121 -0
  87. package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.service.mjs +21 -0
  88. package/esm2022/lib/view-context/smart-ui-action/ui-action-button/ui-action-button.component.mjs +21 -9
  89. package/esm2022/lib/view-context/smart-ui-action/ui-action-toolbar.component.mjs +11 -6
  90. package/esm2022/lib/view-context/smart-view-context.module.mjs +18 -5
  91. package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/api/api.mjs +1 -1
  92. package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/api.module.mjs +1 -1
  93. package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/configuration.mjs +1 -1
  94. package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/index.mjs +1 -1
  95. package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/model/diagramColor.mjs +1 -1
  96. package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/model/diagramDataContainer.mjs +1 -1
  97. package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/model/diagramDataItem.mjs +1 -1
  98. package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/model/diagramDataSet.mjs +1 -1
  99. package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/model/diagramDataSetConstructionInstruction.mjs +1 -1
  100. package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/model/diagramDescriptor.mjs +1 -1
  101. package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/model/diagramShape.mjs +1 -1
  102. package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/model/diagramUiModel.mjs +1 -1
  103. package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/model/drawTime.mjs +1 -1
  104. package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/model/labelText.mjs +1 -1
  105. package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/model/models.mjs +1 -1
  106. package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/param.mjs +1 -1
  107. package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/variables.mjs +1 -1
  108. package/fesm2022/smartbit4all-ng-client-src-lib-smart-chart.mjs.map +1 -1
  109. package/fesm2022/smartbit4all-ng-client.mjs +256 -99
  110. package/fesm2022/smartbit4all-ng-client.mjs.map +1 -1
  111. package/lib/view-context/projects.d.ts +1 -0
  112. package/lib/view-context/smart-ui-action/components/menu/menu.component.d.ts +32 -0
  113. package/lib/view-context/smart-ui-action/components/menu/menu.service.d.ts +8 -0
  114. package/lib/view-context/smart-ui-action/ui-action-button/ui-action-button.component.d.ts +13 -9
  115. package/lib/view-context/smart-view-context.module.d.ts +47 -44
  116. package/package.json +1 -1
  117. package/smartbit4all-ng-client-4.2.62.tgz +0 -0
  118. package/smartbit4all-ng-client-4.2.61.tgz +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"smartbit4all-ng-client-src-lib-smart-chart.mjs","sources":["../../../projects/smart-ng-client/src/lib/smart-chart/default-chart-options.provider.ts","../../../projects/smart-ng-client/src/lib/view-context/utility/componentLibrary.ts","../../../projects/smart-ng-client/src/lib/smart-chart/smart-chart.component.ts","../../../projects/smart-ng-client/src/lib/smart-chart/smart-chart.component.html","../../../projects/smart-ng-client/src/lib/smart-chart/smart-chart.module.ts","../../../projects/smart-ng-client/src/lib/smart-chart/api/model/chartOrientation.ts","../../../projects/smart-ng-client/src/lib/smart-chart/api/model/chartType.ts","../../../projects/smart-ng-client/src/lib/smart-chart/api/model/chartValue.ts","../../../projects/smart-ng-client/src/lib/smart-chart/api/model/pieChartLegendPosition.ts","../../../projects/smart-ng-client/src/lib/smart-chart/smart-chart2/api/model/diagramColor.ts","../../../projects/smart-ng-client/src/lib/smart-chart/smart-chart2/api/model/diagramDataItem.ts","../../../projects/smart-ng-client/src/lib/smart-chart/smart-chart2/api/model/diagramDataSetConstructionInstruction.ts","../../../projects/smart-ng-client/src/lib/smart-chart/smart-chart2/api/model/drawTime.ts","../../../projects/smart-ng-client/src/lib/smart-chart-projects.ts","../../../projects/smart-ng-client/src/lib/smartbit4all-ng-client-src-lib-smart-chart.ts"],"sourcesContent":["import { Injectable, InjectionToken, Optional, Inject } from \"@angular/core\";\r\nimport { DiagramDataContainer } from \"./smart-chart2/api\";\r\n\r\nexport const CUSTOM_CHART_OPTIONS = new InjectionToken<ChartJsFactory>(\r\n \"CUSTOM_CHART_OPTIONS\"\r\n);\r\n\r\nexport interface ChartJsFactory {\r\n readonly chartType: string;\r\n readonly chartJsType: string;\r\n createOptions(chartData: DiagramDataContainer): any;\r\n transformData(chartData: DiagramDataContainer): any;\r\n}\r\n\r\nexport function transformDataToBasicDataSets(\r\n chartData: DiagramDataContainer\r\n): any {\r\n return {\r\n labels: chartData.labels,\r\n datasets: chartData.items.map((dataset) => {\r\n const color = dataset.dataSetcolor || generateRandomColor();\r\n return {\r\n data: dataset.items.map((item) => item.xValue),\r\n label: dataset.label,\r\n backgroundColor: color,\r\n borderColor: color,\r\n };\r\n }),\r\n };\r\n}\r\n\r\nexport function transformDataToBarLikeDataSet(\r\n chartData: DiagramDataContainer\r\n): any {\r\n return {\r\n labels: chartData.labels,\r\n datasets: chartData.items.map((dataset) => {\r\n return {\r\n data: dataset.items.map((item) => item.xValue),\r\n label: dataset.label,\r\n backgroundColor: dataset.items.map(\r\n (item) => item.itemColor || generateRandomColor()\r\n ),\r\n borderColor: dataset.items.map(\r\n (item) => item.itemColor || generateRandomColor()\r\n ),\r\n };\r\n }),\r\n };\r\n}\r\n\r\nexport function transformDataToScatter(chartData: DiagramDataContainer): any {\r\n return {\r\n datasets: chartData.items.map((dataset) => {\r\n const color = dataset.dataSetcolor || generateRandomColor();\r\n return {\r\n label: dataset.label,\r\n data: dataset.items.map((item) => ({\r\n x: item.xValue,\r\n y: item.yValue,\r\n })),\r\n backgroundColor: color,\r\n borderColor: color,\r\n };\r\n }),\r\n };\r\n}\r\n\r\nexport function transformDataToBubble(chartData: DiagramDataContainer): any {\r\n return {\r\n datasets: chartData.items.map((dataset) => {\r\n const color = dataset.dataSetcolor || generateRandomColor();\r\n return {\r\n label: dataset.label,\r\n data: dataset.items.map((item) => ({\r\n x: item.xValue,\r\n y: item.yValue,\r\n r: item.rValue ?? 5,\r\n })),\r\n backgroundColor: color,\r\n borderColor: color,\r\n };\r\n }),\r\n };\r\n}\r\n\r\nexport const barChart: ChartJsFactory = {\r\n chartType: \"bar\",\r\n chartJsType: \"bar\",\r\n createOptions: () => {\r\n return {};\r\n },\r\n transformData: transformDataToBarLikeDataSet,\r\n};\r\n\r\nexport const horizontalBarChart: ChartJsFactory = {\r\n chartType: \"horizontalBar\",\r\n chartJsType: \"bar\",\r\n createOptions: () => {\r\n return {\r\n indexAxis: \"y\",\r\n };\r\n },\r\n transformData: transformDataToBarLikeDataSet,\r\n};\r\n\r\nexport const radarChart: ChartJsFactory = {\r\n chartType: \"radar\",\r\n chartJsType: \"radar\",\r\n createOptions: () => {\r\n return {};\r\n },\r\n transformData: (chartData: DiagramDataContainer): any => {\r\n return {\r\n labels: chartData.labels,\r\n datasets: chartData.items.map((dataset) => ({\r\n data: dataset.items.map((item) => item.xValue),\r\n label: dataset.label,\r\n borderColor: dataset.dataSetcolor,\r\n pointBackgroundColor: dataset.dataSetcolor,\r\n pointBorderColor: dataset.dataSetcolor,\r\n pointHoverBackgroundColor: \"#000000\",\r\n pointHoverBorderColor: dataset.dataSetcolor,\r\n })),\r\n };\r\n },\r\n};\r\n\r\nexport const stackedBarChart: ChartJsFactory = {\r\n chartType: \"stackedBar\",\r\n chartJsType: \"bar\",\r\n createOptions: () => {\r\n return {\r\n scales: {\r\n x: {\r\n stacked: true,\r\n },\r\n y: {\r\n stacked: true,\r\n },\r\n },\r\n };\r\n },\r\n transformData: transformDataToBasicDataSets,\r\n};\r\n\r\nexport const pieChart: ChartJsFactory = {\r\n chartType: \"pie\",\r\n chartJsType: \"pie\",\r\n createOptions: () => {\r\n return {};\r\n },\r\n transformData: transformDataToBarLikeDataSet,\r\n};\r\n\r\nexport const doughnutChart: ChartJsFactory = {\r\n chartType: \"doughnut\",\r\n chartJsType: \"doughnut\",\r\n createOptions: () => {\r\n return {};\r\n },\r\n transformData: transformDataToBarLikeDataSet,\r\n};\r\n\r\nexport const scatterChart: ChartJsFactory = {\r\n chartType: \"scatter\",\r\n chartJsType: \"scatter\",\r\n createOptions: () => {\r\n return {};\r\n },\r\n transformData: transformDataToScatter,\r\n};\r\n\r\nexport const bubbleChart: ChartJsFactory = {\r\n chartType: \"bubble\",\r\n chartJsType: \"bubble\",\r\n createOptions: () => {\r\n return {};\r\n },\r\n transformData: transformDataToBubble,\r\n};\r\n\r\nexport const multiAxisLineChart: ChartJsFactory = {\r\n chartType: \"multiAxisLine\",\r\n chartJsType: \"line\",\r\n createOptions: (chartData: DiagramDataContainer): any => {\r\n const yAxes = chartData.items.map((dataset, index) => ({\r\n id: `y${index == 1 ? \"\" : index}`,\r\n type: \"linear\",\r\n position: index % 2 === 0 ? \"left\" : \"right\",\r\n }));\r\n return {\r\n scales: {\r\n ...yAxes.reduce((acc: any, axis) => {\r\n acc[axis.id] = axis;\r\n return acc;\r\n }, {}),\r\n },\r\n };\r\n },\r\n transformData: (chartData: DiagramDataContainer): any => {\r\n return {\r\n labels: chartData.labels,\r\n datasets: chartData.items.map((dataset, index) => ({\r\n data: dataset.items.map((item) => item.xValue),\r\n label: dataset.label,\r\n yAxisID: `y${index == 1 ? \"\" : index}`,\r\n backgroundColor: dataset.dataSetcolor,\r\n borderColor: dataset.dataSetcolor,\r\n })),\r\n };\r\n },\r\n};\r\n\r\nexport const polarAreaChart: ChartJsFactory = {\r\n chartType: \"polarArea\",\r\n chartJsType: \"polarArea\",\r\n createOptions: () => {\r\n return {};\r\n },\r\n transformData: (chartData: DiagramDataContainer): any => {\r\n return {\r\n labels: chartData.labels,\r\n datasets: chartData.items.map((dataset) => ({\r\n data: dataset.items.map((item) => item.xValue),\r\n label: dataset.label,\r\n borderColor: dataset.items.map((item) => item.itemColor),\r\n backgroundColor: dataset.items.map((item) => item.itemColor),\r\n })),\r\n };\r\n },\r\n};\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class DefaultChartOptionsProvider {\r\n private readonly factoriesByType: Map<string, ChartJsFactory>;\r\n constructor(\r\n @Inject(CUSTOM_CHART_OPTIONS)\r\n @Optional()\r\n factories: ChartJsFactory[] | undefined\r\n ) {\r\n this.factoriesByType = new Map(\r\n factories?.map((f) => [f.chartType, f]) ?? []\r\n );\r\n }\r\n\r\n getFactory(chartType: string): ChartJsFactory {\r\n return (\r\n this.factoriesByType.get(chartType) ?? {\r\n chartType: chartType,\r\n chartJsType: chartType,\r\n transformData: transformDataToBasicDataSets,\r\n createOptions: () => {\r\n return {};\r\n },\r\n }\r\n );\r\n }\r\n}\r\n\r\nfunction generateRandomColor(): string {\r\n const random = Math.floor(Math.random() * 16777215).toString(16);\r\n return `#${\"000000\".substring(0, 6 - random.length) + random}`;\r\n}\r\n","// lib/view-context/utility/componentLibrary.ts\r\nimport { InjectionToken } from '@angular/core';\r\n\r\nexport enum ComponentLibrary {\r\n MATERIAL = 'material',\r\n PRIMENG = 'primeng',\r\n}\r\n\r\nexport const COMPONENT_LIBRARY = new InjectionToken<ComponentLibrary>('COMPONENT_LIBRARY');\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n Optional,\r\n Output,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { DefaultChartOptionsProvider } from \"./default-chart-options.provider\";\r\nimport {\r\n COMPONENT_LIBRARY,\r\n ComponentLibrary,\r\n} from \"../view-context/utility/componentLibrary\";\r\nimport { Chart } from \"chart.js\";\r\nimport { UIChart } from \"primeng/chart\";\r\nimport {\r\n DiagramDescriptor,\r\n DiagramShape,\r\n DiagramUiModel,\r\n} from \"./smart-chart2/api\";\r\nimport AnnotationPlugin from \"chartjs-plugin-annotation\";\r\nimport ZoomPlugin from \"chartjs-plugin-zoom\";\r\n\r\n@Component({\r\n selector: \"smart-chart\",\r\n templateUrl: \"./smart-chart.component.html\",\r\n styleUrls: [\"./smart-chart.component.css\"],\r\n})\r\nexport class SmartChartComponent {\r\n @ViewChild(\"chartJSRef\") chart?: UIChart;\r\n @Input() diagramUiModel!: DiagramUiModel;\r\n @Input() options?: any;\r\n @Input() plugins: any[] = [];\r\n\r\n @Output() dataSelect = new EventEmitter<any>();\r\n @Output() chartClick = new EventEmitter<any>();\r\n @Output() onDataClicked = new EventEmitter<any>(); //\r\n\r\n data: any;\r\n type: any;\r\n\r\n compLib: ComponentLibrary;\r\n componentLibrary = ComponentLibrary;\r\n\r\n constructor(\r\n private chartOptionProvider: DefaultChartOptionsProvider,\r\n @Inject(COMPONENT_LIBRARY) @Optional() compLib?: ComponentLibrary\r\n ) {\r\n this.compLib = compLib ?? ComponentLibrary.PRIMENG;\r\n Chart.register(AnnotationPlugin);\r\n Chart.register(ZoomPlugin);\r\n }\r\n\r\n ngOnInit() {\r\n let options = undefined;\r\n const diagramType = !!this.diagramUiModel.descriptor?.diagramType\r\n ? this.diagramUiModel.descriptor.diagramType\r\n : \"\";\r\n\r\n const factory = this.chartOptionProvider.getFactory(diagramType);\r\n this.type = factory.chartJsType;\r\n options = factory.createOptions(this.diagramUiModel.diagramData!);\r\n if (this.diagramUiModel.descriptor) {\r\n options = this.deepMerge(\r\n this.convertBackendOptions(this.diagramUiModel.descriptor),\r\n options\r\n );\r\n }\r\n if (this.options) {\r\n options = this.deepMerge(this.options, options);\r\n }\r\n\r\n this.options = options;\r\n this.data = factory.transformData(this.diagramUiModel.diagramData!);\r\n }\r\n\r\n private deepMerge(target: any, source: any): any {\r\n for (const key of Object.keys(source)) {\r\n if (source[key] instanceof Object && target[key]) {\r\n Object.assign(source[key], this.deepMerge(target[key], source[key]));\r\n }\r\n }\r\n Object.assign(target || {}, source);\r\n return target;\r\n }\r\n\r\n private convertBackendOptions(descriptor: DiagramDescriptor) {\r\n const options: any = {\r\n plugins: {\r\n legend: {\r\n display: descriptor.showLegendForChart ?? true,\r\n },\r\n },\r\n scales: {} as any,\r\n };\r\n if (\r\n descriptor.diagramMinX !== undefined &&\r\n descriptor.diagramMaxX !== undefined\r\n ) {\r\n options.scales.x = {\r\n ticks: {\r\n display: descriptor.showLabelsForXAxis ?? true,\r\n },\r\n min: descriptor.diagramMinX,\r\n max: descriptor.diagramMaxX,\r\n };\r\n } else {\r\n options.scales.x = {\r\n ticks: {\r\n display: descriptor.showLabelsForXAxis ?? true,\r\n },\r\n };\r\n }\r\n if (\r\n descriptor.diagramMinY !== undefined &&\r\n descriptor.diagramMaxY !== undefined\r\n ) {\r\n options.scales.y = {\r\n ticks: {\r\n display: descriptor.showLabelsForYAxis ?? true,\r\n },\r\n min: descriptor.diagramMinY,\r\n max: descriptor.diagramMaxY,\r\n };\r\n } else {\r\n options.scales.y = {\r\n ticks: {\r\n display: descriptor.showLabelsForYAxis ?? true,\r\n },\r\n };\r\n }\r\n\r\n //Create shapes\r\n if (descriptor.diagramShapes) {\r\n descriptor.diagramShapes.forEach((shape: DiagramShape, index: number) => {\r\n options.plugins.annotation = options.plugins.annotation || {};\r\n options.plugins.annotation.annotations =\r\n options.plugins.annotation.annotations || {};\r\n\r\n let borderColor = `rgba(\r\n ${shape.borderColor?.red ?? 0},\r\n ${shape.borderColor?.green ?? 0},\r\n ${shape.borderColor?.blue ?? 0},\r\n ${shape.borderColor?.alpha ?? 1})`;\r\n let backgroundColor = `rgba(\r\n ${shape.backgroundColor?.red ?? 0},\r\n ${shape.backgroundColor?.green ?? 0},\r\n ${shape.backgroundColor?.blue ?? 0},\r\n ${shape.backgroundColor?.alpha ?? 1})`;\r\n\r\n let fontColor = `rgba(\r\n ${shape.labelText?.color?.red ?? 0},\r\n ${shape.labelText?.color?.green ?? 0},\r\n ${shape.labelText?.color?.blue ?? 0},\r\n ${shape.labelText?.color?.alpha ?? 1})`;\r\n\r\n let borderDash;\r\n if (shape.borderDashLength && shape.borderDashGap) {\r\n borderDash = [shape.borderDashLength, shape.borderDashGap];\r\n } else {\r\n borderDash = undefined;\r\n }\r\n\r\n const baseAnnotation = {\r\n type: shape.shapeType ?? \"line\",\r\n backgroundColor: backgroundColor ?? undefined,\r\n borderColor: borderColor ?? undefined,\r\n borderWidth: shape.borderWidth ?? 1,\r\n borderDash: borderDash ?? undefined,\r\n drawTime: shape.drawTime ?? undefined,\r\n };\r\n\r\n switch (shape.shapeType) {\r\n case \"box\":\r\n case \"line\":\r\n case \"ellipse\":\r\n options.plugins.annotation.annotations[`shape${index}`] = {\r\n ...baseAnnotation,\r\n xMin: shape.xMin ?? undefined,\r\n xMax: shape.xMax ?? undefined,\r\n yMin: shape.yMin ?? undefined,\r\n yMax: shape.yMax ?? undefined,\r\n };\r\n break;\r\n\r\n case \"label\":\r\n options.plugins.annotation.annotations[`shape${index}`] = {\r\n ...baseAnnotation,\r\n xValue: shape.xMin ?? undefined,\r\n yValue: shape.yMin ?? undefined,\r\n content: shape.labelText?.content ?? undefined,\r\n textAlign: shape.labelText?.textAlign ?? undefined,\r\n color: fontColor ?? undefined,\r\n font: {\r\n size: shape.labelText?.size ?? undefined,\r\n weight: shape.labelText?.weight ?? undefined,\r\n style: shape.labelText?.style ?? undefined,\r\n },\r\n };\r\n break;\r\n\r\n case \"point\":\r\n case \"polygon\":\r\n options.plugins.annotation.annotations[`shape${index}`] = {\r\n ...baseAnnotation,\r\n xValue: shape.xMin ?? undefined,\r\n yValue: shape.yMin ?? undefined,\r\n };\r\n break;\r\n\r\n default:\r\n // Optionally handle any other shape types\r\n console.warn(`Unknown shape type: ${shape.shapeType}`);\r\n break;\r\n }\r\n });\r\n }\r\n\r\n if (descriptor.backgroundColor) {\r\n let backgroundColor = `rgba(\r\n ${descriptor.backgroundColor?.red ?? 0},\r\n ${descriptor.backgroundColor?.green ?? 0},\r\n ${descriptor.backgroundColor?.blue ?? 0},\r\n ${descriptor.backgroundColor?.alpha ?? 1})`;\r\n\r\n let id = \"customCanvasBackgroundColor\";\r\n const plugin = {\r\n id: id,\r\n beforeDraw: (chart: any, args: any, options: any) => {\r\n const { ctx, chartArea } = chart;\r\n\r\n ctx.save();\r\n ctx.globalCompositeOperation = \"destination-over\";\r\n ctx.fillStyle = backgroundColor;\r\n ctx.fillRect(\r\n chartArea.left,\r\n chartArea.top,\r\n chartArea.right - chartArea.left,\r\n chartArea.bottom - chartArea.top\r\n );\r\n ctx.restore();\r\n },\r\n };\r\n this.plugins.push(plugin);\r\n\r\n options.plugins[`${id}`] = {\r\n color: backgroundColor,\r\n };\r\n }\r\n return options;\r\n }\r\n\r\n onDataSelect(event: any) {\r\n this.dataSelect.emit(event);\r\n }\r\n\r\n handleChartClick(event: any): void {\r\n this.chartClick.emit(event);\r\n }\r\n\r\n handleOnDataClicked(event: any): void {\r\n const canvas = event.target as HTMLCanvasElement;\r\n const chart = Chart.getChart(canvas);\r\n\r\n if (chart) {\r\n const elements = chart.getElementsAtEventForMode(\r\n event,\r\n \"nearest\",\r\n { intersect: true },\r\n false\r\n );\r\n if (elements.length === 0) {\r\n return;\r\n }\r\n const clickedItems = chart.tooltip?.dataPoints?.map((item) => {\r\n return {\r\n datasetIndex: item.datasetIndex,\r\n itemIndex: item.dataIndex,\r\n element: item.element,\r\n };\r\n });\r\n\r\n this.onDataClicked.emit({ event, clickedItems });\r\n }\r\n }\r\n\r\n getBase64Image() {\r\n return this.chart?.getBase64Image();\r\n }\r\n\r\n refresh() {\r\n return this.chart?.refresh();\r\n }\r\n\r\n getChart() {\r\n return this.chart?.chart;\r\n }\r\n getVisiblePoints() {\r\n if (!this.chart) return;\r\n\r\n const chartInstance = this.chart.chart;\r\n if (!chartInstance) return;\r\n\r\n const visiblePoints: any = [];\r\n\r\n chartInstance.data.datasets.forEach((dataset: any, datasetIndex: any) => {\r\n const meta = chartInstance.getDatasetMeta(datasetIndex);\r\n\r\n // Check if the dataset is hidden\r\n if (!chartInstance.isDatasetVisible(datasetIndex)) {\r\n return;\r\n }\r\n\r\n const xMin = meta.xScale.min;\r\n const xMax = meta.xScale.max;\r\n const yMin = meta.yScale.min;\r\n const yMax = meta.yScale.max;\r\n\r\n dataset.data.forEach((point: any, dataIndex: number) => {\r\n const { x, y } = point;\r\n\r\n if (x >= xMin && x <= xMax && y >= yMin && y <= yMax) {\r\n visiblePoints.push({\r\n datasetIndex,\r\n dataIndex,\r\n x,\r\n y,\r\n });\r\n }\r\n });\r\n });\r\n\r\n return visiblePoints;\r\n }\r\n}\r\n","@if(compLib === componentLibrary.PRIMENG) {\r\n<p-chart\r\n #chartJSRef\r\n [type]=\"type\"\r\n [data]=\"data\"\r\n [options]=\"options\"\r\n [plugins]=\"plugins\"\r\n (onDataSelect)=\"onDataSelect($event)\"\r\n (click)=\"handleChartClick($event)\"\r\n (click)=\"handleOnDataClicked($event)\"\r\n/>\r\n} @else {\r\n<p>Only PrimeNg component library is supported</p>\r\n}\r\n","import { ModuleWithProviders, NgModule, Provider } from \"@angular/core\";\r\nimport { BrowserModule } from \"@angular/platform-browser\";\r\nimport { ChartModule } from \"primeng/chart\";\r\nimport {\r\n barChart,\r\n bubbleChart,\r\n CUSTOM_CHART_OPTIONS,\r\n DefaultChartOptionsProvider,\r\n doughnutChart,\r\n horizontalBarChart,\r\n multiAxisLineChart,\r\n pieChart,\r\n polarAreaChart,\r\n radarChart,\r\n scatterChart,\r\n stackedBarChart,\r\n} from \"./default-chart-options.provider\";\r\nimport { SmartChartComponent } from \"./smart-chart.component\";\r\n\r\nconst DEFAULT_PROVIDERS: Provider[] = [\r\n DefaultChartOptionsProvider,\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: barChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: scatterChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: bubbleChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: horizontalBarChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: stackedBarChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: multiAxisLineChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: polarAreaChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: radarChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: doughnutChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: pieChart, multi: true },\r\n];\r\n\r\n@NgModule({\r\n declarations: [SmartChartComponent],\r\n imports: [BrowserModule, ChartModule],\r\n exports: [SmartChartComponent],\r\n})\r\nexport class SmartChartModule {\r\n static forRoot(providers: Provider[]): ModuleWithProviders<SmartChartModule> {\r\n return {\r\n ngModule: SmartChartModule,\r\n providers: [...DEFAULT_PROVIDERS, ...providers],\r\n };\r\n }\r\n}\r\n","/**\r\n * Chart API\r\n * API for consume charts.\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nexport type ChartOrientation = 'Horizontal' | 'Vertical';\r\n\r\nexport const ChartOrientation = {\r\n Horizontal: 'Horizontal' as ChartOrientation,\r\n Vertical: 'Vertical' as ChartOrientation\r\n};\r\n\r\n","/**\r\n * Chart API\r\n * API for consume charts.\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nexport type ChartType = 'BarChart' | 'GroupedBarChart' | 'StackedBarChart' | 'NormalizedBarChart' | 'PieChart' | 'AdvancedPieChart' | 'PieGrid';\r\n\r\nexport const ChartType = {\r\n BarChart: 'BarChart' as ChartType,\r\n GroupedBarChart: 'GroupedBarChart' as ChartType,\r\n StackedBarChart: 'StackedBarChart' as ChartType,\r\n NormalizedBarChart: 'NormalizedBarChart' as ChartType,\r\n PieChart: 'PieChart' as ChartType,\r\n AdvancedPieChart: 'AdvancedPieChart' as ChartType,\r\n PieGrid: 'PieGrid' as ChartType\r\n};\r\n\r\n","/**\r\n * Chart API\r\n * API for consume charts.\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nexport interface ChartValue { \r\n name: string;\r\n value?: object;\r\n series: Array<ChartValue>;\r\n}\r\n\r\n","/**\r\n * Chart API\r\n * API for consume charts.\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nexport type PieChartLegendPosition = 'right' | 'below';\r\n\r\nexport const PieChartLegendPosition = {\r\n Right: 'right' as PieChartLegendPosition,\r\n Below: 'below' as PieChartLegendPosition\r\n};\r\n\r\n","/**\r\n * smartchart API\r\n * Describes a model for smart chart.\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nexport interface DiagramColor { \r\n red?: number;\r\n green?: number;\r\n blue?: number;\r\n alpha?: number;\r\n}\r\n\r\n","/**\r\n * smartchart API\r\n * Describes a model for smart chart.\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\n/**\r\n * Contains an items data, based on the type of the diagram.\r\n */\r\nexport interface DiagramDataItem { \r\n uri?: string;\r\n label?: string;\r\n xValue?: number;\r\n yValue?: number;\r\n /**\r\n * This property specifies the radius of each bubble in a bubble chart. It is used to determine the size of the bubbles relative to their data values.\r\n */\r\n rValue?: number;\r\n itemColor?: string;\r\n}\r\n\r\n","/**\r\n * smartchart API\r\n * Describes a model for smart chart.\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nexport interface DiagramDataSetConstructionInstruction { \r\n xValuePath?: Array<string>;\r\n yValuePath?: Array<string>;\r\n rValuePath?: Array<string>;\r\n labelValuePath?: Array<string>;\r\n colorValuePath?: Array<string>;\r\n loadLatest?: boolean;\r\n dataSetLabel?: string;\r\n dataSetType?: string;\r\n}\r\n\r\n","/**\r\n * smartchart API\r\n * Describes a model for smart chart.\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nexport type DrawTime = 'beforeDraw' | 'beforeDatasetsDraw' | 'afterDatasetsDraw' | 'afterDraw';\r\n\r\nexport const DrawTime = {\r\n BeforeDraw: 'beforeDraw' as DrawTime,\r\n BeforeDatasetsDraw: 'beforeDatasetsDraw' as DrawTime,\r\n AfterDatasetsDraw: 'afterDatasetsDraw' as DrawTime,\r\n AfterDraw: 'afterDraw' as DrawTime\r\n};\r\n\r\n","/*\r\n * Public API Surface of smart-chart\r\n */\r\n\r\nexport * from \"./smart-chart/smart-chart.module\";\r\nexport * from \"./smart-chart/smart-chart.component\";\r\nexport * from \"./smart-chart/api/model/models\";\r\nexport * from \"./smart-chart/smart-chart2/api/model/models\";\r\nexport * from \"./smart-chart/default-chart-options.provider\";\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './smart-chart-projects';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smartbit4all-ng-client-src-lib-smart-chart.mjs","sources":["../../../projects/smart-ng-client/src/lib/smart-chart/default-chart-options.provider.ts","../../../projects/smart-ng-client/src/lib/view-context/utility/componentLibrary.ts","../../../projects/smart-ng-client/src/lib/smart-chart/smart-chart.component.ts","../../../projects/smart-ng-client/src/lib/smart-chart/smart-chart.component.html","../../../projects/smart-ng-client/src/lib/smart-chart/smart-chart.module.ts","../../../projects/smart-ng-client/src/lib/smart-chart/api/model/chartOrientation.ts","../../../projects/smart-ng-client/src/lib/smart-chart/api/model/chartType.ts","../../../projects/smart-ng-client/src/lib/smart-chart/api/model/chartValue.ts","../../../projects/smart-ng-client/src/lib/smart-chart/api/model/pieChartLegendPosition.ts","../../../projects/smart-ng-client/src/lib/smart-chart/smart-chart2/api/model/diagramColor.ts","../../../projects/smart-ng-client/src/lib/smart-chart/smart-chart2/api/model/diagramDataItem.ts","../../../projects/smart-ng-client/src/lib/smart-chart/smart-chart2/api/model/diagramDataSetConstructionInstruction.ts","../../../projects/smart-ng-client/src/lib/smart-chart/smart-chart2/api/model/drawTime.ts","../../../projects/smart-ng-client/src/lib/smart-chart-projects.ts","../../../projects/smart-ng-client/src/lib/smartbit4all-ng-client-src-lib-smart-chart.ts"],"sourcesContent":["import { Injectable, InjectionToken, Optional, Inject } from \"@angular/core\";\r\nimport { DiagramDataContainer } from \"./smart-chart2/api\";\r\n\r\nexport const CUSTOM_CHART_OPTIONS = new InjectionToken<ChartJsFactory>(\r\n \"CUSTOM_CHART_OPTIONS\"\r\n);\r\n\r\nexport interface ChartJsFactory {\r\n readonly chartType: string;\r\n readonly chartJsType: string;\r\n createOptions(chartData: DiagramDataContainer): any;\r\n transformData(chartData: DiagramDataContainer): any;\r\n}\r\n\r\nexport function transformDataToBasicDataSets(\r\n chartData: DiagramDataContainer\r\n): any {\r\n return {\r\n labels: chartData.labels,\r\n datasets: chartData.items.map((dataset) => {\r\n const color = dataset.dataSetcolor || generateRandomColor();\r\n return {\r\n data: dataset.items.map((item) => item.xValue),\r\n label: dataset.label,\r\n backgroundColor: color,\r\n borderColor: color,\r\n };\r\n }),\r\n };\r\n}\r\n\r\nexport function transformDataToBarLikeDataSet(\r\n chartData: DiagramDataContainer\r\n): any {\r\n return {\r\n labels: chartData.labels,\r\n datasets: chartData.items.map((dataset) => {\r\n return {\r\n data: dataset.items.map((item) => item.xValue),\r\n label: dataset.label,\r\n backgroundColor: dataset.items.map(\r\n (item) => item.itemColor || generateRandomColor()\r\n ),\r\n borderColor: dataset.items.map(\r\n (item) => item.itemColor || generateRandomColor()\r\n ),\r\n };\r\n }),\r\n };\r\n}\r\n\r\nexport function transformDataToScatter(chartData: DiagramDataContainer): any {\r\n return {\r\n datasets: chartData.items.map((dataset) => {\r\n const color = dataset.dataSetcolor || generateRandomColor();\r\n return {\r\n label: dataset.label,\r\n data: dataset.items.map((item) => ({\r\n x: item.xValue,\r\n y: item.yValue,\r\n })),\r\n backgroundColor: color,\r\n borderColor: color,\r\n };\r\n }),\r\n };\r\n}\r\n\r\nexport function transformDataToBubble(chartData: DiagramDataContainer): any {\r\n return {\r\n datasets: chartData.items.map((dataset) => {\r\n const color = dataset.dataSetcolor || generateRandomColor();\r\n return {\r\n label: dataset.label,\r\n data: dataset.items.map((item) => ({\r\n x: item.xValue,\r\n y: item.yValue,\r\n r: item.rValue ?? 5,\r\n })),\r\n backgroundColor: color,\r\n borderColor: color,\r\n };\r\n }),\r\n };\r\n}\r\n\r\nexport const barChart: ChartJsFactory = {\r\n chartType: \"bar\",\r\n chartJsType: \"bar\",\r\n createOptions: () => {\r\n return {};\r\n },\r\n transformData: transformDataToBarLikeDataSet,\r\n};\r\n\r\nexport const horizontalBarChart: ChartJsFactory = {\r\n chartType: \"horizontalBar\",\r\n chartJsType: \"bar\",\r\n createOptions: () => {\r\n return {\r\n indexAxis: \"y\",\r\n };\r\n },\r\n transformData: transformDataToBarLikeDataSet,\r\n};\r\n\r\nexport const radarChart: ChartJsFactory = {\r\n chartType: \"radar\",\r\n chartJsType: \"radar\",\r\n createOptions: () => {\r\n return {};\r\n },\r\n transformData: (chartData: DiagramDataContainer): any => {\r\n return {\r\n labels: chartData.labels,\r\n datasets: chartData.items.map((dataset) => ({\r\n data: dataset.items.map((item) => item.xValue),\r\n label: dataset.label,\r\n borderColor: dataset.dataSetcolor,\r\n pointBackgroundColor: dataset.dataSetcolor,\r\n pointBorderColor: dataset.dataSetcolor,\r\n pointHoverBackgroundColor: \"#000000\",\r\n pointHoverBorderColor: dataset.dataSetcolor,\r\n })),\r\n };\r\n },\r\n};\r\n\r\nexport const stackedBarChart: ChartJsFactory = {\r\n chartType: \"stackedBar\",\r\n chartJsType: \"bar\",\r\n createOptions: () => {\r\n return {\r\n scales: {\r\n x: {\r\n stacked: true,\r\n },\r\n y: {\r\n stacked: true,\r\n },\r\n },\r\n };\r\n },\r\n transformData: transformDataToBasicDataSets,\r\n};\r\n\r\nexport const pieChart: ChartJsFactory = {\r\n chartType: \"pie\",\r\n chartJsType: \"pie\",\r\n createOptions: () => {\r\n return {};\r\n },\r\n transformData: transformDataToBarLikeDataSet,\r\n};\r\n\r\nexport const doughnutChart: ChartJsFactory = {\r\n chartType: \"doughnut\",\r\n chartJsType: \"doughnut\",\r\n createOptions: () => {\r\n return {};\r\n },\r\n transformData: transformDataToBarLikeDataSet,\r\n};\r\n\r\nexport const scatterChart: ChartJsFactory = {\r\n chartType: \"scatter\",\r\n chartJsType: \"scatter\",\r\n createOptions: () => {\r\n return {};\r\n },\r\n transformData: transformDataToScatter,\r\n};\r\n\r\nexport const bubbleChart: ChartJsFactory = {\r\n chartType: \"bubble\",\r\n chartJsType: \"bubble\",\r\n createOptions: () => {\r\n return {};\r\n },\r\n transformData: transformDataToBubble,\r\n};\r\n\r\nexport const multiAxisLineChart: ChartJsFactory = {\r\n chartType: \"multiAxisLine\",\r\n chartJsType: \"line\",\r\n createOptions: (chartData: DiagramDataContainer): any => {\r\n const yAxes = chartData.items.map((dataset, index) => ({\r\n id: `y${index == 1 ? \"\" : index}`,\r\n type: \"linear\",\r\n position: index % 2 === 0 ? \"left\" : \"right\",\r\n }));\r\n return {\r\n scales: {\r\n ...yAxes.reduce((acc: any, axis) => {\r\n acc[axis.id] = axis;\r\n return acc;\r\n }, {}),\r\n },\r\n };\r\n },\r\n transformData: (chartData: DiagramDataContainer): any => {\r\n return {\r\n labels: chartData.labels,\r\n datasets: chartData.items.map((dataset, index) => ({\r\n data: dataset.items.map((item) => item.xValue),\r\n label: dataset.label,\r\n yAxisID: `y${index == 1 ? \"\" : index}`,\r\n backgroundColor: dataset.dataSetcolor,\r\n borderColor: dataset.dataSetcolor,\r\n })),\r\n };\r\n },\r\n};\r\n\r\nexport const polarAreaChart: ChartJsFactory = {\r\n chartType: \"polarArea\",\r\n chartJsType: \"polarArea\",\r\n createOptions: () => {\r\n return {};\r\n },\r\n transformData: (chartData: DiagramDataContainer): any => {\r\n return {\r\n labels: chartData.labels,\r\n datasets: chartData.items.map((dataset) => ({\r\n data: dataset.items.map((item) => item.xValue),\r\n label: dataset.label,\r\n borderColor: dataset.items.map((item) => item.itemColor),\r\n backgroundColor: dataset.items.map((item) => item.itemColor),\r\n })),\r\n };\r\n },\r\n};\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class DefaultChartOptionsProvider {\r\n private readonly factoriesByType: Map<string, ChartJsFactory>;\r\n constructor(\r\n @Inject(CUSTOM_CHART_OPTIONS)\r\n @Optional()\r\n factories: ChartJsFactory[] | undefined\r\n ) {\r\n this.factoriesByType = new Map(\r\n factories?.map((f) => [f.chartType, f]) ?? []\r\n );\r\n }\r\n\r\n getFactory(chartType: string): ChartJsFactory {\r\n return (\r\n this.factoriesByType.get(chartType) ?? {\r\n chartType: chartType,\r\n chartJsType: chartType,\r\n transformData: transformDataToBasicDataSets,\r\n createOptions: () => {\r\n return {};\r\n },\r\n }\r\n );\r\n }\r\n}\r\n\r\nfunction generateRandomColor(): string {\r\n const random = Math.floor(Math.random() * 16777215).toString(16);\r\n return `#${\"000000\".substring(0, 6 - random.length) + random}`;\r\n}\r\n","// lib/view-context/utility/componentLibrary.ts\r\nimport { InjectionToken } from '@angular/core';\r\n\r\nexport enum ComponentLibrary {\r\n MATERIAL = 'material',\r\n PRIMENG = 'primeng',\r\n}\r\n\r\nexport const COMPONENT_LIBRARY = new InjectionToken<ComponentLibrary>('COMPONENT_LIBRARY');\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n Optional,\r\n Output,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { DefaultChartOptionsProvider } from \"./default-chart-options.provider\";\r\nimport {\r\n COMPONENT_LIBRARY,\r\n ComponentLibrary,\r\n} from \"../view-context/utility/componentLibrary\";\r\nimport { Chart } from \"chart.js\";\r\nimport { UIChart } from \"primeng/chart\";\r\nimport {\r\n DiagramDescriptor,\r\n DiagramShape,\r\n DiagramUiModel,\r\n} from \"./smart-chart2/api\";\r\nimport AnnotationPlugin from \"chartjs-plugin-annotation\";\r\nimport ZoomPlugin from \"chartjs-plugin-zoom\";\r\n\r\n@Component({\r\n selector: \"smart-chart\",\r\n templateUrl: \"./smart-chart.component.html\",\r\n styleUrls: [\"./smart-chart.component.css\"],\r\n})\r\nexport class SmartChartComponent {\r\n @ViewChild(\"chartJSRef\") chart?: UIChart;\r\n @Input() diagramUiModel!: DiagramUiModel;\r\n @Input() options?: any;\r\n @Input() plugins: any[] = [];\r\n\r\n @Output() dataSelect = new EventEmitter<any>();\r\n @Output() chartClick = new EventEmitter<any>();\r\n @Output() onDataClicked = new EventEmitter<any>(); //\r\n\r\n data: any;\r\n type: any;\r\n\r\n compLib: ComponentLibrary;\r\n componentLibrary = ComponentLibrary;\r\n\r\n constructor(\r\n private chartOptionProvider: DefaultChartOptionsProvider,\r\n @Inject(COMPONENT_LIBRARY) @Optional() compLib?: ComponentLibrary\r\n ) {\r\n this.compLib = compLib ?? ComponentLibrary.PRIMENG;\r\n Chart.register(AnnotationPlugin);\r\n Chart.register(ZoomPlugin);\r\n }\r\n\r\n ngOnInit() {\r\n let options = undefined;\r\n const diagramType = !!this.diagramUiModel.descriptor?.diagramType\r\n ? this.diagramUiModel.descriptor.diagramType\r\n : \"\";\r\n\r\n const factory = this.chartOptionProvider.getFactory(diagramType);\r\n this.type = factory.chartJsType;\r\n options = factory.createOptions(this.diagramUiModel.diagramData!);\r\n if (this.diagramUiModel.descriptor) {\r\n options = this.deepMerge(\r\n this.convertBackendOptions(this.diagramUiModel.descriptor),\r\n options\r\n );\r\n }\r\n if (this.options) {\r\n options = this.deepMerge(this.options, options);\r\n }\r\n\r\n this.options = options;\r\n this.data = factory.transformData(this.diagramUiModel.diagramData!);\r\n }\r\n\r\n private deepMerge(target: any, source: any): any {\r\n for (const key of Object.keys(source)) {\r\n if (source[key] instanceof Object && target[key]) {\r\n Object.assign(source[key], this.deepMerge(target[key], source[key]));\r\n }\r\n }\r\n Object.assign(target || {}, source);\r\n return target;\r\n }\r\n\r\n private convertBackendOptions(descriptor: DiagramDescriptor) {\r\n const options: any = {\r\n plugins: {\r\n legend: {\r\n display: descriptor.showLegendForChart ?? true,\r\n },\r\n },\r\n scales: {} as any,\r\n };\r\n if (\r\n descriptor.diagramMinX !== undefined &&\r\n descriptor.diagramMaxX !== undefined\r\n ) {\r\n options.scales.x = {\r\n ticks: {\r\n display: descriptor.showLabelsForXAxis ?? true,\r\n },\r\n min: descriptor.diagramMinX,\r\n max: descriptor.diagramMaxX,\r\n };\r\n } else {\r\n options.scales.x = {\r\n ticks: {\r\n display: descriptor.showLabelsForXAxis ?? true,\r\n },\r\n };\r\n }\r\n if (\r\n descriptor.diagramMinY !== undefined &&\r\n descriptor.diagramMaxY !== undefined\r\n ) {\r\n options.scales.y = {\r\n ticks: {\r\n display: descriptor.showLabelsForYAxis ?? true,\r\n },\r\n min: descriptor.diagramMinY,\r\n max: descriptor.diagramMaxY,\r\n };\r\n } else {\r\n options.scales.y = {\r\n ticks: {\r\n display: descriptor.showLabelsForYAxis ?? true,\r\n },\r\n };\r\n }\r\n\r\n //Create shapes\r\n if (descriptor.diagramShapes) {\r\n descriptor.diagramShapes.forEach((shape: DiagramShape, index: number) => {\r\n options.plugins.annotation = options.plugins.annotation || {};\r\n options.plugins.annotation.annotations =\r\n options.plugins.annotation.annotations || {};\r\n\r\n let borderColor = `rgba(\r\n ${shape.borderColor?.red ?? 0},\r\n ${shape.borderColor?.green ?? 0},\r\n ${shape.borderColor?.blue ?? 0},\r\n ${shape.borderColor?.alpha ?? 1})`;\r\n let backgroundColor = `rgba(\r\n ${shape.backgroundColor?.red ?? 0},\r\n ${shape.backgroundColor?.green ?? 0},\r\n ${shape.backgroundColor?.blue ?? 0},\r\n ${shape.backgroundColor?.alpha ?? 1})`;\r\n\r\n let fontColor = `rgba(\r\n ${shape.labelText?.color?.red ?? 0},\r\n ${shape.labelText?.color?.green ?? 0},\r\n ${shape.labelText?.color?.blue ?? 0},\r\n ${shape.labelText?.color?.alpha ?? 1})`;\r\n\r\n let borderDash;\r\n if (shape.borderDashLength && shape.borderDashGap) {\r\n borderDash = [shape.borderDashLength, shape.borderDashGap];\r\n } else {\r\n borderDash = undefined;\r\n }\r\n\r\n const baseAnnotation = {\r\n type: shape.shapeType ?? \"line\",\r\n backgroundColor: backgroundColor ?? undefined,\r\n borderColor: borderColor ?? undefined,\r\n borderWidth: shape.borderWidth ?? 1,\r\n borderDash: borderDash ?? undefined,\r\n drawTime: shape.drawTime ?? undefined,\r\n };\r\n\r\n switch (shape.shapeType) {\r\n case \"box\":\r\n case \"line\":\r\n case \"ellipse\":\r\n options.plugins.annotation.annotations[`shape${index}`] = {\r\n ...baseAnnotation,\r\n xMin: shape.xMin ?? undefined,\r\n xMax: shape.xMax ?? undefined,\r\n yMin: shape.yMin ?? undefined,\r\n yMax: shape.yMax ?? undefined,\r\n };\r\n break;\r\n\r\n case \"label\":\r\n options.plugins.annotation.annotations[`shape${index}`] = {\r\n ...baseAnnotation,\r\n xValue: shape.xMin ?? undefined,\r\n yValue: shape.yMin ?? undefined,\r\n content: shape.labelText?.content ?? undefined,\r\n textAlign: shape.labelText?.textAlign ?? undefined,\r\n color: fontColor ?? undefined,\r\n font: {\r\n size: shape.labelText?.size ?? undefined,\r\n weight: shape.labelText?.weight ?? undefined,\r\n style: shape.labelText?.style ?? undefined,\r\n },\r\n };\r\n break;\r\n\r\n case \"point\":\r\n case \"polygon\":\r\n options.plugins.annotation.annotations[`shape${index}`] = {\r\n ...baseAnnotation,\r\n xValue: shape.xMin ?? undefined,\r\n yValue: shape.yMin ?? undefined,\r\n };\r\n break;\r\n\r\n default:\r\n // Optionally handle any other shape types\r\n console.warn(`Unknown shape type: ${shape.shapeType}`);\r\n break;\r\n }\r\n });\r\n }\r\n\r\n if (descriptor.backgroundColor) {\r\n let backgroundColor = `rgba(\r\n ${descriptor.backgroundColor?.red ?? 0},\r\n ${descriptor.backgroundColor?.green ?? 0},\r\n ${descriptor.backgroundColor?.blue ?? 0},\r\n ${descriptor.backgroundColor?.alpha ?? 1})`;\r\n\r\n let id = \"customCanvasBackgroundColor\";\r\n const plugin = {\r\n id: id,\r\n beforeDraw: (chart: any, args: any, options: any) => {\r\n const { ctx, chartArea } = chart;\r\n\r\n ctx.save();\r\n ctx.globalCompositeOperation = \"destination-over\";\r\n ctx.fillStyle = backgroundColor;\r\n ctx.fillRect(\r\n chartArea.left,\r\n chartArea.top,\r\n chartArea.right - chartArea.left,\r\n chartArea.bottom - chartArea.top\r\n );\r\n ctx.restore();\r\n },\r\n };\r\n this.plugins.push(plugin);\r\n\r\n options.plugins[`${id}`] = {\r\n color: backgroundColor,\r\n };\r\n }\r\n return options;\r\n }\r\n\r\n onDataSelect(event: any) {\r\n this.dataSelect.emit(event);\r\n }\r\n\r\n handleChartClick(event: any): void {\r\n this.chartClick.emit(event);\r\n }\r\n\r\n handleOnDataClicked(event: any): void {\r\n const canvas = event.target as HTMLCanvasElement;\r\n const chart = Chart.getChart(canvas);\r\n\r\n if (chart) {\r\n const elements = chart.getElementsAtEventForMode(\r\n event,\r\n \"nearest\",\r\n { intersect: true },\r\n false\r\n );\r\n if (elements.length === 0) {\r\n return;\r\n }\r\n const clickedItems = chart.tooltip?.dataPoints?.map((item) => {\r\n return {\r\n datasetIndex: item.datasetIndex,\r\n itemIndex: item.dataIndex,\r\n element: item.element,\r\n };\r\n });\r\n\r\n this.onDataClicked.emit({ event, clickedItems });\r\n }\r\n }\r\n\r\n getBase64Image() {\r\n return this.chart?.getBase64Image();\r\n }\r\n\r\n refresh() {\r\n return this.chart?.refresh();\r\n }\r\n\r\n getChart() {\r\n return this.chart?.chart;\r\n }\r\n getVisiblePoints() {\r\n if (!this.chart) return;\r\n\r\n const chartInstance = this.chart.chart;\r\n if (!chartInstance) return;\r\n\r\n const visiblePoints: any = [];\r\n\r\n chartInstance.data.datasets.forEach((dataset: any, datasetIndex: any) => {\r\n const meta = chartInstance.getDatasetMeta(datasetIndex);\r\n\r\n // Check if the dataset is hidden\r\n if (!chartInstance.isDatasetVisible(datasetIndex)) {\r\n return;\r\n }\r\n\r\n const xMin = meta.xScale.min;\r\n const xMax = meta.xScale.max;\r\n const yMin = meta.yScale.min;\r\n const yMax = meta.yScale.max;\r\n\r\n dataset.data.forEach((point: any, dataIndex: number) => {\r\n const { x, y } = point;\r\n\r\n if (x >= xMin && x <= xMax && y >= yMin && y <= yMax) {\r\n visiblePoints.push({\r\n datasetIndex,\r\n dataIndex,\r\n x,\r\n y,\r\n });\r\n }\r\n });\r\n });\r\n\r\n return visiblePoints;\r\n }\r\n}\r\n","@if(compLib === componentLibrary.PRIMENG) {\r\n<p-chart\r\n #chartJSRef\r\n [type]=\"type\"\r\n [data]=\"data\"\r\n [options]=\"options\"\r\n [plugins]=\"plugins\"\r\n (onDataSelect)=\"onDataSelect($event)\"\r\n (click)=\"handleChartClick($event)\"\r\n (click)=\"handleOnDataClicked($event)\"\r\n/>\r\n} @else {\r\n<p>Only PrimeNg component library is supported</p>\r\n}\r\n","import { ModuleWithProviders, NgModule, Provider } from \"@angular/core\";\r\nimport { BrowserModule } from \"@angular/platform-browser\";\r\nimport { ChartModule } from \"primeng/chart\";\r\nimport {\r\n barChart,\r\n bubbleChart,\r\n CUSTOM_CHART_OPTIONS,\r\n DefaultChartOptionsProvider,\r\n doughnutChart,\r\n horizontalBarChart,\r\n multiAxisLineChart,\r\n pieChart,\r\n polarAreaChart,\r\n radarChart,\r\n scatterChart,\r\n stackedBarChart,\r\n} from \"./default-chart-options.provider\";\r\nimport { SmartChartComponent } from \"./smart-chart.component\";\r\n\r\nconst DEFAULT_PROVIDERS: Provider[] = [\r\n DefaultChartOptionsProvider,\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: barChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: scatterChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: bubbleChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: horizontalBarChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: stackedBarChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: multiAxisLineChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: polarAreaChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: radarChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: doughnutChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: pieChart, multi: true },\r\n];\r\n\r\n@NgModule({\r\n declarations: [SmartChartComponent],\r\n imports: [BrowserModule, ChartModule],\r\n exports: [SmartChartComponent],\r\n})\r\nexport class SmartChartModule {\r\n static forRoot(providers: Provider[]): ModuleWithProviders<SmartChartModule> {\r\n return {\r\n ngModule: SmartChartModule,\r\n providers: [...DEFAULT_PROVIDERS, ...providers],\r\n };\r\n }\r\n}\r\n","/**\r\n * Chart API\r\n * API for consume charts.\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nexport type ChartOrientation = 'Horizontal' | 'Vertical';\r\n\r\nexport const ChartOrientation = {\r\n Horizontal: 'Horizontal' as ChartOrientation,\r\n Vertical: 'Vertical' as ChartOrientation\r\n};\r\n\r\n","/**\r\n * Chart API\r\n * API for consume charts.\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nexport type ChartType = 'BarChart' | 'GroupedBarChart' | 'StackedBarChart' | 'NormalizedBarChart' | 'PieChart' | 'AdvancedPieChart' | 'PieGrid';\r\n\r\nexport const ChartType = {\r\n BarChart: 'BarChart' as ChartType,\r\n GroupedBarChart: 'GroupedBarChart' as ChartType,\r\n StackedBarChart: 'StackedBarChart' as ChartType,\r\n NormalizedBarChart: 'NormalizedBarChart' as ChartType,\r\n PieChart: 'PieChart' as ChartType,\r\n AdvancedPieChart: 'AdvancedPieChart' as ChartType,\r\n PieGrid: 'PieGrid' as ChartType\r\n};\r\n\r\n","/**\r\n * Chart API\r\n * API for consume charts.\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nexport interface ChartValue { \r\n name: string;\r\n value?: object;\r\n series: Array<ChartValue>;\r\n}\r\n\r\n","/**\r\n * Chart API\r\n * API for consume charts.\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nexport type PieChartLegendPosition = 'right' | 'below';\r\n\r\nexport const PieChartLegendPosition = {\r\n Right: 'right' as PieChartLegendPosition,\r\n Below: 'below' as PieChartLegendPosition\r\n};\r\n\r\n","/**\n * smartchart API\n * Describes a model for smart chart.\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@it4all.hu\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface DiagramColor { \n red?: number;\n green?: number;\n blue?: number;\n alpha?: number;\n}\n\n","/**\n * smartchart API\n * Describes a model for smart chart.\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@it4all.hu\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Contains an items data, based on the type of the diagram.\n */\nexport interface DiagramDataItem { \n uri?: string;\n label?: string;\n xValue?: number;\n yValue?: number;\n /**\n * This property specifies the radius of each bubble in a bubble chart. It is used to determine the size of the bubbles relative to their data values.\n */\n rValue?: number;\n itemColor?: string;\n}\n\n","/**\n * smartchart API\n * Describes a model for smart chart.\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@it4all.hu\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface DiagramDataSetConstructionInstruction { \n xValuePath?: Array<string>;\n yValuePath?: Array<string>;\n rValuePath?: Array<string>;\n labelValuePath?: Array<string>;\n colorValuePath?: Array<string>;\n loadLatest?: boolean;\n dataSetLabel?: string;\n dataSetType?: string;\n}\n\n","/**\n * smartchart API\n * Describes a model for smart chart.\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@it4all.hu\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type DrawTime = 'beforeDraw' | 'beforeDatasetsDraw' | 'afterDatasetsDraw' | 'afterDraw';\n\nexport const DrawTime = {\n BeforeDraw: 'beforeDraw' as DrawTime,\n BeforeDatasetsDraw: 'beforeDatasetsDraw' as DrawTime,\n AfterDatasetsDraw: 'afterDatasetsDraw' as DrawTime,\n AfterDraw: 'afterDraw' as DrawTime\n};\n\n","/*\r\n * Public API Surface of smart-chart\r\n */\r\n\r\nexport * from \"./smart-chart/smart-chart.module\";\r\nexport * from \"./smart-chart/smart-chart.component\";\r\nexport * from \"./smart-chart/api/model/models\";\r\nexport * from \"./smart-chart/smart-chart2/api/model/models\";\r\nexport * from \"./smart-chart/default-chart-options.provider\";\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './smart-chart-projects';\n"],"names":[],"mappings":"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"}