@nova-ui/bits
Version:
SolarWinds Nova Framework
81 lines • 13.1 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 { NuiActiveDialog } from "./dialog-ref";
import * as i0 from "@angular/core";
import * as i1 from "./dialog-ref";
import * as i2 from "../../common/directives/set-focus/set-focus.directive";
import * as i3 from "../button/button.component";
import * as i4 from "./dialog-header.component";
import * as i5 from "./dialog-footer.component";
/**
* @ignore
*/
export class ConfirmationDialogComponent {
constructor(activeDialog, changeDetector) {
this.activeDialog = activeDialog;
this.changeDetector = changeDetector;
this.title = $localize `Confirmation`;
this.confirmText = $localize `Yes`;
this.dismissText = $localize `No`;
this.setFocus = "confirm";
this.ariaLabel = "";
}
updateInputs() {
this.changeDetector.detectChanges();
}
close(result) {
this.activeDialog.close(result);
}
dismiss() {
this.activeDialog.dismiss();
}
focusButton(buttonType) {
return this.setFocus === buttonType ? true : false;
}
getAriaLabel() {
return ((this.severity ? `${this.severity} ${this.title}` : this.title) ||
this.ariaLabel);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ConfirmationDialogComponent, deps: [{ token: i1.NuiActiveDialog }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ConfirmationDialogComponent, selector: "nui-confirmation-dialog-window", inputs: { title: "title", message: "message", confirmText: "confirmText", dismissText: "dismissText", setFocus: "setFocus", severity: "severity", ariaLabel: "ariaLabel" }, host: { attributes: { "role": "dialog" }, properties: { "attr.aria-label": "getAriaLabel()" } }, ngImport: i0, template: "<nui-dialog-header\n [title]=\"title\"\n [severity]=\"severity\"\n (closed)=\"dismiss()\"\n></nui-dialog-header>\n\n<div class=\"dialog-body\">\n <p>{{ message }}</p>\n</div>\n<nui-dialog-footer>\n <button\n nui-button\n type=\"button\"\n [nuiSetFocus]=\"focusButton('dismiss')\"\n preventScroll=\"true\"\n (click)=\"close(false)\"\n >\n {{ dismissText }}\n </button>\n <button\n nui-button\n type=\"button\"\n [nuiSetFocus]=\"focusButton('confirm')\"\n preventScroll=\"true\"\n displayStyle=\"primary\"\n (click)=\"close(true)\"\n >\n {{ confirmText }}\n </button>\n</nui-dialog-footer>\n", dependencies: [{ kind: "directive", type: i2.SetFocusDirective, selector: "[nuiSetFocus]", inputs: ["nuiSetFocus", "preventScroll"], outputs: ["focusChange"] }, { kind: "component", type: i3.ButtonComponent, selector: "[nui-button]", inputs: ["displayStyle", "icon", "iconColor", "iconRight", "isBusy", "isEmpty", "ariaLabel", "isRepeat", "size"] }, { kind: "component", type: i4.DialogHeaderComponent, selector: "nui-dialog-header", inputs: ["title", "severity"], outputs: ["closed"] }, { kind: "component", type: i5.DialogFooterComponent, selector: "nui-dialog-footer" }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ConfirmationDialogComponent, decorators: [{
type: Component,
args: [{ selector: "nui-confirmation-dialog-window", host: {
role: "dialog",
"[attr.aria-label]": "getAriaLabel()",
}, template: "<nui-dialog-header\n [title]=\"title\"\n [severity]=\"severity\"\n (closed)=\"dismiss()\"\n></nui-dialog-header>\n\n<div class=\"dialog-body\">\n <p>{{ message }}</p>\n</div>\n<nui-dialog-footer>\n <button\n nui-button\n type=\"button\"\n [nuiSetFocus]=\"focusButton('dismiss')\"\n preventScroll=\"true\"\n (click)=\"close(false)\"\n >\n {{ dismissText }}\n </button>\n <button\n nui-button\n type=\"button\"\n [nuiSetFocus]=\"focusButton('confirm')\"\n preventScroll=\"true\"\n displayStyle=\"primary\"\n (click)=\"close(true)\"\n >\n {{ confirmText }}\n </button>\n</nui-dialog-footer>\n" }]
}], ctorParameters: () => [{ type: i1.NuiActiveDialog }, { type: i0.ChangeDetectorRef }], propDecorators: { title: [{
type: Input
}], message: [{
type: Input
}], confirmText: [{
type: Input
}], dismissText: [{
type: Input
}], setFocus: [{
type: Input
}], severity: [{
type: Input
}], ariaLabel: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2RpYWxvZy9jb25maXJtYXRpb24tZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9saWIvZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseURBQXlEO0FBQ3pELEVBQUU7QUFDRiwrRUFBK0U7QUFDL0UsNEVBQTRFO0FBQzVFLDhFQUE4RTtBQUM5RSwrRUFBK0U7QUFDL0UsOEVBQThFO0FBQzlFLDREQUE0RDtBQUM1RCxFQUFFO0FBQ0YsNkVBQTZFO0FBQzdFLHVEQUF1RDtBQUN2RCxFQUFFO0FBQ0YsNkVBQTZFO0FBQzdFLDRFQUE0RTtBQUM1RSwrRUFBK0U7QUFDL0UsMEVBQTBFO0FBQzFFLGlGQUFpRjtBQUNqRiw2RUFBNkU7QUFDN0UsaUJBQWlCO0FBRWpCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXBFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7QUFHL0M7O0dBRUc7QUFTSCxNQUFNLE9BQU8sMkJBQTJCO0lBc0JwQyxZQUNZLFlBQTZCLEVBQzdCLGNBQWlDO1FBRGpDLGlCQUFZLEdBQVosWUFBWSxDQUFpQjtRQUM3QixtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUF0QnRDLFVBQUssR0FBVyxTQUFTLENBQUEsY0FBYyxDQUFDO1FBTXhDLGdCQUFXLEdBQVcsU0FBUyxDQUFBLEtBQUssQ0FBQztRQUdyQyxnQkFBVyxHQUFXLFNBQVMsQ0FBQSxJQUFJLENBQUM7UUFHcEMsYUFBUSxHQUE4QixTQUFTLENBQUM7UUFNaEQsY0FBUyxHQUFXLEVBQUUsQ0FBQztJQUszQixDQUFDO0lBRUcsWUFBWTtRQUNmLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVNLEtBQUssQ0FBQyxNQUFlO1FBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxPQUFPO1FBQ1YsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU0sV0FBVyxDQUFDLFVBQXFDO1FBQ3BELE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3ZELENBQUM7SUFFTSxZQUFZO1FBQ2YsT0FBTyxDQUNILENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUMvRCxJQUFJLENBQUMsU0FBUyxDQUNqQixDQUFDO0lBQ04sQ0FBQzsrR0FoRFEsMkJBQTJCO21HQUEzQiwyQkFBMkIsbVZDcEN4Qyx3c0JBOEJBOzs0RkRNYSwyQkFBMkI7a0JBUnZDLFNBQVM7K0JBQ0ksZ0NBQWdDLFFBRXBDO3dCQUNGLElBQUksRUFBRSxRQUFRO3dCQUNkLG1CQUFtQixFQUFFLGdCQUFnQjtxQkFDeEM7b0hBSU0sS0FBSztzQkFEWCxLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFJQyxXQUFXO3NCQURqQixLQUFLO2dCQUlDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBSUMsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvLyDCqSAyMDIyIFNvbGFyV2luZHMgV29ybGR3aWRlLCBMTEMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvXG4vLyAgZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGVcbi8vICByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Jcbi8vICBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vICBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyAgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyAgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyAgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyAgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBOdWlBY3RpdmVEaWFsb2cgfSBmcm9tIFwiLi9kaWFsb2ctcmVmXCI7XG5pbXBvcnQgeyBDb25maXJtYXRpb25EaWFsb2dCdXR0b25zLCBTZXZlcml0eUxldmVscyB9IGZyb20gXCIuL3B1YmxpYy1hcGlcIjtcblxuLyoqXG4gKiBAaWdub3JlXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcIm51aS1jb25maXJtYXRpb24tZGlhbG9nLXdpbmRvd1wiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vY29uZmlybWF0aW9uLWRpYWxvZy5jb21wb25lbnQuaHRtbFwiLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgcm9sZTogXCJkaWFsb2dcIixcbiAgICAgICAgXCJbYXR0ci5hcmlhLWxhYmVsXVwiOiBcImdldEFyaWFMYWJlbCgpXCIsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0aXRsZTogc3RyaW5nID0gJGxvY2FsaXplYENvbmZpcm1hdGlvbmA7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtZXNzYWdlOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjb25maXJtVGV4dDogc3RyaW5nID0gJGxvY2FsaXplYFllc2A7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNtaXNzVGV4dDogc3RyaW5nID0gJGxvY2FsaXplYE5vYDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldEZvY3VzOiBDb25maXJtYXRpb25EaWFsb2dCdXR0b25zID0gXCJjb25maXJtXCI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXZlcml0eTogU2V2ZXJpdHlMZXZlbHM7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhcmlhTGFiZWw6IHN0cmluZyA9IFwiXCI7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBhY3RpdmVEaWFsb2c6IE51aUFjdGl2ZURpYWxvZyxcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgdXBkYXRlSW5wdXRzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xvc2UocmVzdWx0OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZlRGlhbG9nLmNsb3NlKHJlc3VsdCk7XG4gICAgfVxuXG4gICAgcHVibGljIGRpc21pc3MoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZlRGlhbG9nLmRpc21pc3MoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZm9jdXNCdXR0b24oYnV0dG9uVHlwZTogQ29uZmlybWF0aW9uRGlhbG9nQnV0dG9ucyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXRGb2N1cyA9PT0gYnV0dG9uVHlwZSA/IHRydWUgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAodGhpcy5zZXZlcml0eSA/IGAke3RoaXMuc2V2ZXJpdHl9ICR7dGhpcy50aXRsZX1gIDogdGhpcy50aXRsZSkgfHxcbiAgICAgICAgICAgIHRoaXMuYXJpYUxhYmVsXG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiPG51aS1kaWFsb2ctaGVhZGVyXG4gICAgW3RpdGxlXT1cInRpdGxlXCJcbiAgICBbc2V2ZXJpdHldPVwic2V2ZXJpdHlcIlxuICAgIChjbG9zZWQpPVwiZGlzbWlzcygpXCJcbj48L251aS1kaWFsb2ctaGVhZGVyPlxuXG48ZGl2IGNsYXNzPVwiZGlhbG9nLWJvZHlcIj5cbiAgICA8cD57eyBtZXNzYWdlIH19PC9wPlxuPC9kaXY+XG48bnVpLWRpYWxvZy1mb290ZXI+XG4gICAgPGJ1dHRvblxuICAgICAgICBudWktYnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBbbnVpU2V0Rm9jdXNdPVwiZm9jdXNCdXR0b24oJ2Rpc21pc3MnKVwiXG4gICAgICAgIHByZXZlbnRTY3JvbGw9XCJ0cnVlXCJcbiAgICAgICAgKGNsaWNrKT1cImNsb3NlKGZhbHNlKVwiXG4gICAgPlxuICAgICAgICB7eyBkaXNtaXNzVGV4dCB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgICAgbnVpLWJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgW251aVNldEZvY3VzXT1cImZvY3VzQnV0dG9uKCdjb25maXJtJylcIlxuICAgICAgICBwcmV2ZW50U2Nyb2xsPVwidHJ1ZVwiXG4gICAgICAgIGRpc3BsYXlTdHlsZT1cInByaW1hcnlcIlxuICAgICAgICAoY2xpY2spPVwiY2xvc2UodHJ1ZSlcIlxuICAgID5cbiAgICAgICAge3sgY29uZmlybVRleHQgfX1cbiAgICA8L2J1dHRvbj5cbjwvbnVpLWRpYWxvZy1mb290ZXI+XG4iXX0=