@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
JavaScript
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