UNPKG

@nova-ui/bits

Version:

SolarWinds Nova Framework

91 lines 12.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 { Directive, ElementRef, Input } from "@angular/core"; import find from "lodash/find"; import isNil from "lodash/isNil"; import { SwitchState } from "../../services/notification-args"; import { NotificationService } from "../../services/notification-service"; import * as i0 from "@angular/core"; import * as i1 from "../../services/notification-service"; /** * <example-url>./../examples/index.html#/toast</example-url> */ /** @ignore */ /** * __Name :__ * Toast Directive * * __Description :__ * Is used for highlighting elements */ export class ToastDirective { get highlightOnClass() { return "highlight-on"; } get highlightFadeOutClass() { return "highlight-fadeout"; } constructor(elRef, notificationService) { this.elRef = elRef; this.notificationService = notificationService; this.onHighlight = (args) => { if (!this.elRef) { return; } const highlightArgs = args; const currentItem = find(highlightArgs.items, (item) => item[highlightArgs.itemIdentificator] === this.nuiToast[highlightArgs.itemIdentificator]); if (!isNil(currentItem)) { if (highlightArgs.highlightState === SwitchState.on) { if (this.isHighlighted) { return; } this.isHighlighted = true; this.status = highlightArgs.status; this.elRef.nativeElement.classList.add(this.highlightOnClass); this.elRef.nativeElement.classList.add(this.status); } else if (this.isHighlighted) { this.elRef.nativeElement.classList.remove(this.highlightOnClass); this.elRef.nativeElement.classList.remove(this.status); this.elRef.nativeElement.classList.add(this.highlightFadeOutClass); this.isHighlighted = false; } } }; } ngOnInit() { this.notificationSubscription = this.notificationService.subscribe("Highlight", this.onHighlight); } ngOnDestroy() { this.notificationSubscription.unsubscribe(); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToastDirective, deps: [{ token: i0.ElementRef }, { token: i1.NotificationService }], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: ToastDirective, selector: "[nuiToast]", inputs: { nuiToast: "nuiToast" }, ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToastDirective, decorators: [{ type: Directive, args: [{ selector: "[nuiToast]", }] }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.NotificationService }], propDecorators: { nuiToast: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi90b2FzdC90b2FzdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseURBQXlEO0FBQ3pELEVBQUU7QUFDRiwrRUFBK0U7QUFDL0UsNEVBQTRFO0FBQzVFLDhFQUE4RTtBQUM5RSwrRUFBK0U7QUFDL0UsOEVBQThFO0FBQzlFLDREQUE0RDtBQUM1RCxFQUFFO0FBQ0YsNkVBQTZFO0FBQzdFLHVEQUF1RDtBQUN2RCxFQUFFO0FBQ0YsNkVBQTZFO0FBQzdFLDRFQUE0RTtBQUM1RSwrRUFBK0U7QUFDL0UsMEVBQTBFO0FBQzFFLGlGQUFpRjtBQUNqRiw2RUFBNkU7QUFDN0UsaUJBQWlCO0FBRWpCLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDO0FBQy9CLE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUdqQyxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7QUFFMUU7O0dBRUc7QUFDSCxjQUFjO0FBSWQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFPdkIsSUFBWSxnQkFBZ0I7UUFDeEIsT0FBTyxjQUFjLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQVkscUJBQXFCO1FBQzdCLE9BQU8sbUJBQW1CLENBQUM7SUFDL0IsQ0FBQztJQUlELFlBQ1ksS0FBaUIsRUFDakIsbUJBQXdDO1FBRHhDLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQVU1QyxnQkFBVyxHQUFHLENBQUMsSUFBUyxFQUFRLEVBQUU7WUFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ2IsT0FBTzthQUNWO1lBQ0QsTUFBTSxhQUFhLEdBQW1CLElBQUksQ0FBQztZQUUzQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQ3BCLGFBQWEsQ0FBQyxLQUFLLEVBQ25CLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDTCxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDO2dCQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUNyRCxDQUFDO1lBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDckIsSUFBSSxhQUFhLENBQUMsY0FBYyxLQUFLLFdBQVcsQ0FBQyxFQUFFLEVBQUU7b0JBQ2pELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTt3QkFDcEIsT0FBTztxQkFDVjtvQkFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztvQkFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDO29CQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO29CQUM5RCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDdkQ7cUJBQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO29CQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUNyQyxJQUFJLENBQUMsZ0JBQWdCLENBQ3hCLENBQUM7b0JBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3ZELElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQ2xDLElBQUksQ0FBQyxxQkFBcUIsQ0FDN0IsQ0FBQztvQkFDRixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztpQkFDOUI7YUFDSjtRQUNMLENBQUMsQ0FBQztJQXpDQyxDQUFDO0lBRUcsUUFBUTtRQUNYLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUM5RCxXQUFXLEVBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FDbkIsQ0FBQztJQUNOLENBQUM7SUFvQ00sV0FBVztRQUNkLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNoRCxDQUFDOytHQWhFUSxjQUFjO21HQUFkLGNBQWM7OzRGQUFkLGNBQWM7a0JBVjFCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLFlBQVk7aUJBQ3pCO2lIQVltQixRQUFRO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gwqkgMjAyMiBTb2xhcldpbmRzIFdvcmxkd2lkZSwgTExDLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vICBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0b1xuLy8gIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlXG4vLyAgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yXG4vLyAgc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vICBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyAgYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vICBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vICBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCBmaW5kIGZyb20gXCJsb2Rhc2gvZmluZFwiO1xuaW1wb3J0IGlzTmlsIGZyb20gXCJsb2Rhc2gvaXNOaWxcIjtcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XG5cbmltcG9ydCB7IElIaWdobGlnaHRBcmdzLCBTd2l0Y2hTdGF0ZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9ub3RpZmljYXRpb24tYXJnc1wiO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9ub3RpZmljYXRpb24tc2VydmljZVwiO1xuXG4vKipcbiAqIDxleGFtcGxlLXVybD4uLy4uL2V4YW1wbGVzL2luZGV4Lmh0bWwjL3RvYXN0PC9leGFtcGxlLXVybD5cbiAqL1xuLyoqIEBpZ25vcmUgKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiBcIltudWlUb2FzdF1cIixcbn0pXG4vKipcbiAqIF9fTmFtZSA6X19cbiAqIFRvYXN0IERpcmVjdGl2ZVxuICpcbiAqIF9fRGVzY3JpcHRpb24gOl9fXG4gKiBJcyB1c2VkIGZvciBoaWdobGlnaHRpbmcgZWxlbWVudHNcbiAqL1xuZXhwb3J0IGNsYXNzIFRvYXN0RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKlxuICAgICAqIHNldHMgbW9kZWwgZm9yIGRpcmVjdGl2ZSB0byBjaGVjayB3aGV0aGVyIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBzaG91bGQgYmUgaGlnaGxpZ2h0ZWQgb3Igbm90XG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIG51aVRvYXN0OiBhbnk7XG5cbiAgICBwcml2YXRlIG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgZ2V0IGhpZ2hsaWdodE9uQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiBcImhpZ2hsaWdodC1vblwiO1xuICAgIH1cbiAgICBwcml2YXRlIGdldCBoaWdobGlnaHRGYWRlT3V0Q2xhc3MoKSB7XG4gICAgICAgIHJldHVybiBcImhpZ2hsaWdodC1mYWRlb3V0XCI7XG4gICAgfVxuICAgIHByaXZhdGUgaXNIaWdobGlnaHRlZDogYm9vbGVhbjtcbiAgICBwcml2YXRlIHN0YXR1czogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZVxuICAgICkge31cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TdWJzY3JpcHRpb24gPSB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3Vic2NyaWJlKFxuICAgICAgICAgICAgXCJIaWdobGlnaHRcIixcbiAgICAgICAgICAgIHRoaXMub25IaWdobGlnaHRcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uSGlnaGxpZ2h0ID0gKGFyZ3M6IGFueSk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuZWxSZWYpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBoaWdobGlnaHRBcmdzID0gPElIaWdobGlnaHRBcmdzPmFyZ3M7XG5cbiAgICAgICAgY29uc3QgY3VycmVudEl0ZW0gPSBmaW5kKFxuICAgICAgICAgICAgaGlnaGxpZ2h0QXJncy5pdGVtcyxcbiAgICAgICAgICAgIChpdGVtKSA9PlxuICAgICAgICAgICAgICAgIGl0ZW1baGlnaGxpZ2h0QXJncy5pdGVtSWRlbnRpZmljYXRvcl0gPT09XG4gICAgICAgICAgICAgICAgdGhpcy5udWlUb2FzdFtoaWdobGlnaHRBcmdzLml0ZW1JZGVudGlmaWNhdG9yXVxuICAgICAgICApO1xuICAgICAgICBpZiAoIWlzTmlsKGN1cnJlbnRJdGVtKSkge1xuICAgICAgICAgICAgaWYgKGhpZ2hsaWdodEFyZ3MuaGlnaGxpZ2h0U3RhdGUgPT09IFN3aXRjaFN0YXRlLm9uKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNIaWdobGlnaHRlZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuaXNIaWdobGlnaHRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0dXMgPSBoaWdobGlnaHRBcmdzLnN0YXR1cztcbiAgICAgICAgICAgICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCh0aGlzLmhpZ2hsaWdodE9uQ2xhc3MpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKHRoaXMuc3RhdHVzKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0hpZ2hsaWdodGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0T25DbGFzc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUodGhpcy5zdGF0dXMpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZ2hsaWdodEZhZGVPdXRDbGFzc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0hpZ2hsaWdodGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbn1cbiJdfQ==