fabric8-planner
Version:
A planner front-end for Fabric8.
227 lines (226 loc) • 7.31 kB
TypeScript
import { EntityState } from '@ngrx/entity';
import { MemoizedSelector, Store } from '@ngrx/store';
import { Observable } from 'rxjs';
import { AppState, DetailPageState } from './../states/app.state';
import { AreaModel, AreaQuery, AreaUI } from './area.model';
import { Comment, CommentUI } from './comment';
import { CommonSelectorUI, Mapper, MapTree, modelService } from './common.model';
import { IterationModel, IterationQuery, IterationUI } from './iteration.model';
import { LabelMapper, LabelModel, LabelQuery, LabelUI } from './label.model';
import { Link } from './link';
import { UserQuery, UserService, UserUI } from './user';
import { WorkItemType, WorkItemTypeMapper, WorkItemTypeQuery, WorkItemTypeUI } from './work-item-type';
export declare class WorkItem extends modelService {
hasChildren?: boolean;
attributes: object;
number?: number;
relationships?: WorkItemRelations;
relationalData?: RelationalData;
links?: {
self: string;
};
}
export declare class WorkItemRelations {
area?: {
data?: AreaModel;
};
assignees?: {
data?: UserService[];
};
labels?: {
data?: LabelModel[];
links?: {
related?: string;
};
};
baseType?: {
data: WorkItemType;
};
parent?: {
data?: WorkItem;
};
children?: {
links: {
related: string;
};
meta: {
hasChildren: boolean;
};
};
events?: {
links?: {
related?: string;
};
};
comments?: {
data?: Comment[];
links: {
self?: string;
related?: string;
};
meta?: {
totalCount?: number;
};
};
creator?: {
data: UserService;
};
iteration?: {
data?: IterationModel;
};
codebase?: {
links: {
meta: {
edit: string;
};
};
};
workItemLinks?: {
links?: {
related?: string;
};
};
}
export declare class RelationalData {
area?: AreaModel;
creator?: UserService;
comments?: Comment[];
parent?: WorkItem;
assignees?: UserService[];
labels?: LabelModel[];
linkDicts?: LinkDict[];
iteration?: IterationModel;
totalLinkCount?: number;
wiType?: WorkItemType;
}
export declare class LinkDict {
linkName: any;
links: Link[];
count: number;
}
export interface WorkItemService extends WorkItem {
}
export interface WorkItemUI {
id: string;
title: string;
number: string | number;
createdAt: string;
updatedAt: string;
state: string;
descriptionMarkup: string;
descriptionRendered: string;
description: string | {
content: string;
markup: 'Markdown';
rendered?: string;
};
version: number;
order: number;
dynamicfields?: any;
areaId: string;
areaObs?: Observable<AreaUI>;
iterationId: string;
iterationObs?: Observable<IterationUI>;
assignees: string[];
assigneesObs?: Observable<UserUI[]>;
creator: string;
creatorObs?: Observable<UserUI>;
type: string;
typeObs?: Observable<WorkItemTypeUI>;
labels: string[];
labelsObs?: Observable<LabelUI[]>;
comments?: CommentUI[];
children?: WorkItemUI[];
commentLink: string;
childrenLink: string;
eventLink: string;
hasChildren: boolean;
parentID: string;
link: string;
WILinkUrl: string;
columnIds?: string[] | null;
treeStatus: 'collapsed' | 'expanded' | 'disabled' | 'loading';
childrenLoaded: boolean;
bold: boolean;
createId?: number;
selected: boolean;
editable?: boolean;
}
export interface WorkItemStateModel extends EntityState<WorkItemUI> {
nextLink: string;
}
export declare class WorkItemMapper implements Mapper<WorkItemService, WorkItemUI> {
wiTypeMapper: WorkItemTypeMapper;
labelMapper: LabelMapper;
serviceToUiMapTree: MapTree;
uiToServiceMapTree: MapTree;
toDynamicUIModel(arg: WorkItemService, dynamicFields: any): any;
toDyanmicServiceModel(arg: WorkItemUI, dynamicFields: any): any;
toUIModel(arg: WorkItemService): WorkItemUI;
toServiceModel(arg: WorkItemUI): WorkItemService;
cleanModel(arg: WorkItemService, keysToRemove?: string[]): any;
}
export declare const workItemSelector: MemoizedSelector<object, WorkItemStateModel | {
entities: {};
ids: any[];
}>;
export declare const getAllWorkItemSelector: MemoizedSelector<object, WorkItemUI[]>;
export declare const workItemDetailSelector: MemoizedSelector<object, DetailPageState>;
export declare const workItemInDetailSelector: MemoizedSelector<object, WorkItemUI>;
export declare class WorkItemQuery {
private store;
private userQuery;
private iterationQuery;
private areaQuery;
private labelQuery;
private workItemTypeQuery;
constructor(store: Store<AppState>, userQuery: UserQuery, iterationQuery: IterationQuery, areaQuery: AreaQuery, labelQuery: LabelQuery, workItemTypeQuery: WorkItemTypeQuery);
private workItemSource;
resolveWorkItem(workItem: WorkItemUI): WorkItemUI;
getWorkItems(): Observable<WorkItemUI[]>;
getWorkItem(number: string | number): Observable<WorkItemUI>;
/**
* @description set property workItem.editable: true
* IF loggedInUser is a Collaborator or creator of WorkItem
* @param WorkItemUI || @param WorkItemUI[]
* @return Observable<WorkItemUI> || @return Observable<WorkItemUI[]>
*/
setWorkItemsEditable(workItems: WorkItemUI | WorkItemUI[]): Observable<WorkItemUI | WorkItemUI[]>;
/**
* This function returns an observable for the the selector component
* with iteration data and the selected iteration flagged
* This data can be used in work item detail page for the
* iteration selector dropdown.
* @param number
*/
getIterationsForWorkItem(number: string | number): Observable<CommonSelectorUI[]>;
/**
* This function returns an observable for the the selector component
* with area data and the selected area flagged
* This data can be used in work item detail page for the
* area selector dropdown.
* @param number
*/
getAreasForWorkItem(number: string | number): Observable<CommonSelectorUI[]>;
/**
* This function returns an observable for the the selector component
* with work item type data and the selected iteration flagged
* This data can be used in work item detail page for the
* work item type selector dropdown.
* @param number
*/
getTypesForWorkItem(number: string | number): Observable<CommonSelectorUI[]>;
/**
* This function returns an observable for the the selector component
* with work item state data and the selected iteration flagged
* This data can be used in work item detail page for the
* work item states selector dropdown.
* @param number
*/
getStatesForWorkItem(number: string | number): Observable<CommonSelectorUI[]>;
readonly getWorkItemEntities: Observable<{
[id: string]: WorkItemUI;
}>;
getWorkItemsByIds(ids: string[]): Observable<WorkItemUI[]>;
getWorkItemWithId(id: string): Observable<WorkItemUI>;
}