UNPKG

ngx-dynamic-dashboard

Version:
67 lines 8.7 kB
import { Facet, Tag } from './facet-model'; export class FacetTagProcessor { constructor(objectList) { this.facet_tags = []; this.objectList = objectList; } getFacetTags() { const me = this; this.objectList.forEach(function (item) { me.formatAndUpdateTagList(item.tags); }); return this.facet_tags; } formatAndUpdateTagList(items) { items.forEach(tag => { // add the first facet and tag to the facet_tag array if (!this.facet_tags.length) { this.createFacetAndAddItToTheFacetTagArray(tag); } else { let facetExists = false; this.facet_tags.forEach(facet => { if (facet.name.toLowerCase() === tag.facet.toLowerCase()) { facetExists = true; } }); if (facetExists) { this.updateFacetWithTag(tag); } else { this.createFacetAndAddItToTheFacetTagArray(tag); } } }); } createFacetAndAddItToTheFacetTagArray(tag) { const _tags = []; const _tag = this.createTag(this.capitalize(tag.name)); _tags.push(_tag); const facet = new Facet(tag.facet, _tags); this.facet_tags.push(facet); } createTag(tag) { return new Tag(tag); } updateFacetWithTag(tag) { // find the facet and then add the tag or update the count this.facet_tags.forEach(facet => { if (facet.name.toLowerCase() === tag.facet.toLowerCase()) { let tagExists = false; facet.tags.forEach(_tag => { if (_tag.name.toLowerCase() === tag.name.toLowerCase()) { tagExists = true; _tag.count = _tag.count + 1; } }); if (!tagExists) { facet.tags.push(this.createTag(this.capitalize(tag.name))); } } }); } capitalize(value) { return value.charAt(0).toUpperCase() + value.slice(1).toLowerCase(); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjZXQtdGFnLXByb2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvYmVubGkvd29ya3NwYWNlcy9uZ3gtZHluYW1pYy1kYXNoYm9hcmQtZnJhbWV3b3JrL3Byb2plY3RzL25neC1keW5hbWljLWRhc2hib2FyZC9zcmMvIiwic291cmNlcyI6WyJkYXNoYm9hcmQvZmFjZXQvZmFjZXQtdGFnLXByb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsS0FBSyxFQUFFLEdBQUcsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxNQUFNLE9BQU8saUJBQWlCO0lBSzFCLFlBQVksVUFBaUI7UUFIN0IsZUFBVSxHQUFpQixFQUFFLENBQUM7UUFJMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDakMsQ0FBQztJQUVELFlBQVk7UUFFUixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJO1lBRWxDLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFekMsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUVELHNCQUFzQixDQUFDLEtBQVk7UUFFL0IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUVoQixxREFBcUQ7WUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO2dCQUV6QixJQUFJLENBQUMscUNBQXFDLENBQUMsR0FBRyxDQUFDLENBQUM7YUFFbkQ7aUJBQU07Z0JBRUgsSUFBSSxXQUFXLEdBQUcsS0FBSyxDQUFDO2dCQUV4QixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFFNUIsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLEVBQUU7d0JBQ3RELFdBQVcsR0FBRyxJQUFJLENBQUM7cUJBQ3RCO2dCQUNMLENBQUMsQ0FBQyxDQUFDO2dCQUVILElBQUksV0FBVyxFQUFFO29CQUViLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFFaEM7cUJBQU07b0JBRUgsSUFBSSxDQUFDLHFDQUFxQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUVuRDthQUNKO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQscUNBQXFDLENBQUMsR0FBUTtRQUUxQyxNQUFNLEtBQUssR0FBZSxFQUFFLENBQUM7UUFDN0IsTUFBTSxJQUFJLEdBQVEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRTVELEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFakIsTUFBTSxLQUFLLEdBQVUsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUVqRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVoQyxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQUc7UUFFVCxPQUFPLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxHQUFRO1FBRXZCLDBEQUEwRDtRQUMxRCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUU1QixJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRTtnQkFHdEQsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO2dCQUd0QixLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFFdEIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUU7d0JBRXBELFNBQVMsR0FBRyxJQUFJLENBQUM7d0JBRWpCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7cUJBRS9CO2dCQUVMLENBQUMsQ0FBQyxDQUFDO2dCQUVILElBQUksQ0FBQyxTQUFTLEVBQUU7b0JBRVosS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQzlEO2FBQ0o7UUFFTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBYTtRQUNwQixPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4RSxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0ZhY2V0LCBUYWd9IGZyb20gJy4vZmFjZXQtbW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgRmFjZXRUYWdQcm9jZXNzb3Ige1xuXG4gICAgZmFjZXRfdGFnczogQXJyYXk8RmFjZXQ+ID0gW107XG4gICAgb2JqZWN0TGlzdDogYW55W107XG5cbiAgICBjb25zdHJ1Y3RvcihvYmplY3RMaXN0OiBhbnlbXSkge1xuICAgICAgICB0aGlzLm9iamVjdExpc3QgPSBvYmplY3RMaXN0O1xuICAgIH1cblxuICAgIGdldEZhY2V0VGFncygpIHtcblxuICAgICAgICBjb25zdCBtZSA9IHRoaXM7XG4gICAgICAgIHRoaXMub2JqZWN0TGlzdC5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7XG5cbiAgICAgICAgICAgIG1lLmZvcm1hdEFuZFVwZGF0ZVRhZ0xpc3QoaXRlbS50YWdzKTtcblxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcy5mYWNldF90YWdzO1xuICAgIH1cblxuICAgIGZvcm1hdEFuZFVwZGF0ZVRhZ0xpc3QoaXRlbXM6IGFueVtdKSB7XG5cbiAgICAgICAgaXRlbXMuZm9yRWFjaCh0YWcgPT4ge1xuXG4gICAgICAgICAgICAvLyBhZGQgdGhlIGZpcnN0IGZhY2V0IGFuZCB0YWcgdG8gdGhlIGZhY2V0X3RhZyBhcnJheVxuICAgICAgICAgICAgaWYgKCF0aGlzLmZhY2V0X3RhZ3MubGVuZ3RoKSB7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUZhY2V0QW5kQWRkSXRUb1RoZUZhY2V0VGFnQXJyYXkodGFnKTtcblxuICAgICAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgICAgICAgIGxldCBmYWNldEV4aXN0cyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5mYWNldF90YWdzLmZvckVhY2goZmFjZXQgPT4ge1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChmYWNldC5uYW1lLnRvTG93ZXJDYXNlKCkgPT09IHRhZy5mYWNldC50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmYWNldEV4aXN0cyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGlmIChmYWNldEV4aXN0cykge1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlRmFjZXRXaXRoVGFnKHRhZyk7XG5cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlRmFjZXRBbmRBZGRJdFRvVGhlRmFjZXRUYWdBcnJheSh0YWcpO1xuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjcmVhdGVGYWNldEFuZEFkZEl0VG9UaGVGYWNldFRhZ0FycmF5KHRhZzogYW55KSB7XG5cbiAgICAgICAgY29uc3QgX3RhZ3M6IEFycmF5PFRhZz4gPSBbXTtcbiAgICAgICAgY29uc3QgX3RhZzogVGFnID0gdGhpcy5jcmVhdGVUYWcodGhpcy5jYXBpdGFsaXplKHRhZy5uYW1lKSk7XG5cbiAgICAgICAgX3RhZ3MucHVzaChfdGFnKTtcblxuICAgICAgICBjb25zdCBmYWNldDogRmFjZXQgPSBuZXcgRmFjZXQodGFnLmZhY2V0LCBfdGFncyk7XG5cbiAgICAgICAgdGhpcy5mYWNldF90YWdzLnB1c2goZmFjZXQpO1xuXG4gICAgfVxuXG4gICAgY3JlYXRlVGFnKHRhZykge1xuXG4gICAgICAgIHJldHVybiBuZXcgVGFnKHRhZyk7XG4gICAgfVxuXG4gICAgdXBkYXRlRmFjZXRXaXRoVGFnKHRhZzogYW55KSB7XG5cbiAgICAgICAgLy8gZmluZCB0aGUgZmFjZXQgYW5kIHRoZW4gYWRkIHRoZSB0YWcgb3IgdXBkYXRlIHRoZSBjb3VudFxuICAgICAgICB0aGlzLmZhY2V0X3RhZ3MuZm9yRWFjaChmYWNldCA9PiB7XG5cbiAgICAgICAgICAgIGlmIChmYWNldC5uYW1lLnRvTG93ZXJDYXNlKCkgPT09IHRhZy5mYWNldC50b0xvd2VyQ2FzZSgpKSB7XG5cblxuICAgICAgICAgICAgICAgIGxldCB0YWdFeGlzdHMgPSBmYWxzZTtcblxuXG4gICAgICAgICAgICAgICAgZmFjZXQudGFncy5mb3JFYWNoKF90YWcgPT4ge1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChfdGFnLm5hbWUudG9Mb3dlckNhc2UoKSA9PT0gdGFnLm5hbWUudG9Mb3dlckNhc2UoKSkge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWdFeGlzdHMgPSB0cnVlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBfdGFnLmNvdW50ID0gX3RhZy5jb3VudCArIDE7XG5cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIXRhZ0V4aXN0cykge1xuXG4gICAgICAgICAgICAgICAgICAgIGZhY2V0LnRhZ3MucHVzaCh0aGlzLmNyZWF0ZVRhZyh0aGlzLmNhcGl0YWxpemUodGFnLm5hbWUpKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNhcGl0YWxpemUodmFsdWU6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gdmFsdWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB2YWx1ZS5zbGljZSgxKS50b0xvd2VyQ2FzZSgpO1xuICAgIH1cbn1cbiJdfQ==