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

105 lines 11.5 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 { ChangeDetectorRef, Component, Input } from "@angular/core"; import * as i0 from "@angular/core"; import * as i1 from "@angular/common"; import * as i2 from "@nova-ui/bits"; export class StatusWithIconFormatterComponent { static { this.lateLoadKey = "StatusWithIconFormatterComponent"; } constructor(changeDetector) { this.changeDetector = changeDetector; this.isValid = false; } ngOnChanges() { this.isValid = !!(this.data && this.data.icon && this.data.name && this.data.data); } /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StatusWithIconFormatterComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); } /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: StatusWithIconFormatterComponent, selector: "nui-dashboards-status-icon-formatter", inputs: { data: "data" }, usesOnChanges: true, ngImport: i0, template: ` <ng-container *ngIf="isValid"> <div class="nui-text-label align-items-center status-icon-formatter" > <span class="nui-text-ellipsis text-right pl-3">{{ data.data }}</span> <nui-icon [icon]="data.icon" class="nui-icon nui-icon-line-height mx-2" ></nui-icon> <div *ngIf="data?.link; else noLink"> <a class="nui-text-link-small nui-text-ellipsis link" (click)="$event.stopPropagation()" [href]="data?.link" rel="noopener noreferrer" [title]="data.name" > {{ data.name }} </a> </div> <ng-template #noLink> <span class="nui-text-ellipsis" [style.font-size.px]="11">{{ data.name }}</span> </ng-template> </div> </ng-container> `, isInline: true, styles: [".status-icon-formatter{display:grid;grid-template-columns:50px auto minmax(114px,1fr)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IconComponent, selector: "nui-icon", inputs: ["iconColor", "brushType", "iconHoverColor", "iconSize", "cssClass", "fillContainer", "status", "childStatus", "icon", "counter"] }] }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StatusWithIconFormatterComponent, decorators: [{ type: Component, args: [{ selector: "nui-dashboards-status-icon-formatter", template: ` <ng-container *ngIf="isValid"> <div class="nui-text-label align-items-center status-icon-formatter" > <span class="nui-text-ellipsis text-right pl-3">{{ data.data }}</span> <nui-icon [icon]="data.icon" class="nui-icon nui-icon-line-height mx-2" ></nui-icon> <div *ngIf="data?.link; else noLink"> <a class="nui-text-link-small nui-text-ellipsis link" (click)="$event.stopPropagation()" [href]="data?.link" rel="noopener noreferrer" [title]="data.name" > {{ data.name }} </a> </div> <ng-template #noLink> <span class="nui-text-ellipsis" [style.font-size.px]="11">{{ data.name }}</span> </ng-template> </div> </ng-container> `, styles: [".status-icon-formatter{display:grid;grid-template-columns:50px auto minmax(114px,1fr)}\n"] }] }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { data: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLXdpdGgtaWNvbi1mb3JtYXR0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb25maWd1cmF0b3IvY29tcG9uZW50cy9mb3JtYXR0ZXJzL3N0YXR1cy13aXRoLWljb24tZm9ybWF0dGVyL3N0YXR1cy13aXRoLWljb24tZm9ybWF0dGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx5REFBeUQ7QUFDekQsRUFBRTtBQUNGLCtFQUErRTtBQUMvRSw0RUFBNEU7QUFDNUUsOEVBQThFO0FBQzlFLCtFQUErRTtBQUMvRSw4RUFBOEU7QUFDOUUsNERBQTREO0FBQzVELEVBQUU7QUFDRiw2RUFBNkU7QUFDN0UsdURBQXVEO0FBQ3ZELEVBQUU7QUFDRiw2RUFBNkU7QUFDN0UsNEVBQTRFO0FBQzVFLCtFQUErRTtBQUMvRSwwRUFBMEU7QUFDMUUsaUZBQWlGO0FBQ2pGLDZFQUE2RTtBQUM3RSxpQkFBaUI7QUFFakIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7Ozs7QUE4Qy9FLE1BQU0sT0FBTyxnQ0FBZ0M7YUFHbEMsZ0JBQVcsR0FBRyxrQ0FBa0MsQUFBckMsQ0FBc0M7SUFFeEQsWUFBbUIsY0FBaUM7UUFBakMsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBRTdDLFlBQU8sR0FBWSxLQUFLLENBQUM7SUFGdUIsQ0FBQztJQVVqRCxXQUFXO1FBQ2QsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FDYixJQUFJLENBQUMsSUFBSTtZQUNULElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNqQixDQUFDO0lBQ04sQ0FBQztrSUF0QlEsZ0NBQWdDO3NIQUFoQyxnQ0FBZ0MsMkhBeEMvQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBOEJUOzs0RkFVUSxnQ0FBZ0M7a0JBMUM1QyxTQUFTOytCQUNJLHNDQUFzQyxZQUN0Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBOEJUO3NGQWtCUSxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvLyDCqSAyMDIyIFNvbGFyV2luZHMgV29ybGR3aWRlLCBMTEMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvXG4vLyAgZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGVcbi8vICByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Jcbi8vICBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vICBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyAgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyAgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyAgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyAgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IElIYXNDaGFuZ2VEZXRlY3RvciB9IGZyb20gXCIuLi8uLi8uLi8uLi90eXBlc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJudWktZGFzaGJvYXJkcy1zdGF0dXMtaWNvbi1mb3JtYXR0ZXJcIixcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNWYWxpZFwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibnVpLXRleHQtbGFiZWwgYWxpZ24taXRlbXMtY2VudGVyIHN0YXR1cy1pY29uLWZvcm1hdHRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJudWktdGV4dC1lbGxpcHNpcyB0ZXh0LXJpZ2h0IHBsLTNcIj57e1xuICAgICAgICAgICAgICAgICAgICBkYXRhLmRhdGFcbiAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8bnVpLWljb25cbiAgICAgICAgICAgICAgICAgICAgW2ljb25dPVwiZGF0YS5pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJudWktaWNvbiBudWktaWNvbi1saW5lLWhlaWdodCBteC0yXCJcbiAgICAgICAgICAgICAgICA+PC9udWktaWNvbj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZGF0YT8ubGluazsgZWxzZSBub0xpbmtcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibnVpLXRleHQtbGluay1zbWFsbCBudWktdGV4dC1lbGxpcHNpcyBsaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiZGF0YT8ubGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJkYXRhLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBkYXRhLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9MaW5rPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm51aS10ZXh0LWVsbGlwc2lzXCIgW3N0eWxlLmZvbnQtc2l6ZS5weF09XCIxMVwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLm5hbWVcbiAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICBgLFxuICAgIHN0eWxlczogW1xuICAgICAgICBgXG4gICAgICAgICAgICAuc3RhdHVzLWljb24tZm9ybWF0dGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNTBweCBhdXRvIG1pbm1heCgxMTRweCwgMWZyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgYCxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTdGF0dXNXaXRoSWNvbkZvcm1hdHRlckNvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25DaGFuZ2VzLCBJSGFzQ2hhbmdlRGV0ZWN0b3JcbntcbiAgICBzdGF0aWMgbGF0ZUxvYWRLZXkgPSBcIlN0YXR1c1dpdGhJY29uRm9ybWF0dGVyQ29tcG9uZW50XCI7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gICAgcHVibGljIGlzVmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBkYXRhOiB7XG4gICAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgICAgaWNvbjogc3RyaW5nO1xuICAgICAgICBkYXRhOiBudW1iZXJbXTtcbiAgICAgICAgbGluaz86IHN0cmluZztcbiAgICB9O1xuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzVmFsaWQgPSAhIShcbiAgICAgICAgICAgIHRoaXMuZGF0YSAmJlxuICAgICAgICAgICAgdGhpcy5kYXRhLmljb24gJiZcbiAgICAgICAgICAgIHRoaXMuZGF0YS5uYW1lICYmXG4gICAgICAgICAgICB0aGlzLmRhdGEuZGF0YVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==