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 | 102x 102x 102x 102x 2x 2x 102x 147x 93x 54x 47x 7x 4x 3x 5x 3x 3x 4x 3x 3x 3x 3x 2x 2x 1x 3x 102x 102x | import { FileSelectionState, FileState } from "../../../model/files/files"
import { createSelectorFactory, defaultMemoize } from "@ngrx/store"
import { filesSelector } from "../../store/files/files.selector"
import { getVisibleFileStates, isDeltaState } from "../../../model/files/files.helper"
function removeMatch(array: string[], target: string): string[] {
const matchIndex = array.indexOf(target)
return [...array.slice(0, matchIndex), ...array.slice(matchIndex + 1)]
}
export function onlyVisibleFilesMatterComparer(fileStates1: FileState[], fileStates2: FileState[]): boolean {
if (fileStates1 === fileStates2) {
return true
}
if (fileStates1.length === 0 && fileStates2.length === 0) {
return true
}
if (isDeltaState(fileStates1) !== isDeltaState(fileStates2)) {
return false
}
const visibleFileStates1 = fileStates1
.filter(file => file.selectedAs !== FileSelectionState.None)
.map(file => file.file.fileMeta.fileName)
let visibleFileStates2 = fileStates2
.filter(file => file.selectedAs !== FileSelectionState.None)
.map(file => file.file.fileMeta.fileName)
Iif (visibleFileStates1.length !== visibleFileStates2.length) {
return false
}
function reduceToDetermineIfArraysContainSameContents(previousCallResult: boolean, arrayMember: any): boolean {
Iif (previousCallResult === false) {
return false
}
if (visibleFileStates2.includes(arrayMember)) {
visibleFileStates2 = removeMatch(visibleFileStates2, arrayMember)
return true
}
return false
}
return visibleFileStates1.reduce(reduceToDetermineIfArraysContainSameContents, true)
}
export const visibleFileStatesSelector = createSelectorFactory(projection =>
defaultMemoize(projection, onlyVisibleFilesMatterComparer, onlyVisibleFilesMatterComparer)
)(filesSelector, getVisibleFileStates)
|