UNPKG

@nova-ui/bits

Version:

SolarWinds Nova Framework

60 lines 9.54 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 { ComponentFactoryResolver, Injectable, Injector } from "@angular/core"; import assign from "lodash/assign"; import defaults from "lodash/defaults"; import pick from "lodash/pick"; import { Subject } from "rxjs"; import { ConfirmationDialogComponent } from "./confirmation-dialog.component"; import { DialogStackService } from "./dialog-stack.service"; import * as i0 from "@angular/core"; import * as i1 from "./dialog-stack.service"; /** * @ignore */ export class DialogService { constructor(moduleCFR, injector, dialogStack) { this.moduleCFR = moduleCFR; this.injector = injector; this.dialogStack = dialogStack; this.afterOpened$ = new Subject(); } open(content, options = {}) { const dialog = this.dialogStack.open(this.moduleCFR, this.injector, content, options); this.afterOpened$.next(dialog); return dialog; } confirm(options) { const dialog = this.dialogStack.open(this.moduleCFR, this.injector, ConfirmationDialogComponent, options); const component = dialog.componentInstance; const optionsWithDefaults = defaults(options, pick(component, ["title", "confirmText", "dismissText"])); assign(component, optionsWithDefaults); component.updateInputs(); this.afterOpened$.next(dialog); return dialog; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DialogService, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.Injector }, { token: i1.DialogStackService }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DialogService, providedIn: "root" }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DialogService, decorators: [{ type: Injectable, args: [{ providedIn: "root" }] }], ctorParameters: () => [{ type: i0.ComponentFactoryResolver }, { type: i0.Injector }, { type: i1.DialogStackService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2RpYWxvZy9kaWFsb2cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx5REFBeUQ7QUFDekQsRUFBRTtBQUNGLCtFQUErRTtBQUMvRSw0RUFBNEU7QUFDNUUsOEVBQThFO0FBQzlFLCtFQUErRTtBQUMvRSw4RUFBOEU7QUFDOUUsNERBQTREO0FBQzVELEVBQUU7QUFDRiw2RUFBNkU7QUFDN0UsdURBQXVEO0FBQ3ZELEVBQUU7QUFDRiw2RUFBNkU7QUFDN0UsNEVBQTRFO0FBQzVFLCtFQUErRTtBQUMvRSwwRUFBMEU7QUFDMUUsaUZBQWlGO0FBQ2pGLDZFQUE2RTtBQUM3RSxpQkFBaUI7QUFFakIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxNQUFNLE1BQU0sZUFBZSxDQUFDO0FBQ25DLE9BQU8sUUFBUSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQztBQUMvQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFHNUQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8sYUFBYTtJQUN0QixZQUNZLFNBQW1DLEVBQ25DLFFBQWtCLEVBQ2xCLFdBQStCO1FBRi9CLGNBQVMsR0FBVCxTQUFTLENBQTBCO1FBQ25DLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBR3BDLGlCQUFZLEdBQTBCLElBQUksT0FBTyxFQUFnQixDQUFDO0lBRnRFLENBQUM7SUFJRyxJQUFJLENBQUMsT0FBWSxFQUFFLFVBQTBCLEVBQUU7UUFDbEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQ2hDLElBQUksQ0FBQyxTQUFTLEVBQ2QsSUFBSSxDQUFDLFFBQVEsRUFDYixPQUFPLEVBQ1AsT0FBTyxDQUNWLENBQUM7UUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUvQixPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRU0sT0FBTyxDQUFDLE9BQW1DO1FBQzlDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUNoQyxJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxRQUFRLEVBQ2IsMkJBQTJCLEVBQzNCLE9BQU8sQ0FDVixDQUFDO1FBQ0YsTUFBTSxTQUFTLEdBQWdDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztRQUV4RSxNQUFNLG1CQUFtQixHQUFHLFFBQVEsQ0FDaEMsT0FBTyxFQUNQLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQzNELENBQUM7UUFDRixNQUFNLENBQUMsU0FBUyxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFFdkMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRS9CLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7K0dBeENRLGFBQWE7bUhBQWIsYUFBYSxjQURBLE1BQU07OzRGQUNuQixhQUFhO2tCQUR6QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8vIMKpIDIwMjIgU29sYXJXaW5kcyBXb3JsZHdpZGUsIExMQy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyAgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG9cbi8vICBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZVxuLy8gIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vclxuLy8gIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyAgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vICBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vICBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vICBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyAgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vICBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyAgVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgeyBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCBhc3NpZ24gZnJvbSBcImxvZGFzaC9hc3NpZ25cIjtcbmltcG9ydCBkZWZhdWx0cyBmcm9tIFwibG9kYXNoL2RlZmF1bHRzXCI7XG5pbXBvcnQgcGljayBmcm9tIFwibG9kYXNoL3BpY2tcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuXG5pbXBvcnQgeyBDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQgfSBmcm9tIFwiLi9jb25maXJtYXRpb24tZGlhbG9nLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgTnVpRGlhbG9nUmVmIH0gZnJvbSBcIi4vZGlhbG9nLXJlZlwiO1xuaW1wb3J0IHsgRGlhbG9nU3RhY2tTZXJ2aWNlIH0gZnJvbSBcIi4vZGlhbG9nLXN0YWNrLnNlcnZpY2VcIjtcbmltcG9ydCB7IElDb25maXJtYXRpb25EaWFsb2dPcHRpb25zLCBJRGlhbG9nT3B0aW9ucyB9IGZyb20gXCIuL3B1YmxpYy1hcGlcIjtcblxuLyoqXG4gKiBAaWdub3JlXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogXCJyb290XCIgfSlcbmV4cG9ydCBjbGFzcyBEaWFsb2dTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBtb2R1bGVDRlI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgZGlhbG9nU3RhY2s6IERpYWxvZ1N0YWNrU2VydmljZVxuICAgICkge31cblxuICAgIHB1YmxpYyBhZnRlck9wZW5lZCQ6IFN1YmplY3Q8TnVpRGlhbG9nUmVmPiA9IG5ldyBTdWJqZWN0PE51aURpYWxvZ1JlZj4oKTtcblxuICAgIHB1YmxpYyBvcGVuKGNvbnRlbnQ6IGFueSwgb3B0aW9uczogSURpYWxvZ09wdGlvbnMgPSB7fSk6IE51aURpYWxvZ1JlZiB7XG4gICAgICAgIGNvbnN0IGRpYWxvZyA9IHRoaXMuZGlhbG9nU3RhY2sub3BlbihcbiAgICAgICAgICAgIHRoaXMubW9kdWxlQ0ZSLFxuICAgICAgICAgICAgdGhpcy5pbmplY3RvcixcbiAgICAgICAgICAgIGNvbnRlbnQsXG4gICAgICAgICAgICBvcHRpb25zXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuYWZ0ZXJPcGVuZWQkLm5leHQoZGlhbG9nKTtcblxuICAgICAgICByZXR1cm4gZGlhbG9nO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb25maXJtKG9wdGlvbnM6IElDb25maXJtYXRpb25EaWFsb2dPcHRpb25zKTogTnVpRGlhbG9nUmVmIHtcbiAgICAgICAgY29uc3QgZGlhbG9nID0gdGhpcy5kaWFsb2dTdGFjay5vcGVuKFxuICAgICAgICAgICAgdGhpcy5tb2R1bGVDRlIsXG4gICAgICAgICAgICB0aGlzLmluamVjdG9yLFxuICAgICAgICAgICAgQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICAgICAgb3B0aW9uc1xuICAgICAgICApO1xuICAgICAgICBjb25zdCBjb21wb25lbnQ6IENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCA9IGRpYWxvZy5jb21wb25lbnRJbnN0YW5jZTtcblxuICAgICAgICBjb25zdCBvcHRpb25zV2l0aERlZmF1bHRzID0gZGVmYXVsdHMoXG4gICAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgICAgcGljayhjb21wb25lbnQsIFtcInRpdGxlXCIsIFwiY29uZmlybVRleHRcIiwgXCJkaXNtaXNzVGV4dFwiXSlcbiAgICAgICAgKTtcbiAgICAgICAgYXNzaWduKGNvbXBvbmVudCwgb3B0aW9uc1dpdGhEZWZhdWx0cyk7XG5cbiAgICAgICAgY29tcG9uZW50LnVwZGF0ZUlucHV0cygpO1xuICAgICAgICB0aGlzLmFmdGVyT3BlbmVkJC5uZXh0KGRpYWxvZyk7XG5cbiAgICAgICAgcmV0dXJuIGRpYWxvZztcbiAgICB9XG59XG4iXX0=