@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
85 lines • 9.25 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, Input } from "@angular/core";
import { IconService } from "@nova-ui/bits";
import * as i0 from "@angular/core";
import * as i1 from "@nova-ui/bits";
import * as i2 from "@angular/common";
export class IconFormatterComponent {
static { this.lateLoadKey = "IconFormatterComponent"; }
constructor(changeDetector, iconService) {
this.changeDetector = changeDetector;
this.iconService = iconService;
this.isValid = false;
this.iconFound = true;
}
ngOnChanges() {
this.isValid = !!this.data?.value;
this.iconFound = !!this.iconService.getIconData(this.data?.value);
}
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IconFormatterComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.IconService }], target: i0.ɵɵFactoryTarget.Component }); }
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: IconFormatterComponent, selector: "nui-dashboards-icon-formatter", inputs: { data: "data" }, usesOnChanges: true, ngImport: i0, template: `
<div
*ngIf="isValid"
class="d-flex align-items-center justify-content-center"
>
<nui-icon
*ngIf="iconFound; else iconNotFound"
[icon]="data?.value"
></nui-icon>
</div>
<ng-template #iconNotFound>
<nui-icon
title="Unknown icon"
i18n-title
iconColor="disabled-gray"
icon="help"
></nui-icon>
</ng-template>
`, 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"] }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IconFormatterComponent, decorators: [{
type: Component,
args: [{
selector: "nui-dashboards-icon-formatter",
template: `
<div
*ngIf="isValid"
class="d-flex align-items-center justify-content-center"
>
<nui-icon
*ngIf="iconFound; else iconNotFound"
[icon]="data?.value"
></nui-icon>
</div>
<ng-template #iconNotFound>
<nui-icon
title="Unknown icon"
i18n-title
iconColor="disabled-gray"
icon="help"
></nui-icon>
</ng-template>
`,
}]
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.IconService }], propDecorators: { data: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1mb3JtYXR0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb25maWd1cmF0b3IvY29tcG9uZW50cy9mb3JtYXR0ZXJzL2ljb24tZm9ybWF0dGVyL2ljb24tZm9ybWF0dGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx5REFBeUQ7QUFDekQsRUFBRTtBQUNGLCtFQUErRTtBQUMvRSw0RUFBNEU7QUFDNUUsOEVBQThFO0FBQzlFLCtFQUErRTtBQUMvRSw4RUFBOEU7QUFDOUUsNERBQTREO0FBQzVELEVBQUU7QUFDRiw2RUFBNkU7QUFDN0UsdURBQXVEO0FBQ3ZELEVBQUU7QUFDRiw2RUFBNkU7QUFDN0UsNEVBQTRFO0FBQzVFLCtFQUErRTtBQUMvRSwwRUFBMEU7QUFDMUUsaUZBQWlGO0FBQ2pGLDZFQUE2RTtBQUM3RSxpQkFBaUI7QUFFakIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQTJCNUMsTUFBTSxPQUFPLHNCQUFzQjthQUN4QixnQkFBVyxHQUFHLHdCQUF3QixBQUEzQixDQUE0QjtJQUU5QyxZQUNXLGNBQWlDLEVBQ2pDLFdBQXdCO1FBRHhCLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUc1QixZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLGNBQVMsR0FBWSxJQUFJLENBQUM7SUFIOUIsQ0FBQztJQU1HLFdBQVc7UUFDZCxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQztRQUNsQyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RFLENBQUM7a0lBZlEsc0JBQXNCO3NIQUF0QixzQkFBc0Isb0hBcEJyQjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBa0JUOzs0RkFFUSxzQkFBc0I7a0JBdEJsQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwrQkFBK0I7b0JBQ3pDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBa0JUO2lCQUNKO2dIQVdtQixJQUFJO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gwqkgMjAyMiBTb2xhcldpbmRzIFdvcmxkd2lkZSwgTExDLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vICBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0b1xuLy8gIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlXG4vLyAgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yXG4vLyAgc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vICBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyAgYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vICBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vICBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBJY29uU2VydmljZSB9IGZyb20gXCJAbm92YS11aS9iaXRzXCI7XG5cbmltcG9ydCB7IElIYXNDaGFuZ2VEZXRlY3RvciB9IGZyb20gXCIuLi8uLi8uLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgSUZvcm1hdHRlckRhdGEgfSBmcm9tIFwiLi4vdHlwZXNcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwibnVpLWRhc2hib2FyZHMtaWNvbi1mb3JtYXR0ZXJcIixcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cImlzVmFsaWRcIlxuICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bnVpLWljb25cbiAgICAgICAgICAgICAgICAqbmdJZj1cImljb25Gb3VuZDsgZWxzZSBpY29uTm90Rm91bmRcIlxuICAgICAgICAgICAgICAgIFtpY29uXT1cImRhdGE/LnZhbHVlXCJcbiAgICAgICAgICAgID48L251aS1pY29uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNpY29uTm90Rm91bmQ+XG4gICAgICAgICAgICA8bnVpLWljb25cbiAgICAgICAgICAgICAgICB0aXRsZT1cIlVua25vd24gaWNvblwiXG4gICAgICAgICAgICAgICAgaTE4bi10aXRsZVxuICAgICAgICAgICAgICAgIGljb25Db2xvcj1cImRpc2FibGVkLWdyYXlcIlxuICAgICAgICAgICAgICAgIGljb249XCJoZWxwXCJcbiAgICAgICAgICAgID48L251aS1pY29uPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIGAsXG59KVxuZXhwb3J0IGNsYXNzIEljb25Gb3JtYXR0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIElIYXNDaGFuZ2VEZXRlY3RvciB7XG4gICAgc3RhdGljIGxhdGVMb2FkS2V5ID0gXCJJY29uRm9ybWF0dGVyQ29tcG9uZW50XCI7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHVibGljIGljb25TZXJ2aWNlOiBJY29uU2VydmljZVxuICAgICkge31cblxuICAgIHB1YmxpYyBpc1ZhbGlkOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIGljb25Gb3VuZDogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KCkgcHVibGljIGRhdGE/OiBJRm9ybWF0dGVyRGF0YTtcblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1ZhbGlkID0gISF0aGlzLmRhdGE/LnZhbHVlO1xuICAgICAgICB0aGlzLmljb25Gb3VuZCA9ICEhdGhpcy5pY29uU2VydmljZS5nZXRJY29uRGF0YSh0aGlzLmRhdGE/LnZhbHVlKTtcbiAgICB9XG59XG4iXX0=