codecharta-visualization 1.114.0 → 1.115.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (443) hide show
  1. package/README.md +4 -1
  2. package/app/app.module.ts +1 -12
  3. package/app/app.scss +0 -2
  4. package/app/codeCharta/assets/codecharta_logo.svg +1 -0
  5. package/app/codeCharta/codeCharta.component.html +10 -7
  6. package/app/codeCharta/codeCharta.component.scss +22 -51
  7. package/app/codeCharta/codeCharta.component.ts +5 -7
  8. package/app/codeCharta/codeCharta.model.ts +0 -1
  9. package/app/codeCharta/e2e/__snapshots__/logo.e2e.ts.snap +2 -2
  10. package/app/codeCharta/e2e/logo.po.ts +7 -7
  11. package/app/codeCharta/e2e/url.e2e.ts +2 -2
  12. package/app/codeCharta/index.d.ts +1 -1
  13. package/app/codeCharta/model/customConfig/customConfig.api.model.ts +1 -0
  14. package/app/codeCharta/services/isAttributeSideBarVisible.service.ts +2 -2
  15. package/app/codeCharta/services/loadFile/loadFile.service.spec.ts +6 -6
  16. package/app/codeCharta/services/loadFile/loadFile.service.ts +7 -3
  17. package/app/codeCharta/services/loadInitialFile/loadInitialFile.service.spec.ts +1 -1
  18. package/app/codeCharta/services/loadInitialFile/loadInitialFile.service.ts +7 -7
  19. package/app/codeCharta/services/version/version.service.ts +2 -2
  20. package/app/codeCharta/state/effects/autoFitCodeMapChange/autoFitCodeMap.effect.ts +5 -5
  21. package/app/codeCharta/state/effects/linkColorMetricToHeightMetric/linkColorMetricToHeightMetric.effect.ts +2 -2
  22. package/app/codeCharta/state/effects/nodeContextMenu/excludeButton/excludeButton.component.ts +4 -3
  23. package/app/codeCharta/state/effects/nodeContextMenu/flattenButtons/flattenButtons.component.html +2 -2
  24. package/app/codeCharta/state/effects/nodeContextMenu/flattenButtons/flattenButtons.component.ts +4 -3
  25. package/app/codeCharta/state/effects/nodeContextMenu/focusButtons/focusButtons.component.ts +4 -3
  26. package/app/codeCharta/state/effects/nodeContextMenu/highlightButtons/highlightButtons.component.spec.ts +5 -5
  27. package/app/codeCharta/state/effects/nodeContextMenu/highlightButtons/highlightButtons.component.ts +4 -6
  28. package/app/codeCharta/state/effects/nodeContextMenu/markFolderRow/markFolderRow.component.ts +5 -4
  29. package/app/codeCharta/state/effects/nodeContextMenu/nodeContextMenu.service.ts +2 -2
  30. package/app/codeCharta/state/effects/nodeContextMenu/nodeContextMenuCard/nodeContextMenuCard.component.html +1 -1
  31. package/app/codeCharta/state/effects/nodeContextMenu/nodeContextMenuCard/nodeContextMenuCard.component.scss +6 -7
  32. package/app/codeCharta/state/effects/nodeContextMenu/nodeContextMenuCard/nodeContextMenuCard.component.ts +5 -4
  33. package/app/codeCharta/state/effects/nodeContextMenu/nodeContextMenuCard/nodeContextMenuCard.module.ts +1 -2
  34. package/app/codeCharta/state/effects/nodeContextMenu/openNodeContextMenu.effect.ts +1 -4
  35. package/app/codeCharta/state/effects/renderCodeMapEffect/renderCodeMap.effect.ts +4 -4
  36. package/app/codeCharta/state/effects/resetChosenMetrics/resetChosenMetrics.effect.spec.ts +25 -19
  37. package/app/codeCharta/state/effects/resetChosenMetrics/resetChosenMetrics.effect.ts +6 -5
  38. package/app/codeCharta/state/effects/resetSelectedEdgeMetricWhenItDoesntExistAnymore/resetSelectedEdgeMetricWhenItDoesntExistAnymore.effect.spec.ts +13 -13
  39. package/app/codeCharta/state/effects/resetSelectedEdgeMetricWhenItDoesntExistAnymore/resetSelectedEdgeMetricWhenItDoesntExistAnymore.effect.ts +6 -6
  40. package/app/codeCharta/state/effects/unfocusNodes/unfocusNodes.effect.ts +2 -2
  41. package/app/codeCharta/state/effects/updateEdgePreviews/updateEdgePreviews.effect.ts +2 -2
  42. package/app/codeCharta/state/effects/updateEdgePreviews/utils/edgePreviewNodes.selector.ts +5 -3
  43. package/app/codeCharta/state/effects/updateFileSettings/updateFileSettings.effect.ts +2 -2
  44. package/app/codeCharta/state/effects/updateFileSettings/utils/__snapshots__/blacklist.merger.spec.ts.snap +9 -9
  45. package/app/codeCharta/state/effects/updateFileSettings/utils/__snapshots__/edges.merger.spec.ts.snap +16 -16
  46. package/app/codeCharta/state/effects/updateFileSettings/utils/__snapshots__/markedPackages.merger.spec.ts.snap +10 -10
  47. package/app/codeCharta/state/effects/updateVisibleTopLabels/updateVisibleTopLabels.effect.ts +2 -2
  48. package/app/codeCharta/state/selectors/accumulatedData/accumulatedData.selector.spec.ts +76 -0
  49. package/app/codeCharta/state/selectors/accumulatedData/accumulatedData.selector.ts +7 -12
  50. package/app/codeCharta/state/selectors/accumulatedData/metricData/edgeMetricData.calculator.spec.ts +46 -0
  51. package/app/codeCharta/state/selectors/accumulatedData/metricData/{edgeMetricData.selector.ts → edgeMetricData.calculator.ts} +10 -23
  52. package/app/codeCharta/state/selectors/accumulatedData/metricData/metricData.selector.ts +10 -6
  53. package/app/codeCharta/state/selectors/accumulatedData/metricData/metricNames.selector.spec.ts +5 -5
  54. package/app/codeCharta/state/selectors/accumulatedData/metricData/metricNames.selector.ts +2 -2
  55. package/app/codeCharta/state/selectors/accumulatedData/metricData/{nodeMetricData.selector.spec.ts → nodeMetricData.calculator.spec.ts} +2 -2
  56. package/app/codeCharta/state/selectors/accumulatedData/metricData/{nodeMetricData.selector.ts → nodeMetricData.calculator.ts} +0 -5
  57. package/app/codeCharta/state/selectors/accumulatedData/metricData/selectedColorMetricData.selector.ts +4 -4
  58. package/app/codeCharta/state/selectors/accumulatedData/utils/addEdgeMetricsForLeaves.ts +3 -2
  59. package/app/codeCharta/state/selectors/accumulatedData/utils/getMetricValuesForNode.spec.ts +4 -11
  60. package/app/codeCharta/state/selectors/accumulatedData/utils/getMetricValuesForNode.ts +2 -2
  61. package/app/codeCharta/state/selectors/allNecessaryRenderDataAvailable/areAllNecessaryRenderDataAvailable.selector.ts +7 -6
  62. package/app/codeCharta/state/selectors/primaryMetrics/primaryMetrics.selector.ts +27 -11
  63. package/app/codeCharta/state/store/appSettings/appSettings.actions.ts +0 -2
  64. package/app/codeCharta/state/store/appSettings/appSettings.reducer.ts +0 -2
  65. package/app/codeCharta/state/store/appSettings/invertArea/invertArea.actions.ts +1 -12
  66. package/app/codeCharta/state/store/appSettings/invertArea/invertArea.reducer.ts +2 -4
  67. package/app/codeCharta/state/store/dynamicSettings/colorRange/resetColorRange.effect.ts +1 -1
  68. package/app/codeCharta/ui/actionIcon/actionIcon.component.ts +4 -3
  69. package/app/codeCharta/ui/actionIcon/actionIcon.module.ts +1 -2
  70. package/app/codeCharta/ui/attributeSideBar/attributeSideBar.component.scss +1 -1
  71. package/app/codeCharta/ui/attributeSideBar/attributeSideBar.component.spec.ts +59 -7
  72. package/app/codeCharta/ui/attributeSideBar/attributeSideBar.component.ts +5 -7
  73. package/app/codeCharta/ui/attributeSideBar/attributeSideBar.module.ts +2 -2
  74. package/app/codeCharta/ui/attributeSideBar/attributeSideBarHeaderSection/attributeSideBarHeaderSection.component.ts +5 -4
  75. package/app/codeCharta/ui/attributeSideBar/attributeSideBarHeaderSection/nodePath/nodePath.component.ts +4 -3
  76. package/app/codeCharta/ui/attributeSideBar/attributeSideBarPrimaryMetrics/attributeSideBarPrimaryMetric/attributeSideBarPrimaryMetric.component.ts +4 -3
  77. package/app/codeCharta/ui/attributeSideBar/attributeSideBarPrimaryMetrics/attributeSideBarPrimaryMetrics.component.html +10 -5
  78. package/app/codeCharta/ui/attributeSideBar/attributeSideBarPrimaryMetrics/attributeSideBarPrimaryMetrics.component.ts +4 -3
  79. package/app/codeCharta/ui/attributeSideBar/attributeSideBarSecondaryMetrics/attributeSideBarSecondaryMetrics.component.html +5 -1
  80. package/app/codeCharta/ui/attributeSideBar/attributeSideBarSecondaryMetrics/attributeSideBarSecondaryMetrics.component.ts +4 -3
  81. package/app/codeCharta/ui/attributeSideBar/attributeSideBarSecondaryMetrics/secondaryMetrics.selector.spec.ts +29 -4
  82. package/app/codeCharta/ui/attributeSideBar/attributeSideBarSecondaryMetrics/secondaryMetrics.selector.ts +11 -4
  83. package/app/codeCharta/ui/attributeSideBar/attributeTypeSelector/attributeTypeSelector.component.scss +4 -6
  84. package/app/codeCharta/ui/attributeSideBar/attributeTypeSelector/attributeTypeSelector.component.ts +5 -4
  85. package/app/codeCharta/ui/attributeSideBar/metricDeltaSelected/metricDeltaSelected.component.spec.ts +2 -2
  86. package/app/codeCharta/ui/attributeSideBar/metricDeltaSelected/metricDeltaSelected.component.ts +4 -3
  87. package/app/codeCharta/ui/attributeSideBar/util/edge.ts +7 -0
  88. package/app/codeCharta/ui/attributeSideBar/util/metric.ts +2 -0
  89. package/app/codeCharta/ui/{legendPanel/selectors/legendMetric.ts → attributeSideBar/util/metricDescriptors.ts} +10 -4
  90. package/app/codeCharta/ui/codeMap/__snapshots__/codeMap.arrow.service.spec.ts.snap +16 -16
  91. package/app/codeCharta/ui/codeMap/__snapshots__/codeMap.render.service.spec.ts.snap +19 -19
  92. package/app/codeCharta/ui/codeMap/codeMap.arrow.service.spec.ts +5 -4
  93. package/app/codeCharta/ui/codeMap/codeMap.arrow.service.ts +34 -29
  94. package/app/codeCharta/ui/codeMap/codeMap.component.ts +9 -8
  95. package/app/codeCharta/ui/codeMap/codeMap.label.service.ts +5 -5
  96. package/app/codeCharta/ui/codeMap/codeMap.mouseEvent.service.spec.ts +14 -1
  97. package/app/codeCharta/ui/codeMap/codeMap.mouseEvent.service.ts +30 -25
  98. package/app/codeCharta/ui/codeMap/codeMap.render.service.spec.ts +8 -6
  99. package/app/codeCharta/ui/codeMap/codeMap.render.service.ts +18 -13
  100. package/app/codeCharta/ui/codeMap/threeViewer/threeOrbitControls.service.spec.ts +3 -3
  101. package/app/codeCharta/ui/codeMap/threeViewer/threeOrbitControls.service.ts +9 -9
  102. package/app/codeCharta/ui/codeMap/threeViewer/threeRenderer.service.ts +3 -3
  103. package/app/codeCharta/ui/codeMap/threeViewer/threeSceneService.ts +16 -19
  104. package/app/codeCharta/ui/codeMap/threeViewer/threeStats.service.spec.ts +27 -32
  105. package/app/codeCharta/ui/codeMap/threeViewer/threeStats.service.ts +3 -4
  106. package/app/codeCharta/ui/codeMap/threeViewer/threeViewer.service.spec.ts +2 -2
  107. package/app/codeCharta/ui/codeMap/threeViewer/threeViewer.service.ts +6 -6
  108. package/app/codeCharta/ui/colorPicker/colorPicker.component.spec.ts +5 -2
  109. package/app/codeCharta/ui/colorPicker/colorPicker.component.ts +3 -2
  110. package/app/codeCharta/ui/colorPickerForMapColor/colorPickerForMapColor.component.ts +5 -4
  111. package/app/codeCharta/ui/copyToClipboardButton/copyToClipboard.service.ts +2 -2
  112. package/app/codeCharta/ui/copyToClipboardButton/copyToClipboardButton.component.ts +4 -3
  113. package/app/codeCharta/ui/customConfigs/addCustomConfigButton/addCustomConfigButton.component.spec.ts +17 -10
  114. package/app/codeCharta/ui/customConfigs/addCustomConfigButton/addCustomConfigButton.component.ts +4 -3
  115. package/app/codeCharta/ui/customConfigs/addCustomConfigButton/addCustomConfigButton.module.ts +3 -3
  116. package/app/codeCharta/ui/customConfigs/addCustomConfigButton/addCustomConfigDialog/addCustomConfigDialog.component.html +14 -2
  117. package/app/codeCharta/ui/customConfigs/addCustomConfigButton/addCustomConfigDialog/addCustomConfigDialog.component.ts +23 -13
  118. package/app/codeCharta/ui/customConfigs/addCustomConfigButton/addCustomConfigDialog/addCustomConfigDialog.spec.ts +23 -9
  119. package/app/codeCharta/ui/customConfigs/addCustomConfigButton/addCustomConfigDialog/addCustomDialog.component.scss +7 -6
  120. package/app/codeCharta/ui/customConfigs/addCustomConfigButton/addCustomConfigDialog/downloadAndPurgeConfigs/downloadAndPurgeConfigs.component.ts +5 -4
  121. package/app/codeCharta/ui/customConfigs/customConfigHelper.service.ts +2 -2
  122. package/app/codeCharta/ui/customConfigs/customConfigList/customConfigItemGroup/customConfig2ApplicableColor.pipe.ts +2 -2
  123. package/app/codeCharta/ui/customConfigs/customConfigList/customConfigItemGroup/customConfig2ApplicableMessage.pipe.ts +2 -2
  124. package/app/codeCharta/ui/customConfigs/customConfigList/customConfigItemGroup/customConfigDescription/applyCustomConfigButton.component.html +15 -12
  125. package/app/codeCharta/ui/customConfigs/customConfigList/customConfigItemGroup/customConfigDescription/applyCustomConfigButton.component.scss +12 -8
  126. package/app/codeCharta/ui/customConfigs/customConfigList/customConfigItemGroup/customConfigDescription/applyCustomConfigButton.component.ts +7 -6
  127. package/app/codeCharta/ui/customConfigs/customConfigList/customConfigItemGroup/customConfigDescription/applyCustomConfigButton.spec.ts +0 -6
  128. package/app/codeCharta/ui/customConfigs/customConfigList/customConfigItemGroup/customConfigItemGroup.component.html +21 -4
  129. package/app/codeCharta/ui/customConfigs/customConfigList/customConfigItemGroup/customConfigItemGroup.component.scss +38 -0
  130. package/app/codeCharta/ui/customConfigs/customConfigList/customConfigItemGroup/customConfigItemGroup.component.spec.ts +32 -7
  131. package/app/codeCharta/ui/customConfigs/customConfigList/customConfigItemGroup/customConfigItemGroup.component.ts +17 -2
  132. package/app/codeCharta/ui/customConfigs/customConfigList/customConfigList.component.html +8 -8
  133. package/app/codeCharta/ui/customConfigs/customConfigList/customConfigList.component.scss +27 -31
  134. package/app/codeCharta/ui/customConfigs/customConfigList/customConfigList.component.spec.ts +6 -3
  135. package/app/codeCharta/ui/customConfigs/customConfigList/customConfigList.component.ts +5 -4
  136. package/app/codeCharta/ui/customConfigs/customConfigList/getCustomConfigItemGroups.spec.ts +5 -1
  137. package/app/codeCharta/ui/customConfigs/customConfigList/getCustomConfigItemGroups.ts +2 -1
  138. package/app/codeCharta/ui/customConfigs/customConfigNoteDialogButton/customConfigNoteDialog/customConfigNoteDialog.component.html +12 -0
  139. package/app/codeCharta/ui/customConfigs/customConfigNoteDialogButton/customConfigNoteDialog/customConfigNoteDialog.component.scss +31 -0
  140. package/app/codeCharta/ui/customConfigs/customConfigNoteDialogButton/customConfigNoteDialog/customConfigNoteDialog.component.ts +12 -0
  141. package/app/codeCharta/ui/customConfigs/customConfigNoteDialogButton/customConfigNoteDialogButton.component.html +3 -0
  142. package/app/codeCharta/ui/customConfigs/customConfigNoteDialogButton/customConfigNoteDialogButton.component.spec.ts +90 -0
  143. package/app/codeCharta/ui/customConfigs/customConfigNoteDialogButton/customConfigNoteDialogButton.component.ts +33 -0
  144. package/app/codeCharta/ui/customConfigs/customConfigNoteDialogButton/customConfigNoteDialogButton.module.ts +14 -0
  145. package/app/codeCharta/ui/customConfigs/customConfigs.component.spec.ts +5 -4
  146. package/app/codeCharta/ui/customConfigs/customConfigs.component.ts +6 -4
  147. package/app/codeCharta/ui/customConfigs/customConfigs.module.ts +14 -3
  148. package/app/codeCharta/ui/customConfigs/downloadCustomConfigsButton/downloadCustomConfigsButton.component.ts +4 -3
  149. package/app/codeCharta/ui/customConfigs/uploadCustomConfigButton/uploadCustomConfigButton.component.ts +3 -2
  150. package/app/codeCharta/ui/customConfigs/uploadCustomConfigButton/uploadCustomConfigButton.module.ts +1 -2
  151. package/app/codeCharta/ui/dialogs/changelogDialog/changelogDialog.component.html +6 -6
  152. package/app/codeCharta/ui/dialogs/changelogDialog/changelogDialog.component.scss +6 -14
  153. package/app/codeCharta/ui/dialogs/changelogDialog/changelogDialog.component.ts +4 -3
  154. package/app/codeCharta/ui/dialogs/changelogDialog/changelogDialog.module.ts +1 -2
  155. package/app/codeCharta/ui/dialogs/confirmationDialog/confirmationDialog.component.scss +3 -3
  156. package/app/codeCharta/ui/dialogs/confirmationDialog/confirmationDialog.component.ts +4 -3
  157. package/app/codeCharta/ui/dialogs/errorDialog/errorDialog.component.po.ts +4 -9
  158. package/app/codeCharta/ui/dialogs/errorDialog/errorDialog.component.ts +3 -2
  159. package/app/codeCharta/ui/export3DMapButton/export3DMapButton.component.ts +4 -3
  160. package/app/codeCharta/ui/fileExtensionBar/distributionMetricChooser/distributionMetricChooser.component.ts +4 -3
  161. package/app/codeCharta/ui/fileExtensionBar/fileExtensionBar.component.scss +5 -6
  162. package/app/codeCharta/ui/fileExtensionBar/fileExtensionBar.component.ts +5 -4
  163. package/app/codeCharta/ui/fileExtensionBar/fileExtensionBar.module.ts +1 -2
  164. package/app/codeCharta/ui/fileExtensionBar/selectors/fileExtensionCalculator.spec.ts +18 -18
  165. package/app/codeCharta/ui/fileExtensionBar/selectors/fileExtensionCalculator.ts +1 -1
  166. package/app/codeCharta/ui/filePanel/filePanel.component.html +1 -1
  167. package/app/codeCharta/ui/filePanel/filePanel.component.scss +7 -27
  168. package/app/codeCharta/ui/filePanel/filePanel.component.ts +5 -4
  169. package/app/codeCharta/ui/filePanel/filePanel.module.ts +2 -2
  170. package/app/codeCharta/ui/filePanel/filePanel.po.ts +6 -4
  171. package/app/codeCharta/ui/filePanel/filePanelDeltaSelector/filePanelDeltaSelector.component.html +26 -24
  172. package/app/codeCharta/ui/filePanel/filePanelDeltaSelector/filePanelDeltaSelector.component.scss +6 -0
  173. package/app/codeCharta/ui/filePanel/filePanelDeltaSelector/filePanelDeltaSelector.component.ts +5 -3
  174. package/app/codeCharta/ui/filePanel/filePanelFileSelector/filePanelFileSelector.component.html +1 -0
  175. package/app/codeCharta/ui/filePanel/filePanelFileSelector/filePanelFileSelector.component.scss +2 -9
  176. package/app/codeCharta/ui/filePanel/filePanelFileSelector/filePanelFileSelector.component.spec.ts +1 -1
  177. package/app/codeCharta/ui/filePanel/filePanelFileSelector/filePanelFileSelector.component.ts +5 -4
  178. package/app/codeCharta/ui/filePanel/filePanelFileSelector/removeFileButton/removeFileButton.component.scss +1 -1
  179. package/app/codeCharta/ui/filePanel/filePanelFileSelector/removeFileButton/removeFileButton.component.ts +5 -4
  180. package/app/codeCharta/ui/filePanel/filePanelStateButtons/filePanelStateButtons.component.html +1 -1
  181. package/app/codeCharta/ui/filePanel/filePanelStateButtons/filePanelStateButtons.component.ts +4 -6
  182. package/app/codeCharta/ui/filePanel/fileSelectionMode.service.ts +2 -2
  183. package/app/codeCharta/ui/labelledColorPicker/labelledColorPicker.component.html +1 -1
  184. package/app/codeCharta/ui/labelledColorPicker/labelledColorPicker.component.scss +12 -8
  185. package/app/codeCharta/ui/labelledColorPicker/labelledColorPicker.component.spec.ts +2 -2
  186. package/app/codeCharta/ui/labelledColorPicker/labelledColorPicker.component.ts +4 -3
  187. package/app/codeCharta/ui/legendPanel/legendBlock/legendBlock.component.html +8 -8
  188. package/app/codeCharta/ui/legendPanel/legendBlock/legendBlock.component.ts +5 -4
  189. package/app/codeCharta/ui/legendPanel/legendMarkedPackages/legendMarkedPackages.component.ts +5 -4
  190. package/app/codeCharta/ui/legendPanel/legendPanel.component.html +11 -5
  191. package/app/codeCharta/ui/legendPanel/legendPanel.component.ts +5 -7
  192. package/app/codeCharta/ui/legendPanel/selectors/legendAreaMetric.selector.ts +4 -4
  193. package/app/codeCharta/ui/legendPanel/selectors/legendColorMetric.selector.ts +4 -4
  194. package/app/codeCharta/ui/legendPanel/selectors/legendEdgeMetric.selector.spec.ts +10 -4
  195. package/app/codeCharta/ui/legendPanel/selectors/legendEdgeMetric.selector.ts +7 -7
  196. package/app/codeCharta/ui/legendPanel/selectors/legendHeightMetric.selector.ts +4 -4
  197. package/app/codeCharta/ui/loadingFileProgressSpinner/loadingFileProgressSpinner.component.scss +1 -1
  198. package/app/codeCharta/ui/loadingFileProgressSpinner/loadingFileProgressSpinner.component.ts +5 -4
  199. package/app/codeCharta/ui/metricChooser/metricChooser.component.html +1 -2
  200. package/app/codeCharta/ui/metricChooser/metricChooser.component.scss +22 -13
  201. package/app/codeCharta/ui/metricChooser/metricChooser.component.spec.ts +9 -7
  202. package/app/codeCharta/ui/metricChooser/metricChooser.component.ts +11 -10
  203. package/app/codeCharta/ui/metricChooser/metricChooser.module.ts +1 -2
  204. package/app/codeCharta/ui/metricChooser/metricChooserTypeHovered/metricChooserTypeHovered.component.ts +4 -3
  205. package/app/codeCharta/ui/metricChooser/metricChooserValueHovered/metricChooserValueHovered.component.ts +4 -3
  206. package/app/codeCharta/ui/resetSettingsButton/resetSettingsButton.component.scss +21 -3
  207. package/app/codeCharta/ui/resetSettingsButton/resetSettingsButton.component.ts +5 -4
  208. package/app/codeCharta/ui/ribbonBar/areaMetricChooser/areaMetricChooser.component.spec.ts +9 -6
  209. package/app/codeCharta/ui/ribbonBar/areaMetricChooser/areaMetricChooser.component.ts +4 -3
  210. package/app/codeCharta/ui/ribbonBar/areaSettingsPanel/areaSettingsPanel.component.html +13 -23
  211. package/app/codeCharta/ui/ribbonBar/areaSettingsPanel/areaSettingsPanel.component.scss +12 -3
  212. package/app/codeCharta/ui/ribbonBar/areaSettingsPanel/areaSettingsPanel.component.spec.ts +31 -17
  213. package/app/codeCharta/ui/ribbonBar/areaSettingsPanel/areaSettingsPanel.component.ts +14 -14
  214. package/app/codeCharta/ui/ribbonBar/areaSettingsPanel/areaSettingsPanel.module.ts +1 -2
  215. package/app/codeCharta/ui/ribbonBar/artificialIntelligence/artificialIntelligence.component.scss +2 -3
  216. package/app/codeCharta/ui/ribbonBar/artificialIntelligence/artificialIntelligence.component.ts +5 -4
  217. package/app/codeCharta/ui/ribbonBar/artificialIntelligence/highRiskProfile/highRiskProfile.component.html +12 -3
  218. package/app/codeCharta/ui/ribbonBar/artificialIntelligence/highRiskProfile/highRiskProfile.component.spec.ts +10 -2
  219. package/app/codeCharta/ui/ribbonBar/artificialIntelligence/highRiskProfile/highRiskProfile.component.ts +3 -2
  220. package/app/codeCharta/ui/ribbonBar/artificialIntelligence/highRiskProfile/riskProfileBar.directive.ts +2 -2
  221. package/app/codeCharta/ui/ribbonBar/artificialIntelligence/selectors/artificialIntelligence.selector.spec.ts +6 -16
  222. package/app/codeCharta/ui/ribbonBar/artificialIntelligence/selectors/artificialIntelligence.selector.ts +7 -11
  223. package/app/codeCharta/ui/ribbonBar/artificialIntelligence/suspiciousMetrics/suspiciousMetrics.component.html +11 -1
  224. package/app/codeCharta/ui/ribbonBar/artificialIntelligence/suspiciousMetrics/suspiciousMetrics.component.spec.ts +4 -4
  225. package/app/codeCharta/ui/ribbonBar/artificialIntelligence/suspiciousMetrics/suspiciousMetrics.component.ts +6 -5
  226. package/app/codeCharta/ui/ribbonBar/colorMetricChooser/colorMetricChooser.component.spec.ts +9 -6
  227. package/app/codeCharta/ui/ribbonBar/colorMetricChooser/colorMetricChooser.component.ts +4 -3
  228. package/app/codeCharta/ui/ribbonBar/colorSettingsPanel/colorSettingsPanel.component.html +11 -10
  229. package/app/codeCharta/ui/ribbonBar/colorSettingsPanel/colorSettingsPanel.component.scss +17 -12
  230. package/app/codeCharta/ui/ribbonBar/colorSettingsPanel/colorSettingsPanel.component.ts +5 -4
  231. package/app/codeCharta/ui/ribbonBar/colorSettingsPanel/metricColorRangeSlider/metricColorRangeSlider.component.ts +5 -4
  232. package/app/codeCharta/ui/ribbonBar/colorSettingsPanel/metricColorRangeSlider/rangeSlider/rangeSlider.component.html +2 -2
  233. package/app/codeCharta/ui/ribbonBar/colorSettingsPanel/metricColorRangeSlider/rangeSlider/rangeSlider.component.scss +21 -6
  234. package/app/codeCharta/ui/ribbonBar/colorSettingsPanel/metricColorRangeSlider/rangeSlider/rangeSlider.component.ts +6 -5
  235. package/app/codeCharta/ui/ribbonBar/colorSettingsPanel/metricColorRangeSlider/rangeSlider/rangeSliderLabels/rangeSliderLabels.component.spec.ts +2 -2
  236. package/app/codeCharta/ui/ribbonBar/colorSettingsPanel/metricColorRangeSlider/rangeSlider/rangeSliderLabels/rangeSliderLabels.component.ts +5 -4
  237. package/app/codeCharta/ui/ribbonBar/edgeMetricChooser/edgeMetricChooser.component.scss +1 -1
  238. package/app/codeCharta/ui/ribbonBar/edgeMetricChooser/edgeMetricChooser.component.spec.ts +8 -6
  239. package/app/codeCharta/ui/ribbonBar/edgeMetricChooser/edgeMetricChooser.component.ts +5 -4
  240. package/app/codeCharta/ui/ribbonBar/edgeSettingsPanel/edgeMetricToggle/edgeMetricToggle.component.ts +4 -4
  241. package/app/codeCharta/ui/ribbonBar/edgeSettingsPanel/edgeSettingsPanel.component.html +14 -15
  242. package/app/codeCharta/ui/ribbonBar/edgeSettingsPanel/edgeSettingsPanel.component.spec.ts +1 -1
  243. package/app/codeCharta/ui/ribbonBar/edgeSettingsPanel/edgeSettingsPanel.component.ts +4 -3
  244. package/app/codeCharta/ui/ribbonBar/edgeSettingsPanel/selectors/amountOfBuildingsWithSelectedEdgeMetric.selector.ts +3 -3
  245. package/app/codeCharta/ui/ribbonBar/heightMetricChooser/areaMetricChooser.component.ts +4 -3
  246. package/app/codeCharta/ui/ribbonBar/heightMetricChooser/heightMetricChooser.component.spec.ts +9 -6
  247. package/app/codeCharta/ui/ribbonBar/heightSettingsPanel/heightSettingsPanel.component.html +15 -19
  248. package/app/codeCharta/ui/ribbonBar/heightSettingsPanel/heightSettingsPanel.component.spec.ts +3 -2
  249. package/app/codeCharta/ui/ribbonBar/heightSettingsPanel/heightSettingsPanel.component.ts +5 -6
  250. package/app/codeCharta/ui/ribbonBar/linkColorMetricToHeightMetricButton/linkColorMetricToHeightMetricButton.component.html +1 -1
  251. package/app/codeCharta/ui/ribbonBar/linkColorMetricToHeightMetricButton/linkColorMetricToHeightMetricButton.component.scss +2 -0
  252. package/app/codeCharta/ui/ribbonBar/linkColorMetricToHeightMetricButton/linkColorMetricToHeightMetricButton.component.spec.ts +4 -4
  253. package/app/codeCharta/ui/ribbonBar/linkColorMetricToHeightMetricButton/linkColorMetricToHeightMetricButton.component.ts +5 -4
  254. package/app/codeCharta/ui/ribbonBar/ribbonBar.component.html +21 -8
  255. package/app/codeCharta/ui/ribbonBar/ribbonBar.component.scss +18 -8
  256. package/app/codeCharta/ui/ribbonBar/ribbonBar.component.spec.ts +22 -23
  257. package/app/codeCharta/ui/ribbonBar/ribbonBar.component.ts +7 -6
  258. package/app/codeCharta/ui/ribbonBar/showScenariosButton/addCustomScenario/addCustomScenario.component.html +1 -1
  259. package/app/codeCharta/ui/ribbonBar/showScenariosButton/addCustomScenario/addCustomScenario.component.scss +9 -7
  260. package/app/codeCharta/ui/ribbonBar/showScenariosButton/addCustomScenario/addCustomScenario.component.spec.ts +10 -3
  261. package/app/codeCharta/ui/ribbonBar/showScenariosButton/addCustomScenario/addCustomScenario.component.ts +7 -10
  262. package/app/codeCharta/ui/ribbonBar/showScenariosButton/addCustomScenario/addCustomScenario.module.ts +1 -2
  263. package/app/codeCharta/ui/ribbonBar/showScenariosButton/scenario.service.ts +6 -6
  264. package/app/codeCharta/ui/ribbonBar/showScenariosButton/scenarios/scenarios.component.scss +2 -2
  265. package/app/codeCharta/ui/ribbonBar/showScenariosButton/scenarios/scenarios.component.ts +5 -4
  266. package/app/codeCharta/ui/ribbonBar/showScenariosButton/showScenariosButton.component.ts +5 -4
  267. package/app/codeCharta/ui/screenshotButton/screenshotButton.component.ts +8 -7
  268. package/app/codeCharta/ui/searchPanel/blacklistPanel/blacklistPanel.component.scss +2 -2
  269. package/app/codeCharta/ui/searchPanel/blacklistPanel/blacklistPanel.component.ts +5 -4
  270. package/app/codeCharta/ui/searchPanel/mapTreeView/mapTreeView.component.scss +14 -11
  271. package/app/codeCharta/ui/searchPanel/mapTreeView/mapTreeView.component.ts +5 -5
  272. package/app/codeCharta/ui/searchPanel/mapTreeView/mapTreeViewItemIcon/mapTreeViewItemIcon.component.ts +3 -2
  273. package/app/codeCharta/ui/searchPanel/mapTreeView/mapTreeViewItemName/mapTreeViewItemName.component.ts +4 -3
  274. package/app/codeCharta/ui/searchPanel/mapTreeView/mapTreeViewItemOptionButtons/mapTreeViewItemOptionButtons.component.html +2 -2
  275. package/app/codeCharta/ui/searchPanel/mapTreeView/mapTreeViewItemOptionButtons/mapTreeViewItemOptionButtons.component.ts +3 -2
  276. package/app/codeCharta/ui/searchPanel/mapTreeView/mapTreeViewLevel/mapTreeViewLevel.component.ts +4 -3
  277. package/app/codeCharta/ui/searchPanel/matchingFilesCounter/matchingFilesCounter.component.html +1 -1
  278. package/app/codeCharta/ui/searchPanel/matchingFilesCounter/matchingFilesCounter.component.scss +2 -2
  279. package/app/codeCharta/ui/searchPanel/matchingFilesCounter/matchingFilesCounter.component.ts +5 -4
  280. package/app/codeCharta/ui/searchPanel/searchBar/blacklistSearchPattern.effect.ts +1 -2
  281. package/app/codeCharta/ui/searchPanel/searchBar/searchBar.component.scss +0 -3
  282. package/app/codeCharta/ui/searchPanel/searchBar/searchBar.component.spec.ts +1 -1
  283. package/app/codeCharta/ui/searchPanel/searchBar/searchBar.component.ts +7 -6
  284. package/app/codeCharta/ui/searchPanel/searchPanel.component.html +1 -1
  285. package/app/codeCharta/ui/searchPanel/searchPanel.component.scss +0 -4
  286. package/app/codeCharta/ui/searchPanel/searchPanel.component.ts +4 -3
  287. package/app/codeCharta/ui/searchPanel/searchPanelModeSelector/searchPanelModeSelector.component.html +6 -20
  288. package/app/codeCharta/ui/searchPanel/searchPanelModeSelector/searchPanelModeSelector.component.scss +4 -6
  289. package/app/codeCharta/ui/searchPanel/searchPanelModeSelector/searchPanelModeSelector.component.ts +5 -4
  290. package/app/codeCharta/ui/searchPanel/sortingButton/sortingButton.component.ts +4 -3
  291. package/app/codeCharta/ui/searchPanel/sortingOption/sortingOption.component.spec.ts +1 -1
  292. package/app/codeCharta/ui/searchPanel/sortingOption/sortingOption.component.ts +4 -3
  293. package/app/codeCharta/ui/slider/slider.component.html +17 -21
  294. package/app/codeCharta/ui/slider/slider.component.scss +36 -19
  295. package/app/codeCharta/ui/slider/slider.component.spec.ts +38 -38
  296. package/app/codeCharta/ui/slider/slider.component.ts +8 -9
  297. package/app/codeCharta/ui/slider/slider.module.ts +1 -2
  298. package/app/codeCharta/ui/toolBar/downloadButton/downloadButton.component.spec.ts +2 -1
  299. package/app/codeCharta/ui/toolBar/downloadButton/downloadButton.component.ts +4 -3
  300. package/app/codeCharta/ui/toolBar/downloadButton/downloadButton.module.ts +1 -2
  301. package/app/codeCharta/ui/toolBar/downloadButton/downloadDialog/downloadDialog.component.html +1 -1
  302. package/app/codeCharta/ui/toolBar/downloadButton/downloadDialog/downloadDialog.component.scss +4 -5
  303. package/app/codeCharta/ui/toolBar/downloadButton/downloadDialog/downloadDialog.component.ts +5 -4
  304. package/app/codeCharta/ui/toolBar/globalConfigurationButton/globalConfigurationButton.component.html +1 -1
  305. package/app/codeCharta/ui/toolBar/globalConfigurationButton/globalConfigurationButton.component.scss +28 -34
  306. package/app/codeCharta/ui/toolBar/globalConfigurationButton/globalConfigurationButton.component.ts +5 -4
  307. package/app/codeCharta/ui/toolBar/globalConfigurationButton/globalConfigurationButton.module.ts +1 -2
  308. package/app/codeCharta/ui/toolBar/globalConfigurationButton/globalConfigurationDialog/displayQualitySelection/displayQualitySelection.component.html +1 -1
  309. package/app/codeCharta/ui/toolBar/globalConfigurationButton/globalConfigurationDialog/displayQualitySelection/displayQualitySelection.component.ts +4 -3
  310. package/app/codeCharta/ui/toolBar/globalConfigurationButton/globalConfigurationDialog/globalConfigurationDialog.component.html +26 -23
  311. package/app/codeCharta/ui/toolBar/globalConfigurationButton/globalConfigurationDialog/globalConfigurationDialog.component.ts +4 -3
  312. package/app/codeCharta/ui/toolBar/globalConfigurationButton/globalConfigurationDialog/mapLayoutSelection/mapLayoutSelection.component.html +1 -1
  313. package/app/codeCharta/ui/toolBar/globalConfigurationButton/globalConfigurationDialog/mapLayoutSelection/mapLayoutSelection.component.spec.ts +27 -24
  314. package/app/codeCharta/ui/toolBar/globalConfigurationButton/globalConfigurationDialog/mapLayoutSelection/mapLayoutSelection.component.ts +5 -4
  315. package/app/codeCharta/ui/toolBar/hoveredNodePathPanel/hoveredNodePathPanel.component.ts +5 -4
  316. package/app/codeCharta/ui/toolBar/loadingMapProgressSpinner/loadingMapProgressSpinner.component.ts +5 -4
  317. package/app/codeCharta/ui/toolBar/presentationModeButton/presentationModeButton.component.html +8 -11
  318. package/app/codeCharta/ui/toolBar/presentationModeButton/presentationModeButton.component.scss +4 -3
  319. package/app/codeCharta/ui/toolBar/presentationModeButton/presentationModeButton.component.spec.ts +2 -2
  320. package/app/codeCharta/ui/toolBar/presentationModeButton/presentationModeButton.component.ts +5 -4
  321. package/app/codeCharta/ui/toolBar/toolBar.component.scss +2 -4
  322. package/app/codeCharta/ui/toolBar/toolBar.component.ts +5 -5
  323. package/app/codeCharta/ui/toolBar/toolBar.module.ts +1 -2
  324. package/app/codeCharta/ui/toolBar/uploadFilesButton/uploadFiles.service.ts +2 -2
  325. package/app/codeCharta/ui/toolBar/uploadFilesButton/uploadFilesButton.component.ts +5 -4
  326. package/app/codeCharta/ui/viewCube/centerMapButton/centerMapButton.component.ts +5 -4
  327. package/app/codeCharta/ui/viewCube/viewCube.component.spec.ts +2 -2
  328. package/app/codeCharta/ui/viewCube/viewCube.component.ts +6 -5
  329. package/app/codeCharta/ui/viewCube/viewCube.mouseEvents.service.spec.ts +3 -2
  330. package/app/codeCharta/ui/viewCube/viewCube.mouseEvents.service.ts +6 -6
  331. package/app/codeCharta/util/EventEmitter.ts +22 -0
  332. package/app/codeCharta/util/__snapshots__/aggregationGenerator.spec.ts.snap +116 -116
  333. package/app/codeCharta/util/__snapshots__/deltaGenerator.spec.ts.snap +82 -82
  334. package/app/codeCharta/util/__snapshots__/fileHelper.spec.ts.snap +23 -23
  335. package/app/codeCharta/util/aggregationGenerator.spec.ts +33 -27
  336. package/app/codeCharta/util/aggregationGenerator.ts +4 -1
  337. package/app/codeCharta/util/algorithm/treeMapLayout/__snapshots__/treeMapGenerator.spec.ts.snap +137 -137
  338. package/app/codeCharta/util/algorithm/treeMapLayout/__snapshots__/treeMapHelper.spec.ts.snap +9 -9
  339. package/app/codeCharta/util/customConfigBuilder.spec.ts +11 -4
  340. package/app/codeCharta/util/customConfigBuilder.ts +9 -3
  341. package/app/codeCharta/util/customConfigHelper.ts +8 -8
  342. package/app/codeCharta/util/dataMocks.ts +29 -5
  343. package/app/codeCharta/util/debounce.spec.ts +16 -0
  344. package/app/codeCharta/util/debounce.ts +10 -0
  345. package/app/codeCharta/util/fileDownloader.ts +1 -1
  346. package/app/codeCharta/util/gameObjectsParser/__snapshots__/gameObjectsImporter.spec.ts.snap +37 -37
  347. package/app/codeCharta/util/nodeDecorator.spec.ts +14 -1
  348. package/app/codeCharta/util/nodeDecorator.ts +12 -12
  349. package/app/codeCharta/util/parseNumberInput.ts +1 -1
  350. package/app/codeCharta/util/reduxHelper.ts +3 -3
  351. package/app/codeCharta/util/simplePipes/SimplePipesModule.ts +9 -0
  352. package/app/codeCharta/util/simplePipes/metricDescriptorTitle.pipe.spec.ts +62 -0
  353. package/app/codeCharta/util/simplePipes/metricDescriptorTitle.pipe.ts +18 -0
  354. package/app/codeCharta/util/{removeExtension.pipe.ts → simplePipes/removeExtension.pipe.ts} +1 -1
  355. package/app/codeCharta/util/truncateText.pipe.ts +8 -0
  356. package/app/codeCharta/util/truncateText.spec.ts +19 -0
  357. package/app/index.html +1 -0
  358. package/app/material/_theme.scss +28 -17
  359. package/app/material/matDialog.scss +1 -1
  360. package/app/material/matMenu.scss +2 -2
  361. package/app/material/material.module.ts +5 -3
  362. package/app/material/material.scss +1 -6
  363. package/app/polyfills.ts +28 -0
  364. package/conf/jestE2E.config.json +1 -3
  365. package/conf/jestUnit.config.json +5 -17
  366. package/conf/webpack.config.js +19 -56
  367. package/dist/webpack/3rdpartylicenses.txt +1063 -0
  368. package/dist/webpack/codeCharta/assets/codecharta_logo.svg +1 -0
  369. package/dist/webpack/codeCharta/assets/empty.png +0 -0
  370. package/dist/webpack/codeCharta/assets/favicon.ico +0 -0
  371. package/dist/webpack/codeCharta/assets/gameObjectsFile.json +75 -0
  372. package/dist/webpack/codeCharta/assets/icon.icns +0 -0
  373. package/dist/webpack/codeCharta/assets/icon.ico +0 -0
  374. package/dist/webpack/codeCharta/assets/icon.png +0 -0
  375. package/dist/webpack/codeCharta/assets/output.cc.json.gz +0 -0
  376. package/dist/webpack/codeCharta/assets/sample1.cc.json +97 -0
  377. package/dist/webpack/codeCharta/assets/sample2.cc.json +46 -0
  378. package/dist/webpack/codeCharta/assets/sample3.cc.json +40 -0
  379. package/dist/webpack/codeCharta/assets/sample4.cc.json +45 -0
  380. package/dist/webpack/codeCharta/assets/scenarios.json +50 -0
  381. package/dist/webpack/index.html +7 -7
  382. package/dist/webpack/main.bc36f7880e897bab.js +1 -0
  383. package/dist/webpack/material-icons-outlined.78a93b2079680a08.woff +0 -0
  384. package/dist/webpack/material-icons-outlined.f86cb7b0aa53f0fe.woff2 +0 -0
  385. package/dist/webpack/material-icons-round.92dc7ca2f4c591e7.woff +0 -0
  386. package/dist/webpack/material-icons-round.b10ec9db5b7fbc74.woff2 +0 -0
  387. package/dist/webpack/material-icons-sharp.3885863ee4746422.woff2 +0 -0
  388. package/dist/webpack/material-icons-sharp.a71cb2bf66c604de.woff +0 -0
  389. package/dist/webpack/material-icons-two-tone.588d63134de807a7.woff +0 -0
  390. package/dist/webpack/material-icons-two-tone.675bd578bd14533e.woff2 +0 -0
  391. package/dist/webpack/material-icons.4ad034d2c499d9b6.woff +0 -0
  392. package/dist/webpack/material-icons.59322316b3fd6063.woff2 +0 -0
  393. package/dist/webpack/polyfills.d69fe4da6218c8a9.js +1 -0
  394. package/dist/webpack/runtime.e384ce5b1b4e5942.js +1 -0
  395. package/dist/webpack/styles.796849f6e33c93f5.css +4 -0
  396. package/package.json +33 -51
  397. package/tsconfig.json +25 -22
  398. package/app/codeCharta/state/effects/resetDynamicMargin/resetDynamicMargin.effect.spec.ts +0 -48
  399. package/app/codeCharta/state/effects/resetDynamicMargin/resetDynamicMargin.effect.ts +0 -19
  400. package/app/codeCharta/state/selectors/accumulatedData/metricData/edgeMetricData.selector.spec.ts +0 -56
  401. package/app/codeCharta/state/store/appSettings/dynamicMargin/dynamicMargin.actions.ts +0 -21
  402. package/app/codeCharta/state/store/appSettings/dynamicMargin/dynamicMargin.reducer.spec.ts +0 -17
  403. package/app/codeCharta/state/store/appSettings/dynamicMargin/dynamicMargin.reducer.ts +0 -16
  404. package/app/codeCharta/state/store/appSettings/dynamicMargin/dynamicMargin.selector.ts +0 -4
  405. package/app/codeCharta/ui/ribbonBar/areaSettingsPanel/areaSettingsPanel.po.ts +0 -22
  406. package/app/codeCharta/ui/ribbonBar/areaSettingsPanel/invertAreaOption/invertAreaOption.component.html +0 -1
  407. package/app/codeCharta/ui/ribbonBar/areaSettingsPanel/invertAreaOption/invertAreaOption.component.spec.ts +0 -29
  408. package/app/codeCharta/ui/ribbonBar/areaSettingsPanel/invertAreaOption/invertAreaOption.component.ts +0 -23
  409. package/app/codeCharta/ui/ribbonBar/areaSettingsPanel.po.ts +0 -19
  410. package/app/codeCharta/ui/ribbonBar/edgeSettingsPanel/edgeMetricToggle/edgeMetricToggle.component.scss +0 -4
  411. package/app/codeCharta/ui/ribbonBar/heightSettingsPanel/heightSettingsPanel.component.scss +0 -18
  412. package/app/codeCharta/util/envDetector.ts +0 -3
  413. package/app/codeCharta/util/removeExtensionModule.ts +0 -8
  414. package/app/codeCharta/util/testUtils/drag.ts +0 -47
  415. package/app/material/matSelect.scss +0 -17
  416. package/conf/webpack.loaders.js +0 -54
  417. package/dist/webpack/04411cba9583fb0df01f.woff +0 -0
  418. package/dist/webpack/6289913a298e816100f5.woff +0 -0
  419. package/dist/webpack/6b3adb7ef9c9ac8d598a.woff +0 -0
  420. package/dist/webpack/6c307c85ae675678f41e.woff2 +0 -0
  421. package/dist/webpack/a70ec3e73fd410cdb178.woff2 +0 -0
  422. package/dist/webpack/aa2aae2fbd0e0b30967d.woff +0 -0
  423. package/dist/webpack/aa80805e686668b4358c.woff2 +0 -0
  424. package/dist/webpack/b906db2201d314b2ee12.woff2 +0 -0
  425. package/dist/webpack/bundle.js +0 -3
  426. package/dist/webpack/bundle.js.LICENSE.txt +0 -7619
  427. package/dist/webpack/bundle.js.map +0 -1
  428. package/dist/webpack/c6c0935815f6ba8fd80a.woff2 +0 -0
  429. package/dist/webpack/cb25b0543db8b7f06135.woff +0 -0
  430. /package/app/{assets/icon.ico → codeCharta/assets/favicon.ico} +0 -0
  431. /package/app/{assets → codeCharta/assets}/flatten.png +0 -0
  432. /package/app/{assets → codeCharta/assets}/icon.icns +0 -0
  433. /package/{dist/webpack → app/codeCharta/assets}/icon.ico +0 -0
  434. /package/app/{assets → codeCharta/assets}/icon.png +0 -0
  435. /package/app/codeCharta/state/store/fileSettings/attributeDescriptors/{attributesDescriptors.selector.ts → attributeDescriptors.selector.ts} +0 -0
  436. /package/app/codeCharta/util/{removeExtension.pipe.spec.ts → simplePipes/removeExtension.pipe.spec.ts} +0 -0
  437. /package/dist/webpack/{af36b2ef7e54a0b53f02.png → codeCharta/assets/flatten.png} +0 -0
  438. /package/dist/webpack/{6bfc95354e1616904298.png → codeCharta/assets/logo.png} +0 -0
  439. /package/dist/webpack/{8b43027f47b20503057d.eot → fontawesome-webfont.2b13baa7dd4f54c9.eot} +0 -0
  440. /package/dist/webpack/{1e59d2330b4c6deb84b3.ttf → fontawesome-webfont.8a7cb27d142e3e19.ttf} +0 -0
  441. /package/dist/webpack/{f691f37e57f04c152e23.woff → fontawesome-webfont.cf011583fb81df9f.woff} +0 -0
  442. /package/dist/webpack/{c1e38fd9e0e74ba58f7a.svg → fontawesome-webfont.da909aa098b0ee2d.svg} +0 -0
  443. /package/dist/webpack/{20fd1704ea223900efa9.woff2 → fontawesome-webfont.e9955780856cf8aa.woff2} +0 -0
