Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | 82x 82x 82x 82x 82x 82x 82x 82x 82x 82x 82x 82x 82x 82x 19x 19x 82x 4x 2x 2x 2x 2x 1x 1x | import { CodeMapNode, FileMeta } from "../../../codeCharta.model" import { FileState } from "../../../model/files/files" import { fileStatesAvailable, isDeltaState, isPartialState } from "../../../model/files/files.helper" import { AggregationGenerator } from "../../../util/aggregationGenerator" import { NodeDecorator } from "../../../util/nodeDecorator" import { metricNamesSelector } from "./metricData/metricNames.selector" import { getDeltaFile } from "./utils/getDeltaFile" import { addEdgeMetricsForLeaves } from "./utils/addEdgeMetricsForLeaves" import { blacklistSelector } from "../../store/fileSettings/blacklist/blacklist.selector" import { attributeTypesSelector } from "../../store/fileSettings/attributeTypes/attributeTypes.selector" import { visibleFileStatesSelector } from "../visibleFileStates/visibleFileStates.selector" import { metricDataSelector } from "./metricData/metricData.selector" import { createSelector } from "@ngrx/store" import { clone } from "../../../util/clone" const accumulatedDataFallback: AccumulatedData = Object.freeze({ unifiedMapNode: undefined, unifiedFileMeta: undefined }) export type AccumulatedData = { unifiedMapNode: CodeMapNode | undefined; unifiedFileMeta: FileMeta | undefined } export const accumulatedDataSelector = createSelector( metricDataSelector, visibleFileStatesSelector, attributeTypesSelector, blacklistSelector, metricNamesSelector, (metricData, fileStates, attributeTypes, blacklist, metricNames) => { if (!fileStatesAvailable(fileStates) || !metricData.nodeMetricData) { return accumulatedDataFallback } const data = _getUndecoratedAccumulatedData(clone(fileStates)) Iif (!data?.map) { return accumulatedDataFallback } NodeDecorator.decorateMap(data.map, metricData, blacklist) addEdgeMetricsForLeaves(metricData.nodeEdgeMetricsMap, data.map, metricNames) NodeDecorator.decorateParentNodesWithAggregatedAttributes(data.map, isDeltaState(fileStates), attributeTypes) return { unifiedMapNode: data.map, unifiedFileMeta: data.fileMeta } } ) export const _getUndecoratedAccumulatedData = (fileStates: FileState[]) => { if (isPartialState(fileStates)) { return AggregationGenerator.calculateAggregationFile(fileStates) } if (isDeltaState(fileStates)) { const [reference, comparison] = fileStates if (comparison && reference.file.map.name !== comparison.file.map.name) { return AggregationGenerator.calculateAggregationFile(fileStates) } return getDeltaFile(fileStates) } } |