codecharta-visualization 1.113.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 (491) hide show
  1. package/README.md +4 -1
  2. package/app/app.module.ts +1 -11
  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 +2 -5
  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/fileRoot.ts +8 -0
  16. package/app/codeCharta/services/loadFile/loadFile.service.spec.ts +12 -11
  17. package/app/codeCharta/services/loadFile/loadFile.service.ts +10 -12
  18. package/app/codeCharta/services/loadInitialFile/loadInitialFile.service.spec.ts +1 -1
  19. package/app/codeCharta/services/loadInitialFile/loadInitialFile.service.ts +7 -7
  20. package/app/codeCharta/services/version/version.service.ts +2 -2
  21. package/app/codeCharta/state/angular-redux/effects/createEffect.spec.ts +1 -2
  22. package/app/codeCharta/state/effects/addBlacklistItemsIfNotResultsInEmptyMap/addBlacklistItemsIfNotResultsInEmptyMap.effect.spec.ts +4 -9
  23. package/app/codeCharta/state/effects/addBlacklistItemsIfNotResultsInEmptyMap/resultsInEmptyMap.ts +2 -2
  24. package/app/codeCharta/state/effects/autoFitCodeMapChange/autoFitCodeMap.effect.spec.ts +1 -2
  25. package/app/codeCharta/state/effects/autoFitCodeMapChange/autoFitCodeMap.effect.ts +5 -5
  26. package/app/codeCharta/state/effects/linkColorMetricToHeightMetric/linkColorMetricToHeightMetric.effect.ts +2 -2
  27. package/app/codeCharta/state/effects/nodeContextMenu/excludeButton/excludeButton.component.ts +6 -5
  28. package/app/codeCharta/state/effects/nodeContextMenu/flattenButtons/flattenButtons.component.html +2 -2
  29. package/app/codeCharta/state/effects/nodeContextMenu/flattenButtons/flattenButtons.component.spec.ts +4 -4
  30. package/app/codeCharta/state/effects/nodeContextMenu/flattenButtons/flattenButtons.component.ts +7 -6
  31. package/app/codeCharta/state/effects/nodeContextMenu/focusButtons/focusButtons.component.ts +4 -3
  32. package/app/codeCharta/state/effects/nodeContextMenu/highlightButtons/highlightButtons.component.spec.ts +5 -5
  33. package/app/codeCharta/state/effects/nodeContextMenu/highlightButtons/highlightButtons.component.ts +4 -6
  34. package/app/codeCharta/state/effects/nodeContextMenu/markFolderRow/markFolderRow.component.ts +5 -4
  35. package/app/codeCharta/state/effects/nodeContextMenu/nodeContextMenu.service.ts +2 -2
  36. package/app/codeCharta/state/effects/nodeContextMenu/nodeContextMenuCard/nodeContextMenuCard.component.html +1 -1
  37. package/app/codeCharta/state/effects/nodeContextMenu/nodeContextMenuCard/nodeContextMenuCard.component.scss +6 -7
  38. package/app/codeCharta/state/effects/nodeContextMenu/nodeContextMenuCard/nodeContextMenuCard.component.spec.ts +1 -2
  39. package/app/codeCharta/state/effects/nodeContextMenu/nodeContextMenuCard/nodeContextMenuCard.component.ts +5 -4
  40. package/app/codeCharta/state/effects/nodeContextMenu/nodeContextMenuCard/nodeContextMenuCard.module.ts +1 -2
  41. package/app/codeCharta/state/effects/nodeContextMenu/openNodeContextMenu.effect.ts +1 -4
  42. package/app/codeCharta/state/effects/renderCodeMapEffect/actionsRequiringRerender.ts +3 -1
  43. package/app/codeCharta/state/effects/renderCodeMapEffect/renderCodeMap.effect.ts +4 -4
  44. package/app/codeCharta/state/effects/resetChosenMetrics/resetChosenMetrics.effect.spec.ts +25 -19
  45. package/app/codeCharta/state/effects/resetChosenMetrics/resetChosenMetrics.effect.ts +6 -5
  46. package/app/codeCharta/state/effects/resetSelectedEdgeMetricWhenItDoesntExistAnymore/resetSelectedEdgeMetricWhenItDoesntExistAnymore.effect.spec.ts +13 -13
  47. package/app/codeCharta/state/effects/resetSelectedEdgeMetricWhenItDoesntExistAnymore/resetSelectedEdgeMetricWhenItDoesntExistAnymore.effect.ts +6 -6
  48. package/app/codeCharta/state/effects/unfocusNodes/unfocusNodes.effect.ts +2 -2
  49. package/app/codeCharta/state/effects/updateEdgePreviews/updateEdgePreviews.effect.ts +2 -2
  50. package/app/codeCharta/state/effects/updateEdgePreviews/utils/edgePreviewNodes.selector.ts +5 -3
  51. package/app/codeCharta/state/effects/updateFileSettings/updateFileSettings.effect.ts +2 -2
  52. package/app/codeCharta/state/effects/updateFileSettings/utils/__snapshots__/blacklist.merger.spec.ts.snap +9 -9
  53. package/app/codeCharta/state/effects/updateFileSettings/utils/__snapshots__/edges.merger.spec.ts.snap +16 -16
  54. package/app/codeCharta/state/effects/updateFileSettings/utils/__snapshots__/markedPackages.merger.spec.ts.snap +10 -10
  55. package/app/codeCharta/state/effects/updateFileSettings/utils/blacklist.merger.spec.ts +6 -6
  56. package/app/codeCharta/state/effects/updateVisibleTopLabels/updateVisibleTopLabels.effect.ts +2 -2
  57. package/app/codeCharta/state/selectors/accumulatedData/accumulatedData.selector.spec.ts +76 -0
  58. package/app/codeCharta/state/selectors/accumulatedData/accumulatedData.selector.ts +7 -12
  59. package/app/codeCharta/state/selectors/accumulatedData/metricData/edgeMetricData.calculator.spec.ts +46 -0
  60. package/app/codeCharta/state/selectors/accumulatedData/metricData/{edgeMetricData.selector.ts → edgeMetricData.calculator.ts} +12 -28
  61. package/app/codeCharta/state/selectors/accumulatedData/metricData/metricData.selector.ts +10 -6
  62. package/app/codeCharta/state/selectors/accumulatedData/metricData/metricNames.selector.spec.ts +5 -5
  63. package/app/codeCharta/state/selectors/accumulatedData/metricData/metricNames.selector.ts +2 -2
  64. package/app/codeCharta/state/selectors/accumulatedData/metricData/{nodeMetricData.selector.spec.ts → nodeMetricData.calculator.spec.ts} +3 -4
  65. package/app/codeCharta/state/selectors/accumulatedData/metricData/{nodeMetricData.selector.ts → nodeMetricData.calculator.ts} +2 -7
  66. package/app/codeCharta/state/selectors/accumulatedData/metricData/selectedColorMetricData.selector.ts +4 -4
  67. package/app/codeCharta/state/selectors/accumulatedData/utils/addEdgeMetricsForLeaves.ts +3 -2
  68. package/app/codeCharta/state/selectors/accumulatedData/utils/getMetricValuesForNode.spec.ts +4 -11
  69. package/app/codeCharta/state/selectors/accumulatedData/utils/getMetricValuesForNode.ts +2 -2
  70. package/app/codeCharta/state/selectors/allNecessaryRenderDataAvailable/areAllNecessaryRenderDataAvailable.selector.ts +7 -6
  71. package/app/codeCharta/state/selectors/primaryMetrics/primaryMetrics.selector.ts +27 -11
  72. package/app/codeCharta/state/store/appSettings/appSettings.actions.ts +3 -3
  73. package/app/codeCharta/state/store/appSettings/appSettings.reducer.ts +3 -3
  74. package/app/codeCharta/state/store/appSettings/enableFloorLabels/enableFloorLabels.actions.ts +21 -0
  75. package/app/codeCharta/state/store/appSettings/enableFloorLabels/enableFloorLabels.reducer.spec.ts +26 -0
  76. package/app/codeCharta/state/store/appSettings/enableFloorLabels/enableFloorLabels.reducer.ts +10 -0
  77. package/app/codeCharta/state/store/appSettings/{dynamicMargin/dynamicMargin.selector.ts → enableFloorLabels/enableFloorLabels.selector.ts} +1 -1
  78. package/app/codeCharta/state/store/appSettings/invertArea/invertArea.actions.ts +1 -12
  79. package/app/codeCharta/state/store/appSettings/invertArea/invertArea.reducer.ts +2 -4
  80. package/app/codeCharta/state/store/dynamicSettings/colorRange/resetColorRange.effect.ts +1 -1
  81. package/app/codeCharta/state/store/dynamicSettings/focusedNodePath/focusedNodePath.reducer.ts +2 -2
  82. package/app/codeCharta/state/store/fileSettings/blacklist/blacklist.reducer.spec.ts +5 -9
  83. package/app/codeCharta/state/store/state.reducer.spec.ts +3 -3
  84. package/app/codeCharta/ui/actionIcon/actionIcon.component.ts +4 -3
  85. package/app/codeCharta/ui/actionIcon/actionIcon.module.ts +1 -2
  86. package/app/codeCharta/ui/attributeSideBar/attributeSideBar.component.scss +1 -1
  87. package/app/codeCharta/ui/attributeSideBar/attributeSideBar.component.spec.ts +59 -7
  88. package/app/codeCharta/ui/attributeSideBar/attributeSideBar.component.ts +5 -7
  89. package/app/codeCharta/ui/attributeSideBar/attributeSideBar.module.ts +2 -2
  90. package/app/codeCharta/ui/attributeSideBar/attributeSideBarHeaderSection/attributeSideBarHeaderSection.component.ts +5 -4
  91. package/app/codeCharta/ui/attributeSideBar/attributeSideBarHeaderSection/nodePath/nodePath.component.ts +4 -3
  92. package/app/codeCharta/ui/attributeSideBar/attributeSideBarPrimaryMetrics/attributeSideBarPrimaryMetric/attributeSideBarPrimaryMetric.component.ts +4 -3
  93. package/app/codeCharta/ui/attributeSideBar/attributeSideBarPrimaryMetrics/attributeSideBarPrimaryMetrics.component.html +10 -5
  94. package/app/codeCharta/ui/attributeSideBar/attributeSideBarPrimaryMetrics/attributeSideBarPrimaryMetrics.component.ts +4 -3
  95. package/app/codeCharta/ui/attributeSideBar/attributeSideBarSecondaryMetrics/attributeSideBarSecondaryMetrics.component.html +5 -1
  96. package/app/codeCharta/ui/attributeSideBar/attributeSideBarSecondaryMetrics/attributeSideBarSecondaryMetrics.component.ts +4 -3
  97. package/app/codeCharta/ui/attributeSideBar/attributeSideBarSecondaryMetrics/secondaryMetrics.selector.spec.ts +29 -4
  98. package/app/codeCharta/ui/attributeSideBar/attributeSideBarSecondaryMetrics/secondaryMetrics.selector.ts +11 -4
  99. package/app/codeCharta/ui/attributeSideBar/attributeTypeSelector/attributeTypeSelector.component.scss +4 -6
  100. package/app/codeCharta/ui/attributeSideBar/attributeTypeSelector/attributeTypeSelector.component.ts +5 -4
  101. package/app/codeCharta/ui/attributeSideBar/metricDeltaSelected/metricDeltaSelected.component.spec.ts +3 -4
  102. package/app/codeCharta/ui/attributeSideBar/metricDeltaSelected/metricDeltaSelected.component.ts +4 -3
  103. package/app/codeCharta/ui/attributeSideBar/util/edge.ts +7 -0
  104. package/app/codeCharta/ui/attributeSideBar/util/metric.ts +2 -0
  105. package/app/codeCharta/ui/{legendPanel/selectors/legendMetric.ts → attributeSideBar/util/metricDescriptors.ts} +10 -4
  106. package/app/codeCharta/ui/codeMap/__snapshots__/codeMap.arrow.service.spec.ts.snap +16 -16
  107. package/app/codeCharta/ui/codeMap/__snapshots__/codeMap.render.service.spec.ts.snap +19 -19
  108. package/app/codeCharta/ui/codeMap/codeMap.arrow.service.spec.ts +5 -4
  109. package/app/codeCharta/ui/codeMap/codeMap.arrow.service.ts +34 -29
  110. package/app/codeCharta/ui/codeMap/codeMap.component.ts +9 -8
  111. package/app/codeCharta/ui/codeMap/codeMap.label.service.ts +5 -5
  112. package/app/codeCharta/ui/codeMap/codeMap.mouseEvent.service.spec.ts +18 -6
  113. package/app/codeCharta/ui/codeMap/codeMap.mouseEvent.service.ts +30 -25
  114. package/app/codeCharta/ui/codeMap/codeMap.render.service.spec.ts +8 -6
  115. package/app/codeCharta/ui/codeMap/codeMap.render.service.ts +18 -13
  116. package/app/codeCharta/ui/codeMap/threeViewer/threeOrbitControls.service.spec.ts +3 -3
  117. package/app/codeCharta/ui/codeMap/threeViewer/threeOrbitControls.service.ts +9 -9
  118. package/app/codeCharta/ui/codeMap/threeViewer/threeRenderer.service.ts +3 -3
  119. package/app/codeCharta/ui/codeMap/threeViewer/threeSceneService.spec.ts +12 -2
  120. package/app/codeCharta/ui/codeMap/threeViewer/threeSceneService.ts +19 -22
  121. package/app/codeCharta/ui/codeMap/threeViewer/threeStats.service.spec.ts +27 -32
  122. package/app/codeCharta/ui/codeMap/threeViewer/threeStats.service.ts +3 -4
  123. package/app/codeCharta/ui/codeMap/threeViewer/threeViewer.service.spec.ts +2 -2
  124. package/app/codeCharta/ui/codeMap/threeViewer/threeViewer.service.ts +6 -6
  125. package/app/codeCharta/ui/colorPicker/colorPicker.component.spec.ts +5 -2
  126. package/app/codeCharta/ui/colorPicker/colorPicker.component.ts +3 -2
  127. package/app/codeCharta/ui/colorPickerForMapColor/colorPickerForMapColor.component.ts +5 -4
  128. package/app/codeCharta/ui/copyToClipboardButton/copyToClipboard.service.ts +2 -2
  129. package/app/codeCharta/ui/copyToClipboardButton/copyToClipboardButton.component.ts +4 -3
  130. package/app/codeCharta/ui/customConfigs/addCustomConfigButton/addCustomConfigButton.component.spec.ts +17 -10
  131. package/app/codeCharta/ui/customConfigs/addCustomConfigButton/addCustomConfigButton.component.ts +4 -3
  132. package/app/codeCharta/ui/customConfigs/addCustomConfigButton/addCustomConfigButton.module.ts +3 -3
  133. package/app/codeCharta/ui/customConfigs/addCustomConfigButton/addCustomConfigDialog/addCustomConfigDialog.component.html +14 -2
  134. package/app/codeCharta/ui/customConfigs/addCustomConfigButton/addCustomConfigDialog/addCustomConfigDialog.component.ts +23 -13
  135. package/app/codeCharta/ui/customConfigs/addCustomConfigButton/addCustomConfigDialog/addCustomConfigDialog.spec.ts +23 -9
  136. package/app/codeCharta/ui/customConfigs/addCustomConfigButton/addCustomConfigDialog/addCustomDialog.component.scss +7 -6
  137. package/app/codeCharta/ui/customConfigs/addCustomConfigButton/addCustomConfigDialog/downloadAndPurgeConfigs/downloadAndPurgeConfigs.component.ts +5 -4
  138. package/app/codeCharta/ui/customConfigs/addCustomConfigButton/addCustomConfigDialog/downloadAndPurgeConfigs/downloadAndPurgeConfigs.spec.ts +3 -3
  139. package/app/codeCharta/ui/customConfigs/customConfigHelper.service.ts +2 -2
  140. package/app/codeCharta/ui/customConfigs/customConfigList/customConfigItemGroup/customConfig2ApplicableColor.pipe.ts +2 -2
  141. package/app/codeCharta/ui/customConfigs/customConfigList/customConfigItemGroup/customConfig2ApplicableMessage.pipe.ts +2 -2
  142. package/app/codeCharta/ui/customConfigs/customConfigList/customConfigItemGroup/customConfigDescription/applyCustomConfigButton.component.html +15 -12
  143. package/app/codeCharta/ui/customConfigs/customConfigList/customConfigItemGroup/customConfigDescription/applyCustomConfigButton.component.scss +12 -8
  144. package/app/codeCharta/ui/customConfigs/customConfigList/customConfigItemGroup/customConfigDescription/applyCustomConfigButton.component.ts +7 -6
  145. package/app/codeCharta/ui/customConfigs/customConfigList/customConfigItemGroup/customConfigDescription/applyCustomConfigButton.spec.ts +0 -6
  146. package/app/codeCharta/ui/customConfigs/customConfigList/customConfigItemGroup/customConfigItemGroup.component.html +21 -4
  147. package/app/codeCharta/ui/customConfigs/customConfigList/customConfigItemGroup/customConfigItemGroup.component.scss +38 -0
  148. package/app/codeCharta/ui/customConfigs/customConfigList/customConfigItemGroup/customConfigItemGroup.component.spec.ts +32 -7
  149. package/app/codeCharta/ui/customConfigs/customConfigList/customConfigItemGroup/customConfigItemGroup.component.ts +17 -2
  150. package/app/codeCharta/ui/customConfigs/customConfigList/customConfigItemGroup/getMissingCustomConfigModeAndMaps.spec.ts +1 -2
  151. package/app/codeCharta/ui/customConfigs/customConfigList/customConfigList.component.html +8 -8
  152. package/app/codeCharta/ui/customConfigs/customConfigList/customConfigList.component.scss +27 -31
  153. package/app/codeCharta/ui/customConfigs/customConfigList/customConfigList.component.spec.ts +6 -3
  154. package/app/codeCharta/ui/customConfigs/customConfigList/customConfigList.component.ts +5 -4
  155. package/app/codeCharta/ui/customConfigs/customConfigList/getCustomConfigItemGroups.spec.ts +5 -1
  156. package/app/codeCharta/ui/customConfigs/customConfigList/getCustomConfigItemGroups.ts +2 -1
  157. package/app/codeCharta/ui/customConfigs/customConfigNoteDialogButton/customConfigNoteDialog/customConfigNoteDialog.component.html +12 -0
  158. package/app/codeCharta/ui/customConfigs/customConfigNoteDialogButton/customConfigNoteDialog/customConfigNoteDialog.component.scss +31 -0
  159. package/app/codeCharta/ui/customConfigs/customConfigNoteDialogButton/customConfigNoteDialog/customConfigNoteDialog.component.ts +12 -0
  160. package/app/codeCharta/ui/customConfigs/customConfigNoteDialogButton/customConfigNoteDialogButton.component.html +3 -0
  161. package/app/codeCharta/ui/customConfigs/customConfigNoteDialogButton/customConfigNoteDialogButton.component.spec.ts +90 -0
  162. package/app/codeCharta/ui/customConfigs/customConfigNoteDialogButton/customConfigNoteDialogButton.component.ts +33 -0
  163. package/app/codeCharta/ui/customConfigs/customConfigNoteDialogButton/customConfigNoteDialogButton.module.ts +14 -0
  164. package/app/codeCharta/ui/customConfigs/customConfigs.component.spec.ts +5 -4
  165. package/app/codeCharta/ui/customConfigs/customConfigs.component.ts +6 -4
  166. package/app/codeCharta/ui/customConfigs/customConfigs.module.ts +14 -3
  167. package/app/codeCharta/ui/customConfigs/downloadCustomConfigsButton/downloadCustomConfigsButton.component.ts +4 -3
  168. package/app/codeCharta/ui/customConfigs/uploadCustomConfigButton/uploadCustomConfigButton.component.ts +3 -2
  169. package/app/codeCharta/ui/customConfigs/uploadCustomConfigButton/uploadCustomConfigButton.module.ts +1 -2
  170. package/app/codeCharta/ui/dialogs/changelogDialog/changelogDialog.component.html +6 -6
  171. package/app/codeCharta/ui/dialogs/changelogDialog/changelogDialog.component.scss +6 -14
  172. package/app/codeCharta/ui/dialogs/changelogDialog/changelogDialog.component.ts +4 -3
  173. package/app/codeCharta/ui/dialogs/changelogDialog/changelogDialog.module.ts +1 -2
  174. package/app/codeCharta/ui/dialogs/confirmationDialog/confirmationDialog.component.scss +3 -3
  175. package/app/codeCharta/ui/dialogs/confirmationDialog/confirmationDialog.component.ts +4 -3
  176. package/app/codeCharta/ui/dialogs/errorDialog/errorDialog.component.po.ts +4 -9
  177. package/app/codeCharta/ui/dialogs/errorDialog/errorDialog.component.ts +3 -2
  178. package/app/codeCharta/ui/export3DMapButton/export3DMapButton.component.ts +4 -3
  179. package/app/codeCharta/ui/fileExtensionBar/distributionMetricChooser/distributionMetricChooser.component.ts +4 -3
  180. package/app/codeCharta/ui/fileExtensionBar/fileExtensionBar.component.scss +5 -6
  181. package/app/codeCharta/ui/fileExtensionBar/fileExtensionBar.component.ts +5 -4
  182. package/app/codeCharta/ui/fileExtensionBar/fileExtensionBar.module.ts +1 -2
  183. package/app/codeCharta/ui/fileExtensionBar/selectors/fileExtensionCalculator.spec.ts +22 -22
  184. package/app/codeCharta/ui/fileExtensionBar/selectors/fileExtensionCalculator.ts +1 -1
  185. package/app/codeCharta/ui/filePanel/filePanel.component.html +1 -1
  186. package/app/codeCharta/ui/filePanel/filePanel.component.scss +7 -27
  187. package/app/codeCharta/ui/filePanel/filePanel.component.spec.ts +1 -2
  188. package/app/codeCharta/ui/filePanel/filePanel.component.ts +5 -4
  189. package/app/codeCharta/ui/filePanel/filePanel.module.ts +2 -2
  190. package/app/codeCharta/ui/filePanel/filePanel.po.ts +6 -4
  191. package/app/codeCharta/ui/filePanel/filePanelDeltaSelector/filePanelDeltaSelector.component.html +26 -24
  192. package/app/codeCharta/ui/filePanel/filePanelDeltaSelector/filePanelDeltaSelector.component.scss +6 -0
  193. package/app/codeCharta/ui/filePanel/filePanelDeltaSelector/filePanelDeltaSelector.component.ts +5 -3
  194. package/app/codeCharta/ui/filePanel/filePanelFileSelector/filePanelFileSelector.component.html +1 -0
  195. package/app/codeCharta/ui/filePanel/filePanelFileSelector/filePanelFileSelector.component.scss +2 -9
  196. package/app/codeCharta/ui/filePanel/filePanelFileSelector/filePanelFileSelector.component.spec.ts +1 -1
  197. package/app/codeCharta/ui/filePanel/filePanelFileSelector/filePanelFileSelector.component.ts +5 -4
  198. package/app/codeCharta/ui/filePanel/filePanelFileSelector/removeFileButton/removeFileButton.component.scss +1 -1
  199. package/app/codeCharta/ui/filePanel/filePanelFileSelector/removeFileButton/removeFileButton.component.ts +5 -4
  200. package/app/codeCharta/ui/filePanel/filePanelStateButtons/filePanelStateButtons.component.html +1 -1
  201. package/app/codeCharta/ui/filePanel/filePanelStateButtons/filePanelStateButtons.component.ts +4 -6
  202. package/app/codeCharta/ui/filePanel/fileSelectionMode.service.ts +2 -2
  203. package/app/codeCharta/ui/labelledColorPicker/labelledColorPicker.component.html +1 -1
  204. package/app/codeCharta/ui/labelledColorPicker/labelledColorPicker.component.scss +12 -8
  205. package/app/codeCharta/ui/labelledColorPicker/labelledColorPicker.component.spec.ts +2 -2
  206. package/app/codeCharta/ui/labelledColorPicker/labelledColorPicker.component.ts +4 -3
  207. package/app/codeCharta/ui/legendPanel/legendBlock/legendBlock.component.html +8 -8
  208. package/app/codeCharta/ui/legendPanel/legendBlock/legendBlock.component.ts +5 -4
  209. package/app/codeCharta/ui/legendPanel/legendMarkedPackages/legendMarkedPackages.component.ts +5 -4
  210. package/app/codeCharta/ui/legendPanel/legendPanel.component.html +12 -6
  211. package/app/codeCharta/ui/legendPanel/legendPanel.component.spec.ts +10 -0
  212. package/app/codeCharta/ui/legendPanel/legendPanel.component.ts +5 -7
  213. package/app/codeCharta/ui/legendPanel/selectors/legendAreaMetric.selector.ts +4 -4
  214. package/app/codeCharta/ui/legendPanel/selectors/legendColorMetric.selector.ts +4 -4
  215. package/app/codeCharta/ui/legendPanel/selectors/legendEdgeMetric.selector.spec.ts +10 -4
  216. package/app/codeCharta/ui/legendPanel/selectors/legendEdgeMetric.selector.ts +7 -7
  217. package/app/codeCharta/ui/legendPanel/selectors/legendHeightMetric.selector.ts +4 -4
  218. package/app/codeCharta/ui/loadingFileProgressSpinner/loadingFileProgressSpinner.component.scss +1 -1
  219. package/app/codeCharta/ui/loadingFileProgressSpinner/loadingFileProgressSpinner.component.ts +5 -4
  220. package/app/codeCharta/ui/metricChooser/metricChooser.component.html +1 -2
  221. package/app/codeCharta/ui/metricChooser/metricChooser.component.scss +22 -13
  222. package/app/codeCharta/ui/metricChooser/metricChooser.component.spec.ts +9 -7
  223. package/app/codeCharta/ui/metricChooser/metricChooser.component.ts +11 -10
  224. package/app/codeCharta/ui/metricChooser/metricChooser.module.ts +1 -2
  225. package/app/codeCharta/ui/metricChooser/metricChooserTypeHovered/metricChooserTypeHovered.component.spec.ts +1 -2
  226. package/app/codeCharta/ui/metricChooser/metricChooserTypeHovered/metricChooserTypeHovered.component.ts +4 -3
  227. package/app/codeCharta/ui/metricChooser/metricChooserValueHovered/metricChooserValueHovered.component.spec.ts +1 -2
  228. package/app/codeCharta/ui/metricChooser/metricChooserValueHovered/metricChooserValueHovered.component.ts +4 -3
  229. package/app/codeCharta/ui/resetSettingsButton/resetSettingsButton.component.scss +21 -3
  230. package/app/codeCharta/ui/resetSettingsButton/resetSettingsButton.component.ts +5 -4
  231. package/app/codeCharta/ui/ribbonBar/areaMetricChooser/areaMetricChooser.component.spec.ts +9 -6
  232. package/app/codeCharta/ui/ribbonBar/areaMetricChooser/areaMetricChooser.component.ts +4 -3
  233. package/app/codeCharta/ui/ribbonBar/areaSettingsPanel/areaSettingsPanel.component.html +13 -21
  234. package/app/codeCharta/ui/ribbonBar/areaSettingsPanel/areaSettingsPanel.component.scss +12 -3
  235. package/app/codeCharta/ui/ribbonBar/areaSettingsPanel/areaSettingsPanel.component.spec.ts +32 -13
  236. package/app/codeCharta/ui/ribbonBar/areaSettingsPanel/areaSettingsPanel.component.ts +18 -11
  237. package/app/codeCharta/ui/ribbonBar/areaSettingsPanel/areaSettingsPanel.module.ts +1 -2
  238. package/app/codeCharta/ui/ribbonBar/artificialIntelligence/artificialIntelligence.component.scss +2 -3
  239. package/app/codeCharta/ui/ribbonBar/artificialIntelligence/artificialIntelligence.component.ts +5 -4
  240. package/app/codeCharta/ui/ribbonBar/artificialIntelligence/highRiskProfile/highRiskProfile.component.html +12 -3
  241. package/app/codeCharta/ui/ribbonBar/artificialIntelligence/highRiskProfile/highRiskProfile.component.spec.ts +10 -2
  242. package/app/codeCharta/ui/ribbonBar/artificialIntelligence/highRiskProfile/highRiskProfile.component.ts +3 -2
  243. package/app/codeCharta/ui/ribbonBar/artificialIntelligence/highRiskProfile/riskProfileBar.directive.ts +2 -2
  244. package/app/codeCharta/ui/ribbonBar/artificialIntelligence/selectors/artificialIntelligence.selector.spec.ts +8 -18
  245. package/app/codeCharta/ui/ribbonBar/artificialIntelligence/selectors/artificialIntelligence.selector.ts +9 -13
  246. package/app/codeCharta/ui/ribbonBar/artificialIntelligence/suspiciousMetrics/suspiciousMetrics.component.html +11 -1
  247. package/app/codeCharta/ui/ribbonBar/artificialIntelligence/suspiciousMetrics/suspiciousMetrics.component.spec.ts +4 -4
  248. package/app/codeCharta/ui/ribbonBar/artificialIntelligence/suspiciousMetrics/suspiciousMetrics.component.ts +6 -5
  249. package/app/codeCharta/ui/ribbonBar/colorMetricChooser/colorMetricChooser.component.spec.ts +9 -6
  250. package/app/codeCharta/ui/ribbonBar/colorMetricChooser/colorMetricChooser.component.ts +4 -3
  251. package/app/codeCharta/ui/ribbonBar/colorSettingsPanel/colorSettingsPanel.component.html +11 -10
  252. package/app/codeCharta/ui/ribbonBar/colorSettingsPanel/colorSettingsPanel.component.scss +17 -12
  253. package/app/codeCharta/ui/ribbonBar/colorSettingsPanel/colorSettingsPanel.component.spec.ts +1 -2
  254. package/app/codeCharta/ui/ribbonBar/colorSettingsPanel/colorSettingsPanel.component.ts +5 -4
  255. package/app/codeCharta/ui/ribbonBar/colorSettingsPanel/metricColorRangeSlider/metricColorRangeSlider.component.ts +5 -4
  256. package/app/codeCharta/ui/ribbonBar/colorSettingsPanel/metricColorRangeSlider/rangeSlider/rangeSlider.component.html +2 -2
  257. package/app/codeCharta/ui/ribbonBar/colorSettingsPanel/metricColorRangeSlider/rangeSlider/rangeSlider.component.scss +21 -6
  258. package/app/codeCharta/ui/ribbonBar/colorSettingsPanel/metricColorRangeSlider/rangeSlider/rangeSlider.component.ts +6 -5
  259. package/app/codeCharta/ui/ribbonBar/colorSettingsPanel/metricColorRangeSlider/rangeSlider/rangeSliderLabels/rangeSliderLabels.component.spec.ts +2 -2
  260. package/app/codeCharta/ui/ribbonBar/colorSettingsPanel/metricColorRangeSlider/rangeSlider/rangeSliderLabels/rangeSliderLabels.component.ts +5 -4
  261. package/app/codeCharta/ui/ribbonBar/edgeMetricChooser/edgeMetricChooser.component.scss +1 -1
  262. package/app/codeCharta/ui/ribbonBar/edgeMetricChooser/edgeMetricChooser.component.spec.ts +8 -6
  263. package/app/codeCharta/ui/ribbonBar/edgeMetricChooser/edgeMetricChooser.component.ts +5 -4
  264. package/app/codeCharta/ui/ribbonBar/edgeSettingsPanel/edgeMetricToggle/edgeMetricToggle.component.ts +4 -4
  265. package/app/codeCharta/ui/ribbonBar/edgeSettingsPanel/edgeSettingsPanel.component.html +14 -15
  266. package/app/codeCharta/ui/ribbonBar/edgeSettingsPanel/edgeSettingsPanel.component.spec.ts +1 -1
  267. package/app/codeCharta/ui/ribbonBar/edgeSettingsPanel/edgeSettingsPanel.component.ts +4 -3
  268. package/app/codeCharta/ui/ribbonBar/edgeSettingsPanel/selectors/amountOfBuildingsWithSelectedEdgeMetric.selector.ts +3 -3
  269. package/app/codeCharta/ui/ribbonBar/heightMetricChooser/areaMetricChooser.component.ts +4 -3
  270. package/app/codeCharta/ui/ribbonBar/heightMetricChooser/heightMetricChooser.component.spec.ts +9 -6
  271. package/app/codeCharta/ui/ribbonBar/heightSettingsPanel/heightSettingsPanel.component.html +15 -19
  272. package/app/codeCharta/ui/ribbonBar/heightSettingsPanel/heightSettingsPanel.component.spec.ts +3 -2
  273. package/app/codeCharta/ui/ribbonBar/heightSettingsPanel/heightSettingsPanel.component.ts +5 -6
  274. package/app/codeCharta/ui/ribbonBar/linkColorMetricToHeightMetricButton/linkColorMetricToHeightMetricButton.component.html +1 -1
  275. package/app/codeCharta/ui/ribbonBar/linkColorMetricToHeightMetricButton/linkColorMetricToHeightMetricButton.component.scss +2 -0
  276. package/app/codeCharta/ui/ribbonBar/linkColorMetricToHeightMetricButton/linkColorMetricToHeightMetricButton.component.spec.ts +4 -4
  277. package/app/codeCharta/ui/ribbonBar/linkColorMetricToHeightMetricButton/linkColorMetricToHeightMetricButton.component.ts +5 -4
  278. package/app/codeCharta/ui/ribbonBar/ribbonBar.component.html +21 -8
  279. package/app/codeCharta/ui/ribbonBar/ribbonBar.component.scss +18 -8
  280. package/app/codeCharta/ui/ribbonBar/ribbonBar.component.spec.ts +23 -25
  281. package/app/codeCharta/ui/ribbonBar/ribbonBar.component.ts +7 -6
  282. package/app/codeCharta/ui/ribbonBar/showScenariosButton/addCustomScenario/addCustomScenario.component.html +1 -1
  283. package/app/codeCharta/ui/ribbonBar/showScenariosButton/addCustomScenario/addCustomScenario.component.scss +9 -7
  284. package/app/codeCharta/ui/ribbonBar/showScenariosButton/addCustomScenario/addCustomScenario.component.spec.ts +10 -3
  285. package/app/codeCharta/ui/ribbonBar/showScenariosButton/addCustomScenario/addCustomScenario.component.ts +7 -10
  286. package/app/codeCharta/ui/ribbonBar/showScenariosButton/addCustomScenario/addCustomScenario.module.ts +1 -2
  287. package/app/codeCharta/ui/ribbonBar/showScenariosButton/scenario.service.ts +6 -6
  288. package/app/codeCharta/ui/ribbonBar/showScenariosButton/scenarios/scenarios.component.scss +2 -2
  289. package/app/codeCharta/ui/ribbonBar/showScenariosButton/scenarios/scenarios.component.ts +5 -4
  290. package/app/codeCharta/ui/ribbonBar/showScenariosButton/showScenariosButton.component.ts +5 -4
  291. package/app/codeCharta/ui/screenshotButton/screenshotButton.component.ts +8 -7
  292. package/app/codeCharta/ui/searchPanel/blacklistPanel/blacklistPanel.component.scss +2 -2
  293. package/app/codeCharta/ui/searchPanel/blacklistPanel/blacklistPanel.component.spec.ts +3 -4
  294. package/app/codeCharta/ui/searchPanel/blacklistPanel/blacklistPanel.component.ts +8 -7
  295. package/app/codeCharta/ui/searchPanel/blacklistPanel/createBlacklistItemSelector.spec.ts +10 -10
  296. package/app/codeCharta/ui/searchPanel/mapTreeView/mapTreeView.component.scss +14 -11
  297. package/app/codeCharta/ui/searchPanel/mapTreeView/mapTreeView.component.ts +5 -5
  298. package/app/codeCharta/ui/searchPanel/mapTreeView/mapTreeViewItemIcon/mapTreeViewItemIcon.component.ts +3 -2
  299. package/app/codeCharta/ui/searchPanel/mapTreeView/mapTreeViewItemName/mapTreeViewItemName.component.html +1 -1
  300. package/app/codeCharta/ui/searchPanel/mapTreeView/mapTreeViewItemName/mapTreeViewItemName.component.spec.ts +53 -0
  301. package/app/codeCharta/ui/searchPanel/mapTreeView/mapTreeViewItemName/mapTreeViewItemName.component.ts +4 -3
  302. package/app/codeCharta/ui/searchPanel/mapTreeView/mapTreeViewItemOptionButtons/mapTreeViewItemOptionButtons.component.html +2 -2
  303. package/app/codeCharta/ui/searchPanel/mapTreeView/mapTreeViewItemOptionButtons/mapTreeViewItemOptionButtons.component.ts +3 -2
  304. package/app/codeCharta/ui/searchPanel/mapTreeView/mapTreeViewLevel/mapTreeViewLevel.component.ts +4 -3
  305. package/app/codeCharta/ui/searchPanel/matchingFilesCounter/matchingFilesCounter.component.html +1 -1
  306. package/app/codeCharta/ui/searchPanel/matchingFilesCounter/matchingFilesCounter.component.scss +2 -2
  307. package/app/codeCharta/ui/searchPanel/matchingFilesCounter/matchingFilesCounter.component.ts +5 -4
  308. package/app/codeCharta/ui/searchPanel/matchingFilesCounter/selectors/matchingFilesCounter.selector.ts +4 -4
  309. package/app/codeCharta/ui/searchPanel/searchBar/blacklistSearchPattern.effect.spec.ts +5 -7
  310. package/app/codeCharta/ui/searchPanel/searchBar/blacklistSearchPattern.effect.ts +3 -4
  311. package/app/codeCharta/ui/searchPanel/searchBar/searchBar.component.scss +0 -3
  312. package/app/codeCharta/ui/searchPanel/searchBar/searchBar.component.spec.ts +4 -6
  313. package/app/codeCharta/ui/searchPanel/searchBar/searchBar.component.ts +7 -6
  314. package/app/codeCharta/ui/searchPanel/searchBar/selectors/isExcludePatternDisabled.selector.ts +1 -2
  315. package/app/codeCharta/ui/searchPanel/searchBar/selectors/isFlattenPatternDisabled.selector.ts +1 -2
  316. package/app/codeCharta/ui/searchPanel/searchBar/utils/isPatternBlacklisted.spec.ts +4 -5
  317. package/app/codeCharta/ui/searchPanel/searchBar/utils/parseBlacklistItems.spec.ts +6 -7
  318. package/app/codeCharta/ui/searchPanel/searchPanel.component.html +1 -1
  319. package/app/codeCharta/ui/searchPanel/searchPanel.component.scss +0 -4
  320. package/app/codeCharta/ui/searchPanel/searchPanel.component.ts +4 -3
  321. package/app/codeCharta/ui/searchPanel/searchPanelModeSelector/searchPanelModeSelector.component.html +6 -20
  322. package/app/codeCharta/ui/searchPanel/searchPanelModeSelector/searchPanelModeSelector.component.scss +4 -6
  323. package/app/codeCharta/ui/searchPanel/searchPanelModeSelector/searchPanelModeSelector.component.spec.ts +1 -2
  324. package/app/codeCharta/ui/searchPanel/searchPanelModeSelector/searchPanelModeSelector.component.ts +5 -4
  325. package/app/codeCharta/ui/searchPanel/sortingButton/sortingButton.component.ts +4 -3
  326. package/app/codeCharta/ui/searchPanel/sortingOption/sortingOption.component.spec.ts +1 -1
  327. package/app/codeCharta/ui/searchPanel/sortingOption/sortingOption.component.ts +4 -3
  328. package/app/codeCharta/ui/slider/slider.component.html +17 -21
  329. package/app/codeCharta/ui/slider/slider.component.scss +36 -19
  330. package/app/codeCharta/ui/slider/slider.component.spec.ts +38 -38
  331. package/app/codeCharta/ui/slider/slider.component.ts +8 -9
  332. package/app/codeCharta/ui/slider/slider.module.ts +1 -2
  333. package/app/codeCharta/ui/toolBar/downloadButton/downloadButton.component.spec.ts +2 -1
  334. package/app/codeCharta/ui/toolBar/downloadButton/downloadButton.component.ts +4 -3
  335. package/app/codeCharta/ui/toolBar/downloadButton/downloadButton.module.ts +1 -2
  336. package/app/codeCharta/ui/toolBar/downloadButton/downloadDialog/downloadDialog.component.html +1 -1
  337. package/app/codeCharta/ui/toolBar/downloadButton/downloadDialog/downloadDialog.component.scss +4 -5
  338. package/app/codeCharta/ui/toolBar/downloadButton/downloadDialog/downloadDialog.component.ts +7 -7
  339. package/app/codeCharta/ui/toolBar/downloadButton/downloadDialog/util/propertyHelper.spec.ts +3 -3
  340. package/app/codeCharta/ui/toolBar/globalConfigurationButton/globalConfigurationButton.component.html +1 -1
  341. package/app/codeCharta/ui/toolBar/globalConfigurationButton/globalConfigurationButton.component.scss +28 -34
  342. package/app/codeCharta/ui/toolBar/globalConfigurationButton/globalConfigurationButton.component.ts +5 -4
  343. package/app/codeCharta/ui/toolBar/globalConfigurationButton/globalConfigurationButton.module.ts +1 -2
  344. package/app/codeCharta/ui/toolBar/globalConfigurationButton/globalConfigurationDialog/displayQualitySelection/displayQualitySelection.component.html +1 -1
  345. package/app/codeCharta/ui/toolBar/globalConfigurationButton/globalConfigurationDialog/displayQualitySelection/displayQualitySelection.component.ts +4 -3
  346. package/app/codeCharta/ui/toolBar/globalConfigurationButton/globalConfigurationDialog/globalConfigurationDialog.component.html +26 -23
  347. package/app/codeCharta/ui/toolBar/globalConfigurationButton/globalConfigurationDialog/globalConfigurationDialog.component.ts +4 -3
  348. package/app/codeCharta/ui/toolBar/globalConfigurationButton/globalConfigurationDialog/mapLayoutSelection/mapLayoutSelection.component.html +1 -1
  349. package/app/codeCharta/ui/toolBar/globalConfigurationButton/globalConfigurationDialog/mapLayoutSelection/mapLayoutSelection.component.spec.ts +27 -24
  350. package/app/codeCharta/ui/toolBar/globalConfigurationButton/globalConfigurationDialog/mapLayoutSelection/mapLayoutSelection.component.ts +5 -4
  351. package/app/codeCharta/ui/toolBar/hoveredNodePathPanel/hoveredNodePathPanel.component.spec.ts +1 -2
  352. package/app/codeCharta/ui/toolBar/hoveredNodePathPanel/hoveredNodePathPanel.component.ts +5 -4
  353. package/app/codeCharta/ui/toolBar/loadingMapProgressSpinner/loadingMapProgressSpinner.component.ts +5 -4
  354. package/app/codeCharta/ui/toolBar/presentationModeButton/presentationModeButton.component.html +8 -11
  355. package/app/codeCharta/ui/toolBar/presentationModeButton/presentationModeButton.component.scss +4 -3
  356. package/app/codeCharta/ui/toolBar/presentationModeButton/presentationModeButton.component.spec.ts +2 -2
  357. package/app/codeCharta/ui/toolBar/presentationModeButton/presentationModeButton.component.ts +5 -4
  358. package/app/codeCharta/ui/toolBar/toolBar.component.scss +2 -4
  359. package/app/codeCharta/ui/toolBar/toolBar.component.spec.ts +1 -2
  360. package/app/codeCharta/ui/toolBar/toolBar.component.ts +5 -5
  361. package/app/codeCharta/ui/toolBar/toolBar.module.ts +1 -2
  362. package/app/codeCharta/ui/toolBar/uploadFilesButton/uploadFiles.service.ts +2 -2
  363. package/app/codeCharta/ui/toolBar/uploadFilesButton/uploadFilesButton.component.ts +5 -4
  364. package/app/codeCharta/ui/viewCube/centerMapButton/centerMapButton.component.ts +5 -4
  365. package/app/codeCharta/ui/viewCube/viewCube.component.spec.ts +2 -2
  366. package/app/codeCharta/ui/viewCube/viewCube.component.ts +6 -5
  367. package/app/codeCharta/ui/viewCube/viewCube.mouseEvents.service.spec.ts +3 -2
  368. package/app/codeCharta/ui/viewCube/viewCube.mouseEvents.service.ts +6 -6
  369. package/app/codeCharta/util/EventEmitter.ts +22 -0
  370. package/app/codeCharta/util/__snapshots__/aggregationGenerator.spec.ts.snap +116 -116
  371. package/app/codeCharta/util/__snapshots__/deltaGenerator.spec.ts.snap +82 -82
  372. package/app/codeCharta/util/__snapshots__/fileHelper.spec.ts.snap +23 -23
  373. package/app/codeCharta/util/aggregationGenerator.spec.ts +33 -27
  374. package/app/codeCharta/util/aggregationGenerator.ts +7 -4
  375. package/app/codeCharta/util/algorithm/streetLayout/streetLayoutGenerator.ts +2 -2
  376. package/app/codeCharta/util/algorithm/treeMapLayout/__snapshots__/treeMapGenerator.spec.ts.snap +339 -124
  377. package/app/codeCharta/util/algorithm/treeMapLayout/__snapshots__/treeMapHelper.spec.ts.snap +9 -9
  378. package/app/codeCharta/util/algorithm/treeMapLayout/treeMapGenerator.spec.ts +14 -3
  379. package/app/codeCharta/util/algorithm/treeMapLayout/treeMapGenerator.ts +15 -8
  380. package/app/codeCharta/util/algorithm/treeMapLayout/treeMapHelper.spec.ts +3 -3
  381. package/app/codeCharta/util/codeMapHelper.ts +1 -1
  382. package/app/codeCharta/util/customConfigBuilder.spec.ts +11 -4
  383. package/app/codeCharta/util/customConfigBuilder.ts +10 -3
  384. package/app/codeCharta/util/customConfigHelper.spec.ts +11 -21
  385. package/app/codeCharta/util/customConfigHelper.ts +8 -22
  386. package/app/codeCharta/util/dataMocks.ts +35 -9
  387. package/app/codeCharta/util/debounce.spec.ts +16 -0
  388. package/app/codeCharta/util/debounce.ts +10 -0
  389. package/app/codeCharta/util/deltaGenerator.ts +2 -2
  390. package/app/codeCharta/util/fileDownloader.spec.ts +3 -3
  391. package/app/codeCharta/util/fileDownloader.ts +3 -3
  392. package/app/codeCharta/util/fileHelper.spec.ts +2 -2
  393. package/app/codeCharta/util/fileHelper.ts +2 -2
  394. package/app/codeCharta/util/gameObjectsParser/__snapshots__/gameObjectsImporter.spec.ts.snap +37 -37
  395. package/app/codeCharta/util/nodeDecorator.spec.ts +14 -1
  396. package/app/codeCharta/util/nodeDecorator.ts +13 -13
  397. package/app/codeCharta/util/nodePathHelper.ts +5 -5
  398. package/app/codeCharta/util/parseNumberInput.ts +1 -1
  399. package/app/codeCharta/util/reduxHelper.ts +3 -3
  400. package/app/codeCharta/util/simplePipes/SimplePipesModule.ts +9 -0
  401. package/app/codeCharta/util/simplePipes/metricDescriptorTitle.pipe.spec.ts +62 -0
  402. package/app/codeCharta/util/simplePipes/metricDescriptorTitle.pipe.ts +18 -0
  403. package/app/codeCharta/util/{removeExtension.pipe.ts → simplePipes/removeExtension.pipe.ts} +1 -1
  404. package/app/codeCharta/util/truncateText.pipe.ts +8 -0
  405. package/app/codeCharta/util/truncateText.spec.ts +19 -0
  406. package/app/index.html +1 -0
  407. package/app/material/_theme.scss +28 -17
  408. package/app/material/matDialog.scss +1 -1
  409. package/app/material/matMenu.scss +2 -2
  410. package/app/material/material.module.ts +5 -3
  411. package/app/material/material.scss +1 -6
  412. package/app/polyfills.ts +28 -0
  413. package/conf/jestE2E.config.json +2 -4
  414. package/conf/jestUnit.config.json +7 -18
  415. package/conf/webpack.config.js +19 -56
  416. package/dist/webpack/3rdpartylicenses.txt +1063 -0
  417. package/dist/webpack/codeCharta/assets/codecharta_logo.svg +1 -0
  418. package/dist/webpack/codeCharta/assets/empty.png +0 -0
  419. package/dist/webpack/codeCharta/assets/favicon.ico +0 -0
  420. package/dist/webpack/codeCharta/assets/gameObjectsFile.json +75 -0
  421. package/dist/webpack/codeCharta/assets/icon.icns +0 -0
  422. package/dist/webpack/codeCharta/assets/icon.ico +0 -0
  423. package/dist/webpack/codeCharta/assets/icon.png +0 -0
  424. package/dist/webpack/codeCharta/assets/output.cc.json.gz +0 -0
  425. package/dist/webpack/codeCharta/assets/sample1.cc.json +97 -0
  426. package/dist/webpack/codeCharta/assets/sample2.cc.json +46 -0
  427. package/dist/webpack/codeCharta/assets/sample3.cc.json +40 -0
  428. package/dist/webpack/codeCharta/assets/sample4.cc.json +45 -0
  429. package/dist/webpack/codeCharta/assets/scenarios.json +50 -0
  430. package/dist/webpack/index.html +7 -7
  431. package/dist/webpack/main.bc36f7880e897bab.js +1 -0
  432. package/dist/webpack/material-icons-outlined.78a93b2079680a08.woff +0 -0
  433. package/dist/webpack/material-icons-outlined.f86cb7b0aa53f0fe.woff2 +0 -0
  434. package/dist/webpack/material-icons-round.92dc7ca2f4c591e7.woff +0 -0
  435. package/dist/webpack/material-icons-round.b10ec9db5b7fbc74.woff2 +0 -0
  436. package/dist/webpack/material-icons-sharp.3885863ee4746422.woff2 +0 -0
  437. package/dist/webpack/material-icons-sharp.a71cb2bf66c604de.woff +0 -0
  438. package/dist/webpack/material-icons-two-tone.588d63134de807a7.woff +0 -0
  439. package/dist/webpack/material-icons-two-tone.675bd578bd14533e.woff2 +0 -0
  440. package/dist/webpack/material-icons.4ad034d2c499d9b6.woff +0 -0
  441. package/dist/webpack/material-icons.59322316b3fd6063.woff2 +0 -0
  442. package/dist/webpack/polyfills.d69fe4da6218c8a9.js +1 -0
  443. package/dist/webpack/runtime.e384ce5b1b4e5942.js +1 -0
  444. package/dist/webpack/styles.796849f6e33c93f5.css +4 -0
  445. package/package.json +34 -55
  446. package/tsconfig.json +25 -24
  447. package/app/codeCharta/state/effects/resetDynamicMargin/resetDynamicMargin.effect.spec.ts +0 -48
  448. package/app/codeCharta/state/effects/resetDynamicMargin/resetDynamicMargin.effect.ts +0 -19
  449. package/app/codeCharta/state/selectors/accumulatedData/metricData/edgeMetricData.selector.spec.ts +0 -56
  450. package/app/codeCharta/state/store/appSettings/dynamicMargin/dynamicMargin.actions.ts +0 -21
  451. package/app/codeCharta/state/store/appSettings/dynamicMargin/dynamicMargin.reducer.spec.ts +0 -17
  452. package/app/codeCharta/state/store/appSettings/dynamicMargin/dynamicMargin.reducer.ts +0 -16
  453. package/app/codeCharta/ui/ribbonBar/areaSettingsPanel/areaSettingsPanel.po.ts +0 -22
  454. package/app/codeCharta/ui/ribbonBar/areaSettingsPanel/invertAreaOption/invertAreaOption.component.html +0 -1
  455. package/app/codeCharta/ui/ribbonBar/areaSettingsPanel/invertAreaOption/invertAreaOption.component.spec.ts +0 -29
  456. package/app/codeCharta/ui/ribbonBar/areaSettingsPanel/invertAreaOption/invertAreaOption.component.ts +0 -23
  457. package/app/codeCharta/ui/ribbonBar/areaSettingsPanel.po.ts +0 -19
  458. package/app/codeCharta/ui/ribbonBar/edgeSettingsPanel/edgeMetricToggle/edgeMetricToggle.component.scss +0 -4
  459. package/app/codeCharta/ui/ribbonBar/heightSettingsPanel/heightSettingsPanel.component.scss +0 -18
  460. package/app/codeCharta/util/envDetector.ts +0 -3
  461. package/app/codeCharta/util/removeExtensionModule.ts +0 -8
  462. package/app/codeCharta/util/testUtils/drag.ts +0 -47
  463. package/app/material/matSelect.scss +0 -17
  464. package/conf/webpack.loaders.js +0 -54
  465. package/dist/webpack/04411cba9583fb0df01f.woff +0 -0
  466. package/dist/webpack/6289913a298e816100f5.woff +0 -0
  467. package/dist/webpack/6b3adb7ef9c9ac8d598a.woff +0 -0
  468. package/dist/webpack/6c307c85ae675678f41e.woff2 +0 -0
  469. package/dist/webpack/a70ec3e73fd410cdb178.woff2 +0 -0
  470. package/dist/webpack/aa2aae2fbd0e0b30967d.woff +0 -0
  471. package/dist/webpack/aa80805e686668b4358c.woff2 +0 -0
  472. package/dist/webpack/b906db2201d314b2ee12.woff2 +0 -0
  473. package/dist/webpack/bundle.js +0 -3
  474. package/dist/webpack/bundle.js.LICENSE.txt +0 -7243
  475. package/dist/webpack/bundle.js.map +0 -1
  476. package/dist/webpack/c6c0935815f6ba8fd80a.woff2 +0 -0
  477. package/dist/webpack/cb25b0543db8b7f06135.woff +0 -0
  478. /package/app/{assets/icon.ico → codeCharta/assets/favicon.ico} +0 -0
  479. /package/app/{assets → codeCharta/assets}/flatten.png +0 -0
  480. /package/app/{assets → codeCharta/assets}/icon.icns +0 -0
  481. /package/{dist/webpack → app/codeCharta/assets}/icon.ico +0 -0
  482. /package/app/{assets → codeCharta/assets}/icon.png +0 -0
  483. /package/app/codeCharta/state/store/fileSettings/attributeDescriptors/{attributesDescriptors.selector.ts → attributeDescriptors.selector.ts} +0 -0
  484. /package/app/codeCharta/util/{removeExtension.pipe.spec.ts → simplePipes/removeExtension.pipe.spec.ts} +0 -0
  485. /package/dist/webpack/{af36b2ef7e54a0b53f02.png → codeCharta/assets/flatten.png} +0 -0
  486. /package/dist/webpack/{6bfc95354e1616904298.png → codeCharta/assets/logo.png} +0 -0
  487. /package/dist/webpack/{8b43027f47b20503057d.eot → fontawesome-webfont.2b13baa7dd4f54c9.eot} +0 -0
  488. /package/dist/webpack/{1e59d2330b4c6deb84b3.ttf → fontawesome-webfont.8a7cb27d142e3e19.ttf} +0 -0
  489. /package/dist/webpack/{f691f37e57f04c152e23.woff → fontawesome-webfont.cf011583fb81df9f.woff} +0 -0
  490. /package/dist/webpack/{c1e38fd9e0e74ba58f7a.svg → fontawesome-webfont.da909aa098b0ee2d.svg} +0 -0
  491. /package/dist/webpack/{20fd1704ea223900efa9.woff2 → fontawesome-webfont.e9955780856cf8aa.woff2} +0 -0
