UNPKG

fabric8-planner

Version:
171 lines 6.89 kB
var __assign = (this && this.__assign) || Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; import { Injectable } from '@angular/core'; // MemoizedSelector is needed even if it's not being used in this file // Else you get this error // Exported variable 'plannerSelector' has or is using name 'MemoizedSelector' // from external module "@ngrx/store/src/selector" but cannot be named. import { createFeatureSelector, createSelector, select, Store } from '@ngrx/store'; import { filter, map, switchMap, tap } from 'rxjs/operators'; import { AND, EQUAL } from '../services/query-keys'; import * as WorkItemActions from './../actions/work-item.actions'; import { FilterService } from './../services/filter.service'; import { switchModel } from './common.model'; import { SpaceQuery } from './space'; import { WorkItemQuery } from './work-item'; var BoardModelData = /** @class */ (function () { function BoardModelData() { } return BoardModelData; }()); export { BoardModelData }; var BoardModel = /** @class */ (function () { function BoardModel() { } return BoardModel; }()); export { BoardModel }; var BoardModelUI = /** @class */ (function () { function BoardModelUI() { } return BoardModelUI; }()); export { BoardModelUI }; var BoardMapper = /** @class */ (function () { function BoardMapper() { this.serviceToUiMapTree = [{ fromPath: ['id'], toPath: ['id'] }, { fromPath: ['attributes', 'name'], toPath: ['name'] }, { fromPath: ['attributes', 'description'], toPath: ['description'] }, { fromPath: ['attributes', 'contextType'], toPath: ['contextType'] }, { fromPath: ['attributes', 'context'], toPath: ['context'] }, { fromPath: ['relationships', 'columns', 'data'], toPath: ['columns'], toFunction: function (data) { return Array.isArray(data) ? data.map(function (col) { return { id: col.id, title: col.attributes.name, columnOrder: col.attributes.order, type: col.type }; }) : []; } }]; this.uiToServiceMapTree = []; } BoardMapper.prototype.toUIModel = function (arg) { return switchModel(arg, this.serviceToUiMapTree); }; BoardMapper.prototype.toServiceModel = function (arg) { return {}; }; return BoardMapper; }()); export { BoardMapper }; export var boardSelector = createFeatureSelector('boardView'); export var boardsEntitySelector = createSelector(boardSelector, function (state) { return state ? state.boards : {}; }); var BoardQuery = /** @class */ (function () { function BoardQuery(store, columnWorkItemQuery, spaceQuery, filterService) { this.store = store; this.columnWorkItemQuery = columnWorkItemQuery; this.spaceQuery = spaceQuery; this.filterService = filterService; this.boardSource = this.store.select(boardsEntitySelector); } BoardQuery.prototype.getBoardById = function (id, iterationID) { var _this = this; if (iterationID === void 0) { iterationID = ''; } return this.boardSource.pipe(select(function (boards) { return boards[id]; }), filter(function (board) { return !!board; }), tap(function (board) { var boardQuery = _this.filterService.queryBuilder('board.id', EQUAL, board.id); var finalQuery = _this.filterService.queryJoiner({}, AND, boardQuery); if (iterationID !== '') { var iterationQuery = _this.filterService.queryBuilder('iteration', EQUAL, iterationID); finalQuery = _this.filterService.queryJoiner(finalQuery, AND, iterationQuery); } _this.store.dispatch(new WorkItemActions.Get({ pageSize: 200, filters: finalQuery, isShowTree: false })); }), map(function (board) { return __assign({}, board, { columns: board.columns .map(function (col) { return __assign({}, col, { workItems: _this.columnWorkItemQuery.getWorkItemsByColumnId(col.id) }); }) }); })); }; BoardQuery.decorators = [ { type: Injectable }, ]; /** @nocollapse */ BoardQuery.ctorParameters = function () { return [ { type: Store, }, { type: ColumnWorkItemQuery, }, { type: SpaceQuery, }, { type: FilterService, }, ]; }; return BoardQuery; }()); export { BoardQuery }; var ColumnWorkItemQuery = /** @class */ (function () { function ColumnWorkItemQuery(store, workItemQuery) { this.store = store; this.workItemQuery = workItemQuery; this.columnWorkitems = createSelector(boardSelector, function (state) { return state ? state.columnWorkItem : {}; }); this.columnWorkitemSource = this.store.pipe(select(this.columnWorkitems)); } ColumnWorkItemQuery.prototype.getWorkItemsByColumnId = function (id) { var _this = this; return this.columnWorkitemSource.pipe(select(function (state) { return state[id]; }), map(function (items) { return items || []; }), switchMap(function (ids) { return _this.workItemQuery.getWorkItemsByIds(ids); })); }; ColumnWorkItemQuery.decorators = [ { type: Injectable }, ]; /** @nocollapse */ ColumnWorkItemQuery.ctorParameters = function () { return [ { type: Store, }, { type: WorkItemQuery, }, ]; }; return ColumnWorkItemQuery; }()); export { ColumnWorkItemQuery }; var BoardUIQuery = /** @class */ (function () { function BoardUIQuery(store) { this.store = store; this.boardUiSelector = createSelector(boardSelector, function (state) { return state.boardUi; }); } Object.defineProperty(BoardUIQuery.prototype, "boardLocked", { get: function () { return this.store.pipe(select(this.boardUiSelector), select(function (state) { return state.lockBoard; }), filter(function (l) { return !!l; })); }, enumerable: true, configurable: true }); BoardUIQuery.decorators = [ { type: Injectable }, ]; /** @nocollapse */ BoardUIQuery.ctorParameters = function () { return [ { type: Store, }, ]; }; return BoardUIQuery; }()); export { BoardUIQuery }; //# sourceMappingURL=board.model.js.map