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

69 lines 9.67 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 { Inject, Injectable } from "@angular/core"; import { EventBus, LoggerService } from "@nova-ui/bits"; import { InteractionHandler, } from "./interaction-handler"; import { UrlInteractionService } from "../../../services/url-interaction.service"; import { PIZZAGNA_EVENT_BUS } from "../../../types"; import * as i0 from "@angular/core"; import * as i1 from "@nova-ui/bits"; import * as i2 from "../../../services/url-interaction.service"; // Window is an interface, so it fails when used in constructor parameters for AoT export class WindowObject extends Window { } export class UrlInteractionHandler extends InteractionHandler { constructor(eventBus, window, logger, urlInteractionService) { super(eventBus); this.window = window; this.logger = logger; this.urlInteractionService = urlInteractionService; } handleInteraction(interaction) { if (!this.properties?.url) { this.logger.warn("The target url has not been defined."); return; } const href = this.urlInteractionService.template(this.properties.url, { data: interaction.data, }); // if the link evaluates as empty, then don't go anywhere if (!href) { return; } if (this.properties.newWindow) { this.window.open(href); } else { this.window.location.href = href; } } /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UrlInteractionHandler, deps: [{ token: PIZZAGNA_EVENT_BUS }, { token: "windowObject" }, { token: i1.LoggerService }, { token: i2.UrlInteractionService }], target: i0.ɵɵFactoryTarget.Injectable }); } /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UrlInteractionHandler }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UrlInteractionHandler, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: i1.EventBus, decorators: [{ type: Inject, args: [PIZZAGNA_EVENT_BUS] }] }, { type: WindowObject, decorators: [{ type: Inject, args: ["windowObject"] }] }, { type: i1.LoggerService }, { type: i2.UrlInteractionService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLWludGVyYWN0aW9uLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvcHJvdmlkZXJzL2ludGVyYWN0aW9uL3VybC1pbnRlcmFjdGlvbi1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlEQUF5RDtBQUN6RCxFQUFFO0FBQ0YsK0VBQStFO0FBQy9FLDRFQUE0RTtBQUM1RSw4RUFBOEU7QUFDOUUsK0VBQStFO0FBQy9FLDhFQUE4RTtBQUM5RSw0REFBNEQ7QUFDNUQsRUFBRTtBQUNGLDZFQUE2RTtBQUM3RSx1REFBdUQ7QUFDdkQsRUFBRTtBQUNGLDZFQUE2RTtBQUM3RSw0RUFBNEU7QUFDNUUsK0VBQStFO0FBQy9FLDBFQUEwRTtBQUMxRSxpRkFBaUY7QUFDakYsNkVBQTZFO0FBQzdFLGlCQUFpQjtBQUVqQixPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsUUFBUSxFQUFVLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRSxPQUFPLEVBR0gsa0JBQWtCLEdBQ3JCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFRcEQsa0ZBQWtGO0FBQ2xGLE1BQU0sT0FBTyxZQUFhLFNBQVEsTUFBTTtDQUFHO0FBRzNDLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxrQkFHMUM7SUFDRyxZQUNnQyxRQUEwQixFQUN0QixNQUFvQixFQUM1QyxNQUFxQixFQUNyQixxQkFBNEM7UUFFcEQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBSmdCLFdBQU0sR0FBTixNQUFNLENBQWM7UUFDNUMsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO0lBR3hELENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxXQUFxQztRQUM3RCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUU7WUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0NBQXNDLENBQUMsQ0FBQztZQUN6RCxPQUFPO1NBQ1Y7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2xFLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSTtTQUN6QixDQUFDLENBQUM7UUFFSCx5REFBeUQ7UUFDekQsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNQLE9BQU87U0FDVjtRQUVELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUU7WUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUI7YUFBTTtZQUNILElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7U0FDcEM7SUFDTCxDQUFDO2tJQWhDUSxxQkFBcUIsa0JBS2xCLGtCQUFrQixhQUNsQixjQUFjO3NJQU5qQixxQkFBcUI7OzRGQUFyQixxQkFBcUI7a0JBRGpDLFVBQVU7OzBCQU1GLE1BQU07MkJBQUMsa0JBQWtCOzswQkFDekIsTUFBTTsyQkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiLy8gwqkgMjAyMiBTb2xhcldpbmRzIFdvcmxkd2lkZSwgTExDLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vICBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0b1xuLy8gIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlXG4vLyAgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yXG4vLyAgc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vICBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyAgYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vICBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vICBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IEV2ZW50QnVzLCBJRXZlbnQsIExvZ2dlclNlcnZpY2UgfSBmcm9tIFwiQG5vdmEtdWkvYml0c1wiO1xuXG5pbXBvcnQge1xuICAgIElJbnRlcmFjdGlvbkhhbmRsZXJQcm9wZXJ0aWVzLFxuICAgIElJbnRlcmFjdGlvblBheWxvYWQsXG4gICAgSW50ZXJhY3Rpb25IYW5kbGVyLFxufSBmcm9tIFwiLi9pbnRlcmFjdGlvbi1oYW5kbGVyXCI7XG5pbXBvcnQgeyBVcmxJbnRlcmFjdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvdXJsLWludGVyYWN0aW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7IFBJWlpBR05BX0VWRU5UX0JVUyB9IGZyb20gXCIuLi8uLi8uLi90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIElVcmxJbnRlcmFjdGlvbkhhbmRsZXJQcm9wZXJ0aWVzXG4gICAgZXh0ZW5kcyBJSW50ZXJhY3Rpb25IYW5kbGVyUHJvcGVydGllcyB7XG4gICAgdXJsOiBzdHJpbmc7XG4gICAgbmV3V2luZG93PzogYm9vbGVhbjtcbn1cblxuLy8gV2luZG93IGlzIGFuIGludGVyZmFjZSwgc28gaXQgZmFpbHMgd2hlbiB1c2VkIGluIGNvbnN0cnVjdG9yIHBhcmFtZXRlcnMgZm9yIEFvVFxuZXhwb3J0IGNsYXNzIFdpbmRvd09iamVjdCBleHRlbmRzIFdpbmRvdyB7fVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVXJsSW50ZXJhY3Rpb25IYW5kbGVyIGV4dGVuZHMgSW50ZXJhY3Rpb25IYW5kbGVyPFxuICAgIElVcmxJbnRlcmFjdGlvbkhhbmRsZXJQcm9wZXJ0aWVzLFxuICAgIGFueVxuPiB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoUElaWkFHTkFfRVZFTlRfQlVTKSBldmVudEJ1czogRXZlbnRCdXM8SUV2ZW50PixcbiAgICAgICAgQEluamVjdChcIndpbmRvd09iamVjdFwiKSBwcml2YXRlIHdpbmRvdzogV2luZG93T2JqZWN0LFxuICAgICAgICBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB1cmxJbnRlcmFjdGlvblNlcnZpY2U6IFVybEludGVyYWN0aW9uU2VydmljZVxuICAgICkge1xuICAgICAgICBzdXBlcihldmVudEJ1cyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGhhbmRsZUludGVyYWN0aW9uKGludGVyYWN0aW9uOiBJSW50ZXJhY3Rpb25QYXlsb2FkPGFueT4pOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnByb3BlcnRpZXM/LnVybCkge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIud2FybihcIlRoZSB0YXJnZXQgdXJsIGhhcyBub3QgYmVlbiBkZWZpbmVkLlwiKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBocmVmID0gdGhpcy51cmxJbnRlcmFjdGlvblNlcnZpY2UudGVtcGxhdGUodGhpcy5wcm9wZXJ0aWVzLnVybCwge1xuICAgICAgICAgICAgZGF0YTogaW50ZXJhY3Rpb24uZGF0YSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gaWYgdGhlIGxpbmsgZXZhbHVhdGVzIGFzIGVtcHR5LCB0aGVuIGRvbid0IGdvIGFueXdoZXJlXG4gICAgICAgIGlmICghaHJlZikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucHJvcGVydGllcy5uZXdXaW5kb3cpIHtcbiAgICAgICAgICAgIHRoaXMud2luZG93Lm9wZW4oaHJlZik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLndpbmRvdy5sb2NhdGlvbi5ocmVmID0gaHJlZjtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==