UNPKG

@universis/common

Version:

Universis - common directives and services

107 lines (106 loc) 12.1 kB
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