@nova-ui/bits
Version:
SolarWinds Nova Framework
60 lines • 10.4 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 { Component, EventEmitter, Input, Output } from "@angular/core";
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "../../common/directives/set-focus/set-focus.directive";
import * as i3 from "../icon/icon.component";
import * as i4 from "../button/button.component";
/**
* @ignore
*/
export class DialogHeaderComponent {
constructor() {
/**
* Closes dialog on cross click.
*/
this.closed = new EventEmitter();
this.severityClass = "";
this.severityIcon = "";
}
ngOnInit() {
if (this.severity) {
this.severityClass = `dialog-header-${this.severity}`;
this.severityIcon = `severity_${this.severity}`;
}
}
innerClose(event) {
this.closed.emit(event);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DialogHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DialogHeaderComponent, selector: "nui-dialog-header", inputs: { title: "title", severity: "severity" }, outputs: { closed: "closed" }, ngImport: i0, template: "<div class=\"dialog-header {{ severityClass }}\">\n <div class=\"severity-text\">\n <nui-icon *ngIf=\"severityIcon\" [icon]=\"severityIcon\"></nui-icon>\n <h1 class=\"dialog-title\">{{ title }}</h1>\n </div>\n <div class=\"btn-group\">\n <ng-content></ng-content>\n <!-- We set [nuiSetFocus] to a Close button below in order to trap the focus inside cdk focusTrap -->\n <button\n nui-button\n nuiSetFocus=\"true\"\n preventScroll=\"true\"\n type=\"button\"\n displayStyle=\"action\"\n icon=\"close\"\n ariaLabel=\"Close\"\n (click)=\"innerClose($event)\"\n ></button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.SetFocusDirective, selector: "[nuiSetFocus]", inputs: ["nuiSetFocus", "preventScroll"], outputs: ["focusChange"] }, { kind: "component", type: i3.IconComponent, selector: "nui-icon", inputs: ["iconColor", "brushType", "iconHoverColor", "iconSize", "cssClass", "fillContainer", "status", "childStatus", "icon", "counter"] }, { kind: "component", type: i4.ButtonComponent, selector: "[nui-button]", inputs: ["displayStyle", "icon", "iconColor", "iconRight", "isBusy", "isEmpty", "ariaLabel", "isRepeat", "size"] }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DialogHeaderComponent, decorators: [{
type: Component,
args: [{ selector: "nui-dialog-header", template: "<div class=\"dialog-header {{ severityClass }}\">\n <div class=\"severity-text\">\n <nui-icon *ngIf=\"severityIcon\" [icon]=\"severityIcon\"></nui-icon>\n <h1 class=\"dialog-title\">{{ title }}</h1>\n </div>\n <div class=\"btn-group\">\n <ng-content></ng-content>\n <!-- We set [nuiSetFocus] to a Close button below in order to trap the focus inside cdk focusTrap -->\n <button\n nui-button\n nuiSetFocus=\"true\"\n preventScroll=\"true\"\n type=\"button\"\n displayStyle=\"action\"\n icon=\"close\"\n ariaLabel=\"Close\"\n (click)=\"innerClose($event)\"\n ></button>\n </div>\n</div>\n" }]
}], propDecorators: { title: [{
type: Input
}], severity: [{
type: Input
}], closed: [{
type: Output
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2RpYWxvZy9kaWFsb2ctaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9saWIvZGlhbG9nL2RpYWxvZy1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseURBQXlEO0FBQ3pELEVBQUU7QUFDRiwrRUFBK0U7QUFDL0UsNEVBQTRFO0FBQzVFLDhFQUE4RTtBQUM5RSwrRUFBK0U7QUFDL0UsOEVBQThFO0FBQzlFLDREQUE0RDtBQUM1RCxFQUFFO0FBQ0YsNkVBQTZFO0FBQzdFLHVEQUF1RDtBQUN2RCxFQUFFO0FBQ0YsNkVBQTZFO0FBQzdFLDRFQUE0RTtBQUM1RSwrRUFBK0U7QUFDL0UsMEVBQTBFO0FBQzFFLGlGQUFpRjtBQUNqRiw2RUFBNkU7QUFDN0UsaUJBQWlCO0FBRWpCLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQUkvRTs7R0FFRztBQU1ILE1BQU0sT0FBTyxxQkFBcUI7SUFKbEM7UUFhSTs7V0FFRztRQUNPLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRS9CLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLGlCQUFZLEdBQUcsRUFBRSxDQUFDO0tBWTVCO0lBVlUsUUFBUTtRQUNYLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLElBQUksQ0FBQyxhQUFhLEdBQUcsaUJBQWlCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN0RCxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ25EO0lBQ0wsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFVO1FBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7K0dBMUJRLHFCQUFxQjttR0FBckIscUJBQXFCLDBJQ2hDbEMsMHRCQW9CQTs7NEZEWWEscUJBQXFCO2tCQUpqQyxTQUFTOytCQUNJLG1CQUFtQjs4QkFPcEIsS0FBSztzQkFBYixLQUFLO2dCQUlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUksTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLy8gwqkgMjAyMiBTb2xhcldpbmRzIFdvcmxkd2lkZSwgTExDLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vICBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0b1xuLy8gIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlXG4vLyAgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yXG4vLyAgc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vICBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyAgYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vICBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vICBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBTZXZlcml0eUxldmVscyB9IGZyb20gXCIuL3B1YmxpYy1hcGlcIjtcblxuLyoqXG4gKiBAaWdub3JlXG4gKi9cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwibnVpLWRpYWxvZy1oZWFkZXJcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2RpYWxvZy1oZWFkZXIuY29tcG9uZW50Lmh0bWxcIixcbn0pXG5leHBvcnQgY2xhc3MgRGlhbG9nSGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKipcbiAgICAgKiBUaXRsZSBvZiB0aGUgZGlhbG9nLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogU2V2ZXJpdHkgb2YgdGhlIGRpYWxvZy4gUG9zc2libGUgdmFsdWVzOiAnY3JpdGljYWwnLCAnd2FybmluZycsICdpbmZvJy5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXZlcml0eTogU2V2ZXJpdHlMZXZlbHM7XG4gICAgLyoqXG4gICAgICogQ2xvc2VzIGRpYWxvZyBvbiBjcm9zcyBjbGljay5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHVibGljIHNldmVyaXR5Q2xhc3MgPSBcIlwiO1xuICAgIHB1YmxpYyBzZXZlcml0eUljb24gPSBcIlwiO1xuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zZXZlcml0eSkge1xuICAgICAgICAgICAgdGhpcy5zZXZlcml0eUNsYXNzID0gYGRpYWxvZy1oZWFkZXItJHt0aGlzLnNldmVyaXR5fWA7XG4gICAgICAgICAgICB0aGlzLnNldmVyaXR5SWNvbiA9IGBzZXZlcml0eV8ke3RoaXMuc2V2ZXJpdHl9YDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBpbm5lckNsb3NlKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbG9zZWQuZW1pdChldmVudCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRpYWxvZy1oZWFkZXIge3sgc2V2ZXJpdHlDbGFzcyB9fVwiPlxuICAgIDxkaXYgY2xhc3M9XCJzZXZlcml0eS10ZXh0XCI+XG4gICAgICAgIDxudWktaWNvbiAqbmdJZj1cInNldmVyaXR5SWNvblwiIFtpY29uXT1cInNldmVyaXR5SWNvblwiPjwvbnVpLWljb24+XG4gICAgICAgIDxoMSBjbGFzcz1cImRpYWxvZy10aXRsZVwiPnt7IHRpdGxlIH19PC9oMT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwXCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPCEtLSBXZSBzZXQgW251aVNldEZvY3VzXSB0byBhIENsb3NlIGJ1dHRvbiBiZWxvdyBpbiBvcmRlciB0byB0cmFwIHRoZSBmb2N1cyBpbnNpZGUgY2RrIGZvY3VzVHJhcCAtLT5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgbnVpLWJ1dHRvblxuICAgICAgICAgICAgbnVpU2V0Rm9jdXM9XCJ0cnVlXCJcbiAgICAgICAgICAgIHByZXZlbnRTY3JvbGw9XCJ0cnVlXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgZGlzcGxheVN0eWxlPVwiYWN0aW9uXCJcbiAgICAgICAgICAgIGljb249XCJjbG9zZVwiXG4gICAgICAgICAgICBhcmlhTGFiZWw9XCJDbG9zZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiaW5uZXJDbG9zZSgkZXZlbnQpXCJcbiAgICAgICAgPjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=