UNPKG

@netgrif/components-core

Version:

Netgrif Application engine frontend core Angular library

42 lines 5.19 kB
import { Type } from '@angular/core'; /** * Holds information about views in the application. Can be used to resolve view component class objects from their names. */ export class ViewService { _router; _logger; /** * @ignore * Stores a mapping of component names to their classes */ _nameToClass; /** * @param componentClasses Class objects of view components that should be dynamically routed * @param configService application's ConfigurationService * @param _router the application's Router * @param _logger application's logging service */ constructor(componentClasses, // TODO 29.4.2021 - remove unused class attributes configService, _router, _logger) { this._router = _router; this._logger = _logger; this._nameToClass = new Map(); componentClasses.forEach(component => { if (component instanceof Type) { this._nameToClass.set(component.name, component); } else { this._nameToClass.set(component.id, component.class); } }); } /** * @param componentClassName class name of a view component * @returns the Class object with the provided name or `null` if such name is not registered */ resolveNameToClass(componentClassName) { return this._nameToClass.get(componentClassName); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9yb3V0aW5nL3ZpZXctc2VydmljZS92aWV3LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQU1uQzs7R0FFRztBQUNILE1BQU0sT0FBZ0IsV0FBVztJQWlCRztJQUNBO0lBaEJoQzs7O09BR0c7SUFDSyxZQUFZLENBQXlCO0lBRTdDOzs7OztPQUtHO0lBQ0gsWUFBc0IsZ0JBQThDO0lBQzlDLGtEQUFrRDtJQUNsRCxhQUFtQyxFQUN6QixPQUFlLEVBQ2YsT0FBc0I7UUFEdEIsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFDbEQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBcUIsQ0FBQztRQUNqRCxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDakMsSUFBSSxTQUFTLFlBQVksSUFBSSxFQUFFO2dCQUMzQixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2FBQ3BEO2lCQUFNO2dCQUNILElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3hEO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksa0JBQWtCLENBQUMsa0JBQTBCO1FBQ2hELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNyRCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1R5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb25maWd1cmF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vY29uZmlndXJhdGlvbi9jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtMb2dnZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9sb2dnZXIvc2VydmljZXMvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1ZpZXdFbnRyeX0gZnJvbSAnLi9tb2RlbC92aWV3LWVudHJ5JztcblxuLyoqXG4gKiBIb2xkcyBpbmZvcm1hdGlvbiBhYm91dCB2aWV3cyBpbiB0aGUgYXBwbGljYXRpb24uIENhbiBiZSB1c2VkIHRvIHJlc29sdmUgdmlldyBjb21wb25lbnQgY2xhc3Mgb2JqZWN0cyBmcm9tIHRoZWlyIG5hbWVzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVmlld1NlcnZpY2Uge1xuXG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqIFN0b3JlcyBhIG1hcHBpbmcgb2YgY29tcG9uZW50IG5hbWVzIHRvIHRoZWlyIGNsYXNzZXNcbiAgICAgKi9cbiAgICBwcml2YXRlIF9uYW1lVG9DbGFzczogTWFwPHN0cmluZywgVHlwZTxhbnk+PjtcblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBjb21wb25lbnRDbGFzc2VzIENsYXNzIG9iamVjdHMgb2YgdmlldyBjb21wb25lbnRzIHRoYXQgc2hvdWxkIGJlIGR5bmFtaWNhbGx5IHJvdXRlZFxuICAgICAqIEBwYXJhbSBjb25maWdTZXJ2aWNlIGFwcGxpY2F0aW9uJ3MgQ29uZmlndXJhdGlvblNlcnZpY2VcbiAgICAgKiBAcGFyYW0gX3JvdXRlciB0aGUgYXBwbGljYXRpb24ncyBSb3V0ZXJcbiAgICAgKiBAcGFyYW0gX2xvZ2dlciBhcHBsaWNhdGlvbidzIGxvZ2dpbmcgc2VydmljZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihjb21wb25lbnRDbGFzc2VzOiBBcnJheTxUeXBlPGFueT4gfCBWaWV3RW50cnk+LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPIDI5LjQuMjAyMSAtIHJlbW92ZSB1bnVzZWQgY2xhc3MgYXR0cmlidXRlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdTZXJ2aWNlOiBDb25maWd1cmF0aW9uU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9yb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9sb2dnZXI6IExvZ2dlclNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5fbmFtZVRvQ2xhc3MgPSBuZXcgTWFwPHN0cmluZywgVHlwZTxhbnk+PigpO1xuICAgICAgICBjb21wb25lbnRDbGFzc2VzLmZvckVhY2goY29tcG9uZW50ID0+IHtcbiAgICAgICAgICAgIGlmIChjb21wb25lbnQgaW5zdGFuY2VvZiBUeXBlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbmFtZVRvQ2xhc3Muc2V0KGNvbXBvbmVudC5uYW1lLCBjb21wb25lbnQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9uYW1lVG9DbGFzcy5zZXQoY29tcG9uZW50LmlkLCBjb21wb25lbnQuY2xhc3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gY29tcG9uZW50Q2xhc3NOYW1lIGNsYXNzIG5hbWUgb2YgYSB2aWV3IGNvbXBvbmVudFxuICAgICAqIEByZXR1cm5zIHRoZSBDbGFzcyBvYmplY3Qgd2l0aCB0aGUgcHJvdmlkZWQgbmFtZSBvciBgbnVsbGAgaWYgc3VjaCBuYW1lIGlzIG5vdCByZWdpc3RlcmVkXG4gICAgICovXG4gICAgcHVibGljIHJlc29sdmVOYW1lVG9DbGFzcyhjb21wb25lbnRDbGFzc05hbWU6IHN0cmluZyk6IFR5cGU8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9uYW1lVG9DbGFzcy5nZXQoY29tcG9uZW50Q2xhc3NOYW1lKTtcbiAgICB9XG59XG4iXX0=