UNPKG

@nova-ui/bits

Version:

SolarWinds Nova Framework

95 lines 12.7 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 { EventEmitter } from "@angular/core"; import noop from "lodash/noop"; /** * @ignore */ export class NuiDialogRef { get componentInstance() { if (this.contentRef && this.contentRef.componentRef) { return this.contentRef.componentRef.instance; } } constructor(windowCmptRef, contentRef, backdropCmptRef, beforeDismiss) { this.windowCmptRef = windowCmptRef; this.contentRef = contentRef; this.backdropCmptRef = backdropCmptRef; this.beforeDismiss = beforeDismiss; this.closed$ = new EventEmitter(); this.beforeDismissed$ = new EventEmitter(); windowCmptRef?.instance.dismissEvent.subscribe((reason) => { this.dismiss(reason); }); if (windowCmptRef?.instance.closeEvent) { windowCmptRef.instance.closeEvent.subscribe((result) => { this.close(result); }); } this.result = new Promise((resolve, reject) => { this.resolve = resolve; this.reject = reject; }); this.result.then(null, noop); } close(result) { if (this.windowCmptRef) { this.resolve(result); this.removeDialogElements(); this.closed$.emit(result); } } dismiss(reason) { if (this.windowCmptRef) { this.beforeDismissed$.emit(reason); if (!this.beforeDismiss || this.beforeDismiss(reason) !== false) { this.reject(reason); this.removeDialogElements(); this.closed$.emit(reason); } } } removeDialogElements() { const windowNativeEl = this.windowCmptRef?.location.nativeElement; windowNativeEl.parentNode.removeChild(windowNativeEl); this.windowCmptRef?.destroy(); if (this.backdropCmptRef) { const backdropNativeEl = this.backdropCmptRef.location.nativeElement; backdropNativeEl.parentNode.removeChild(backdropNativeEl); this.backdropCmptRef.destroy(); } if (this.contentRef && this.contentRef.viewRef) { this.contentRef.viewRef.destroy(); } this.windowCmptRef = undefined; this.backdropCmptRef = undefined; this.contentRef = undefined; } } /** @ignore */ export class NuiActiveDialog { close(result) { noop(); } dismiss(reason) { noop(); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXJlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZGlhbG9nL2RpYWxvZy1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseURBQXlEO0FBQ3pELEVBQUU7QUFDRiwrRUFBK0U7QUFDL0UsNEVBQTRFO0FBQzVFLDhFQUE4RTtBQUM5RSwrRUFBK0U7QUFDL0UsOEVBQThFO0FBQzlFLDREQUE0RDtBQUM1RCxFQUFFO0FBQ0YsNkVBQTZFO0FBQzdFLHVEQUF1RDtBQUN2RCxFQUFFO0FBQ0YsNkVBQTZFO0FBQzdFLDRFQUE0RTtBQUM1RSwrRUFBK0U7QUFDL0UsMEVBQTBFO0FBQzFFLGlGQUFpRjtBQUNqRiw2RUFBNkU7QUFDN0UsaUJBQWlCO0FBRWpCLE9BQU8sRUFBZ0IsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQztBQUsvQjs7R0FFRztBQUNILE1BQU0sT0FBTyxZQUFZO0lBSXJCLElBQUksaUJBQWlCO1FBQ2pCLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRTtZQUNqRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztTQUNoRDtJQUNMLENBQUM7SUFPRCxZQUNXLGFBQWlDLEVBQ2hDLFVBQXVCLEVBQ3ZCLGVBQXVELEVBQ3ZELGFBQXdCO1FBSHpCLGtCQUFhLEdBQWIsYUFBYSxDQUFvQjtRQUNoQyxlQUFVLEdBQVYsVUFBVSxDQUFhO1FBQ3ZCLG9CQUFlLEdBQWYsZUFBZSxDQUF3QztRQUN2RCxrQkFBYSxHQUFiLGFBQWEsQ0FBVztRQVQ3QixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM3QixxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBVXpDLGFBQWEsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxD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ZHdpZGUsIExMQy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyAgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG9cbi8vICBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZVxuLy8gIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vclxuLy8gIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyAgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vICBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vICBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vICBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyAgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vICBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyAgVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIEV2ZW50RW1pdHRlciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgbm9vcCBmcm9tIFwibG9kYXNoL25vb3BcIjtcblxuaW1wb3J0IHsgRGlhbG9nQmFja2Ryb3BDb21wb25lbnQgfSBmcm9tIFwiLi9kaWFsb2ctYmFja2Ryb3AuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBDb250ZW50UmVmIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2NvbnRlbnQtcmVmXCI7XG5cbi8qKlxuICogQGlnbm9yZVxuICovXG5leHBvcnQgY2xhc3MgTnVpRGlhbG9nUmVmIHtcbiAgICBwcml2YXRlIHJlc29sdmU6IChyZXN1bHQ/OiBhbnkpID0+IHZvaWQ7XG4gICAgcHJpdmF0ZSByZWplY3Q6IChyZWFzb24/OiBhbnkpID0+IHZvaWQ7XG5cbiAgICBnZXQgY29tcG9uZW50SW5zdGFuY2UoKTogYW55IHtcbiAgICAgICAgaWYgKHRoaXMuY29udGVudFJlZiAmJiB0aGlzLmNvbnRlbnRSZWYuY29tcG9uZW50UmVmKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb250ZW50UmVmLmNvbXBvbmVudFJlZi5pbnN0YW5jZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZWQkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIHB1YmxpYyBiZWZvcmVEaXNtaXNzZWQkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcmVzdWx0OiBQcm9taXNlPGFueT47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHdpbmRvd0NtcHRSZWY/OiBDb21wb25lbnRSZWY8YW55PixcbiAgICAgICAgcHJpdmF0ZSBjb250ZW50UmVmPzogQ29udGVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBiYWNrZHJvcENtcHRSZWY/OiBDb21wb25lbnRSZWY8RGlhbG9nQmFja2Ryb3BDb21wb25lbnQ+LFxuICAgICAgICBwcml2YXRlIGJlZm9yZURpc21pc3M/OiBGdW5jdGlvblxuICAgICkge1xuICAgICAgICB3aW5kb3dDbXB0UmVmPy5pbnN0YW5jZS5kaXNtaXNzRXZlbnQuc3Vic2NyaWJlKChyZWFzb246IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kaXNtaXNzKHJlYXNvbik7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAod2luZG93Q21wdFJlZj8uaW5zdGFuY2UuY2xvc2VFdmVudCkge1xuICAgICAgICAgICAgd2luZG93Q21wdFJlZi5pbnN0YW5jZS5jbG9zZUV2ZW50LnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKHJlc3VsdCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucmVzdWx0ID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZXNvbHZlID0gcmVzb2x2ZTtcbiAgICAgICAgICAgIHRoaXMucmVqZWN0ID0gcmVqZWN0O1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5yZXN1bHQudGhlbihudWxsLCBub29wKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xvc2UocmVzdWx0PzogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLndpbmRvd0NtcHRSZWYpIHtcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZShyZXN1bHQpO1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVEaWFsb2dFbGVtZW50cygpO1xuICAgICAgICAgICAgdGhpcy5jbG9zZWQkLmVtaXQocmVzdWx0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBkaXNtaXNzKHJlYXNvbj86IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy53aW5kb3dDbXB0UmVmKSB7XG4gICAgICAgICAgICB0aGlzLmJlZm9yZURpc21pc3NlZCQuZW1pdChyZWFzb24pO1xuICAgICAgICAgICAgaWYgKCF0aGlzLmJlZm9yZURpc21pc3MgfHwgdGhpcy5iZWZvcmVEaXNtaXNzKHJlYXNvbikgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWplY3QocmVhc29uKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZURpYWxvZ0VsZW1lbnRzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZWQkLmVtaXQocmVhc29uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVtb3ZlRGlhbG9nRWxlbWVudHMoKSB7XG4gICAgICAgIGNvbnN0IHdpbmRvd05hdGl2ZUVsID0gdGhpcy53aW5kb3dDbXB0UmVmPy5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xuICAgICAgICB3aW5kb3dOYXRpdmVFbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHdpbmRvd05hdGl2ZUVsKTtcbiAgICAgICAgdGhpcy53aW5kb3dDbXB0UmVmPy5kZXN0cm95KCk7XG5cbiAgICAgICAgaWYgKHRoaXMuYmFja2Ryb3BDbXB0UmVmKSB7XG4gICAgICAgICAgICBjb25zdCBiYWNrZHJvcE5hdGl2ZUVsID1cbiAgICAgICAgICAgICAgICB0aGlzLmJhY2tkcm9wQ21wdFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgYmFja2Ryb3BOYXRpdmVFbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGJhY2tkcm9wTmF0aXZlRWwpO1xuICAgICAgICAgICAgdGhpcy5iYWNrZHJvcENtcHRSZWYuZGVzdHJveSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuY29udGVudFJlZiAmJiB0aGlzLmNvbnRlbnRSZWYudmlld1JlZikge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50UmVmLnZpZXdSZWYuZGVzdHJveSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy53aW5kb3dDbXB0UmVmID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmJhY2tkcm9wQ21wdFJlZiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5jb250ZW50UmVmID0gdW5kZWZpbmVkO1xuICAgIH1cbn1cbi8qKiBAaWdub3JlICovXG5leHBvcnQgY2xhc3MgTnVpQWN0aXZlRGlhbG9nIHtcbiAgICBjbG9zZShyZXN1bHQ/OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgbm9vcCgpO1xuICAgIH1cbiAgICBkaXNtaXNzKHJlYXNvbj86IGFueSk6IHZvaWQge1xuICAgICAgICBub29wKCk7XG4gICAgfVxufVxuIl19