@@ -1,26 +1,18 @@
1
- <cc-slider
2
- title="Amount of space between buildings in percent"
3
- label="Margin"
4
- [value]="margin$ | async"
5
- [onChange]="applyDebouncedMargin"
6
- [min]="1"
7
- [max]="100"
8
- ></cc-slider>
9
-
10
- <div class="bottom-row">
11
- <mat-checkbox
12
- class="default-margin"
13
- [checked]="dynamicMargin$ | async"
14
- (change)="setDynamicMargin($event)"
15
- title="Set margin to default (50px)."
16
- >
17
- Default margin (50px)
18
- </mat-checkbox>
1
+ <div class="options">
2
+ <cc-slider
3
+ title="Amount of space between buildings in percent"
4
+ label="Margin"
5
+ [value]="margin$ | async"
6
+ [onChange]="applyDebouncedMargin"
7
+ [min]="1"
8
+ [max]="100"
9
+ ></cc-slider>
10
+ <mat-checkbox [checked]="enableFloorLabels$ | async" (change)="setEnableFloorLabel($event)">Enable Floor Labels</mat-checkbox>
11
+ <mat-checkbox [checked]="isInvertedArea$ | async" (change)="toggleInvertingArea($event)">Invert Area</mat-checkbox>
19
12
 
