UNPKG

fabric8-analytics-dependency-editor-jyas

Version:
373 lines 15.3 kB
import { Component, Input, ViewEncapsulation, ViewChild } from '@angular/core'; import { DependencyEditorService } from '../shared/dependency-editor.service'; import { ErrorMessageHandler } from '../shared/error-message-handler'; import { DependencySnapshot } from '../utils/dependency-snapshot'; var AddDependencyComponent = /** @class */ (function () { function AddDependencyComponent(service, errorMessageHandler) { this.service = service; this.errorMessageHandler = errorMessageHandler; this.dependencySearchResult = []; this.isLoading = false; this.categorySearchResult = []; this.categoryResult = []; this.tagZero = 0; this.searchKey = ''; this.suggestions = []; this.dependenciesData = []; this.masterTags = []; this.selectedTags = new Set(); this.categories = []; this.cveName = []; this.noOfTags = 0; this.saveTagname = []; this.type = false; this.tags = []; this.toast = false; this.categoriesStore = []; this.addDependencySubscription = null; } AddDependencyComponent.prototype.ngOnInit = function () { this.masterTags = []; }; AddDependencyComponent.prototype.ngOnChanges = function (changes) { if (changes && changes['boosterInfo'] && changes['boosterInfo']['currentValue']) { this.resetValues(); this.getCategories(); } if (changes && changes['existDependencies'] && changes['existDependencies']['currentValue']) { this.masterTags = []; this.addedTags(); } }; AddDependencyComponent.prototype.resetValues = function () { this.categoryResult = []; this.masterTags = []; }; AddDependencyComponent.prototype.getDependencies = function () { var _this = this; if (!this.dependencySearchString) { return; } this.isLoading = true; if (this.addDependencySubscription) { this.addDependencySubscription.unsubscribe(); } this.addDependencySubscription = this.service.getDependencies(this.dependencySearchString) .subscribe(function (response) { _this.dependencySearchResult = response['result']; _this.isLoading = false; }, function (error) { _this.errorComponentSearch = _this.errorMessageHandler.getErrorMessage(error.status); _this.isLoading = false; console.log('error component search - ', _this.errorComponentSearch); }); }; /** * * @param packages [Array<any>] * @returns count [number] * * This function checks for the packages and ignores if they are the part of core dependencies */ AddDependencyComponent.prototype.getPackageCount = function (packages) { var _this = this; return packages && packages.filter(function (p) { return !_this.isACoreDependency(p.name); }).length || 0; }; AddDependencyComponent.prototype.handleModalCategories = function (categories) { if (!categories) return; this.categorySearchResult = categories; this.isLoading = false; if (this.categoryResult.length === 0) { this.categoriesStore.push({ isOpened: true }); for (var key in this.categorySearchResult) { if (this.categorySearchResult.hasOwnProperty(key)) { this.categoryResult.push(this.categorySearchResult[key]); this.categoriesStore.push({ isOpened: false }); } } } if (this.masterTags.length === 0) { var p = this.getCategoryPayload(this.categoryResult); this.getCategoriesSecurity(p); } if (this.existDependencies) { this.addedTags(); } }; AddDependencyComponent.prototype.getCategories = function () { var _this = this; if (this.boosterInfo) { this.isLoading = true; var runtime = ''; if (this.boosterInfo.runtime.id === 'vert.x') { runtime = 'vertx'; } else if (this.boosterInfo.runtime.id === 'spring-boot') { runtime = 'springboot'; } else if (this.boosterInfo.runtime.id === 'wildfly-swarm') { runtime = 'wildflyswarm'; } this.service.getCategories(runtime) .subscribe(function (response) { _this.handleModalCategories(response['categories']); }, function (error) { // Handle server errors here _this.isLoading = false; _this.errorCategories = _this.errorMessageHandler.getErrorMessage(error.status); console.log('error categories - ', _this.errorCategories); }); } }; AddDependencyComponent.prototype.resetCategoryStore = function (fromIndex) { for (var i = fromIndex; i < this.categoriesStore.length; ++i) { if (this.categoriesStore[i].isOpened) { this.categoriesStore[i].isOpened = false; } } }; AddDependencyComponent.prototype.getCategoryPayload = function (categoryResult) { var payload = {}; var j = 0; var category = []; categoryResult.forEach(function (i) { i.packages.forEach(function (k) { category.push({ 'package': k.name, 'version': k.version }); }); }); payload['_resolved'] = category; payload['ecosystem'] = DependencySnapshot.ECOSYSTEM; payload['request_id'] = DependencySnapshot.REQUEST_ID; return payload; }; AddDependencyComponent.prototype.getCategoriesSecurity = function (payload) { var _this = this; this.service.getDependencyData('CVE', payload) .subscribe(function (response) { _this.cveTemporaryData = response; if (_this.cveTemporaryData) { var count_1 = -1; _this.cveTemporaryData.result.forEach(function (item) { count_1++; if (item.cve) { if (item.cve !== null) { _this.cveName.push({ 'detail': item.cve.details, 'package': item.package }); } } }); } }, function (error) { // Handle server errors here _this.errorSecurity = _this.errorMessageHandler.getErrorMessage(error.status); console.log('error add security - ', _this.errorSecurity); }); this.masterTags.forEach(function (i) { for (var j = 0; j < _this.cveName.length; j++) if (i.name === _this.cveName['j'].package) { i.security = _this.cveName['j'].detail; } }); }; AddDependencyComponent.prototype.changeTagname = function (master, t) { this.type = !t; for (var i = 0; i < this.masterTags.length; i++) { if (this.masterTags[i].name === master.name && this.masterTags[i].version === master.version && this.masterTags[i].category === master.category) { this.type = !t; if (this.masterTags[i].type === true && this.type === true) { continue; } else if (this.masterTags[i].type === true && this.type === false) { this.masterTags[i].type = false; this.noOfTags--; i++; break; } else if (this.masterTags[i].type === false) { if (this.type === true) { this.masterTags[i].type = true; this.noOfTags++; break; } else if (this.type === false) { this.masterTags[i].type = false; this.noOfTags--; break; } } } } }; AddDependencyComponent.prototype.listenInputSearch = function () { if (this.dependencySearchString === '') { this.dependencySearchResult = []; } }; AddDependencyComponent.prototype.addDependency = function () { this.dependencySearchResult = []; this.dependencySearchString = ''; this.noOfTags = 0; this.saveTagname = []; var currentTag = null; for (var i = 0; i < this.masterTags.length; i++) { currentTag = this.masterTags[i]; if (currentTag.type === true) { this.tags = []; this.tags.push({ 'ecosystem': DependencySnapshot.ECOSYSTEM, 'version': currentTag.version, 'name': currentTag.name, 'category': currentTag.category }); this.saveTagname.push({ 'name': this.masterTags[i].name }); this.toast = true; this.masterTags[i].grouped = true; this.masterTags[i].type = false; this.service.dependencySelected.emit(this.tags[0]); } } }; AddDependencyComponent.prototype.addSearchDependency = function (depItem) { this.dependencySearchResult = []; this.dependencySearchString = ''; this.service.dependencySelected.emit(depItem); }; AddDependencyComponent.prototype.ngOnDestroy = function () { this.dependencies = []; this.dependencySearchResult = []; this.categorySearchResult = []; this.categoryResult = []; this.dependencySearchString = ''; this.isLoading = false; }; AddDependencyComponent.prototype.removeDependency = function (dependency) { this.service.removeDependency(dependency); }; AddDependencyComponent.prototype.showPackageModal = function (event) { this.toast = false; this.modalPackagePreview.open(); this.handleModalCategories(this.categorySearchResult); }; AddDependencyComponent.prototype.closemodal = function () { this.modalPackagePreview.close(); }; AddDependencyComponent.prototype.showDependency = function () { }; AddDependencyComponent.prototype.handleUserInputKeyPress = function (event) { }; AddDependencyComponent.prototype.handleCategoryClick = function (tag, index) { this.queryString = ''; this.categoryString = tag + '$$' + true; this.resetCategoryStore(0); this.categoriesStore[index].isOpened = true; }; AddDependencyComponent.prototype.setToObject = function (container, currentPackage) { if (container && currentPackage) { if (!container[currentPackage.name]) { container[currentPackage.name] = { 'version': currentPackage.version, 'name': currentPackage.name, 'description': currentPackage.description, 'category': [currentPackage.category], 'type': false, 'grouped': false, 'security': null, 'present': false }; } else { if (container[currentPackage.name]['category'].indexOf(currentPackage.category) === -1) { container[currentPackage.name]['category'].push(currentPackage.category); } } } }; AddDependencyComponent.prototype.addedTags = function () { var _this = this; if (this.masterTags.length === 0) { var count_2 = 0; this.tagZero = 0; var packs_1 = {}; this.categoryResult.forEach(function (i) { i.packages.forEach(function (x) { if (!_this.isACoreDependency(x.name)) { _this.setToObject(packs_1, x); } }); }); Object.keys(packs_1).forEach(function (name) { ++count_2; packs_1[name]['ecosystem'] = DependencySnapshot.ECOSYSTEM; _this.masterTags.push(packs_1[name]); }); console.log('Master Tags', this.masterTags); this.tagZero = count_2; } this.categoryResult.forEach(function (i) { i.packages.forEach(function (x) { _this.saveTagname.push({ 'name': x, 'type': false }); }); }); for (var i = 0; i < this.masterTags.length; i++) { this.masterTags[i].present = false; } if (DependencySnapshot.DEP_FULL_ADDED.length === 0) { for (var i = 0; i < this.masterTags.length; i++) { this.masterTags[i].grouped = false; } } else { DependencySnapshot.DEP_FULL_ADDED.forEach(function (depAdded) { for (var i = 0; i < _this.masterTags.length; i++) { if (_this.masterTags[i].name === depAdded.name && _this.masterTags[i].version === depAdded.version && _this.masterTags[i].category === depAdded.category) { _this.masterTags[i].grouped = true; _this.masterTags[i].present = true; } else { if (_this.masterTags[i].present !== true) { _this.masterTags[i].grouped = false; } } } }); } }; AddDependencyComponent.prototype.isACoreDependency = function (name) { return this.existDependencies && this.existDependencies.filter(function (a) { return a.package === name; }).length !== 0; }; AddDependencyComponent.decorators = [ { type: Component, args: [{ selector: 'app-add-dependency', styles: [require('./add-dependency.component.css').toString()], encapsulation: ViewEncapsulation.None, template: require('./add-dependency.component.html') },] }, ]; /** @nocollapse */ AddDependencyComponent.ctorParameters = function () { return [ { type: DependencyEditorService, }, { type: ErrorMessageHandler, }, ]; }; AddDependencyComponent.propDecorators = { 'boosterInfo': [{ type: Input },], 'dependencies': [{ type: Input },], 'dependencyAdded': [{ type: Input },], 'existDependencies': [{ type: Input },], 'modalPackagePreview': [{ type: ViewChild, args: ['PackagePreview',] },], }; return AddDependencyComponent; }()); export { AddDependencyComponent }; //# sourceMappingURL=add-dependency.component.js.map