@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 • 11.3 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 { ChangeDetectorRef, Component, HostBinding, Input, } from "@angular/core";
import { LoggerService } from "@nova-ui/bits";
import { PizzagnaService } from "../../../pizzagna/services/pizzagna.service";
import { BaseLayout } from "../base-layout";
import * as i0 from "@angular/core";
import * as i1 from "../../../pizzagna/services/pizzagna.service";
import * as i2 from "@nova-ui/bits";
import * as i3 from "@angular/common";
import * as i4 from "@angular/cdk/portal";
import * as i5 from "../../../pizzagna/directives/component-portal/component-portal.directive";
export class StackComponent extends BaseLayout {
static { this.lateLoadKey = "StackComponent"; }
constructor(changeDetector, pizzagnaService, logger) {
super(changeDetector, pizzagnaService, logger);
this.nodes = [];
this.direction = "column";
this.elementClass = "";
this.defaultClassNames = "h-100 w-100 d-flex";
}
ngOnInit() {
this.classNames = `${this.defaultClassNames} flex-${this.direction} ${this.elementClass}`;
}
ngOnDestroy() {
// Ensures that any base class observables are unsubscribed.
super.ngOnDestroy();
}
getNodes() {
return this.nodes;
}
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StackComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.PizzagnaService }, { token: i2.LoggerService }], target: i0.ɵɵFactoryTarget.Component }); }
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: StackComponent, selector: "nui-stack", inputs: { nodes: "nodes", direction: "direction", elementClass: "elementClass" }, host: { properties: { "class": "this.classNames" } }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngFor=\"let node of nodeConfigs; trackBy: trackByFn\">\n <ng-container\n nuiComponentPortal\n #componentPortal=\"nuiComponentPortal\"\n [componentId]=\"node.id\"\n [componentType]=\"node.componentType\"\n [providers]=\"node.providers\"\n [properties]=\"node.properties\"\n >\n <ng-template\n [cdkPortalOutlet]=\"componentPortal.portal\"\n (attached)=\"componentPortal.attached($event)\"\n ></ng-template>\n </ng-container>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: i5.ComponentPortalDirective, selector: "[nuiComponentPortal]", inputs: ["componentId", "componentType", "properties", "providers", "outputs"], outputs: ["output"], exportAs: ["nuiComponentPortal"] }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StackComponent, decorators: [{
type: Component,
args: [{ selector: "nui-stack", template: "<ng-container *ngFor=\"let node of nodeConfigs; trackBy: trackByFn\">\n <ng-container\n nuiComponentPortal\n #componentPortal=\"nuiComponentPortal\"\n [componentId]=\"node.id\"\n [componentType]=\"node.componentType\"\n [providers]=\"node.providers\"\n [properties]=\"node.properties\"\n >\n <ng-template\n [cdkPortalOutlet]=\"componentPortal.portal\"\n (attached)=\"componentPortal.attached($event)\"\n ></ng-template>\n </ng-container>\n</ng-container>\n" }]
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.PizzagnaService }, { type: i2.LoggerService }], propDecorators: { nodes: [{
type: Input
}], direction: [{
type: Input
}], elementClass: [{
type: Input
}], classNames: [{
type: HostBinding,
args: ["class"]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2xheW91dHMvc3RhY2svc3RhY2suY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2xheW91dHMvc3RhY2svc3RhY2suY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseURBQXlEO0FBQ3pELEVBQUU7QUFDRiwrRUFBK0U7QUFDL0UsNEVBQTRFO0FBQzVFLDhFQUE4RTtBQUM5RSwrRUFBK0U7QUFDL0UsOEVBQThFO0FBQzlFLDREQUE0RDtBQUM1RCxFQUFFO0FBQ0YsNkVBQTZFO0FBQzdFLHVEQUF1RDtBQUN2RCxFQUFFO0FBQ0YsNkVBQTZFO0FBQzdFLDRFQUE0RTtBQUM1RSwrRUFBK0U7QUFDL0UsMEVBQTBFO0FBQzFFLGlGQUFpRjtBQUNqRiw2RUFBNkU7QUFDN0UsaUJBQWlCO0FBRWpCLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEdBR1IsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDOUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBTTVDLE1BQU0sT0FBTyxjQUFlLFNBQVEsVUFBVTthQUM1QixnQkFBVyxHQUFHLGdCQUFnQixBQUFuQixDQUFvQjtJQVM3QyxZQUNJLGNBQWlDLEVBQ2pDLGVBQWdDLEVBQ2hDLE1BQXFCO1FBRXJCLEtBQUssQ0FBQyxjQUFjLEVBQUUsZUFBZSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBWjFDLFVBQUssR0FBYSxFQUFFLENBQUM7UUFDckIsY0FBUyxHQUFHLFFBQVEsQ0FBQztRQUNyQixpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUdYLHNCQUFpQixHQUFHLG9CQUFvQixDQUFDO0lBUXpELENBQUM7SUFFTSxRQUFRO1FBQ1gsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsU0FBUyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM5RixDQUFDO0lBRU0sV0FBVztRQUNkLDREQUE0RDtRQUM1RCxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVNLFFBQVE7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztrSUE3QlEsY0FBYztzSEFBZCxjQUFjLGdOQ3RDM0IsaWlCQWVBOzs0RkR1QmEsY0FBYztrQkFKMUIsU0FBUzsrQkFDSSxXQUFXO2dKQU1aLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRXVCLFVBQVU7c0JBQXRDLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbIi8vIMKpIDIwMjIgU29sYXJXaW5kcyBXb3JsZHdpZGUsIExMQy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyAgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG9cbi8vICBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZVxuLy8gIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vclxuLy8gIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyAgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vICBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vICBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vICBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyAgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vICBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyAgVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSBcIkBub3ZhLXVpL2JpdHNcIjtcblxuaW1wb3J0IHsgUGl6emFnbmFTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3BpenphZ25hL3NlcnZpY2VzL3BpenphZ25hLnNlcnZpY2VcIjtcbmltcG9ydCB7IEJhc2VMYXlvdXQgfSBmcm9tIFwiLi4vYmFzZS1sYXlvdXRcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwibnVpLXN0YWNrXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9zdGFjay5jb21wb25lbnQuaHRtbFwiLFxufSlcbmV4cG9ydCBjbGFzcyBTdGFja0NvbXBvbmVudCBleHRlbmRzIEJhc2VMYXlvdXQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcHVibGljIHN0YXRpYyBsYXRlTG9hZEtleSA9IFwiU3RhY2tDb21wb25lbnRcIjtcblxuICAgIEBJbnB1dCgpIG5vZGVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIEBJbnB1dCgpIGRpcmVjdGlvbiA9IFwiY29sdW1uXCI7XG4gICAgQElucHV0KCkgZWxlbWVudENsYXNzID0gXCJcIjtcblxuICAgIEBIb3N0QmluZGluZyhcImNsYXNzXCIpIHB1YmxpYyBjbGFzc05hbWVzOiBzdHJpbmc7XG4gICAgcHVibGljIHJlYWRvbmx5IGRlZmF1bHRDbGFzc05hbWVzID0gXCJoLTEwMCB3LTEwMCBkLWZsZXhcIjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHBpenphZ25hU2VydmljZTogUGl6emFnbmFTZXJ2aWNlLFxuICAgICAgICBsb2dnZXI6IExvZ2dlclNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY2hhbmdlRGV0ZWN0b3IsIHBpenphZ25hU2VydmljZSwgbG9nZ2VyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xhc3NOYW1lcyA9IGAke3RoaXMuZGVmYXVsdENsYXNzTmFtZXN9IGZsZXgtJHt0aGlzLmRpcmVjdGlvbn0gJHt0aGlzLmVsZW1lbnRDbGFzc31gO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgLy8gRW5zdXJlcyB0aGF0IGFueSBiYXNlIGNsYXNzIG9ic2VydmFibGVzIGFyZSB1bnN1YnNjcmliZWQuXG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldE5vZGVzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubm9kZXM7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbm9kZSBvZiBub2RlQ29uZmlnczsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICBudWlDb21wb25lbnRQb3J0YWxcbiAgICAgICAgI2NvbXBvbmVudFBvcnRhbD1cIm51aUNvbXBvbmVudFBvcnRhbFwiXG4gICAgICAgIFtjb21wb25lbnRJZF09XCJub2RlLmlkXCJcbiAgICAgICAgW2NvbXBvbmVudFR5cGVdPVwibm9kZS5jb21wb25lbnRUeXBlXCJcbiAgICAgICAgW3Byb3ZpZGVyc109XCJub2RlLnByb3ZpZGVyc1wiXG4gICAgICAgIFtwcm9wZXJ0aWVzXT1cIm5vZGUucHJvcGVydGllc1wiXG4gICAgPlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgIFtjZGtQb3J0YWxPdXRsZXRdPVwiY29tcG9uZW50UG9ydGFsLnBvcnRhbFwiXG4gICAgICAgICAgICAoYXR0YWNoZWQpPVwiY29tcG9uZW50UG9ydGFsLmF0dGFjaGVkKCRldmVudClcIlxuICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19