UNPKG

@spartacus/cart

Version:

`@spartacus/cart` is a package that you can include in your application, which allows you to use various cart features.

49 lines 6.14 kB
import { Injectable } from '@angular/core'; import { BASE_SITE_CONTEXT_ID, StorageSyncType, } from '@spartacus/core'; import { Subscription } from 'rxjs'; import * as i0 from "@angular/core"; import * as i1 from "@spartacus/cart/quick-order/root"; import * as i2 from "@spartacus/core"; export class QuickOrderStatePersistenceService { constructor(quickOrderService, siteContextParamsService, statePersistenceService) { this.quickOrderService = quickOrderService; this.siteContextParamsService = siteContextParamsService; this.statePersistenceService = statePersistenceService; this.subscription = new Subscription(); /** * Identifier used for storage key. */ this.key = 'quick-order'; } /** * Initializes the synchronization between state and browser storage. */ initSync() { this.subscription.add(this.statePersistenceService.syncWithStorage({ key: this.key, state$: this.quickOrderService.getEntries(), context$: this.siteContextParamsService.getValues([ BASE_SITE_CONTEXT_ID, ]), storageType: StorageSyncType.SESSION_STORAGE, onRead: (state) => this.onRead(state), })); } onRead(state) { if (state) { this.quickOrderService.loadEntries(state); } } ngOnDestroy() { this.subscription.unsubscribe(); } } QuickOrderStatePersistenceService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: QuickOrderStatePersistenceService, deps: [{ token: i1.QuickOrderFacade }, { token: i2.SiteContextParamsService }, { token: i2.StatePersistenceService }], target: i0.ɵɵFactoryTarget.Injectable }); QuickOrderStatePersistenceService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: QuickOrderStatePersistenceService, providedIn: 'root' }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: QuickOrderStatePersistenceService, decorators: [{ type: Injectable, args: [{ providedIn: 'root', }] }], ctorParameters: function () { return [{ type: i1.QuickOrderFacade }, { type: i2.SiteContextParamsService }, { type: i2.StatePersistenceService }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2stb3JkZXItc3RhdGUtcGVyc2lzdGFuY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2ZlYXR1cmUtbGlicy9jYXJ0L3F1aWNrLW9yZGVyL2NvcmUvc2VydmljZXMvcXVpY2stb3JkZXItc3RhdGUtcGVyc2lzdGFuY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFDTCxvQkFBb0IsRUFJcEIsZUFBZSxHQUNoQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFLcEMsTUFBTSxPQUFPLGlDQUFpQztJQUc1QyxZQUNZLGlCQUFtQyxFQUNuQyx3QkFBa0QsRUFDbEQsdUJBQWdEO1FBRmhELHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFDbkMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBTGxELGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQVE1Qzs7V0FFRztRQUNPLFFBQUcsR0FBRyxhQUFhLENBQUM7SUFMM0IsQ0FBQztJQU9KOztPQUVHO0lBQ0gsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUNuQixJQUFJLENBQUMsdUJBQXVCLENBQUMsZUFBZSxDQUFDO1lBQzNDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztZQUNiLE1BQU0sRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFO1lBQzNDLFFBQVEsRUFBRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsU0FBUyxDQUFDO2dCQUNoRCxvQkFBb0I7YUFDckIsQ0FBQztZQUNGLFdBQVcsRUFBRSxlQUFlLENBQUMsZUFBZTtZQUM1QyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1NBQ3RDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVTLE1BQU0sQ0FBQyxLQUErQjtRQUM5QyxJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDM0M7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEMsQ0FBQzs7OEhBdkNVLGlDQUFpQztrSUFBakMsaUNBQWlDLGNBRmhDLE1BQU07MkZBRVAsaUNBQWlDO2tCQUg3QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUXVpY2tPcmRlckZhY2FkZSB9IGZyb20gJ0BzcGFydGFjdXMvY2FydC9xdWljay1vcmRlci9yb290JztcbmltcG9ydCB7XG4gIEJBU0VfU0lURV9DT05URVhUX0lELFxuICBPcmRlckVudHJ5LFxuICBTaXRlQ29udGV4dFBhcmFtc1NlcnZpY2UsXG4gIFN0YXRlUGVyc2lzdGVuY2VTZXJ2aWNlLFxuICBTdG9yYWdlU3luY1R5cGUsXG59IGZyb20gJ0BzcGFydGFjdXMvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFF1aWNrT3JkZXJTdGF0ZVBlcnNpc3RlbmNlU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByb3RlY3RlZCBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHF1aWNrT3JkZXJTZXJ2aWNlOiBRdWlja09yZGVyRmFjYWRlLFxuICAgIHByb3RlY3RlZCBzaXRlQ29udGV4dFBhcmFtc1NlcnZpY2U6IFNpdGVDb250ZXh0UGFyYW1zU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgc3RhdGVQZXJzaXN0ZW5jZVNlcnZpY2U6IFN0YXRlUGVyc2lzdGVuY2VTZXJ2aWNlXG4gICkge31cblxuICAvKipcbiAgICogSWRlbnRpZmllciB1c2VkIGZvciBzdG9yYWdlIGtleS5cbiAgICovXG4gIHByb3RlY3RlZCBrZXkgPSAncXVpY2stb3JkZXInO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgc3luY2hyb25pemF0aW9uIGJldHdlZW4gc3RhdGUgYW5kIGJyb3dzZXIgc3RvcmFnZS5cbiAgICovXG4gIGluaXRTeW5jKCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMuc3RhdGVQZXJzaXN0ZW5jZVNlcnZpY2Uuc3luY1dpdGhTdG9yYWdlKHtcbiAgICAgICAga2V5OiB0aGlzLmtleSxcbiAgICAgICAgc3RhdGUkOiB0aGlzLnF1aWNrT3JkZXJTZXJ2aWNlLmdldEVudHJpZXMoKSxcbiAgICAgICAgY29udGV4dCQ6IHRoaXMuc2l0ZUNvbnRleHRQYXJhbXNTZXJ2aWNlLmdldFZhbHVlcyhbXG4gICAgICAgICAgQkFTRV9TSVRFX0NPTlRFWFRfSUQsXG4gICAgICAgIF0pLFxuICAgICAgICBzdG9yYWdlVHlwZTogU3RvcmFnZVN5bmNUeXBlLlNFU1NJT05fU1RPUkFHRSxcbiAgICAgICAgb25SZWFkOiAoc3RhdGUpID0+IHRoaXMub25SZWFkKHN0YXRlKSxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvblJlYWQoc3RhdGU6IE9yZGVyRW50cnlbXSB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIGlmIChzdGF0ZSkge1xuICAgICAgdGhpcy5xdWlja09yZGVyU2VydmljZS5sb2FkRW50cmllcyhzdGF0ZSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19