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

89 lines 11.4 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 sumBy from "lodash/sumBy"; import { UnitConversionService } from "@nova-ui/bits"; import { DEFAULT_UNIT_CONVERSION_THRESHOLD } from "../../../../common/constants"; import { DashboardUnitConversionPipe } from "../../../../common/pipes/dashboard-unit-conversion-pipe"; import * as i0 from "@angular/core"; import * as i1 from "@nova-ui/bits"; import * as i2 from "@angular/common"; export class DonutContentRawFormatterComponent { static { this.lateLoadKey = "DonutContentRawFormatterComponent"; } constructor(changeDetector, unitConversionService) { this.changeDetector = changeDetector; this.conversionThreshold = DEFAULT_UNIT_CONVERSION_THRESHOLD; this.unitConversionPipe = new DashboardUnitConversionPipe(unitConversionService); } ngOnChanges() { this.sum = sumBy(this.data, (s) => s.data[0]); this.convertedValue = this.unitConversionPipe.transform(this.sum); } /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DonutContentRawFormatterComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.UnitConversionService }], target: i0.ɵɵFactoryTarget.Component }); } /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DonutContentRawFormatterComponent, selector: "nui-donut-content-raw-formatter", inputs: { data: "data", config: "config" }, usesOnChanges: true, ngImport: i0, template: `<ng-container> <nui-icon *ngIf="config?.chartDonutContentIcon" [icon]="config?.chartDonutContentIcon" iconSize="medium" ></nui-icon> <div class="nui-text-page"> <span *ngIf="sum < conversionThreshold; else convertedValueDisplay" >{{ sum | number : "1.0-3" }}</span > <ng-template #convertedValueDisplay>{{ convertedValue }}</ng-template> </div> <div *ngIf="config?.chartDonutContentLabel" class="nui-text-secondary"> {{ config?.chartDonutContentLabel }} </div> </ng-container>`, isInline: true, dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.IconComponent, selector: "nui-icon", inputs: ["iconColor", "brushType", "iconHoverColor", "iconSize", "cssClass", "fillContainer", "status", "childStatus", "icon", "counter"] }, { kind: "pipe", type: i2.DecimalPipe, name: "number" }] }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DonutContentRawFormatterComponent, decorators: [{ type: Component, args: [{ selector: "nui-donut-content-raw-formatter", template: `<ng-container> <nui-icon *ngIf="config?.chartDonutContentIcon" [icon]="config?.chartDonutContentIcon" iconSize="medium" ></nui-icon> <div class="nui-text-page"> <span *ngIf="sum < conversionThreshold; else convertedValueDisplay" >{{ sum | number : "1.0-3" }}</span > <ng-template #convertedValueDisplay>{{ convertedValue }}</ng-template> </div> <div *ngIf="config?.chartDonutContentLabel" class="nui-text-secondary"> {{ config?.chartDonutContentLabel }} </div> </ng-container>`, }] }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.UnitConversionService }], propDecorators: { data: [{ type: Input }], config: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9udXQtY29udGVudC1yYXctZm9ybWF0dGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29uZmlndXJhdG9yL2NvbXBvbmVudHMvZm9ybWF0dGVycy9kb251dC1jb250ZW50LXJhdy1mb3JtYXR0ZXIvZG9udXQtY29udGVudC1yYXctZm9ybWF0dGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx5REFBeUQ7QUFDekQsRUFBRTtBQUNGLCtFQUErRTtBQUMvRSw0RUFBNEU7QUFDNUUsOEVBQThFO0FBQzlFLCtFQUErRTtBQUMvRSw4RUFBOEU7QUFDOUUsNERBQTREO0FBQzVELEVBQUU7QUFDRiw2RUFBNkU7QUFDN0UsdURBQXVEO0FBQ3ZELEVBQUU7QUFDRiw2RUFBNkU7QUFDN0UsNEVBQTRFO0FBQzVFLCtFQUErRTtBQUMvRSwwRUFBMEU7QUFDMUUsaUZBQWlGO0FBQ2pGLDZFQUE2RTtBQUM3RSxpQkFBaUI7QUFFakIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxLQUFLLE1BQU0sY0FBYyxDQUFDO0FBRWpDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQzs7OztBQTBCdEcsTUFBTSxPQUFPLGlDQUFpQzthQUNuQyxnQkFBVyxHQUFHLG1DQUFtQyxBQUF0QyxDQUF1QztJQU96RCxZQUNXLGNBQWlDLEVBQ3hDLHFCQUE0QztRQURyQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFKckMsd0JBQW1CLEdBQUcsaUNBQWlDLENBQUM7UUFPM0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksMkJBQTJCLENBQ3JELHFCQUFxQixDQUN4QixDQUFDO0lBQ04sQ0FBQztJQUtNLFdBQVc7UUFDZCxJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0RSxDQUFDO2tJQXZCUSxpQ0FBaUM7c0hBQWpDLGlDQUFpQyx3SUFwQmhDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7b0JBa0JNOzs0RkFFUCxpQ0FBaUM7a0JBdEI3QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxpQ0FBaUM7b0JBQzNDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7O29CQWtCTTtpQkFDbkI7MEhBa0JZLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvLyDCqSAyMDIyIFNvbGFyV2luZHMgV29ybGR3aWRlLCBMTEMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvXG4vLyAgZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGVcbi8vICByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Jcbi8vICBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vICBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyAgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyAgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyAgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyAgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgc3VtQnkgZnJvbSBcImxvZGFzaC9zdW1CeVwiO1xuXG5pbXBvcnQgeyBVbml0Q29udmVyc2lvblNlcnZpY2UgfSBmcm9tIFwiQG5vdmEtdWkvYml0c1wiO1xuXG5pbXBvcnQgeyBERUZBVUxUX1VOSVRfQ09OVkVSU0lPTl9USFJFU0hPTEQgfSBmcm9tIFwiLi4vLi4vLi4vLi4vY29tbW9uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgRGFzaGJvYXJkVW5pdENvbnZlcnNpb25QaXBlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL2NvbW1vbi9waXBlcy9kYXNoYm9hcmQtdW5pdC1jb252ZXJzaW9uLXBpcGVcIjtcbmltcG9ydCB7IElQcm9wb3J0aW9uYWxXaWRnZXRDb25maWcgfSBmcm9tIFwiLi4vLi4vLi4vLi4vY29tcG9uZW50cy9wdWJsaWMtYXBpXCI7XG5pbXBvcnQgeyBJRm9ybWF0dGVyRGF0YSB9IGZyb20gXCIuLi90eXBlc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJudWktZG9udXQtY29udGVudC1yYXctZm9ybWF0dGVyXCIsXG4gICAgdGVtcGxhdGU6IGA8bmctY29udGFpbmVyPlxuICAgICAgICA8bnVpLWljb25cbiAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnPy5jaGFydERvbnV0Q29udGVudEljb25cIlxuICAgICAgICAgICAgW2ljb25dPVwiY29uZmlnPy5jaGFydERvbnV0Q29udGVudEljb25cIlxuICAgICAgICAgICAgaWNvblNpemU9XCJtZWRpdW1cIlxuICAgICAgICA+PC9udWktaWNvbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm51aS10ZXh0LXBhZ2VcIj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzdW0gPCBjb252ZXJzaW9uVGhyZXNob2xkOyBlbHNlIGNvbnZlcnRlZFZhbHVlRGlzcGxheVwiXG4gICAgICAgICAgICAgICAgPnt7IHN1bSB8IG51bWJlciA6IFwiMS4wLTNcIiB9fTwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjb252ZXJ0ZWRWYWx1ZURpc3BsYXk+e3tcbiAgICAgICAgICAgICAgICBjb252ZXJ0ZWRWYWx1ZVxuICAgICAgICAgICAgfX08L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImNvbmZpZz8uY2hhcnREb251dENvbnRlbnRMYWJlbFwiIGNsYXNzPVwibnVpLXRleHQtc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICB7eyBjb25maWc/LmNoYXJ0RG9udXRDb250ZW50TGFiZWwgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+YCxcbn0pXG5leHBvcnQgY2xhc3MgRG9udXRDb250ZW50UmF3Rm9ybWF0dGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBzdGF0aWMgbGF0ZUxvYWRLZXkgPSBcIkRvbnV0Q29udGVudFJhd0Zvcm1hdHRlckNvbXBvbmVudFwiO1xuXG4gICAgcHVibGljIHN1bTogbnVtYmVyO1xuICAgIHB1YmxpYyBjb252ZXJ0ZWRWYWx1ZTogc3RyaW5nO1xuICAgIHB1YmxpYyBjb252ZXJzaW9uVGhyZXNob2xkID0gREVGQVVMVF9VTklUX0NPTlZFUlNJT05fVEhSRVNIT0xEO1xuXG4gICAgcHJpdmF0ZSB1bml0Q29udmVyc2lvblBpcGU6IERhc2hib2FyZFVuaXRDb252ZXJzaW9uUGlwZTtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgdW5pdENvbnZlcnNpb25TZXJ2aWNlOiBVbml0Q29udmVyc2lvblNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy51bml0Q29udmVyc2lvblBpcGUgPSBuZXcgRGFzaGJvYXJkVW5pdENvbnZlcnNpb25QaXBlKFxuICAgICAgICAgICAgdW5pdENvbnZlcnNpb25TZXJ2aWNlXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgZGF0YTogSUZvcm1hdHRlckRhdGFbXTtcbiAgICBASW5wdXQoKSBjb25maWc6IElQcm9wb3J0aW9uYWxXaWRnZXRDb25maWc7XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3VtID0gc3VtQnkodGhpcy5kYXRhLCAocykgPT4gcy5kYXRhWzBdKTtcbiAgICAgICAgdGhpcy5jb252ZXJ0ZWRWYWx1ZSA9IHRoaXMudW5pdENvbnZlcnNpb25QaXBlLnRyYW5zZm9ybSh0aGlzLnN1bSk7XG4gICAgfVxufVxuIl19