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.
- package/README.md +4 -1
- package/app/app.module.ts +1 -12
- package/app/app.scss +0 -2
- package/app/codeCharta/assets/codecharta_logo.svg +1 -0
- package/app/codeCharta/codeCharta.component.html +10 -7
- package/app/codeCharta/codeCharta.component.scss +22 -51
- package/app/codeCharta/codeCharta.component.ts +5 -7
- package/app/codeCharta/codeCharta.model.ts +0 -1
- package/app/codeCharta/e2e/__snapshots__/logo.e2e.ts.snap +2 -2
- package/app/codeCharta/e2e/logo.po.ts +7 -7
- package/app/codeCharta/e2e/url.e2e.ts +2 -2
- package/app/codeCharta/index.d.ts +1 -1
- package/app/codeCharta/model/customConfig/customConfig.api.model.ts +1 -0
- package/app/codeCharta/services/isAttributeSideBarVisible.service.ts +2 -2
- package/app/codeCharta/services/loadFile/loadFile.service.spec.ts +6 -6
- package/app/codeCharta/services/loadFile/loadFile.service.ts +7 -3
- package/app/codeCharta/services/loadInitialFile/loadInitialFile.service.spec.ts +1 -1
- package/app/codeCharta/services/loadInitialFile/loadInitialFile.service.ts +7 -7
- package/app/codeCharta/services/version/version.service.ts +2 -2
- package/app/codeCharta/state/effects/autoFitCodeMapChange/autoFitCodeMap.effect.ts +5 -5
- package/app/codeCharta/state/effects/linkColorMetricToHeightMetric/linkColorMetricToHeightMetric.effect.ts +2 -2
- package/app/codeCharta/state/effects/nodeContextMenu/excludeButton/excludeButton.component.ts +4 -3
- package/app/codeCharta/state/effects/nodeContextMenu/flattenButtons/flattenButtons.component.html +2 -2
- package/app/codeCharta/state/effects/nodeContextMenu/flattenButtons/flattenButtons.component.ts +4 -3
- package/app/codeCharta/state/effects/nodeContextMenu/focusButtons/focusButtons.component.ts +4 -3
- package/app/codeCharta/state/effects/nodeContextMenu/highlightButtons/highlightButtons.component.spec.ts +5 -5
- package/app/codeCharta/state/effects/nodeContextMenu/highlightButtons/highlightButtons.component.ts +4 -6
- package/app/codeCharta/state/effects/nodeContextMenu/markFolderRow/markFolderRow.component.ts +5 -4
- package/app/codeCharta/state/effects/nodeContextMenu/nodeContextMenu.service.ts +2 -2
- package/app/codeCharta/state/effects/nodeContextMenu/nodeContextMenuCard/nodeContextMenuCard.component.html +1 -1
- package/app/codeCharta/state/effects/nodeContextMenu/nodeContextMenuCard/nodeContextMenuCard.component.scss +6 -7
- package/app/codeCharta/state/effects/nodeContextMenu/nodeContextMenuCard/nodeContextMenuCard.component.ts +5 -4
- package/app/codeCharta/state/effects/nodeContextMenu/nodeContextMenuCard/nodeContextMenuCard.module.ts +1 -2
- package/app/codeCharta/state/effects/nodeContextMenu/openNodeContextMenu.effect.ts +1 -4
- package/app/codeCharta/state/effects/renderCodeMapEffect/renderCodeMap.effect.ts +4 -4
- package/app/codeCharta/state/effects/resetChosenMetrics/resetChosenMetrics.effect.spec.ts +25 -19
- package/app/codeCharta/state/effects/resetChosenMetrics/resetChosenMetrics.effect.ts +6 -5
- package/app/codeCharta/state/effects/resetSelectedEdgeMetricWhenItDoesntExistAnymore/resetSelectedEdgeMetricWhenItDoesntExistAnymore.effect.spec.ts +13 -13
- package/app/codeCharta/state/effects/resetSelectedEdgeMetricWhenItDoesntExistAnymore/resetSelectedEdgeMetricWhenItDoesntExistAnymore.effect.ts +6 -6
- package/app/codeCharta/state/effects/unfocusNodes/unfocusNodes.effect.ts +2 -2
- package/app/codeCharta/state/effects/updateEdgePreviews/updateEdgePreviews.effect.ts +2 -2
- package/app/codeCharta/state/effects/updateEdgePreviews/utils/edgePreviewNodes.selector.ts +5 -3
- package/app/codeCharta/state/effects/updateFileSettings/updateFileSettings.effect.ts +2 -2
- package/app/codeCharta/state/effects/updateFileSettings/utils/__snapshots__/blacklist.merger.spec.ts.snap +9 -9
- package/app/codeCharta/state/effects/updateFileSettings/utils/__snapshots__/edges.merger.spec.ts.snap +16 -16
- package/app/codeCharta/state/effects/updateFileSettings/utils/__snapshots__/markedPackages.merger.spec.ts.snap +10 -10
- package/app/codeCharta/state/effects/updateVisibleTopLabels/updateVisibleTopLabels.effect.ts +2 -2
- package/app/codeCharta/state/selectors/accumulatedData/accumulatedData.selector.spec.ts +76 -0
- package/app/codeCharta/state/selectors/accumulatedData/accumulatedData.selector.ts +7 -12
- package/app/codeCharta/state/selectors/accumulatedData/metricData/edgeMetricData.calculator.spec.ts +46 -0
- package/app/codeCharta/state/selectors/accumulatedData/metricData/{edgeMetricData.selector.ts → edgeMetricData.calculator.ts} +10 -23
- package/app/codeCharta/state/selectors/accumulatedData/metricData/metricData.selector.ts +10 -6
- package/app/codeCharta/state/selectors/accumulatedData/metricData/metricNames.selector.spec.ts +5 -5
- package/app/codeCharta/state/selectors/accumulatedData/metricData/metricNames.selector.ts +2 -2
- package/app/codeCharta/state/selectors/accumulatedData/metricData/{nodeMetricData.selector.spec.ts → nodeMetricData.calculator.spec.ts} +2 -2
- package/app/codeCharta/state/selectors/accumulatedData/metricData/{nodeMetricData.selector.ts → nodeMetricData.calculator.ts} +0 -5
- package/app/codeCharta/state/selectors/accumulatedData/metricData/selectedColorMetricData.selector.ts +4 -4
- package/app/codeCharta/state/selectors/accumulatedData/utils/addEdgeMetricsForLeaves.ts +3 -2
- package/app/codeCharta/state/selectors/accumulatedData/utils/getMetricValuesForNode.spec.ts +4 -11
- package/app/codeCharta/state/selectors/accumulatedData/utils/getMetricValuesForNode.ts +2 -2
- package/app/codeCharta/state/selectors/allNecessaryRenderDataAvailable/areAllNecessaryRenderDataAvailable.selector.ts +7 -6
- package/app/codeCharta/state/selectors/primaryMetrics/primaryMetrics.selector.ts +27 -11
- package/app/codeCharta/state/store/appSettings/appSettings.actions.ts +0 -2
- package/app/codeCharta/state/store/appSettings/appSettings.reducer.ts +0 -2
- package/app/codeCharta/state/store/appSettings/invertArea/invertArea.actions.ts +1 -12
- package/app/codeCharta/state/store/appSettings/invertArea/invertArea.reducer.ts +2 -4
- package/app/codeCharta/state/store/dynamicSettings/colorRange/resetColorRange.effect.ts +1 -1
- package/app/codeCharta/ui/actionIcon/actionIcon.component.ts +4 -3
- package/app/codeCharta/ui/actionIcon/actionIcon.module.ts +1 -2
- package/app/codeCharta/ui/attributeSideBar/attributeSideBar.component.scss +1 -1
- package/app/codeCharta/ui/attributeSideBar/attributeSideBar.component.spec.ts +59 -7
- package/app/codeCharta/ui/attributeSideBar/attributeSideBar.component.ts +5 -7
- package/app/codeCharta/ui/attributeSideBar/attributeSideBar.module.ts +2 -2
- package/app/codeCharta/ui/attributeSideBar/attributeSideBarHeaderSection/attributeSideBarHeaderSection.component.ts +5 -4
- package/app/codeCharta/ui/attributeSideBar/attributeSideBarHeaderSection/nodePath/nodePath.component.ts +4 -3
- package/app/codeCharta/ui/attributeSideBar/attributeSideBarPrimaryMetrics/attributeSideBarPrimaryMetric/attributeSideBarPrimaryMetric.component.ts +4 -3
- package/app/codeCharta/ui/attributeSideBar/attributeSideBarPrimaryMetrics/attributeSideBarPrimaryMetrics.component.html +10 -5
- package/app/codeCharta/ui/attributeSideBar/attributeSideBarPrimaryMetrics/attributeSideBarPrimaryMetrics.component.ts +4 -3
- package/app/codeCharta/ui/attributeSideBar/attributeSideBarSecondaryMetrics/attributeSideBarSecondaryMetrics.component.html +5 -1
- package/app/codeCharta/ui/attributeSideBar/attributeSideBarSecondaryMetrics/attributeSideBarSecondaryMetrics.component.ts +4 -3
- package/app/codeCharta/ui/attributeSideBar/attributeSideBarSecondaryMetrics/secondaryMetrics.selector.spec.ts +29 -4
- package/app/codeCharta/ui/attributeSideBar/attributeSideBarSecondaryMetrics/secondaryMetrics.selector.ts +11 -4
- package/app/codeCharta/ui/attributeSideBar/attributeTypeSelector/attributeTypeSelector.component.scss +4 -6
- package/app/codeCharta/ui/attributeSideBar/attributeTypeSelector/attributeTypeSelector.component.ts +5 -4
- package/app/codeCharta/ui/attributeSideBar/metricDeltaSelected/metricDeltaSelected.component.spec.ts +2 -2
- package/app/codeCharta/ui/attributeSideBar/metricDeltaSelected/metricDeltaSelected.component.ts +4 -3
- package/app/codeCharta/ui/attributeSideBar/util/edge.ts +7 -0
- package/app/codeCharta/ui/attributeSideBar/util/metric.ts +2 -0
- package/app/codeCharta/ui/{legendPanel/selectors/legendMetric.ts → attributeSideBar/util/metricDescriptors.ts} +10 -4
- package/app/codeCharta/ui/codeMap/__snapshots__/codeMap.arrow.service.spec.ts.snap +16 -16
- package/app/codeCharta/ui/codeMap/__snapshots__/codeMap.render.service.spec.ts.snap +19 -19
- package/app/codeCharta/ui/codeMap/codeMap.arrow.service.spec.ts +5 -4
- package/app/codeCharta/ui/codeMap/codeMap.arrow.service.ts +34 -29
- package/app/codeCharta/ui/codeMap/codeMap.component.ts +9 -8
- package/app/codeCharta/ui/codeMap/codeMap.label.service.ts +5 -5
- package/app/codeCharta/ui/codeMap/codeMap.mouseEvent.service.spec.ts +14 -1
- package/app/codeCharta/ui/codeMap/codeMap.mouseEvent.service.ts +30 -25
- package/app/codeCharta/ui/codeMap/codeMap.render.service.spec.ts +8 -6
- package/app/codeCharta/ui/codeMap/codeMap.render.service.ts +18 -13
- package/app/codeCharta/ui/codeMap/threeViewer/threeOrbitControls.service.spec.ts +3 -3
- package/app/codeCharta/ui/codeMap/threeViewer/threeOrbitControls.service.ts +9 -9
- package/app/codeCharta/ui/codeMap/threeViewer/threeRenderer.service.ts +3 -3
- package/app/codeCharta/ui/codeMap/threeViewer/threeSceneService.ts +16 -19
- package/app/codeCharta/ui/codeMap/threeViewer/threeStats.service.spec.ts +27 -32
- package/app/codeCharta/ui/codeMap/threeViewer/threeStats.service.ts +3 -4
- package/app/codeCharta/ui/codeMap/threeViewer/threeViewer.service.spec.ts +2 -2
- package/app/codeCharta/ui/codeMap/threeViewer/threeViewer.service.ts +6 -6
- package/app/codeCharta/ui/colorPicker/colorPicker.component.spec.ts +5 -2
- package/app/codeCharta/ui/colorPicker/colorPicker.component.ts +3 -2
- package/app/codeCharta/ui/colorPickerForMapColor/colorPickerForMapColor.component.ts +5 -4
- package/app/codeCharta/ui/copyToClipboardButton/copyToClipboard.service.ts +2 -2
- package/app/codeCharta/ui/copyToClipboardButton/copyToClipboardButton.component.ts +4 -3
- package/app/codeCharta/ui/customConfigs/addCustomConfigButton/addCustomConfigButton.component.spec.ts +17 -10
- package/app/codeCharta/ui/customConfigs/addCustomConfigButton/addCustomConfigButton.component.ts +4 -3
- package/app/codeCharta/ui/customConfigs/addCustomConfigButton/addCustomConfigButton.module.ts +3 -3
- package/app/codeCharta/ui/customConfigs/addCustomConfigButton/addCustomConfigDialog/addCustomConfigDialog.component.html +14 -2
- package/app/codeCharta/ui/customConfigs/addCustomConfigButton/addCustomConfigDialog/addCustomConfigDialog.component.ts +23 -13
- package/app/codeCharta/ui/customConfigs/addCustomConfigButton/addCustomConfigDialog/addCustomConfigDialog.spec.ts +23 -9
- package/app/codeCharta/ui/customConfigs/addCustomConfigButton/addCustomConfigDialog/addCustomDialog.component.scss +7 -6
- package/app/codeCharta/ui/customConfigs/addCustomConfigButton/addCustomConfigDialog/downloadAndPurgeConfigs/downloadAndPurgeConfigs.component.ts +5 -4
- package/app/codeCharta/ui/customConfigs/customConfigHelper.service.ts +2 -2
- package/app/codeCharta/ui/customConfigs/customConfigList/customConfigItemGroup/customConfig2ApplicableColor.pipe.ts +2 -2
- package/app/codeCharta/ui/customConfigs/customConfigList/customConfigItemGroup/customConfig2ApplicableMessage.pipe.ts +2 -2
- package/app/codeCharta/ui/customConfigs/customConfigList/customConfigItemGroup/customConfigDescription/applyCustomConfigButton.component.html +15 -12
- package/app/codeCharta/ui/customConfigs/customConfigList/customConfigItemGroup/customConfigDescription/applyCustomConfigButton.component.scss +12 -8
- package/app/codeCharta/ui/customConfigs/customConfigList/customConfigItemGroup/customConfigDescription/applyCustomConfigButton.component.ts +7 -6
- package/app/codeCharta/ui/customConfigs/customConfigList/customConfigItemGroup/customConfigDescription/applyCustomConfigButton.spec.ts +0 -6
- package/app/codeCharta/ui/customConfigs/customConfigList/customConfigItemGroup/customConfigItemGroup.component.html +21 -4
- package/app/codeCharta/ui/customConfigs/customConfigList/customConfigItemGroup/customConfigItemGroup.component.scss +38 -0
- package/app/codeCharta/ui/customConfigs/customConfigList/customConfigItemGroup/customConfigItemGroup.component.spec.ts +32 -7
- package/app/codeCharta/ui/customConfigs/customConfigList/customConfigItemGroup/customConfigItemGroup.component.ts +17 -2
- package/app/codeCharta/ui/customConfigs/customConfigList/customConfigList.component.html +8 -8
- package/app/codeCharta/ui/customConfigs/customConfigList/customConfigList.component.scss +27 -31
- package/app/codeCharta/ui/customConfigs/customConfigList/customConfigList.component.spec.ts +6 -3
- package/app/codeCharta/ui/customConfigs/customConfigList/customConfigList.component.ts +5 -4
- package/app/codeCharta/ui/customConfigs/customConfigList/getCustomConfigItemGroups.spec.ts +5 -1
- package/app/codeCharta/ui/customConfigs/customConfigList/getCustomConfigItemGroups.ts +2 -1
- package/app/codeCharta/ui/customConfigs/customConfigNoteDialogButton/customConfigNoteDialog/customConfigNoteDialog.component.html +12 -0
- package/app/codeCharta/ui/customConfigs/customConfigNoteDialogButton/customConfigNoteDialog/customConfigNoteDialog.component.scss +31 -0
- package/app/codeCharta/ui/customConfigs/customConfigNoteDialogButton/customConfigNoteDialog/customConfigNoteDialog.component.ts +12 -0
- package/app/codeCharta/ui/customConfigs/customConfigNoteDialogButton/customConfigNoteDialogButton.component.html +3 -0
- package/app/codeCharta/ui/customConfigs/customConfigNoteDialogButton/customConfigNoteDialogButton.component.spec.ts +90 -0
- package/app/codeCharta/ui/customConfigs/customConfigNoteDialogButton/customConfigNoteDialogButton.component.ts +33 -0
- package/app/codeCharta/ui/customConfigs/customConfigNoteDialogButton/customConfigNoteDialogButton.module.ts +14 -0
- package/app/codeCharta/ui/customConfigs/customConfigs.component.spec.ts +5 -4
- package/app/codeCharta/ui/customConfigs/customConfigs.component.ts +6 -4
- package/app/codeCharta/ui/customConfigs/customConfigs.module.ts +14 -3
- package/app/codeCharta/ui/customConfigs/downloadCustomConfigsButton/downloadCustomConfigsButton.component.ts +4 -3
- package/app/codeCharta/ui/customConfigs/uploadCustomConfigButton/uploadCustomConfigButton.component.ts +3 -2
- package/app/codeCharta/ui/customConfigs/uploadCustomConfigButton/uploadCustomConfigButton.module.ts +1 -2
- package/app/codeCharta/ui/dialogs/changelogDialog/changelogDialog.component.html +6 -6
- package/app/codeCharta/ui/dialogs/changelogDialog/changelogDialog.component.scss +6 -14
- package/app/codeCharta/ui/dialogs/changelogDialog/changelogDialog.component.ts +4 -3
- package/app/codeCharta/ui/dialogs/changelogDialog/changelogDialog.module.ts +1 -2
- package/app/codeCharta/ui/dialogs/confirmationDialog/confirmationDialog.component.scss +3 -3
- package/app/codeCharta/ui/dialogs/confirmationDialog/confirmationDialog.component.ts +4 -3
- package/app/codeCharta/ui/dialogs/errorDialog/errorDialog.component.po.ts +4 -9
- package/app/codeCharta/ui/dialogs/errorDialog/errorDialog.component.ts +3 -2
- package/app/codeCharta/ui/export3DMapButton/export3DMapButton.component.ts +4 -3
- package/app/codeCharta/ui/fileExtensionBar/distributionMetricChooser/distributionMetricChooser.component.ts +4 -3
- package/app/codeCharta/ui/fileExtensionBar/fileExtensionBar.component.scss +5 -6
- package/app/codeCharta/ui/fileExtensionBar/fileExtensionBar.component.ts +5 -4
- package/app/codeCharta/ui/fileExtensionBar/fileExtensionBar.module.ts +1 -2
- package/app/codeCharta/ui/fileExtensionBar/selectors/fileExtensionCalculator.spec.ts +18 -18
- package/app/codeCharta/ui/fileExtensionBar/selectors/fileExtensionCalculator.ts +1 -1
- package/app/codeCharta/ui/filePanel/filePanel.component.html +1 -1
- package/app/codeCharta/ui/filePanel/filePanel.component.scss +7 -27
- package/app/codeCharta/ui/filePanel/filePanel.component.ts +5 -4
- package/app/codeCharta/ui/filePanel/filePanel.module.ts +2 -2
- package/app/codeCharta/ui/filePanel/filePanel.po.ts +6 -4
- package/app/codeCharta/ui/filePanel/filePanelDeltaSelector/filePanelDeltaSelector.component.html +26 -24
- package/app/codeCharta/ui/filePanel/filePanelDeltaSelector/filePanelDeltaSelector.component.scss +6 -0
- package/app/codeCharta/ui/filePanel/filePanelDeltaSelector/filePanelDeltaSelector.component.ts +5 -3
- package/app/codeCharta/ui/filePanel/filePanelFileSelector/filePanelFileSelector.component.html +1 -0
- package/app/codeCharta/ui/filePanel/filePanelFileSelector/filePanelFileSelector.component.scss +2 -9
- package/app/codeCharta/ui/filePanel/filePanelFileSelector/filePanelFileSelector.component.spec.ts +1 -1
- package/app/codeCharta/ui/filePanel/filePanelFileSelector/filePanelFileSelector.component.ts +5 -4
- package/app/codeCharta/ui/filePanel/filePanelFileSelector/removeFileButton/removeFileButton.component.scss +1 -1
- package/app/codeCharta/ui/filePanel/filePanelFileSelector/removeFileButton/removeFileButton.component.ts +5 -4
- package/app/codeCharta/ui/filePanel/filePanelStateButtons/filePanelStateButtons.component.html +1 -1
- package/app/codeCharta/ui/filePanel/filePanelStateButtons/filePanelStateButtons.component.ts +4 -6
- package/app/codeCharta/ui/filePanel/fileSelectionMode.service.ts +2 -2
- package/app/codeCharta/ui/labelledColorPicker/labelledColorPicker.component.html +1 -1
- package/app/codeCharta/ui/labelledColorPicker/labelledColorPicker.component.scss +12 -8
- package/app/codeCharta/ui/labelledColorPicker/labelledColorPicker.component.spec.ts +2 -2
- package/app/codeCharta/ui/labelledColorPicker/labelledColorPicker.component.ts +4 -3
- package/app/codeCharta/ui/legendPanel/legendBlock/legendBlock.component.html +8 -8
- package/app/codeCharta/ui/legendPanel/legendBlock/legendBlock.component.ts +5 -4
- package/app/codeCharta/ui/legendPanel/legendMarkedPackages/legendMarkedPackages.component.ts +5 -4
- package/app/codeCharta/ui/legendPanel/legendPanel.component.html +11 -5
- package/app/codeCharta/ui/legendPanel/legendPanel.component.ts +5 -7
- package/app/codeCharta/ui/legendPanel/selectors/legendAreaMetric.selector.ts +4 -4
- package/app/codeCharta/ui/legendPanel/selectors/legendColorMetric.selector.ts +4 -4
- package/app/codeCharta/ui/legendPanel/selectors/legendEdgeMetric.selector.spec.ts +10 -4
- package/app/codeCharta/ui/legendPanel/selectors/legendEdgeMetric.selector.ts +7 -7
- package/app/codeCharta/ui/legendPanel/selectors/legendHeightMetric.selector.ts +4 -4
- package/app/codeCharta/ui/loadingFileProgressSpinner/loadingFileProgressSpinner.component.scss +1 -1
- package/app/codeCharta/ui/loadingFileProgressSpinner/loadingFileProgressSpinner.component.ts +5 -4
- package/app/codeCharta/ui/metricChooser/metricChooser.component.html +1 -2
- package/app/codeCharta/ui/metricChooser/metricChooser.component.scss +22 -13
- package/app/codeCharta/ui/metricChooser/metricChooser.component.spec.ts +9 -7
- package/app/codeCharta/ui/metricChooser/metricChooser.component.ts +11 -10
- package/app/codeCharta/ui/metricChooser/metricChooser.module.ts +1 -2
- package/app/codeCharta/ui/metricChooser/metricChooserTypeHovered/metricChooserTypeHovered.component.ts +4 -3
- package/app/codeCharta/ui/metricChooser/metricChooserValueHovered/metricChooserValueHovered.component.ts +4 -3
- package/app/codeCharta/ui/resetSettingsButton/resetSettingsButton.component.scss +21 -3
- package/app/codeCharta/ui/resetSettingsButton/resetSettingsButton.component.ts +5 -4
- package/app/codeCharta/ui/ribbonBar/areaMetricChooser/areaMetricChooser.component.spec.ts +9 -6
- package/app/codeCharta/ui/ribbonBar/areaMetricChooser/areaMetricChooser.component.ts +4 -3
- package/app/codeCharta/ui/ribbonBar/areaSettingsPanel/areaSettingsPanel.component.html +13 -23
- package/app/codeCharta/ui/ribbonBar/areaSettingsPanel/areaSettingsPanel.component.scss +12 -3
- package/app/codeCharta/ui/ribbonBar/areaSettingsPanel/areaSettingsPanel.component.spec.ts +31 -17
- package/app/codeCharta/ui/ribbonBar/areaSettingsPanel/areaSettingsPanel.component.ts +14 -14
- package/app/codeCharta/ui/ribbonBar/areaSettingsPanel/areaSettingsPanel.module.ts +1 -2
- package/app/codeCharta/ui/ribbonBar/artificialIntelligence/artificialIntelligence.component.scss +2 -3
- package/app/codeCharta/ui/ribbonBar/artificialIntelligence/artificialIntelligence.component.ts +5 -4
- package/app/codeCharta/ui/ribbonBar/artificialIntelligence/highRiskProfile/highRiskProfile.component.html +12 -3
- package/app/codeCharta/ui/ribbonBar/artificialIntelligence/highRiskProfile/highRiskProfile.component.spec.ts +10 -2
- package/app/codeCharta/ui/ribbonBar/artificialIntelligence/highRiskProfile/highRiskProfile.component.ts +3 -2
- package/app/codeCharta/ui/ribbonBar/artificialIntelligence/highRiskProfile/riskProfileBar.directive.ts +2 -2
- package/app/codeCharta/ui/ribbonBar/artificialIntelligence/selectors/artificialIntelligence.selector.spec.ts +6 -16
- package/app/codeCharta/ui/ribbonBar/artificialIntelligence/selectors/artificialIntelligence.selector.ts +7 -11
- package/app/codeCharta/ui/ribbonBar/artificialIntelligence/suspiciousMetrics/suspiciousMetrics.component.html +11 -1
- package/app/codeCharta/ui/ribbonBar/artificialIntelligence/suspiciousMetrics/suspiciousMetrics.component.spec.ts +4 -4
- package/app/codeCharta/ui/ribbonBar/artificialIntelligence/suspiciousMetrics/suspiciousMetrics.component.ts +6 -5
- package/app/codeCharta/ui/ribbonBar/colorMetricChooser/colorMetricChooser.component.spec.ts +9 -6
- package/app/codeCharta/ui/ribbonBar/colorMetricChooser/colorMetricChooser.component.ts +4 -3
- package/app/codeCharta/ui/ribbonBar/colorSettingsPanel/colorSettingsPanel.component.html +11 -10
- package/app/codeCharta/ui/ribbonBar/colorSettingsPanel/colorSettingsPanel.component.scss +17 -12
- package/app/codeCharta/ui/ribbonBar/colorSettingsPanel/colorSettingsPanel.component.ts +5 -4
- package/app/codeCharta/ui/ribbonBar/colorSettingsPanel/metricColorRangeSlider/metricColorRangeSlider.component.ts +5 -4
- package/app/codeCharta/ui/ribbonBar/colorSettingsPanel/metricColorRangeSlider/rangeSlider/rangeSlider.component.html +2 -2
- package/app/codeCharta/ui/ribbonBar/colorSettingsPanel/metricColorRangeSlider/rangeSlider/rangeSlider.component.scss +21 -6
- package/app/codeCharta/ui/ribbonBar/colorSettingsPanel/metricColorRangeSlider/rangeSlider/rangeSlider.component.ts +6 -5
- package/app/codeCharta/ui/ribbonBar/colorSettingsPanel/metricColorRangeSlider/rangeSlider/rangeSliderLabels/rangeSliderLabels.component.spec.ts +2 -2
- package/app/codeCharta/ui/ribbonBar/colorSettingsPanel/metricColorRangeSlider/rangeSlider/rangeSliderLabels/rangeSliderLabels.component.ts +5 -4
- package/app/codeCharta/ui/ribbonBar/edgeMetricChooser/edgeMetricChooser.component.scss +1 -1
- package/app/codeCharta/ui/ribbonBar/edgeMetricChooser/edgeMetricChooser.component.spec.ts +8 -6
- package/app/codeCharta/ui/ribbonBar/edgeMetricChooser/edgeMetricChooser.component.ts +5 -4
- package/app/codeCharta/ui/ribbonBar/edgeSettingsPanel/edgeMetricToggle/edgeMetricToggle.component.ts +4 -4
- package/app/codeCharta/ui/ribbonBar/edgeSettingsPanel/edgeSettingsPanel.component.html +14 -15
- package/app/codeCharta/ui/ribbonBar/edgeSettingsPanel/edgeSettingsPanel.component.spec.ts +1 -1
- package/app/codeCharta/ui/ribbonBar/edgeSettingsPanel/edgeSettingsPanel.component.ts +4 -3
- package/app/codeCharta/ui/ribbonBar/edgeSettingsPanel/selectors/amountOfBuildingsWithSelectedEdgeMetric.selector.ts +3 -3
- package/app/codeCharta/ui/ribbonBar/heightMetricChooser/areaMetricChooser.component.ts +4 -3
- package/app/codeCharta/ui/ribbonBar/heightMetricChooser/heightMetricChooser.component.spec.ts +9 -6
- package/app/codeCharta/ui/ribbonBar/heightSettingsPanel/heightSettingsPanel.component.html +15 -19
- package/app/codeCharta/ui/ribbonBar/heightSettingsPanel/heightSettingsPanel.component.spec.ts +3 -2
- package/app/codeCharta/ui/ribbonBar/heightSettingsPanel/heightSettingsPanel.component.ts +5 -6
- package/app/codeCharta/ui/ribbonBar/linkColorMetricToHeightMetricButton/linkColorMetricToHeightMetricButton.component.html +1 -1
- package/app/codeCharta/ui/ribbonBar/linkColorMetricToHeightMetricButton/linkColorMetricToHeightMetricButton.component.scss +2 -0
- package/app/codeCharta/ui/ribbonBar/linkColorMetricToHeightMetricButton/linkColorMetricToHeightMetricButton.component.spec.ts +4 -4
- package/app/codeCharta/ui/ribbonBar/linkColorMetricToHeightMetricButton/linkColorMetricToHeightMetricButton.component.ts +5 -4
- package/app/codeCharta/ui/ribbonBar/ribbonBar.component.html +21 -8
- package/app/codeCharta/ui/ribbonBar/ribbonBar.component.scss +18 -8
- package/app/codeCharta/ui/ribbonBar/ribbonBar.component.spec.ts +22 -23
- package/app/codeCharta/ui/ribbonBar/ribbonBar.component.ts +7 -6
- package/app/codeCharta/ui/ribbonBar/showScenariosButton/addCustomScenario/addCustomScenario.component.html +1 -1
- package/app/codeCharta/ui/ribbonBar/showScenariosButton/addCustomScenario/addCustomScenario.component.scss +9 -7
- package/app/codeCharta/ui/ribbonBar/showScenariosButton/addCustomScenario/addCustomScenario.component.spec.ts +10 -3
- package/app/codeCharta/ui/ribbonBar/showScenariosButton/addCustomScenario/addCustomScenario.component.ts +7 -10
- package/app/codeCharta/ui/ribbonBar/showScenariosButton/addCustomScenario/addCustomScenario.module.ts +1 -2
- package/app/codeCharta/ui/ribbonBar/showScenariosButton/scenario.service.ts +6 -6
- package/app/codeCharta/ui/ribbonBar/showScenariosButton/scenarios/scenarios.component.scss +2 -2
- package/app/codeCharta/ui/ribbonBar/showScenariosButton/scenarios/scenarios.component.ts +5 -4
- package/app/codeCharta/ui/ribbonBar/showScenariosButton/showScenariosButton.component.ts +5 -4
- package/app/codeCharta/ui/screenshotButton/screenshotButton.component.ts +8 -7
- package/app/codeCharta/ui/searchPanel/blacklistPanel/blacklistPanel.component.scss +2 -2
- package/app/codeCharta/ui/searchPanel/blacklistPanel/blacklistPanel.component.ts +5 -4
- package/app/codeCharta/ui/searchPanel/mapTreeView/mapTreeView.component.scss +14 -11
- package/app/codeCharta/ui/searchPanel/mapTreeView/mapTreeView.component.ts +5 -5
- package/app/codeCharta/ui/searchPanel/mapTreeView/mapTreeViewItemIcon/mapTreeViewItemIcon.component.ts +3 -2
- package/app/codeCharta/ui/searchPanel/mapTreeView/mapTreeViewItemName/mapTreeViewItemName.component.ts +4 -3
- package/app/codeCharta/ui/searchPanel/mapTreeView/mapTreeViewItemOptionButtons/mapTreeViewItemOptionButtons.component.html +2 -2
- package/app/codeCharta/ui/searchPanel/mapTreeView/mapTreeViewItemOptionButtons/mapTreeViewItemOptionButtons.component.ts +3 -2
- package/app/codeCharta/ui/searchPanel/mapTreeView/mapTreeViewLevel/mapTreeViewLevel.component.ts +4 -3
- package/app/codeCharta/ui/searchPanel/matchingFilesCounter/matchingFilesCounter.component.html +1 -1
- package/app/codeCharta/ui/searchPanel/matchingFilesCounter/matchingFilesCounter.component.scss +2 -2
- package/app/codeCharta/ui/searchPanel/matchingFilesCounter/matchingFilesCounter.component.ts +5 -4
- package/app/codeCharta/ui/searchPanel/searchBar/blacklistSearchPattern.effect.ts +1 -2
- package/app/codeCharta/ui/searchPanel/searchBar/searchBar.component.scss +0 -3
- package/app/codeCharta/ui/searchPanel/searchBar/searchBar.component.spec.ts +1 -1
- package/app/codeCharta/ui/searchPanel/searchBar/searchBar.component.ts +7 -6
- package/app/codeCharta/ui/searchPanel/searchPanel.component.html +1 -1
- package/app/codeCharta/ui/searchPanel/searchPanel.component.scss +0 -4
- package/app/codeCharta/ui/searchPanel/searchPanel.component.ts +4 -3
- package/app/codeCharta/ui/searchPanel/searchPanelModeSelector/searchPanelModeSelector.component.html +6 -20
- package/app/codeCharta/ui/searchPanel/searchPanelModeSelector/searchPanelModeSelector.component.scss +4 -6
- package/app/codeCharta/ui/searchPanel/searchPanelModeSelector/searchPanelModeSelector.component.ts +5 -4
- package/app/codeCharta/ui/searchPanel/sortingButton/sortingButton.component.ts +4 -3
- package/app/codeCharta/ui/searchPanel/sortingOption/sortingOption.component.spec.ts +1 -1
- package/app/codeCharta/ui/searchPanel/sortingOption/sortingOption.component.ts +4 -3
- package/app/codeCharta/ui/slider/slider.component.html +17 -21
- package/app/codeCharta/ui/slider/slider.component.scss +36 -19
- package/app/codeCharta/ui/slider/slider.component.spec.ts +38 -38
- package/app/codeCharta/ui/slider/slider.component.ts +8 -9
- package/app/codeCharta/ui/slider/slider.module.ts +1 -2
- package/app/codeCharta/ui/toolBar/downloadButton/downloadButton.component.spec.ts +2 -1
- package/app/codeCharta/ui/toolBar/downloadButton/downloadButton.component.ts +4 -3
- package/app/codeCharta/ui/toolBar/downloadButton/downloadButton.module.ts +1 -2
- package/app/codeCharta/ui/toolBar/downloadButton/downloadDialog/downloadDialog.component.html +1 -1
- package/app/codeCharta/ui/toolBar/downloadButton/downloadDialog/downloadDialog.component.scss +4 -5
- package/app/codeCharta/ui/toolBar/downloadButton/downloadDialog/downloadDialog.component.ts +5 -4
- package/app/codeCharta/ui/toolBar/globalConfigurationButton/globalConfigurationButton.component.html +1 -1
- package/app/codeCharta/ui/toolBar/globalConfigurationButton/globalConfigurationButton.component.scss +28 -34
- package/app/codeCharta/ui/toolBar/globalConfigurationButton/globalConfigurationButton.component.ts +5 -4
- package/app/codeCharta/ui/toolBar/globalConfigurationButton/globalConfigurationButton.module.ts +1 -2
- package/app/codeCharta/ui/toolBar/globalConfigurationButton/globalConfigurationDialog/displayQualitySelection/displayQualitySelection.component.html +1 -1
- package/app/codeCharta/ui/toolBar/globalConfigurationButton/globalConfigurationDialog/displayQualitySelection/displayQualitySelection.component.ts +4 -3
- package/app/codeCharta/ui/toolBar/globalConfigurationButton/globalConfigurationDialog/globalConfigurationDialog.component.html +26 -23
- package/app/codeCharta/ui/toolBar/globalConfigurationButton/globalConfigurationDialog/globalConfigurationDialog.component.ts +4 -3
- package/app/codeCharta/ui/toolBar/globalConfigurationButton/globalConfigurationDialog/mapLayoutSelection/mapLayoutSelection.component.html +1 -1
- package/app/codeCharta/ui/toolBar/globalConfigurationButton/globalConfigurationDialog/mapLayoutSelection/mapLayoutSelection.component.spec.ts +27 -24
- package/app/codeCharta/ui/toolBar/globalConfigurationButton/globalConfigurationDialog/mapLayoutSelection/mapLayoutSelection.component.ts +5 -4
- package/app/codeCharta/ui/toolBar/hoveredNodePathPanel/hoveredNodePathPanel.component.ts +5 -4
- package/app/codeCharta/ui/toolBar/loadingMapProgressSpinner/loadingMapProgressSpinner.component.ts +5 -4
- package/app/codeCharta/ui/toolBar/presentationModeButton/presentationModeButton.component.html +8 -11
- package/app/codeCharta/ui/toolBar/presentationModeButton/presentationModeButton.component.scss +4 -3
- package/app/codeCharta/ui/toolBar/presentationModeButton/presentationModeButton.component.spec.ts +2 -2
- package/app/codeCharta/ui/toolBar/presentationModeButton/presentationModeButton.component.ts +5 -4
- package/app/codeCharta/ui/toolBar/toolBar.component.scss +2 -4
- package/app/codeCharta/ui/toolBar/toolBar.component.ts +5 -5
- package/app/codeCharta/ui/toolBar/toolBar.module.ts +1 -2
- package/app/codeCharta/ui/toolBar/uploadFilesButton/uploadFiles.service.ts +2 -2
- package/app/codeCharta/ui/toolBar/uploadFilesButton/uploadFilesButton.component.ts +5 -4
- package/app/codeCharta/ui/viewCube/centerMapButton/centerMapButton.component.ts +5 -4
- package/app/codeCharta/ui/viewCube/viewCube.component.spec.ts +2 -2
- package/app/codeCharta/ui/viewCube/viewCube.component.ts +6 -5
- package/app/codeCharta/ui/viewCube/viewCube.mouseEvents.service.spec.ts +3 -2
- package/app/codeCharta/ui/viewCube/viewCube.mouseEvents.service.ts +6 -6
- package/app/codeCharta/util/EventEmitter.ts +22 -0
- package/app/codeCharta/util/__snapshots__/aggregationGenerator.spec.ts.snap +116 -116
- package/app/codeCharta/util/__snapshots__/deltaGenerator.spec.ts.snap +82 -82
- package/app/codeCharta/util/__snapshots__/fileHelper.spec.ts.snap +23 -23
- package/app/codeCharta/util/aggregationGenerator.spec.ts +33 -27
- package/app/codeCharta/util/aggregationGenerator.ts +4 -1
- package/app/codeCharta/util/algorithm/treeMapLayout/__snapshots__/treeMapGenerator.spec.ts.snap +137 -137
- package/app/codeCharta/util/algorithm/treeMapLayout/__snapshots__/treeMapHelper.spec.ts.snap +9 -9
- package/app/codeCharta/util/customConfigBuilder.spec.ts +11 -4
- package/app/codeCharta/util/customConfigBuilder.ts +9 -3
- package/app/codeCharta/util/customConfigHelper.ts +8 -8
- package/app/codeCharta/util/dataMocks.ts +29 -5
- package/app/codeCharta/util/debounce.spec.ts +16 -0
- package/app/codeCharta/util/debounce.ts +10 -0
- package/app/codeCharta/util/fileDownloader.ts +1 -1
- package/app/codeCharta/util/gameObjectsParser/__snapshots__/gameObjectsImporter.spec.ts.snap +37 -37
- package/app/codeCharta/util/nodeDecorator.spec.ts +14 -1
- package/app/codeCharta/util/nodeDecorator.ts +12 -12
- package/app/codeCharta/util/parseNumberInput.ts +1 -1
- package/app/codeCharta/util/reduxHelper.ts +3 -3
- package/app/codeCharta/util/simplePipes/SimplePipesModule.ts +9 -0
- package/app/codeCharta/util/simplePipes/metricDescriptorTitle.pipe.spec.ts +62 -0
- package/app/codeCharta/util/simplePipes/metricDescriptorTitle.pipe.ts +18 -0
- package/app/codeCharta/util/{removeExtension.pipe.ts → simplePipes/removeExtension.pipe.ts} +1 -1
- package/app/codeCharta/util/truncateText.pipe.ts +8 -0
- package/app/codeCharta/util/truncateText.spec.ts +19 -0
- package/app/index.html +1 -0
- package/app/material/_theme.scss +28 -17
- package/app/material/matDialog.scss +1 -1
- package/app/material/matMenu.scss +2 -2
- package/app/material/material.module.ts +5 -3
- package/app/material/material.scss +1 -6
- package/app/polyfills.ts +28 -0
- package/conf/jestE2E.config.json +1 -3
- package/conf/jestUnit.config.json +5 -17
- package/conf/webpack.config.js +19 -56
- package/dist/webpack/3rdpartylicenses.txt +1063 -0
- package/dist/webpack/codeCharta/assets/codecharta_logo.svg +1 -0
- package/dist/webpack/codeCharta/assets/empty.png +0 -0
- package/dist/webpack/codeCharta/assets/favicon.ico +0 -0
- package/dist/webpack/codeCharta/assets/gameObjectsFile.json +75 -0
- package/dist/webpack/codeCharta/assets/icon.icns +0 -0
- package/dist/webpack/codeCharta/assets/icon.ico +0 -0
- package/dist/webpack/codeCharta/assets/icon.png +0 -0
- package/dist/webpack/codeCharta/assets/output.cc.json.gz +0 -0
- package/dist/webpack/codeCharta/assets/sample1.cc.json +97 -0
- package/dist/webpack/codeCharta/assets/sample2.cc.json +46 -0
- package/dist/webpack/codeCharta/assets/sample3.cc.json +40 -0
- package/dist/webpack/codeCharta/assets/sample4.cc.json +45 -0
- package/dist/webpack/codeCharta/assets/scenarios.json +50 -0
- package/dist/webpack/index.html +7 -7
- package/dist/webpack/main.bc36f7880e897bab.js +1 -0
- package/dist/webpack/material-icons-outlined.78a93b2079680a08.woff +0 -0
- package/dist/webpack/material-icons-outlined.f86cb7b0aa53f0fe.woff2 +0 -0
- package/dist/webpack/material-icons-round.92dc7ca2f4c591e7.woff +0 -0
- package/dist/webpack/material-icons-round.b10ec9db5b7fbc74.woff2 +0 -0
- package/dist/webpack/material-icons-sharp.3885863ee4746422.woff2 +0 -0
- package/dist/webpack/material-icons-sharp.a71cb2bf66c604de.woff +0 -0
- package/dist/webpack/material-icons-two-tone.588d63134de807a7.woff +0 -0
- package/dist/webpack/material-icons-two-tone.675bd578bd14533e.woff2 +0 -0
- package/dist/webpack/material-icons.4ad034d2c499d9b6.woff +0 -0
- package/dist/webpack/material-icons.59322316b3fd6063.woff2 +0 -0
- package/dist/webpack/polyfills.d69fe4da6218c8a9.js +1 -0
- package/dist/webpack/runtime.e384ce5b1b4e5942.js +1 -0
- package/dist/webpack/styles.796849f6e33c93f5.css +4 -0
- package/package.json +33 -51
- package/tsconfig.json +25 -22
- package/app/codeCharta/state/effects/resetDynamicMargin/resetDynamicMargin.effect.spec.ts +0 -48
- package/app/codeCharta/state/effects/resetDynamicMargin/resetDynamicMargin.effect.ts +0 -19
- package/app/codeCharta/state/selectors/accumulatedData/metricData/edgeMetricData.selector.spec.ts +0 -56
- package/app/codeCharta/state/store/appSettings/dynamicMargin/dynamicMargin.actions.ts +0 -21
- package/app/codeCharta/state/store/appSettings/dynamicMargin/dynamicMargin.reducer.spec.ts +0 -17
- package/app/codeCharta/state/store/appSettings/dynamicMargin/dynamicMargin.reducer.ts +0 -16
- package/app/codeCharta/state/store/appSettings/dynamicMargin/dynamicMargin.selector.ts +0 -4
- package/app/codeCharta/ui/ribbonBar/areaSettingsPanel/areaSettingsPanel.po.ts +0 -22
- package/app/codeCharta/ui/ribbonBar/areaSettingsPanel/invertAreaOption/invertAreaOption.component.html +0 -1
- package/app/codeCharta/ui/ribbonBar/areaSettingsPanel/invertAreaOption/invertAreaOption.component.spec.ts +0 -29
- package/app/codeCharta/ui/ribbonBar/areaSettingsPanel/invertAreaOption/invertAreaOption.component.ts +0 -23
- package/app/codeCharta/ui/ribbonBar/areaSettingsPanel.po.ts +0 -19
- package/app/codeCharta/ui/ribbonBar/edgeSettingsPanel/edgeMetricToggle/edgeMetricToggle.component.scss +0 -4
- package/app/codeCharta/ui/ribbonBar/heightSettingsPanel/heightSettingsPanel.component.scss +0 -18
- package/app/codeCharta/util/envDetector.ts +0 -3
- package/app/codeCharta/util/removeExtensionModule.ts +0 -8
- package/app/codeCharta/util/testUtils/drag.ts +0 -47
- package/app/material/matSelect.scss +0 -17
- package/conf/webpack.loaders.js +0 -54
- package/dist/webpack/04411cba9583fb0df01f.woff +0 -0
- package/dist/webpack/6289913a298e816100f5.woff +0 -0
- package/dist/webpack/6b3adb7ef9c9ac8d598a.woff +0 -0
- package/dist/webpack/6c307c85ae675678f41e.woff2 +0 -0
- package/dist/webpack/a70ec3e73fd410cdb178.woff2 +0 -0
- package/dist/webpack/aa2aae2fbd0e0b30967d.woff +0 -0
- package/dist/webpack/aa80805e686668b4358c.woff2 +0 -0
- package/dist/webpack/b906db2201d314b2ee12.woff2 +0 -0
- package/dist/webpack/bundle.js +0 -3
- package/dist/webpack/bundle.js.LICENSE.txt +0 -7619
- package/dist/webpack/bundle.js.map +0 -1
- package/dist/webpack/c6c0935815f6ba8fd80a.woff2 +0 -0
- package/dist/webpack/cb25b0543db8b7f06135.woff +0 -0
- /package/app/{assets/icon.ico → codeCharta/assets/favicon.ico} +0 -0
- /package/app/{assets → codeCharta/assets}/flatten.png +0 -0
- /package/app/{assets → codeCharta/assets}/icon.icns +0 -0
- /package/{dist/webpack → app/codeCharta/assets}/icon.ico +0 -0
- /package/app/{assets → codeCharta/assets}/icon.png +0 -0
- /package/app/codeCharta/state/store/fileSettings/attributeDescriptors/{attributesDescriptors.selector.ts → attributeDescriptors.selector.ts} +0 -0
- /package/app/codeCharta/util/{removeExtension.pipe.spec.ts → simplePipes/removeExtension.pipe.spec.ts} +0 -0
- /package/dist/webpack/{af36b2ef7e54a0b53f02.png → codeCharta/assets/flatten.png} +0 -0
- /package/dist/webpack/{6bfc95354e1616904298.png → codeCharta/assets/logo.png} +0 -0
- /package/dist/webpack/{8b43027f47b20503057d.eot → fontawesome-webfont.2b13baa7dd4f54c9.eot} +0 -0
- /package/dist/webpack/{1e59d2330b4c6deb84b3.ttf → fontawesome-webfont.8a7cb27d142e3e19.ttf} +0 -0
- /package/dist/webpack/{f691f37e57f04c152e23.woff → fontawesome-webfont.cf011583fb81df9f.woff} +0 -0
- /package/dist/webpack/{c1e38fd9e0e74ba58f7a.svg → fontawesome-webfont.da909aa098b0ee2d.svg} +0 -0
- /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
|
-
|
|
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,
|
|
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
|
|
19
|
-
private
|
|
20
|
-
private HIGHLIGHT_BUILDING_DELAY =
|
|
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
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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
|
-
|
|
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 "
|
|
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
|
-
|
|
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
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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 {
|
|
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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
|
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 {
|
|
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(),
|
|
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
|
|
35
|
-
jest.mock("../../state/selectors/accumulatedData/metricData/
|
|
36
|
-
|
|
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
|
-
|
|
76
|
+
mockedMetricDataSelector.mockImplementation(() => ({
|
|
77
|
+
nodeMetricData: METRIC_DATA,
|
|
78
|
+
edgeMetricData: []
|
|
79
|
+
}))
|
|
78
80
|
}
|
|
79
81
|
|
|
80
82
|
function rebuildService() {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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 =
|
|
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 {
|
|
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:
|
|
22
|
+
controls: OrbitControlsType
|
|
23
23
|
private eventEmitter = new EventEmitter<CameraChangeEvents>()
|
|
24
24
|
|
|
25
25
|
constructor(
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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
|
|
115
|
-
this.controls = new
|
|
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 {
|
|
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:
|
|
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(
|
|
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 {
|
|
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
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
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
|
}
|