@universis/common
Version:
Universis - common directives and services
107 lines (106 loc) • 12.1 kB
JavaScript
import { Injectable } from '@angular/core';
import { Args } from '@themost/client';
import * as i0 from "@angular/core";
/**
*
* RequestTypesServiceService
*
* Read the available categories, the entries of those categories and update the list of the categories.
*
*/
export class RequestTypesService {
constructor() {
/**
* @param {Array<any>} requestTypes The list of the request categories
*/
this.requestTypes = [];
}
/**
*
* Adds a new item to the service list
*
* @param {RequestTypeItem} item The request type item to be added
*
*/
add(item) {
Args.notNull(item, 'RequestTypeItem');
Args.notNull(item.name, 'RequestTypeItem name');
Args.notNull(item.alternateName, 'RequestTypeItem alternateName');
Args.notNull(item.category, 'RequestTypeItem category');
Args.notNull(item.entryPoint, 'RequestTypeItem entryPoint');
const re = new RegExp(`^${item.alternateName}$`, 'ig');
const itemExist = this.requestTypes.some((existingItem) => re.test(existingItem.alternateName));
if (!itemExist) {
this.requestTypes.push(item);
}
}
/**
*
* Adds a number of items to the service list
*
* @param {Array<RequestTypeItem>} item The array of the items to be included.
*
*/
addRange(...items) {
for (const item of items) {
this.add(item);
}
}
/**
*
* Remove
*
* Removes an item from the list and returns the deleted item
* Returns null when the item is not found
*
* @param {RequestTypeItem} item The item to be deleted
*
*/
remove(item) {
Args.notNull(item, 'RequestTypeItem');
const re = new RegExp(`^${item.alternateName}$`, 'ig');
const findIndex = this.requestTypes.findIndex((existingItem) => re.test(existingItem.alternateName));
if (findIndex < 0) {
return null;
}
// remove item at index found and return the deleted item
return this.requestTypes.splice(findIndex, 1)[0];
}
/**
*
* Remove
*
* Removes an item from the list and returns the deleted item
* Returns null when the item is not found
*
* @param {string} alternateName The alternateName of item to be deleted
*
*/
removeByName(alternateName) {
const re = new RegExp(`^${alternateName}$`, 'ig');
const targetItem = this.requestTypes.find((existingItem) => re.test(existingItem.alternateName));
if (!targetItem) {
return null;
}
return this.remove(targetItem);
}
/**
*
* getItems
*
* Returns the current state of the request items list
*
*/
getItems() {
return [...this.requestTypes];
}
}
RequestTypesService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
/** @nocollapse */
RequestTypesService.ctorParameters = () => [];
RequestTypesService.ngInjectableDef = i0.defineInjectable({ factory: function RequestTypesService_Factory() { return new RequestTypesService(); }, token: RequestTypesService, providedIn: "root" });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC10eXBlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHVuaXZlcnNpcy9jb21tb24vIiwic291cmNlcyI6WyJzaGFyZWQvc2VydmljZXMvcmVxdWVzdC10eXBlcy9yZXF1ZXN0LXR5cGVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBcUR2Qzs7Ozs7O0dBTUc7QUFJSCxNQUFNO0lBT0o7UUFMQTs7V0FFRztRQUNLLGlCQUFZLEdBQTJCLEVBQUUsQ0FBQztJQUVsQyxDQUFDO0lBRWpCOzs7Ozs7T0FNRztJQUNILEdBQUcsQ0FBQyxJQUFxQjtRQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSwrQkFBK0IsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSw0QkFBNEIsQ0FBQyxDQUFDO1FBRTVELE1BQU0sRUFBRSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FDeEQsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQ3BDLENBQUM7UUFFRixJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDOUI7SUFDSCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsUUFBUSxDQUFDLEdBQUcsS0FBNkI7UUFDdkMsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUU7WUFDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNoQjtJQUNILENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxNQUFNLENBQUMsSUFBcUI7UUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUV0QyxNQUFNLEVBQUUsR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN2RCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQzdELEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUNwQyxDQUFDO1FBRUYsSUFBSSxTQUFTLEdBQUcsQ0FBQyxFQUFFO1lBQ2pCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCx5REFBeUQ7UUFDekQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILFlBQVksQ0FBQyxhQUFxQjtRQUNoQyxNQUFNLEVBQUUsR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLGFBQWEsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2xELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FDekQsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQ3BDLENBQUM7UUFFRixJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2YsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsUUFBUTtRQUNOLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoQyxDQUFDOzs7WUEzR0YsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXJncyB9IGZyb20gJ0B0aGVtb3N0L2NsaWVudCc7XG5cbi8qKlxuICpcbiAqIFJlcXVlc3QgdHlwZXMgc2VydmljZVxuICpcbiAqIFJlZ2lzdHJhciBzdHVmZiBhY2NlcHRzIHJlcXVlc3RzLiBSZXF1ZXN0cyBjYW4gYmUgb3JnYW5pemVkIGJ5IGNhdGVnb3J5LlxuICogVGhpcyBzZXJ2aWNlIHN0b3JlcyB0aGUgbGlzdCBvZiB0aGUgYXZhaWxhYmxlIHJlcXVlc3RzLlxuICpcbiAqIFRoaXMgc2VydmljZSBjYW4gYmUgdXNlZCB0byByZWFkIHRoZSBhdmFpbGFibGUgY2F0ZWdvcmllcywgdGhlIGVudHJpZXMgb2YgdGhvc2VcbiAqIGNhdGVnb3JpZXMgYW5kIHVwZGF0ZSB0aGUgbGlzdCBvZiB0aGUgY2F0ZWdvcmllcy5cbiAqXG4gKiBBbiBleGFtcGxlIG9mIGEgcmVxdWVzdCBjYXRlZ29yeSB0eXBlIGlzIHRoZSBkb2N1bWVudCBjYXRlZ29yeSAoZS5nLiB0cmFuc2NyaXB0KS5cbiAqXG4gKi9cblxuXG4vKipcbiAqXG4gKiBSZXF1ZXN0VHlwZUl0ZW0gaW50ZXJmYWNlXG4gKlxuICogUmVwcmVzZW50cyBhIHJlcXVlc3QgdHlwZSB0aGF0IGlzIGdvaW5nIHRvIGJlIHVzZWQgYnkgcmVxdWVzdCB0eXBlIHNlcnZpY2VcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBUaGUgbmFtZSBvZiBhbiBpdGVtLCBjb21tb25seSBhIHRyYW5zbGF0aW9uIGtleSBlLmcuICdSZXF1ZXN0cy5UcmFuc2NyaXB0J1xuICogQHBhcmFtIHtzdHJpbmd9IGFsdGVybmF0ZU5hbWUgdGhlIGtleSBvZiB0aGUgaXRlbSBlLmcuIHRyYW5zY3JpcHRcbiAqIEBwYXJhbSB7c3RyaW5nfSBkZXNjcmlwdGlvbiBBbiBvcHRpb25hbCBkZXNjcmlwdGlvblxuICogQHBhcmFtIHtzdHJpbmd9IGNhdGVnb3J5IFRoZSBjYXRlZ29yeSBvZiB0aGlzIGl0ZW0gZS5nLiBEb2N1bWVudFJlcXVlc3RzLCBPdGhlclJlcXVlc3RzLCBRdWVzdGlvbnMgZXRjXG4gKiBAcGFyYW0ge3N0cmluZ30gZW50cnlQb2ludCBUaGUgZW50cnkgcG9pbnQgdGhhdCBpcyBnb2luZyB0byBiZSB1c2VkIGZvciB0aGlzIHJlcXVlc3RcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcmV2aWV3RW50cnlQb2ludCBUaGUgZW50cnkgcG9pbnQgdGhhdCBpcyBnb2luZyB0byBiZSB1c2VkIGZvciBwcmV2aWV3aW5nIGEgcmVxdWVzdFxuICpcbiAqL1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFJlcXVlc3RUeXBlSXRlbSB7XG4gIG5hbWU6IHN0cmluZztcbiAgYWx0ZXJuYXRlTmFtZTogc3RyaW5nO1xuICBjYXRlZ29yeTogc3RyaW5nO1xuICBlbnRyeVBvaW50OiBzdHJpbmc7XG4gIHByZXZpZXdFbnRyeVBvaW50Pzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKlxuICogUmVxdWVzdFR5cGVTZXJ2aWNlQmFzZVxuICpcbiAqL1xuZGVjbGFyZSBpbnRlcmZhY2UgUmVxdWVzdFR5cGVTZXJ2aWNlQmFzZSB7XG4gIGFkZChpdGVtOiBSZXF1ZXN0VHlwZUl0ZW0pOiB2b2lkO1xuICBhZGRSYW5nZSguLi5pdGVtczogQXJyYXk8UmVxdWVzdFR5cGVJdGVtPik6IHZvaWQ7XG4gIHJlbW92ZShpdGVtOiBSZXF1ZXN0VHlwZUl0ZW0pOiBSZXF1ZXN0VHlwZUl0ZW07XG4gIGdldEl0ZW1zKCk6IEFycmF5PFJlcXVlc3RUeXBlSXRlbT47XG59XG5cblxuLyoqXG4gKlxuICogUmVxdWVzdFR5cGVzU2VydmljZVNlcnZpY2VcbiAqXG4gKiBSZWFkIHRoZSBhdmFpbGFibGUgY2F0ZWdvcmllcywgdGhlIGVudHJpZXMgb2YgdGhvc2UgY2F0ZWdvcmllcyBhbmQgdXBkYXRlIHRoZSBsaXN0IG9mIHRoZSBjYXRlZ29yaWVzLlxuICpcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUmVxdWVzdFR5cGVzU2VydmljZSBpbXBsZW1lbnRzIFJlcXVlc3RUeXBlU2VydmljZUJhc2Uge1xuXG4gIC8qKlxuICAgKiBAcGFyYW0ge0FycmF5PGFueT59IHJlcXVlc3RUeXBlcyBUaGUgbGlzdCBvZiB0aGUgcmVxdWVzdCBjYXRlZ29yaWVzXG4gICAqL1xuICBwcml2YXRlIHJlcXVlc3RUeXBlczogQXJyYXk8UmVxdWVzdFR5cGVJdGVtPiA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEFkZHMgYSBuZXcgaXRlbSB0byB0aGUgc2VydmljZSBsaXN0XG4gICAqXG4gICAqIEBwYXJhbSB7UmVxdWVzdFR5cGVJdGVtfSBpdGVtIFRoZSByZXF1ZXN0IHR5cGUgaXRlbSB0byBiZSBhZGRlZFxuICAgKlxuICAgKi9cbiAgYWRkKGl0ZW06IFJlcXVlc3RUeXBlSXRlbSk6IHZvaWQge1xuICAgIEFyZ3Mubm90TnVsbChpdGVtLCAnUmVxdWVzdFR5cGVJdGVtJyk7XG4gICAgQXJncy5ub3ROdWxsKGl0ZW0ubmFtZSwgJ1JlcXVlc3RUeXBlSXRlbSBuYW1lJyk7XG4gICAgQXJncy5ub3ROdWxsKGl0ZW0uYWx0ZXJuYXRlTmFtZSwgJ1JlcXVlc3RUeXBlSXRlbSBhbHRlcm5hdGVOYW1lJyk7XG4gICAgQXJncy5ub3ROdWxsKGl0ZW0uY2F0ZWdvcnksICdSZXF1ZXN0VHlwZUl0ZW0gY2F0ZWdvcnknKTtcbiAgICBBcmdzLm5vdE51bGwoaXRlbS5lbnRyeVBvaW50LCAnUmVxdWVzdFR5cGVJdGVtIGVudHJ5UG9pbnQnKTtcblxuICAgIGNvbnN0IHJlID0gbmV3IFJlZ0V4cChgXiR7aXRlbS5hbHRlcm5hdGVOYW1lfSRgLCAnaWcnKTtcbiAgICBjb25zdCBpdGVtRXhpc3QgPSB0aGlzLnJlcXVlc3RUeXBlcy5zb21lKChleGlzdGluZ0l0ZW0pID0+XG4gICAgICByZS50ZXN0KGV4aXN0aW5nSXRlbS5hbHRlcm5hdGVOYW1lKVxuICAgICk7XG5cbiAgICBpZiAoIWl0ZW1FeGlzdCkge1xuICAgICAgdGhpcy5yZXF1ZXN0VHlwZXMucHVzaChpdGVtKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQWRkcyBhIG51bWJlciBvZiBpdGVtcyB0byB0aGUgc2VydmljZSBsaXN0XG4gICAqXG4gICAqIEBwYXJhbSB7QXJyYXk8UmVxdWVzdFR5cGVJdGVtPn0gaXRlbSBUaGUgYXJyYXkgb2YgdGhlIGl0ZW1zIHRvIGJlIGluY2x1ZGVkLlxuICAgKlxuICAgKi9cbiAgYWRkUmFuZ2UoLi4uaXRlbXM6IEFycmF5PFJlcXVlc3RUeXBlSXRlbT4pOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICAgIHRoaXMuYWRkKGl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBSZW1vdmVcbiAgICpcbiAgICogUmVtb3ZlcyBhbiBpdGVtIGZyb20gdGhlIGxpc3QgYW5kIHJldHVybnMgdGhlIGRlbGV0ZWQgaXRlbVxuICAgKiBSZXR1cm5zIG51bGwgd2hlbiB0aGUgaXRlbSBpcyBub3QgZm91bmRcbiAgICpcbiAgICogQHBhcmFtIHtSZXF1ZXN0VHlwZUl0ZW19IGl0ZW0gVGhlIGl0ZW0gdG8gYmUgZGVsZXRlZFxuICAgKlxuICAgKi9cbiAgcmVtb3ZlKGl0ZW06IFJlcXVlc3RUeXBlSXRlbSk6IFJlcXVlc3RUeXBlSXRlbSB7XG4gICAgQXJncy5ub3ROdWxsKGl0ZW0sICdSZXF1ZXN0VHlwZUl0ZW0nKTtcblxuICAgIGNvbnN0IHJlID0gbmV3IFJlZ0V4cChgXiR7aXRlbS5hbHRlcm5hdGVOYW1lfSRgLCAnaWcnKTtcbiAgICBjb25zdCBmaW5kSW5kZXggPSB0aGlzLnJlcXVlc3RUeXBlcy5maW5kSW5kZXgoKGV4aXN0aW5nSXRlbSkgPT5cbiAgICAgIHJlLnRlc3QoZXhpc3RpbmdJdGVtLmFsdGVybmF0ZU5hbWUpXG4gICAgKTtcblxuICAgIGlmIChmaW5kSW5kZXggPCAwKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyByZW1vdmUgaXRlbSBhdCBpbmRleCBmb3VuZCBhbmQgcmV0dXJuIHRoZSBkZWxldGVkIGl0ZW1cbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0VHlwZXMuc3BsaWNlKGZpbmRJbmRleCwgMSlbMF07XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogUmVtb3ZlXG4gICAqXG4gICAqIFJlbW92ZXMgYW4gaXRlbSBmcm9tIHRoZSBsaXN0IGFuZCByZXR1cm5zIHRoZSBkZWxldGVkIGl0ZW1cbiAgICogUmV0dXJucyBudWxsIHdoZW4gdGhlIGl0ZW0gaXMgbm90IGZvdW5kXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhbHRlcm5hdGVOYW1lIFRoZSBhbHRlcm5hdGVOYW1lIG9mIGl0ZW0gdG8gYmUgZGVsZXRlZFxuICAgKlxuICAgKi9cbiAgcmVtb3ZlQnlOYW1lKGFsdGVybmF0ZU5hbWU6IHN0cmluZyk6IFJlcXVlc3RUeXBlSXRlbSB7XG4gICAgY29uc3QgcmUgPSBuZXcgUmVnRXhwKGBeJHthbHRlcm5hdGVOYW1lfSRgLCAnaWcnKTtcbiAgICBjb25zdCB0YXJnZXRJdGVtID0gdGhpcy5yZXF1ZXN0VHlwZXMuZmluZCgoZXhpc3RpbmdJdGVtKSA9PlxuICAgICAgcmUudGVzdChleGlzdGluZ0l0ZW0uYWx0ZXJuYXRlTmFtZSlcbiAgICApO1xuXG4gICAgaWYgKCF0YXJnZXRJdGVtKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5yZW1vdmUodGFyZ2V0SXRlbSk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogZ2V0SXRlbXNcbiAgICpcbiAgICogUmV0dXJucyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgcmVxdWVzdCBpdGVtcyBsaXN0XG4gICAqXG4gICAqL1xuICBnZXRJdGVtcygpOiBBcnJheTxSZXF1ZXN0VHlwZUl0ZW0+IHtcbiAgICByZXR1cm4gWy4uLnRoaXMucmVxdWVzdFR5cGVzXTtcbiAgfVxufVxuIl19