fabric8-planner
Version:
A planner front-end for Fabric8.
171 lines • 6.89 kB
JavaScript
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