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
}
}