UNPKG

@nova-ui/dashboards

Version:

Nova Dashboards is a framework designed to provide feature developers with a common solution for presenting data coming from various sources within a single view, as well as a set of predefined widget visualizations that are 100% configuration-driven and

65 lines 9.03 kB
// © 2022 SolarWinds Worldwide, LLC. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to // deal in the Software without restriction, including without limitation the // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or // sell copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. import { ComponentPortal } from "@angular/cdk/portal"; import { Injectable, Injector } from "@angular/core"; import { LoggerService } from "@nova-ui/bits"; import { ComponentRegistryService } from "./component-registry.service"; import { TemplateLoadErrorComponent } from "../../components/template-load-error/template-load-error.component"; import * as i0 from "@angular/core"; import * as i1 from "./component-registry.service"; import * as i2 from "@nova-ui/bits"; /** @ignore */ export class ComponentPortalService { constructor(componentRegistry, logger) { this.componentRegistry = componentRegistry; this.logger = logger; } createComponentPortal(componentType, injector) { let loadType; if (typeof componentType === "string") { loadType = this.componentRegistry.getComponentType(componentType); } else { loadType = componentType; } if (!loadType) { this.logger.error(`Cannot Find Component Type ${componentType}`); loadType = TemplateLoadErrorComponent; } return new ComponentPortal(loadType, null, injector); } createInjector(environment) { const providers = environment.providers || []; return Injector.create({ providers, parent: environment.injector, name: "Component Injector", }); } /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ComponentPortalService, deps: [{ token: i1.ComponentRegistryService }, { token: i2.LoggerService }], target: i0.ɵɵFactoryTarget.Injectable }); } /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ComponentPortalService, providedIn: "root" }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ComponentPortalService, decorators: [{ type: Injectable, args: [{ providedIn: "root", }] }], ctorParameters: () => [{ type: i1.ComponentRegistryService }, { type: i2.LoggerService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXBvcnRhbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9waXp6YWduYS9zZXJ2aWNlcy9jb21wb25lbnQtcG9ydGFsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseURBQXlEO0FBQ3pELEVBQUU7QUFDRiwrRUFBK0U7QUFDL0UsNEVBQTRFO0FBQzVFLDhFQUE4RTtBQUM5RSwrRUFBK0U7QUFDL0UsOEVBQThFO0FBQzlFLDREQUE0RDtBQUM1RCxFQUFFO0FBQ0YsNkVBQTZFO0FBQzdFLHVEQUF1RDtBQUN2RCxFQUFFO0FBQ0YsNkVBQTZFO0FBQzdFLDRFQUE0RTtBQUM1RSwrRUFBK0U7QUFDL0UsMEVBQTBFO0FBQzFFLGlGQUFpRjtBQUNqRiw2RUFBNkU7QUFDN0UsaUJBQWlCO0FBRWpCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9FQUFvRSxDQUFDOzs7O0FBR2hILGNBQWM7QUFJZCxNQUFNLE9BQU8sc0JBQXNCO0lBQy9CLFlBQ1ksaUJBQTJDLEVBQzNDLE1BQXFCO1FBRHJCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBMEI7UUFDM0MsV0FBTSxHQUFOLE1BQU0sQ0FBZTtJQUM5QixDQUFDO0lBRUcscUJBQXFCLENBQ3hCLGFBQWdDLEVBQ2hDLFFBQXlCO1FBRXpCLElBQUksUUFBYSxDQUFDO1FBQ2xCLElBQUksT0FBTyxhQUFhLEtBQUssUUFBUSxFQUFFO1lBQ25DLFFBQVEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDckU7YUFBTTtZQUNILFFBQVEsR0FBRyxhQUFhLENBQUM7U0FDNUI7UUFFRCxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsOEJBQThCLGFBQWEsRUFBRSxDQUFDLENBQUM7WUFDakUsUUFBUSxHQUFHLDBCQUEwQixDQUFDO1NBQ3pDO1FBRUQsT0FBTyxJQUFJLGVBQWUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTSxjQUFjLENBQUMsV0FBK0I7UUFDakQsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7UUFDOUMsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ25CLFNBQVM7WUFDVCxNQUFNLEVBQUUsV0FBVyxDQUFDLFFBQVE7WUFDNUIsSUFBSSxFQUFFLG9CQUFvQjtTQUM3QixDQUFDLENBQUM7SUFDUCxDQUFDO2tJQWhDUSxzQkFBc0I7c0lBQXRCLHNCQUFzQixjQUZuQixNQUFNOzs0RkFFVCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gwqkgMjAyMiBTb2xhcldpbmRzIFdvcmxkd2lkZSwgTExDLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vICBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0b1xuLy8gIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlXG4vLyAgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yXG4vLyAgc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vICBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyAgYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vICBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vICBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tIFwiQG5vdmEtdWkvYml0c1wiO1xuXG5pbXBvcnQgeyBDb21wb25lbnRSZWdpc3RyeVNlcnZpY2UgfSBmcm9tIFwiLi9jb21wb25lbnQtcmVnaXN0cnkuc2VydmljZVwiO1xuaW1wb3J0IHsgVGVtcGxhdGVMb2FkRXJyb3JDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy90ZW1wbGF0ZS1sb2FkLWVycm9yL3RlbXBsYXRlLWxvYWQtZXJyb3IuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBJUG9ydGFsRW52aXJvbm1lbnQgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcblxuLyoqIEBpZ25vcmUgKi9cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIixcbn0pXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50UG9ydGFsU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY29tcG9uZW50UmVnaXN0cnk6IENvbXBvbmVudFJlZ2lzdHJ5U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlclNlcnZpY2VcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgY3JlYXRlQ29tcG9uZW50UG9ydGFsKFxuICAgICAgICBjb21wb25lbnRUeXBlOiBzdHJpbmcgfCBGdW5jdGlvbixcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yIHwgbnVsbFxuICAgICk6IENvbXBvbmVudFBvcnRhbDxhbnk+IHtcbiAgICAgICAgbGV0IGxvYWRUeXBlOiBhbnk7XG4gICAgICAgIGlmICh0eXBlb2YgY29tcG9uZW50VHlwZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgbG9hZFR5cGUgPSB0aGlzLmNvbXBvbmVudFJlZ2lzdHJ5LmdldENvbXBvbmVudFR5cGUoY29tcG9uZW50VHlwZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsb2FkVHlwZSA9IGNvbXBvbmVudFR5cGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWxvYWRUeXBlKSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihgQ2Fubm90IEZpbmQgQ29tcG9uZW50IFR5cGUgJHtjb21wb25lbnRUeXBlfWApO1xuICAgICAgICAgICAgbG9hZFR5cGUgPSBUZW1wbGF0ZUxvYWRFcnJvckNvbXBvbmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXcgQ29tcG9uZW50UG9ydGFsKGxvYWRUeXBlLCBudWxsLCBpbmplY3Rvcik7XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZUluamVjdG9yKGVudmlyb25tZW50OiBJUG9ydGFsRW52aXJvbm1lbnQpOiBJbmplY3RvciB7XG4gICAgICAgIGNvbnN0IHByb3ZpZGVycyA9IGVudmlyb25tZW50LnByb3ZpZGVycyB8fCBbXTtcbiAgICAgICAgcmV0dXJuIEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICAgICAgICBwcm92aWRlcnMsXG4gICAgICAgICAgICBwYXJlbnQ6IGVudmlyb25tZW50LmluamVjdG9yLFxuICAgICAgICAgICAgbmFtZTogXCJDb21wb25lbnQgSW5qZWN0b3JcIixcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19