@@ -107,8 +107,7 @@ describe("CodeMapArrowService", () => {
107
107
  expect(threeSceneService["selected"]).toMatchSnapshot()
108
108
  })
109
109
  it("should debounce the edge reset of buildings to improve performance", async () => {
110
- codeMapArrowService["resetEdgesOfBuildings"] = () => {}
111
- const resetEdgesOfBuildingMock = jest.fn().mockImplementation()
110
+ const resetEdgesOfBuildingMock = jest.fn()
112
111
  codeMapArrowService["resetEdgesOfBuildings"] = resetEdgesOfBuildingMock
113
112
  codeMapArrowService.onBuildingHovered(CODE_MAP_BUILDING_WITH_OUTGOING_EDGE_NODE)
114
113
 
@@ -123,6 +122,7 @@ describe("CodeMapArrowService", () => {
123
122
  describe("SelectionMethods", () => {
124
123
  beforeEach(() => {
125
124
  codeMapArrowService.clearArrows = jest.fn()
125
+ codeMapArrowService.addArrow = jest.fn()
126
126
  codeMapArrowService["showEdgesOfBuildings"] = jest.fn()
127
127
  codeMapArrowService.addEdgePreview = jest.fn()
128
128
  threeSceneService.clearHighlight = jest.fn()
@@ -178,9 +178,10 @@ describe("CodeMapArrowService", () => {
178
178
  codeMapArrowService.onBuildingDeselected()
179
179
 
180
180
  expect(codeMapArrowService.clearArrows).toHaveBeenCalled()
181
- expect(threeSceneService.clearHighlight).toHaveBeenCalled()
182
- expect(codeMapArrowService["showEdgesOfBuildings"]).toHaveBeenCalledTimes(0)
183
181
  expect(codeMapArrowService.addEdgePreview).toHaveBeenCalled()
182
+ expect(codeMapArrowService.addArrow).toHaveBeenCalledTimes(0)
183
+ expect(threeSceneService.clearHighlight).toHaveBeenCalledTimes(0)
184
+ expect(codeMapArrowService["showEdgesOfBuildings"]).toHaveBeenCalledTimes(0)
184
185
  })
185
186
  })
186
187
 
@@ -1,50 +1,55 @@
1
- import { Injectable, Inject } from "@angular/core"
1
+ import { Injectable, OnDestroy } from "@angular/core"
2
2
  import { ThreeSceneService } from "./threeViewer/threeSceneService"
3
3
  import { Node, EdgeVisibility } from "../../codeCharta.model"
4
4
  import { ArrowHelper, BufferGeometry, CubicBezierCurve3, Line, LineBasicMaterial, Object3D, Vector3 } from "three"
5
5
  import { ColorConverter } from "../../util/color/colorConverter"
6
6
  import { CodeMapBuilding } from "./rendering/codeMapBuilding"
7
- import debounce from "lodash.debounce"
8
7
  import { IdToBuildingService } from "../../services/idToBuilding/idToBuilding.service"
9
8
  import { tap } from "rxjs"
10
9
  import { hoveredNodeIdSelector } from "../../state/store/appStatus/hoveredNodeId/hoveredNodeId.selector"
11
10
  import { Store } from "../../state/angular-redux/store"
12
11
  import { State } from "../../state/angular-redux/state"
12
+ import { debounce } from "../../util/debounce"
13
13
 
14
14
  @Injectable({ providedIn: "root" })
15
- export class CodeMapArrowService {
16
- private VERTICES_PER_LINE = 5
15
+ export class CodeMapArrowService implements OnDestroy {
17
16
  private map: Map<string, Node>
18
- private arrows: Object3D[]
19
- private debounceCalculation: (hoveredBuilding: CodeMapBuilding) => void
20
- private HIGHLIGHT_BUILDING_DELAY = 15
17
+ private VERTICES_PER_LINE = 5
18
+ private arrows: Object3D[] = new Array<Object3D>()
19
+ private HIGHLIGHT_BUILDING_DELAY = 1
20
+ private debounceCalculation: (hoveredBuilding: CodeMapBuilding) => void = debounce(
21
+ (hoveredBuilding: CodeMapBuilding) => this.resetEdgesOfBuildings(hoveredBuilding),
22
+ this.HIGHLIGHT_BUILDING_DELAY
23
+ )
24
+ private subscription = this.store
25
+ .select(hoveredNodeIdSelector)
26
+ .pipe(
27
+ tap(hoveredNodeId => {
28
+ if (hoveredNodeId !== null) {
29
+ const hoveredBuilding = this.idToBuildingService.get(hoveredNodeId)
30
+ this.onBuildingHovered(hoveredBuilding)
31
+ } else {
32
+ this.onBuildingUnhovered()
33
+ }
34
+ })
35
+ )
36
+ .subscribe()
21
37
 
22
38
  constructor(
23
- @Inject(Store) private store: Store,
24
- @Inject(State) private state: State,
25
- @Inject(ThreeSceneService) private threeSceneService: ThreeSceneService,
26
- @Inject(IdToBuildingService) private idToBuildingService: IdToBuildingService
39
+ private store: Store,
40
+ private state: State,
41
+ private threeSceneService: ThreeSceneService,
42
+ private idToBuildingService: IdToBuildingService
27
43
  ) {
28
- this.arrows = new Array<Object3D>()
29
- this.store
30
- .select(hoveredNodeIdSelector)
31
- .pipe(
32
- tap(hoveredNodeId => {
33
- if (hoveredNodeId !== null) {
34
- const hoveredBuilding = this.idToBuildingService.get(hoveredNodeId)
35
- this.onBuildingHovered(hoveredBuilding)
36
- } else {
37
- this.onBuildingUnhovered()
38
- }
39
- })
40
- )
41
- .subscribe()
42
44
  this.threeSceneService.subscribe("onBuildingSelected", this.onBuildingSelected)
43
45
  this.threeSceneService.subscribe("onBuildingDeselected", this.onBuildingDeselected)
44
- this.debounceCalculation = debounce(hoveredBuildings => this.resetEdgesOfBuildings(hoveredBuildings), this.HIGHLIGHT_BUILDING_DELAY)
45
46
  }
46
47
 
47
- private resetEdgesOfBuildings = hoveredBuilding => {
48
+ ngOnDestroy(): void {
49
+ this.subscription.unsubscribe()
50
+ }
51
+
52
+ private resetEdgesOfBuildings = (hoveredBuilding: CodeMapBuilding) => {
48
53
  if (this.isEdgeApplicableForBuilding(hoveredBuilding)) {
49
54
  this.clearArrows()
50
55
  this.showEdgesOfBuildings(hoveredBuilding)
@@ -62,7 +67,6 @@ export class CodeMapArrowService {
62
67
 
63
68
  onBuildingDeselected = () => {
64
69
  this.clearArrows()
65
- this.threeSceneService.clearHighlight()
66
70
  this.addEdgePreview()
67
71
  }
68
72
 
@@ -170,14 +174,15 @@ export class CodeMapArrowService {
170
174
  }
171
175
  if (node.has(originNode.path)) {
172
176
  this.addArrow(targetNode, originNode, true)
177
+ this.threeSceneService.highlightBuildings()
173
178
  // TODO: Check if the second if case is actually necessary. Edges should
174
179
  // always have valid origin and target paths. The test data is likely
175
180
  // faulty and should be improved.
176
181
  } else if (node.has(targetNode.path)) {
177
182
  this.addArrow(targetNode, originNode, false)
183
+ this.threeSceneService.highlightBuildings()
178
184
  }
179
185
  }
180
- this.threeSceneService.highlightBuildings()
181
186
  }
182
187
 
183
188
  private createCurve(arrowOriginNode: Node, arrowTargetNode: Node, curveScale) {
@@ -1,5 +1,4 @@
1
- import "./codeMap.component.scss"
2
- import { Component, Inject, AfterViewInit, ElementRef, OnDestroy } from "@angular/core"
1
+ import { Component, AfterViewInit, ElementRef, OnDestroy, ViewEncapsulation } from "@angular/core"
3
2
  import { Store } from "../../state/angular-redux/store"
4
3
  import { isLoadingFileSelector } from "../../state/store/appSettings/isLoadingFile/isLoadingFile.selector"
5
4
  import { ThreeViewerService } from "./threeViewer/threeViewer.service"
@@ -10,7 +9,9 @@ import { IsAttributeSideBarVisibleService } from "../../services/isAttributeSide
10
9
 
11
10
  @Component({
12
11
  selector: "cc-code-map",
13
- template: require("./codeMap.component.html")
12
+ templateUrl: "./codeMap.component.html",
13
+ styleUrls: ["./codeMap.component.scss"],
14
+ encapsulation: ViewEncapsulation.None
14
15
  })
15
16
  export class CodeMapComponent implements AfterViewInit, OnDestroy {
16
17
  isLoadingFile$ = this.store.select(isLoadingFileSelector)
@@ -26,11 +27,11 @@ export class CodeMapComponent implements AfterViewInit, OnDestroy {
26
27
  .subscribe()
27
28
 
28
29
  constructor(
29
- @Inject(IsAttributeSideBarVisibleService) public isAttributeSideBarVisibleService: IsAttributeSideBarVisibleService,
30
- @Inject(Store) private store: Store,
31
- @Inject(ThreeViewerService) private threeViewerService: ThreeViewerService,
32
- @Inject(CodeMapMouseEventService) private codeMapMouseEventService: CodeMapMouseEventService,
33
- @Inject(ElementRef) private elementReference: ElementRef
30
+ public isAttributeSideBarVisibleService: IsAttributeSideBarVisibleService,
31
+ private store: Store,
32
+ private threeViewerService: ThreeViewerService,
33
+ private codeMapMouseEventService: CodeMapMouseEventService,
34
+ private elementReference: ElementRef
34
35
  ) {}
35
36
 
36
37
  ngAfterViewInit(): void {
@@ -5,7 +5,7 @@ import { ThreeCameraService } from "./threeViewer/threeCamera.service"
5
5
  import { ThreeSceneService } from "./threeViewer/threeSceneService"
6
6
  import { ColorConverter } from "../../util/color/colorConverter"
7
7
  import { State } from "../../state/angular-redux/state"
8
- import { Inject, Injectable } from "@angular/core"
8
+ import { Injectable } from "@angular/core"
9
9
  import { treeMapSize } from "../../util/algorithm/treeMapLayout/treeMapHelper"
10
10
 
11
11
  interface InternalLabel {
@@ -33,10 +33,10 @@ export class CodeMapLabelService {
33
33
  private nodeHeight = 0
34
34
 
35
35
  constructor(
36
- @Inject(State) private state: State,
37
- @Inject(ThreeCameraService) private threeCameraService: ThreeCameraService,
38
- @Inject(ThreeSceneService) private threeSceneService: ThreeSceneService,
39
- @Inject(ThreeOrbitControlsService) private threeOrbitControlsService: ThreeOrbitControlsService
36
+ private state: State,
37
+ private threeCameraService: ThreeCameraService,
38
+ private threeSceneService: ThreeSceneService,
39
+ private threeOrbitControlsService: ThreeOrbitControlsService
40
40
  ) {
41
41
  this.labels = new Array<InternalLabel>()
42
42
  this.threeOrbitControlsService.subscribe("onCameraChanged", () => this.onCameraChanged())
@@ -501,6 +501,7 @@ describe("codeMapMouseEventService", () => {
501
501
  describe("on left click", () => {
502
502
  beforeEach(() => {
503
503
  event = { button: ClickType.LeftClick, clientX: 10, clientY: 20 }
504
+ codeMapMouseEventService["intersectedBuilding"] = undefined
504
505
  })
505
506
  it("should change the cursor to default when the left click is triggered", () => {
506
507
  document.body.style.cursor = CursorType.Pointer
@@ -537,7 +538,7 @@ describe("codeMapMouseEventService", () => {
537
538
  expect(threeSceneService.selectBuilding).toHaveBeenCalledWith(codeMapBuilding)
538
539
  })
539
540
 
540
- it("should call clearselection, when the mouse has moved less or exact 3 pixels while left button was pressed", () => {
541
+ it("should call clearSelection, when the mouse has moved less or exact 3 pixels while left button was pressed", () => {
541
542
  codeMapMouseEventService.onDocumentMouseMove(event)
542
543
  codeMapMouseEventService.onDocumentMouseDown(event)
543
544
  codeMapMouseEventService.onDocumentMouseMove({ clientX: 10, clientY: 17 } as MouseEvent)
@@ -547,6 +548,18 @@ describe("codeMapMouseEventService", () => {
547
548
  expect(threeSceneService.clearSelection).toHaveBeenCalled()
548
549
  })
549
550
 
551
+ it("should not call clearSelection, when the mouse has moved less or exact 3 pixels but a building is currently being clicked upon", () => {
552
+ codeMapMouseEventService.onDocumentMouseMove(event)
553
+ codeMapMouseEventService.onDocumentMouseDown(event)
554
+ codeMapMouseEventService.onDocumentMouseMove({ clientX: 10, clientY: 17 } as MouseEvent)
555
+ codeMapMouseEventService["intersectedBuilding"] = CODE_MAP_BUILDING
556
+
557
+ codeMapMouseEventService.onDocumentMouseUp(event)
558
+
559
+ expect(threeSceneService.clearSelection).toHaveBeenCalledTimes(0)
560
+ expect(threeSceneService.selectBuilding).toHaveBeenLastCalledWith(CODE_MAP_BUILDING)
561
+ })
562
+
550
563
  it("should not call clear selection, when mouse has moved more than 3 pixels while left button was pressed", () => {
551
564
  codeMapMouseEventService.onDocumentMouseMove(event)
552
565
  codeMapMouseEventService.onDocumentMouseDown(event)
@@ -1,4 +1,4 @@
1
- import { Inject, Injectable } from "@angular/core"
1
+ import { Injectable, OnDestroy } from "@angular/core"
2
2
  import { ThreeCameraService } from "./threeViewer/threeCamera.service"
3
3
  import { CodeMapBuilding } from "./rendering/codeMapBuilding"
4
4
  import { ViewCubeMouseEventsService } from "../viewCube/viewCube.mouseEvents.service"
@@ -15,12 +15,12 @@ import { setRightClickedNodeData } from "../../state/store/appStatus/rightClicke
15
15
  import { idToNodeSelector } from "../../state/selectors/accumulatedData/idToNode.selector"
16
16
  import { IdToBuildingService } from "../../services/idToBuilding/idToBuilding.service"
17
17
  import { hoveredNodeIdSelector } from "../../state/store/appStatus/hoveredNodeId/hoveredNodeId.selector"
18
- import { debounce } from "lodash"
19
18
  import { tap, distinctUntilChanged } from "rxjs"
20
19
  import { Store } from "../../state/angular-redux/store"
21
20
  import { visibleFileStatesSelector } from "../../state/selectors/visibleFileStates.selector"
22
21
  import { blacklistSelector } from "../../state/store/fileSettings/blacklist/blacklist.selector"
23
22
  import { State } from "../../state/angular-redux/state"
23
+ import { debounce } from "../../util/debounce"
24
24
 
25
25
  interface Coordinates {
26
26
  x: number
@@ -40,7 +40,7 @@ export enum CursorType {
40
40
  }
41
41
 
42
42
  @Injectable({ providedIn: "root" })
43
- export class CodeMapMouseEventService {
43
+ export class CodeMapMouseEventService implements OnDestroy {
44
44
  private readonly THRESHOLD_FOR_MOUSE_MOVEMENT_TRACKING = 3
45
45
 
46
46
  private intersectedBuilding: CodeMapBuilding
@@ -52,26 +52,15 @@ export class CodeMapMouseEventService {
52
52
  private isMoving = false
53
53
  private raycaster = new Raycaster()
54
54
  private temporaryLabelForBuilding = null
55
-
56
- constructor(
57
- @Inject(ThreeCameraService) private threeCameraService: ThreeCameraService,
58
- @Inject(ThreeRendererService) private threeRendererService: ThreeRendererService,
59
- @Inject(ThreeSceneService) private threeSceneService: ThreeSceneService,
60
- @Inject(Store) private store: Store,
61
- @Inject(State) private state: State,
62
- @Inject(CodeMapLabelService) private codeMapLabelService: CodeMapLabelService,
63
- @Inject(ViewCubeMouseEventsService) private viewCubeMouseEvents: ViewCubeMouseEventsService,
64
- @Inject(ThreeViewerService) private threeViewerService: ThreeViewerService,
65
- @Inject(IdToBuildingService) private idToBuilding: IdToBuildingService
66
- ) {
55
+ private subscriptions = [
67
56
  this.store
68
57
  .select(visibleFileStatesSelector)
69
58
  .pipe(tap(() => this.onFilesSelectionChanged()))
70
- .subscribe()
59
+ .subscribe(),
71
60
  this.store
72
61
  .select(blacklistSelector)
73
62
  .pipe(tap(blacklist => this.onBlacklistChanged(blacklist)))
74
- .subscribe()
63
+ .subscribe(),
75
64
  this.store
76
65
  .select(hoveredNodeIdSelector)
77
66
  .pipe(
@@ -85,6 +74,24 @@ export class CodeMapMouseEventService {
85
74
  })
86
75
  )
87
76
  .subscribe()
77
+ ]
78
+
79
+ constructor(
80
+ private threeCameraService: ThreeCameraService,
81
+ private threeRendererService: ThreeRendererService,
82
+ private threeSceneService: ThreeSceneService,
83
+ private store: Store,
84
+ private state: State,
85
+ private codeMapLabelService: CodeMapLabelService,
86
+ private viewCubeMouseEvents: ViewCubeMouseEventsService,
87
+ private threeViewerService: ThreeViewerService,
88
+ private idToBuilding: IdToBuildingService
89
+ ) {}
90
+
91
+ ngOnDestroy(): void {
92
+ for (const subscription of this.subscriptions) {
93
+ subscription.unsubscribe()
94
+ }
88
95
  }
89
96
 
90
97
  static changeCursorIndicator(cursorIcon: CursorType) {
@@ -92,10 +99,7 @@ export class CodeMapMouseEventService {
92
99
  }
93
100
 
94
101
  start() {
95
- this.threeRendererService.renderer.domElement.addEventListener(
96
- "mousemove",
97
- debounce(event => this.onDocumentMouseMove(event), 60)
98
- )
102
+ this.threeRendererService.renderer.domElement.addEventListener("mousemove", debounce(this.onDocumentMouseMove, 1))
99
103
  this.threeRendererService.renderer.domElement.addEventListener("mouseup", event => this.onDocumentMouseUp(event))
100
104
  this.threeRendererService.renderer.domElement.addEventListener("mousedown", event => this.onDocumentMouseDown(event))
101
105
  this.threeRendererService.renderer.domElement.addEventListener("dblclick", () => this.onDocumentDoubleClick())
@@ -103,7 +107,7 @@ export class CodeMapMouseEventService {
103
107
  this.threeRendererService.renderer.domElement.addEventListener("mouseenter", () => this.onDocumentMouseEnter())
104
108
  this.threeRendererService.renderer.domElement.addEventListener(
105
109
  "wheel",
106
- debounce(() => this.threeRendererService.render(), 60)
110
+ debounce(() => this.threeRendererService.render(), 1)
107
111
  )
108
112
  this.viewCubeMouseEvents.subscribe("viewCubeEventPropagation", this.onViewCubeEventPropagation)
109
113
  }
@@ -260,7 +264,7 @@ export class CodeMapMouseEventService {
260
264
  }
261
265
  }
262
266
 
263
- onDocumentMouseMove(event: MouseEvent) {
267
+ onDocumentMouseMove = (event: MouseEvent) => {
264
268
  this.mouse.x = event.clientX
265
269
  this.mouse.y = event.clientY
266
270
  this.updateHovering()
@@ -349,11 +353,12 @@ export class CodeMapMouseEventService {
349
353
  private onLeftClick() {
350
354
  this.isGrabbing = false
351
355
  if (!this.hasMouseMovedMoreThanThreePixels(this.mouseOnLastClick)) {
352
- this.threeSceneService.clearSelection()
353
- this.threeSceneService.clearConstantHighlight()
354
356
  if (this.intersectedBuilding) {
355
357
  this.threeSceneService.selectBuilding(this.intersectedBuilding)
358
+ } else {
359
+ this.threeSceneService.clearSelection()
356
360
  }
361
+ this.threeSceneService.clearConstantHighlight()
357
362
  }
358
363
  this.threeRendererService.render()
359
364
  }
@@ -26,15 +26,14 @@ import { setShowMetricLabelNameValue } from "../../state/store/appSettings/showM
26
26
  import { klona } from "klona"
27
27
  import { ThreeStatsService } from "./threeViewer/threeStats.service"
28
28
  import { setColorLabels } from "../../state/store/appSettings/colorLabels/colorLabels.actions"
29
- import { nodeMetricDataSelector } from "../../state/selectors/accumulatedData/metricData/nodeMetricData.selector"
30
29
  import { CodeMapMouseEventService } from "./codeMap.mouseEvent.service"
31
30
  import { Store } from "../../state/angular-redux/store"
32
31
  import { State } from "../../state/angular-redux/state"
32
+ import { metricDataSelector } from "../../state/selectors/accumulatedData/metricData/metricData.selector"
33
33
 
34
- const mockedNodeMetricDataSelector = nodeMetricDataSelector as unknown as jest.Mock
35
- jest.mock("../../state/selectors/accumulatedData/metricData/nodeMetricData.selector", () => ({
36
- nodeMetricDataSelector: jest.fn(),
37
- UNARY_METRIC: "unary"
34
+ const mockedMetricDataSelector = metricDataSelector as unknown as jest.Mock
35
+ jest.mock("../../state/selectors/accumulatedData/metricData/metricData.selector", () => ({
36
+ metricDataSelector: jest.fn()
38
37
  }))
39
38
 
40
39
  describe("codeMapRenderService", () => {
@@ -74,7 +73,10 @@ describe("codeMapRenderService", () => {
74
73
  NodeDecorator.decorateParentNodesWithAggregatedAttributes(map, false, DEFAULT_STATE.fileSettings.attributeTypes)
75
74
  store.dispatch(setState(STATE))
76
75
  store.dispatch(unfocusNode())
77
- mockedNodeMetricDataSelector.mockImplementation(() => METRIC_DATA)
76
+ mockedMetricDataSelector.mockImplementation(() => ({
77
+ nodeMetricData: METRIC_DATA,
78
+ edgeMetricData: []
79
+ }))
78
80
  }
79
81
 
80
82
  function rebuildService() {
@@ -1,4 +1,4 @@
1
- import { Inject, Injectable } from "@angular/core"
1
+ import { Injectable, OnDestroy } from "@angular/core"
2
2
  import { CodeMapMesh } from "./rendering/codeMapMesh"
3
3
  import { createTreemapNodes } from "../../util/algorithm/treeMapLayout/treeMapGenerator"
4
4
  import { CodeMapLabelService } from "./codeMap.label.service"
@@ -8,32 +8,37 @@ import { CodeMapNode, LayoutAlgorithm, Node } from "../../codeCharta.model"
8
8
  import { isDeltaState } from "../../model/files/files.helper"
9
9
  import { StreetLayoutGenerator } from "../../util/algorithm/streetLayout/streetLayoutGenerator"
10
10
  import { ThreeStatsService } from "./threeViewer/threeStats.service"
11
- import { nodeMetricDataSelector } from "../../state/selectors/accumulatedData/metricData/nodeMetricData.selector"
12
11
  import { CodeMapMouseEventService } from "./codeMap.mouseEvent.service"
13
12
  import { Store } from "../../state/angular-redux/store"
14
13
  import { isLoadingFileSelector } from "../../state/store/appSettings/isLoadingFile/isLoadingFile.selector"
15
- import { tap } from "rxjs"
14
+ import { Subscription, tap } from "rxjs"
16
15
  import { State } from "../../state/angular-redux/state"
16
+ import { metricDataSelector } from "../../state/selectors/accumulatedData/metricData/metricData.selector"
17
17
 
18
18
  @Injectable({ providedIn: "root" })
19
- export class CodeMapRenderService {
19
+ export class CodeMapRenderService implements OnDestroy {
20
20
  private nodesByColor = {
21
21
  positive: [],
22
22
  neutral: [],
23
23
  negative: []
24
24
  }
25
25
  private unflattenedNodes
26
+ private subscription: Subscription
26
27
 
27
28
  constructor(
28
- @Inject(Store) private store: Store,
29
- @Inject(State) private state: State,
30
- @Inject(ThreeSceneService) private threeSceneService: ThreeSceneService,
31
- @Inject(CodeMapLabelService) private codeMapLabelService: CodeMapLabelService,
32
- @Inject(CodeMapArrowService) private codeMapArrowService: CodeMapArrowService,
33
- @Inject(ThreeStatsService) private threeStatsService: ThreeStatsService,
34
- @Inject(CodeMapMouseEventService) private codeMapMouseEventService: CodeMapMouseEventService
29
+ private store: Store,
30
+ private state: State,
31
+ private threeSceneService: ThreeSceneService,
32
+ private codeMapLabelService: CodeMapLabelService,
33
+ private codeMapArrowService: CodeMapArrowService,
34
+ private threeStatsService: ThreeStatsService,
35
+ private codeMapMouseEventService: CodeMapMouseEventService
35
36
  ) {
36
- this.store.select(isLoadingFileSelector).pipe(tap(this.onIsLoadingFileChanged)).subscribe()
37
+ this.subscription = this.store.select(isLoadingFileSelector).pipe(tap(this.onIsLoadingFileChanged)).subscribe()
38
+ }
39
+
40
+ ngOnDestroy(): void {
41
+ this.subscription.unsubscribe()
37
42
  }
38
43
 
39
44
  onIsLoadingFileChanged = (isLoadingFile: boolean) => {
@@ -75,7 +80,7 @@ export class CodeMapRenderService {
75
80
 
76
81
  private getNodes(map: CodeMapNode) {
77
82
  const state = this.state.getValue()
78
- const nodeMetricData = nodeMetricDataSelector(state)
83
+ const nodeMetricData = metricDataSelector(state).nodeMetricData
79
84
  const {
80
85
  appSettings: { layoutAlgorithm },
81
86
  files
@@ -3,7 +3,7 @@ import { ThreeOrbitControlsService } from "./threeOrbitControls.service"
3
3
  import { ThreeCameraService } from "./threeCamera.service"
4
4
  import { ThreeSceneService } from "./threeSceneService"
5
5
  import { BoxGeometry, Group, Mesh, PerspectiveCamera, Vector3 } from "three"
6
- import { OrbitControls } from "three/examples/jsm/controls/OrbitControls"
6
+ import type { OrbitControls } from "three/examples/jsm/controls/OrbitControls"
7
7
  import { ThreeRendererService } from "./threeRenderer.service"
8
8
  import { wait } from "../../../util/testUtils/wait"
9
9
 
@@ -46,7 +46,7 @@ describe("ThreeOrbitControlsService", () => {
46
46
  function withMockedControlService() {
47
47
  threeOrbitControlsService.controls = {
48
48
  target: new Vector3(1, 1, 1)
49
- } as OrbitControls
49
+ } as unknown as OrbitControls
50
50
  threeOrbitControlsService.controls.update = jest.fn()
51
51
  }
52
52
 
@@ -57,7 +57,7 @@ describe("ThreeOrbitControlsService", () => {
57
57
  it("rotateCameraInVectorDirection ", () => {
58
58
  threeOrbitControlsService.controls = {
59
59
  target: new Vector3(0, 0, 0)
60
- } as OrbitControls
60
+ } as unknown as OrbitControls
61
61
  const vector = { x: 0, y: 1, z: 0 }
62
62
 
63
63
  threeOrbitControlsService.rotateCameraInVectorDirection(vector.x, vector.y, vector.z)
@@ -1,15 +1,15 @@
1
1
  import { ThreeCameraService } from "./threeCamera.service"
2
- import { Inject, Injectable } from "@angular/core"
2
+ import { Injectable } from "@angular/core"
3
3
  import { Box3, Mesh, MeshNormalMaterial, PerspectiveCamera, Vector3, Sphere, BoxGeometry } from "three"
4
4
  import { ThreeSceneService } from "./threeSceneService"
5
5
 
6
- import { OrbitControls } from "three/examples/jsm/controls/OrbitControls"
6
+ import type { OrbitControls as OrbitControlsType } from "three/examples/jsm/controls/OrbitControls"
7
7
  // TODO remove this old orbital control and use the jsm examples oneW
8
8
  // eslint-disable-next-line no-duplicate-imports
9
9
  import * as Three from "three"
10
10
  import oc from "three-orbit-controls"
11
- import { EventEmitter } from "tsee"
12
11
  import { ThreeRendererService } from "./threeRenderer.service"
12
+ import { EventEmitter } from "../../../util/EventEmitter"
13
13
 
14
14
  type CameraChangeEvents = {
15
15
  onCameraChanged: (data: { camera: PerspectiveCamera }) => void
@@ -19,13 +19,13 @@ type CameraChangeEvents = {
19
19
  export class ThreeOrbitControlsService {
20
20
  static CAMERA_CHANGED_EVENT_NAME = "camera-changed"
21
21
 
22
- controls: OrbitControls
22
+ controls: OrbitControlsType
23
23
  private eventEmitter = new EventEmitter<CameraChangeEvents>()
24
24
 
25
25
  constructor(
26
- @Inject(ThreeCameraService) private threeCameraService: ThreeCameraService,
27
- @Inject(ThreeSceneService) private threeSceneService: ThreeSceneService,
28
- @Inject(ThreeRendererService) private threeRendererService: ThreeRendererService
26
+ private threeCameraService: ThreeCameraService,
27
+ private threeSceneService: ThreeSceneService,
28
+ private threeRendererService: ThreeRendererService
29
29
  ) {}
30
30
 
31
31
  setControlTarget(cameraTarget: Vector3) {
@@ -111,8 +111,8 @@ export class ThreeOrbitControlsService {
111
111
  }
112
112
 
113
113
  init(domElement: HTMLCanvasElement) {
114
- const orbitControls = oc(Three)
115
- this.controls = new orbitControls(this.threeCameraService.camera, domElement)
114
+ const OrbitControls = oc(Three)
115
+ this.controls = new OrbitControls(this.threeCameraService.camera, domElement) as unknown as OrbitControlsType
116
116
  this.controls.addEventListener("change", () => {
117
117
  this.onInput(this.threeCameraService.camera)
118
118
  })
@@ -1,4 +1,4 @@
1
- import { Inject, Injectable } from "@angular/core"
1
+ import { Injectable } from "@angular/core"
2
2
  import { Camera, RGBAFormat, Scene, Vector2, WebGLInfo, WebGLRenderer, WebGLRenderTarget } from "three"
3
3
  import { RenderPass } from "three/examples/jsm/postprocessing/RenderPass"
4
4
  import { WEBGL } from "three/examples/jsm/WebGL"
@@ -14,7 +14,7 @@ import { fxaaShaderStrings } from "../rendering/shaders/loaders/fxaaShaderString
14
14
  export class ThreeRendererService {
15
15
  static BACKGROUND_COLOR = {
16
16
  white: 0xff_ff_ff,
17
- normal: 0xee_ee_dd
17
+ normal: 0xf4_f4_eb
18
18
  }
19
19
 
20
20
  static CLEAR_COLOR = ThreeRendererService.BACKGROUND_COLOR.normal
@@ -37,7 +37,7 @@ export class ThreeRendererService {
37
37
  scene: Scene
38
38
  camera: Camera
39
39
 
40
- constructor(@Inject(Store) private store: Store, @Inject(State) private state: State) {}
40
+ constructor(private store: Store, private state: State) {}
41
41
 
42
42
  init(containerWidth: number, containerHeight: number, scene: Scene, camera: Camera) {
43
43
  this.scene = scene
@@ -10,12 +10,12 @@ import { idToNodeSelector } from "../../../state/selectors/accumulatedData/idToN
10
10
  import { IdToBuildingService } from "../../../services/idToBuilding/idToBuilding.service"
11
11
  import { mapColorsSelector } from "../../../state/store/appSettings/mapColors/mapColors.selector"
12
12
  import { ThreeRendererService } from "./threeRenderer.service"
13
- import { EventEmitter } from "tsee"
14
- import { Inject, Injectable } from "@angular/core"
13
+ import { Injectable, OnDestroy } from "@angular/core"
15
14
  import { Store } from "../../../state/angular-redux/store"
16
15
  import { defaultMapColors } from "../../../state/store/appSettings/mapColors/mapColors.actions"
17
16
  import { State } from "../../../state/angular-redux/state"
18
17
  import { treeMapSize } from "../../../util/algorithm/treeMapLayout/treeMapHelper"
18
+ import { EventEmitter } from "../../../util/EventEmitter"
19
19
 
20
20
  type BuildingSelectedEvents = {
21
21
  onBuildingSelected: (data: { building: CodeMapBuilding }) => void
@@ -23,7 +23,7 @@ type BuildingSelectedEvents = {
23
23
  }
24
24
 
25
25
  @Injectable({ providedIn: "root" })
26
- export class ThreeSceneService {
26
+ export class ThreeSceneService implements OnDestroy {
27
27
  scene: Scene
28
28
  labels: Group
29
29
  floorLabelPlanes: Group
@@ -49,18 +49,17 @@ export class ThreeSceneService {
49
49
  private highlightedLabel = null
50
50
  private highlightedLineIndex = -1
51
51
  private highlightedLine = null
52
+ private subscription = this.store.select(mapColorsSelector).subscribe(mapColors => {
53
+ this.folderLabelColorSelected = mapColors.selected
54
+ this.numberSelectionColor = ColorConverter.convertHexToNumber(this.folderLabelColorSelected)
55
+ })
52
56
 
53
57
  constructor(
54
- @Inject(Store) private store: Store,
55
- @Inject(State) private state: State,
56
- @Inject(IdToBuildingService) private idToBuilding: IdToBuildingService,
57
- @Inject(ThreeRendererService) private threeRendererService: ThreeRendererService
58
+ private store: Store,
59
+ private state: State,
60
+ private idToBuilding: IdToBuildingService,
61
+ private threeRendererService: ThreeRendererService
58
62
  ) {
59
- this.store.select(mapColorsSelector).subscribe(mapColors => {
60
- this.folderLabelColorSelected = mapColors.selected
61
- this.numberSelectionColor = ColorConverter.convertHexToNumber(this.folderLabelColorSelected)
62
- })
63
-
64
63
  this.scene = new Scene()
65
64
  this.mapGeometry = new Group()
66
65
  this.lights = new Group()
@@ -77,6 +76,10 @@ export class ThreeSceneService {
77
76
  this.scene.add(this.floorLabelPlanes)
78
77
  }
79
78
 
79
+ ngOnDestroy(): void {
80
+ this.subscription.unsubscribe()
81
+ }
82
+
80
83
  private initFloorLabels(nodes: Node[]) {
81
84
  this.floorLabelPlanes.clear()
82
85
 
@@ -368,6 +371,7 @@ export class ThreeSceneService {
368
371
  this.store.dispatch(setSelectedBuildingId(null))
369
372
  this.eventEmitter.emit("onBuildingDeselected")
370
373
  }
374
+
371
375
  if (this.highlighted.length > 0) {
372
376
  this.highlightBuildings()
373
377
  }
@@ -419,13 +423,6 @@ export class ThreeSceneService {
419
423
  return this.highlighted[0]
420
424
  }
421
425
 
422
- getHighlightedNode() {
423
- if (this.getHighlightedBuilding()) {
424
- return this.getHighlightedBuilding().node
425
- }
426
- return null
427
- }
428
-
429
426
  dispose() {
430
427
  this.mapMesh?.dispose()
431
428
  }