UNPKG

@spartacus/storefront

Version:

Spartacus Storefront is a package that you can include in your application, which allows you to add default storefront features.

55 lines 6.54 kB
import { Injectable } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "@ng-bootstrap/ng-bootstrap"; /** * A service to handle modal */ export class ModalService { constructor(ngbModalService, applicationRef) { this.ngbModalService = ngbModalService; this.applicationRef = applicationRef; this.modals = []; } get rootComponent() { var _a, _b, _c, _d; return (_d = (_c = (_b = (_a = this.applicationRef) === null || _a === void 0 ? void 0 : _a.components) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.location) === null || _d === void 0 ? void 0 : _d.nativeElement; } open(content, options) { let activeModal; options = Object.assign({ container: this.rootComponent }, options); activeModal = this.ngbModalService.open(content, options); this.modals.push(activeModal); this.handleModalRemoveEvents(activeModal); return activeModal; } handleModalRemoveEvents(modal) { modal.result.finally(() => { this.modals = this.modals.filter((m) => m !== modal); }); } getActiveModal() { const modal = this.modals[this.modals.length - 1]; return modal ? modal : null; } dismissActiveModal(reason) { const modal = this.getActiveModal(); if (modal) { modal.dismiss(reason); } } closeActiveModal(reason) { const modal = this.getActiveModal(); if (modal) { modal.close(reason); } } } ModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: ModalService, deps: [{ token: i1.NgbModal }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable }); ModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: ModalService, providedIn: 'root' }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: ModalService, decorators: [{ type: Injectable, args: [{ providedIn: 'root', }] }], ctorParameters: function () { return [{ type: i1.NgbModal }, { type: i0.ApplicationRef }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0b3JlZnJvbnRsaWIvc2hhcmVkL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtCLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBSzNEOztHQUVHO0FBSUgsTUFBTSxPQUFPLFlBQVk7SUFHdkIsWUFDVSxlQUF5QixFQUN2QixjQUE4QjtRQURoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBVTtRQUN2QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFKbEMsV0FBTSxHQUFlLEVBQUUsQ0FBQztJQUs3QixDQUFDO0lBRUosSUFBYyxhQUFhOztRQUN6QixPQUFPLE1BQUEsTUFBQSxNQUFBLE1BQUEsSUFBSSxDQUFDLGNBQWMsMENBQUUsVUFBVSwwQ0FBRyxDQUFDLENBQUMsMENBQUUsUUFBUSwwQ0FBRSxhQUFhLENBQUM7SUFDdkUsQ0FBQztJQUVELElBQUksQ0FBQyxPQUFZLEVBQUUsT0FBc0I7UUFDdkMsSUFBSSxXQUFxQixDQUFDO1FBRTFCLE9BQU8sbUJBQUssU0FBUyxFQUFFLElBQUksQ0FBQyxhQUFhLElBQUssT0FBTyxDQUFFLENBQUM7UUFFeEQsV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsdUJBQXVCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFMUMsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVTLHVCQUF1QixDQUFDLEtBQWU7UUFDL0MsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQztRQUN2RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjO1FBQ1osTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNsRCxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVELGtCQUFrQixDQUFDLE1BQVk7UUFDN0IsTUFBTSxLQUFLLEdBQWEsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRTlDLElBQUksS0FBSyxFQUFFO1lBQ1QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN2QjtJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUFZO1FBQzNCLE1BQU0sS0FBSyxHQUFhLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUU5QyxJQUFJLEtBQUssRUFBRTtZQUNULEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDckI7SUFDSCxDQUFDOzt5R0FqRFUsWUFBWTs2R0FBWixZQUFZLGNBRlgsTUFBTTsyRkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcGxpY2F0aW9uUmVmLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IE1vZGFsT3B0aW9ucyB9IGZyb20gJy4vbW9kYWwtb3B0aW9ucyc7XG5pbXBvcnQgeyBNb2RhbFJlZiB9IGZyb20gJy4vbW9kYWwtcmVmJztcblxuLyoqXG4gKiBBIHNlcnZpY2UgdG8gaGFuZGxlIG1vZGFsXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBNb2RhbFNlcnZpY2Uge1xuICBwcml2YXRlIG1vZGFsczogTW9kYWxSZWZbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbmdiTW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxcbiAgICBwcm90ZWN0ZWQgYXBwbGljYXRpb25SZWY6IEFwcGxpY2F0aW9uUmVmXG4gICkge31cblxuICBwcm90ZWN0ZWQgZ2V0IHJvb3RDb21wb25lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBwbGljYXRpb25SZWY/LmNvbXBvbmVudHM/LlswXT8ubG9jYXRpb24/Lm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBvcGVuKGNvbnRlbnQ6IGFueSwgb3B0aW9ucz86IE1vZGFsT3B0aW9ucyk6IE1vZGFsUmVmIHtcbiAgICBsZXQgYWN0aXZlTW9kYWw6IE1vZGFsUmVmO1xuXG4gICAgb3B0aW9ucyA9IHsgY29udGFpbmVyOiB0aGlzLnJvb3RDb21wb25lbnQsIC4uLm9wdGlvbnMgfTtcblxuICAgIGFjdGl2ZU1vZGFsID0gdGhpcy5uZ2JNb2RhbFNlcnZpY2Uub3Blbihjb250ZW50LCBvcHRpb25zKTtcbiAgICB0aGlzLm1vZGFscy5wdXNoKGFjdGl2ZU1vZGFsKTtcbiAgICB0aGlzLmhhbmRsZU1vZGFsUmVtb3ZlRXZlbnRzKGFjdGl2ZU1vZGFsKTtcblxuICAgIHJldHVybiBhY3RpdmVNb2RhbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVNb2RhbFJlbW92ZUV2ZW50cyhtb2RhbDogTW9kYWxSZWYpOiB2b2lkIHtcbiAgICBtb2RhbC5yZXN1bHQuZmluYWxseSgoKSA9PiB7XG4gICAgICB0aGlzLm1vZGFscyA9IHRoaXMubW9kYWxzLmZpbHRlcigobSkgPT4gbSAhPT0gbW9kYWwpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0QWN0aXZlTW9kYWwoKTogTW9kYWxSZWYge1xuICAgIGNvbnN0IG1vZGFsID0gdGhpcy5tb2RhbHNbdGhpcy5tb2RhbHMubGVuZ3RoIC0gMV07XG4gICAgcmV0dXJuIG1vZGFsID8gbW9kYWwgOiBudWxsO1xuICB9XG5cbiAgZGlzbWlzc0FjdGl2ZU1vZGFsKHJlYXNvbj86IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IG1vZGFsOiBNb2RhbFJlZiA9IHRoaXMuZ2V0QWN0aXZlTW9kYWwoKTtcblxuICAgIGlmIChtb2RhbCkge1xuICAgICAgbW9kYWwuZGlzbWlzcyhyZWFzb24pO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlQWN0aXZlTW9kYWwocmVhc29uPzogYW55KTogdm9pZCB7XG4gICAgY29uc3QgbW9kYWw6IE1vZGFsUmVmID0gdGhpcy5nZXRBY3RpdmVNb2RhbCgpO1xuXG4gICAgaWYgKG1vZGFsKSB7XG4gICAgICBtb2RhbC5jbG9zZShyZWFzb24pO1xuICAgIH1cbiAgfVxufVxuIl19