All files / app/codeCharta/ui/customConfigs visibleFilesBySelectionMode.selector.ts

100% Statements 12/12
100% Branches 2/2
100% Functions 1/1
100% Lines 11/11

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 2113x 13x 13x 13x       13x 6x   6x 4x   4x     6x     13x  
import { visibleFileStatesSelector } from "../../state/selectors/visibleFileStates/visibleFileStates.selector"
import { CustomConfig, CustomConfigMapSelectionMode, MapNamesByChecksum } from "../../model/customConfig/customConfig.api.model"
import { FileSelectionState, FileState } from "../../model/files/files"
import { createSelector } from "@ngrx/store"
 
export type VisibleFilesBySelectionMode = Pick<CustomConfig, "mapSelectionMode" | "assignedMaps">
 
export const _getVisibleFilesBySelectionMode = (fileStates: FileState[]): VisibleFilesBySelectionMode => {
    const assignedMaps: MapNamesByChecksum = new Map()
    let mapSelectionMode: CustomConfigMapSelectionMode
    for (const { selectedAs, file } of fileStates) {
        mapSelectionMode =
            selectedAs === FileSelectionState.Partial ? CustomConfigMapSelectionMode.MULTIPLE : CustomConfigMapSelectionMode.DELTA
        assignedMaps.set(file.fileMeta.fileChecksum, file.fileMeta.fileName)
    }
 
    return { mapSelectionMode, assignedMaps }
}
 
export const visibleFilesBySelectionModeSelector = createSelector(visibleFileStatesSelector, _getVisibleFilesBySelectionMode)