@nova-ui/bits
Version:
SolarWinds Nova Framework
91 lines • 12.5 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 { 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==