@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
JavaScript
// © 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