@infrab4a/connect-angular 0.5.0-beta.10 → 0.5.0-beta.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -393,6 +393,9 @@
393
393
  CheckoutService.prototype.updateCheckoutLineItems = function (checkout) {
394
394
  return rxjs.from(this.checkoutRepository.update(i1$1.Checkout.toInstance({ id: checkout.id, lineItems: checkout.lineItems })));
395
395
  };
396
+ CheckoutService.prototype.updateCheckoutUser = function (checkout) {
397
+ return rxjs.from(this.checkoutRepository.update(i1$1.Checkout.toInstance({ id: checkout.id, user: checkout.user })));
398
+ };
396
399
  CheckoutService.prototype.createCheckout = function (checkoutData) {
397
400
  return __awaiter(this, void 0, void 0, function () {
398
401
  var checkout;
@@ -433,18 +436,19 @@
433
436
  this.checkoutService = checkoutService;
434
437
  this.defaultShop = defaultShop;
435
438
  this.cartSubject = new rxjs.Subject();
436
- this.updateLineItemInCart = function (lineItem, quantity) { return _this.checkoutService.getCheckout().pipe(operators.mergeMap(function (checkoutLoaded) {
439
+ this.updateLineItemInCart = function (lineItem, quantity, checkout) { return (i1$1.isNil(checkout) ? _this.checkoutService.getCheckout() : rxjs.of(checkout)).pipe(operators.mergeMap(function (checkoutLoaded) {
437
440
  var _a;
438
441
  var items = [];
439
442
  var index = (_a = checkoutLoaded.lineItems) === null || _a === void 0 ? void 0 : _a.map(function (checkoutItem) { return checkoutItem.sku; }).indexOf(lineItem.sku);
440
443
  if (index > -1) {
441
444
  checkoutLoaded.lineItems[index].quantity += quantity;
445
+ checkoutLoaded.lineItems[index].pricePaid = lineItem.pricePaid;
442
446
  }
443
447
  else
444
448
  checkoutLoaded.lineItems = items.concat(checkoutLoaded.lineItems ? checkoutLoaded.lineItems.concat([lineItem]) : [lineItem]);
445
449
  return _this.checkoutService
446
450
  .updateCheckoutLineItems(checkoutLoaded)
447
- .pipe(operators.map(function (checkout) { return _this.generateCartObject(checkout.lineItems); }));
451
+ .pipe(operators.map(function (updatedCheckout) { return _this.generateCartObject(updatedCheckout.lineItems); }));
448
452
  })); };
449
453
  this.generateCartObject = function (items) {
450
454
  var cart = {};
@@ -454,13 +458,17 @@
454
458
  });
455
459
  return cart;
456
460
  };
457
- this.buildLineItem = function (_c) {
458
- var checkout = _c.checkout, item = _c.item, isSubscriber = _c.isSubscriber, quantity = _c.quantity;
459
- var _a, _b;
461
+ this.buildLineItem = function (_d) {
462
+ var checkout = _d.checkout, item = _d.item, quantity = _d.quantity;
463
+ var _a, _b, _c;
460
464
  if (_this.checkMaxStock(item))
461
465
  throw new Error('Desculpe! Temos apenas ' + ((_a = item.stock) === null || _a === void 0 ? void 0 : _a.quantity) + ' em estoque.');
462
466
  var image = item.image || ((_b = item.images) === null || _b === void 0 ? void 0 : _b.shift());
463
- var pricePaid = _this.getProductPrice({ product: item, shop: checkout.shop || _this.defaultShop, isSubscriber: isSubscriber });
467
+ var pricePaid = _this.getProductPrice({
468
+ product: item,
469
+ shop: checkout.shop || _this.defaultShop,
470
+ isSubscriber: (_c = checkout.user) === null || _c === void 0 ? void 0 : _c.isSubscriber,
471
+ });
464
472
  var id = item.id, name = item.name, brand = item.brand, slug = item.slug, stock = item.stock, price = item.price, weight = item.weight, categories = item.categories, sku = item.sku;
465
473
  var isGift = item.isGift || null;
466
474
  return i1$1.LineItem.toInstance({
@@ -479,9 +487,10 @@
479
487
  isGift: isGift,
480
488
  });
481
489
  };
482
- this.getProductPrice = function (_c) {
483
- var product = _c.product, shop = _c.shop, isSubscriber = _c.isSubscriber;
484
- return product.getInfoByShop(shop)[isSubscriber ? 'subscriberPrice' : 'price'];
490
+ this.getProductPrice = function (_d) {
491
+ var product = _d.product, shop = _d.shop, isSubscriber = _d.isSubscriber;
492
+ var info = product.getInfoByShop(shop);
493
+ return isSubscriber && info.subscriberPrice > 0 ? info.subscriberPrice : info.price;
485
494
  };
486
495
  this.checkMaxStock = function (item) {
487
496
  var _a;
@@ -491,19 +500,12 @@
491
500
  return quantity > maxStock || currentItemAmount + quantity > maxStock;
492
501
  };
493
502
  }
494
- CartService.prototype.addItem = function (item, quantity, checkoutData) {
503
+ CartService.prototype.addItem = function (item, quantity) {
495
504
  var _this = this;
496
505
  if (quantity === void 0) { quantity = 1; }
497
- rxjs.of(checkoutData)
498
- .pipe(operators.mergeMap(function (checkout) { return (i1$1.isEmpty(checkout === null || checkout === void 0 ? void 0 : checkout.id) ? _this.checkoutService.getCheckout(checkoutData) : rxjs.of(checkout)); }), operators.mergeMap(function (checkout) {
499
- var _a;
500
- quantity = quantity || 1;
501
- return rxjs.of((_a = checkout.user) === null || _a === void 0 ? void 0 : _a.isSubscriber).pipe(operators.mergeMap(function (isSubscriber) { return isSubscriber
502
- ? rxjs.of(isSubscriber)
503
- : _this.checkoutService.getUserByCheckout(checkout.id).pipe(operators.catchError(function () { return rxjs.of({ isSubscriber: false }); }), operators.map(function (user) { return user.isSubscriber; })); }), operators.mergeMap(function (isSubscriber) {
504
- return _this.buildCartFromCheckout().pipe(operators.map(function () { return _this.buildLineItem({ checkout: checkout, item: item, quantity: quantity, isSubscriber: isSubscriber }); }), operators.mergeMap(function (lineItem) { return _this.updateLineItemInCart(lineItem, quantity); }));
505
- }));
506
- }))
506
+ this.checkoutService
507
+ .getCheckout()
508
+ .pipe(operators.map(function (checkout) { return _this.buildLineItem({ checkout: checkout, item: item, quantity: quantity || 1 }); }), operators.mergeMap(function (lineItem) { return _this.updateLineItemInCart(lineItem, quantity || 1); }))
507
509
  .subscribe(function (cart) { return _this.cartSubject.next(cart); });
508
510
  return this.cartSubject;
509
511
  };
@@ -521,9 +523,9 @@
521
523
  .subscribe(function (cart) { return _this.cartSubject.next(cart); });
522
524
  return this.cartSubject;
523
525
  };
524
- CartService.prototype.getCart = function () {
526
+ CartService.prototype.getCart = function (checkout) {
525
527
  var _this = this;
526
- this.buildCartFromCheckout().subscribe(function (cart) { return _this.cartSubject.next(cart); });
528
+ this.buildCartFromCheckout(checkout).subscribe(function (cart) { return _this.cartSubject.next(cart); });
527
529
  return this.cartSubject;
528
530
  };
529
531
  CartService.prototype.getDiscount = function (coupon) {
@@ -552,9 +554,17 @@
552
554
  .subscribe(function (cart) { return _this.cartSubject.next(cart); });
553
555
  return this.cartSubject;
554
556
  };
555
- CartService.prototype.buildCartFromCheckout = function () {
557
+ CartService.prototype.updateUserCart = function (user) {
558
+ var _this = this;
559
+ this.checkoutService
560
+ .getCheckout()
561
+ .pipe(operators.mergeMap(function (checkout) { return _this.checkoutService.updateCheckoutUser(i1$1.Checkout.toInstance(Object.assign(Object.assign({}, checkout.toPlain()), { user: user }))); }), operators.mergeMap(function (checkout) { return rxjs.forkJoin([checkout.lineItems.map(function (item) { return _this.buildLineItem({ checkout: checkout, item: item, quantity: item.quantity }); })]); }), operators.map(function (lineItems) { return _this.generateCartObject(lineItems); }))
562
+ .subscribe(function (cart) { return _this.cartSubject.next(cart); });
563
+ return this.cartSubject;
564
+ };
565
+ CartService.prototype.buildCartFromCheckout = function (checkoutData) {
556
566
  var _this = this;
557
- return this.checkoutService.getCheckout().pipe(operators.map(function (checkout) { return checkout.lineItems; }), operators.mergeMap(function (lineItems) { return rxjs.of(_this.generateCartObject(lineItems)); }));
567
+ return this.checkoutService.getCheckout(checkoutData).pipe(operators.map(function (checkout) { return checkout.lineItems; }), operators.mergeMap(function (lineItems) { return rxjs.of(_this.generateCartObject(lineItems)); }));
558
568
  };
559
569
  CartService.prototype.getFinancialDiscount = function (coupon) {
560
570
  return function (subTotalPrice) {
@@ -1 +1 @@
1
- {"version":3,"file":"infrab4a-connect-angular.umd.js","sources":["../../../projects/connect-angular/src/lib/services/auth.service.ts","../../../projects/connect-angular/src/lib/consts/default-shop.const.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/connect-angular/src/lib/services/checkout.service.ts","../../../projects/connect-angular/src/lib/services/cart.service.ts","../../../projects/connect-angular/src/lib/angular-firebase-auth.module.ts","../../../projects/connect-angular/src/lib/angular-firestore.module.ts","../../../projects/connect-angular/src/lib/angular-connect.module.ts","../../../projects/connect-angular/src/infrab4a-connect-angular.ts"],"sourcesContent":["import { Injectable, Inject } from '@angular/core'\nimport { AngularFireAuth } from '@angular/fire/auth'\nimport { User, UserRepository } from '@infrab4a/connect'\nimport { from, Observable, throwError } from 'rxjs'\nimport { map, mergeMap } from 'rxjs/operators'\n\n@Injectable()\nexport class AuthService {\n constructor(\n private readonly angularFireAuth: AngularFireAuth,\n @Inject('UserRepository') private readonly userRepository: UserRepository,\n ) {}\n\n getUser(): Observable<User> {\n return from(this.getTokenId()).pipe(\n map((id) => id || throwError(() => new Error('Usuário não logado'))),\n mergeMap((id) => this.userRepository.get({ id })),\n )\n }\n\n getTokenId(): Observable<string> {\n return this.angularFireAuth.idToken\n }\n}\n","export const DEFAULT_SHOP = 'DEFAULT_SHOP'\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n 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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n 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); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n 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; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n 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);\r\n 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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n 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\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n 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\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Injectable, Inject } from '@angular/core'\nimport { Checkout, CheckoutRepository, isNil, NotFoundError, Shops, User, UserRepository } from '@infrab4a/connect'\nimport cookie from 'js-cookie'\nimport { from, Observable, throwError, of } from 'rxjs'\nimport { mergeMap } from 'rxjs/operators'\n\nimport { DEFAULT_SHOP } from '../consts'\n\nimport { RequiredCheckoutData } from './types'\n\n@Injectable()\nexport class CheckoutService {\n constructor(\n @Inject('CheckoutRepository') private readonly checkoutRepository: CheckoutRepository,\n @Inject('UserRepository') private readonly userRepository: UserRepository,\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\n ) {}\n\n getCheckout(checkoutData?: RequiredCheckoutData): Observable<Checkout> {\n const checkoutId = cookie.get('checkoutId')\n\n if (!isNil(checkoutId)) return from(this.checkoutRepository.get({ id: checkoutId }))\n\n return from(this.createCheckout(checkoutData))\n }\n\n getUserByCheckout(checkoutId: string): Observable<User> {\n return from(this.checkoutRepository.get({ id: checkoutId })).pipe(\n mergeMap((checkout) =>\n checkout?.user?.id ? of(checkout.user) : from(this.userRepository.get({ id: checkout.user.id })),\n ),\n mergeMap((user) => of(user) || throwError(() => new NotFoundError('User is not found'))),\n )\n }\n\n updateCheckoutLineItems(checkout: Checkout): Observable<Checkout> {\n return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, lineItems: checkout.lineItems })))\n }\n\n private async createCheckout(checkoutData?: RequiredCheckoutData): Promise<Checkout> {\n const checkout = await this.checkoutRepository.create({\n createdAt: new Date(),\n ...Checkout.toInstance(checkoutData).toPlain(),\n shop: checkoutData.shop || this.defaultShop,\n })\n\n cookie.set('checkoutId', checkout.id)\n\n return checkout\n }\n}\n","import { Injectable, Inject } from '@angular/core'\nimport {\n Coupon,\n CouponSubtypes,\n CouponTypes,\n FinancialCoupon,\n isEmpty,\n isNil,\n LineItem,\n Product,\n Shops,\n} from '@infrab4a/connect'\nimport { iif, Observable, of, Subject } from 'rxjs'\nimport { catchError, map, mergeMap } from 'rxjs/operators'\n\nimport { DEFAULT_SHOP } from '../consts'\n\nimport { AuthService } from './auth.service'\nimport { CheckoutService } from './checkout.service'\nimport { RequiredCheckoutData } from './types'\n\nexport type Cart = {\n [id: string]: LineItem\n}\n\n@Injectable()\nexport class CartService {\n private cartSubject: Subject<Cart> = new Subject()\n\n constructor(\n private readonly authService: AuthService,\n private readonly checkoutService: CheckoutService,\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\n ) {}\n\n public addItem(item: LineItem, quantity: number = 1, checkoutData?: RequiredCheckoutData): Observable<Cart> {\n of(checkoutData)\n .pipe(\n mergeMap((checkout) => (isEmpty(checkout?.id) ? this.checkoutService.getCheckout(checkoutData) : of(checkout))),\n mergeMap((checkout) => {\n quantity = quantity || 1\n\n return of(checkout.user?.isSubscriber).pipe(\n mergeMap((isSubscriber) =>\n isSubscriber\n ? of(isSubscriber)\n : this.checkoutService.getUserByCheckout(checkout.id).pipe(\n catchError(() => of({ isSubscriber: false })),\n map((user) => user.isSubscriber),\n ),\n ),\n mergeMap((isSubscriber) => {\n return this.buildCartFromCheckout().pipe(\n map(() => this.buildLineItem({ checkout, item, quantity, isSubscriber })),\n mergeMap((lineItem) => this.updateLineItemInCart(lineItem, quantity)),\n )\n }),\n )\n }),\n )\n .subscribe((cart) => this.cartSubject.next(cart))\n\n return this.cartSubject\n }\n\n public decreaseItem(item: LineItem): Observable<Cart> {\n this.checkoutService\n .getCheckout()\n .pipe(\n map((checkout) => {\n const checkoutItem = checkout.lineItems?.find((lineItem) => lineItem.sku === item.sku)\n\n if (!isNil(checkoutItem)) checkoutItem.quantity -= checkoutItem.quantity > 1 ? 1 : 0\n\n return checkout\n }),\n mergeMap((checkout) => this.checkoutService.updateCheckoutLineItems(checkout)),\n map((checkout) => this.generateCartObject(checkout.lineItems)),\n )\n .subscribe((cart) => this.cartSubject.next(cart))\n\n return this.cartSubject\n }\n\n public getCart(): Observable<Cart> {\n this.buildCartFromCheckout().subscribe((cart) => this.cartSubject.next(cart))\n\n return this.cartSubject\n }\n\n getDiscount(coupon: Coupon & { id: string }): (subTotalPrice: number) => number {\n switch (coupon.type) {\n case CouponTypes.FINANCIAL:\n return this.getFinancialDiscount(coupon)\n case CouponTypes.PRODUCT:\n return (subTotalPrice: number) => subTotalPrice\n case CouponTypes.GIFTCARD:\n return this.getFinancialDiscount(coupon)\n case CouponTypes.VOUCHER:\n return (subTotalPrice: number) => subTotalPrice\n }\n }\n\n public getVariantPriceDiscount(item: LineItem, shop: Shops): Observable<number> {\n return this.authService.getUser().pipe(\n mergeMap((user) =>\n iif(\n () => user.isSubscriber && !!item.getInfoByShop(shop).subscriberPrice,\n of(item.getInfoByShop(shop).subscriberPrice),\n of(item.getInfoByShop(shop).price),\n ),\n ),\n catchError(() => of(item.getInfoByShop(shop).price)),\n )\n }\n\n public removeItem(item: LineItem): Observable<Cart> {\n this.checkoutService\n .getCheckout()\n .pipe(\n map((checkout) => {\n checkout.lineItems.splice(\n checkout.lineItems.findIndex((lineItem) => lineItem.sku === item.sku),\n 1,\n )\n\n return checkout\n }),\n mergeMap((checkout) => this.checkoutService.updateCheckoutLineItems(checkout)),\n map((checkout) => this.generateCartObject(checkout.lineItems)),\n )\n .subscribe((cart) => this.cartSubject.next(cart))\n\n return this.cartSubject\n }\n\n private buildCartFromCheckout(): Observable<Cart> {\n return this.checkoutService.getCheckout().pipe(\n map((checkout) => checkout.lineItems),\n mergeMap((lineItems) => of(this.generateCartObject(lineItems))),\n )\n }\n\n private updateLineItemInCart = (lineItem: LineItem, quantity: number): Observable<Cart> =>\n this.checkoutService.getCheckout().pipe(\n mergeMap((checkoutLoaded) => {\n const items: LineItem[] = []\n const index = checkoutLoaded.lineItems?.map((checkoutItem) => checkoutItem.sku).indexOf(lineItem.sku)\n\n if (index > -1) {\n checkoutLoaded.lineItems[index].quantity += quantity\n } else\n checkoutLoaded.lineItems = items.concat(\n checkoutLoaded.lineItems ? checkoutLoaded.lineItems.concat([lineItem]) : [lineItem],\n )\n\n return this.checkoutService\n .updateCheckoutLineItems(checkoutLoaded)\n .pipe(map((checkout) => this.generateCartObject(checkout.lineItems)))\n }),\n )\n\n private generateCartObject = (items: LineItem[]): Cart => {\n const cart: Cart = {}\n\n items?.forEach(\n (item) =>\n (cart[item.sku] = LineItem.toInstance({\n ...(cart[item.sku] || item),\n quantity: (cart[item.sku]?.quantity || 0) + (item.quantity ? item.quantity : 1),\n })),\n )\n\n return cart\n }\n\n private buildLineItem = ({\n checkout,\n item,\n isSubscriber,\n quantity,\n }: {\n checkout: RequiredCheckoutData\n item: LineItem\n isSubscriber: boolean\n quantity?: number\n }): LineItem => {\n if (this.checkMaxStock(item)) throw new Error('Desculpe! Temos apenas ' + item.stock?.quantity + ' em estoque.')\n\n const image = item.image || item.images?.shift()\n const pricePaid = this.getProductPrice({ product: item, shop: checkout.shop || this.defaultShop, isSubscriber })\n const { id, name, brand, slug, stock, price, weight, categories, sku } = item\n const isGift = item.isGift || null\n\n return LineItem.toInstance({\n id,\n name,\n brand,\n slug,\n sku,\n stock,\n price,\n image,\n weight,\n quantity,\n pricePaid,\n categories,\n isGift,\n })\n }\n\n private getProductPrice = ({\n product,\n shop,\n isSubscriber,\n }: {\n product: Product\n shop: Shops\n isSubscriber: boolean\n }): number => product.getInfoByShop(shop)[isSubscriber ? 'subscriberPrice' : 'price']\n\n private checkMaxStock = (item: LineItem) => {\n const maxStock = item.stock?.quantity || 0\n const quantity = item.quantity || 1\n const currentItemAmount = item.quantity\n\n return quantity > maxStock || currentItemAmount + quantity > maxStock\n }\n\n private getFinancialDiscount(coupon: Coupon & { id: string }): (subTotalPrice: number) => number {\n return (subTotalPrice) => {\n if (FinancialCoupon.isFinancialCoupon(coupon))\n switch (coupon.subtype) {\n case CouponSubtypes.ABSOLUTE:\n return subTotalPrice - coupon.discount * 100\n case CouponSubtypes.PERCENTAGE:\n return subTotalPrice * (1 - coupon.discount / 100)\n }\n }\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core'\nimport {\n AngularFireModule,\n FIREBASE_APP_NAME,\n FIREBASE_OPTIONS,\n FirebaseAppConfig,\n FirebaseOptions,\n} from '@angular/fire'\nimport { AngularFireAuth } from '@angular/fire/auth'\nimport {\n Authentication,\n AuthenticationFirebaseAuthService,\n AuthenticationService,\n SignOut,\n UserRepository,\n} from '@infrab4a/connect'\n\n@NgModule({\n imports: [AngularFireModule],\n providers: [\n {\n provide: 'Authentication',\n useFactory: (authenticationService: AuthenticationService, userRepository: UserRepository): Authentication => {\n return new Authentication(authenticationService, userRepository)\n },\n deps: ['AuthenticationService', 'UserRepository'],\n },\n {\n provide: 'AuthenticationService',\n useFactory: (angularFireAuth: AngularFireAuth): AuthenticationService => {\n return new AuthenticationFirebaseAuthService(angularFireAuth as any)\n },\n deps: [AngularFireAuth],\n },\n {\n provide: 'SignOut',\n useFactory: (authenticationService: AuthenticationService): SignOut => {\n return new SignOut(authenticationService)\n },\n deps: ['AuthenticationService'],\n },\n ],\n})\nexport class AngularFirebaseAuthModule {\n static initializeApp(\n options: FirebaseOptions,\n nameOrConfig?: string | FirebaseAppConfig,\n ): ModuleWithProviders<AngularFireModule> {\n return {\n ngModule: AngularFirebaseAuthModule,\n providers: [\n { provide: FIREBASE_OPTIONS, useValue: options },\n { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },\n ],\n }\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core'\nimport {\n AngularFireModule,\n FIREBASE_APP_NAME,\n FIREBASE_OPTIONS,\n FirebaseAppConfig,\n FirebaseOptions,\n} from '@angular/fire'\nimport { AngularFirestore } from '@angular/fire/firestore'\nimport {\n BeautyProfileRepository,\n Buy2WinFirestoreRepository,\n Buy2WinRepository,\n CategoryRepository,\n CategoryFirestoreRepository,\n CheckoutRepository,\n CheckoutFirestoreRepository,\n CheckoutSubscriptionFirestoreRepository,\n CheckoutSubscriptionRepository,\n CouponRepository,\n CouponFirestoreRepository,\n EditionRepository,\n HomeFirestoreRepository,\n HomeRepository,\n ShopMenuFirestoreRepository,\n ShopMenuRepository,\n OrderRepository,\n OrderFirestoreRepository,\n PaymentRepository,\n PaymentFirestoreRepository,\n ProductRepository,\n ProductFirestoreRepository,\n SubscriptionEditionFirestoreRepository,\n SubscriptionFirestoreRepository,\n SubscriptionPaymentFirestoreRepository,\n SubscriptionPaymentRepository,\n SubscriptionPlanFirestoreRepository,\n SubscriptionPlanRepository,\n SubscriptionRepository,\n UserAddressRepository,\n UserAddressFirestoreRepository,\n UserBeautyProfileFirestoreRepository,\n UserFirestoreRepository,\n UserRepository,\n VariantRepository,\n ProductVariantFirestoreRepository,\n} from '@infrab4a/connect'\n\n@NgModule({\n imports: [AngularFireModule],\n providers: [\n {\n provide: 'BeautyProfileRepository',\n useFactory: (firestore: AngularFirestore, userRepository: UserFirestoreRepository): BeautyProfileRepository => {\n return new UserBeautyProfileFirestoreRepository(firestore.firestore, userRepository)\n },\n deps: [AngularFirestore, 'UserRepository'],\n },\n {\n provide: 'Buy2WinRepository',\n useFactory: (firestore: AngularFirestore): Buy2WinRepository => {\n return new Buy2WinFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'CategoryRepository',\n useFactory: (firestore: AngularFirestore): CategoryRepository => {\n return new CategoryFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'CheckoutRepository',\n useFactory: (firestore: AngularFirestore): CheckoutRepository => {\n return new CheckoutFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'CheckoutSubscriptionRepository',\n useFactory: (firestore: AngularFirestore): CheckoutSubscriptionRepository => {\n return new CheckoutSubscriptionFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'CouponRepository',\n useFactory: (firestore: AngularFirestore): CouponRepository => {\n return new CouponFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'EditionRepository',\n useFactory: (\n firestore: AngularFirestore,\n subscriptionRepository: SubscriptionFirestoreRepository,\n ): EditionRepository => {\n return new SubscriptionEditionFirestoreRepository(firestore.firestore, subscriptionRepository)\n },\n deps: [AngularFirestore, 'SubscriptionRepository'],\n },\n {\n provide: 'HomeRepository',\n useFactory: (firestore: AngularFirestore): HomeRepository => {\n return new HomeFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'ShopMenuRepository',\n useFactory: (firestore: AngularFirestore): ShopMenuRepository => {\n return new ShopMenuFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'OrderRepository',\n useFactory: (firestore: AngularFirestore): OrderRepository => {\n return new OrderFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'PaymentRepository',\n useFactory: (firestore: AngularFirestore): PaymentRepository => {\n return new PaymentFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'ProductRepository',\n useFactory: (firestore: AngularFirestore): ProductRepository => {\n return new ProductFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'SubscriptionPaymentRepository',\n useFactory: (\n firestore: AngularFirestore,\n subscriptionRepository: SubscriptionFirestoreRepository,\n ): SubscriptionPaymentRepository => {\n return new SubscriptionPaymentFirestoreRepository(firestore.firestore, subscriptionRepository)\n },\n deps: [AngularFirestore, 'SubscriptionRepository'],\n },\n {\n provide: 'SubscriptionPlanRepository',\n useFactory: (firestore: AngularFirestore): SubscriptionPlanRepository => {\n return new SubscriptionPlanFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'SubscriptionRepository',\n useFactory: (firestore: AngularFirestore): SubscriptionRepository => {\n return new SubscriptionFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'UserRepository',\n useFactory: (firestore: AngularFirestore): UserRepository => {\n return new UserFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'UserAddressRepository',\n useFactory: (firestore: AngularFirestore, userRepository: UserFirestoreRepository): UserAddressRepository => {\n return new UserAddressFirestoreRepository(firestore.firestore, userRepository)\n },\n deps: [AngularFirestore, 'UserRepository'],\n },\n {\n provide: 'VariantRepository',\n useFactory: (firestore: AngularFirestore, productRepository: ProductFirestoreRepository): VariantRepository => {\n return new ProductVariantFirestoreRepository(firestore.firestore, productRepository)\n },\n deps: [AngularFirestore, 'ProductRepository'],\n },\n ],\n})\nexport class AngularFirestoreModule {\n static initializeApp(\n options: FirebaseOptions,\n nameOrConfig?: string | FirebaseAppConfig,\n ): ModuleWithProviders<AngularFireModule> {\n return {\n ngModule: AngularFirestoreModule,\n providers: [\n { provide: FIREBASE_OPTIONS, useValue: options },\n { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },\n ],\n }\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core'\nimport {\n AngularFireModule,\n FIREBASE_APP_NAME,\n FIREBASE_OPTIONS,\n FirebaseAppConfig,\n FirebaseOptions,\n} from '@angular/fire'\nimport { isNil, Shops } from '@infrab4a/connect'\n\nimport { AngularFirestoreModule } from './angular-firestore.module'\nimport { AuthService, CartService, CheckoutService } from './services'\nimport { DEFAULT_SHOP } from './consts'\n\n@NgModule({\n imports: [AngularFireModule, AngularFirestoreModule],\n providers: [AuthService, CartService, CheckoutService],\n})\nexport class AngularConnectModule {\n static initializeApp(\n defaultShop: Shops,\n options: FirebaseOptions,\n nameOrConfig?: string | FirebaseAppConfig,\n ): ModuleWithProviders<AngularFireModule> {\n return {\n ngModule: AngularConnectModule,\n providers: [\n ...(isNil(defaultShop) ? [] : [{ provide: DEFAULT_SHOP, useValue: defaultShop }]),\n ...(isNil(options) ? [] : [{ provide: FIREBASE_OPTIONS, useValue: options }]),\n ...(isNil(options) ? [] : [{ provide: FIREBASE_APP_NAME, useValue: nameOrConfig }]),\n ],\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["from","map","throwError","mergeMap","Injectable","Inject","cookie","isNil","of","NotFoundError","Checkout","Subject","LineItem","isEmpty","catchError","CouponTypes","iif","FinancialCoupon","CouponSubtypes","FIREBASE_OPTIONS","FIREBASE_APP_NAME","AngularFireModule","Authentication","AuthenticationFirebaseAuthService","AngularFireAuth","SignOut","NgModule","UserBeautyProfileFirestoreRepository","AngularFirestore","Buy2WinFirestoreRepository","CategoryFirestoreRepository","CheckoutFirestoreRepository","CheckoutSubscriptionFirestoreRepository","CouponFirestoreRepository","SubscriptionEditionFirestoreRepository","HomeFirestoreRepository","ShopMenuFirestoreRepository","OrderFirestoreRepository","PaymentFirestoreRepository","ProductFirestoreRepository","SubscriptionPaymentFirestoreRepository","SubscriptionPlanFirestoreRepository","SubscriptionFirestoreRepository","UserFirestoreRepository","UserAddressFirestoreRepository","ProductVariantFirestoreRepository"],"mappings":"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"}
1
+ {"version":3,"file":"infrab4a-connect-angular.umd.js","sources":["../../../projects/connect-angular/src/lib/services/auth.service.ts","../../../projects/connect-angular/src/lib/consts/default-shop.const.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/connect-angular/src/lib/services/checkout.service.ts","../../../projects/connect-angular/src/lib/services/cart.service.ts","../../../projects/connect-angular/src/lib/angular-firebase-auth.module.ts","../../../projects/connect-angular/src/lib/angular-firestore.module.ts","../../../projects/connect-angular/src/lib/angular-connect.module.ts","../../../projects/connect-angular/src/infrab4a-connect-angular.ts"],"sourcesContent":["import { Injectable, Inject } from '@angular/core'\nimport { AngularFireAuth } from '@angular/fire/auth'\nimport { User, UserRepository } from '@infrab4a/connect'\nimport { from, Observable, throwError } from 'rxjs'\nimport { map, mergeMap } from 'rxjs/operators'\n\n@Injectable()\nexport class AuthService {\n constructor(\n private readonly angularFireAuth: AngularFireAuth,\n @Inject('UserRepository') private readonly userRepository: UserRepository,\n ) {}\n\n getUser(): Observable<User> {\n return from(this.getTokenId()).pipe(\n map((id) => id || throwError(() => new Error('Usuário não logado'))),\n mergeMap((id) => this.userRepository.get({ id })),\n )\n }\n\n getTokenId(): Observable<string> {\n return this.angularFireAuth.idToken\n }\n}\n","export const DEFAULT_SHOP = 'DEFAULT_SHOP'\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n 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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n 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); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n 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; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n 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);\r\n 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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n 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\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n 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\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Injectable, Inject } from '@angular/core'\nimport { Checkout, CheckoutRepository, isNil, NotFoundError, Shops, User, UserRepository } from '@infrab4a/connect'\nimport cookie from 'js-cookie'\nimport { from, Observable, throwError, of } from 'rxjs'\nimport { mergeMap } from 'rxjs/operators'\n\nimport { DEFAULT_SHOP } from '../consts'\n\nimport { RequiredCheckoutData } from './types'\n\n@Injectable()\nexport class CheckoutService {\n constructor(\n @Inject('CheckoutRepository') private readonly checkoutRepository: CheckoutRepository,\n @Inject('UserRepository') private readonly userRepository: UserRepository,\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\n ) {}\n\n getCheckout(checkoutData?: RequiredCheckoutData): Observable<Checkout> {\n const checkoutId = cookie.get('checkoutId')\n\n if (!isNil(checkoutId)) return from(this.checkoutRepository.get({ id: checkoutId }))\n\n return from(this.createCheckout(checkoutData))\n }\n\n getUserByCheckout(checkoutId: string): Observable<User> {\n return from(this.checkoutRepository.get({ id: checkoutId })).pipe(\n mergeMap((checkout) =>\n checkout?.user?.id ? of(checkout.user) : from(this.userRepository.get({ id: checkout.user.id })),\n ),\n mergeMap((user) => of(user) || throwError(() => new NotFoundError('User is not found'))),\n )\n }\n\n updateCheckoutLineItems(checkout: Partial<Checkout>): Observable<Checkout> {\n return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, lineItems: checkout.lineItems })))\n }\n\n updateCheckoutUser(checkout: Partial<Checkout>): Observable<Checkout> {\n return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, user: checkout.user })))\n }\n\n private async createCheckout(checkoutData?: RequiredCheckoutData): Promise<Checkout> {\n const checkout = await this.checkoutRepository.create({\n createdAt: new Date(),\n ...Checkout.toInstance(checkoutData).toPlain(),\n shop: checkoutData.shop || this.defaultShop,\n })\n\n cookie.set('checkoutId', checkout.id)\n\n return checkout\n }\n}\n","import { Injectable, Inject } from '@angular/core'\nimport {\n Checkout,\n Coupon,\n CouponSubtypes,\n CouponTypes,\n FinancialCoupon,\n isNil,\n LineItem,\n Product,\n Shops,\n User,\n} from '@infrab4a/connect'\nimport { forkJoin, iif, Observable, of, Subject } from 'rxjs'\nimport { catchError, concatMap, map, mergeMap } from 'rxjs/operators'\n\nimport { DEFAULT_SHOP } from '../consts'\n\nimport { AuthService } from './auth.service'\nimport { CheckoutService } from './checkout.service'\nimport { RequiredCheckoutData } from './types'\n\nexport type Cart = {\n [id: string]: LineItem\n}\n\n@Injectable()\nexport class CartService {\n private cartSubject: Subject<Cart> = new Subject()\n\n constructor(\n private readonly authService: AuthService,\n private readonly checkoutService: CheckoutService,\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\n ) {}\n\n addItem(item: LineItem, quantity: number = 1): Observable<Cart> {\n this.checkoutService\n .getCheckout()\n .pipe(\n map((checkout) => this.buildLineItem({ checkout, item, quantity: quantity || 1 })),\n mergeMap((lineItem) => this.updateLineItemInCart(lineItem, quantity || 1)),\n )\n .subscribe((cart) => this.cartSubject.next(cart))\n\n return this.cartSubject\n }\n\n decreaseItem(item: LineItem): Observable<Cart> {\n this.checkoutService\n .getCheckout()\n .pipe(\n map((checkout) => {\n const checkoutItem = checkout.lineItems?.find((lineItem) => lineItem.sku === item.sku)\n\n if (!isNil(checkoutItem)) checkoutItem.quantity -= checkoutItem.quantity > 1 ? 1 : 0\n\n return checkout\n }),\n mergeMap((checkout) => this.checkoutService.updateCheckoutLineItems(checkout)),\n map((checkout) => this.generateCartObject(checkout.lineItems)),\n )\n .subscribe((cart) => this.cartSubject.next(cart))\n\n return this.cartSubject\n }\n\n getCart(checkout?: RequiredCheckoutData): Observable<Cart> {\n this.buildCartFromCheckout(checkout).subscribe((cart) => this.cartSubject.next(cart))\n\n return this.cartSubject\n }\n\n getDiscount(coupon: Coupon & { id: string }): (subTotalPrice: number) => number {\n switch (coupon.type) {\n case CouponTypes.FINANCIAL:\n return this.getFinancialDiscount(coupon)\n case CouponTypes.PRODUCT:\n return (subTotalPrice: number) => subTotalPrice\n case CouponTypes.GIFTCARD:\n return this.getFinancialDiscount(coupon)\n case CouponTypes.VOUCHER:\n return (subTotalPrice: number) => subTotalPrice\n }\n }\n\n getVariantPriceDiscount(item: LineItem, shop: Shops): Observable<number> {\n return this.authService.getUser().pipe(\n mergeMap((user) =>\n iif(\n () => user.isSubscriber && !!item.getInfoByShop(shop).subscriberPrice,\n of(item.getInfoByShop(shop).subscriberPrice),\n of(item.getInfoByShop(shop).price),\n ),\n ),\n catchError(() => of(item.getInfoByShop(shop).price)),\n )\n }\n\n removeItem(item: LineItem): Observable<Cart> {\n this.checkoutService\n .getCheckout()\n .pipe(\n map((checkout) => {\n checkout.lineItems.splice(\n checkout.lineItems.findIndex((lineItem) => lineItem.sku === item.sku),\n 1,\n )\n\n return checkout\n }),\n mergeMap((checkout) => this.checkoutService.updateCheckoutLineItems(checkout)),\n map((checkout) => this.generateCartObject(checkout.lineItems)),\n )\n .subscribe((cart) => this.cartSubject.next(cart))\n\n return this.cartSubject\n }\n\n updateUserCart(user: User): Observable<Cart> {\n this.checkoutService\n .getCheckout()\n .pipe(\n mergeMap((checkout) =>\n this.checkoutService.updateCheckoutUser(Checkout.toInstance({ ...checkout.toPlain(), user })),\n ),\n mergeMap((checkout) =>\n forkJoin([checkout.lineItems.map((item) => this.buildLineItem({ checkout, item, quantity: item.quantity }))]),\n ),\n map((lineItems) => this.generateCartObject(lineItems)),\n )\n .subscribe((cart) => this.cartSubject.next(cart))\n\n return this.cartSubject\n }\n\n private buildCartFromCheckout(checkoutData?: RequiredCheckoutData): Observable<Cart> {\n return this.checkoutService.getCheckout(checkoutData).pipe(\n map((checkout) => checkout.lineItems),\n mergeMap((lineItems) => of(this.generateCartObject(lineItems))),\n )\n }\n\n private updateLineItemInCart = (lineItem: LineItem, quantity: number, checkout?: Checkout): Observable<Cart> =>\n (isNil(checkout) ? this.checkoutService.getCheckout() : of(checkout)).pipe(\n mergeMap((checkoutLoaded) => {\n const items: LineItem[] = []\n const index = checkoutLoaded.lineItems?.map((checkoutItem) => checkoutItem.sku).indexOf(lineItem.sku)\n\n if (index > -1) {\n checkoutLoaded.lineItems[index].quantity += quantity\n checkoutLoaded.lineItems[index].pricePaid = lineItem.pricePaid\n } else\n checkoutLoaded.lineItems = items.concat(\n checkoutLoaded.lineItems ? checkoutLoaded.lineItems.concat([lineItem]) : [lineItem],\n )\n\n return this.checkoutService\n .updateCheckoutLineItems(checkoutLoaded)\n .pipe(map((updatedCheckout) => this.generateCartObject(updatedCheckout.lineItems)))\n }),\n )\n\n private generateCartObject = (items: LineItem[]): Cart => {\n const cart: Cart = {}\n\n items?.forEach(\n (item) =>\n (cart[item.sku] = LineItem.toInstance({\n ...(cart[item.sku] || item),\n quantity: (cart[item.sku]?.quantity || 0) + (item.quantity ? item.quantity : 1),\n })),\n )\n\n return cart\n }\n\n private buildLineItem = ({\n checkout,\n item,\n quantity,\n }: {\n checkout: RequiredCheckoutData\n item: LineItem\n quantity?: number\n }): LineItem => {\n if (this.checkMaxStock(item)) throw new Error('Desculpe! Temos apenas ' + item.stock?.quantity + ' em estoque.')\n\n const image = item.image || item.images?.shift()\n const pricePaid = this.getProductPrice({\n product: item,\n shop: checkout.shop || this.defaultShop,\n isSubscriber: checkout.user?.isSubscriber,\n })\n const { id, name, brand, slug, stock, price, weight, categories, sku } = item\n const isGift = item.isGift || null\n\n return LineItem.toInstance({\n id,\n name,\n brand,\n slug,\n sku,\n stock,\n price,\n image,\n weight,\n quantity,\n pricePaid,\n categories,\n isGift,\n })\n }\n\n private getProductPrice = ({\n product,\n shop,\n isSubscriber,\n }: {\n product: Product\n shop: Shops\n isSubscriber: boolean\n }): number => {\n const info = product.getInfoByShop(shop)\n\n return isSubscriber && info.subscriberPrice > 0 ? info.subscriberPrice : info.price\n }\n\n private checkMaxStock = (item: LineItem) => {\n const maxStock = item.stock?.quantity || 0\n const quantity = item.quantity || 1\n const currentItemAmount = item.quantity\n\n return quantity > maxStock || currentItemAmount + quantity > maxStock\n }\n\n private getFinancialDiscount(coupon: Coupon & { id: string }): (subTotalPrice: number) => number {\n return (subTotalPrice) => {\n if (FinancialCoupon.isFinancialCoupon(coupon))\n switch (coupon.subtype) {\n case CouponSubtypes.ABSOLUTE:\n return subTotalPrice - coupon.discount * 100\n case CouponSubtypes.PERCENTAGE:\n return subTotalPrice * (1 - coupon.discount / 100)\n }\n }\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core'\nimport {\n AngularFireModule,\n FIREBASE_APP_NAME,\n FIREBASE_OPTIONS,\n FirebaseAppConfig,\n FirebaseOptions,\n} from '@angular/fire'\nimport { AngularFireAuth } from '@angular/fire/auth'\nimport {\n Authentication,\n AuthenticationFirebaseAuthService,\n AuthenticationService,\n SignOut,\n UserRepository,\n} from '@infrab4a/connect'\n\n@NgModule({\n imports: [AngularFireModule],\n providers: [\n {\n provide: 'Authentication',\n useFactory: (authenticationService: AuthenticationService, userRepository: UserRepository): Authentication => {\n return new Authentication(authenticationService, userRepository)\n },\n deps: ['AuthenticationService', 'UserRepository'],\n },\n {\n provide: 'AuthenticationService',\n useFactory: (angularFireAuth: AngularFireAuth): AuthenticationService => {\n return new AuthenticationFirebaseAuthService(angularFireAuth as any)\n },\n deps: [AngularFireAuth],\n },\n {\n provide: 'SignOut',\n useFactory: (authenticationService: AuthenticationService): SignOut => {\n return new SignOut(authenticationService)\n },\n deps: ['AuthenticationService'],\n },\n ],\n})\nexport class AngularFirebaseAuthModule {\n static initializeApp(\n options: FirebaseOptions,\n nameOrConfig?: string | FirebaseAppConfig,\n ): ModuleWithProviders<AngularFireModule> {\n return {\n ngModule: AngularFirebaseAuthModule,\n providers: [\n { provide: FIREBASE_OPTIONS, useValue: options },\n { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },\n ],\n }\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core'\nimport {\n AngularFireModule,\n FIREBASE_APP_NAME,\n FIREBASE_OPTIONS,\n FirebaseAppConfig,\n FirebaseOptions,\n} from '@angular/fire'\nimport { AngularFirestore } from '@angular/fire/firestore'\nimport {\n BeautyProfileRepository,\n Buy2WinFirestoreRepository,\n Buy2WinRepository,\n CategoryRepository,\n CategoryFirestoreRepository,\n CheckoutRepository,\n CheckoutFirestoreRepository,\n CheckoutSubscriptionFirestoreRepository,\n CheckoutSubscriptionRepository,\n CouponRepository,\n CouponFirestoreRepository,\n EditionRepository,\n HomeFirestoreRepository,\n HomeRepository,\n ShopMenuFirestoreRepository,\n ShopMenuRepository,\n OrderRepository,\n OrderFirestoreRepository,\n PaymentRepository,\n PaymentFirestoreRepository,\n ProductRepository,\n ProductFirestoreRepository,\n SubscriptionEditionFirestoreRepository,\n SubscriptionFirestoreRepository,\n SubscriptionPaymentFirestoreRepository,\n SubscriptionPaymentRepository,\n SubscriptionPlanFirestoreRepository,\n SubscriptionPlanRepository,\n SubscriptionRepository,\n UserAddressRepository,\n UserAddressFirestoreRepository,\n UserBeautyProfileFirestoreRepository,\n UserFirestoreRepository,\n UserRepository,\n VariantRepository,\n ProductVariantFirestoreRepository,\n} from '@infrab4a/connect'\n\n@NgModule({\n imports: [AngularFireModule],\n providers: [\n {\n provide: 'BeautyProfileRepository',\n useFactory: (firestore: AngularFirestore, userRepository: UserFirestoreRepository): BeautyProfileRepository => {\n return new UserBeautyProfileFirestoreRepository(firestore.firestore, userRepository)\n },\n deps: [AngularFirestore, 'UserRepository'],\n },\n {\n provide: 'Buy2WinRepository',\n useFactory: (firestore: AngularFirestore): Buy2WinRepository => {\n return new Buy2WinFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'CategoryRepository',\n useFactory: (firestore: AngularFirestore): CategoryRepository => {\n return new CategoryFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'CheckoutRepository',\n useFactory: (firestore: AngularFirestore): CheckoutRepository => {\n return new CheckoutFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'CheckoutSubscriptionRepository',\n useFactory: (firestore: AngularFirestore): CheckoutSubscriptionRepository => {\n return new CheckoutSubscriptionFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'CouponRepository',\n useFactory: (firestore: AngularFirestore): CouponRepository => {\n return new CouponFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'EditionRepository',\n useFactory: (\n firestore: AngularFirestore,\n subscriptionRepository: SubscriptionFirestoreRepository,\n ): EditionRepository => {\n return new SubscriptionEditionFirestoreRepository(firestore.firestore, subscriptionRepository)\n },\n deps: [AngularFirestore, 'SubscriptionRepository'],\n },\n {\n provide: 'HomeRepository',\n useFactory: (firestore: AngularFirestore): HomeRepository => {\n return new HomeFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'ShopMenuRepository',\n useFactory: (firestore: AngularFirestore): ShopMenuRepository => {\n return new ShopMenuFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'OrderRepository',\n useFactory: (firestore: AngularFirestore): OrderRepository => {\n return new OrderFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'PaymentRepository',\n useFactory: (firestore: AngularFirestore): PaymentRepository => {\n return new PaymentFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'ProductRepository',\n useFactory: (firestore: AngularFirestore): ProductRepository => {\n return new ProductFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'SubscriptionPaymentRepository',\n useFactory: (\n firestore: AngularFirestore,\n subscriptionRepository: SubscriptionFirestoreRepository,\n ): SubscriptionPaymentRepository => {\n return new SubscriptionPaymentFirestoreRepository(firestore.firestore, subscriptionRepository)\n },\n deps: [AngularFirestore, 'SubscriptionRepository'],\n },\n {\n provide: 'SubscriptionPlanRepository',\n useFactory: (firestore: AngularFirestore): SubscriptionPlanRepository => {\n return new SubscriptionPlanFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'SubscriptionRepository',\n useFactory: (firestore: AngularFirestore): SubscriptionRepository => {\n return new SubscriptionFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'UserRepository',\n useFactory: (firestore: AngularFirestore): UserRepository => {\n return new UserFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'UserAddressRepository',\n useFactory: (firestore: AngularFirestore, userRepository: UserFirestoreRepository): UserAddressRepository => {\n return new UserAddressFirestoreRepository(firestore.firestore, userRepository)\n },\n deps: [AngularFirestore, 'UserRepository'],\n },\n {\n provide: 'VariantRepository',\n useFactory: (firestore: AngularFirestore, productRepository: ProductFirestoreRepository): VariantRepository => {\n return new ProductVariantFirestoreRepository(firestore.firestore, productRepository)\n },\n deps: [AngularFirestore, 'ProductRepository'],\n },\n ],\n})\nexport class AngularFirestoreModule {\n static initializeApp(\n options: FirebaseOptions,\n nameOrConfig?: string | FirebaseAppConfig,\n ): ModuleWithProviders<AngularFireModule> {\n return {\n ngModule: AngularFirestoreModule,\n providers: [\n { provide: FIREBASE_OPTIONS, useValue: options },\n { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },\n ],\n }\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core'\nimport {\n AngularFireModule,\n FIREBASE_APP_NAME,\n FIREBASE_OPTIONS,\n FirebaseAppConfig,\n FirebaseOptions,\n} from '@angular/fire'\nimport { isNil, Shops } from '@infrab4a/connect'\n\nimport { AngularFirestoreModule } from './angular-firestore.module'\nimport { AuthService, CartService, CheckoutService } from './services'\nimport { DEFAULT_SHOP } from './consts'\n\n@NgModule({\n imports: [AngularFireModule, AngularFirestoreModule],\n providers: [AuthService, CartService, CheckoutService],\n})\nexport class AngularConnectModule {\n static initializeApp(\n defaultShop: Shops,\n options: FirebaseOptions,\n nameOrConfig?: string | FirebaseAppConfig,\n ): ModuleWithProviders<AngularFireModule> {\n return {\n ngModule: AngularConnectModule,\n providers: [\n ...(isNil(defaultShop) ? [] : [{ provide: DEFAULT_SHOP, useValue: defaultShop }]),\n ...(isNil(options) ? [] : [{ provide: FIREBASE_OPTIONS, useValue: options }]),\n ...(isNil(options) ? [] : [{ provide: FIREBASE_APP_NAME, useValue: nameOrConfig }]),\n ],\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["from","map","throwError","mergeMap","Injectable","Inject","cookie","isNil","of","NotFoundError","Checkout","Subject","LineItem","CouponTypes","iif","catchError","forkJoin","FinancialCoupon","CouponSubtypes","FIREBASE_OPTIONS","FIREBASE_APP_NAME","AngularFireModule","Authentication","AuthenticationFirebaseAuthService","AngularFireAuth","SignOut","NgModule","UserBeautyProfileFirestoreRepository","AngularFirestore","Buy2WinFirestoreRepository","CategoryFirestoreRepository","CheckoutFirestoreRepository","CheckoutSubscriptionFirestoreRepository","CouponFirestoreRepository","SubscriptionEditionFirestoreRepository","HomeFirestoreRepository","ShopMenuFirestoreRepository","OrderFirestoreRepository","PaymentFirestoreRepository","ProductFirestoreRepository","SubscriptionPaymentFirestoreRepository","SubscriptionPlanFirestoreRepository","SubscriptionFirestoreRepository","UserFirestoreRepository","UserAddressFirestoreRepository","ProductVariantFirestoreRepository"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { Injectable, Inject } from '@angular/core';
2
- import { CouponSubtypes, CouponTypes, FinancialCoupon, isEmpty, isNil, LineItem, Shops, } from '@infrab4a/connect';
3
- import { iif, of, Subject } from 'rxjs';
2
+ import { Checkout, CouponSubtypes, CouponTypes, FinancialCoupon, isNil, LineItem, Shops, } from '@infrab4a/connect';
3
+ import { forkJoin, iif, of, Subject } from 'rxjs';
4
4
  import { catchError, map, mergeMap } from 'rxjs/operators';
5
5
  import { DEFAULT_SHOP } from '../consts';
6
6
  import { AuthService } from './auth.service';
@@ -15,18 +15,19 @@ export class CartService {
15
15
  this.checkoutService = checkoutService;
16
16
  this.defaultShop = defaultShop;
17
17
  this.cartSubject = new Subject();
18
- this.updateLineItemInCart = (lineItem, quantity) => this.checkoutService.getCheckout().pipe(mergeMap((checkoutLoaded) => {
18
+ this.updateLineItemInCart = (lineItem, quantity, checkout) => (isNil(checkout) ? this.checkoutService.getCheckout() : of(checkout)).pipe(mergeMap((checkoutLoaded) => {
19
19
  var _a;
20
20
  const items = [];
21
21
  const index = (_a = checkoutLoaded.lineItems) === null || _a === void 0 ? void 0 : _a.map((checkoutItem) => checkoutItem.sku).indexOf(lineItem.sku);
22
22
  if (index > -1) {
23
23
  checkoutLoaded.lineItems[index].quantity += quantity;
24
+ checkoutLoaded.lineItems[index].pricePaid = lineItem.pricePaid;
24
25
  }
25
26
  else
26
27
  checkoutLoaded.lineItems = items.concat(checkoutLoaded.lineItems ? checkoutLoaded.lineItems.concat([lineItem]) : [lineItem]);
27
28
  return this.checkoutService
28
29
  .updateCheckoutLineItems(checkoutLoaded)
29
- .pipe(map((checkout) => this.generateCartObject(checkout.lineItems)));
30
+ .pipe(map((updatedCheckout) => this.generateCartObject(updatedCheckout.lineItems)));
30
31
  }));
31
32
  this.generateCartObject = (items) => {
32
33
  const cart = {};
@@ -36,12 +37,16 @@ export class CartService {
36
37
  });
37
38
  return cart;
38
39
  };
39
- this.buildLineItem = ({ checkout, item, isSubscriber, quantity, }) => {
40
- var _a, _b;
40
+ this.buildLineItem = ({ checkout, item, quantity, }) => {
41
+ var _a, _b, _c;
41
42
  if (this.checkMaxStock(item))
42
43
  throw new Error('Desculpe! Temos apenas ' + ((_a = item.stock) === null || _a === void 0 ? void 0 : _a.quantity) + ' em estoque.');
43
44
  const image = item.image || ((_b = item.images) === null || _b === void 0 ? void 0 : _b.shift());
44
- const pricePaid = this.getProductPrice({ product: item, shop: checkout.shop || this.defaultShop, isSubscriber });
45
+ const pricePaid = this.getProductPrice({
46
+ product: item,
47
+ shop: checkout.shop || this.defaultShop,
48
+ isSubscriber: (_c = checkout.user) === null || _c === void 0 ? void 0 : _c.isSubscriber,
49
+ });
45
50
  const { id, name, brand, slug, stock, price, weight, categories, sku } = item;
46
51
  const isGift = item.isGift || null;
47
52
  return LineItem.toInstance({
@@ -60,7 +65,10 @@ export class CartService {
60
65
  isGift,
61
66
  });
62
67
  };
63
- this.getProductPrice = ({ product, shop, isSubscriber, }) => product.getInfoByShop(shop)[isSubscriber ? 'subscriberPrice' : 'price'];
68
+ this.getProductPrice = ({ product, shop, isSubscriber, }) => {
69
+ const info = product.getInfoByShop(shop);
70
+ return isSubscriber && info.subscriberPrice > 0 ? info.subscriberPrice : info.price;
71
+ };
64
72
  this.checkMaxStock = (item) => {
65
73
  var _a;
66
74
  const maxStock = ((_a = item.stock) === null || _a === void 0 ? void 0 : _a.quantity) || 0;
@@ -69,17 +77,10 @@ export class CartService {
69
77
  return quantity > maxStock || currentItemAmount + quantity > maxStock;
70
78
  };
71
79
  }
72
- addItem(item, quantity = 1, checkoutData) {
73
- of(checkoutData)
74
- .pipe(mergeMap((checkout) => (isEmpty(checkout === null || checkout === void 0 ? void 0 : checkout.id) ? this.checkoutService.getCheckout(checkoutData) : of(checkout))), mergeMap((checkout) => {
75
- var _a;
76
- quantity = quantity || 1;
77
- return of((_a = checkout.user) === null || _a === void 0 ? void 0 : _a.isSubscriber).pipe(mergeMap((isSubscriber) => isSubscriber
78
- ? of(isSubscriber)
79
- : this.checkoutService.getUserByCheckout(checkout.id).pipe(catchError(() => of({ isSubscriber: false })), map((user) => user.isSubscriber))), mergeMap((isSubscriber) => {
80
- return this.buildCartFromCheckout().pipe(map(() => this.buildLineItem({ checkout, item, quantity, isSubscriber })), mergeMap((lineItem) => this.updateLineItemInCart(lineItem, quantity)));
81
- }));
82
- }))
80
+ addItem(item, quantity = 1) {
81
+ this.checkoutService
82
+ .getCheckout()
83
+ .pipe(map((checkout) => this.buildLineItem({ checkout, item, quantity: quantity || 1 })), mergeMap((lineItem) => this.updateLineItemInCart(lineItem, quantity || 1)))
83
84
  .subscribe((cart) => this.cartSubject.next(cart));
84
85
  return this.cartSubject;
85
86
  }
@@ -96,8 +97,8 @@ export class CartService {
96
97
  .subscribe((cart) => this.cartSubject.next(cart));
97
98
  return this.cartSubject;
98
99
  }
99
- getCart() {
100
- this.buildCartFromCheckout().subscribe((cart) => this.cartSubject.next(cart));
100
+ getCart(checkout) {
101
+ this.buildCartFromCheckout(checkout).subscribe((cart) => this.cartSubject.next(cart));
101
102
  return this.cartSubject;
102
103
  }
103
104
  getDiscount(coupon) {
@@ -125,8 +126,15 @@ export class CartService {
125
126
  .subscribe((cart) => this.cartSubject.next(cart));
126
127
  return this.cartSubject;
127
128
  }
128
- buildCartFromCheckout() {
129
- return this.checkoutService.getCheckout().pipe(map((checkout) => checkout.lineItems), mergeMap((lineItems) => of(this.generateCartObject(lineItems))));
129
+ updateUserCart(user) {
130
+ this.checkoutService
131
+ .getCheckout()
132
+ .pipe(mergeMap((checkout) => this.checkoutService.updateCheckoutUser(Checkout.toInstance(Object.assign(Object.assign({}, checkout.toPlain()), { user })))), mergeMap((checkout) => forkJoin([checkout.lineItems.map((item) => this.buildLineItem({ checkout, item, quantity: item.quantity }))])), map((lineItems) => this.generateCartObject(lineItems)))
133
+ .subscribe((cart) => this.cartSubject.next(cart));
134
+ return this.cartSubject;
135
+ }
136
+ buildCartFromCheckout(checkoutData) {
137
+ return this.checkoutService.getCheckout(checkoutData).pipe(map((checkout) => checkout.lineItems), mergeMap((lineItems) => of(this.generateCartObject(lineItems))));
130
138
  }
131
139
  getFinancialDiscount(coupon) {
132
140
  return (subTotalPrice) => {
@@ -148,4 +156,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImpor
148
156
  type: Inject,
149
157
  args: [DEFAULT_SHOP]
150
158
  }] }]; } });
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvY2FydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xELE9BQU8sRUFFTCxjQUFjLEVBQ2QsV0FBVyxFQUNYLGVBQWUsRUFDZixPQUFPLEVBQ1AsS0FBSyxFQUNMLFFBQVEsRUFFUixLQUFLLEdBQ04sTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUV4QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFBOzs7OztBQVFwRCxNQUFNLE9BQU8sV0FBVztJQUd0QixZQUNtQixXQUF3QixFQUN4QixlQUFnQyxFQUNWLFdBQWtCO1FBRnhDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNWLGdCQUFXLEdBQVgsV0FBVyxDQUFPO1FBTG5ELGdCQUFXLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUE7UUFvSDFDLHlCQUFvQixHQUFHLENBQUMsUUFBa0IsRUFBRSxRQUFnQixFQUFvQixFQUFFLENBQ3hGLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUNyQyxRQUFRLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRTs7WUFDMUIsTUFBTSxL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TUFBTSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUE7b0JBQzlDLEtBQUssY0FBYyxDQUFDLFVBQVU7d0JBQzVCLE9BQU8sYUFBYSxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLENBQUE7aUJBQ3JEO1FBQ0wsQ0FBQyxDQUFBO0lBQ0gsQ0FBQzs7d0dBck5VLFdBQVcsNEVBTVosWUFBWTs0R0FOWCxXQUFXOzJGQUFYLFdBQVc7a0JBRHZCLFVBQVU7OzBCQU9OLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBDb3Vwb24sXG4gIENvdXBvblN1YnR5cGVzLFxuICBDb3Vwb25UeXBlcyxcbiAgRmluYW5jaWFsQ291cG9uLFxuICBpc0VtcHR5LFxuICBpc05pbCxcbiAgTGluZUl0ZW0sXG4gIFByb2R1Y3QsXG4gIFNob3BzLFxufSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcbmltcG9ydCB7IGlpZiwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBtZXJnZU1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBERUZBVUxUX1NIT1AgfSBmcm9tICcuLi9jb25zdHMnXG5cbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnXG5pbXBvcnQgeyBDaGVja291dFNlcnZpY2UgfSBmcm9tICcuL2NoZWNrb3V0LnNlcnZpY2UnXG5pbXBvcnQgeyBSZXF1aXJlZENoZWNrb3V0RGF0YSB9IGZyb20gJy4vdHlwZXMnXG5cbmV4cG9ydCB0eXBlIENhcnQgPSB7XG4gIFtpZDogc3RyaW5nXTogTGluZUl0ZW1cbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhcnRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjYXJ0U3ViamVjdDogU3ViamVjdDxDYXJ0PiA9IG5ldyBTdWJqZWN0KClcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoZWNrb3V0U2VydmljZTogQ2hlY2tvdXRTZXJ2aWNlLFxuICAgIEBJbmplY3QoREVGQVVMVF9TSE9QKSBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRTaG9wOiBTaG9wcyxcbiAgKSB7fVxuXG4gIHB1YmxpYyBhZGRJdGVtKGl0ZW06IExpbmVJdGVtLCBxdWFudGl0eTogbnVtYmVyID0gMSwgY2hlY2tvdXREYXRhPzogUmVxdWlyZWRDaGVja291dERhdGEpOiBPYnNlcnZhYmxlPENhcnQ+IHtcbiAgICBvZihjaGVja291dERhdGEpXG4gICAgICAucGlwZShcbiAgICAgICAgbWVyZ2VNYXAoKGNoZWNrb3V0KSA9PiAoaXNFbXB0eShjaGVja291dD8uaWQpID8gdGhpcy5jaGVja291dFNlcnZpY2UuZ2V0Q2hlY2tvdXQoY2hlY2tvdXREYXRhKSA6IG9mKGNoZWNrb3V0KSkpLFxuICAgICAgICBtZXJnZU1hcCgoY2hlY2tvdXQpID0+IHtcbiAgICAgICAgICBxdWFudGl0eSA9IHF1YW50aXR5IHx8IDFcblxuICAgICAgICAgIHJldHVybiBvZihjaGVja291dC51c2VyPy5pc1N1YnNjcmliZXIpLnBpcGUoXG4gICAgICAgICAgICBtZXJnZU1hcCgoaXNTdWJzY3JpYmVyKSA9PlxuICAgICAgICAgICAgICBpc1N1YnNjcmliZXJcbiAgICAgICAgICAgICAgICA/IG9mKGlzU3Vic2NyaWJlcilcbiAgICAgICAgICAgICAgICA6IHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmdldFVzZXJCeUNoZWNrb3V0KGNoZWNrb3V0LmlkKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IG9mKHsgaXNTdWJzY3JpYmVyOiBmYWxzZSB9KSksXG4gICAgICAgICAgICAgICAgICAgIG1hcCgodXNlcikgPT4gdXNlci5pc1N1YnNjcmliZXIpLFxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBtZXJnZU1hcCgoaXNTdWJzY3JpYmVyKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmJ1aWxkQ2FydEZyb21DaGVja291dCgpLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKCgpID0+IHRoaXMuYnVpbGRMaW5lSXRlbSh7IGNoZWNrb3V0LCBpdGVtLCBxdWFudGl0eSwgaXNTdWJzY3JpYmVyIH0pKSxcbiAgICAgICAgICAgICAgICBtZXJnZU1hcCgobGluZUl0ZW0pID0+IHRoaXMudXBkYXRlTGluZUl0ZW1JbkNhcnQobGluZUl0ZW0sIHF1YW50aXR5KSksXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIClcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChjYXJ0KSA9PiB0aGlzLmNhcnRTdWJqZWN0Lm5leHQoY2FydCkpXG5cbiAgICByZXR1cm4gdGhpcy5jYXJ0U3ViamVjdFxuICB9XG5cbiAgcHVibGljIGRlY3JlYXNlSXRlbShpdGVtOiBMaW5lSXRlbSk6IE9ic2VydmFibGU8Q2FydD4ge1xuICAgIHRoaXMuY2hlY2tvdXRTZXJ2aWNlXG4gICAgICAuZ2V0Q2hlY2tvdXQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoY2hlY2tvdXQpID0+IHtcbiAgICAgICAgICBjb25zdCBjaGVja291dEl0ZW0gPSBjaGVja291dC5saW5lSXRlbXM/LmZpbmQoKGxpbmVJdGVtKSA9PiBsaW5lSXRlbS5za3UgPT09IGl0ZW0uc2t1KVxuXG4gICAgICAgICAgaWYgKCFpc05pbChjaGVja291dEl0ZW0pKSBjaGVja291dEl0ZW0ucXVhbnRpdHkgLT0gY2hlY2tvdXRJdGVtLnF1YW50aXR5ID4gMSA/IDEgOiAwXG5cbiAgICAgICAgICByZXR1cm4gY2hlY2tvdXRcbiAgICAgICAgfSksXG4gICAgICAgIG1lcmdlTWFwKChjaGVja291dCkgPT4gdGhpcy5jaGVja291dFNlcnZpY2UudXBkYXRlQ2hlY2tvdXRMaW5lSXRlbXMoY2hlY2tvdXQpKSxcbiAgICAgICAgbWFwKChjaGVja291dCkgPT4gdGhpcy5nZW5lcmF0ZUNhcnRPYmplY3QoY2hlY2tvdXQubGluZUl0ZW1zKSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChjYXJ0KSA9PiB0aGlzLmNhcnRTdWJqZWN0Lm5leHQoY2FydCkpXG5cbiAgICByZXR1cm4gdGhpcy5jYXJ0U3ViamVjdFxuICB9XG5cbiAgcHVibGljIGdldENhcnQoKTogT2JzZXJ2YWJsZTxDYXJ0PiB7XG4gICAgdGhpcy5idWlsZENhcnRGcm9tQ2hlY2tvdXQoKS5zdWJzY3JpYmUoKGNhcnQpID0+IHRoaXMuY2FydFN1YmplY3QubmV4dChjYXJ0KSlcblxuICAgIHJldHVybiB0aGlzLmNhcnRTdWJqZWN0XG4gIH1cblxuICBnZXREaXNjb3VudChjb3Vwb246IENvdXBvbiAmIHsgaWQ6IHN0cmluZyB9KTogKHN1YlRvdGFsUHJpY2U6IG51bWJlcikgPT4gbnVtYmVyIHtcbiAgICBzd2l0Y2ggKGNvdXBvbi50eXBlKSB7XG4gICAgICBjYXNlIENvdXBvblR5cGVzLkZJTkFOQ0lBTDpcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RmluYW5jaWFsRGlzY291bnQoY291cG9uKVxuICAgICAgY2FzZSBDb3Vwb25UeXBlcy5QUk9EVUNUOlxuICAgICAgICByZXR1cm4gKHN1YlRvdGFsUHJpY2U6IG51bWJlcikgPT4gc3ViVG90YWxQcmljZVxuICAgICAgY2FzZSBDb3Vwb25UeXBlcy5HSUZUQ0FSRDpcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RmluYW5jaWFsRGlzY291bnQoY291cG9uKVxuICAgICAgY2FzZSBDb3Vwb25UeXBlcy5WT1VDSEVSOlxuICAgICAgICByZXR1cm4gKHN1YlRvdGFsUHJpY2U6IG51bWJlcikgPT4gc3ViVG90YWxQcmljZVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRWYXJpYW50UHJpY2VEaXNjb3VudChpdGVtOiBMaW5lSXRlbSwgc2hvcDogU2hvcHMpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLmF1dGhTZXJ2aWNlLmdldFVzZXIoKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoKHVzZXIpID0+XG4gICAgICAgIGlpZihcbiAgICAgICAgICAoKSA9PiB1c2VyLmlzU3Vic2NyaWJlciAmJiAhIWl0ZW0uZ2V0SW5mb0J5U2hvcChzaG9wKS5zdWJzY3JpYmVyUHJpY2UsXG4gICAgICAgICAgb2YoaXRlbS5nZXRJbmZvQnlTaG9wKHNob3ApLnN1YnNjcmliZXJQcmljZSksXG4gICAgICAgICAgb2YoaXRlbS5nZXRJbmZvQnlTaG9wKHNob3ApLnByaWNlKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgICBjYXRjaEVycm9yKCgpID0+IG9mKGl0ZW0uZ2V0SW5mb0J5U2hvcChzaG9wKS5wcmljZSkpLFxuICAgIClcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVJdGVtKGl0ZW06IExpbmVJdGVtKTogT2JzZXJ2YWJsZTxDYXJ0PiB7XG4gICAgdGhpcy5jaGVja291dFNlcnZpY2VcbiAgICAgIC5nZXRDaGVja291dCgpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChjaGVja291dCkgPT4ge1xuICAgICAgICAgIGNoZWNrb3V0LmxpbmVJdGVtcy5zcGxpY2UoXG4gICAgICAgICAgICBjaGVja291dC5saW5lSXRlbXMuZmluZEluZGV4KChsaW5lSXRlbSkgPT4gbGluZUl0ZW0uc2t1ID09PSBpdGVtLnNrdSksXG4gICAgICAgICAgICAxLFxuICAgICAgICAgIClcblxuICAgICAgICAgIHJldHVybiBjaGVja291dFxuICAgICAgICB9KSxcbiAgICAgICAgbWVyZ2VNYXAoKGNoZWNrb3V0KSA9PiB0aGlzLmNoZWNrb3V0U2VydmljZS51cGRhdGVDaGVja291dExpbmVJdGVtcyhjaGVja291dCkpLFxuICAgICAgICBtYXAoKGNoZWNrb3V0KSA9PiB0aGlzLmdlbmVyYXRlQ2FydE9iamVjdChjaGVja291dC5saW5lSXRlbXMpKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGNhcnQpID0+IHRoaXMuY2FydFN1YmplY3QubmV4dChjYXJ0KSlcblxuICAgIHJldHVybiB0aGlzLmNhcnRTdWJqZWN0XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQ2FydEZyb21DaGVja291dCgpOiBPYnNlcnZhYmxlPENhcnQ+IHtcbiAgICByZXR1cm4gdGhpcy5jaGVja291dFNlcnZpY2UuZ2V0Q2hlY2tvdXQoKS5waXBlKFxuICAgICAgbWFwKChjaGVja291dCkgPT4gY2hlY2tvdXQubGluZUl0ZW1zKSxcbiAgICAgIG1lcmdlTWFwKChsaW5lSXRlbXMpID0+IG9mKHRoaXMuZ2VuZXJhdGVDYXJ0T2JqZWN0KGxpbmVJdGVtcykpKSxcbiAgICApXG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUxpbmVJdGVtSW5DYXJ0ID0gKGxpbmVJdGVtOiBMaW5lSXRlbSwgcXVhbnRpdHk6IG51bWJlcik6IE9ic2VydmFibGU8Q2FydD4gPT5cbiAgICB0aGlzLmNoZWNrb3V0U2VydmljZS5nZXRDaGVja291dCgpLnBpcGUoXG4gICAgICBtZXJnZU1hcCgoY2hlY2tvdXRMb2FkZWQpID0+IHtcbiAgICAgICAgY29uc3QgaXRlbXM6IExpbmVJdGVtW10gPSBbXVxuICAgICAgICBjb25zdCBpbmRleCA9IGNoZWNrb3V0TG9hZGVkLmxpbmVJdGVtcz8ubWFwKChjaGVja291dEl0ZW0pID0+IGNoZWNrb3V0SXRlbS5za3UpLmluZGV4T2YobGluZUl0ZW0uc2t1KVxuXG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgY2hlY2tvdXRMb2FkZWQubGluZUl0ZW1zW2luZGV4XS5xdWFudGl0eSArPSBxdWFudGl0eVxuICAgICAgICB9IGVsc2VcbiAgICAgICAgICBjaGVja291dExvYWRlZC5saW5lSXRlbXMgPSBpdGVtcy5jb25jYXQoXG4gICAgICAgICAgICBjaGVja291dExvYWRlZC5saW5lSXRlbXMgPyBjaGVja291dExvYWRlZC5saW5lSXRlbXMuY29uY2F0KFtsaW5lSXRlbV0pIDogW2xpbmVJdGVtXSxcbiAgICAgICAgICApXG5cbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tvdXRTZXJ2aWNlXG4gICAgICAgICAgLnVwZGF0ZUNoZWNrb3V0TGluZUl0ZW1zKGNoZWNrb3V0TG9hZGVkKVxuICAgICAgICAgIC5waXBlKG1hcCgoY2hlY2tvdXQpID0+IHRoaXMuZ2VuZXJhdGVDYXJ0T2JqZWN0KGNoZWNrb3V0LmxpbmVJdGVtcykpKVxuICAgICAgfSksXG4gICAgKVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVDYXJ0T2JqZWN0ID0gKGl0ZW1zOiBMaW5lSXRlbVtdKTogQ2FydCA9PiB7XG4gICAgY29uc3QgY2FydDogQ2FydCA9IHt9XG5cbiAgICBpdGVtcz8uZm9yRWFjaChcbiAgICAgIChpdGVtKSA9PlxuICAgICAgICAoY2FydFtpdGVtLnNrdV0gPSBMaW5lSXRlbS50b0luc3RhbmNlKHtcbiAgICAgICAgICAuLi4oY2FydFtpdGVtLnNrdV0gfHwgaXRlbSksXG4gICAgICAgICAgcXVhbnRpdHk6IChjYXJ0W2l0ZW0uc2t1XT8ucXVhbnRpdHkgfHwgMCkgKyAoaXRlbS5xdWFudGl0eSA/IGl0ZW0ucXVhbnRpdHkgOiAxKSxcbiAgICAgICAgfSkpLFxuICAgIClcblxuICAgIHJldHVybiBjYXJ0XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkTGluZUl0ZW0gPSAoe1xuICAgIGNoZWNrb3V0LFxuICAgIGl0ZW0sXG4gICAgaXNTdWJzY3JpYmVyLFxuICAgIHF1YW50aXR5LFxuICB9OiB7XG4gICAgY2hlY2tvdXQ6IFJlcXVpcmVkQ2hlY2tvdXREYXRhXG4gICAgaXRlbTogTGluZUl0ZW1cbiAgICBpc1N1YnNjcmliZXI6IGJvb2xlYW5cbiAgICBxdWFudGl0eT86IG51bWJlclxuICB9KTogTGluZUl0ZW0gPT4ge1xuICAgIGlmICh0aGlzLmNoZWNrTWF4U3RvY2soaXRlbSkpIHRocm93IG5ldyBFcnJvcignRGVzY3VscGUhIFRlbW9zIGFwZW5hcyAnICsgaXRlbS5zdG9jaz8ucXVhbnRpdHkgKyAnIGVtIGVzdG9xdWUuJylcblxuICAgIGNvbnN0IGltYWdlID0gaXRlbS5pbWFnZSB8fCBpdGVtLmltYWdlcz8uc2hpZnQoKVxuICAgIGNvbnN0IHByaWNlUGFpZCA9IHRoaXMuZ2V0UHJvZHVjdFByaWNlKHsgcHJvZHVjdDogaXRlbSwgc2hvcDogY2hlY2tvdXQuc2hvcCB8fCB0aGlzLmRlZmF1bHRTaG9wLCBpc1N1YnNjcmliZXIgfSlcbiAgICBjb25zdCB7IGlkLCBuYW1lLCBicmFuZCwgc2x1Zywgc3RvY2ssIHByaWNlLCB3ZWlnaHQsIGNhdGVnb3JpZXMsIHNrdSB9ID0gaXRlbVxuICAgIGNvbnN0IGlzR2lmdCA9IGl0ZW0uaXNHaWZ0IHx8IG51bGxcblxuICAgIHJldHVybiBMaW5lSXRlbS50b0luc3RhbmNlKHtcbiAgICAgIGlkLFxuICAgICAgbmFtZSxcbiAgICAgIGJyYW5kLFxuICAgICAgc2x1ZyxcbiAgICAgIHNrdSxcbiAgICAgIHN0b2NrLFxuICAgICAgcHJpY2UsXG4gICAgICBpbWFnZSxcbiAgICAgIHdlaWdodCxcbiAgICAgIHF1YW50aXR5LFxuICAgICAgcHJpY2VQYWlkLFxuICAgICAgY2F0ZWdvcmllcyxcbiAgICAgIGlzR2lmdCxcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRQcm9kdWN0UHJpY2UgPSAoe1xuICAgIHByb2R1Y3QsXG4gICAgc2hvcCxcbiAgICBpc1N1YnNjcmliZXIsXG4gIH06IHtcbiAgICBwcm9kdWN0OiBQcm9kdWN0XG4gICAgc2hvcDogU2hvcHNcbiAgICBpc1N1YnNjcmliZXI6IGJvb2xlYW5cbiAgfSk6IG51bWJlciA9PiBwcm9kdWN0LmdldEluZm9CeVNob3Aoc2hvcClbaXNTdWJzY3JpYmVyID8gJ3N1YnNjcmliZXJQcmljZScgOiAncHJpY2UnXVxuXG4gIHByaXZhdGUgY2hlY2tNYXhTdG9jayA9IChpdGVtOiBMaW5lSXRlbSkgPT4ge1xuICAgIGNvbnN0IG1heFN0b2NrID0gaXRlbS5zdG9jaz8ucXVhbnRpdHkgfHwgMFxuICAgIGNvbnN0IHF1YW50aXR5ID0gaXRlbS5xdWFudGl0eSB8fCAxXG4gICAgY29uc3QgY3VycmVudEl0ZW1BbW91bnQgPSBpdGVtLnF1YW50aXR5XG5cbiAgICByZXR1cm4gcXVhbnRpdHkgPiBtYXhTdG9jayB8fCBjdXJyZW50SXRlbUFtb3VudCArIHF1YW50aXR5ID4gbWF4U3RvY2tcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmluYW5jaWFsRGlzY291bnQoY291cG9uOiBDb3Vwb24gJiB7IGlkOiBzdHJpbmcgfSk6IChzdWJUb3RhbFByaWNlOiBudW1iZXIpID0+IG51bWJlciB7XG4gICAgcmV0dXJuIChzdWJUb3RhbFByaWNlKSA9PiB7XG4gICAgICBpZiAoRmluYW5jaWFsQ291cG9uLmlzRmluYW5jaWFsQ291cG9uKGNvdXBvbikpXG4gICAgICAgIHN3aXRjaCAoY291cG9uLnN1YnR5cGUpIHtcbiAgICAgICAgICBjYXNlIENvdXBvblN1YnR5cGVzLkFCU09MVVRFOlxuICAgICAgICAgICAgcmV0dXJuIHN1YlRvdGFsUHJpY2UgLSBjb3Vwb24uZGlzY291bnQgKiAxMDBcbiAgICAgICAgICBjYXNlIENvdXBvblN1YnR5cGVzLlBFUkNFTlRBR0U6XG4gICAgICAgICAgICByZXR1cm4gc3ViVG90YWxQcmljZSAqICgxIC0gY291cG9uLmRpc2NvdW50IC8gMTAwKVxuICAgICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvY2FydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xELE9BQU8sRUFDTCxRQUFRLEVBRVIsY0FBYyxFQUNkLFdBQVcsRUFDWCxlQUFlLEVBQ2YsS0FBSyxFQUNMLFFBQVEsRUFFUixLQUFLLEdBRU4sTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzdELE9BQU8sRUFBRSxVQUFVLEVBQWEsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRXJFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFeEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTs7Ozs7QUFRcEQsTUFBTSxPQUFPLFdBQVc7SUFHdEIsWUFDbUIsV0FBd0IsRUFDeEIsZUFBZ0MsRUFDVixXQUFrQjtRQUZ4QyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDVixnQkFBVyxHQUFYLFdBQVcsQ0FBTztRQUxuRCxnQkFBVyxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFBO1FBbUgxQyx5QkFBb0IsR0FBRyxDQUFDLFFBQWtCLEVBQUUsUUFBZ0IsRUFBRSxRQUFtQixFQUFvQixFQUFFLENBQzdHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFB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QUFTLENBQUMsQ0FBQyxDQUFDLENBQ2hFLENBQUE7SUFDSCxDQUFDO0lBK0ZPLG9CQUFvQixDQUFDLE1BQStCO1FBQzFELE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUN2QixJQUFJLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUM7Z0JBQzNDLFFBQVEsTUFBTSxDQUFDLE9BQU8sRUFBRTtvQkFDdEIsS0FBSyxjQUFjLENBQUMsUUFBUTt3QkFDMUIsT0FBTyxhQUFhLEdBQUcsTUFBTSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUE7b0JBQzlDLEtBQUssY0FBYyxDQUFDLFVBQVU7d0JBQzVCLE9BQU8sYUFBYSxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLENBQUE7aUJBQ3JEO1FBQ0wsQ0FBQyxDQUFBO0lBQ0gsQ0FBQzs7d0dBM05VLFdBQVcsNEVBTVosWUFBWTs0R0FOWCxXQUFXOzJGQUFYLFdBQVc7a0JBRHZCLFVBQVU7OzBCQU9OLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBDaGVja291dCxcbiAgQ291cG9uLFxuICBDb3Vwb25TdWJ0eXBlcyxcbiAgQ291cG9uVHlwZXMsXG4gIEZpbmFuY2lhbENvdXBvbixcbiAgaXNOaWwsXG4gIExpbmVJdGVtLFxuICBQcm9kdWN0LFxuICBTaG9wcyxcbiAgVXNlcixcbn0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXG5pbXBvcnQgeyBmb3JrSm9pbiwgaWlmLCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBjb25jYXRNYXAsIG1hcCwgbWVyZ2VNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgREVGQVVMVF9TSE9QIH0gZnJvbSAnLi4vY29uc3RzJ1xuXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJ1xuaW1wb3J0IHsgQ2hlY2tvdXRTZXJ2aWNlIH0gZnJvbSAnLi9jaGVja291dC5zZXJ2aWNlJ1xuaW1wb3J0IHsgUmVxdWlyZWRDaGVja291dERhdGEgfSBmcm9tICcuL3R5cGVzJ1xuXG5leHBvcnQgdHlwZSBDYXJ0ID0ge1xuICBbaWQ6IHN0cmluZ106IExpbmVJdGVtXG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDYXJ0U2VydmljZSB7XG4gIHByaXZhdGUgY2FydFN1YmplY3Q6IFN1YmplY3Q8Q2FydD4gPSBuZXcgU3ViamVjdCgpXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjaGVja291dFNlcnZpY2U6IENoZWNrb3V0U2VydmljZSxcbiAgICBASW5qZWN0KERFRkFVTFRfU0hPUCkgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0U2hvcDogU2hvcHMsXG4gICkge31cblxuICBhZGRJdGVtKGl0ZW06IExpbmVJdGVtLCBxdWFudGl0eTogbnVtYmVyID0gMSk6IE9ic2VydmFibGU8Q2FydD4ge1xuICAgIHRoaXMuY2hlY2tvdXRTZXJ2aWNlXG4gICAgICAuZ2V0Q2hlY2tvdXQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoY2hlY2tvdXQpID0+IHRoaXMuYnVpbGRMaW5lSXRlbSh7IGNoZWNrb3V0LCBpdGVtLCBxdWFudGl0eTogcXVhbnRpdHkgfHwgMSB9KSksXG4gICAgICAgIG1lcmdlTWFwKChsaW5lSXRlbSkgPT4gdGhpcy51cGRhdGVMaW5lSXRlbUluQ2FydChsaW5lSXRlbSwgcXVhbnRpdHkgfHwgMSkpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoY2FydCkgPT4gdGhpcy5jYXJ0U3ViamVjdC5uZXh0KGNhcnQpKVxuXG4gICAgcmV0dXJuIHRoaXMuY2FydFN1YmplY3RcbiAgfVxuXG4gIGRlY3JlYXNlSXRlbShpdGVtOiBMaW5lSXRlbSk6IE9ic2VydmFibGU8Q2FydD4ge1xuICAgIHRoaXMuY2hlY2tvdXRTZXJ2aWNlXG4gICAgICAuZ2V0Q2hlY2tvdXQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoY2hlY2tvdXQpID0+IHtcbiAgICAgICAgICBjb25zdCBjaGVja291dEl0ZW0gPSBjaGVja291dC5saW5lSXRlbXM/LmZpbmQoKGxpbmVJdGVtKSA9PiBsaW5lSXRlbS5za3UgPT09IGl0ZW0uc2t1KVxuXG4gICAgICAgICAgaWYgKCFpc05pbChjaGVja291dEl0ZW0pKSBjaGVja291dEl0ZW0ucXVhbnRpdHkgLT0gY2hlY2tvdXRJdGVtLnF1YW50aXR5ID4gMSA/IDEgOiAwXG5cbiAgICAgICAgICByZXR1cm4gY2hlY2tvdXRcbiAgICAgICAgfSksXG4gICAgICAgIG1lcmdlTWFwKChjaGVja291dCkgPT4gdGhpcy5jaGVja291dFNlcnZpY2UudXBkYXRlQ2hlY2tvdXRMaW5lSXRlbXMoY2hlY2tvdXQpKSxcbiAgICAgICAgbWFwKChjaGVja291dCkgPT4gdGhpcy5nZW5lcmF0ZUNhcnRPYmplY3QoY2hlY2tvdXQubGluZUl0ZW1zKSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChjYXJ0KSA9PiB0aGlzLmNhcnRTdWJqZWN0Lm5leHQoY2FydCkpXG5cbiAgICByZXR1cm4gdGhpcy5jYXJ0U3ViamVjdFxuICB9XG5cbiAgZ2V0Q2FydChjaGVja291dD86IFJlcXVpcmVkQ2hlY2tvdXREYXRhKTogT2JzZXJ2YWJsZTxDYXJ0PiB7XG4gICAgdGhpcy5idWlsZENhcnRGcm9tQ2hlY2tvdXQoY2hlY2tvdXQpLnN1YnNjcmliZSgoY2FydCkgPT4gdGhpcy5jYXJ0U3ViamVjdC5uZXh0KGNhcnQpKVxuXG4gICAgcmV0dXJuIHRoaXMuY2FydFN1YmplY3RcbiAgfVxuXG4gIGdldERpc2NvdW50KGNvdXBvbjogQ291cG9uICYgeyBpZDogc3RyaW5nIH0pOiAoc3ViVG90YWxQcmljZTogbnVtYmVyKSA9PiBudW1iZXIge1xuICAgIHN3aXRjaCAoY291cG9uLnR5cGUpIHtcbiAgICAgIGNhc2UgQ291cG9uVHlwZXMuRklOQU5DSUFMOlxuICAgICAgICByZXR1cm4gdGhpcy5nZXRGaW5hbmNpYWxEaXNjb3VudChjb3Vwb24pXG4gICAgICBjYXNlIENvdXBvblR5cGVzLlBST0RVQ1Q6XG4gICAgICAgIHJldHVybiAoc3ViVG90YWxQcmljZTogbnVtYmVyKSA9PiBzdWJUb3RhbFByaWNlXG4gICAgICBjYXNlIENvdXBvblR5cGVzLkdJRlRDQVJEOlxuICAgICAgICByZXR1cm4gdGhpcy5nZXRGaW5hbmNpYWxEaXNjb3VudChjb3Vwb24pXG4gICAgICBjYXNlIENvdXBvblR5cGVzLlZPVUNIRVI6XG4gICAgICAgIHJldHVybiAoc3ViVG90YWxQcmljZTogbnVtYmVyKSA9PiBzdWJUb3RhbFByaWNlXG4gICAgfVxuICB9XG5cbiAgZ2V0VmFyaWFudFByaWNlRGlzY291bnQoaXRlbTogTGluZUl0ZW0sIHNob3A6IFNob3BzKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5hdXRoU2VydmljZS5nZXRVc2VyKCkucGlwZShcbiAgICAgIG1lcmdlTWFwKCh1c2VyKSA9PlxuICAgICAgICBpaWYoXG4gICAgICAgICAgKCkgPT4gdXNlci5pc1N1YnNjcmliZXIgJiYgISFpdGVtLmdldEluZm9CeVNob3Aoc2hvcCkuc3Vic2NyaWJlclByaWNlLFxuICAgICAgICAgIG9mKGl0ZW0uZ2V0SW5mb0J5U2hvcChzaG9wKS5zdWJzY3JpYmVyUHJpY2UpLFxuICAgICAgICAgIG9mKGl0ZW0uZ2V0SW5mb0J5U2hvcChzaG9wKS5wcmljZSksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihpdGVtLmdldEluZm9CeVNob3Aoc2hvcCkucHJpY2UpKSxcbiAgICApXG4gIH1cblxuICByZW1vdmVJdGVtKGl0ZW06IExpbmVJdGVtKTogT2JzZXJ2YWJsZTxDYXJ0PiB7XG4gICAgdGhpcy5jaGVja291dFNlcnZpY2VcbiAgICAgIC5nZXRDaGVja291dCgpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChjaGVja291dCkgPT4ge1xuICAgICAgICAgIGNoZWNrb3V0LmxpbmVJdGVtcy5zcGxpY2UoXG4gICAgICAgICAgICBjaGVja291dC5saW5lSXRlbXMuZmluZEluZGV4KChsaW5lSXRlbSkgPT4gbGluZUl0ZW0uc2t1ID09PSBpdGVtLnNrdSksXG4gICAgICAgICAgICAxLFxuICAgICAgICAgIClcblxuICAgICAgICAgIHJldHVybiBjaGVja291dFxuICAgICAgICB9KSxcbiAgICAgICAgbWVyZ2VNYXAoKGNoZWNrb3V0KSA9PiB0aGlzLmNoZWNrb3V0U2VydmljZS51cGRhdGVDaGVja291dExpbmVJdGVtcyhjaGVja291dCkpLFxuICAgICAgICBtYXAoKGNoZWNrb3V0KSA9PiB0aGlzLmdlbmVyYXRlQ2FydE9iamVjdChjaGVja291dC5saW5lSXRlbXMpKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGNhcnQpID0+IHRoaXMuY2FydFN1YmplY3QubmV4dChjYXJ0KSlcblxuICAgIHJldHVybiB0aGlzLmNhcnRTdWJqZWN0XG4gIH1cblxuICB1cGRhdGVVc2VyQ2FydCh1c2VyOiBVc2VyKTogT2JzZXJ2YWJsZTxDYXJ0PiB7XG4gICAgdGhpcy5jaGVja291dFNlcnZpY2VcbiAgICAgIC5nZXRDaGVja291dCgpXG4gICAgICAucGlwZShcbiAgICAgICAgbWVyZ2VNYXAoKGNoZWNrb3V0KSA9PlxuICAgICAgICAgIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLnVwZGF0ZUNoZWNrb3V0VXNlcihDaGVja291dC50b0luc3RhbmNlKHsgLi4uY2hlY2tvdXQudG9QbGFpbigpLCB1c2VyIH0pKSxcbiAgICAgICAgKSxcbiAgICAgICAgbWVyZ2VNYXAoKGNoZWNrb3V0KSA9PlxuICAgICAgICAgIGZvcmtKb2luKFtjaGVja291dC5saW5lSXRlbXMubWFwKChpdGVtKSA9PiB0aGlzLmJ1aWxkTGluZUl0ZW0oeyBjaGVja291dCwgaXRlbSwgcXVhbnRpdHk6IGl0ZW0ucXVhbnRpdHkgfSkpXSksXG4gICAgICAgICksXG4gICAgICAgIG1hcCgobGluZUl0ZW1zKSA9PiB0aGlzLmdlbmVyYXRlQ2FydE9iamVjdChsaW5lSXRlbXMpKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGNhcnQpID0+IHRoaXMuY2FydFN1YmplY3QubmV4dChjYXJ0KSlcblxuICAgIHJldHVybiB0aGlzLmNhcnRTdWJqZWN0XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQ2FydEZyb21DaGVja291dChjaGVja291dERhdGE/OiBSZXF1aXJlZENoZWNrb3V0RGF0YSk6IE9ic2VydmFibGU8Q2FydD4ge1xuICAgIHJldHVybiB0aGlzLmNoZWNrb3V0U2VydmljZS5nZXRDaGVja291dChjaGVja291dERhdGEpLnBpcGUoXG4gICAgICBtYXAoKGNoZWNrb3V0KSA9PiBjaGVja291dC5saW5lSXRlbXMpLFxuICAgICAgbWVyZ2VNYXAoKGxpbmVJdGVtcykgPT4gb2YodGhpcy5nZW5lcmF0ZUNhcnRPYmplY3QobGluZUl0ZW1zKSkpLFxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlTGluZUl0ZW1JbkNhcnQgPSAobGluZUl0ZW06IExpbmVJdGVtLCBxdWFudGl0eTogbnVtYmVyLCBjaGVja291dD86IENoZWNrb3V0KTogT2JzZXJ2YWJsZTxDYXJ0PiA9PlxuICAgIChpc05pbChjaGVja291dCkgPyB0aGlzLmNoZWNrb3V0U2VydmljZS5nZXRDaGVja291dCgpIDogb2YoY2hlY2tvdXQpKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoKGNoZWNrb3V0TG9hZGVkKSA9PiB7XG4gICAgICAgIGNvbnN0IGl0ZW1zOiBMaW5lSXRlbVtdID0gW11cbiAgICAgICAgY29uc3QgaW5kZXggPSBjaGVja291dExvYWRlZC5saW5lSXRlbXM/Lm1hcCgoY2hlY2tvdXRJdGVtKSA9PiBjaGVja291dEl0ZW0uc2t1KS5pbmRleE9mKGxpbmVJdGVtLnNrdSlcblxuICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICAgIGNoZWNrb3V0TG9hZGVkLmxpbmVJdGVtc1tpbmRleF0ucXVhbnRpdHkgKz0gcXVhbnRpdHlcbiAgICAgICAgICBjaGVja291dExvYWRlZC5saW5lSXRlbXNbaW5kZXhdLnByaWNlUGFpZCA9IGxpbmVJdGVtLnByaWNlUGFpZFxuICAgICAgICB9IGVsc2VcbiAgICAgICAgICBjaGVja291dExvYWRlZC5saW5lSXRlbXMgPSBpdGVtcy5jb25jYXQoXG4gICAgICAgICAgICBjaGVja291dExvYWRlZC5saW5lSXRlbXMgPyBjaGVja291dExvYWRlZC5saW5lSXRlbXMuY29uY2F0KFtsaW5lSXRlbV0pIDogW2xpbmVJdGVtXSxcbiAgICAgICAgICApXG5cbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tvdXRTZXJ2aWNlXG4gICAgICAgICAgLnVwZGF0ZUNoZWNrb3V0TGluZUl0ZW1zKGNoZWNrb3V0TG9hZGVkKVxuICAgICAgICAgIC5waXBlKG1hcCgodXBkYXRlZENoZWNrb3V0KSA9PiB0aGlzLmdlbmVyYXRlQ2FydE9iamVjdCh1cGRhdGVkQ2hlY2tvdXQubGluZUl0ZW1zKSkpXG4gICAgICB9KSxcbiAgICApXG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZUNhcnRPYmplY3QgPSAoaXRlbXM6IExpbmVJdGVtW10pOiBDYXJ0ID0+IHtcbiAgICBjb25zdCBjYXJ0OiBDYXJ0ID0ge31cblxuICAgIGl0ZW1zPy5mb3JFYWNoKFxuICAgICAgKGl0ZW0pID0+XG4gICAgICAgIChjYXJ0W2l0ZW0uc2t1XSA9IExpbmVJdGVtLnRvSW5zdGFuY2Uoe1xuICAgICAgICAgIC4uLihjYXJ0W2l0ZW0uc2t1XSB8fCBpdGVtKSxcbiAgICAgICAgICBxdWFudGl0eTogKGNhcnRbaXRlbS5za3VdPy5xdWFudGl0eSB8fCAwKSArIChpdGVtLnF1YW50aXR5ID8gaXRlbS5xdWFudGl0eSA6IDEpLFxuICAgICAgICB9KSksXG4gICAgKVxuXG4gICAgcmV0dXJuIGNhcnRcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRMaW5lSXRlbSA9ICh7XG4gICAgY2hlY2tvdXQsXG4gICAgaXRlbSxcbiAgICBxdWFudGl0eSxcbiAgfToge1xuICAgIGNoZWNrb3V0OiBSZXF1aXJlZENoZWNrb3V0RGF0YVxuICAgIGl0ZW06IExpbmVJdGVtXG4gICAgcXVhbnRpdHk/OiBudW1iZXJcbiAgfSk6IExpbmVJdGVtID0+IHtcbiAgICBpZiAodGhpcy5jaGVja01heFN0b2NrKGl0ZW0pKSB0aHJvdyBuZXcgRXJyb3IoJ0Rlc2N1bHBlISBUZW1vcyBhcGVuYXMgJyArIGl0ZW0uc3RvY2s/LnF1YW50aXR5ICsgJyBlbSBlc3RvcXVlLicpXG5cbiAgICBjb25zdCBpbWFnZSA9IGl0ZW0uaW1hZ2UgfHwgaXRlbS5pbWFnZXM/LnNoaWZ0KClcbiAgICBjb25zdCBwcmljZVBhaWQgPSB0aGlzLmdldFByb2R1Y3RQcmljZSh7XG4gICAgICBwcm9kdWN0OiBpdGVtLFxuICAgICAgc2hvcDogY2hlY2tvdXQuc2hvcCB8fCB0aGlzLmRlZmF1bHRTaG9wLFxuICAgICAgaXNTdWJzY3JpYmVyOiBjaGVja291dC51c2VyPy5pc1N1YnNjcmliZXIsXG4gICAgfSlcbiAgICBjb25zdCB7IGlkLCBuYW1lLCBicmFuZCwgc2x1Zywgc3RvY2ssIHByaWNlLCB3ZWlnaHQsIGNhdGVnb3JpZXMsIHNrdSB9ID0gaXRlbVxuICAgIGNvbnN0IGlzR2lmdCA9IGl0ZW0uaXNHaWZ0IHx8IG51bGxcblxuICAgIHJldHVybiBMaW5lSXRlbS50b0luc3RhbmNlKHtcbiAgICAgIGlkLFxuICAgICAgbmFtZSxcbiAgICAgIGJyYW5kLFxuICAgICAgc2x1ZyxcbiAgICAgIHNrdSxcbiAgICAgIHN0b2NrLFxuICAgICAgcHJpY2UsXG4gICAgICBpbWFnZSxcbiAgICAgIHdlaWdodCxcbiAgICAgIHF1YW50aXR5LFxuICAgICAgcHJpY2VQYWlkLFxuICAgICAgY2F0ZWdvcmllcyxcbiAgICAgIGlzR2lmdCxcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRQcm9kdWN0UHJpY2UgPSAoe1xuICAgIHByb2R1Y3QsXG4gICAgc2hvcCxcbiAgICBpc1N1YnNjcmliZXIsXG4gIH06IHtcbiAgICBwcm9kdWN0OiBQcm9kdWN0XG4gICAgc2hvcDogU2hvcHNcbiAgICBpc1N1YnNjcmliZXI6IGJvb2xlYW5cbiAgfSk6IG51bWJlciA9PiB7XG4gICAgY29uc3QgaW5mbyA9IHByb2R1Y3QuZ2V0SW5mb0J5U2hvcChzaG9wKVxuXG4gICAgcmV0dXJuIGlzU3Vic2NyaWJlciAmJiBpbmZvLnN1YnNjcmliZXJQcmljZSA+IDAgPyBpbmZvLnN1YnNjcmliZXJQcmljZSA6IGluZm8ucHJpY2VcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tNYXhTdG9jayA9IChpdGVtOiBMaW5lSXRlbSkgPT4ge1xuICAgIGNvbnN0IG1heFN0b2NrID0gaXRlbS5zdG9jaz8ucXVhbnRpdHkgfHwgMFxuICAgIGNvbnN0IHF1YW50aXR5ID0gaXRlbS5xdWFudGl0eSB8fCAxXG4gICAgY29uc3QgY3VycmVudEl0ZW1BbW91bnQgPSBpdGVtLnF1YW50aXR5XG5cbiAgICByZXR1cm4gcXVhbnRpdHkgPiBtYXhTdG9jayB8fCBjdXJyZW50SXRlbUFtb3VudCArIHF1YW50aXR5ID4gbWF4U3RvY2tcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmluYW5jaWFsRGlzY291bnQoY291cG9uOiBDb3Vwb24gJiB7IGlkOiBzdHJpbmcgfSk6IChzdWJUb3RhbFByaWNlOiBudW1iZXIpID0+IG51bWJlciB7XG4gICAgcmV0dXJuIChzdWJUb3RhbFByaWNlKSA9PiB7XG4gICAgICBpZiAoRmluYW5jaWFsQ291cG9uLmlzRmluYW5jaWFsQ291cG9uKGNvdXBvbikpXG4gICAgICAgIHN3aXRjaCAoY291cG9uLnN1YnR5cGUpIHtcbiAgICAgICAgICBjYXNlIENvdXBvblN1YnR5cGVzLkFCU09MVVRFOlxuICAgICAgICAgICAgcmV0dXJuIHN1YlRvdGFsUHJpY2UgLSBjb3Vwb24uZGlzY291bnQgKiAxMDBcbiAgICAgICAgICBjYXNlIENvdXBvblN1YnR5cGVzLlBFUkNFTlRBR0U6XG4gICAgICAgICAgICByZXR1cm4gc3ViVG90YWxQcmljZSAqICgxIC0gY291cG9uLmRpc2NvdW50IC8gMTAwKVxuICAgICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -25,6 +25,9 @@ export class CheckoutService {
25
25
  updateCheckoutLineItems(checkout) {
26
26
  return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, lineItems: checkout.lineItems })));
27
27
  }
28
+ updateCheckoutUser(checkout) {
29
+ return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, user: checkout.user })));
30
+ }
28
31
  createCheckout(checkoutData) {
29
32
  return __awaiter(this, void 0, void 0, function* () {
30
33
  const checkout = yield this.checkoutRepository.create(Object.assign(Object.assign({ createdAt: new Date() }, Checkout.toInstance(checkoutData).toPlain()), { shop: checkoutData.shop || this.defaultShop }));
@@ -47,4 +50,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImpor
47
50
  type: Inject,
48
51
  args: [DEFAULT_SHOP]
49
52
  }] }]; } });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL2NoZWNrb3V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xELE9BQU8sRUFBRSxRQUFRLEVBQXNCLEtBQUssRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUF3QixNQUFNLG1CQUFtQixDQUFBO0FBQ25ILE9BQU8sTUFBTSxNQUFNLFdBQVcsQ0FBQTtBQUM5QixPQUFPLEVBQUUsSUFBSSxFQUFjLFVBQVUsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRXpDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUE7OztBQUt4QyxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUNpRCxrQkFBc0MsRUFDMUMsY0FBOEIsRUFDbEMsV0FBa0I7UUFGVix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQzFDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUNsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBTztJQUN4RCxDQUFDO0lBRUosV0FBVyxDQUFDLFlBQW1DO1FBQzdDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUE7UUFFM0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUVwRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUE7SUFDaEQsQ0FBQztJQUVELGlCQUFpQixDQUFDLFVBQWtCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDL0QsUUFBUSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsV0FDcEIsT0FBQSxDQUFBLE1BQUEsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLElBQUksMENBQUUsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUEsRUFBQSxDQUNqRyxFQUNELFFBQVEsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FDekYsQ0FBQTtJQUNILENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxRQUFrQjtRQUN4QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3RILENBQUM7SUFFYSxjQUFjLENBQUMsWUFBbUM7O1lBQzlELE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sK0JBQ25ELFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRSxJQUNsQixRQUFRLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUM5QyxJQUFJLEVBQUUsWUFBWSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxJQUMzQyxDQUFBO1lBRUYsTUFBTSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBRXJDLE9BQU8sUUFBUSxDQUFBO1FBQ2pCLENBQUM7S0FBQTs7NEdBdENVLGVBQWUsa0JBRWhCLG9CQUFvQixhQUNwQixnQkFBZ0IsYUFDaEIsWUFBWTtnSEFKWCxlQUFlOzJGQUFmLGVBQWU7a0JBRDNCLFVBQVU7OzBCQUdOLE1BQU07MkJBQUMsb0JBQW9COzswQkFDM0IsTUFBTTsyQkFBQyxnQkFBZ0I7OzBCQUN2QixNQUFNOzJCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ2hlY2tvdXQsIENoZWNrb3V0UmVwb3NpdG9yeSwgaXNOaWwsIE5vdEZvdW5kRXJyb3IsIFNob3BzLCBVc2VyLCBVc2VyUmVwb3NpdG9yeSB9IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xuaW1wb3J0IGNvb2tpZSBmcm9tICdqcy1jb29raWUnXG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yLCBvZiB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBtZXJnZU1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBERUZBVUxUX1NIT1AgfSBmcm9tICcuLi9jb25zdHMnXG5cbmltcG9ydCB7IFJlcXVpcmVkQ2hlY2tvdXREYXRhIH0gZnJvbSAnLi90eXBlcydcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENoZWNrb3V0U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoJ0NoZWNrb3V0UmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgY2hlY2tvdXRSZXBvc2l0b3J5OiBDaGVja291dFJlcG9zaXRvcnksXG4gICAgQEluamVjdCgnVXNlclJlcG9zaXRvcnknKSBwcml2YXRlIHJlYWRvbmx5IHVzZXJSZXBvc2l0b3J5OiBVc2VyUmVwb3NpdG9yeSxcbiAgICBASW5qZWN0KERFRkFVTFRfU0hPUCkgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0U2hvcDogU2hvcHMsXG4gICkge31cblxuICBnZXRDaGVja291dChjaGVja291dERhdGE/OiBSZXF1aXJlZENoZWNrb3V0RGF0YSk6IE9ic2VydmFibGU8Q2hlY2tvdXQ+IHtcbiAgICBjb25zdCBjaGVja291dElkID0gY29va2llLmdldCgnY2hlY2tvdXRJZCcpXG5cbiAgICBpZiAoIWlzTmlsKGNoZWNrb3V0SWQpKSByZXR1cm4gZnJvbSh0aGlzLmNoZWNrb3V0UmVwb3NpdG9yeS5nZXQoeyBpZDogY2hlY2tvdXRJZCB9KSlcblxuICAgIHJldHVybiBmcm9tKHRoaXMuY3JlYXRlQ2hlY2tvdXQoY2hlY2tvdXREYXRhKSlcbiAgfVxuXG4gIGdldFVzZXJCeUNoZWNrb3V0KGNoZWNrb3V0SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VXNlcj4ge1xuICAgIHJldHVybiBmcm9tKHRoaXMuY2hlY2tvdXRSZXBvc2l0b3J5LmdldCh7IGlkOiBjaGVja291dElkIH0pKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoKGNoZWNrb3V0KSA9PlxuICAgICAgICBjaGVja291dD8udXNlcj8uaWQgPyBvZihjaGVja291dC51c2VyKSA6IGZyb20odGhpcy51c2VyUmVwb3NpdG9yeS5nZXQoeyBpZDogY2hlY2tvdXQudXNlci5pZCB9KSksXG4gICAgICApLFxuICAgICAgbWVyZ2VNYXAoKHVzZXIpID0+IG9mKHVzZXIpIHx8IHRocm93RXJyb3IoKCkgPT4gbmV3IE5vdEZvdW5kRXJyb3IoJ1VzZXIgaXMgbm90IGZvdW5kJykpKSxcbiAgICApXG4gIH1cblxuICB1cGRhdGVDaGVja291dExpbmVJdGVtcyhjaGVja291dDogQ2hlY2tvdXQpOiBPYnNlcnZhYmxlPENoZWNrb3V0PiB7XG4gICAgcmV0dXJuIGZyb20odGhpcy5jaGVja291dFJlcG9zaXRvcnkudXBkYXRlKENoZWNrb3V0LnRvSW5zdGFuY2UoeyBpZDogY2hlY2tvdXQuaWQsIGxpbmVJdGVtczogY2hlY2tvdXQubGluZUl0ZW1zIH0pKSlcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY3JlYXRlQ2hlY2tvdXQoY2hlY2tvdXREYXRhPzogUmVxdWlyZWRDaGVja291dERhdGEpOiBQcm9taXNlPENoZWNrb3V0PiB7XG4gICAgY29uc3QgY2hlY2tvdXQgPSBhd2FpdCB0aGlzLmNoZWNrb3V0UmVwb3NpdG9yeS5jcmVhdGUoe1xuICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgLi4uQ2hlY2tvdXQudG9JbnN0YW5jZShjaGVja291dERhdGEpLnRvUGxhaW4oKSxcbiAgICAgIHNob3A6IGNoZWNrb3V0RGF0YS5zaG9wIHx8IHRoaXMuZGVmYXVsdFNob3AsXG4gICAgfSlcblxuICAgIGNvb2tpZS5zZXQoJ2NoZWNrb3V0SWQnLCBjaGVja291dC5pZClcblxuICAgIHJldHVybiBjaGVja291dFxuICB9XG59XG4iXX0=
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL2NoZWNrb3V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xELE9BQU8sRUFBRSxRQUFRLEVBQXNCLEtBQUssRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUF3QixNQUFNLG1CQUFtQixDQUFBO0FBQ25ILE9BQU8sTUFBTSxNQUFNLFdBQVcsQ0FBQTtBQUM5QixPQUFPLEVBQUUsSUFBSSxFQUFjLFVBQVUsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRXpDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUE7OztBQUt4QyxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUNpRCxrQkFBc0MsRUFDMUMsY0FBOEIsRUFDbEMsV0FBa0I7UUFGVix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQzFDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUNsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBTztJQUN4RCxDQUFDO0lBRUosV0FBVyxDQUFDLFlBQW1DO1FBQzdDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUE7UUFFM0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUVwRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUE7SUFDaEQsQ0FBQztJQUVELGlCQUFpQixDQUFDLFVBQWtCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDL0QsUUFBUSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsV0FDcEIsT0FBQSxDQUFBLE1BQUEsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLElBQUksMENBQUUsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUEsRUFBQSxDQUNqRyxFQUNELFFBQVEsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FDekYsQ0FBQTtJQUNILENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxRQUEyQjtRQUNqRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3RILENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxRQUEyQjtRQUM1QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzVHLENBQUM7SUFFYSxjQUFjLENBQUMsWUFBbUM7O1lBQzlELE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sK0JBQ25ELFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRSxJQUNsQixRQUFRLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUM5QyxJQUFJLEVBQUUsWUFBWSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxJQUMzQyxDQUFBO1lBRUYsTUFBTSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBRXJDLE9BQU8sUUFBUSxDQUFBO1FBQ2pCLENBQUM7S0FBQTs7NEdBMUNVLGVBQWUsa0JBRWhCLG9CQUFvQixhQUNwQixnQkFBZ0IsYUFDaEIsWUFBWTtnSEFKWCxlQUFlOzJGQUFmLGVBQWU7a0JBRDNCLFVBQVU7OzBCQUdOLE1BQU07MkJBQUMsb0JBQW9COzswQkFDM0IsTUFBTTsyQkFBQyxnQkFBZ0I7OzBCQUN2QixNQUFNOzJCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ2hlY2tvdXQsIENoZWNrb3V0UmVwb3NpdG9yeSwgaXNOaWwsIE5vdEZvdW5kRXJyb3IsIFNob3BzLCBVc2VyLCBVc2VyUmVwb3NpdG9yeSB9IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xuaW1wb3J0IGNvb2tpZSBmcm9tICdqcy1jb29raWUnXG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yLCBvZiB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBtZXJnZU1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBERUZBVUxUX1NIT1AgfSBmcm9tICcuLi9jb25zdHMnXG5cbmltcG9ydCB7IFJlcXVpcmVkQ2hlY2tvdXREYXRhIH0gZnJvbSAnLi90eXBlcydcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENoZWNrb3V0U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoJ0NoZWNrb3V0UmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgY2hlY2tvdXRSZXBvc2l0b3J5OiBDaGVja291dFJlcG9zaXRvcnksXG4gICAgQEluamVjdCgnVXNlclJlcG9zaXRvcnknKSBwcml2YXRlIHJlYWRvbmx5IHVzZXJSZXBvc2l0b3J5OiBVc2VyUmVwb3NpdG9yeSxcbiAgICBASW5qZWN0KERFRkFVTFRfU0hPUCkgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0U2hvcDogU2hvcHMsXG4gICkge31cblxuICBnZXRDaGVja291dChjaGVja291dERhdGE/OiBSZXF1aXJlZENoZWNrb3V0RGF0YSk6IE9ic2VydmFibGU8Q2hlY2tvdXQ+IHtcbiAgICBjb25zdCBjaGVja291dElkID0gY29va2llLmdldCgnY2hlY2tvdXRJZCcpXG5cbiAgICBpZiAoIWlzTmlsKGNoZWNrb3V0SWQpKSByZXR1cm4gZnJvbSh0aGlzLmNoZWNrb3V0UmVwb3NpdG9yeS5nZXQoeyBpZDogY2hlY2tvdXRJZCB9KSlcblxuICAgIHJldHVybiBmcm9tKHRoaXMuY3JlYXRlQ2hlY2tvdXQoY2hlY2tvdXREYXRhKSlcbiAgfVxuXG4gIGdldFVzZXJCeUNoZWNrb3V0KGNoZWNrb3V0SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VXNlcj4ge1xuICAgIHJldHVybiBmcm9tKHRoaXMuY2hlY2tvdXRSZXBvc2l0b3J5LmdldCh7IGlkOiBjaGVja291dElkIH0pKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoKGNoZWNrb3V0KSA9PlxuICAgICAgICBjaGVja291dD8udXNlcj8uaWQgPyBvZihjaGVja291dC51c2VyKSA6IGZyb20odGhpcy51c2VyUmVwb3NpdG9yeS5nZXQoeyBpZDogY2hlY2tvdXQudXNlci5pZCB9KSksXG4gICAgICApLFxuICAgICAgbWVyZ2VNYXAoKHVzZXIpID0+IG9mKHVzZXIpIHx8IHRocm93RXJyb3IoKCkgPT4gbmV3IE5vdEZvdW5kRXJyb3IoJ1VzZXIgaXMgbm90IGZvdW5kJykpKSxcbiAgICApXG4gIH1cblxuICB1cGRhdGVDaGVja291dExpbmVJdGVtcyhjaGVja291dDogUGFydGlhbDxDaGVja291dD4pOiBPYnNlcnZhYmxlPENoZWNrb3V0PiB7XG4gICAgcmV0dXJuIGZyb20odGhpcy5jaGVja291dFJlcG9zaXRvcnkudXBkYXRlKENoZWNrb3V0LnRvSW5zdGFuY2UoeyBpZDogY2hlY2tvdXQuaWQsIGxpbmVJdGVtczogY2hlY2tvdXQubGluZUl0ZW1zIH0pKSlcbiAgfVxuXG4gIHVwZGF0ZUNoZWNrb3V0VXNlcihjaGVja291dDogUGFydGlhbDxDaGVja291dD4pOiBPYnNlcnZhYmxlPENoZWNrb3V0PiB7XG4gICAgcmV0dXJuIGZyb20odGhpcy5jaGVja291dFJlcG9zaXRvcnkudXBkYXRlKENoZWNrb3V0LnRvSW5zdGFuY2UoeyBpZDogY2hlY2tvdXQuaWQsIHVzZXI6IGNoZWNrb3V0LnVzZXIgfSkpKVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjcmVhdGVDaGVja291dChjaGVja291dERhdGE/OiBSZXF1aXJlZENoZWNrb3V0RGF0YSk6IFByb21pc2U8Q2hlY2tvdXQ+IHtcbiAgICBjb25zdCBjaGVja291dCA9IGF3YWl0IHRoaXMuY2hlY2tvdXRSZXBvc2l0b3J5LmNyZWF0ZSh7XG4gICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICAuLi5DaGVja291dC50b0luc3RhbmNlKGNoZWNrb3V0RGF0YSkudG9QbGFpbigpLFxuICAgICAgc2hvcDogY2hlY2tvdXREYXRhLnNob3AgfHwgdGhpcy5kZWZhdWx0U2hvcCxcbiAgICB9KVxuXG4gICAgY29va2llLnNldCgnY2hlY2tvdXRJZCcsIGNoZWNrb3V0LmlkKVxuXG4gICAgcmV0dXJuIGNoZWNrb3V0XG4gIH1cbn1cbiJdfQ==
@@ -2,10 +2,10 @@ import * as i0 from '@angular/core';
2
2
  import { Injectable, Inject, NgModule } from '@angular/core';
3
3
  import * as i1 from '@angular/fire/auth';
4
4
  import { AngularFireAuth } from '@angular/fire/auth';
5
- import { from, throwError, of, Subject, iif } from 'rxjs';
5
+ import { from, throwError, of, Subject, iif, forkJoin } from 'rxjs';
6
6
  import { map, mergeMap, catchError } from 'rxjs/operators';
7
7
  import * as i1$1 from '@infrab4a/connect';
8
- import { isNil, NotFoundError, Checkout, LineItem, isEmpty, CouponTypes, FinancialCoupon, CouponSubtypes, Authentication, AuthenticationFirebaseAuthService, SignOut, UserBeautyProfileFirestoreRepository, Buy2WinFirestoreRepository, CategoryFirestoreRepository, CheckoutFirestoreRepository, CheckoutSubscriptionFirestoreRepository, CouponFirestoreRepository, SubscriptionEditionFirestoreRepository, HomeFirestoreRepository, ShopMenuFirestoreRepository, OrderFirestoreRepository, PaymentFirestoreRepository, ProductFirestoreRepository, SubscriptionPaymentFirestoreRepository, SubscriptionPlanFirestoreRepository, SubscriptionFirestoreRepository, UserFirestoreRepository, UserAddressFirestoreRepository, ProductVariantFirestoreRepository } from '@infrab4a/connect';
8
+ import { isNil, NotFoundError, Checkout, LineItem, CouponTypes, FinancialCoupon, CouponSubtypes, Authentication, AuthenticationFirebaseAuthService, SignOut, UserBeautyProfileFirestoreRepository, Buy2WinFirestoreRepository, CategoryFirestoreRepository, CheckoutFirestoreRepository, CheckoutSubscriptionFirestoreRepository, CouponFirestoreRepository, SubscriptionEditionFirestoreRepository, HomeFirestoreRepository, ShopMenuFirestoreRepository, OrderFirestoreRepository, PaymentFirestoreRepository, ProductFirestoreRepository, SubscriptionPaymentFirestoreRepository, SubscriptionPlanFirestoreRepository, SubscriptionFirestoreRepository, UserFirestoreRepository, UserAddressFirestoreRepository, ProductVariantFirestoreRepository } from '@infrab4a/connect';
9
9
  import { __awaiter } from 'tslib';
10
10
  import cookie from 'js-cookie';
11
11
  import { FIREBASE_OPTIONS, FIREBASE_APP_NAME, AngularFireModule } from '@angular/fire';
@@ -52,6 +52,9 @@ class CheckoutService {
52
52
  updateCheckoutLineItems(checkout) {
53
53
  return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, lineItems: checkout.lineItems })));
54
54
  }
55
+ updateCheckoutUser(checkout) {
56
+ return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, user: checkout.user })));
57
+ }
55
58
  createCheckout(checkoutData) {
56
59
  return __awaiter(this, void 0, void 0, function* () {
57
60
  const checkout = yield this.checkoutRepository.create(Object.assign(Object.assign({ createdAt: new Date() }, Checkout.toInstance(checkoutData).toPlain()), { shop: checkoutData.shop || this.defaultShop }));
@@ -81,18 +84,19 @@ class CartService {
81
84
  this.checkoutService = checkoutService;
82
85
  this.defaultShop = defaultShop;
83
86
  this.cartSubject = new Subject();
84
- this.updateLineItemInCart = (lineItem, quantity) => this.checkoutService.getCheckout().pipe(mergeMap((checkoutLoaded) => {
87
+ this.updateLineItemInCart = (lineItem, quantity, checkout) => (isNil(checkout) ? this.checkoutService.getCheckout() : of(checkout)).pipe(mergeMap((checkoutLoaded) => {
85
88
  var _a;
86
89
  const items = [];
87
90
  const index = (_a = checkoutLoaded.lineItems) === null || _a === void 0 ? void 0 : _a.map((checkoutItem) => checkoutItem.sku).indexOf(lineItem.sku);
88
91
  if (index > -1) {
89
92
  checkoutLoaded.lineItems[index].quantity += quantity;
93
+ checkoutLoaded.lineItems[index].pricePaid = lineItem.pricePaid;
90
94
  }
91
95
  else
92
96
  checkoutLoaded.lineItems = items.concat(checkoutLoaded.lineItems ? checkoutLoaded.lineItems.concat([lineItem]) : [lineItem]);
93
97
  return this.checkoutService
94
98
  .updateCheckoutLineItems(checkoutLoaded)
95
- .pipe(map((checkout) => this.generateCartObject(checkout.lineItems)));
99
+ .pipe(map((updatedCheckout) => this.generateCartObject(updatedCheckout.lineItems)));
96
100
  }));
97
101
  this.generateCartObject = (items) => {
98
102
  const cart = {};
@@ -102,12 +106,16 @@ class CartService {
102
106
  });
103
107
  return cart;
104
108
  };
105
- this.buildLineItem = ({ checkout, item, isSubscriber, quantity, }) => {
106
- var _a, _b;
109
+ this.buildLineItem = ({ checkout, item, quantity, }) => {
110
+ var _a, _b, _c;
107
111
  if (this.checkMaxStock(item))
108
112
  throw new Error('Desculpe! Temos apenas ' + ((_a = item.stock) === null || _a === void 0 ? void 0 : _a.quantity) + ' em estoque.');
109
113
  const image = item.image || ((_b = item.images) === null || _b === void 0 ? void 0 : _b.shift());
110
- const pricePaid = this.getProductPrice({ product: item, shop: checkout.shop || this.defaultShop, isSubscriber });
114
+ const pricePaid = this.getProductPrice({
115
+ product: item,
116
+ shop: checkout.shop || this.defaultShop,
117
+ isSubscriber: (_c = checkout.user) === null || _c === void 0 ? void 0 : _c.isSubscriber,
118
+ });
111
119
  const { id, name, brand, slug, stock, price, weight, categories, sku } = item;
112
120
  const isGift = item.isGift || null;
113
121
  return LineItem.toInstance({
@@ -126,7 +134,10 @@ class CartService {
126
134
  isGift,
127
135
  });
128
136
  };
129
- this.getProductPrice = ({ product, shop, isSubscriber, }) => product.getInfoByShop(shop)[isSubscriber ? 'subscriberPrice' : 'price'];
137
+ this.getProductPrice = ({ product, shop, isSubscriber, }) => {
138
+ const info = product.getInfoByShop(shop);
139
+ return isSubscriber && info.subscriberPrice > 0 ? info.subscriberPrice : info.price;
140
+ };
130
141
  this.checkMaxStock = (item) => {
131
142
  var _a;
132
143
  const maxStock = ((_a = item.stock) === null || _a === void 0 ? void 0 : _a.quantity) || 0;
@@ -135,17 +146,10 @@ class CartService {
135
146
  return quantity > maxStock || currentItemAmount + quantity > maxStock;
136
147
  };
137
148
  }
138
- addItem(item, quantity = 1, checkoutData) {
139
- of(checkoutData)
140
- .pipe(mergeMap((checkout) => (isEmpty(checkout === null || checkout === void 0 ? void 0 : checkout.id) ? this.checkoutService.getCheckout(checkoutData) : of(checkout))), mergeMap((checkout) => {
141
- var _a;
142
- quantity = quantity || 1;
143
- return of((_a = checkout.user) === null || _a === void 0 ? void 0 : _a.isSubscriber).pipe(mergeMap((isSubscriber) => isSubscriber
144
- ? of(isSubscriber)
145
- : this.checkoutService.getUserByCheckout(checkout.id).pipe(catchError(() => of({ isSubscriber: false })), map((user) => user.isSubscriber))), mergeMap((isSubscriber) => {
146
- return this.buildCartFromCheckout().pipe(map(() => this.buildLineItem({ checkout, item, quantity, isSubscriber })), mergeMap((lineItem) => this.updateLineItemInCart(lineItem, quantity)));
147
- }));
148
- }))
149
+ addItem(item, quantity = 1) {
150
+ this.checkoutService
151
+ .getCheckout()
152
+ .pipe(map((checkout) => this.buildLineItem({ checkout, item, quantity: quantity || 1 })), mergeMap((lineItem) => this.updateLineItemInCart(lineItem, quantity || 1)))
149
153
  .subscribe((cart) => this.cartSubject.next(cart));
150
154
  return this.cartSubject;
151
155
  }
@@ -162,8 +166,8 @@ class CartService {
162
166
  .subscribe((cart) => this.cartSubject.next(cart));
163
167
  return this.cartSubject;
164
168
  }
165
- getCart() {
166
- this.buildCartFromCheckout().subscribe((cart) => this.cartSubject.next(cart));
169
+ getCart(checkout) {
170
+ this.buildCartFromCheckout(checkout).subscribe((cart) => this.cartSubject.next(cart));
167
171
  return this.cartSubject;
168
172
  }
169
173
  getDiscount(coupon) {
@@ -191,8 +195,15 @@ class CartService {
191
195
  .subscribe((cart) => this.cartSubject.next(cart));
192
196
  return this.cartSubject;
193
197
  }
194
- buildCartFromCheckout() {
195
- return this.checkoutService.getCheckout().pipe(map((checkout) => checkout.lineItems), mergeMap((lineItems) => of(this.generateCartObject(lineItems))));
198
+ updateUserCart(user) {
199
+ this.checkoutService
200
+ .getCheckout()
201
+ .pipe(mergeMap((checkout) => this.checkoutService.updateCheckoutUser(Checkout.toInstance(Object.assign(Object.assign({}, checkout.toPlain()), { user })))), mergeMap((checkout) => forkJoin([checkout.lineItems.map((item) => this.buildLineItem({ checkout, item, quantity: item.quantity }))])), map((lineItems) => this.generateCartObject(lineItems)))
202
+ .subscribe((cart) => this.cartSubject.next(cart));
203
+ return this.cartSubject;
204
+ }
205
+ buildCartFromCheckout(checkoutData) {
206
+ return this.checkoutService.getCheckout(checkoutData).pipe(map((checkout) => checkout.lineItems), mergeMap((lineItems) => of(this.generateCartObject(lineItems))));
196
207
  }
197
208
  getFinancialDiscount(coupon) {
198
209
  return (subTotalPrice) => {
@@ -1 +1 @@
1
- {"version":3,"file":"infrab4a-connect-angular.js","sources":["../../../projects/connect-angular/src/lib/services/auth.service.ts","../../../projects/connect-angular/src/lib/consts/default-shop.const.ts","../../../projects/connect-angular/src/lib/services/checkout.service.ts","../../../projects/connect-angular/src/lib/services/cart.service.ts","../../../projects/connect-angular/src/lib/angular-firebase-auth.module.ts","../../../projects/connect-angular/src/lib/angular-firestore.module.ts","../../../projects/connect-angular/src/lib/angular-connect.module.ts","../../../projects/connect-angular/src/infrab4a-connect-angular.ts"],"sourcesContent":["import { Injectable, Inject } from '@angular/core'\nimport { AngularFireAuth } from '@angular/fire/auth'\nimport { User, UserRepository } from '@infrab4a/connect'\nimport { from, Observable, throwError } from 'rxjs'\nimport { map, mergeMap } from 'rxjs/operators'\n\n@Injectable()\nexport class AuthService {\n constructor(\n private readonly angularFireAuth: AngularFireAuth,\n @Inject('UserRepository') private readonly userRepository: UserRepository,\n ) {}\n\n getUser(): Observable<User> {\n return from(this.getTokenId()).pipe(\n map((id) => id || throwError(() => new Error('Usuário não logado'))),\n mergeMap((id) => this.userRepository.get({ id })),\n )\n }\n\n getTokenId(): Observable<string> {\n return this.angularFireAuth.idToken\n }\n}\n","export const DEFAULT_SHOP = 'DEFAULT_SHOP'\n","import { Injectable, Inject } from '@angular/core'\nimport { Checkout, CheckoutRepository, isNil, NotFoundError, Shops, User, UserRepository } from '@infrab4a/connect'\nimport cookie from 'js-cookie'\nimport { from, Observable, throwError, of } from 'rxjs'\nimport { mergeMap } from 'rxjs/operators'\n\nimport { DEFAULT_SHOP } from '../consts'\n\nimport { RequiredCheckoutData } from './types'\n\n@Injectable()\nexport class CheckoutService {\n constructor(\n @Inject('CheckoutRepository') private readonly checkoutRepository: CheckoutRepository,\n @Inject('UserRepository') private readonly userRepository: UserRepository,\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\n ) {}\n\n getCheckout(checkoutData?: RequiredCheckoutData): Observable<Checkout> {\n const checkoutId = cookie.get('checkoutId')\n\n if (!isNil(checkoutId)) return from(this.checkoutRepository.get({ id: checkoutId }))\n\n return from(this.createCheckout(checkoutData))\n }\n\n getUserByCheckout(checkoutId: string): Observable<User> {\n return from(this.checkoutRepository.get({ id: checkoutId })).pipe(\n mergeMap((checkout) =>\n checkout?.user?.id ? of(checkout.user) : from(this.userRepository.get({ id: checkout.user.id })),\n ),\n mergeMap((user) => of(user) || throwError(() => new NotFoundError('User is not found'))),\n )\n }\n\n updateCheckoutLineItems(checkout: Checkout): Observable<Checkout> {\n return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, lineItems: checkout.lineItems })))\n }\n\n private async createCheckout(checkoutData?: RequiredCheckoutData): Promise<Checkout> {\n const checkout = await this.checkoutRepository.create({\n createdAt: new Date(),\n ...Checkout.toInstance(checkoutData).toPlain(),\n shop: checkoutData.shop || this.defaultShop,\n })\n\n cookie.set('checkoutId', checkout.id)\n\n return checkout\n }\n}\n","import { Injectable, Inject } from '@angular/core'\nimport {\n Coupon,\n CouponSubtypes,\n CouponTypes,\n FinancialCoupon,\n isEmpty,\n isNil,\n LineItem,\n Product,\n Shops,\n} from '@infrab4a/connect'\nimport { iif, Observable, of, Subject } from 'rxjs'\nimport { catchError, map, mergeMap } from 'rxjs/operators'\n\nimport { DEFAULT_SHOP } from '../consts'\n\nimport { AuthService } from './auth.service'\nimport { CheckoutService } from './checkout.service'\nimport { RequiredCheckoutData } from './types'\n\nexport type Cart = {\n [id: string]: LineItem\n}\n\n@Injectable()\nexport class CartService {\n private cartSubject: Subject<Cart> = new Subject()\n\n constructor(\n private readonly authService: AuthService,\n private readonly checkoutService: CheckoutService,\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\n ) {}\n\n public addItem(item: LineItem, quantity: number = 1, checkoutData?: RequiredCheckoutData): Observable<Cart> {\n of(checkoutData)\n .pipe(\n mergeMap((checkout) => (isEmpty(checkout?.id) ? this.checkoutService.getCheckout(checkoutData) : of(checkout))),\n mergeMap((checkout) => {\n quantity = quantity || 1\n\n return of(checkout.user?.isSubscriber).pipe(\n mergeMap((isSubscriber) =>\n isSubscriber\n ? of(isSubscriber)\n : this.checkoutService.getUserByCheckout(checkout.id).pipe(\n catchError(() => of({ isSubscriber: false })),\n map((user) => user.isSubscriber),\n ),\n ),\n mergeMap((isSubscriber) => {\n return this.buildCartFromCheckout().pipe(\n map(() => this.buildLineItem({ checkout, item, quantity, isSubscriber })),\n mergeMap((lineItem) => this.updateLineItemInCart(lineItem, quantity)),\n )\n }),\n )\n }),\n )\n .subscribe((cart) => this.cartSubject.next(cart))\n\n return this.cartSubject\n }\n\n public decreaseItem(item: LineItem): Observable<Cart> {\n this.checkoutService\n .getCheckout()\n .pipe(\n map((checkout) => {\n const checkoutItem = checkout.lineItems?.find((lineItem) => lineItem.sku === item.sku)\n\n if (!isNil(checkoutItem)) checkoutItem.quantity -= checkoutItem.quantity > 1 ? 1 : 0\n\n return checkout\n }),\n mergeMap((checkout) => this.checkoutService.updateCheckoutLineItems(checkout)),\n map((checkout) => this.generateCartObject(checkout.lineItems)),\n )\n .subscribe((cart) => this.cartSubject.next(cart))\n\n return this.cartSubject\n }\n\n public getCart(): Observable<Cart> {\n this.buildCartFromCheckout().subscribe((cart) => this.cartSubject.next(cart))\n\n return this.cartSubject\n }\n\n getDiscount(coupon: Coupon & { id: string }): (subTotalPrice: number) => number {\n switch (coupon.type) {\n case CouponTypes.FINANCIAL:\n return this.getFinancialDiscount(coupon)\n case CouponTypes.PRODUCT:\n return (subTotalPrice: number) => subTotalPrice\n case CouponTypes.GIFTCARD:\n return this.getFinancialDiscount(coupon)\n case CouponTypes.VOUCHER:\n return (subTotalPrice: number) => subTotalPrice\n }\n }\n\n public getVariantPriceDiscount(item: LineItem, shop: Shops): Observable<number> {\n return this.authService.getUser().pipe(\n mergeMap((user) =>\n iif(\n () => user.isSubscriber && !!item.getInfoByShop(shop).subscriberPrice,\n of(item.getInfoByShop(shop).subscriberPrice),\n of(item.getInfoByShop(shop).price),\n ),\n ),\n catchError(() => of(item.getInfoByShop(shop).price)),\n )\n }\n\n public removeItem(item: LineItem): Observable<Cart> {\n this.checkoutService\n .getCheckout()\n .pipe(\n map((checkout) => {\n checkout.lineItems.splice(\n checkout.lineItems.findIndex((lineItem) => lineItem.sku === item.sku),\n 1,\n )\n\n return checkout\n }),\n mergeMap((checkout) => this.checkoutService.updateCheckoutLineItems(checkout)),\n map((checkout) => this.generateCartObject(checkout.lineItems)),\n )\n .subscribe((cart) => this.cartSubject.next(cart))\n\n return this.cartSubject\n }\n\n private buildCartFromCheckout(): Observable<Cart> {\n return this.checkoutService.getCheckout().pipe(\n map((checkout) => checkout.lineItems),\n mergeMap((lineItems) => of(this.generateCartObject(lineItems))),\n )\n }\n\n private updateLineItemInCart = (lineItem: LineItem, quantity: number): Observable<Cart> =>\n this.checkoutService.getCheckout().pipe(\n mergeMap((checkoutLoaded) => {\n const items: LineItem[] = []\n const index = checkoutLoaded.lineItems?.map((checkoutItem) => checkoutItem.sku).indexOf(lineItem.sku)\n\n if (index > -1) {\n checkoutLoaded.lineItems[index].quantity += quantity\n } else\n checkoutLoaded.lineItems = items.concat(\n checkoutLoaded.lineItems ? checkoutLoaded.lineItems.concat([lineItem]) : [lineItem],\n )\n\n return this.checkoutService\n .updateCheckoutLineItems(checkoutLoaded)\n .pipe(map((checkout) => this.generateCartObject(checkout.lineItems)))\n }),\n )\n\n private generateCartObject = (items: LineItem[]): Cart => {\n const cart: Cart = {}\n\n items?.forEach(\n (item) =>\n (cart[item.sku] = LineItem.toInstance({\n ...(cart[item.sku] || item),\n quantity: (cart[item.sku]?.quantity || 0) + (item.quantity ? item.quantity : 1),\n })),\n )\n\n return cart\n }\n\n private buildLineItem = ({\n checkout,\n item,\n isSubscriber,\n quantity,\n }: {\n checkout: RequiredCheckoutData\n item: LineItem\n isSubscriber: boolean\n quantity?: number\n }): LineItem => {\n if (this.checkMaxStock(item)) throw new Error('Desculpe! Temos apenas ' + item.stock?.quantity + ' em estoque.')\n\n const image = item.image || item.images?.shift()\n const pricePaid = this.getProductPrice({ product: item, shop: checkout.shop || this.defaultShop, isSubscriber })\n const { id, name, brand, slug, stock, price, weight, categories, sku } = item\n const isGift = item.isGift || null\n\n return LineItem.toInstance({\n id,\n name,\n brand,\n slug,\n sku,\n stock,\n price,\n image,\n weight,\n quantity,\n pricePaid,\n categories,\n isGift,\n })\n }\n\n private getProductPrice = ({\n product,\n shop,\n isSubscriber,\n }: {\n product: Product\n shop: Shops\n isSubscriber: boolean\n }): number => product.getInfoByShop(shop)[isSubscriber ? 'subscriberPrice' : 'price']\n\n private checkMaxStock = (item: LineItem) => {\n const maxStock = item.stock?.quantity || 0\n const quantity = item.quantity || 1\n const currentItemAmount = item.quantity\n\n return quantity > maxStock || currentItemAmount + quantity > maxStock\n }\n\n private getFinancialDiscount(coupon: Coupon & { id: string }): (subTotalPrice: number) => number {\n return (subTotalPrice) => {\n if (FinancialCoupon.isFinancialCoupon(coupon))\n switch (coupon.subtype) {\n case CouponSubtypes.ABSOLUTE:\n return subTotalPrice - coupon.discount * 100\n case CouponSubtypes.PERCENTAGE:\n return subTotalPrice * (1 - coupon.discount / 100)\n }\n }\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core'\nimport {\n AngularFireModule,\n FIREBASE_APP_NAME,\n FIREBASE_OPTIONS,\n FirebaseAppConfig,\n FirebaseOptions,\n} from '@angular/fire'\nimport { AngularFireAuth } from '@angular/fire/auth'\nimport {\n Authentication,\n AuthenticationFirebaseAuthService,\n AuthenticationService,\n SignOut,\n UserRepository,\n} from '@infrab4a/connect'\n\n@NgModule({\n imports: [AngularFireModule],\n providers: [\n {\n provide: 'Authentication',\n useFactory: (authenticationService: AuthenticationService, userRepository: UserRepository): Authentication => {\n return new Authentication(authenticationService, userRepository)\n },\n deps: ['AuthenticationService', 'UserRepository'],\n },\n {\n provide: 'AuthenticationService',\n useFactory: (angularFireAuth: AngularFireAuth): AuthenticationService => {\n return new AuthenticationFirebaseAuthService(angularFireAuth as any)\n },\n deps: [AngularFireAuth],\n },\n {\n provide: 'SignOut',\n useFactory: (authenticationService: AuthenticationService): SignOut => {\n return new SignOut(authenticationService)\n },\n deps: ['AuthenticationService'],\n },\n ],\n})\nexport class AngularFirebaseAuthModule {\n static initializeApp(\n options: FirebaseOptions,\n nameOrConfig?: string | FirebaseAppConfig,\n ): ModuleWithProviders<AngularFireModule> {\n return {\n ngModule: AngularFirebaseAuthModule,\n providers: [\n { provide: FIREBASE_OPTIONS, useValue: options },\n { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },\n ],\n }\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core'\nimport {\n AngularFireModule,\n FIREBASE_APP_NAME,\n FIREBASE_OPTIONS,\n FirebaseAppConfig,\n FirebaseOptions,\n} from '@angular/fire'\nimport { AngularFirestore } from '@angular/fire/firestore'\nimport {\n BeautyProfileRepository,\n Buy2WinFirestoreRepository,\n Buy2WinRepository,\n CategoryRepository,\n CategoryFirestoreRepository,\n CheckoutRepository,\n CheckoutFirestoreRepository,\n CheckoutSubscriptionFirestoreRepository,\n CheckoutSubscriptionRepository,\n CouponRepository,\n CouponFirestoreRepository,\n EditionRepository,\n HomeFirestoreRepository,\n HomeRepository,\n ShopMenuFirestoreRepository,\n ShopMenuRepository,\n OrderRepository,\n OrderFirestoreRepository,\n PaymentRepository,\n PaymentFirestoreRepository,\n ProductRepository,\n ProductFirestoreRepository,\n SubscriptionEditionFirestoreRepository,\n SubscriptionFirestoreRepository,\n SubscriptionPaymentFirestoreRepository,\n SubscriptionPaymentRepository,\n SubscriptionPlanFirestoreRepository,\n SubscriptionPlanRepository,\n SubscriptionRepository,\n UserAddressRepository,\n UserAddressFirestoreRepository,\n UserBeautyProfileFirestoreRepository,\n UserFirestoreRepository,\n UserRepository,\n VariantRepository,\n ProductVariantFirestoreRepository,\n} from '@infrab4a/connect'\n\n@NgModule({\n imports: [AngularFireModule],\n providers: [\n {\n provide: 'BeautyProfileRepository',\n useFactory: (firestore: AngularFirestore, userRepository: UserFirestoreRepository): BeautyProfileRepository => {\n return new UserBeautyProfileFirestoreRepository(firestore.firestore, userRepository)\n },\n deps: [AngularFirestore, 'UserRepository'],\n },\n {\n provide: 'Buy2WinRepository',\n useFactory: (firestore: AngularFirestore): Buy2WinRepository => {\n return new Buy2WinFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'CategoryRepository',\n useFactory: (firestore: AngularFirestore): CategoryRepository => {\n return new CategoryFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'CheckoutRepository',\n useFactory: (firestore: AngularFirestore): CheckoutRepository => {\n return new CheckoutFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'CheckoutSubscriptionRepository',\n useFactory: (firestore: AngularFirestore): CheckoutSubscriptionRepository => {\n return new CheckoutSubscriptionFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'CouponRepository',\n useFactory: (firestore: AngularFirestore): CouponRepository => {\n return new CouponFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'EditionRepository',\n useFactory: (\n firestore: AngularFirestore,\n subscriptionRepository: SubscriptionFirestoreRepository,\n ): EditionRepository => {\n return new SubscriptionEditionFirestoreRepository(firestore.firestore, subscriptionRepository)\n },\n deps: [AngularFirestore, 'SubscriptionRepository'],\n },\n {\n provide: 'HomeRepository',\n useFactory: (firestore: AngularFirestore): HomeRepository => {\n return new HomeFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'ShopMenuRepository',\n useFactory: (firestore: AngularFirestore): ShopMenuRepository => {\n return new ShopMenuFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'OrderRepository',\n useFactory: (firestore: AngularFirestore): OrderRepository => {\n return new OrderFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'PaymentRepository',\n useFactory: (firestore: AngularFirestore): PaymentRepository => {\n return new PaymentFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'ProductRepository',\n useFactory: (firestore: AngularFirestore): ProductRepository => {\n return new ProductFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'SubscriptionPaymentRepository',\n useFactory: (\n firestore: AngularFirestore,\n subscriptionRepository: SubscriptionFirestoreRepository,\n ): SubscriptionPaymentRepository => {\n return new SubscriptionPaymentFirestoreRepository(firestore.firestore, subscriptionRepository)\n },\n deps: [AngularFirestore, 'SubscriptionRepository'],\n },\n {\n provide: 'SubscriptionPlanRepository',\n useFactory: (firestore: AngularFirestore): SubscriptionPlanRepository => {\n return new SubscriptionPlanFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'SubscriptionRepository',\n useFactory: (firestore: AngularFirestore): SubscriptionRepository => {\n return new SubscriptionFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'UserRepository',\n useFactory: (firestore: AngularFirestore): UserRepository => {\n return new UserFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'UserAddressRepository',\n useFactory: (firestore: AngularFirestore, userRepository: UserFirestoreRepository): UserAddressRepository => {\n return new UserAddressFirestoreRepository(firestore.firestore, userRepository)\n },\n deps: [AngularFirestore, 'UserRepository'],\n },\n {\n provide: 'VariantRepository',\n useFactory: (firestore: AngularFirestore, productRepository: ProductFirestoreRepository): VariantRepository => {\n return new ProductVariantFirestoreRepository(firestore.firestore, productRepository)\n },\n deps: [AngularFirestore, 'ProductRepository'],\n },\n ],\n})\nexport class AngularFirestoreModule {\n static initializeApp(\n options: FirebaseOptions,\n nameOrConfig?: string | FirebaseAppConfig,\n ): ModuleWithProviders<AngularFireModule> {\n return {\n ngModule: AngularFirestoreModule,\n providers: [\n { provide: FIREBASE_OPTIONS, useValue: options },\n { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },\n ],\n }\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core'\nimport {\n AngularFireModule,\n FIREBASE_APP_NAME,\n FIREBASE_OPTIONS,\n FirebaseAppConfig,\n FirebaseOptions,\n} from '@angular/fire'\nimport { isNil, Shops } from '@infrab4a/connect'\n\nimport { AngularFirestoreModule } from './angular-firestore.module'\nimport { AuthService, CartService, CheckoutService } from './services'\nimport { DEFAULT_SHOP } from './consts'\n\n@NgModule({\n imports: [AngularFireModule, AngularFirestoreModule],\n providers: [AuthService, CartService, CheckoutService],\n})\nexport class AngularConnectModule {\n static initializeApp(\n defaultShop: Shops,\n options: FirebaseOptions,\n nameOrConfig?: string | FirebaseAppConfig,\n ): ModuleWithProviders<AngularFireModule> {\n return {\n ngModule: AngularConnectModule,\n providers: [\n ...(isNil(defaultShop) ? [] : [{ provide: DEFAULT_SHOP, useValue: defaultShop }]),\n ...(isNil(options) ? [] : [{ provide: FIREBASE_OPTIONS, useValue: options }]),\n ...(isNil(options) ? [] : [{ provide: FIREBASE_APP_NAME, useValue: nameOrConfig }]),\n ],\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"infrab4a-connect-angular.js","sources":["../../../projects/connect-angular/src/lib/services/auth.service.ts","../../../projects/connect-angular/src/lib/consts/default-shop.const.ts","../../../projects/connect-angular/src/lib/services/checkout.service.ts","../../../projects/connect-angular/src/lib/services/cart.service.ts","../../../projects/connect-angular/src/lib/angular-firebase-auth.module.ts","../../../projects/connect-angular/src/lib/angular-firestore.module.ts","../../../projects/connect-angular/src/lib/angular-connect.module.ts","../../../projects/connect-angular/src/infrab4a-connect-angular.ts"],"sourcesContent":["import { Injectable, Inject } from '@angular/core'\nimport { AngularFireAuth } from '@angular/fire/auth'\nimport { User, UserRepository } from '@infrab4a/connect'\nimport { from, Observable, throwError } from 'rxjs'\nimport { map, mergeMap } from 'rxjs/operators'\n\n@Injectable()\nexport class AuthService {\n constructor(\n private readonly angularFireAuth: AngularFireAuth,\n @Inject('UserRepository') private readonly userRepository: UserRepository,\n ) {}\n\n getUser(): Observable<User> {\n return from(this.getTokenId()).pipe(\n map((id) => id || throwError(() => new Error('Usuário não logado'))),\n mergeMap((id) => this.userRepository.get({ id })),\n )\n }\n\n getTokenId(): Observable<string> {\n return this.angularFireAuth.idToken\n }\n}\n","export const DEFAULT_SHOP = 'DEFAULT_SHOP'\n","import { Injectable, Inject } from '@angular/core'\nimport { Checkout, CheckoutRepository, isNil, NotFoundError, Shops, User, UserRepository } from '@infrab4a/connect'\nimport cookie from 'js-cookie'\nimport { from, Observable, throwError, of } from 'rxjs'\nimport { mergeMap } from 'rxjs/operators'\n\nimport { DEFAULT_SHOP } from '../consts'\n\nimport { RequiredCheckoutData } from './types'\n\n@Injectable()\nexport class CheckoutService {\n constructor(\n @Inject('CheckoutRepository') private readonly checkoutRepository: CheckoutRepository,\n @Inject('UserRepository') private readonly userRepository: UserRepository,\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\n ) {}\n\n getCheckout(checkoutData?: RequiredCheckoutData): Observable<Checkout> {\n const checkoutId = cookie.get('checkoutId')\n\n if (!isNil(checkoutId)) return from(this.checkoutRepository.get({ id: checkoutId }))\n\n return from(this.createCheckout(checkoutData))\n }\n\n getUserByCheckout(checkoutId: string): Observable<User> {\n return from(this.checkoutRepository.get({ id: checkoutId })).pipe(\n mergeMap((checkout) =>\n checkout?.user?.id ? of(checkout.user) : from(this.userRepository.get({ id: checkout.user.id })),\n ),\n mergeMap((user) => of(user) || throwError(() => new NotFoundError('User is not found'))),\n )\n }\n\n updateCheckoutLineItems(checkout: Partial<Checkout>): Observable<Checkout> {\n return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, lineItems: checkout.lineItems })))\n }\n\n updateCheckoutUser(checkout: Partial<Checkout>): Observable<Checkout> {\n return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, user: checkout.user })))\n }\n\n private async createCheckout(checkoutData?: RequiredCheckoutData): Promise<Checkout> {\n const checkout = await this.checkoutRepository.create({\n createdAt: new Date(),\n ...Checkout.toInstance(checkoutData).toPlain(),\n shop: checkoutData.shop || this.defaultShop,\n })\n\n cookie.set('checkoutId', checkout.id)\n\n return checkout\n }\n}\n","import { Injectable, Inject } from '@angular/core'\nimport {\n Checkout,\n Coupon,\n CouponSubtypes,\n CouponTypes,\n FinancialCoupon,\n isNil,\n LineItem,\n Product,\n Shops,\n User,\n} from '@infrab4a/connect'\nimport { forkJoin, iif, Observable, of, Subject } from 'rxjs'\nimport { catchError, concatMap, map, mergeMap } from 'rxjs/operators'\n\nimport { DEFAULT_SHOP } from '../consts'\n\nimport { AuthService } from './auth.service'\nimport { CheckoutService } from './checkout.service'\nimport { RequiredCheckoutData } from './types'\n\nexport type Cart = {\n [id: string]: LineItem\n}\n\n@Injectable()\nexport class CartService {\n private cartSubject: Subject<Cart> = new Subject()\n\n constructor(\n private readonly authService: AuthService,\n private readonly checkoutService: CheckoutService,\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\n ) {}\n\n addItem(item: LineItem, quantity: number = 1): Observable<Cart> {\n this.checkoutService\n .getCheckout()\n .pipe(\n map((checkout) => this.buildLineItem({ checkout, item, quantity: quantity || 1 })),\n mergeMap((lineItem) => this.updateLineItemInCart(lineItem, quantity || 1)),\n )\n .subscribe((cart) => this.cartSubject.next(cart))\n\n return this.cartSubject\n }\n\n decreaseItem(item: LineItem): Observable<Cart> {\n this.checkoutService\n .getCheckout()\n .pipe(\n map((checkout) => {\n const checkoutItem = checkout.lineItems?.find((lineItem) => lineItem.sku === item.sku)\n\n if (!isNil(checkoutItem)) checkoutItem.quantity -= checkoutItem.quantity > 1 ? 1 : 0\n\n return checkout\n }),\n mergeMap((checkout) => this.checkoutService.updateCheckoutLineItems(checkout)),\n map((checkout) => this.generateCartObject(checkout.lineItems)),\n )\n .subscribe((cart) => this.cartSubject.next(cart))\n\n return this.cartSubject\n }\n\n getCart(checkout?: RequiredCheckoutData): Observable<Cart> {\n this.buildCartFromCheckout(checkout).subscribe((cart) => this.cartSubject.next(cart))\n\n return this.cartSubject\n }\n\n getDiscount(coupon: Coupon & { id: string }): (subTotalPrice: number) => number {\n switch (coupon.type) {\n case CouponTypes.FINANCIAL:\n return this.getFinancialDiscount(coupon)\n case CouponTypes.PRODUCT:\n return (subTotalPrice: number) => subTotalPrice\n case CouponTypes.GIFTCARD:\n return this.getFinancialDiscount(coupon)\n case CouponTypes.VOUCHER:\n return (subTotalPrice: number) => subTotalPrice\n }\n }\n\n getVariantPriceDiscount(item: LineItem, shop: Shops): Observable<number> {\n return this.authService.getUser().pipe(\n mergeMap((user) =>\n iif(\n () => user.isSubscriber && !!item.getInfoByShop(shop).subscriberPrice,\n of(item.getInfoByShop(shop).subscriberPrice),\n of(item.getInfoByShop(shop).price),\n ),\n ),\n catchError(() => of(item.getInfoByShop(shop).price)),\n )\n }\n\n removeItem(item: LineItem): Observable<Cart> {\n this.checkoutService\n .getCheckout()\n .pipe(\n map((checkout) => {\n checkout.lineItems.splice(\n checkout.lineItems.findIndex((lineItem) => lineItem.sku === item.sku),\n 1,\n )\n\n return checkout\n }),\n mergeMap((checkout) => this.checkoutService.updateCheckoutLineItems(checkout)),\n map((checkout) => this.generateCartObject(checkout.lineItems)),\n )\n .subscribe((cart) => this.cartSubject.next(cart))\n\n return this.cartSubject\n }\n\n updateUserCart(user: User): Observable<Cart> {\n this.checkoutService\n .getCheckout()\n .pipe(\n mergeMap((checkout) =>\n this.checkoutService.updateCheckoutUser(Checkout.toInstance({ ...checkout.toPlain(), user })),\n ),\n mergeMap((checkout) =>\n forkJoin([checkout.lineItems.map((item) => this.buildLineItem({ checkout, item, quantity: item.quantity }))]),\n ),\n map((lineItems) => this.generateCartObject(lineItems)),\n )\n .subscribe((cart) => this.cartSubject.next(cart))\n\n return this.cartSubject\n }\n\n private buildCartFromCheckout(checkoutData?: RequiredCheckoutData): Observable<Cart> {\n return this.checkoutService.getCheckout(checkoutData).pipe(\n map((checkout) => checkout.lineItems),\n mergeMap((lineItems) => of(this.generateCartObject(lineItems))),\n )\n }\n\n private updateLineItemInCart = (lineItem: LineItem, quantity: number, checkout?: Checkout): Observable<Cart> =>\n (isNil(checkout) ? this.checkoutService.getCheckout() : of(checkout)).pipe(\n mergeMap((checkoutLoaded) => {\n const items: LineItem[] = []\n const index = checkoutLoaded.lineItems?.map((checkoutItem) => checkoutItem.sku).indexOf(lineItem.sku)\n\n if (index > -1) {\n checkoutLoaded.lineItems[index].quantity += quantity\n checkoutLoaded.lineItems[index].pricePaid = lineItem.pricePaid\n } else\n checkoutLoaded.lineItems = items.concat(\n checkoutLoaded.lineItems ? checkoutLoaded.lineItems.concat([lineItem]) : [lineItem],\n )\n\n return this.checkoutService\n .updateCheckoutLineItems(checkoutLoaded)\n .pipe(map((updatedCheckout) => this.generateCartObject(updatedCheckout.lineItems)))\n }),\n )\n\n private generateCartObject = (items: LineItem[]): Cart => {\n const cart: Cart = {}\n\n items?.forEach(\n (item) =>\n (cart[item.sku] = LineItem.toInstance({\n ...(cart[item.sku] || item),\n quantity: (cart[item.sku]?.quantity || 0) + (item.quantity ? item.quantity : 1),\n })),\n )\n\n return cart\n }\n\n private buildLineItem = ({\n checkout,\n item,\n quantity,\n }: {\n checkout: RequiredCheckoutData\n item: LineItem\n quantity?: number\n }): LineItem => {\n if (this.checkMaxStock(item)) throw new Error('Desculpe! Temos apenas ' + item.stock?.quantity + ' em estoque.')\n\n const image = item.image || item.images?.shift()\n const pricePaid = this.getProductPrice({\n product: item,\n shop: checkout.shop || this.defaultShop,\n isSubscriber: checkout.user?.isSubscriber,\n })\n const { id, name, brand, slug, stock, price, weight, categories, sku } = item\n const isGift = item.isGift || null\n\n return LineItem.toInstance({\n id,\n name,\n brand,\n slug,\n sku,\n stock,\n price,\n image,\n weight,\n quantity,\n pricePaid,\n categories,\n isGift,\n })\n }\n\n private getProductPrice = ({\n product,\n shop,\n isSubscriber,\n }: {\n product: Product\n shop: Shops\n isSubscriber: boolean\n }): number => {\n const info = product.getInfoByShop(shop)\n\n return isSubscriber && info.subscriberPrice > 0 ? info.subscriberPrice : info.price\n }\n\n private checkMaxStock = (item: LineItem) => {\n const maxStock = item.stock?.quantity || 0\n const quantity = item.quantity || 1\n const currentItemAmount = item.quantity\n\n return quantity > maxStock || currentItemAmount + quantity > maxStock\n }\n\n private getFinancialDiscount(coupon: Coupon & { id: string }): (subTotalPrice: number) => number {\n return (subTotalPrice) => {\n if (FinancialCoupon.isFinancialCoupon(coupon))\n switch (coupon.subtype) {\n case CouponSubtypes.ABSOLUTE:\n return subTotalPrice - coupon.discount * 100\n case CouponSubtypes.PERCENTAGE:\n return subTotalPrice * (1 - coupon.discount / 100)\n }\n }\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core'\nimport {\n AngularFireModule,\n FIREBASE_APP_NAME,\n FIREBASE_OPTIONS,\n FirebaseAppConfig,\n FirebaseOptions,\n} from '@angular/fire'\nimport { AngularFireAuth } from '@angular/fire/auth'\nimport {\n Authentication,\n AuthenticationFirebaseAuthService,\n AuthenticationService,\n SignOut,\n UserRepository,\n} from '@infrab4a/connect'\n\n@NgModule({\n imports: [AngularFireModule],\n providers: [\n {\n provide: 'Authentication',\n useFactory: (authenticationService: AuthenticationService, userRepository: UserRepository): Authentication => {\n return new Authentication(authenticationService, userRepository)\n },\n deps: ['AuthenticationService', 'UserRepository'],\n },\n {\n provide: 'AuthenticationService',\n useFactory: (angularFireAuth: AngularFireAuth): AuthenticationService => {\n return new AuthenticationFirebaseAuthService(angularFireAuth as any)\n },\n deps: [AngularFireAuth],\n },\n {\n provide: 'SignOut',\n useFactory: (authenticationService: AuthenticationService): SignOut => {\n return new SignOut(authenticationService)\n },\n deps: ['AuthenticationService'],\n },\n ],\n})\nexport class AngularFirebaseAuthModule {\n static initializeApp(\n options: FirebaseOptions,\n nameOrConfig?: string | FirebaseAppConfig,\n ): ModuleWithProviders<AngularFireModule> {\n return {\n ngModule: AngularFirebaseAuthModule,\n providers: [\n { provide: FIREBASE_OPTIONS, useValue: options },\n { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },\n ],\n }\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core'\nimport {\n AngularFireModule,\n FIREBASE_APP_NAME,\n FIREBASE_OPTIONS,\n FirebaseAppConfig,\n FirebaseOptions,\n} from '@angular/fire'\nimport { AngularFirestore } from '@angular/fire/firestore'\nimport {\n BeautyProfileRepository,\n Buy2WinFirestoreRepository,\n Buy2WinRepository,\n CategoryRepository,\n CategoryFirestoreRepository,\n CheckoutRepository,\n CheckoutFirestoreRepository,\n CheckoutSubscriptionFirestoreRepository,\n CheckoutSubscriptionRepository,\n CouponRepository,\n CouponFirestoreRepository,\n EditionRepository,\n HomeFirestoreRepository,\n HomeRepository,\n ShopMenuFirestoreRepository,\n ShopMenuRepository,\n OrderRepository,\n OrderFirestoreRepository,\n PaymentRepository,\n PaymentFirestoreRepository,\n ProductRepository,\n ProductFirestoreRepository,\n SubscriptionEditionFirestoreRepository,\n SubscriptionFirestoreRepository,\n SubscriptionPaymentFirestoreRepository,\n SubscriptionPaymentRepository,\n SubscriptionPlanFirestoreRepository,\n SubscriptionPlanRepository,\n SubscriptionRepository,\n UserAddressRepository,\n UserAddressFirestoreRepository,\n UserBeautyProfileFirestoreRepository,\n UserFirestoreRepository,\n UserRepository,\n VariantRepository,\n ProductVariantFirestoreRepository,\n} from '@infrab4a/connect'\n\n@NgModule({\n imports: [AngularFireModule],\n providers: [\n {\n provide: 'BeautyProfileRepository',\n useFactory: (firestore: AngularFirestore, userRepository: UserFirestoreRepository): BeautyProfileRepository => {\n return new UserBeautyProfileFirestoreRepository(firestore.firestore, userRepository)\n },\n deps: [AngularFirestore, 'UserRepository'],\n },\n {\n provide: 'Buy2WinRepository',\n useFactory: (firestore: AngularFirestore): Buy2WinRepository => {\n return new Buy2WinFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'CategoryRepository',\n useFactory: (firestore: AngularFirestore): CategoryRepository => {\n return new CategoryFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'CheckoutRepository',\n useFactory: (firestore: AngularFirestore): CheckoutRepository => {\n return new CheckoutFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'CheckoutSubscriptionRepository',\n useFactory: (firestore: AngularFirestore): CheckoutSubscriptionRepository => {\n return new CheckoutSubscriptionFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'CouponRepository',\n useFactory: (firestore: AngularFirestore): CouponRepository => {\n return new CouponFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'EditionRepository',\n useFactory: (\n firestore: AngularFirestore,\n subscriptionRepository: SubscriptionFirestoreRepository,\n ): EditionRepository => {\n return new SubscriptionEditionFirestoreRepository(firestore.firestore, subscriptionRepository)\n },\n deps: [AngularFirestore, 'SubscriptionRepository'],\n },\n {\n provide: 'HomeRepository',\n useFactory: (firestore: AngularFirestore): HomeRepository => {\n return new HomeFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'ShopMenuRepository',\n useFactory: (firestore: AngularFirestore): ShopMenuRepository => {\n return new ShopMenuFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'OrderRepository',\n useFactory: (firestore: AngularFirestore): OrderRepository => {\n return new OrderFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'PaymentRepository',\n useFactory: (firestore: AngularFirestore): PaymentRepository => {\n return new PaymentFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'ProductRepository',\n useFactory: (firestore: AngularFirestore): ProductRepository => {\n return new ProductFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'SubscriptionPaymentRepository',\n useFactory: (\n firestore: AngularFirestore,\n subscriptionRepository: SubscriptionFirestoreRepository,\n ): SubscriptionPaymentRepository => {\n return new SubscriptionPaymentFirestoreRepository(firestore.firestore, subscriptionRepository)\n },\n deps: [AngularFirestore, 'SubscriptionRepository'],\n },\n {\n provide: 'SubscriptionPlanRepository',\n useFactory: (firestore: AngularFirestore): SubscriptionPlanRepository => {\n return new SubscriptionPlanFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'SubscriptionRepository',\n useFactory: (firestore: AngularFirestore): SubscriptionRepository => {\n return new SubscriptionFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'UserRepository',\n useFactory: (firestore: AngularFirestore): UserRepository => {\n return new UserFirestoreRepository(firestore.firestore)\n },\n deps: [AngularFirestore],\n },\n {\n provide: 'UserAddressRepository',\n useFactory: (firestore: AngularFirestore, userRepository: UserFirestoreRepository): UserAddressRepository => {\n return new UserAddressFirestoreRepository(firestore.firestore, userRepository)\n },\n deps: [AngularFirestore, 'UserRepository'],\n },\n {\n provide: 'VariantRepository',\n useFactory: (firestore: AngularFirestore, productRepository: ProductFirestoreRepository): VariantRepository => {\n return new ProductVariantFirestoreRepository(firestore.firestore, productRepository)\n },\n deps: [AngularFirestore, 'ProductRepository'],\n },\n ],\n})\nexport class AngularFirestoreModule {\n static initializeApp(\n options: FirebaseOptions,\n nameOrConfig?: string | FirebaseAppConfig,\n ): ModuleWithProviders<AngularFireModule> {\n return {\n ngModule: AngularFirestoreModule,\n providers: [\n { provide: FIREBASE_OPTIONS, useValue: options },\n { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },\n ],\n }\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core'\nimport {\n AngularFireModule,\n FIREBASE_APP_NAME,\n FIREBASE_OPTIONS,\n FirebaseAppConfig,\n FirebaseOptions,\n} from '@angular/fire'\nimport { isNil, Shops } from '@infrab4a/connect'\n\nimport { AngularFirestoreModule } from './angular-firestore.module'\nimport { AuthService, CartService, CheckoutService } from './services'\nimport { DEFAULT_SHOP } from './consts'\n\n@NgModule({\n imports: [AngularFireModule, AngularFirestoreModule],\n providers: [AuthService, CartService, CheckoutService],\n})\nexport class AngularConnectModule {\n static initializeApp(\n defaultShop: Shops,\n options: FirebaseOptions,\n nameOrConfig?: string | FirebaseAppConfig,\n ): ModuleWithProviders<AngularFireModule> {\n return {\n ngModule: AngularConnectModule,\n providers: [\n ...(isNil(defaultShop) ? [] : [{ provide: DEFAULT_SHOP, useValue: defaultShop }]),\n ...(isNil(options) ? [] : [{ provide: FIREBASE_OPTIONS, useValue: options }]),\n ...(isNil(options) ? [] : [{ provide: FIREBASE_APP_NAME, useValue: nameOrConfig }]),\n ],\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;MAOa,WAAW;IACtB,YACmB,eAAgC,EACN,cAA8B;QADxD,oBAAe,GAAf,eAAe,CAAiB;QACN,mBAAc,GAAd,cAAc,CAAgB;KACvE;IAEJ,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CACjC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,EACpE,QAAQ,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAClD,CAAA;KACF;IAED,UAAU;QACR,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAA;KACpC;;wGAfU,WAAW,iDAGZ,gBAAgB;4GAHf,WAAW;2FAAX,WAAW;kBADvB,UAAU;;0BAIN,MAAM;2BAAC,gBAAgB;;;ACVrB,MAAM,YAAY,GAAG,cAAc;;MCW7B,eAAe;IAC1B,YACiD,kBAAsC,EAC1C,cAA8B,EAClC,WAAkB;QAFV,uBAAkB,GAAlB,kBAAkB,CAAoB;QAC1C,mBAAc,GAAd,cAAc,CAAgB;QAClC,gBAAW,GAAX,WAAW,CAAO;KACvD;IAEJ,WAAW,CAAC,YAAmC;QAC7C,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QAE3C,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA;QAEpF,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAA;KAC/C;IAED,iBAAiB,CAAC,UAAkB;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAC/D,QAAQ,CAAC,CAAC,QAAQ,eAChB,OAAA,CAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,EAAE,IAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA,EAAA,CACjG,EACD,QAAQ,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,IAAI,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC,CACzF,CAAA;KACF;IAED,uBAAuB,CAAC,QAA2B;QACjD,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;KACrH;IAED,kBAAkB,CAAC,QAA2B;QAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;KAC3G;IAEa,cAAc,CAAC,YAAmC;;YAC9D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,+BACnD,SAAS,EAAE,IAAI,IAAI,EAAE,IAClB,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,KAC9C,IAAI,EAAE,YAAY,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,IAC3C,CAAA;YAEF,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;YAErC,OAAO,QAAQ,CAAA;SAChB;KAAA;;4GA1CU,eAAe,kBAEhB,oBAAoB,aACpB,gBAAgB,aAChB,YAAY;gHAJX,eAAe;2FAAf,eAAe;kBAD3B,UAAU;;0BAGN,MAAM;2BAAC,oBAAoB;;0BAC3B,MAAM;2BAAC,gBAAgB;;0BACvB,MAAM;2BAAC,YAAY;;;MCYX,WAAW;IAGtB,YACmB,WAAwB,EACxB,eAAgC,EACV,WAAkB;QAFxC,gBAAW,GAAX,WAAW,CAAa;QACxB,oBAAe,GAAf,eAAe,CAAiB;QACV,gBAAW,GAAX,WAAW,CAAO;QALnD,gBAAW,GAAkB,IAAI,OAAO,EAAE,CAAA;QAmH1C,yBAAoB,GAAG,CAAC,QAAkB,EAAE,QAAgB,EAAE,QAAmB,KACvF,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,CACxE,QAAQ,CAAC,CAAC,cAAc;;YACtB,MAAM,KAAK,GAAe,EAAE,CAAA;YAC5B,MAAM,KAAK,GAAG,MAAA,cAAc,CAAC,SAAS,0CAAE,GAAG,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;YAErG,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACd,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAA;gBACpD,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAA;aAC/D;;gBACC,cAAc,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CACrC,cAAc,CAAC,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CACpF,CAAA;YAEH,OAAO,IAAI,CAAC,eAAe;iBACxB,uBAAuB,CAAC,cAAc,CAAC;iBACvC,IAAI,CAAC,GAAG,CAAC,CAAC,eAAe,KAAK,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;SACtF,CAAC,CACH,CAAA;QAEK,uBAAkB,GAAG,CAAC,KAAiB;YAC7C,MAAM,IAAI,GAAS,EAAE,CAAA;YAErB,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CACZ,CAAC,IAAI;;gBACH,QAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,UAAU,kCAC/B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,MAC1B,QAAQ,EAAE,CAAC,CAAA,MAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,0CAAE,QAAQ,KAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,IAC/E,EAAC;aAAA,CACN,CAAA;YAED,OAAO,IAAI,CAAA;SACZ,CAAA;QAEO,kBAAa,GAAG,CAAC,EACvB,QAAQ,EACR,IAAI,EACJ,QAAQ,GAKT;;YACC,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAG,MAAA,IAAI,CAAC,KAAK,0CAAE,QAAQ,CAAA,GAAG,cAAc,CAAC,CAAA;YAEhH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,KAAI,MAAA,IAAI,CAAC,MAAM,0CAAE,KAAK,EAAE,CAAA,CAAA;YAChD,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC;gBACrC,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW;gBACvC,YAAY,EAAE,MAAA,QAAQ,CAAC,IAAI,0CAAE,YAAY;aAC1C,CAAC,CAAA;YACF,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;YAC7E,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAA;YAElC,OAAO,QAAQ,CAAC,UAAU,CAAC;gBACzB,EAAE;gBACF,IAAI;gBACJ,KAAK;gBACL,IAAI;gBACJ,GAAG;gBACH,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,MAAM;gBACN,QAAQ;gBACR,SAAS;gBACT,UAAU;gBACV,MAAM;aACP,CAAC,CAAA;SACH,CAAA;QAEO,oBAAe,GAAG,CAAC,EACzB,OAAO,EACP,IAAI,EACJ,YAAY,GAKb;YACC,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;YAExC,OAAO,YAAY,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAA;SACpF,CAAA;QAEO,kBAAa,GAAG,CAAC,IAAc;;YACrC,MAAM,QAAQ,GAAG,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,QAAQ,KAAI,CAAC,CAAA;YAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAA;YACnC,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAA;YAEvC,OAAO,QAAQ,GAAG,QAAQ,IAAI,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,CAAA;SACtE,CAAA;KAxMG;IAEJ,OAAO,CAAC,IAAc,EAAE,WAAmB,CAAC;QAC1C,IAAI,CAAC,eAAe;aACjB,WAAW,EAAE;aACb,IAAI,CACH,GAAG,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,IAAI,CAAC,EAAE,CAAC,CAAC,EAClF,QAAQ,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,IAAI,CAAC,CAAC,CAAC,CAC3E;aACA,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QAEnD,OAAO,IAAI,CAAC,WAAW,CAAA;KACxB;IAED,YAAY,CAAC,IAAc;QACzB,IAAI,CAAC,eAAe;aACjB,WAAW,EAAE;aACb,IAAI,CACH,GAAG,CAAC,CAAC,QAAQ;;YACX,MAAM,YAAY,GAAG,MAAA,QAAQ,CAAC,SAAS,0CAAE,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,CAAA;YAEtF,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;gBAAE,YAAY,CAAC,QAAQ,IAAI,YAAY,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAEpF,OAAO,QAAQ,CAAA;SAChB,CAAC,EACF,QAAQ,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,EAC9E,GAAG,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAC/D;aACA,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QAEnD,OAAO,IAAI,CAAC,WAAW,CAAA;KACxB;IAED,OAAO,CAAC,QAA+B;QACrC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QAErF,OAAO,IAAI,CAAC,WAAW,CAAA;KACxB;IAED,WAAW,CAAC,MAA+B;QACzC,QAAQ,MAAM,CAAC,IAAI;YACjB,KAAK,WAAW,CAAC,SAAS;gBACxB,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;YAC1C,KAAK,WAAW,CAAC,OAAO;gBACtB,OAAO,CAAC,aAAqB,KAAK,aAAa,CAAA;YACjD,KAAK,WAAW,CAAC,QAAQ;gBACvB,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;YAC1C,KAAK,WAAW,CAAC,OAAO;gBACtB,OAAO,CAAC,aAAqB,KAAK,aAAa,CAAA;SAClD;KACF;IAED,uBAAuB,CAAC,IAAc,EAAE,IAAW;QACjD,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,IAAI,CACpC,QAAQ,CAAC,CAAC,IAAI,KACZ,GAAG,CACD,MAAM,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,eAAe,EACrE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,EAC5C,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CACnC,CACF,EACD,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CACrD,CAAA;KACF;IAED,UAAU,CAAC,IAAc;QACvB,IAAI,CAAC,eAAe;aACjB,WAAW,EAAE;aACb,IAAI,CACH,GAAG,CAAC,CAAC,QAAQ;YACX,QAAQ,CAAC,SAAS,CAAC,MAAM,CACvB,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EACrE,CAAC,CACF,CAAA;YAED,OAAO,QAAQ,CAAA;SAChB,CAAC,EACF,QAAQ,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,EAC9E,GAAG,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAC/D;aACA,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QAEnD,OAAO,IAAI,CAAC,WAAW,CAAA;KACxB;IAED,cAAc,CAAC,IAAU;QACvB,IAAI,CAAC,eAAe;aACjB,WAAW,EAAE;aACb,IAAI,CACH,QAAQ,CAAC,CAAC,QAAQ,KAChB,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,QAAQ,CAAC,UAAU,iCAAM,QAAQ,CAAC,OAAO,EAAE,KAAE,IAAI,IAAG,CAAC,CAC9F,EACD,QAAQ,CAAC,CAAC,QAAQ,KAChB,QAAQ,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAC9G,EACD,GAAG,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CACvD;aACA,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QAEnD,OAAO,IAAI,CAAC,WAAW,CAAA;KACxB;IAEO,qBAAqB,CAAC,YAAmC;QAC/D,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,IAAI,CACxD,GAAG,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,SAAS,CAAC,EACrC,QAAQ,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAChE,CAAA;KACF;IA+FO,oBAAoB,CAAC,MAA+B;QAC1D,OAAO,CAAC,aAAa;YACnB,IAAI,eAAe,CAAC,iBAAiB,CAAC,MAAM,CAAC;gBAC3C,QAAQ,MAAM,CAAC,OAAO;oBACpB,KAAK,cAAc,CAAC,QAAQ;wBAC1B,OAAO,aAAa,GAAG,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAA;oBAC9C,KAAK,cAAc,CAAC,UAAU;wBAC5B,OAAO,aAAa,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAA;iBACrD;SACJ,CAAA;KACF;;wGA3NU,WAAW,sEAMZ,YAAY;4GANX,WAAW;2FAAX,WAAW;kBADvB,UAAU;;0BAON,MAAM;2BAAC,YAAY;;;MCUX,yBAAyB;IACpC,OAAO,aAAa,CAClB,OAAwB,EACxB,YAAyC;QAEzC,OAAO;YACL,QAAQ,EAAE,yBAAyB;YACnC,SAAS,EAAE;gBACT,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE;gBAChD,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE;aACvD;SACF,CAAA;KACF;;sHAZU,yBAAyB;uHAAzB,yBAAyB,YAzB1B,iBAAiB;uHAyBhB,yBAAyB,aAxBzB;QACT;YACE,OAAO,EAAE,gBAAgB;YACzB,UAAU,EAAE,CAAC,qBAA4C,EAAE,cAA8B;gBACvF,OAAO,IAAI,cAAc,CAAC,qBAAqB,EAAE,cAAc,CAAC,CAAA;aACjE;YACD,IAAI,EAAE,CAAC,uBAAuB,EAAE,gBAAgB,CAAC;SAClD;QACD;YACE,OAAO,EAAE,uBAAuB;YAChC,UAAU,EAAE,CAAC,eAAgC;gBAC3C,OAAO,IAAI,iCAAiC,CAAC,eAAsB,CAAC,CAAA;aACrE;YACD,IAAI,EAAE,CAAC,eAAe,CAAC;SACxB;QACD;YACE,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,CAAC,qBAA4C;gBACvD,OAAO,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAAA;aAC1C;YACD,IAAI,EAAE,CAAC,uBAAuB,CAAC;SAChC;KACF,YAvBQ,CAAC,iBAAiB,CAAC;2FAyBjB,yBAAyB;kBA1BrC,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,iBAAiB,CAAC;oBAC5B,SAAS,EAAE;wBACT;4BACE,OAAO,EAAE,gBAAgB;4BACzB,UAAU,EAAE,CAAC,qBAA4C,EAAE,cAA8B;gCACvF,OAAO,IAAI,cAAc,CAAC,qBAAqB,EAAE,cAAc,CAAC,CAAA;6BACjE;4BACD,IAAI,EAAE,CAAC,uBAAuB,EAAE,gBAAgB,CAAC;yBAClD;wBACD;4BACE,OAAO,EAAE,uBAAuB;4BAChC,UAAU,EAAE,CAAC,eAAgC;gCAC3C,OAAO,IAAI,iCAAiC,CAAC,eAAsB,CAAC,CAAA;6BACrE;4BACD,IAAI,EAAE,CAAC,eAAe,CAAC;yBACxB;wBACD;4BACE,OAAO,EAAE,SAAS;4BAClB,UAAU,EAAE,CAAC,qBAA4C;gCACvD,OAAO,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAAA;6BAC1C;4BACD,IAAI,EAAE,CAAC,uBAAuB,CAAC;yBAChC;qBACF;iBACF;;;MC+IY,sBAAsB;IACjC,OAAO,aAAa,CAClB,OAAwB,EACxB,YAAyC;QAEzC,OAAO;YACL,QAAQ,EAAE,sBAAsB;YAChC,SAAS,EAAE;gBACT,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE;gBAChD,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE;aACvD;SACF,CAAA;KACF;;mHAZU,sBAAsB;oHAAtB,sBAAsB,YAxIvB,iBAAiB;oHAwIhB,sBAAsB,aAvItB;QACT;YACE,OAAO,EAAE,yBAAyB;YAClC,UAAU,EAAE,CAAC,SAA2B,EAAE,cAAuC;gBAC/E,OAAO,IAAI,oCAAoC,CAAC,SAAS,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;aACrF;YACD,IAAI,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;SAC3C;QACD;YACE,OAAO,EAAE,mBAAmB;YAC5B,UAAU,EAAE,CAAC,SAA2B;gBACtC,OAAO,IAAI,0BAA0B,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;aAC3D;YACD,IAAI,EAAE,CAAC,gBAAgB,CAAC;SACzB;QACD;YACE,OAAO,EAAE,oBAAoB;YAC7B,UAAU,EAAE,CAAC,SAA2B;gBACtC,OAAO,IAAI,2BAA2B,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;aAC5D;YACD,IAAI,EAAE,CAAC,gBAAgB,CAAC;SACzB;QACD;YACE,OAAO,EAAE,oBAAoB;YAC7B,UAAU,EAAE,CAAC,SAA2B;gBACtC,OAAO,IAAI,2BAA2B,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;aAC5D;YACD,IAAI,EAAE,CAAC,gBAAgB,CAAC;SACzB;QACD;YACE,OAAO,EAAE,gCAAgC;YACzC,UAAU,EAAE,CAAC,SAA2B;gBACtC,OAAO,IAAI,uCAAuC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;aACxE;YACD,IAAI,EAAE,CAAC,gBAAgB,CAAC;SACzB;QACD;YACE,OAAO,EAAE,kBAAkB;YAC3B,UAAU,EAAE,CAAC,SAA2B;gBACtC,OAAO,IAAI,yBAAyB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;aAC1D;YACD,IAAI,EAAE,CAAC,gBAAgB,CAAC;SACzB;QACD;YACE,OAAO,EAAE,mBAAmB;YAC5B,UAAU,EAAE,CACV,SAA2B,EAC3B,sBAAuD;gBAEvD,OAAO,IAAI,sCAAsC,CAAC,SAAS,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAA;aAC/F;YACD,IAAI,EAAE,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;SACnD;QACD;YACE,OAAO,EAAE,gBAAgB;YACzB,UAAU,EAAE,CAAC,SAA2B;gBACtC,OAAO,IAAI,uBAAuB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;aACxD;YACD,IAAI,EAAE,CAAC,gBAAgB,CAAC;SACzB;QACD;YACE,OAAO,EAAE,oBAAoB;YAC7B,UAAU,EAAE,CAAC,SAA2B;gBACtC,OAAO,IAAI,2BAA2B,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;aAC5D;YACD,IAAI,EAAE,CAAC,gBAAgB,CAAC;SACzB;QACD;YACE,OAAO,EAAE,iBAAiB;YAC1B,UAAU,EAAE,CAAC,SAA2B;gBACtC,OAAO,IAAI,wBAAwB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;aACzD;YACD,IAAI,EAAE,CAAC,gBAAgB,CAAC;SACzB;QACD;YACE,OAAO,EAAE,mBAAmB;YAC5B,UAAU,EAAE,CAAC,SAA2B;gBACtC,OAAO,IAAI,0BAA0B,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;aAC3D;YACD,IAAI,EAAE,CAAC,gBAAgB,CAAC;SACzB;QACD;YACE,OAAO,EAAE,mBAAmB;YAC5B,UAAU,EAAE,CAAC,SAA2B;gBACtC,OAAO,IAAI,0BAA0B,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;aAC3D;YACD,IAAI,EAAE,CAAC,gBAAgB,CAAC;SACzB;QACD;YACE,OAAO,EAAE,+BAA+B;YACxC,UAAU,EAAE,CACV,SAA2B,EAC3B,sBAAuD;gBAEvD,OAAO,IAAI,sCAAsC,CAAC,SAAS,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAA;aAC/F;YACD,IAAI,EAAE,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;SACnD;QACD;YACE,OAAO,EAAE,4BAA4B;YACrC,UAAU,EAAE,CAAC,SAA2B;gBACtC,OAAO,IAAI,mCAAmC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;aACpE;YACD,IAAI,EAAE,CAAC,gBAAgB,CAAC;SACzB;QACD;YACE,OAAO,EAAE,wBAAwB;YACjC,UAAU,EAAE,CAAC,SAA2B;gBACtC,OAAO,IAAI,+BAA+B,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;aAChE;YACD,IAAI,EAAE,CAAC,gBAAgB,CAAC;SACzB;QACD;YACE,OAAO,EAAE,gBAAgB;YACzB,UAAU,EAAE,CAAC,SAA2B;gBACtC,OAAO,IAAI,uBAAuB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;aACxD;YACD,IAAI,EAAE,CAAC,gBAAgB,CAAC;SACzB;QACD;YACE,OAAO,EAAE,uBAAuB;YAChC,UAAU,EAAE,CAAC,SAA2B,EAAE,cAAuC;gBAC/E,OAAO,IAAI,8BAA8B,CAAC,SAAS,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;aAC/E;YACD,IAAI,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;SAC3C;QACD;YACE,OAAO,EAAE,mBAAmB;YAC5B,UAAU,EAAE,CAAC,SAA2B,EAAE,iBAA6C;gBACrF,OAAO,IAAI,iCAAiC,CAAC,SAAS,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAA;aACrF;YACD,IAAI,EAAE,CAAC,gBAAgB,EAAE,mBAAmB,CAAC;SAC9C;KACF,YAtIQ,CAAC,iBAAiB,CAAC;2FAwIjB,sBAAsB;kBAzIlC,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,iBAAiB,CAAC;oBAC5B,SAAS,EAAE;wBACT;4BACE,OAAO,EAAE,yBAAyB;4BAClC,UAAU,EAAE,CAAC,SAA2B,EAAE,cAAuC;gCAC/E,OAAO,IAAI,oCAAoC,CAAC,SAAS,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;6BACrF;4BACD,IAAI,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;yBAC3C;wBACD;4BACE,OAAO,EAAE,mBAAmB;4BAC5B,UAAU,EAAE,CAAC,SAA2B;gCACtC,OAAO,IAAI,0BAA0B,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;6BAC3D;4BACD,IAAI,EAAE,CAAC,gBAAgB,CAAC;yBACzB;wBACD;4BACE,OAAO,EAAE,oBAAoB;4BAC7B,UAAU,EAAE,CAAC,SAA2B;gCACtC,OAAO,IAAI,2BAA2B,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;6BAC5D;4BACD,IAAI,EAAE,CAAC,gBAAgB,CAAC;yBACzB;wBACD;4BACE,OAAO,EAAE,oBAAoB;4BAC7B,UAAU,EAAE,CAAC,SAA2B;gCACtC,OAAO,IAAI,2BAA2B,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;6BAC5D;4BACD,IAAI,EAAE,CAAC,gBAAgB,CAAC;yBACzB;wBACD;4BACE,OAAO,EAAE,gCAAgC;4BACzC,UAAU,EAAE,CAAC,SAA2B;gCACtC,OAAO,IAAI,uCAAuC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;6BACxE;4BACD,IAAI,EAAE,CAAC,gBAAgB,CAAC;yBACzB;wBACD;4BACE,OAAO,EAAE,kBAAkB;4BAC3B,UAAU,EAAE,CAAC,SAA2B;gCACtC,OAAO,IAAI,yBAAyB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;6BAC1D;4BACD,IAAI,EAAE,CAAC,gBAAgB,CAAC;yBACzB;wBACD;4BACE,OAAO,EAAE,mBAAmB;4BAC5B,UAAU,EAAE,CACV,SAA2B,EAC3B,sBAAuD;gCAEvD,OAAO,IAAI,sCAAsC,CAAC,SAAS,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAA;6BAC/F;4BACD,IAAI,EAAE,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;yBACnD;wBACD;4BACE,OAAO,EAAE,gBAAgB;4BACzB,UAAU,EAAE,CAAC,SAA2B;gCACtC,OAAO,IAAI,uBAAuB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;6BACxD;4BACD,IAAI,EAAE,CAAC,gBAAgB,CAAC;yBACzB;wBACD;4BACE,OAAO,EAAE,oBAAoB;4BAC7B,UAAU,EAAE,CAAC,SAA2B;gCACtC,OAAO,IAAI,2BAA2B,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;6BAC5D;4BACD,IAAI,EAAE,CAAC,gBAAgB,CAAC;yBACzB;wBACD;4BACE,OAAO,EAAE,iBAAiB;4BAC1B,UAAU,EAAE,CAAC,SAA2B;gCACtC,OAAO,IAAI,wBAAwB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;6BACzD;4BACD,IAAI,EAAE,CAAC,gBAAgB,CAAC;yBACzB;wBACD;4BACE,OAAO,EAAE,mBAAmB;4BAC5B,UAAU,EAAE,CAAC,SAA2B;gCACtC,OAAO,IAAI,0BAA0B,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;6BAC3D;4BACD,IAAI,EAAE,CAAC,gBAAgB,CAAC;yBACzB;wBACD;4BACE,OAAO,EAAE,mBAAmB;4BAC5B,UAAU,EAAE,CAAC,SAA2B;gCACtC,OAAO,IAAI,0BAA0B,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;6BAC3D;4BACD,IAAI,EAAE,CAAC,gBAAgB,CAAC;yBACzB;wBACD;4BACE,OAAO,EAAE,+BAA+B;4BACxC,UAAU,EAAE,CACV,SAA2B,EAC3B,sBAAuD;gCAEvD,OAAO,IAAI,sCAAsC,CAAC,SAAS,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAA;6BAC/F;4BACD,IAAI,EAAE,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;yBACnD;wBACD;4BACE,OAAO,EAAE,4BAA4B;4BACrC,UAAU,EAAE,CAAC,SAA2B;gCACtC,OAAO,IAAI,mCAAmC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;6BACpE;4BACD,IAAI,EAAE,CAAC,gBAAgB,CAAC;yBACzB;wBACD;4BACE,OAAO,EAAE,wBAAwB;4BACjC,UAAU,EAAE,CAAC,SAA2B;gCACtC,OAAO,IAAI,+BAA+B,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;6BAChE;4BACD,IAAI,EAAE,CAAC,gBAAgB,CAAC;yBACzB;wBACD;4BACE,OAAO,EAAE,gBAAgB;4BACzB,UAAU,EAAE,CAAC,SAA2B;gCACtC,OAAO,IAAI,uBAAuB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;6BACxD;4BACD,IAAI,EAAE,CAAC,gBAAgB,CAAC;yBACzB;wBACD;4BACE,OAAO,EAAE,uBAAuB;4BAChC,UAAU,EAAE,CAAC,SAA2B,EAAE,cAAuC;gCAC/E,OAAO,IAAI,8BAA8B,CAAC,SAAS,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;6BAC/E;4BACD,IAAI,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;yBAC3C;wBACD;4BACE,OAAO,EAAE,mBAAmB;4BAC5B,UAAU,EAAE,CAAC,SAA2B,EAAE,iBAA6C;gCACrF,OAAO,IAAI,iCAAiC,CAAC,SAAS,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAA;6BACrF;4BACD,IAAI,EAAE,CAAC,gBAAgB,EAAE,mBAAmB,CAAC;yBAC9C;qBACF;iBACF;;;MCtKY,oBAAoB;IAC/B,OAAO,aAAa,CAClB,WAAkB,EAClB,OAAwB,EACxB,YAAyC;QAEzC,OAAO;YACL,QAAQ,EAAE,oBAAoB;YAC9B,SAAS,EAAE;gBACT,IAAI,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;gBACjF,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC7E,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;aACpF;SACF,CAAA;KACF;;iHAdU,oBAAoB;kHAApB,oBAAoB,YAHrB,iBAAiB,EAAE,sBAAsB;kHAGxC,oBAAoB,aAFpB,CAAC,WAAW,EAAE,WAAW,EAAE,eAAe,CAAC,YAD7C,CAAC,iBAAiB,EAAE,sBAAsB,CAAC;2FAGzC,oBAAoB;kBAJhC,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,iBAAiB,EAAE,sBAAsB,CAAC;oBACpD,SAAS,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,eAAe,CAAC;iBACvD;;;ACjBD;;;;;;"}
@@ -1,4 +1,4 @@
1
- import { Coupon, LineItem, Shops } from '@infrab4a/connect';
1
+ import { Coupon, LineItem, Shops, User } from '@infrab4a/connect';
2
2
  import { Observable } from 'rxjs';
3
3
  import { AuthService } from './auth.service';
4
4
  import { CheckoutService } from './checkout.service';
@@ -13,14 +13,15 @@ export declare class CartService {
13
13
  private readonly defaultShop;
14
14
  private cartSubject;
15
15
  constructor(authService: AuthService, checkoutService: CheckoutService, defaultShop: Shops);
16
- addItem(item: LineItem, quantity?: number, checkoutData?: RequiredCheckoutData): Observable<Cart>;
16
+ addItem(item: LineItem, quantity?: number): Observable<Cart>;
17
17
  decreaseItem(item: LineItem): Observable<Cart>;
18
- getCart(): Observable<Cart>;
18
+ getCart(checkout?: RequiredCheckoutData): Observable<Cart>;
19
19
  getDiscount(coupon: Coupon & {
20
20
  id: string;
21
21
  }): (subTotalPrice: number) => number;
22
22
  getVariantPriceDiscount(item: LineItem, shop: Shops): Observable<number>;
23
23
  removeItem(item: LineItem): Observable<Cart>;
24
+ updateUserCart(user: User): Observable<Cart>;
24
25
  private buildCartFromCheckout;
25
26
  private updateLineItemInCart;
26
27
  private generateCartObject;
@@ -9,7 +9,8 @@ export declare class CheckoutService {
9
9
  constructor(checkoutRepository: CheckoutRepository, userRepository: UserRepository, defaultShop: Shops);
10
10
  getCheckout(checkoutData?: RequiredCheckoutData): Observable<Checkout>;
11
11
  getUserByCheckout(checkoutId: string): Observable<User>;
12
- updateCheckoutLineItems(checkout: Checkout): Observable<Checkout>;
12
+ updateCheckoutLineItems(checkout: Partial<Checkout>): Observable<Checkout>;
13
+ updateCheckoutUser(checkout: Partial<Checkout>): Observable<Checkout>;
13
14
  private createCheckout;
14
15
  static ɵfac: i0.ɵɵFactoryDeclaration<CheckoutService, never>;
15
16
  static ɵprov: i0.ɵɵInjectableDeclaration<CheckoutService>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@infrab4a/connect-angular",
3
- "version": "0.5.0-beta.10",
3
+ "version": "0.5.0-beta.12",
4
4
  "publishConfig": {
5
5
  "registry": "https://registry.npmjs.org"
6
6
  },