UNPKG

ngx-modialog-11

Version:
40 lines 6.1 kB
import { Modal } from '../providers/index'; import { ModalContext, ModalContextBuilder } from './modal-context'; import { arrayUnion } from '../framework/utils'; const DEFAULT_SETTERS = [ 'component' ]; export class ModalOpenContext extends ModalContext { } /** * A Modal Context that knows about the modal service, and so can open a modal window on demand. * Use the fluent API to configure the preset and then invoke the 'open' method to open a modal * based on the context. */ export class ModalOpenContextBuilder extends ModalContextBuilder { constructor(defaultValues, initialSetters, baseType) { super(defaultValues || {}, arrayUnion(DEFAULT_SETTERS, initialSetters || []), baseType); } /** * Hook to alter config and return bindings. * @param config */ $$beforeOpen(config) { } /** * Open a modal window based on the configuration of this config instance. * @param viewContainer If set opens the modal inside the supplied viewContainer */ open(viewContainer) { const context = this.toJSON(); if (!(context.modal instanceof Modal)) { return Promise.reject(new Error('Configuration Error: modal service not set.')); } this.$$beforeOpen(context); const overlayConfig = { context: context, viewContainer: viewContainer }; return context.modal.open(context.component, overlayConfig); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtb3Blbi1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1vZGlhbG9nLTExL3NyYy9saWIvbW9kZWxzL21vZGFsLW9wZW4tY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR3BFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVoRCxNQUFNLGVBQWUsR0FBRztJQUN0QixXQUFXO0NBQ1osQ0FBQztBQUVGLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxZQUFZO0NBR2pEO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sT0FBZ0IsdUJBQ0osU0FBUSxtQkFBc0I7SUFROUMsWUFBWSxhQUFpQixFQUNqQixjQUF5QixFQUN6QixRQUFzQjtRQUNoQyxLQUFLLENBQ0gsYUFBYSxJQUFTLEVBQUUsRUFDeEIsVUFBVSxDQUFTLGVBQWUsRUFBRSxjQUFjLElBQUksRUFBRSxDQUFDLEVBQ3pELFFBQVEsQ0FDVCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNPLFlBQVksQ0FBQyxNQUFTLElBQVUsQ0FBQztJQUUzQzs7O09BR0c7SUFDSCxJQUFJLENBQUMsYUFBeUI7UUFDNUIsTUFBTSxPQUFPLEdBQU0sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRWpDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLFlBQVksS0FBSyxDQUFDLEVBQUU7WUFDckMsT0FBWSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUMsQ0FBQztTQUN0RjtRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFM0IsTUFBTSxhQUFhLEdBQWtCO1lBQ25DLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLGFBQWEsRUFBRSxhQUFhO1NBQzdCLENBQUM7UUFFRixPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDOUQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVzb2x2ZWRSZWZsZWN0aXZlUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEZsdWVudEFzc2lnbk1ldGhvZCB9IGZyb20gJy4uL2ZyYW1ld29yay9mbHVlbnQtYXNzaWduJztcclxuaW1wb3J0IHsgTW9kYWxDb21wb25lbnQsIE92ZXJsYXlDb25maWcsIFdpZGVWQ1JlZiB9IGZyb20gJy4vdG9rZW5zJztcclxuaW1wb3J0IHsgTW9kYWwgfSBmcm9tICcuLi9wcm92aWRlcnMvaW5kZXgnO1xyXG5pbXBvcnQgeyBEaWFsb2dSZWYgfSBmcm9tICcuL2RpYWxvZy1yZWYnO1xyXG5pbXBvcnQgeyBNb2RhbENvbnRleHQsIE1vZGFsQ29udGV4dEJ1aWxkZXIgfSBmcm9tICcuL21vZGFsLWNvbnRleHQnO1xyXG5pbXBvcnQgeyBNb2RhbENvbnRyb2xsaW5nQ29udGV4dEJ1aWxkZXIgfSBmcm9tICcuL292ZXJsYXktY29udGV4dCc7XHJcblxyXG5pbXBvcnQgeyBhcnJheVVuaW9uIH0gZnJvbSAnLi4vZnJhbWV3b3JrL3V0aWxzJztcclxuXHJcbmNvbnN0IERFRkFVTFRfU0VUVEVSUyA9IFtcclxuICAnY29tcG9uZW50J1xyXG5dO1xyXG5cclxuZXhwb3J0IGNsYXNzIE1vZGFsT3BlbkNvbnRleHQgZXh0ZW5kcyBNb2RhbENvbnRleHQge1xyXG4gIGNvbXBvbmVudDogYW55O1xyXG4gIG1vZGFsOiBNb2RhbDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEEgTW9kYWwgQ29udGV4dCB0aGF0IGtub3dzIGFib3V0IHRoZSBtb2RhbCBzZXJ2aWNlLCBhbmQgc28gY2FuIG9wZW4gYSBtb2RhbCB3aW5kb3cgb24gZGVtYW5kLlxyXG4gKiBVc2UgdGhlIGZsdWVudCBBUEkgdG8gY29uZmlndXJlIHRoZSBwcmVzZXQgYW5kIHRoZW4gaW52b2tlIHRoZSAnb3BlbicgbWV0aG9kIHRvIG9wZW4gYSBtb2RhbFxyXG4gKiBiYXNlZCBvbiB0aGUgY29udGV4dC5cclxuICovXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBNb2RhbE9wZW5Db250ZXh0QnVpbGRlcjxUIGV4dGVuZHMgTW9kYWxPcGVuQ29udGV4dD5cclxuICAgICAgICAgICAgICAgICAgZXh0ZW5kcyBNb2RhbENvbnRleHRCdWlsZGVyPFQ+IGltcGxlbWVudHMgTW9kYWxDb250cm9sbGluZ0NvbnRleHRCdWlsZGVyPFQ+IHtcclxuXHJcbiAgLyoqXHJcbiAgICogQSBDbGFzcyBmb3IgdGhlIGZvb3RlciBjb250YWluZXIuXHJcbiAgICogRGVmYXVsdDogbW9kYWwtZm9vdGVyXHJcbiAgICovXHJcbiAgY29tcG9uZW50OiBGbHVlbnRBc3NpZ25NZXRob2Q8TW9kYWxDb21wb25lbnQ8VD4sIHRoaXM+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihkZWZhdWx0VmFsdWVzPzogVCxcclxuICAgICAgICAgICAgICBpbml0aWFsU2V0dGVycz86IHN0cmluZ1tdLFxyXG4gICAgICAgICAgICAgIGJhc2VUeXBlPzogbmV3ICgpID0+IFQpIHtcclxuICAgIHN1cGVyKFxyXG4gICAgICBkZWZhdWx0VmFsdWVzIHx8IDxhbnk+e30sXHJcbiAgICAgIGFycmF5VW5pb248c3RyaW5nPihERUZBVUxUX1NFVFRFUlMsIGluaXRpYWxTZXR0ZXJzIHx8IFtdKSxcclxuICAgICAgYmFzZVR5cGVcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIb29rIHRvIGFsdGVyIGNvbmZpZyBhbmQgcmV0dXJuIGJpbmRpbmdzLlxyXG4gICAqIEBwYXJhbSBjb25maWdcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgJCRiZWZvcmVPcGVuKGNvbmZpZzogVCk6IHZvaWQgeyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9wZW4gYSBtb2RhbCB3aW5kb3cgYmFzZWQgb24gdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhpcyBjb25maWcgaW5zdGFuY2UuXHJcbiAgICogQHBhcmFtIHZpZXdDb250YWluZXIgSWYgc2V0IG9wZW5zIHRoZSBtb2RhbCBpbnNpZGUgdGhlIHN1cHBsaWVkIHZpZXdDb250YWluZXJcclxuICAgKi9cclxuICBvcGVuKHZpZXdDb250YWluZXI/OiBXaWRlVkNSZWYpOiBEaWFsb2dSZWY8VD4ge1xyXG4gICAgY29uc3QgY29udGV4dDogVCA9IHRoaXMudG9KU09OKCk7XHJcblxyXG4gICAgaWYgKCEoY29udGV4dC5tb2RhbCBpbnN0YW5jZW9mIE1vZGFsKSkge1xyXG4gICAgICByZXR1cm4gPGFueT5Qcm9taXNlLnJlamVjdChuZXcgRXJyb3IoJ0NvbmZpZ3VyYXRpb24gRXJyb3I6IG1vZGFsIHNlcnZpY2Ugbm90IHNldC4nKSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy4kJGJlZm9yZU9wZW4oY29udGV4dCk7XHJcblxyXG4gICAgY29uc3Qgb3ZlcmxheUNvbmZpZzogT3ZlcmxheUNvbmZpZyA9IHtcclxuICAgICAgY29udGV4dDogY29udGV4dCxcclxuICAgICAgdmlld0NvbnRhaW5lcjogdmlld0NvbnRhaW5lclxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gY29udGV4dC5tb2RhbC5vcGVuKGNvbnRleHQuY29tcG9uZW50LCBvdmVybGF5Q29uZmlnKTtcclxuICB9XHJcbn1cclxuIl19