export function getEpicRoadmapGridView()

in src/EpicRoadmap/redux/selectors/EpicRoadmapGridViewSelector.ts [42:135]


export function getEpicRoadmapGridView(
    workItemDisplayDetails: IWorkItemDisplayDetails[],
    backlogIteration: TeamSettingsIteration,
    teamIterations: TeamSettingsIteration[],
    iterationDisplayOptions: IIterationDisplayOptions,
    backlogConfiguration: BacklogConfiguration,
    settingsState: ISettingsState,
    uiStatus: UIStatus,
    isSubGrid: boolean,
    workItemOverrideIteration: IWorkItemOverrideIteration
): IEpicRoadmapGridView {
    if (uiStatus !== UIStatus.Default && uiStatus !== UIStatus.OutofScopeTeamIterations) {
        return {
            teamFieldDisplayItems: [],
            workItems: [],
            isSubGrid,
            shadowForWorkItemId: 0,
            hideParents: false,
            iterationDisplayOptions,
            teamIterations: [],
            backlogIteration: null,
            emptyHeaderRow: [],
            iterationHeader: [],
            iterationShadow: [],
            currentIterationIndex: -1,
            teamFieldHeaderItem: null,
            separators: []
        };
    }

    const {
        backlogFields: {
            typeFields
        }
    } = backlogConfiguration;

    const {
        progressTrackingCriteria
    } = settingsState;

    const teamFieldName = typeFields["Team"] || "System.AreaPath";
    if (isSubGrid) {
        iterationDisplayOptions = null;
    }

    const displayIterations: TeamSettingsIteration[] = getDisplayIterations(
        backlogIteration,
        teamIterations,
        workItemDisplayDetails,
        /* includeBacklogIteration */ true,
        iterationDisplayOptions);

    const { gridWorkItems, teamFieldDisplayItems, separators } =
        _getGridItems(
            isSubGrid,
            workItemDisplayDetails,
            teamFieldName,
            teamIterations,
            displayIterations,
            iterationDisplayOptions,
            backlogIteration,
            settingsState,
            progressTrackingCriteria);

    const {
        emptyHeaderRow,
        iterationHeader,
        iterationShadow
    } = getIterationDisplayDetails(gridWorkItems, displayIterations, /*hideParents*/ false);

    const currentIterationIndex = getCurrentIterationIndex(teamIterations);
    return {
        workItems: gridWorkItems,
        teamFieldDisplayItems,
        isSubGrid: false,
        shadowForWorkItemId: workItemOverrideIteration && workItemOverrideIteration.workItemId,
        hideParents: false,
        iterationDisplayOptions,
        teamIterations,
        backlogIteration,
        iterationHeader,
        iterationShadow,
        emptyHeaderRow,
        currentIterationIndex,
        teamFieldHeaderItem: {
            startCol: 1,
            startRow: 2,
            endCol: 2,
            endRow: 3
        },
        separators
    }

}