@spartacus/cart
Version:
`@spartacus/cart` is a package that you can include in your application, which allows you to use various cart features.
1,401 lines • 70.7 kB
JavaScript
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@ngrx/effects'), require('@spartacus/cart/saved-cart/root'), require('@spartacus/core'), require('rxjs'), require('rxjs/operators'), require('@ngrx/store')) :
typeof define === 'function' && define.amd ? define('@spartacus/cart/saved-cart/core', ['exports', '@angular/core', '@ngrx/effects', '@spartacus/cart/saved-cart/root', '@spartacus/core', 'rxjs', 'rxjs/operators', '@ngrx/store'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.spartacus = global.spartacus || {}, global.spartacus.cart = global.spartacus.cart || {}, global.spartacus.cart['saved-cart'] = global.spartacus.cart['saved-cart'] || {}, global.spartacus.cart['saved-cart'].core = {}), global.ng.core, global.effects, global.spartacus.cart['saved-cart'].root, global.core, global.rxjs, global.rxjs.operators, global.store));
}(this, (function (exports, i0, i1, root, i2, rxjs, operators, i1$1) { 'use strict';
function _interopNamespace(e) {
if (e && e.__esModule) return e;
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: function () {
return e[k];
}
});
}
});
}
n['default'] = e;
return Object.freeze(n);
}
var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
var i1__namespace$1 = /*#__PURE__*/_interopNamespace(i1);
var i2__namespace = /*#__PURE__*/_interopNamespace(i2);
var i1__namespace = /*#__PURE__*/_interopNamespace(i1$1);
var SavedCartAdapter = /** @class */ (function () {
function SavedCartAdapter() {
}
return SavedCartAdapter;
}());
var SavedCartConnector = /** @class */ (function () {
function SavedCartConnector(adapter) {
this.adapter = adapter;
}
SavedCartConnector.prototype.get = function (userId, cartId) {
return this.adapter.load(userId, cartId);
};
SavedCartConnector.prototype.getList = function (userId) {
return this.adapter.loadList(userId);
};
SavedCartConnector.prototype.restoreSavedCart = function (userId, cartId) {
return this.adapter.restoreSavedCart(userId, cartId);
};
SavedCartConnector.prototype.saveCart = function (userId, cartId, saveCartName, saveCartDescription) {
return this.adapter.saveCart(userId, cartId, saveCartName, saveCartDescription);
};
SavedCartConnector.prototype.cloneSavedCart = function (userId, cartId, saveCartName) {
return this.adapter.cloneSavedCart(userId, cartId, saveCartName);
};
return SavedCartConnector;
}());
SavedCartConnector.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0__namespace, type: SavedCartConnector, deps: [{ token: SavedCartAdapter }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
SavedCartConnector.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0__namespace, type: SavedCartConnector });
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0__namespace, type: SavedCartConnector, decorators: [{
type: i0.Injectable
}], ctorParameters: function () { return [{ type: SavedCartAdapter }]; } });
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
/* global Reflect, Promise */
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b)
if (Object.prototype.hasOwnProperty.call(b, p))
d[p] = b[p]; };
return extendStatics(d, b);
};
function __extends(d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
}
var __assign = function () {
__assign = Object.assign || function __assign(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s)
if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
function __rest(s, e) {
var t = {};
for (var p in s)
if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
}
function __decorate(decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
r = Reflect.decorate(decorators, target, key, desc);
else
for (var i = decorators.length - 1; i >= 0; i--)
if (d = decorators[i])
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
}
function __param(paramIndex, decorator) {
return function (target, key) { decorator(target, key, paramIndex); };
}
function __metadata(metadataKey, metadataValue) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
return Reflect.metadata(metadataKey, metadataValue);
}
function __awaiter(thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try {
step(generator.next(value));
}
catch (e) {
reject(e);
} }
function rejected(value) { try {
step(generator["throw"](value));
}
catch (e) {
reject(e);
} }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
}
function __generator(thisArg, body) {
var _ = { label: 0, sent: function () { if (t[0] & 1)
throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f)
throw new TypeError("Generator is already executing.");
while (_)
try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
return t;
if (y = 0, t)
op = [op[0] & 2, t.value];
switch (op[0]) {
case 0:
case 1:
t = op;
break;
case 4:
_.label++;
return { value: op[1], done: false };
case 5:
_.label++;
y = op[1];
op = [0];
continue;
case 7:
op = _.ops.pop();
_.trys.pop();
continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
_ = 0;
continue;
}
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) {
_.label = op[1];
break;
}
if (op[0] === 6 && _.label < t[1]) {
_.label = t[1];
t = op;
break;
}
if (t && _.label < t[2]) {
_.label = t[2];
_.ops.push(op);
break;
}
if (t[2])
_.ops.pop();
_.trys.pop();
continue;
}
op = body.call(thisArg, _);
}
catch (e) {
op = [6, e];
y = 0;
}
finally {
f = t = 0;
}
if (op[0] & 5)
throw op[1];
return { value: op[0] ? op[1] : void 0, done: true };
}
}
var __createBinding = Object.create ? (function (o, m, k, k2) {
if (k2 === undefined)
k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function () { return m[k]; } });
}) : (function (o, m, k, k2) {
if (k2 === undefined)
k2 = k;
o[k2] = m[k];
});
function __exportStar(m, o) {
for (var p in m)
if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p))
__createBinding(o, m, p);
}
function __values(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m)
return m.call(o);
if (o && typeof o.length === "number")
return {
next: function () {
if (o && i >= o.length)
o = void 0;
return { value: o && o[i++], done: !o };
}
};
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
}
function __read(o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m)
return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
ar.push(r.value);
}
catch (error) {
e = { error: error };
}
finally {
try {
if (r && !r.done && (m = i["return"]))
m.call(i);
}
finally {
if (e)
throw e.error;
}
}
return ar;
}
/** @deprecated */
function __spread() {
for (var ar = [], i = 0; i < arguments.length; i++)
ar = ar.concat(__read(arguments[i]));
return ar;
}
/** @deprecated */
function __spreadArrays() {
for (var s = 0, i = 0, il = arguments.length; i < il; i++)
s += arguments[i].length;
for (var r = Array(s), k = 0, i = 0; i < il; i++)
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
r[k] = a[j];
return r;
}
function __spreadArray(to, from, pack) {
if (pack || arguments.length === 2)
for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar)
ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || from);
}
function __await(v) {
return this instanceof __await ? (this.v = v, this) : new __await(v);
}
function __asyncGenerator(thisArg, _arguments, generator) {
if (!Symbol.asyncIterator)
throw new TypeError("Symbol.asyncIterator is not defined.");
var g = generator.apply(thisArg, _arguments || []), i, q = [];
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
function verb(n) { if (g[n])
i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
function resume(n, v) { try {
step(g[n](v));
}
catch (e) {
settle(q[0][3], e);
} }
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
function fulfill(value) { resume("next", value); }
function reject(value) { resume("throw", value); }
function settle(f, v) { if (f(v), q.shift(), q.length)
resume(q[0][0], q[0][1]); }
}
function __asyncDelegator(o) {
var i, p;
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
}
function __asyncValues(o) {
if (!Symbol.asyncIterator)
throw new TypeError("Symbol.asyncIterator is not defined.");
var m = o[Symbol.asyncIterator], i;
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function (v) { resolve({ value: v, done: d }); }, reject); }
}
function __makeTemplateObject(cooked, raw) {
if (Object.defineProperty) {
Object.defineProperty(cooked, "raw", { value: raw });
}
else {
cooked.raw = raw;
}
return cooked;
}
;
var __setModuleDefault = Object.create ? (function (o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function (o, v) {
o["default"] = v;
};
function __importStar(mod) {
if (mod && mod.__esModule)
return mod;
var result = {};
if (mod != null)
for (var k in mod)
if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
__createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
}
function __importDefault(mod) {
return (mod && mod.__esModule) ? mod : { default: mod };
}
function __classPrivateFieldGet(receiver, state, kind, f) {
if (kind === "a" && !f)
throw new TypeError("Private accessor was defined without a getter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
throw new TypeError("Cannot read private member from an object whose class did not declare it");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
}
function __classPrivateFieldSet(receiver, state, value, kind, f) {
if (kind === "m")
throw new TypeError("Private method is not writable");
if (kind === "a" && !f)
throw new TypeError("Private accessor was defined without a setter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
throw new TypeError("Cannot write private member to an object whose class did not declare it");
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
}
var SAVED_CART_LIST_PROCESS_ID = 'saved-cart-list';
var SAVED_CART_RESTORE_CART_PROCESS_ID = 'saved-cart-restore-cart';
var SAVED_CART_SAVE_CART_PROCESS_ID = 'saved-cart-save-cart';
var SAVED_CART_CLONE_CART_PROCESS_ID = 'saved-cart-clone-cart';
var LOAD_SAVED_CART = '[Saved Cart] Load Saved Cart';
var LOAD_SAVED_CART_SUCCESS = '[Saved Cart] Load Saved Cart Success';
var LOAD_SAVED_CART_FAIL = '[Saved Cart] Load Saved Cart Fail';
var LOAD_SAVED_CARTS = '[Saved Cart] Load Saved Carts';
var LOAD_SAVED_CARTS_SUCCESS = '[Saved Cart] Load Saved Carts Success';
var LOAD_SAVED_CARTS_FAIL = '[Saved Cart] Load Saved Carts Fail';
var CLEAR_SAVED_CARTS = '[Saved Cart] Clear Saved Carts';
var RESTORE_SAVED_CART = '[Saved Cart] Restore Saved Cart';
var RESTORE_SAVED_CART_SUCCESS = '[Saved Cart] Restore Saved Cart Success';
var RESTORE_SAVED_CART_FAIL = '[Saved Cart] Restore Saved Cart Fail';
var CLEAR_RESTORE_SAVED_CART = '[Saved Cart] Clear Restore Saved Cart';
var SAVE_CART = '[Saved Cart] Save Cart';
var SAVE_CART_SUCCESS = '[Saved Cart] Save Cart Success';
var SAVE_CART_FAIL = '[Saved Cart] Save Cart Fail';
var CLEAR_SAVE_CART = '[Saved Cart] Clear Save Cart';
var EDIT_SAVED_CART = '[Saved Cart] Edit Saved Cart';
var EDIT_SAVED_CART_SUCCESS = '[Saved Cart] Edit Saved Cart Success';
var EDIT_SAVED_CART_FAIL = '[Saved Cart] Edit Saved Cart Fail';
var CLONE_SAVED_CART = '[Saved Cart] Clone Saved Cart';
var CLONE_SAVED_CART_SUCCESS = '[Saved Cart] Clone Saved Cart Success';
var CLONE_SAVED_CART_FAIL = '[Saved Cart] Clone Saved Cart Fail';
var CLEAR_CLONE_SAVED_CART = '[Saved Cart] Clear Clone Saved Cart';
var LoadSavedCart = /** @class */ (function (_super) {
__extends(LoadSavedCart, _super);
function LoadSavedCart(payload) {
var _this = _super.call(this, i2.MULTI_CART_DATA, payload.cartId) || this;
_this.payload = payload;
_this.type = LOAD_SAVED_CART;
return _this;
}
return LoadSavedCart;
}(i2.StateUtils.EntityLoadAction));
var LoadSavedCartSuccess = /** @class */ (function (_super) {
__extends(LoadSavedCartSuccess, _super);
function LoadSavedCartSuccess(payload) {
var _this = _super.call(this, i2.MULTI_CART_DATA, payload.cartId) || this;
_this.payload = payload;
_this.type = LOAD_SAVED_CART_SUCCESS;
return _this;
}
return LoadSavedCartSuccess;
}(i2.StateUtils.EntitySuccessAction));
var LoadSavedCartFail = /** @class */ (function (_super) {
__extends(LoadSavedCartFail, _super);
function LoadSavedCartFail(payload) {
var _this = _super.call(this, i2.MULTI_CART_DATA, payload.cartId, payload === null || payload === void 0 ? void 0 : payload.error) || this;
_this.payload = payload;
_this.type = LOAD_SAVED_CART_FAIL;
return _this;
}
return LoadSavedCartFail;
}(i2.StateUtils.EntityFailAction));
var LoadSavedCarts = /** @class */ (function (_super) {
__extends(LoadSavedCarts, _super);
function LoadSavedCarts(payload) {
var _this = _super.call(this, i2.PROCESS_FEATURE, SAVED_CART_LIST_PROCESS_ID) || this;
_this.payload = payload;
_this.type = LOAD_SAVED_CARTS;
return _this;
}
return LoadSavedCarts;
}(i2.StateUtils.EntityLoadAction));
var LoadSavedCartsSuccess = /** @class */ (function (_super) {
__extends(LoadSavedCartsSuccess, _super);
function LoadSavedCartsSuccess(payload) {
var _this = _super.call(this, i2.PROCESS_FEATURE, SAVED_CART_LIST_PROCESS_ID) || this;
_this.payload = payload;
_this.type = LOAD_SAVED_CARTS_SUCCESS;
return _this;
}
return LoadSavedCartsSuccess;
}(i2.StateUtils.EntitySuccessAction));
var LoadSavedCartsFail = /** @class */ (function (_super) {
__extends(LoadSavedCartsFail, _super);
function LoadSavedCartsFail(payload) {
var _this = _super.call(this, i2.PROCESS_FEATURE, SAVED_CART_LIST_PROCESS_ID, payload.error) || this;
_this.payload = payload;
_this.type = LOAD_SAVED_CARTS_FAIL;
return _this;
}
return LoadSavedCartsFail;
}(i2.StateUtils.EntityFailAction));
var ClearSavedCarts = /** @class */ (function (_super) {
__extends(ClearSavedCarts, _super);
function ClearSavedCarts() {
var _this = _super.call(this, i2.PROCESS_FEATURE, SAVED_CART_LIST_PROCESS_ID) || this;
_this.type = CLEAR_SAVED_CARTS;
return _this;
}
return ClearSavedCarts;
}(i2.StateUtils.EntityLoaderResetAction));
var RestoreSavedCart = /** @class */ (function (_super) {
__extends(RestoreSavedCart, _super);
function RestoreSavedCart(payload) {
var _this = _super.call(this, i2.PROCESS_FEATURE, SAVED_CART_RESTORE_CART_PROCESS_ID) || this;
_this.payload = payload;
_this.type = RESTORE_SAVED_CART;
return _this;
}
return RestoreSavedCart;
}(i2.StateUtils.EntityLoadAction));
var RestoreSavedCartSuccess = /** @class */ (function (_super) {
__extends(RestoreSavedCartSuccess, _super);
function RestoreSavedCartSuccess(payload) {
var _this = _super.call(this, i2.PROCESS_FEATURE, SAVED_CART_RESTORE_CART_PROCESS_ID) || this;
_this.payload = payload;
_this.type = RESTORE_SAVED_CART_SUCCESS;
return _this;
}
return RestoreSavedCartSuccess;
}(i2.StateUtils.EntitySuccessAction));
var RestoreSavedCartFail = /** @class */ (function (_super) {
__extends(RestoreSavedCartFail, _super);
function RestoreSavedCartFail(payload) {
var _this = _super.call(this, i2.PROCESS_FEATURE, SAVED_CART_RESTORE_CART_PROCESS_ID, payload.error) || this;
_this.payload = payload;
_this.type = RESTORE_SAVED_CART_FAIL;
return _this;
}
return RestoreSavedCartFail;
}(i2.StateUtils.EntityFailAction));
var ClearRestoreSavedCart = /** @class */ (function (_super) {
__extends(ClearRestoreSavedCart, _super);
function ClearRestoreSavedCart() {
var _this = _super.call(this, i2.PROCESS_FEATURE, SAVED_CART_RESTORE_CART_PROCESS_ID) || this;
_this.type = CLEAR_RESTORE_SAVED_CART;
return _this;
}
return ClearRestoreSavedCart;
}(i2.StateUtils.EntityLoaderResetAction));
var SaveCart = /** @class */ (function (_super) {
__extends(SaveCart, _super);
function SaveCart(payload) {
var _this = _super.call(this, i2.PROCESS_FEATURE, SAVED_CART_SAVE_CART_PROCESS_ID) || this;
_this.payload = payload;
_this.type = SAVE_CART;
return _this;
}
return SaveCart;
}(i2.StateUtils.EntityLoadAction));
var SaveCartSuccess = /** @class */ (function (_super) {
__extends(SaveCartSuccess, _super);
function SaveCartSuccess(payload) {
var _this = _super.call(this, i2.PROCESS_FEATURE, SAVED_CART_SAVE_CART_PROCESS_ID) || this;
_this.payload = payload;
_this.type = SAVE_CART_SUCCESS;
return _this;
}
return SaveCartSuccess;
}(i2.StateUtils.EntitySuccessAction));
var SaveCartFail = /** @class */ (function (_super) {
__extends(SaveCartFail, _super);
function SaveCartFail(payload) {
var _this = _super.call(this, i2.PROCESS_FEATURE, SAVED_CART_SAVE_CART_PROCESS_ID, payload.error) || this;
_this.payload = payload;
_this.type = SAVE_CART_FAIL;
return _this;
}
return SaveCartFail;
}(i2.StateUtils.EntityFailAction));
var ClearSaveCart = /** @class */ (function (_super) {
__extends(ClearSaveCart, _super);
function ClearSaveCart() {
var _this = _super.call(this, i2.PROCESS_FEATURE, SAVED_CART_SAVE_CART_PROCESS_ID) || this;
_this.type = CLEAR_SAVE_CART;
return _this;
}
return ClearSaveCart;
}(i2.StateUtils.EntityLoaderResetAction));
var EditSavedCart = /** @class */ (function (_super) {
__extends(EditSavedCart, _super);
function EditSavedCart(payload) {
var _this = _super.call(this, i2.PROCESS_FEATURE, SAVED_CART_SAVE_CART_PROCESS_ID) || this;
_this.payload = payload;
_this.type = EDIT_SAVED_CART;
return _this;
}
return EditSavedCart;
}(i2.StateUtils.EntityLoadAction));
var EditSavedCartSuccess = /** @class */ (function (_super) {
__extends(EditSavedCartSuccess, _super);
function EditSavedCartSuccess(payload) {
var _this = _super.call(this, i2.PROCESS_FEATURE, SAVED_CART_SAVE_CART_PROCESS_ID) || this;
_this.payload = payload;
_this.type = EDIT_SAVED_CART_SUCCESS;
return _this;
}
return EditSavedCartSuccess;
}(i2.StateUtils.EntitySuccessAction));
var EditSavedCartFail = /** @class */ (function (_super) {
__extends(EditSavedCartFail, _super);
function EditSavedCartFail(payload) {
var _this = _super.call(this, i2.PROCESS_FEATURE, SAVED_CART_SAVE_CART_PROCESS_ID, payload.error) || this;
_this.payload = payload;
_this.type = EDIT_SAVED_CART_FAIL;
return _this;
}
return EditSavedCartFail;
}(i2.StateUtils.EntityFailAction));
var CloneSavedCart = /** @class */ (function (_super) {
__extends(CloneSavedCart, _super);
function CloneSavedCart(payload) {
var _this = _super.call(this, i2.PROCESS_FEATURE, SAVED_CART_CLONE_CART_PROCESS_ID) || this;
_this.payload = payload;
_this.type = CLONE_SAVED_CART;
return _this;
}
return CloneSavedCart;
}(i2.StateUtils.EntityLoadAction));
var CloneSavedCartSuccess = /** @class */ (function (_super) {
__extends(CloneSavedCartSuccess, _super);
function CloneSavedCartSuccess(payload) {
var _this = _super.call(this, i2.PROCESS_FEATURE, SAVED_CART_CLONE_CART_PROCESS_ID) || this;
_this.payload = payload;
_this.type = CLONE_SAVED_CART_SUCCESS;
return _this;
}
return CloneSavedCartSuccess;
}(i2.StateUtils.EntitySuccessAction));
var CloneSavedCartFail = /** @class */ (function (_super) {
__extends(CloneSavedCartFail, _super);
function CloneSavedCartFail(payload) {
var _this = _super.call(this, i2.PROCESS_FEATURE, SAVED_CART_CLONE_CART_PROCESS_ID, payload.error) || this;
_this.payload = payload;
_this.type = CLONE_SAVED_CART_FAIL;
return _this;
}
return CloneSavedCartFail;
}(i2.StateUtils.EntityFailAction));
var ClearCloneSavedCart = /** @class */ (function (_super) {
__extends(ClearCloneSavedCart, _super);
function ClearCloneSavedCart() {
var _this = _super.call(this, i2.PROCESS_FEATURE, SAVED_CART_CLONE_CART_PROCESS_ID) || this;
_this.type = CLEAR_CLONE_SAVED_CART;
return _this;
}
return ClearCloneSavedCart;
}(i2.StateUtils.EntityLoaderResetAction));
var savedCart_action = /*#__PURE__*/Object.freeze({
__proto__: null,
LOAD_SAVED_CART: LOAD_SAVED_CART,
LOAD_SAVED_CART_SUCCESS: LOAD_SAVED_CART_SUCCESS,
LOAD_SAVED_CART_FAIL: LOAD_SAVED_CART_FAIL,
LOAD_SAVED_CARTS: LOAD_SAVED_CARTS,
LOAD_SAVED_CARTS_SUCCESS: LOAD_SAVED_CARTS_SUCCESS,
LOAD_SAVED_CARTS_FAIL: LOAD_SAVED_CARTS_FAIL,
CLEAR_SAVED_CARTS: CLEAR_SAVED_CARTS,
RESTORE_SAVED_CART: RESTORE_SAVED_CART,
RESTORE_SAVED_CART_SUCCESS: RESTORE_SAVED_CART_SUCCESS,
RESTORE_SAVED_CART_FAIL: RESTORE_SAVED_CART_FAIL,
CLEAR_RESTORE_SAVED_CART: CLEAR_RESTORE_SAVED_CART,
SAVE_CART: SAVE_CART,
SAVE_CART_SUCCESS: SAVE_CART_SUCCESS,
SAVE_CART_FAIL: SAVE_CART_FAIL,
CLEAR_SAVE_CART: CLEAR_SAVE_CART,
EDIT_SAVED_CART: EDIT_SAVED_CART,
EDIT_SAVED_CART_SUCCESS: EDIT_SAVED_CART_SUCCESS,
EDIT_SAVED_CART_FAIL: EDIT_SAVED_CART_FAIL,
CLONE_SAVED_CART: CLONE_SAVED_CART,
CLONE_SAVED_CART_SUCCESS: CLONE_SAVED_CART_SUCCESS,
CLONE_SAVED_CART_FAIL: CLONE_SAVED_CART_FAIL,
CLEAR_CLONE_SAVED_CART: CLEAR_CLONE_SAVED_CART,
LoadSavedCart: LoadSavedCart,
LoadSavedCartSuccess: LoadSavedCartSuccess,
LoadSavedCartFail: LoadSavedCartFail,
LoadSavedCarts: LoadSavedCarts,
LoadSavedCartsSuccess: LoadSavedCartsSuccess,
LoadSavedCartsFail: LoadSavedCartsFail,
ClearSavedCarts: ClearSavedCarts,
RestoreSavedCart: RestoreSavedCart,
RestoreSavedCartSuccess: RestoreSavedCartSuccess,
RestoreSavedCartFail: RestoreSavedCartFail,
ClearRestoreSavedCart: ClearRestoreSavedCart,
SaveCart: SaveCart,
SaveCartSuccess: SaveCartSuccess,
SaveCartFail: SaveCartFail,
ClearSaveCart: ClearSaveCart,
EditSavedCart: EditSavedCart,
EditSavedCartSuccess: EditSavedCartSuccess,
EditSavedCartFail: EditSavedCartFail,
CloneSavedCart: CloneSavedCart,
CloneSavedCartSuccess: CloneSavedCartSuccess,
CloneSavedCartFail: CloneSavedCartFail,
ClearCloneSavedCart: ClearCloneSavedCart
});
var SavedCartEventBuilder = /** @class */ (function () {
function SavedCartEventBuilder(actionsSubject, eventService, stateEventService, multiCartService) {
this.actionsSubject = actionsSubject;
this.eventService = eventService;
this.stateEventService = stateEventService;
this.multiCartService = multiCartService;
this.register();
}
/**
* Registers events for the saved cart
*/
SavedCartEventBuilder.prototype.register = function () {
this.registerRestoreSavedCartEvents();
this.registerDeleteSavedCartEvents();
this.registerSaveCartEvents();
this.registerEditSavedCartEvents();
this.registerCloneSavedCartEvents();
};
/**
* Registers restore saved cart events
*/
SavedCartEventBuilder.prototype.registerRestoreSavedCartEvents = function () {
this.buildRestoreSavedCartEvents({
action: RESTORE_SAVED_CART,
event: root.RestoreSavedCartEvent,
});
this.buildRestoreSavedCartEvents({
action: RESTORE_SAVED_CART_SUCCESS,
event: root.RestoreSavedCartSuccessEvent,
});
this.buildRestoreSavedCartEvents({
action: RESTORE_SAVED_CART_FAIL,
event: root.RestoreSavedCartFailEvent,
});
};
/**
* Registers delete saved cart events
*/
SavedCartEventBuilder.prototype.registerDeleteSavedCartEvents = function () {
this.stateEventService.register({
action: i2.CartActions.DELETE_CART,
event: root.DeleteSavedCartEvent,
factory: function (action) { return i2.createFrom(root.DeleteSavedCartEvent, Object.assign(Object.assign({}, action.payload), { cartCode: action.payload.cartId })); },
});
this.stateEventService.register({
action: i2.CartActions.DELETE_CART_SUCCESS,
event: root.DeleteSavedCartSuccessEvent,
factory: function (action) { return i2.createFrom(root.DeleteSavedCartSuccessEvent, Object.assign(Object.assign({}, action.payload), { cartCode: action.payload.cartId })); },
});
this.stateEventService.register({
action: i2.CartActions.DELETE_CART_FAIL,
event: root.DeleteSavedCartFailEvent,
factory: function (action) { return i2.createFrom(root.DeleteSavedCartFailEvent, Object.assign(Object.assign({}, action.payload), { cartCode: action.payload.cartId })); },
});
};
/**
* Registers save cart events
*/
SavedCartEventBuilder.prototype.registerSaveCartEvents = function () {
this.buildSaveCartSuccessEvent({
action: SAVE_CART_SUCCESS,
event: root.SaveCartSuccessEvent,
});
this.stateEventService.register({
action: SAVE_CART_FAIL,
event: root.SaveCartFailEvent,
factory: function (action) { return i2.createFrom(root.SaveCartFailEvent, Object.assign(Object.assign({}, action.payload), { cartCode: action.payload.cartId })); },
});
this.stateEventService.register({
action: SAVE_CART,
event: root.SaveCartEvent,
factory: function (action) {
return i2.createFrom(root.SaveCartEvent, Object.assign(Object.assign({}, action.payload), { cartCode: action.payload.cartId }));
},
});
};
/**
* Registers edit saved cart events
*/
SavedCartEventBuilder.prototype.registerEditSavedCartEvents = function () {
this.buildSaveCartSuccessEvent({
action: EDIT_SAVED_CART_SUCCESS,
event: root.EditSavedCartSuccessEvent,
});
this.stateEventService.register({
action: EDIT_SAVED_CART_FAIL,
event: root.EditSavedCartFailEvent,
factory: function (action) { return i2.createFrom(root.EditSavedCartFailEvent, Object.assign(Object.assign({}, action.payload), { cartCode: action.payload.cartId })); },
});
this.stateEventService.register({
action: EDIT_SAVED_CART,
event: root.EditSavedCartEvent,
factory: function (action) {
return i2.createFrom(root.EditSavedCartEvent, Object.assign(Object.assign({}, action.payload), { cartCode: action.payload.cartId }));
},
});
};
/**
* Registers clone saved cart events
*/
SavedCartEventBuilder.prototype.registerCloneSavedCartEvents = function () {
this.buildRestoreSavedCartEvents({
action: CLONE_SAVED_CART,
event: root.CloneSavedCartEvent,
});
this.buildRestoreSavedCartEvents({
action: CLONE_SAVED_CART_SUCCESS,
event: root.CloneSavedCartSuccessEvent,
});
this.buildRestoreSavedCartEvents({
action: CLONE_SAVED_CART_FAIL,
event: root.CloneSavedCartFailEvent,
});
};
/**
* Builds the restore save cart events from the action and cart
*
* @param mapping mapping declaration from `action` string type to `event` class type
* @param saveTime should the saveTime attribute be added to the event
* @returns
*/
SavedCartEventBuilder.prototype.buildRestoreSavedCartEvents = function (mapping) {
var _this = this;
var eventStream$ = this.getAction(mapping.action).pipe(operators.switchMap(function (action) { return rxjs.of(action).pipe(operators.withLatestFrom(_this.multiCartService.getCart(action.payload.cartId))); }), operators.map(function (_a) {
var _b = __read(_a, 2), action = _b[0], cart = _b[1];
return i2.createFrom(mapping.event, Object.assign(Object.assign(Object.assign({}, action.payload), { cartCode: cart.code, saveCartName: cart.name, saveCartDescription: cart.description }), (cart.saveTime && { saveTime: cart.saveTime })));
}));
return this.eventService.register(mapping.event, eventStream$);
};
/**
* Builds save cart event by adding the saveTime from the cart
*
* @param mapping mapping declaration from `action` string type to `event` class type
* @returns events register function
*/
SavedCartEventBuilder.prototype.buildSaveCartSuccessEvent = function (mapping) {
var _this = this;
var eventStream$ = this.getAction(mapping.action).pipe(operators.switchMap(function (action) { return rxjs.of(action).pipe(operators.withLatestFrom(_this.multiCartService.getCart(action.payload.cartId))); }), operators.filter(function (_a) {
var _b = __read(_a, 2), cart = _b[1];
return Boolean(cart);
}), operators.map(function (_a) {
var _b = __read(_a, 2), action = _b[0], cart = _b[1];
return i2.createFrom(mapping.event, Object.assign(Object.assign({}, action.payload), { cartCode: cart.code, saveTime: cart.saveTime }));
}));
return this.eventService.register(mapping.event, eventStream$);
};
/**
* Returns a stream of actions only of a given type(s)
*
* @param actionType type(s) of actions
*/
SavedCartEventBuilder.prototype.getAction = function (actionType) {
return this.actionsSubject.pipe(i1.ofType.apply(void 0, __spreadArray([], __read([].concat(actionType)))));
};
return SavedCartEventBuilder;
}());
SavedCartEventBuilder.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0__namespace, type: SavedCartEventBuilder, deps: [{ token: i1__namespace.ActionsSubject }, { token: i2__namespace.EventService }, { token: i2__namespace.StateEventService }, { token: i2__namespace.MultiCartService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
SavedCartEventBuilder.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0__namespace, type: SavedCartEventBuilder, providedIn: 'root' });
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0__namespace, type: SavedCartEventBuilder, decorators: [{
type: i0.Injectable,
args: [{ providedIn: 'root' }]
}], ctorParameters: function () { return [{ type: i1__namespace.ActionsSubject }, { type: i2__namespace.EventService }, { type: i2__namespace.StateEventService }, { type: i2__namespace.MultiCartService }]; } });
var SavedCartEventsModule = /** @class */ (function () {
function SavedCartEventsModule(_savedCartEventBuilder) {
}
return SavedCartEventsModule;
}());
SavedCartEventsModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0__namespace, type: SavedCartEventsModule, deps: [{ token: SavedCartEventBuilder }], target: i0__namespace.ɵɵFactoryTarget.NgModule });
SavedCartEventsModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0__namespace, type: SavedCartEventsModule });
SavedCartEventsModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0__namespace, type: SavedCartEventsModule });
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0__namespace, type: SavedCartEventsModule, decorators: [{
type: i0.NgModule,
args: [{}]
}], ctorParameters: function () { return [{ type: SavedCartEventBuilder }]; } });
var SavedCartEffects = /** @class */ (function () {
function SavedCartEffects(actions$, savedCartConnector, activeCartService, globalMessageService) {
var _this = this;
this.actions$ = actions$;
this.savedCartConnector = savedCartConnector;
this.activeCartService = activeCartService;
this.globalMessageService = globalMessageService;
this.loadSavedCart$ = this.actions$.pipe(i1.ofType(LOAD_SAVED_CART), operators.map(function (action) { return action.payload; }), operators.switchMap(function (_b) {
var userId = _b.userId, cartId = _b.cartId;
return _this.savedCartConnector.get(userId, cartId).pipe(operators.switchMap(function (savedCart) {
return [
new i2.CartActions.LoadCartSuccess({
userId: userId,
cartId: cartId,
cart: savedCart,
}),
new LoadSavedCartSuccess({ userId: userId, cartId: cartId }),
];
}), operators.catchError(function (error) { return rxjs.of(new LoadSavedCartFail({
userId: userId,
cartId: cartId,
error: i2.normalizeHttpError(error),
})); }));
}));
this.loadSavedCarts$ = this.actions$.pipe(i1.ofType(LOAD_SAVED_CARTS), operators.map(function (action) { return action.payload; }), operators.switchMap(function (_b) {
var userId = _b.userId;
return _this.savedCartConnector.getList(userId).pipe(operators.switchMap(function (savedCarts) {
return [
new i2.CartActions.LoadCartsSuccess(savedCarts),
new LoadSavedCartsSuccess({ userId: userId }),
];
}), operators.catchError(function (error) { return rxjs.of(new LoadSavedCartsFail({
userId: userId,
error: i2.normalizeHttpError(error),
})); }));
}));
this.restoreSavedCart$ = this.actions$.pipe(i1.ofType(RESTORE_SAVED_CART), operators.map(function (action) { return action.payload; }), operators.withLatestFrom(this.activeCartService.getActive()), operators.switchMap(function (_b) {
var _c = __read(_b, 2), _d = _c[0], userId = _d.userId, cartId = _d.cartId, activeCart = _c[1];
var _a;
var actions = [];
if (((_a = activeCart === null || activeCart === void 0 ? void 0 : activeCart.entries) !== null && _a !== void 0 ? _a : []).length > 0) {
if (activeCart.code) {
/**
* Instead of calling the SaveCartAction, we are calling the edit saved cart
* because we do not want to clear the state when we swap carts between active and saved cart
*/
actions.push(new EditSavedCart({
userId: userId,
cartId: activeCart.code,
saveCartName: '',
saveCartDescription: '',
}));
}
}
return _this.savedCartConnector.restoreSavedCart(userId, cartId).pipe(operators.switchMap(function (savedCart) {
var _a;
_this.globalMessageService.add({
key: ((_a = activeCart === null || activeCart === void 0 ? void 0 : activeCart.entries) !== null && _a !== void 0 ? _a : []).length > 0
? 'savedCartList.swapCartWithActiveCart'
: 'savedCartList.swapCartNoActiveCart',
params: {
cartName: cartId,
previousCartName: activeCart.code,
},
}, i2.GlobalMessageType.MSG_TYPE_CONFIRMATION);
return __spreadArray(__spreadArray([], __read(actions)), [
new i2.CartActions.SetActiveCartId(cartId),
new i2.CartActions.LoadCartSuccess({
userId: userId,
cartId: cartId,
cart: savedCart,
}),
new RestoreSavedCartSuccess({ userId: userId, cartId: cartId }),
]);
}), operators.catchError(function (error) { return rxjs.of(new RestoreSavedCartFail({
userId: userId,
cartId: cartId,
error: i2.normalizeHttpError(error),
})); }));
}));
this.saveCart$ = this.actions$.pipe(i1.ofType(SAVE_CART), operators.map(function (action) { return action.payload; }), operators.switchMap(function (_b) {
var userId = _b.userId, cartId = _b.cartId, saveCartName = _b.saveCartName, saveCartDescription = _b.saveCartDescription;
return _this.savedCartConnector
.saveCart(userId, cartId, saveCartName, saveCartDescription)
.pipe(operators.switchMap(function (savedCart) {
return [
new i2.CartActions.ClearCartState(),
new i2.CartActions.LoadCartSuccess({
userId: userId,
cartId: cartId,
cart: savedCart,
}),
new SaveCartSuccess({
userId: userId,
cartId: cartId,
saveCartName: saveCartName,
saveCartDescription: saveCartDescription,
}),
];
}), operators.catchError(function (error) { return rxjs.of(new SaveCartFail({
userId: userId,
cartId: cartId,
saveCartName: saveCartName,
saveCartDescription: saveCartDescription,
error: i2.normalizeHttpError(error),
})); }));
}));
this.editSavedCart$ = this.actions$.pipe(i1.ofType(EDIT_SAVED_CART), operators.map(function (action) { return action.payload; }), operators.switchMap(function (_b) {
var userId = _b.userId, cartId = _b.cartId, saveCartName = _b.saveCartName, saveCartDescription = _b.saveCartDescription;
return _this.savedCartConnector
.saveCart(userId, cartId, saveCartName, saveCartDescription)
.pipe(operators.switchMap(function (savedCart) {
return [
new i2.CartActions.LoadCartSuccess({
userId: userId,
cartId: cartId,
cart: savedCart,
}),
new EditSavedCartSuccess({
userId: userId,
cartId: cartId,
saveCartName: saveCartName,
saveCartDescription: saveCartDescription,
}),
];
}), operators.catchError(function (error) { return rxjs.of(new EditSavedCartFail({
userId: userId,
cartId: cartId,
saveCartName: saveCartName,
saveCartDescription: saveCartDescription,
error: i2.normalizeHttpError(error),
})); }));
}));
this.cloneSavedCart$ = this.actions$.pipe(i1.ofType(CLONE_SAVED_CART), operators.map(function (action) { return action.payload; }), operators.switchMap(function (_b) {
var userId = _b.userId, cartId = _b.cartId, saveCartName = _b.saveCartName;
return _this.savedCartConnector
.cloneSavedCart(userId, cartId, saveCartName)
.pipe(operators.switchMap(function (_) {
return [
new CloneSavedCartSuccess({
userId: userId,
cartId: cartId,
saveCartName: saveCartName,
}),
new RestoreSavedCart({
userId: userId,
cartId: cartId,
}),
new LoadSavedCarts({ userId: userId }),
];
}), operators.catchError(function (error) { return rxjs.of(new CloneSavedCartFail({
userId: userId,
cartId: cartId,
saveCartName: saveCartName,
error: i2.normalizeHttpError(error),
})); }));
}));
}
return SavedCartEffects;
}());
SavedCartEffects.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0__namespace, type: SavedCartEffects, deps: [{ token: i1__namespace$1.Actions }, { token: SavedCartConnector }, { token: i2__namespace.ActiveCartService }, { token: i2__namespace.GlobalMessageService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
SavedCartEffects.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0__namespace, type: SavedCartEffects });
__decorate([
i1.Effect()
], SavedCartEffects.prototype, "loadSavedCart$", void 0);
__decorate([
i1.Effect()
], SavedCartEffects.prototype, "loadSavedCarts$", void 0);
__decorate([
i1.Effect()
], SavedCartEffects.prototype, "restoreSavedCart$", void 0);
__decorate([
i1.Effect()
], SavedCartEffects.prototype, "saveCart$", void 0);
__decorate([
i1.Effect()
], SavedCartEffects.prototype, "editSavedCart$", void 0);
__decorate([
i1.Effect()
], SavedCartEffects.prototype, "cloneSavedCart$", void 0);
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0__namespace, type: SavedCartEffects, decorators: [{
type: i0.Injectable
}], ctorParameters: function () { return [{ type: i1__namespace$1.Actions }, { type: SavedCartConnector }, { type: i2__namespace.ActiveCartService }, { type: i2__namespace.GlobalMessageService }]; }, propDecorators: { loadSavedCart$: [], loadSavedCarts$: [], restoreSavedCart$: [], saveCart$: [], editSavedCart$: [], cloneSavedCart$: [] } });
var effects = [SavedCartEffects];
var SavedCartStoreModule = /** @class */ (function () {
function SavedCartStoreModule() {
}
return SavedCartStoreModule;
}());
SavedCartStoreModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0__namespace, type: SavedCartStoreModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
SavedCartStoreModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0__namespace, type: SavedCartStoreModule, imports: [i1__namespace$1.EffectsFeatureModule] });
SavedCartStoreModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0__namespace, type: SavedCartStoreModule, imports: [[i1.EffectsModule.forFeature(effects)]] });
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0__namespace, type: SavedCartStoreModule, decorators: [{
type: i0.NgModule,
args: [{
imports: [i1.EffectsModule.forFeature(effects)],
}]
}] });
var SavedCartService = /** @class */ (function () {
function SavedCartService(store, userIdService, userService, multiCartService, eventService) {
this.store = store;
this.userIdService = userIdService;
this.userService = userService;
this.multiCartService = multiCartService;
this.eventService = eventService;
}
/**
* Loads a single saved cart
*/
SavedCartService.prototype.loadSavedCart = function (cartId) {
var _this = this;
this.userIdService.takeUserId(true).subscribe(function (userId) {
return _this.store.dispatch(new LoadSavedCart({ userId: userId, cartId: cartId }));
}, function () {
// TODO: for future releases, refactor this part to thrown errors
});
};
/**
* Gets a single saved cart
* it won't emit if the delete saved cart event gets triggered to avoid race condition between actions
*
* @param cartId
* @returns observable with cart
*/
SavedCartService.prototype.get = function (cartId) {
var _this = this;
return this.getSavedCart(cartId).pipe(operators.observeOn(rxjs.queueScheduler), operators.withLatestFrom(this.eventService.get(root.DeleteSavedCartEvent).pipe(operators.startWith({}))), operators.filter(function (_a) {
var _b = __read(_a, 2), state = _b[0], _event = _b[1];
return !!state;
}), operators.tap(function (_a) {
var _b = __read(_a, 2), state = _b[0], event = _b[1];
if (Object.keys(event).length > 0) {
return rxjs.EMPTY;
}
if (!(state.loading || state.success || state.error)) {
_this.loadSavedCart(cartId);
}
}), operators.filter(function (_a) {
var _b = __read(_a, 1), state = _b[0];
return state.success || !!state.error;
}), operators.map(function (_a) {
var _b = __read(_a, 1), state = _b[0];
return state.value;
}));
};
/**
* Gets the selected cart state
*
* @param cartId
* @returns observable of selected cart with loader state
*/
SavedCartService.prototype.getSavedCart = function (cartId) {
return this.multiCartService.getCartEntity(cartId);
};
/**
* Returns true when there are no operations on that in progress and it is not currently loading
*
* @param cartId
*/
SavedCartService.prototype.isStable = function (cartId) {
return this.multiCartService.isStable(cartId);
};
/**
* Loads a list of saved carts
*/
SavedCartService.prototype.loadSavedCarts = function () {
var _this = this;
this.userIdService.takeUserId(true).subscribe(function (userId) {
return _this.store.dispatch(new LoadSavedCarts({ userId: userId }));
}, function () {
// TODO: for future releases, refactor this part to thrown errors
});
};
/**
* Gets a list of saved carts
*
* @returns observable with list of saved carts
*/
SavedCartService.prototype.getList = function () {
var _this = this;
return this.getSavedCartList().pipe(operators.withLatestFrom(this.getSavedCartListProcess()), operators.tap(function (_a) {
var _b = __read(_a, 2), _ = _b[0], state = _b[1];
if (!(state.loading || state.success || state.error)) {
_this.loadSavedCarts();
}
}), operators.pluck(0), operators.shareReplay({ bufferSize: 1, refCount: true }));
};
/**
* Gets a list of saved carts from all carts in the state
* by filtering through the carts that are not wishlist and not saved cart
*
* @returns observable with list of saved carts
*/
SavedCartService.prototype.getSavedCartList = function () {
return rxjs.combineLatest([
this.multiCartService.getCarts(),
this.userService.get(),
]).pipe(operators.distinctUntilChanged(), operators.map(function (_a) {
var _b = __read(_a, 2), carts = _b[0], user = _b[1];
return carts.filter(function (cart) { return ((user === null || user === void 0 ? void 0 : user.customerId) !== undefined
? (cart === null || cart === void 0 ? void 0 : cart.name) !== i2.getWishlistName(user === null || user === void 0 ? void 0 : user.customerId)
: true) &&
!i2.isSelectiveCart(cart === null || cart === void 0 ? void 0 : cart.code) &&
(cart === null || cart === void 0 ? void 0 : cart.saveTime); });
}));
};
/**
* Gets the loading flag of getting a list of saved carts
*
* @returns observable with boolean of the loading state
*/
SavedCartService.prototype.getSavedCartListProcessLoading = function () {
return this.store.pipe(i1$1.select(i2.ProcessSelectors.getProcessLoadingFactory(SAVED_CART_LIST_PROCESS_ID)));
};
/**
* Gets the loading state of getting a list of saved carts
*
* @returns observable with boolean of the loader state
*/
SavedCartService.prototype.getSavedCartListProcess = function () {
return this.store.pipe(i1$1.select(i2.ProcessSelectors.getProcessStateFactory(SAVED_CART_LIST_PROCESS_ID)));
};
/**
* Clears the process state of performing a saved cart
*/
SavedCartService.prototype.clearSavedCarts = function () {
this.store.dispatch(new ClearSavedCarts());
};
/**
* Triggers a restore saved cart
*
* @param cartId
*/
SavedCartService.prototype.restoreSavedCart = function (cartId) {
var _this = this;
this.userIdService.takeUserId(true).subscribe(function (userId) {
return _this.store.dispatch(new RestoreSavedCart({
userId: userId,
cartId: cartId,
}));
}, function () {
// TODO: for future releases, refactor this part to thrown errors
});
};
/**
* Gets the loading state of restoring saved cart
*
* @returns observable with boolean of the loading state
*/
SavedCartService.prototype.getRestoreSavedCartProcessLoading = function () {
return this.store.pipe(i1$1.select(i2.ProcessSelectors.getProcessLoadingFactory(SAVED_CART_RESTORE_CART_PROCESS_ID)));
};
/**
* Gets the success state of restoring saved cart
*
* @returns observable with boolean of the success state
*/
SavedCartService.prototype.getRestoreSavedCartProcessSuccess = function () {
return this.store.pipe(i1$1.select(i2.ProcessSelectors.getProcessSuccessFactory(SAVED_CART_RESTORE_CART_PROCESS_ID)));
};
/**
* Gets the error state of restoring saved cart
*
* @returns observable with boolean of the error state
*/
SavedCartService.prototype.getRestoreSavedCartProcessError = function () {
return this.store.pipe(i1$1.select(i2.ProcessSelectors.getProcessErrorFactory(SAVED_CART_RESTORE_CART_PROCESS_ID)));
};
/**
* Clears the process state of performing a restore saved cart
*/
SavedCartService.prototype.clearRestoreSavedCart = function () {
this.store.dispatch(new ClearRestoreSavedCart());
};
/**
* Triggers delete saved cart
* @param cartId
*/
SavedCartService.prototype.deleteSavedCart = function (cartId) {
var _this = this;
this.userIdService.takeUserId(true).subscribe(function (userId) {
return _this.multiCartService.deleteCart(cartId, userId);
}, function () {
// TODO: for future releases, refactor this part to thrown errors
});
};
/**
* Triggers a saved cart
*
*/
SavedCartService.prototype.saveCart = function (_a) {
var _this = this;
var cartId = _a.cartId, saveCartName = _a.saveCartName, saveCartDescription = _a.saveCartDescription;
this.userIdService.takeUserId(true).subscribe(function (userId) {
return _this.store.dispatch(new SaveCart({
userId: userId,
cartId: cartId,
saveCartName: saveCartName,
saveCartDescription: saveCartDescription,
}));
}, function () {
// TODO: for future releases, refactor this part to thrown errors
});
};
/**
* Gets the loading state of saving a cart
*
* @returns observable with boolean of the loading state
*/
SavedCartService.prototype.getSaveCartProcessLoading = function () {
return this.store.pipe(i1$1.select(i2.ProcessSelectors.getProcessLoadingFactory(SAVED_CART_SAVE_CART_PROCESS_ID)));
};
/**
* Gets the success state of saving a cart
*
* @returns observable with boolean of the success state
*/
SavedCartService.prototype.getSaveCartProcessSuccess = function () {
return this.store.pipe(i1$1.select(i2.ProcessSelectors.getProcessSuccessFactory(SAVED_CART_SAVE_CART_PROCESS_ID)));
};
/**
* Gets the error state of saving a cart
*
* @returns observable with boolean of the error state
*/
SavedCartService.prototype.getSaveCartProcessError = function () {
return this.store.pipe(i1$1.select(i2.ProcessSelectors.getProcessErrorFactory(SAVED_CART_SAVE_CART_PROCESS_ID)));
};
/**
* Clears the process state of performing a save cart
*/
SavedCartService.prototype.clearSaveCart = function () {
this.store.dispatch(new ClearSaveCart());
};
/**
* Triggers an edit saved cart
*
*/
SavedCartService.prototype.editSavedCart = function (_a) {
var _this = this;
var cartId = _a.cartId, saveCartName = _a.saveCartName, saveCartDescription = _a.saveCartDescription;
this.userIdService.takeUserId(true).subscribe(function (userId) {
return _this.store.dispatch(new EditSavedCart({
userId: userId,
cartId: cartId,
saveCartName: saveCartName,
saveCartDescription: saveCartDescription,
}));
}, function () {
// TODO: for future releases, refactor this part to thrown errors
});
};
/**
* Triggers a clone saved cart
*
* @param cartId
*/
SavedCartService.prototype.cloneSavedCart = function (cartId, saveCartName) {
var _this = this;
this.userIdService.takeUserId(true).subscribe(function (userId) {
return _this.store.dispatch(new CloneSavedCart({ userId: userId, cartId: cartId, saveCartName: saveCartName }));
}, function () {
// TODO: for future releases, refactor this part to thrown errors
});
};
/**
* Gets the loading state of cloning a saved cart
*
* @returns observable with boolean of the loading state
*/
SavedCartService.prototype.getCloneSavedCartProcessLoading = function () {
return this.store.pipe(i1$1.select(i2.ProcessSelectors.getProcessLoadingFactory(SAVED_CART_CLONE_CART_PROCESS_ID)));
};
/**
* Gets the success state of cloning a saved cart
*
* @returns observable with boolean of the success state
*/
SavedCartService.prototype.getCloneSavedCartProcessSuccess = function () {
return this.store.pipe(i1$1.select(i2.ProcessSelectors.getProcessSuccessFactory(SAVED_CART_CLONE_CART_PROCESS_ID)));
};
/**
* Gets the error state of cloning a saved cart
*
* @returns observable with boolean of the error state
*/
SavedCartService.prototype.getCloneSavedCartProcessError = function () {
return this.store.pipe(i1$1.select(i2.ProcessSelectors.getProcessErrorFactory(SAVED_CART_CLONE_CART_PROCESS_ID)));
};
/**
* Clears the process state of cloning a saved cart
*/
SavedCartService.prototype.clearCloneSavedCart = function () {
this.store.dispatch(new ClearCloneSavedCart());
};
return SavedCartService;
}());
SavedCartService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0__namespace, type: SavedCartService, deps: [{ token: i1__namespace.Store }, { token: i2__namespace.UserIdService }, { token: i2__namespace.UserService }, { token: i2__namespace.MultiCartService }, { token: i2__namespace.EventService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
SavedCartService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0__namespace, type: SavedCartService });
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0__namespace, type: SavedCartService, decorators: [{
type: i0.Injectable
}], ctorParameters: function () { return [{ type: i1__namespace.Store }, { type: i2__namespace.UserIdService }, { type: i2__namespace.UserService }, { type: i2__namespace.MultiCartService }, { type: i2__namespace.EventService }]; } });
var facadeProviders = [
SavedCartService,
{
provide: root.SavedCartFacade,
useExisting: SavedCartService,
},
];
var SavedCartCoreModule = /** @class */ (function () {
function SavedCartCoreModule() {
}
return SavedCartCoreModule;
}());
SavedCartCoreModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0__namespace, type: SavedCartCoreModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
SavedCartCoreModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0__namespace, type: SavedCartCoreModule, imports: [SavedCartStoreModule, SavedCartEventsModule] });
SavedCartCoreModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0__namespace, type: SavedCartCoreModule, providers: __spreadArray([SavedCartConnector], __read(facadeProviders)), imports: [[SavedCartStoreModule, SavedCartEventsModule]] });
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0__namespace, type: SavedCartCoreModule, decorators: [{
type: i0.NgModule,
args: [{
imports: [SavedCartStoreModule, SavedCartEventsModule],
providers: __spreadArray([SavedCartConnector], __read(facadeProviders)),
}]
}] });
/**
* Generated bundle index. Do not edit.
*/
exports.SAVED_CART_CLONE_CART_PROCESS_ID = SAVED_CART_CLONE_CART_PROCESS_ID;
exports.SAVED_CART_LIST_PROCESS_ID = SAVED_CART_LIST_PROCESS_ID;
exports.SAVED_CART_RESTORE_CART_PROCESS_ID = SAVED_CART_RESTORE_CART_PROCESS_ID;
exports.SAVED_CART_SAVE_CART_PROCESS_ID = SAVED_CART_SAVE_CART_PROCESS_ID;
exports.SavedCartActions = savedCart_action;
exports.SavedCartAdapter = SavedCartAdapter;
exports.SavedCartConnector = SavedCartConnector;
exports.SavedCartCoreModule = SavedCartCoreModule;
exports.SavedCartEventBuilder = SavedCartEventBuilder;
exports.SavedCartEventsModule = SavedCartEventsModule;
exports.SavedCartService = SavedCartService;
Object.defineProperty(exports, '__esModule', { value: true });
})));
//# sourceMappingURL=spartacus-cart-saved-cart-core.umd.js.map