20
13
  <cc-reset-settings-button
21
- [settingsKeys]="['appSettings.dynamicMargin']"
14
+ [settingsKeys]="['dynamicSettings.margin', 'appSettings.invertArea', 'appSettings.enableFloorLabels']"
22
15
  tooltip="Reset area metric settings to their defaults"
16
+ label="Reset area metric settings"
23
17
  ></cc-reset-settings-button>
24
18
  </div>
25
-
26
- <cc-invert-area-option></cc-invert-area-option>
@@ -2,9 +2,18 @@ cc-area-settings-panel {
2
2
  text-align: left;
3
3
  max-height: 300px;
4
4
 
5
- .bottom-row {
6
- align-items: center;
5
+ .options {
7
6
  display: flex;
8
- justify-content: space-between;
7
+ flex-direction: column;
8
+
9
+ .margin-option {
10
+ position: relative;
11
+
12
+ cc-reset-settings-button {
13
+ position: absolute;
14
+ top: -20%;
15
+ left: 20%;
16
+ }
17
+ }
9
18
  }
10
19
  }
@@ -1,10 +1,12 @@
1
- import { AreaSettingsPanelComponent } from "./areaSettingsPanel.component"
2
- import { render, screen } from "@testing-library/angular"
3
- import { AreaSettingsPanelModule } from "./areaSettingsPanel.module"
4
- import { Store } from "../../../state/store/store"
1
+ import { TestbedHarnessEnvironment } from "@angular/cdk/testing/testbed"
5
2
  import { TestBed } from "@angular/core/testing"
3
+ import { MatInputHarness } from "@angular/material/input/testing"
4
+ import { render, screen } from "@testing-library/angular"
6
5
  import userEvent from "@testing-library/user-event"
7
- import { wait } from "../../../util/testUtils/wait"
6
+ import { State } from "../../../state/angular-redux/state"
7
+ import { CcState, Store } from "../../../state/store/store"
8
+ import { AreaSettingsPanelComponent } from "./areaSettingsPanel.component"
9
+ import { AreaSettingsPanelModule } from "./areaSettingsPanel.module"
8
10
 
9
11
  describe("AreaSettingsPanelComponent", () => {
10
12
  beforeEach(() => {
@@ -14,14 +16,31 @@ describe("AreaSettingsPanelComponent", () => {
14
16
  })
15
17
  })
16
18
 
17
- it("should reset default margin checkbox on changes of margin slider", async function () {
18
- const { container, detectChanges } = await render(AreaSettingsPanelComponent, { excludeComponentDeclaration: true })
19
- expect(screen.queryByRole("checkbox", { checked: true, name: "Default margin (50px)" })).not.toBe(null)
19
+ it("should allow for change and resetting of 'margin', 'enable floor label' and 'invert area'", async () => {
20
+ const { fixture } = await render(AreaSettingsPanelComponent, { excludeComponentDeclaration: true })
21
+ const loader = TestbedHarnessEnvironment.loader(fixture)
22
+ const state = TestBed.inject(State)
23
+ const initialValues = extractRelatedValues(state.getValue())
20
24
 
21
- const marginInput = container.querySelector("input")
22
- await userEvent.type(marginInput, "1")
23
- await wait(AreaSettingsPanelComponent.DEBOUNCE_TIME)
24
- detectChanges()
25
- expect(screen.queryByRole("checkbox", { checked: false, name: "Default margin (50px)" })).not.toBe(null)
25
+ const marginInput = await loader.getHarness(MatInputHarness.with({ ancestor: 'cc-slider[label="Margin"]' }))
26
+ await marginInput.setValue(String(initialValues.margin + 1))
27
+ await userEvent.click(await screen.findByText("Enable Floor Labels"))
28
+ await userEvent.click(await screen.findByText("Invert Area"))
29
+ const changedValues = extractRelatedValues(state.getValue())
30
+ expect(changedValues.margin).toBe(initialValues.margin + 1)
31
+ expect(changedValues.enableFloorLabels).toBe(!initialValues.enableFloorLabels)
32
+ expect(changedValues.invertArea).toBe(!initialValues.invertArea)
33
+
34
+ await userEvent.click(await screen.findByText("Reset area metric settings"))
35
+ const resetValues = extractRelatedValues(state.getValue())
36
+ expect(resetValues).toEqual(initialValues)
26
37
  })
38
+
39
+ function extractRelatedValues(state: CcState) {
40
+ return {
41
+ margin: state.dynamicSettings.margin,
42
+ enableFloorLabels: state.appSettings.enableFloorLabels,
43
+ invertArea: state.appSettings.invertArea
44
+ }
45
+ }
27
46
  })
@@ -1,31 +1,38 @@
1
- import { Component, Inject } from "@angular/core"
2
- import "./areaSettingsPanel.component.scss"
1
+ import { Component, ViewEncapsulation } from "@angular/core"
3
2
  import { Store } from "../../../state/angular-redux/store"
4
3
  import { marginSelector } from "../../../state/store/dynamicSettings/margin/margin.selector"
5
- import debounce from "lodash.debounce"
6
4
  import { setMargin } from "../../../state/store/dynamicSettings/margin/margin.actions"
7
- import { dynamicMarginSelector } from "../../../state/store/appSettings/dynamicMargin/dynamicMargin.selector"
8
- import { setDynamicMargin } from "../../../state/store/appSettings/dynamicMargin/dynamicMargin.actions"
9
5
  import { MatCheckboxChange } from "@angular/material/checkbox"
6
+ import { setEnableFloorLabels } from "../../../state/store/appSettings/enableFloorLabels/enableFloorLabels.actions"
7
+ import { enableFloorLabelsSelector } from "../../../state/store/appSettings/enableFloorLabels/enableFloorLabels.selector"
8
+ import { invertAreaSelector } from "../../../state/store/appSettings/invertArea/invertArea.selector"
9
+ import { debounce } from "../../../util/debounce"
10
+ import { setInvertArea } from "../../../state/store/appSettings/invertArea/invertArea.actions"
10
11
 
11
12
  @Component({
12
13
  selector: "cc-area-settings-panel",
13
- template: require("./areaSettingsPanel.component.html")
14
+ templateUrl: "./areaSettingsPanel.component.html",
15
+ styleUrls: ["./areaSettingsPanel.component.scss"],
16
+ encapsulation: ViewEncapsulation.None
14
17
  })
15
18
  export class AreaSettingsPanelComponent {
16
19
  static DEBOUNCE_TIME = 400
17
20
 
18
21
  margin$ = this.store.select(marginSelector)
19
- dynamicMargin$ = this.store.select(dynamicMarginSelector)
22
+ enableFloorLabels$ = this.store.select(enableFloorLabelsSelector)
23
+ isInvertedArea$ = this.store.select(invertAreaSelector)
24
+
25
+ constructor(private store: Store) {}
20
26
 
21
27
  applyDebouncedMargin = debounce((margin: number) => {
22
28
  this.store.dispatch(setMargin(margin))
23
- this.store.dispatch(setDynamicMargin(false))
24
29
  }, AreaSettingsPanelComponent.DEBOUNCE_TIME)
25
30
 
26
- constructor(@Inject(Store) private store: Store) {}
31
+ setEnableFloorLabel(event: MatCheckboxChange) {
32
+ this.store.dispatch(setEnableFloorLabels(event.checked))
33
+ }
27
34
 
28
- setDynamicMargin($event: MatCheckboxChange) {
29
- this.store.dispatch(setDynamicMargin($event.checked))
35
+ toggleInvertingArea(event: MatCheckboxChange) {
36
+ this.store.dispatch(setInvertArea(event.checked))
30
37
  }
31
38
  }
@@ -2,13 +2,12 @@ import { NgModule } from "@angular/core"
2
2
  import { CommonModule } from "@angular/common"
3
3
  import { MaterialModule } from "../../../../material/material.module"
4
4
  import { AreaSettingsPanelComponent } from "./areaSettingsPanel.component"
5
- import { InvertAreaOptionComponent } from "./invertAreaOption/invertAreaOption.component"
6
5
  import { SliderModule } from "../../slider/slider.module"
7
6
  import { ResetSettingsButtonModule } from "../../resetSettingsButton/resetSettingsButton.module"
8
7
 
9
8
  @NgModule({
10
9
  imports: [CommonModule, MaterialModule, SliderModule, ResetSettingsButtonModule],
11
- declarations: [AreaSettingsPanelComponent, InvertAreaOptionComponent],
10
+ declarations: [AreaSettingsPanelComponent],
12
11
  exports: [AreaSettingsPanelComponent]
13
12
  })
14
13
  export class AreaSettingsPanelModule {}
@@ -14,10 +14,9 @@ cc-artificial-intelligence {
14
14
  line-height: 10px;
15
15
  }
16
16
  }
17
-
18
- .mat-menu-panel.ai-drop-down {
17
+ .mat-mdc-menu-panel.mat-mdc-menu-panel.ai-drop-down {
19
18
  padding: 8px 16px;
20
- max-width: unset;
19
+ max-width: 33em;
21
20
 
22
21
  .title {
23
22
  margin-bottom: 8px;
@@ -1,15 +1,16 @@
1
- import "./artificialIntelligence.component.scss"
2
- import { Component, Inject } from "@angular/core"
1
+ import { Component, ViewEncapsulation } from "@angular/core"
3
2
  import { Store } from "../../../state/angular-redux/store"
4
3
  import { debounceTime, identity, map } from "rxjs"
5
4
  import { artificialIntelligenceSelector } from "./selectors/artificialIntelligence.selector"
6
5
 
7
6
  @Component({
8
7
  selector: "cc-artificial-intelligence",
9
- template: require("./artificialIntelligence.component.html")
8
+ templateUrl: "./artificialIntelligence.component.html",
9
+ styleUrls: ["./artificialIntelligence.component.scss"],
10
+ encapsulation: ViewEncapsulation.None
10
11
  })
11
12
  export class ArtificialIntelligenceComponent {
12
13
  data$ = this.store.select(identity).pipe(debounceTime(10), map(artificialIntelligenceSelector))
13
14
 
14
- constructor(@Inject(Store) private store: Store) {}
15
+ constructor(private store: Store) {}
15
16
  }
@@ -3,9 +3,18 @@
3
3
  </button>
4
4
 
5
5
  <mat-menu #menu="matMenu" class="ai-drop-down high-risk-profile">
6
- <ng-container *ngIf="data.analyzedProgrammingLanguage !== undefined && data.analyzedProgrammingLanguage.length">
6
+ <ng-container *ngIf="data.riskProfile !== undefined">
7
7
  <div class="title">
8
8
  <div>Risk Profile</div>
9
+ </div>
10
+ <div class="suspicious-metrics-summary">
11
+ The Risk Profile gives a quick overview about the complexity and risk structure of the code base. It tells you how much of the
12
+ code is placed in files associated with low/high risk in means of maintainability. The separation of code in risk classes like
13
+ low or high complexity is based on Java reference metric values and therefore may be inaccurate for other programming languages.
14
+ More information can be found here:
15
+ <a href="https://maibornwolff.github.io/codecharta/docs/risk-profile/">link</a> to How-To article.
16
+ </div>
17
+ <div class="title">
9
18
  <div>Calculations are always based on mcc (cyclomatic complexity)</div>
10
19
  </div>
11
20
  <div class="suspicious-metrics-summary">
@@ -47,7 +56,7 @@
47
56
  </div>
48
57
  </div>
49
58
  </ng-container>
50
- <ng-container *ngIf="data.analyzedProgrammingLanguage === undefined || data.analyzedProgrammingLanguage.length === 0">
51
- Could not calculate Risk Profile. Metrics rloc and mcc not available.
59
+ <ng-container *ngIf="data.riskProfile === undefined">
60
+ Could not calculate Risk Profile. Metrics rloc(Real lines of code) and mcc(Cyclomatic complexity) not available.
52
61
  </ng-container>
53
62
  </mat-menu>
@@ -57,7 +57,11 @@ describe("HighRiskProfileComponent", () => {
57
57
 
58
58
  await userEvent.click(screen.getByTitle("Open High Risk Profile"))
59
59
 
60
- expect(screen.getByText("Could not calculate Risk Profile. Metrics rloc and mcc not available.")).toBeTruthy()
60
+ expect(
61
+ screen.getByText(
62
+ "Could not calculate Risk Profile. Metrics rloc(Real lines of code) and mcc(Cyclomatic complexity) not available."
63
+ )
64
+ ).toBeTruthy()
61
65
  })
62
66
 
63
67
  it("should explain that there couldn't be analyzed a risk profile even when analyzedProgrammingLanguage is undefined", async () => {
@@ -74,6 +78,10 @@ describe("HighRiskProfileComponent", () => {
74
78
 
75
79
  await userEvent.click(screen.getByTitle("Open High Risk Profile"))
76
80
 
77
- expect(screen.getByText("Could not calculate Risk Profile. Metrics rloc and mcc not available.")).toBeTruthy()
81
+ expect(
82
+ screen.getByText(
83
+ "Could not calculate Risk Profile. Metrics rloc(Real lines of code) and mcc(Cyclomatic complexity) not available."
84
+ )
85
+ ).toBeTruthy()
78
86
  })
79
87
  })
@@ -1,9 +1,10 @@
1
- import { Component, Input } from "@angular/core"
1
+ import { Component, Input, ViewEncapsulation } from "@angular/core"
2
2
  import { ArtificialIntelligenceData } from "../selectors/artificialIntelligence.selector"
3
3
 
4
4
  @Component({
5
5
  selector: "cc-high-risk-profile",
6
- template: require("./highRiskProfile.component.html")
6
+ templateUrl: "./highRiskProfile.component.html",
7
+ encapsulation: ViewEncapsulation.None
7
8
  })
8
9
  export class HighRiskProfileComponent {
9
10
  @Input() data: Pick<ArtificialIntelligenceData, "analyzedProgrammingLanguage" | "riskProfile">
@@ -1,4 +1,4 @@
1
- import { Directive, ElementRef, Inject, Input, OnChanges, SimpleChanges } from "@angular/core"
1
+ import { Directive, ElementRef, Input, OnChanges, SimpleChanges } from "@angular/core"
2
2
 
3
3
  @Directive({
4
4
  selector: "[ccRiskProfileBar]"
@@ -6,7 +6,7 @@ import { Directive, ElementRef, Inject, Input, OnChanges, SimpleChanges } from "
6
6
  export class RiskProfileBarDirective implements OnChanges {
7
7
  @Input() ccRiskProfileBar = 0
8
8
 
9
- constructor(@Inject(ElementRef) private element: ElementRef) {}
9
+ constructor(private element: ElementRef) {}
10
10
 
11
11
  ngOnChanges(changes: SimpleChanges) {
12
12
  if (changes.ccRiskProfileBar) {
@@ -1,15 +1,10 @@
1
1
  import { calculate } from "./artificialIntelligence.selector"
2
2
  import { VALID_NODE_JAVA } from "../../../../util/dataMocks"
3
- import { BlacklistItem, BlacklistType, NodeType } from "../../../../codeCharta.model"
3
+ import { BlacklistItem, NodeType } from "../../../../codeCharta.model"
4
4
 
5
5
  describe("ArtificialIntelligenceSelector", () => {
6
- it("should return undefined when experimental features are disabled ", () => {
7
- const actual = calculate(false, { unifiedMapNode: VALID_NODE_JAVA }, [])
8
- expect(actual).toBeUndefined()
9
- })
10
-
11
6
  it("should calculate suspicious metrics and risk profile when experimental features are enabled ", () => {
12
- const actual = calculate(true, { unifiedMapNode: VALID_NODE_JAVA }, [])
7
+ const actual = calculate({ unifiedMapNode: VALID_NODE_JAVA }, [])
13
8
 
14
9
  expect(actual).toEqual({
15
10
  analyzedProgrammingLanguage: "java",
@@ -24,11 +19,11 @@ describe("ArtificialIntelligenceSelector", () => {
24
19
  })
25
20
  })
26
21
 
27
- it("should return untracked metrics when experimental features are enabled ", () => {
22
+ it("should return untracked metrics", () => {
28
23
  VALID_NODE_JAVA.children[0].children.map(object => {
29
24
  object.attributes.unknownMetric = 2569
30
25
  })
31
- const actual = calculate(true, { unifiedMapNode: VALID_NODE_JAVA }, [])
26
+ const actual = calculate({ unifiedMapNode: VALID_NODE_JAVA }, [])
32
27
 
33
28
  expect(actual).toEqual({
34
29
  analyzedProgrammingLanguage: "java",
@@ -43,8 +38,8 @@ describe("ArtificialIntelligenceSelector", () => {
43
38
  })
44
39
  })
45
40
 
46
- it("should ignore excluded nodes when experimental features are enabled", () => {
47
- const blacklist: BlacklistItem[] = [{ path: "file1.java", type: BlacklistType.exclude }]
41
+ it("should ignore excluded nodes", () => {
42
+ const blacklist: BlacklistItem[] = [{ path: "file1.java", type: "exclude" }]
48
43
  const blacklistedNode = {
49
44
  name: "file1.java",
50
45
  path: "file1.java",
@@ -52,15 +47,10 @@ describe("ArtificialIntelligenceSelector", () => {
52
47
  attributes: { rloc: 70, mcc: 1000 }
53
48
  }
54
49
 
55
- const actual = calculate(true, { unifiedMapNode: blacklistedNode }, blacklist)
50
+ const actual = calculate({ unifiedMapNode: blacklistedNode }, blacklist)
56
51
 
57
52
  expect(actual).toEqual({
58
- riskProfile: {
59
- highRisk: 0,
60
- lowRisk: 0,
61
- moderateRisk: 0,
62
- veryHighRisk: 0
63
- },
53
+ riskProfile: undefined,
64
54
  suspiciousMetricSuggestionLinks: [],
65
55
  unsuspiciousMetrics: [],
66
56
  untrackedMetrics: []
@@ -14,12 +14,11 @@ import {
14
14
  MetricValuesByLanguage
15
15
  } from "./util/suspiciousMetricsHelper"
16
16
  import { hierarchy } from "d3-hierarchy"
17
- import { BlacklistItem, BlacklistType, CodeMapNode, NodeType } from "../../../../codeCharta.model"
17
+ import { BlacklistItem, CodeMapNode, NodeType } from "../../../../codeCharta.model"
18
18
  import { getMostFrequentLanguage } from "./util/mainProgrammingLanguageHelper"
19
19
  import { isPathBlacklisted } from "../../../../util/codeMapHelper"
20
20
  import { createSelector } from "../../../../state/angular-redux/createSelector"
21
21
  import { blacklistSelector } from "../../../../state/store/fileSettings/blacklist/blacklist.selector"
22
- import { experimentalFeaturesEnabledSelector } from "../../../../state/store/appSettings/enableExperimentalFeatures/experimentalFeaturesEnabled.selector"
23
22
  import { CcState } from "../../../../state/store/store"
24
23
  import { AccumulatedData, accumulatedDataSelector } from "../../../../state/selectors/accumulatedData/accumulatedData.selector"
25
24
 
@@ -32,43 +31,40 @@ export type ArtificialIntelligenceData = {
32
31
  }
33
32
 
34
33
  export const calculate = (
35
- experimentalFeaturesEnabled: boolean,
36
34
  accumulatedData: Pick<AccumulatedData, "unifiedMapNode">,
37
35
  blacklist: BlacklistItem[]
38
36
  ): ArtificialIntelligenceData | undefined => {
39
- if (!experimentalFeaturesEnabled) {
40
- return
41
- }
42
-
43
37
  const artificialIntelligenceViewModel: ArtificialIntelligenceData = {
44
38
  analyzedProgrammingLanguage: undefined,
45
39
  suspiciousMetricSuggestionLinks: [],
46
40
  unsuspiciousMetrics: [],
47
41
  untrackedMetrics: [],
48
- riskProfile: { lowRisk: 0, moderateRisk: 0, highRisk: 0, veryHighRisk: 0 }
42
+ riskProfile: undefined
49
43
  }
50
44
 
51
45
  const numberOfFilesByLanguage = new Map<string, number>()
52
46
  const rlocRisk = { lowRisk: 0, moderateRisk: 0, highRisk: 0, veryHighRisk: 0 }
53
47
  let totalRloc = 0
48
+ let totalMcc = 0
54
49
  const metricValuesByLanguage: MetricValuesByLanguage = {}
55
50
 
56
51
  for (const { data } of hierarchy(accumulatedData.unifiedMapNode)) {
57
52
  const fileExtension = getFileExtension(data.name)
58
- if (data.type === NodeType.FILE && fileExtension !== undefined && !isPathBlacklisted(data.path, blacklist, BlacklistType.exclude)) {
53
+ if (data.type === NodeType.FILE && fileExtension !== undefined && !isPathBlacklisted(data.path, blacklist, "exclude")) {
59
54
  const filesPerLanguage = numberOfFilesByLanguage.get(fileExtension) ?? 0
60
55
  numberOfFilesByLanguage.set(fileExtension, filesPerLanguage + 1)
61
56
  setMetricValuesByLanguage(data, metricValuesByLanguage, fileExtension)
62
57
 
63
58
  if (isFileValid(data, fileExtension)) {
64
59
  totalRloc += data.attributes[AREA_METRIC]
60
+ totalMcc += data.attributes[HEIGHT_METRIC]
65
61
  aggregateRiskProfile(data, rlocRisk, fileExtension)
66
62
  }
67
63
  }
64
+ }
68
65
 
69
- if (totalRloc > 0) {
70
- artificialIntelligenceViewModel.riskProfile = getPercentagesOfRiskProfile(rlocRisk)
71
- }
66
+ if (totalRloc > 0 && totalMcc > 0) {
67
+ artificialIntelligenceViewModel.riskProfile = getPercentagesOfRiskProfile(rlocRisk)
72
68
  }
73
69
 
74
70
  const mainProgrammingLanguage = getMostFrequentLanguage(numberOfFilesByLanguage)
@@ -97,6 +93,6 @@ function isFileValid(node: CodeMapNode, fileExtension: string) {
97
93
  }
98
94
 
99
95
  export const artificialIntelligenceSelector: (state: CcState) => ArtificialIntelligenceData = createSelector(
100
- [experimentalFeaturesEnabledSelector, accumulatedDataSelector, blacklistSelector],
96
+ [accumulatedDataSelector, blacklistSelector],
101
97
  calculate
102
98
  )
@@ -15,6 +15,16 @@
15
15
 
16
16
  <mat-menu #menu="matMenu" class="ai-drop-down suspicious-metric-panel">
17
17
  <div *ngIf="data.unsuspiciousMetrics.length">
18
+ <div class="title">
19
+ <div>Suspicious Metrics</div>
20
+ </div>
21
+ <div class="suspicious-metric">
22
+ This feature compares the values of certain metrics from the loaded cc.json file with metric values of 241 Open Source Java
23
+ projects. Based on this data suspicious and inconspicuous metrics are identified and corresponding suggestions can be clicked to
24
+ view them. Be aware that metrics for other programming languages might not be comparable to Java Reference metric values. More
25
+ information can be found here:
26
+ <a href="https://maibornwolff.github.io/codecharta/docs/suspicious-metrics/">link</a> to How-To article.
27
+ </div>
18
28
  <div class="title">
19
29
  {{
20
30
  data.analyzedProgrammingLanguage?.length
@@ -47,7 +57,7 @@
47
57
  </div>
48
58
 
49
59
  <div *ngIf="data.untrackedMetrics.length">
50
- <div *ngIf="data.analyzedProgrammingLanguage.length" class="title new-section">
60
+ <div *ngIf="data.analyzedProgrammingLanguage.length" class="title">
51
61
  Untracked metrics in {{ data.analyzedProgrammingLanguage }} code
52
62
  </div>
53
63
  <ul>
@@ -18,7 +18,7 @@ describe("SuspiciousMetricsComponent", () => {
18
18
 
19
19
  describe("badge", () => {
20
20
  it("should show initially and hide on first click, but show again when data has changed", async () => {
21
- const { container, rerender } = await render(SuspiciousMetricComponent, {
21
+ const { container, change } = await render(SuspiciousMetricComponent, {
22
22
  excludeComponentDeclaration: true,
23
23
  componentProperties: {
24
24
  data: {
@@ -34,7 +34,7 @@ describe("SuspiciousMetricsComponent", () => {
34
34
  await userEvent.click(screen.getByTitle("Open Suspicious Metrics Panel"))
35
35
  expect(container.querySelector(".suspicious-metrics-badge")).toBe(null)
36
36
 
37
- rerender({
37
+ change({
38
38
  data: {
39
39
  analyzedProgrammingLanguage: "ts",
40
40
  unsuspiciousMetrics: ["rloc"],
@@ -46,7 +46,7 @@ describe("SuspiciousMetricsComponent", () => {
46
46
  })
47
47
 
48
48
  it("should show initially and hide on first click, but not show again when new data has same values", async () => {
49
- const { container, rerender } = await render(SuspiciousMetricComponent, {
49
+ const { container, change } = await render(SuspiciousMetricComponent, {
50
50
  excludeComponentDeclaration: true,
51
51
  componentProperties: {
52
52
  data: {
@@ -62,7 +62,7 @@ describe("SuspiciousMetricsComponent", () => {
62
62
  await userEvent.click(screen.getByTitle("Open Suspicious Metrics Panel"))
63
63
  expect(container.querySelector(".suspicious-metrics-badge")).toBe(null)
64
64
 
65
- rerender({
65
+ change({
66
66
  data: {
67
67
  analyzedProgrammingLanguage: "ts",
68
68
  unsuspiciousMetrics: ["rloc", "mcc"],
@@ -1,5 +1,5 @@
1
- import { Component, Inject, Input, OnChanges, SimpleChanges } from "@angular/core"
2
- import isEqual from "lodash.isequal"
1
+ import { Component, Input, OnChanges, SimpleChanges, ViewEncapsulation } from "@angular/core"
2
+ import { dequal } from "dequal"
3
3
  import { Store } from "../../../../state/angular-redux/store"
4
4
  import { defaultMapColors, setMapColors } from "../../../../state/store/appSettings/mapColors/mapColors.actions"
5
5
  import { setAreaMetric } from "../../../../state/store/dynamicSettings/areaMetric/areaMetric.actions"
@@ -12,7 +12,8 @@ import { MetricSuggestionParameters } from "../selectors/util/suspiciousMetricsH
12
12
 
13
13
  @Component({
14
14
  selector: "cc-suspicious-metrics",
15
- template: require("./suspiciousMetrics.component.html")
15
+ templateUrl: "./suspiciousMetrics.component.html",
16
+ encapsulation: ViewEncapsulation.None
16
17
  })
17
18
  export class SuspiciousMetricComponent implements OnChanges {
18
19
  @Input() data: Pick<
@@ -21,10 +22,10 @@ export class SuspiciousMetricComponent implements OnChanges {
21
22
  >
22
23
  hideBadge = false
23
24
 
24
- constructor(@Inject(Store) private store: Store) {}
25
+ constructor(private store: Store) {}
25
26
 
26
27
  ngOnChanges(changes: SimpleChanges): void {
27
- if (changes.data && !isEqual(changes.data.previousValue, changes.data.currentValue)) {
28
+ if (changes.data && !dequal(changes.data.previousValue, changes.data.currentValue)) {
28
29
  this.hideBadge = false
29
30
  }
30
31
  }
@@ -8,11 +8,14 @@ import { ColorMetricChooserComponent } from "./colorMetricChooser.component"
8
8
  import { ColorMetricChooserModule } from "./heightMetricChooser.module"
9
9
  import { toggleIsColorMetricLinkedToHeightMetric } from "../../../state/store/appSettings/isHeightAndColorMetricLinked/isColorMetricLinkedToHeightMetric.actions"
10
10
 
11
- jest.mock("../../../state/selectors/accumulatedData/metricData/nodeMetricData.selector", () => ({
12
- nodeMetricDataSelector: () => [
13
- { name: "aMetric", maxValue: 1 },
14
- { name: "bMetric", maxValue: 2 }
15
- ]
11
+ jest.mock("../../../state/selectors/accumulatedData/metricData/metricData.selector", () => ({
12
+ metricDataSelector: () => ({
13
+ nodeMetricData: [
14
+ { name: "aMetric", maxValue: 1 },
15
+ { name: "bMetric", maxValue: 2 }
16
+ ],
17
+ edgeMetricData: []
18
+ })
16
19
  }))
17
20
 
18
21
  describe("colorMetricChooserComponent", () => {
@@ -31,7 +34,7 @@ describe("colorMetricChooserComponent", () => {
31
34
  expect(screen.getByRole("combobox").getAttribute("aria-disabled")).toBe("false")
32
35
 
33
36
  await userEvent.click(await screen.findByText("aMetric (1)"))
34
- expect(screen.getByText("Color Metric (highest value)")).not.toBe(null)
37
+ expect(screen.getByPlaceholderText("Color Metric (highest value)")).not.toBe(null)
35
38
  const options = screen.queryAllByRole("option")
36
39
  expect(options[0].textContent).toMatch("aMetric (1)")
37
40
  expect(options[1].textContent).toMatch("bMetric (2)")
@@ -1,4 +1,4 @@
1
- import { Component, Inject } from "@angular/core"
1
+ import { Component, ViewEncapsulation } from "@angular/core"
2
2
  import { Store } from "../../../state/angular-redux/store"
3
3
  import { setColorMetric } from "../../../state/store/dynamicSettings/colorMetric/colorMetric.actions"
4
4
  import { colorMetricSelector } from "../../../state/store/dynamicSettings/colorMetric/colorMetric.selector"
@@ -6,7 +6,8 @@ import { isColorMetricLinkedToHeightMetricSelector } from "../../../state/store/
6
6
 
7
7
  @Component({
8
8
  selector: "cc-color-metric-chooser",
9
- template: require("./colorMetricChooser.component.html")
9
+ templateUrl: "./colorMetricChooser.component.html",
10
+ encapsulation: ViewEncapsulation.None
10
11
  })
11
12
  export class ColorMetricChooserComponent {
12
13
  colorMetric$ = this.store.select(colorMetricSelector)
@@ -14,7 +15,7 @@ export class ColorMetricChooserComponent {
14
15
  nonDisabledColor = "rgba(0, 0, 0, 0.38)"
15
16
  disabledColor = "rgba(68,68,68, 1)"
16
17
 
17
- constructor(@Inject(Store) private store: Store) {}
18
+ constructor(private store: Store) {}
18
19
 
19
20
  handleColorMetricChanged(value: string) {
20
21
  this.store.dispatch(setColorMetric(value))
@@ -1,21 +1,22 @@
1
1
  <cc-metric-color-range-slider *ngIf="!(isDeltaState$ | async)"></cc-metric-color-range-slider>
2
2
 
3
- <mat-select [value]="colorMode$ | async" (selectionChange)="handleColorModeChange($event.value)">
4
- <div (mousedown)="$event.stopPropagation()">
5
- <mat-option value="absolute">Absolute</mat-option>
6
- <mat-option value="focusedGradient">Focused Gradient</mat-option>
7
- <mat-option value="weightedGradient">Weighted Gradient</mat-option>
8
- <mat-option value="trueGradient">True Gradient</mat-option>
9
- </div>
10
- </mat-select>
11
-
12
3
  <cc-reset-settings-button
13
4
  [settingsKeys]="['dynamicSettings.colorRange', 'appSettings.mapColors.positiveDelta', 'appSettings.mapColors.negativeDelta']"
14
5
  tooltip="Reset slider thresholds to default"
15
6
  label="Reset thresholds"
16
7
  ></cc-reset-settings-button>
17
8
 
18
- <mat-divider></mat-divider>
9
+ <mat-form-field appearance="outline">
10
+ <mat-label>Gradient Mode</mat-label>
11
+ <mat-select [value]="colorMode$ | async" (selectionChange)="handleColorModeChange($event.value)">
12
+ <div (mousedown)="$event.stopPropagation()">
13
+ <mat-option value="absolute">Absolute</mat-option>
14
+ <mat-option value="focusedGradient">Focused Gradient</mat-option>
15
+ <mat-option value="weightedGradient">Weighted Gradient</mat-option>
16
+ <mat-option value="trueGradient">True Gradient</mat-option>
17
+ </div>
18
+ </mat-select>
19
+ </mat-form-field>
19
20
 
20
21
  <ng-container *ngIf="!(isDeltaState$ | async)">
21
22
  <div class="color-row">