@infrab4a/connect-angular 0.5.0-beta.20 → 0.5.0-beta.3
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.
- package/bundles/infrab4a-connect-angular.umd.js +142 -208
- package/bundles/infrab4a-connect-angular.umd.js.map +1 -1
- package/esm2015/lib/angular-connect.module.js +7 -10
- package/esm2015/lib/services/cart.service.js +36 -57
- package/esm2015/lib/services/checkout.service.js +10 -23
- package/esm2015/lib/services/index.js +1 -2
- package/fesm2015/infrab4a-connect-angular.js +48 -107
- package/fesm2015/infrab4a-connect-angular.js.map +1 -1
- package/lib/angular-connect.module.d.ts +1 -2
- package/lib/services/cart.service.d.ts +6 -10
- package/lib/services/checkout.service.d.ts +4 -8
- package/lib/services/index.d.ts +0 -1
- package/package.json +3 -3
- package/esm2015/lib/consts/default-shop.const.js +0 -2
- package/esm2015/lib/consts/index.js +0 -2
- package/esm2015/lib/services/order.service.js +0 -32
- package/esm2015/lib/services/types/index.js +0 -2
- package/esm2015/lib/services/types/required-checkout-data.type.js +0 -2
- package/lib/consts/default-shop.const.d.ts +0 -1
- package/lib/consts/index.d.ts +0 -1
- package/lib/services/order.service.d.ts +0 -13
- package/lib/services/types/index.d.ts +0 -1
- package/lib/services/types/required-checkout-data.type.d.ts +0 -2
|
@@ -2,15 +2,13 @@ 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,
|
|
6
|
-
import { map, mergeMap,
|
|
7
|
-
import
|
|
8
|
-
import { isNil, NotFoundError, Checkout, pick, LineItem, CouponTypes, FinancialCoupon, CouponSubtypes, Order, Authentication, AuthenticationFirebaseAuthService, SignOut, UserBeautyProfileFirestoreRepository, Buy2WinFirestoreRepository, CategoryFirestoreRepository, CheckoutFirestoreRepository, CheckoutSubscriptionFirestoreRepository, CouponFirestoreRepository, SubscriptionEditionFirestoreRepository, HomeFirestoreRepository, ShopMenuFirestoreRepository, OrderFirestoreRepository, PaymentFirestoreRepository, ProductFirestoreRepository, SubscriptionPaymentFirestoreRepository, SubscriptionPlanFirestoreRepository, SubscriptionFirestoreRepository, UserFirestoreRepository, UserAddressFirestoreRepository, ProductVariantFirestoreRepository } from '@infrab4a/connect';
|
|
5
|
+
import { from, throwError, of, iif } from 'rxjs';
|
|
6
|
+
import { map, mergeMap, catchError } from 'rxjs/operators';
|
|
7
|
+
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';
|
|
9
8
|
import { __awaiter } from 'tslib';
|
|
10
9
|
import cookie from 'js-cookie';
|
|
11
|
-
import * as i1$2 from '@angular/fire/firestore';
|
|
12
|
-
import { AngularFirestore } from '@angular/fire/firestore';
|
|
13
10
|
import { FIREBASE_OPTIONS, FIREBASE_APP_NAME, AngularFireModule } from '@angular/fire';
|
|
11
|
+
import { AngularFirestore } from '@angular/fire/firestore';
|
|
14
12
|
|
|
15
13
|
class AuthService {
|
|
16
14
|
constructor(angularFireAuth, userRepository) {
|
|
@@ -33,42 +31,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImpor
|
|
|
33
31
|
args: ['UserRepository']
|
|
34
32
|
}] }]; } });
|
|
35
33
|
|
|
36
|
-
const DEFAULT_SHOP = 'DEFAULT_SHOP';
|
|
37
|
-
|
|
38
34
|
class CheckoutService {
|
|
39
|
-
constructor(checkoutRepository, userRepository
|
|
35
|
+
constructor(checkoutRepository, userRepository) {
|
|
40
36
|
this.checkoutRepository = checkoutRepository;
|
|
41
37
|
this.userRepository = userRepository;
|
|
42
|
-
this.defaultShop = defaultShop;
|
|
43
38
|
}
|
|
44
|
-
getCheckout(
|
|
39
|
+
getCheckout() {
|
|
45
40
|
const checkoutId = cookie.get('checkoutId');
|
|
46
41
|
if (!isNil(checkoutId))
|
|
47
42
|
return from(this.checkoutRepository.get({ id: checkoutId }));
|
|
48
|
-
return from(this.createCheckout(
|
|
43
|
+
return from(this.createCheckout());
|
|
49
44
|
}
|
|
50
45
|
getUserByCheckout(checkoutId) {
|
|
51
|
-
return from(this.checkoutRepository.get({ id: checkoutId })).pipe(
|
|
46
|
+
return from(this.checkoutRepository.get({ id: checkoutId })).pipe(mergeMap((checkout) => { var _a; return ((_a = checkout === null || checkout === void 0 ? void 0 : checkout.user) === null || _a === void 0 ? void 0 : _a.id) ? of(checkout.user) : from(this.userRepository.get({ id: checkout.user.id })); }), mergeMap((user) => of(user) || throwError(() => new NotFoundError('User is not found'))));
|
|
52
47
|
}
|
|
53
48
|
updateCheckoutLineItems(checkout) {
|
|
54
49
|
return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, lineItems: checkout.lineItems })));
|
|
55
50
|
}
|
|
56
|
-
|
|
57
|
-
return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, user: checkout.user })));
|
|
58
|
-
}
|
|
59
|
-
clearCheckoutFromSession() {
|
|
60
|
-
cookie.remove('checkoutId');
|
|
61
|
-
return of();
|
|
62
|
-
}
|
|
63
|
-
createCheckout(checkoutData) {
|
|
51
|
+
createCheckout() {
|
|
64
52
|
return __awaiter(this, void 0, void 0, function* () {
|
|
65
|
-
const checkout = yield this.checkoutRepository.create(
|
|
53
|
+
const checkout = yield this.checkoutRepository.create({ createdAt: new Date() });
|
|
66
54
|
cookie.set('checkoutId', checkout.id);
|
|
67
55
|
return checkout;
|
|
68
56
|
});
|
|
69
57
|
}
|
|
70
58
|
}
|
|
71
|
-
CheckoutService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: CheckoutService, deps: [{ token: 'CheckoutRepository' }, { token: 'UserRepository' }
|
|
59
|
+
CheckoutService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: CheckoutService, deps: [{ token: 'CheckoutRepository' }, { token: 'UserRepository' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
72
60
|
CheckoutService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: CheckoutService });
|
|
73
61
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: CheckoutService, decorators: [{
|
|
74
62
|
type: Injectable
|
|
@@ -78,30 +66,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImpor
|
|
|
78
66
|
}] }, { type: undefined, decorators: [{
|
|
79
67
|
type: Inject,
|
|
80
68
|
args: ['UserRepository']
|
|
81
|
-
}] }, { type: i1$1.Shops, decorators: [{
|
|
82
|
-
type: Inject,
|
|
83
|
-
args: [DEFAULT_SHOP]
|
|
84
69
|
}] }]; } });
|
|
85
70
|
|
|
86
71
|
class CartService {
|
|
87
|
-
constructor(authService, checkoutService
|
|
72
|
+
constructor(authService, checkoutService) {
|
|
88
73
|
this.authService = authService;
|
|
89
74
|
this.checkoutService = checkoutService;
|
|
90
|
-
this.
|
|
91
|
-
this.cartSubject = new Subject();
|
|
92
|
-
this.updateLineItemInCart = (lineItem, quantity, checkout) => (isNil(checkout) ? this.checkoutService.getCheckout() : of(checkout)).pipe(concatMap((checkoutLoaded) => {
|
|
75
|
+
this.updateLineItemInCart = (lineItem, quantity) => this.checkoutService.getCheckout().pipe(mergeMap((checkoutLoaded) => {
|
|
93
76
|
var _a;
|
|
94
77
|
const items = [];
|
|
95
78
|
const index = (_a = checkoutLoaded.lineItems) === null || _a === void 0 ? void 0 : _a.map((checkoutItem) => checkoutItem.sku).indexOf(lineItem.sku);
|
|
96
79
|
if (index > -1) {
|
|
97
80
|
checkoutLoaded.lineItems[index].quantity += quantity;
|
|
98
|
-
checkoutLoaded.lineItems[index].pricePaid = lineItem.pricePaid;
|
|
99
81
|
}
|
|
100
82
|
else
|
|
101
83
|
checkoutLoaded.lineItems = items.concat(checkoutLoaded.lineItems ? checkoutLoaded.lineItems.concat([lineItem]) : [lineItem]);
|
|
102
84
|
return this.checkoutService
|
|
103
85
|
.updateCheckoutLineItems(checkoutLoaded)
|
|
104
|
-
.pipe(map((
|
|
86
|
+
.pipe(map((checkout) => this.generateCartObject(checkout.lineItems)));
|
|
105
87
|
}));
|
|
106
88
|
this.generateCartObject = (items) => {
|
|
107
89
|
const cart = {};
|
|
@@ -111,16 +93,12 @@ class CartService {
|
|
|
111
93
|
});
|
|
112
94
|
return cart;
|
|
113
95
|
};
|
|
114
|
-
this.buildLineItem = ({ checkout, item, quantity, }) => {
|
|
115
|
-
var _a, _b
|
|
116
|
-
if (this.checkMaxStock(item
|
|
96
|
+
this.buildLineItem = ({ checkout, item, isSubscriber, quantity, }) => {
|
|
97
|
+
var _a, _b;
|
|
98
|
+
if (this.checkMaxStock(item))
|
|
117
99
|
throw new Error('Desculpe! Temos apenas ' + ((_a = item.stock) === null || _a === void 0 ? void 0 : _a.quantity) + ' em estoque.');
|
|
118
100
|
const image = item.image || ((_b = item.images) === null || _b === void 0 ? void 0 : _b.shift());
|
|
119
|
-
const pricePaid = this.getProductPrice({
|
|
120
|
-
product: item,
|
|
121
|
-
shop: checkout.shop || this.defaultShop,
|
|
122
|
-
isSubscriber: (_c = checkout.user) === null || _c === void 0 ? void 0 : _c.isSubscriber,
|
|
123
|
-
});
|
|
101
|
+
const pricePaid = this.getProductPrice({ product: item, shop: checkout.shop, isSubscriber });
|
|
124
102
|
const { id, name, brand, slug, stock, price, weight, categories, sku } = item;
|
|
125
103
|
const isGift = item.isGift || null;
|
|
126
104
|
return LineItem.toInstance({
|
|
@@ -133,25 +111,31 @@ class CartService {
|
|
|
133
111
|
price,
|
|
134
112
|
image,
|
|
135
113
|
weight,
|
|
136
|
-
quantity
|
|
114
|
+
quantity,
|
|
137
115
|
pricePaid,
|
|
138
116
|
categories,
|
|
139
117
|
isGift,
|
|
140
118
|
});
|
|
141
119
|
};
|
|
142
|
-
this.getProductPrice = ({ product, shop, isSubscriber, }) =>
|
|
143
|
-
|
|
144
|
-
return isSubscriber && info.subscriberPrice > 0 ? info.subscriberPrice : info.price;
|
|
145
|
-
};
|
|
146
|
-
this.checkMaxStock = (item, quantity) => {
|
|
120
|
+
this.getProductPrice = ({ product, shop, isSubscriber, }) => product.getInfoByShop(shop)[isSubscriber ? 'subscriberPrice' : 'price'];
|
|
121
|
+
this.checkMaxStock = (item) => {
|
|
147
122
|
var _a;
|
|
148
123
|
const maxStock = ((_a = item.stock) === null || _a === void 0 ? void 0 : _a.quantity) || 0;
|
|
149
|
-
const
|
|
150
|
-
|
|
124
|
+
const quantity = item.quantity || 1;
|
|
125
|
+
const currentItemAmount = item.quantity;
|
|
126
|
+
return quantity > maxStock || currentItemAmount + quantity > maxStock;
|
|
151
127
|
};
|
|
152
128
|
}
|
|
153
|
-
addItem(item, quantity = 1) {
|
|
154
|
-
return
|
|
129
|
+
addItem(item, quantity = 1, checkout) {
|
|
130
|
+
return of(checkout).pipe(mergeMap((checkout) => (isEmpty(checkout === null || checkout === void 0 ? void 0 : checkout.id) ? this.checkoutService.getCheckout() : of(checkout))), mergeMap((checkout) => {
|
|
131
|
+
var _a;
|
|
132
|
+
quantity = quantity || 1;
|
|
133
|
+
return of((_a = checkout.user) === null || _a === void 0 ? void 0 : _a.isSubscriber).pipe(mergeMap((isSubscriber) => isSubscriber
|
|
134
|
+
? of(isSubscriber)
|
|
135
|
+
: this.checkoutService.getUserByCheckout(checkout.id).pipe(catchError(() => of({ isSubscriber: false })), map((user) => user.isSubscriber))), mergeMap((isSubscriber) => {
|
|
136
|
+
return this.getCart().pipe(map(() => this.buildLineItem({ checkout, item, quantity, isSubscriber })), mergeMap((lineItem) => this.updateLineItemInCart(lineItem, quantity)));
|
|
137
|
+
}));
|
|
138
|
+
}));
|
|
155
139
|
}
|
|
156
140
|
decreaseItem(item) {
|
|
157
141
|
return this.checkoutService.getCheckout().pipe(map((checkout) => {
|
|
@@ -160,11 +144,10 @@ class CartService {
|
|
|
160
144
|
if (!isNil(checkoutItem))
|
|
161
145
|
checkoutItem.quantity -= checkoutItem.quantity > 1 ? 1 : 0;
|
|
162
146
|
return checkout;
|
|
163
|
-
}),
|
|
147
|
+
}), mergeMap((checkout) => this.checkoutService.updateCheckoutLineItems(checkout)), map((checkout) => this.generateCartObject(checkout.lineItems)));
|
|
164
148
|
}
|
|
165
|
-
getCart(
|
|
166
|
-
this.
|
|
167
|
-
return this.cartSubject;
|
|
149
|
+
getCart() {
|
|
150
|
+
return this.checkoutService.getCheckout().pipe(map((checkout) => checkout.lineItems), mergeMap((lineItems) => of(this.generateCartObject(lineItems))));
|
|
168
151
|
}
|
|
169
152
|
getDiscount(coupon) {
|
|
170
153
|
switch (coupon.type) {
|
|
@@ -179,27 +162,13 @@ class CartService {
|
|
|
179
162
|
}
|
|
180
163
|
}
|
|
181
164
|
getVariantPriceDiscount(item, shop) {
|
|
182
|
-
return this.authService.getUser().pipe(
|
|
165
|
+
return this.authService.getUser().pipe(mergeMap((user) => iif(() => user.isSubscriber && !!item.getInfoByShop(shop).subscriberPrice, of(item.getInfoByShop(shop).subscriberPrice), of(item.getInfoByShop(shop).price))), catchError(() => of(item.getInfoByShop(shop).price)));
|
|
183
166
|
}
|
|
184
167
|
removeItem(item) {
|
|
185
168
|
return this.checkoutService.getCheckout().pipe(map((checkout) => {
|
|
186
|
-
|
|
187
|
-
if (index >= 0)
|
|
188
|
-
checkout.lineItems.splice(index, 1);
|
|
189
|
-
return checkout;
|
|
190
|
-
}), concatMap((checkout) => this.checkoutService.updateCheckoutLineItems(checkout)), map((checkout) => this.generateCartObject(checkout.lineItems)), tap((cart) => this.cartSubject.next(cart)));
|
|
191
|
-
}
|
|
192
|
-
updateUserCart(user) {
|
|
193
|
-
return this.checkoutService.getCheckout().pipe(concatMap((checkout) => this.checkoutService.updateCheckoutUser(Checkout.toInstance(Object.assign(Object.assign({}, checkout.toPlain()), { user })))), concatMap((checkout) => this.checkoutService.updateCheckoutLineItems(Checkout.toInstance(Object.assign(Object.assign({}, checkout.toPlain()), { lineItems: checkout.lineItems.map((item) => this.buildLineItem({ checkout, item })) })))), map((checkout) => this.generateCartObject(checkout.lineItems)), tap((cart) => this.cartSubject.next(cart)));
|
|
194
|
-
}
|
|
195
|
-
clearCart() {
|
|
196
|
-
return this.checkoutService.getCheckout().pipe(map((checkout) => {
|
|
197
|
-
this.checkoutService.clearCheckoutFromSession();
|
|
169
|
+
checkout.lineItems.splice(checkout.lineItems.findIndex((lineItem) => lineItem.sku === item.sku), 1);
|
|
198
170
|
return checkout;
|
|
199
|
-
}),
|
|
200
|
-
}
|
|
201
|
-
buildCartFromCheckout(checkoutData) {
|
|
202
|
-
return this.checkoutService.getCheckout(checkoutData).pipe(map((checkout) => checkout.lineItems), concatMap((lineItems) => of(this.generateCartObject(lineItems))));
|
|
171
|
+
}), mergeMap((checkout) => this.checkoutService.updateCheckoutLineItems(checkout)), map((checkout) => this.generateCartObject(checkout.lineItems)));
|
|
203
172
|
}
|
|
204
173
|
getFinancialDiscount(coupon) {
|
|
205
174
|
return (subTotalPrice) => {
|
|
@@ -213,38 +182,11 @@ class CartService {
|
|
|
213
182
|
};
|
|
214
183
|
}
|
|
215
184
|
}
|
|
216
|
-
CartService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: CartService, deps: [{ token: AuthService }, { token: CheckoutService }
|
|
185
|
+
CartService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: CartService, deps: [{ token: AuthService }, { token: CheckoutService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
217
186
|
CartService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: CartService });
|
|
218
187
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: CartService, decorators: [{
|
|
219
188
|
type: Injectable
|
|
220
|
-
}], ctorParameters: function () { return [{ type: AuthService }, { type: CheckoutService }
|
|
221
|
-
type: Inject,
|
|
222
|
-
args: [DEFAULT_SHOP]
|
|
223
|
-
}] }]; } });
|
|
224
|
-
|
|
225
|
-
class OrderService {
|
|
226
|
-
constructor(angularFirestore, orderRepository) {
|
|
227
|
-
this.angularFirestore = angularFirestore;
|
|
228
|
-
this.orderRepository = orderRepository;
|
|
229
|
-
this.orderSubject = new Subject();
|
|
230
|
-
}
|
|
231
|
-
getOrder(id) {
|
|
232
|
-
this.angularFirestore
|
|
233
|
-
.doc(`${this.orderRepository.collectionName}/${id}`)
|
|
234
|
-
.valueChanges()
|
|
235
|
-
.pipe(map((doc) => Order.toInstance(doc)))
|
|
236
|
-
.subscribe((doc) => this.orderSubject.next(doc));
|
|
237
|
-
return this.orderSubject;
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
OrderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: OrderService, deps: [{ token: i1$2.AngularFirestore }, { token: 'OrderRepository' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
241
|
-
OrderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: OrderService });
|
|
242
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: OrderService, decorators: [{
|
|
243
|
-
type: Injectable
|
|
244
|
-
}], ctorParameters: function () { return [{ type: i1$2.AngularFirestore }, { type: i1$1.OrderFirestoreRepository, decorators: [{
|
|
245
|
-
type: Inject,
|
|
246
|
-
args: ['OrderRepository']
|
|
247
|
-
}] }]; } });
|
|
189
|
+
}], ctorParameters: function () { return [{ type: AuthService }, { type: CheckoutService }]; } });
|
|
248
190
|
|
|
249
191
|
class AngularFirebaseAuthModule {
|
|
250
192
|
static initializeApp(options, nameOrConfig) {
|
|
@@ -589,25 +531,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImpor
|
|
|
589
531
|
}] });
|
|
590
532
|
|
|
591
533
|
class AngularConnectModule {
|
|
592
|
-
static initializeApp(
|
|
534
|
+
static initializeApp(options, nameOrConfig) {
|
|
593
535
|
return {
|
|
594
536
|
ngModule: AngularConnectModule,
|
|
595
537
|
providers: [
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
...(isNil(options) ? [] : [{ provide: FIREBASE_APP_NAME, useValue: nameOrConfig }]),
|
|
538
|
+
{ provide: FIREBASE_OPTIONS, useValue: options },
|
|
539
|
+
{ provide: FIREBASE_APP_NAME, useValue: nameOrConfig },
|
|
599
540
|
],
|
|
600
541
|
};
|
|
601
542
|
}
|
|
602
543
|
}
|
|
603
544
|
AngularConnectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: AngularConnectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
604
545
|
AngularConnectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: AngularConnectModule, imports: [AngularFireModule, AngularFirestoreModule] });
|
|
605
|
-
AngularConnectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: AngularConnectModule, providers: [AuthService, CartService, CheckoutService
|
|
546
|
+
AngularConnectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: AngularConnectModule, providers: [AuthService, CartService, CheckoutService], imports: [[AngularFireModule, AngularFirestoreModule]] });
|
|
606
547
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: AngularConnectModule, decorators: [{
|
|
607
548
|
type: NgModule,
|
|
608
549
|
args: [{
|
|
609
550
|
imports: [AngularFireModule, AngularFirestoreModule],
|
|
610
|
-
providers: [AuthService, CartService, CheckoutService
|
|
551
|
+
providers: [AuthService, CartService, CheckoutService],
|
|
611
552
|
}]
|
|
612
553
|
}] });
|
|
613
554
|
|
|
@@ -615,5 +556,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImpor
|
|
|
615
556
|
* Generated bundle index. Do not edit.
|
|
616
557
|
*/
|
|
617
558
|
|
|
618
|
-
export { AngularConnectModule, AngularFirebaseAuthModule, AngularFirestoreModule, AuthService, CartService, CheckoutService
|
|
559
|
+
export { AngularConnectModule, AngularFirebaseAuthModule, AngularFirestoreModule, AuthService, CartService, CheckoutService };
|
|
619
560
|
//# sourceMappingURL=infrab4a-connect-angular.js.map
|
|
@@ -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/services/order.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 {\n Checkout,\n CheckoutRepository,\n isNil,\n NotFoundError,\n pick,\n Shops,\n User,\n UserRepository,\n} from '@infrab4a/connect'\nimport cookie from 'js-cookie'\nimport { from, Observable, throwError, of } from 'rxjs'\nimport { concatMap } 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 concatMap((checkout) =>\n checkout?.user?.id ? of(checkout.user) : from(this.userRepository.get({ id: checkout.user.id })),\n ),\n concatMap((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 clearCheckoutFromSession(): Observable<void> {\n cookie.remove('checkoutId')\n\n return of()\n }\n\n private async createCheckout(checkoutData?: RequiredCheckoutData): Promise<Checkout> {\n const checkout = await this.checkoutRepository.create({\n createdAt: new Date(),\n ...Checkout.toInstance(pick(checkoutData, ['user', 'shop'])).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 { iif, Observable, of, Subject } from 'rxjs'\nimport { catchError, concatMap, map, tap } 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 return this.checkoutService.getCheckout().pipe(\n map((checkout) => ({ checkout, lineItem: this.buildLineItem({ checkout, item, quantity: quantity || 1 }) })),\n concatMap(({ checkout, lineItem }) => this.updateLineItemInCart(lineItem, quantity || 1, checkout)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n decreaseItem(item: LineItem): Observable<Cart> {\n return this.checkoutService.getCheckout().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 concatMap((checkout) => this.checkoutService.updateCheckoutLineItems(checkout)),\n map((checkout) => this.generateCartObject(checkout.lineItems)),\n tap((cart) => this.cartSubject.next(cart)),\n )\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 concatMap((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 return this.checkoutService.getCheckout().pipe(\n map((checkout) => {\n const index = checkout.lineItems.findIndex((lineItem) => lineItem.sku === item.sku)\n\n if (index >= 0) checkout.lineItems.splice(index, 1)\n\n return checkout\n }),\n concatMap((checkout) => this.checkoutService.updateCheckoutLineItems(checkout)),\n map((checkout) => this.generateCartObject(checkout.lineItems)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n updateUserCart(user: User): Observable<Cart> {\n return this.checkoutService.getCheckout().pipe(\n concatMap((checkout) =>\n this.checkoutService.updateCheckoutUser(Checkout.toInstance({ ...checkout.toPlain(), user })),\n ),\n concatMap((checkout) =>\n this.checkoutService.updateCheckoutLineItems(\n Checkout.toInstance({\n ...checkout.toPlain(),\n lineItems: checkout.lineItems.map((item) => this.buildLineItem({ checkout, item })),\n }),\n ),\n ),\n map((checkout) => this.generateCartObject(checkout.lineItems)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n clearCart(): Observable<Cart> {\n return this.checkoutService.getCheckout().pipe(\n map((checkout) => {\n this.checkoutService.clearCheckoutFromSession()\n return checkout\n }),\n concatMap((oldCheckout) => this.buildCartFromCheckout(oldCheckout)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n private buildCartFromCheckout(checkoutData?: RequiredCheckoutData): Observable<Cart> {\n return this.checkoutService.getCheckout(checkoutData).pipe(\n map((checkout) => checkout.lineItems),\n concatMap((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 concatMap((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, quantity || 0))\n 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: (item.quantity || 0) + (quantity || 0),\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, quantity: number) => {\n const maxStock = item.stock?.quantity || 0\n const currentItemAmount = item.quantity || 0\n\n return 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 { Injectable, Inject } from '@angular/core'\nimport { AngularFirestore, QueryDocumentSnapshot } from '@angular/fire/firestore'\nimport { Order, OrderFirestoreRepository } from '@infrab4a/connect'\nimport { from, Observable, Subject } from 'rxjs'\nimport { map, mergeMap, tap } from 'rxjs/operators'\n\n@Injectable()\nexport class OrderService {\n orderSubject = new Subject<Order>()\n\n constructor(\n private readonly angularFirestore: AngularFirestore,\n @Inject('OrderRepository') private readonly orderRepository: OrderFirestoreRepository,\n ) {}\n\n getOrder(id: string): Subject<Order> {\n this.angularFirestore\n .doc<QueryDocumentSnapshot<Order>>(`${this.orderRepository.collectionName}/${id}`)\n .valueChanges()\n .pipe(map((doc) => Order.toInstance(doc)))\n .subscribe((doc) => this.orderSubject.next(doc))\n\n return this.orderSubject\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, OrderService } from './services'\nimport { DEFAULT_SHOP } from './consts'\n\n@NgModule({\n imports: [AngularFireModule, AngularFirestoreModule],\n providers: [AuthService, CartService, CheckoutService, OrderService],\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;;MCoB7B,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,SAAS,CAAC,CAAC,QAAQ,eACjB,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,SAAS,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,IAAI,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAC1F,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;IAED,wBAAwB;QACtB,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QAE3B,OAAO,EAAE,EAAE,CAAA;KACZ;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,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KACtE,IAAI,EAAE,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,KAAI,IAAI,CAAC,WAAW,IAC5C,CAAA;YAEF,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;YAErC,OAAO,QAAQ,CAAA;SAChB;KAAA;;4GAhDU,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;;;MCGX,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;QAkH1C,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,SAAS,CAAC,CAAC,cAAc;;YACvB,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,EAAE,QAAQ,IAAI,CAAC,CAAC;gBACzC,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAG,MAAA,IAAI,CAAC,KAAK,0CAAE,QAAQ,CAAA,GAAG,cAAc,CAAC,CAAA;YAEpF,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,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC;gBAChD,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,EAAE,QAAgB;;YACvD,MAAM,QAAQ,GAAG,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,QAAQ,KAAI,CAAC,CAAA;YAC1C,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAA;YAE5C,OAAO,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,CAAA;SAC/C,CAAA;KAvMG;IAEJ,OAAO,CAAC,IAAc,EAAE,WAAmB,CAAC;QAC1C,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,IAAI,CAC5C,GAAG,CAAC,CAAC,QAAQ,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC5G,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,EACnG,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAC3C,CAAA;KACF;IAED,YAAY,CAAC,IAAc;QACzB,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,IAAI,CAC5C,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,SAAS,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,EAC/E,GAAG,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAC9D,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAC3C,CAAA;KACF;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,SAAS,CAAC,CAAC,IAAI,KACb,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,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,IAAI,CAC5C,GAAG,CAAC,CAAC,QAAQ;YACX,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,CAAA;YAEnF,IAAI,KAAK,IAAI,CAAC;gBAAE,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;YAEnD,OAAO,QAAQ,CAAA;SAChB,CAAC,EACF,SAAS,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,EAC/E,GAAG,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAC9D,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAC3C,CAAA;KACF;IAED,cAAc,CAAC,IAAU;QACvB,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,IAAI,CAC5C,SAAS,CAAC,CAAC,QAAQ,KACjB,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,QAAQ,CAAC,UAAU,iCAAM,QAAQ,CAAC,OAAO,EAAE,KAAE,IAAI,IAAG,CAAC,CAC9F,EACD,SAAS,CAAC,CAAC,QAAQ,KACjB,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAC1C,QAAQ,CAAC,UAAU,iCACd,QAAQ,CAAC,OAAO,EAAE,KACrB,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IACnF,CACH,CACF,EACD,GAAG,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAC9D,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAC3C,CAAA;KACF;IAED,SAAS;QACP,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,IAAI,CAC5C,GAAG,CAAC,CAAC,QAAQ;YACX,IAAI,CAAC,eAAe,CAAC,wBAAwB,EAAE,CAAA;YAC/C,OAAO,QAAQ,CAAA;SAChB,CAAC,EACF,SAAS,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,EACnE,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAC3C,CAAA;KACF;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,SAAS,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CACjE,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;;wGA1NU,WAAW,sEAMZ,YAAY;4GANX,WAAW;2FAAX,WAAW;kBADvB,UAAU;;0BAON,MAAM;2BAAC,YAAY;;;MC1BX,YAAY;IAGvB,YACmB,gBAAkC,EACP,eAAyC;QADpE,qBAAgB,GAAhB,gBAAgB,CAAkB;QACP,oBAAe,GAAf,eAAe,CAA0B;QAJvF,iBAAY,GAAG,IAAI,OAAO,EAAS,CAAA;KAK/B;IAEJ,QAAQ,CAAC,EAAU;QACjB,IAAI,CAAC,gBAAgB;aAClB,GAAG,CAA+B,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC;aACjF,YAAY,EAAE;aACd,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;aACzC,SAAS,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QAElD,OAAO,IAAI,CAAC,YAAY,CAAA;KACzB;;yGAhBU,YAAY,oDAKb,iBAAiB;6GALhB,YAAY;2FAAZ,YAAY;kBADxB,UAAU;;0BAMN,MAAM;2BAAC,iBAAiB;;;MC+BhB,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,EAAE,YAAY,CAAC,YAD3D,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,EAAE,YAAY,CAAC;iBACrE;;;ACjBD;;;;;;"}
|
|
1
|
+
{"version":3,"file":"infrab4a-connect-angular.js","sources":["../../../projects/connect-angular/src/lib/services/auth.service.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","import { Injectable, Inject } from '@angular/core'\nimport { Checkout, CheckoutRepository, isNil, NotFoundError, User, UserRepository } from '@infrab4a/connect'\nimport cookie from 'js-cookie'\nimport { from, Observable, throwError, of } from 'rxjs'\nimport { concatMap, map, mergeMap } from 'rxjs/operators'\n\n@Injectable()\nexport class CheckoutService {\n constructor(\n @Inject('CheckoutRepository') private readonly checkoutRepository: CheckoutRepository,\n @Inject('UserRepository') private readonly userRepository: UserRepository,\n ) {}\n\n getCheckout(): 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())\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(): Promise<Checkout> {\n const checkout = await this.checkoutRepository.create({ createdAt: new Date() })\n\n cookie.set('checkoutId', checkout.id)\n\n return checkout\n }\n}\n","import { Injectable } from '@angular/core'\nimport {\n Checkout,\n Coupon,\n CouponSubtypes,\n CouponTypes,\n FinancialCoupon,\n isEmpty,\n isNil,\n LineItem,\n Product,\n RequiredArgumentError,\n Shops,\n} from '@infrab4a/connect'\nimport { iif, Observable, of } from 'rxjs'\nimport { catchError, map, mergeMap } from 'rxjs/operators'\n\nimport { AuthService } from './auth.service'\nimport { CheckoutService } from './checkout.service'\n\nexport type Cart = {\n [id: string]: LineItem\n}\n\ntype RequiredCheckoutData = Pick<Checkout, 'id' | 'user' | 'shop'>\n\n@Injectable()\nexport class CartService {\n constructor(private readonly authService: AuthService, private readonly checkoutService: CheckoutService) {}\n\n public addItem(item: LineItem, quantity: number = 1, checkout?: RequiredCheckoutData): Observable<Cart> {\n return of(checkout).pipe(\n mergeMap((checkout) => (isEmpty(checkout?.id) ? this.checkoutService.getCheckout() : 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.getCart().pipe(\n map(() => this.buildLineItem({ checkout, item, quantity, isSubscriber })),\n mergeMap((lineItem) => this.updateLineItemInCart(lineItem, quantity)),\n )\n }),\n )\n }),\n )\n }\n\n public decreaseItem(item: LineItem): Observable<Cart> {\n return this.checkoutService.getCheckout().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 }\n\n public getCart(): Observable<Cart> {\n return this.checkoutService.getCheckout().pipe(\n map((checkout) => checkout.lineItems),\n mergeMap((lineItems) => of(this.generateCartObject(lineItems))),\n )\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 return this.checkoutService.getCheckout().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 }\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, 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'\n\nimport { AngularFirestoreModule } from './angular-firestore.module'\nimport { AuthService, CartService, CheckoutService } from './services'\n\n@NgModule({\n imports: [AngularFireModule, AngularFirestoreModule],\n providers: [AuthService, CartService, CheckoutService],\n})\nexport class AngularConnectModule {\n static initializeApp(\n options: FirebaseOptions,\n nameOrConfig?: string | FirebaseAppConfig,\n ): ModuleWithProviders<AngularFireModule> {\n return {\n ngModule: AngularConnectModule,\n providers: [\n { provide: FIREBASE_OPTIONS, useValue: options },\n { 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,11 +1,10 @@
|
|
|
1
1
|
import { ModuleWithProviders } from '@angular/core';
|
|
2
2
|
import { AngularFireModule, FirebaseAppConfig, FirebaseOptions } from '@angular/fire';
|
|
3
|
-
import { Shops } from '@infrab4a/connect';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
4
|
import * as i1 from "@angular/fire";
|
|
6
5
|
import * as i2 from "./angular-firestore.module";
|
|
7
6
|
export declare class AngularConnectModule {
|
|
8
|
-
static initializeApp(
|
|
7
|
+
static initializeApp(options: FirebaseOptions, nameOrConfig?: string | FirebaseAppConfig): ModuleWithProviders<AngularFireModule>;
|
|
9
8
|
static ɵfac: i0.ɵɵFactoryDeclaration<AngularConnectModule, never>;
|
|
10
9
|
static ɵmod: i0.ɵɵNgModuleDeclaration<AngularConnectModule, never, [typeof i1.AngularFireModule, typeof i2.AngularFirestoreModule], never>;
|
|
11
10
|
static ɵinj: i0.ɵɵInjectorDeclaration<AngularConnectModule>;
|
|
@@ -1,29 +1,24 @@
|
|
|
1
|
-
import { Coupon, LineItem, Shops
|
|
1
|
+
import { Checkout, Coupon, LineItem, Shops } from '@infrab4a/connect';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
3
|
import { AuthService } from './auth.service';
|
|
4
4
|
import { CheckoutService } from './checkout.service';
|
|
5
|
-
import { RequiredCheckoutData } from './types';
|
|
6
5
|
import * as i0 from "@angular/core";
|
|
7
6
|
export declare type Cart = {
|
|
8
7
|
[id: string]: LineItem;
|
|
9
8
|
};
|
|
9
|
+
declare type RequiredCheckoutData = Pick<Checkout, 'id' | 'user' | 'shop'>;
|
|
10
10
|
export declare class CartService {
|
|
11
11
|
private readonly authService;
|
|
12
12
|
private readonly checkoutService;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
constructor(authService: AuthService, checkoutService: CheckoutService, defaultShop: Shops);
|
|
16
|
-
addItem(item: LineItem, quantity?: number): Observable<Cart>;
|
|
13
|
+
constructor(authService: AuthService, checkoutService: CheckoutService);
|
|
14
|
+
addItem(item: LineItem, quantity?: number, checkout?: RequiredCheckoutData): Observable<Cart>;
|
|
17
15
|
decreaseItem(item: LineItem): Observable<Cart>;
|
|
18
|
-
getCart(
|
|
16
|
+
getCart(): Observable<Cart>;
|
|
19
17
|
getDiscount(coupon: Coupon & {
|
|
20
18
|
id: string;
|
|
21
19
|
}): (subTotalPrice: number) => number;
|
|
22
20
|
getVariantPriceDiscount(item: LineItem, shop: Shops): Observable<number>;
|
|
23
21
|
removeItem(item: LineItem): Observable<Cart>;
|
|
24
|
-
updateUserCart(user: User): Observable<Cart>;
|
|
25
|
-
clearCart(): Observable<Cart>;
|
|
26
|
-
private buildCartFromCheckout;
|
|
27
22
|
private updateLineItemInCart;
|
|
28
23
|
private generateCartObject;
|
|
29
24
|
private buildLineItem;
|
|
@@ -33,3 +28,4 @@ export declare class CartService {
|
|
|
33
28
|
static ɵfac: i0.ɵɵFactoryDeclaration<CartService, never>;
|
|
34
29
|
static ɵprov: i0.ɵɵInjectableDeclaration<CartService>;
|
|
35
30
|
}
|
|
31
|
+
export {};
|
|
@@ -1,17 +1,13 @@
|
|
|
1
|
-
import { Checkout, CheckoutRepository,
|
|
1
|
+
import { Checkout, CheckoutRepository, User, UserRepository } from '@infrab4a/connect';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
|
-
import { RequiredCheckoutData } from './types';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
4
|
export declare class CheckoutService {
|
|
6
5
|
private readonly checkoutRepository;
|
|
7
6
|
private readonly userRepository;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
getCheckout(checkoutData?: RequiredCheckoutData): Observable<Checkout>;
|
|
7
|
+
constructor(checkoutRepository: CheckoutRepository, userRepository: UserRepository);
|
|
8
|
+
getCheckout(): Observable<Checkout>;
|
|
11
9
|
getUserByCheckout(checkoutId: string): Observable<User>;
|
|
12
|
-
updateCheckoutLineItems(checkout:
|
|
13
|
-
updateCheckoutUser(checkout: Partial<Checkout>): Observable<Checkout>;
|
|
14
|
-
clearCheckoutFromSession(): Observable<void>;
|
|
10
|
+
updateCheckoutLineItems(checkout: Checkout): Observable<Checkout>;
|
|
15
11
|
private createCheckout;
|
|
16
12
|
static ɵfac: i0.ɵɵFactoryDeclaration<CheckoutService, never>;
|
|
17
13
|
static ɵprov: i0.ɵɵInjectableDeclaration<CheckoutService>;
|
package/lib/services/index.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@infrab4a/connect-angular",
|
|
3
|
-
"version": "0.5.0-beta.
|
|
3
|
+
"version": "0.5.0-beta.3",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"registry": "https://registry.npmjs.org"
|
|
6
6
|
},
|
|
@@ -12,10 +12,10 @@
|
|
|
12
12
|
"@angular/common": "^12.2.12",
|
|
13
13
|
"@angular/core": "^12.2.12",
|
|
14
14
|
"@angular/fire": "^6.1.5",
|
|
15
|
-
"@infrab4a/connect": "^0.
|
|
15
|
+
"@infrab4a/connect": "^0.5.1",
|
|
16
16
|
"firebase": "^7.24.0",
|
|
17
17
|
"js-cookie": "^3.0.1",
|
|
18
|
-
"rxjs": "^
|
|
18
|
+
"rxjs": "^7.4.0"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"js-cookie": "^3.0.1",
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export const DEFAULT_SHOP = 'DEFAULT_SHOP';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1zaG9wLmNvbnN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9saWIvY29uc3RzL2RlZmF1bHQtc2hvcC5jb25zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IERFRkFVTFRfU0hPUCA9ICdERUZBVUxUX1NIT1AnXG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './default-shop.const';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL2xpYi9jb25zdHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGVmYXVsdC1zaG9wLmNvbnN0J1xuIl19
|