fabric8-planner
Version:
A planner front-end for Fabric8.
74 lines • 3.04 kB
JavaScript
import { Component, EventEmitter, Input, Output } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { cloneDeep } from 'lodash';
import { AND, EQUAL } from '../../services/query-keys';
import { FilterService } from './../../services/filter.service';
var LabelsComponent = /** @class */ (function () {
function LabelsComponent(route, filterService) {
this.route = route;
this.filterService = filterService;
this._labels = [];
this.context = '';
this.onLabelClick = new EventEmitter();
this.onRemoveLabel = new EventEmitter();
this.labels = [];
this.showMore = false;
}
Object.defineProperty(LabelsComponent.prototype, "labelInput", {
set: function (labels) {
this._labels = labels.filter(function (label) {
return label.backgroundColor &&
label.textColor;
});
},
enumerable: true,
configurable: true
});
LabelsComponent.prototype.moreClick = function (event) {
event.stopPropagation();
};
LabelsComponent.prototype.clickLabel = function (label, event) {
event.stopPropagation();
this.onLabelClick.emit(label);
};
LabelsComponent.prototype.removeLabel = function (label, event) {
event.stopPropagation();
this.onRemoveLabel.emit(label);
};
LabelsComponent.prototype.constructQueryExpression = function (labelId) {
this.queryParams = cloneDeep(this.route.snapshot.queryParams);
var showTree = this.queryParams.hasOwnProperty('showTree');
var showCompleted = this.queryParams.hasOwnProperty('showCompleted');
var newQuery = this.filterService.queryBuilder('label', EQUAL, labelId);
var existingQuery = {};
if (this.queryParams.hasOwnProperty('q')) {
existingQuery = this.filterService.queryToJson(this.queryParams['q']);
}
var finalQuery = this.filterService.jsonToQuery(this.filterService.queryJoiner(existingQuery, AND, newQuery));
this.queryParams['q'] = finalQuery;
return this.queryParams;
};
LabelsComponent.decorators = [
{ type: Component, args: [{
selector: 'f8-label',
template: require('./labels.component.html'),
styles: [require('./labels.component.css').toString()]
},] },
];
/** @nocollapse */
LabelsComponent.ctorParameters = function () { return [
{ type: ActivatedRoute, },
{ type: FilterService, },
]; };
LabelsComponent.propDecorators = {
'labelInput': [{ type: Input, args: ['labels',] },],
'truncateAfter': [{ type: Input },],
'allowDelete': [{ type: Input },],
'context': [{ type: Input },],
'onLabelClick': [{ type: Output },],
'onRemoveLabel': [{ type: Output },],
};
return LabelsComponent;
}());
export { LabelsComponent };
//# sourceMappingURL=labels.component.js.map