@infrab4a/connect-angular 5.0.0-beta.20 → 5.0.0-beta.21
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/angular-connect.module.d.ts +6 -5
- package/angular-firestore.module.d.ts +1 -2
- package/esm2022/angular-connect.module.mjs +22 -4
- package/esm2022/angular-elastic-search.module.mjs +1 -1
- package/esm2022/angular-firebase-auth.module.mjs +1 -1
- package/esm2022/angular-firestore.module.mjs +4 -23
- package/esm2022/angular-hasura-graphql.module.mjs +1 -1
- package/esm2022/consts/category-structure.mjs +1 -1
- package/esm2022/consts/default-shop.const.mjs +1 -1
- package/esm2022/consts/es-config.const.mjs +1 -1
- package/esm2022/consts/firebase-const.mjs +1 -1
- package/esm2022/consts/hasura-options.const.mjs +1 -1
- package/esm2022/consts/index.mjs +1 -1
- package/esm2022/consts/persistence.const.mjs +1 -1
- package/esm2022/consts/storage-base-url.const.mjs +1 -1
- package/esm2022/helpers/index.mjs +1 -1
- package/esm2022/helpers/mobile-operation-system-checker.helper.mjs +1 -1
- package/esm2022/index.mjs +1 -1
- package/esm2022/persistence/cookie-data-persistence.mjs +1 -1
- package/esm2022/persistence/data-persistence.mjs +1 -1
- package/esm2022/persistence/index.mjs +1 -1
- package/esm2022/services/auth.service.mjs +1 -1
- package/esm2022/services/cart.service.mjs +1 -1
- package/esm2022/services/catalog/adapters/category-structure.adapter.mjs +1 -1
- package/esm2022/services/catalog/adapters/index.mjs +1 -1
- package/esm2022/services/catalog/adapters/new-category-structure.adapter.mjs +1 -1
- package/esm2022/services/catalog/adapters/old-category-structure.adapter.mjs +1 -1
- package/esm2022/services/catalog/catalog.service.mjs +32 -5
- package/esm2022/services/catalog/category.service.mjs +1 -1
- package/esm2022/services/catalog/enums/index.mjs +1 -1
- package/esm2022/services/catalog/enums/product-sorts.enum.mjs +1 -1
- package/esm2022/services/catalog/index.mjs +1 -1
- package/esm2022/services/catalog/models/category-with-tree.model.mjs +1 -1
- package/esm2022/services/catalog/models/index.mjs +1 -1
- package/esm2022/services/catalog/types/index.mjs +1 -1
- package/esm2022/services/catalog/types/product-sort.type.mjs +1 -1
- package/esm2022/services/catalog/wishlist.service.mjs +1 -1
- package/esm2022/services/checkout-subscription.service.mjs +1 -1
- package/esm2022/services/checkout.service.mjs +1 -1
- package/esm2022/services/coupon.service.mjs +1 -1
- package/esm2022/services/helpers/index.mjs +1 -1
- package/esm2022/services/helpers/util.helper.mjs +1 -1
- package/esm2022/services/home-shop.service.mjs +1 -1
- package/esm2022/services/index.mjs +1 -1
- package/esm2022/services/order.service.mjs +1 -1
- package/esm2022/services/shipping.service.mjs +1 -1
- package/esm2022/services/types/index.mjs +1 -1
- package/esm2022/services/types/required-checkout-data.type.mjs +1 -1
- package/esm2022/services/types/required-checkout-subscription-data.type.mjs +1 -1
- package/esm2022/services/types/shipping-methods.type.mjs +1 -1
- package/esm2022/types/firebase-app-config.type.mjs +1 -1
- package/esm2022/types/index.mjs +1 -1
- package/fesm2022/infrab4a-connect-angular.mjs +54 -27
- package/fesm2022/infrab4a-connect-angular.mjs.map +1 -1
- package/package.json +2 -2
- package/services/catalog/catalog.service.d.ts +2 -1
|
@@ -2,15 +2,15 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { NgModule, InjectionToken, PLATFORM_ID, Injectable, Inject } from '@angular/core';
|
|
3
3
|
import * as i1$4 from '@angular/fire/app';
|
|
4
4
|
import { FirebaseApp, provideFirebaseApp, getApp, initializeApp } from '@angular/fire/app';
|
|
5
|
+
import * as i2 from '@angular/fire/storage';
|
|
6
|
+
import { Storage, provideStorage, getStorage } from '@angular/fire/storage';
|
|
5
7
|
import * as i1$2 from '@infrab4a/connect';
|
|
6
|
-
import { ProductsIndex, AxiosAdapter, Authentication, AuthenticationFirebaseAuthService, Register, RegisterFirebaseAuthService, SignOut, RecoveryPassword, ConnectFirestoreService, UserBeautyProfileFirestoreRepository, Buy2WinFirestoreRepository, CategoryFirestoreRepository, CheckoutFirestoreRepository, CheckoutSubscriptionFirestoreRepository, CouponFirestoreRepository, CampaignHashtagFirestoreRepository, CampaignDashboardFirestoreRepository, SubscriptionEditionFirestoreRepository, HomeFirestoreRepository, LeadFirestoreRepository, LegacyOrderFirestoreRepository, ShopMenuFirestoreRepository, OrderFirestoreRepository, PaymentFirestoreRepository, ProductFirestoreRepository, ShopSettingsFirestoreRepository, SubscriptionPaymentFirestoreRepository, SubscriptionPlanFirestoreRepository, SubscriptionProductFirestoreRepository, SubscriptionFirestoreRepository, UserFirestoreRepository, UserAddressFirestoreRepository, UserPaymentMethodFirestoreRepository, SubscriptionMaterializationFirestoreRepository, SubscriptionSummaryFirestoreRepository, ProductVariantFirestoreRepository,
|
|
8
|
+
import { ProductsIndex, AxiosAdapter, Authentication, AuthenticationFirebaseAuthService, Register, RegisterFirebaseAuthService, SignOut, RecoveryPassword, ConnectFirestoreService, UserBeautyProfileFirestoreRepository, Buy2WinFirestoreRepository, CategoryFirestoreRepository, CheckoutFirestoreRepository, CheckoutSubscriptionFirestoreRepository, CouponFirestoreRepository, CampaignHashtagFirestoreRepository, CampaignDashboardFirestoreRepository, SubscriptionEditionFirestoreRepository, HomeFirestoreRepository, LeadFirestoreRepository, LegacyOrderFirestoreRepository, ShopMenuFirestoreRepository, OrderFirestoreRepository, PaymentFirestoreRepository, ProductFirestoreRepository, ShopSettingsFirestoreRepository, SubscriptionPaymentFirestoreRepository, SubscriptionPlanFirestoreRepository, SubscriptionProductFirestoreRepository, SubscriptionFirestoreRepository, UserFirestoreRepository, UserAddressFirestoreRepository, UserPaymentMethodFirestoreRepository, SubscriptionMaterializationFirestoreRepository, SubscriptionSummaryFirestoreRepository, ProductVariantFirestoreRepository, CategoryHasuraGraphQLRepository, ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository, ProductReviewsHasuraGraphQLRepository, VariantHasuraGraphQLRepository, ProductStockNotificationHasuraGraphQLRepository, FilterOptionHasuraGraphQLRepository, FilterHasuraGraphQLRepository, CategoryCollectionChildrenHasuraGraphQLRepository, WishlistHasuraGraphQLRepository, Where, Shops, CheckoutTypes, CouponTypes, Exclusivities, isNil, NotFoundError, Checkout, pick, LineItem, RoundProductPricesHelper, set, InvalidArgumentError, Category, Wishlist, CheckoutSubscription, Product, RequiredArgumentError, add, Order, UpdateUserImage, FirebaseFileUploaderService } from '@infrab4a/connect';
|
|
7
9
|
import * as i1 from '@angular/fire/auth';
|
|
8
10
|
import { Auth, provideAuth, getAuth, getIdToken, authState } from '@angular/fire/auth';
|
|
9
11
|
import { isPlatformBrowser, isPlatformServer } from '@angular/common';
|
|
10
12
|
import * as i1$1 from '@angular/fire/firestore';
|
|
11
13
|
import { Firestore, provideFirestore, initializeFirestore, memoryLocalCache, docSnapshots, doc } from '@angular/fire/firestore';
|
|
12
|
-
import * as i2 from '@angular/fire/storage';
|
|
13
|
-
import { Storage, provideStorage, getStorage } from '@angular/fire/storage';
|
|
14
14
|
import cookie from 'js-cookie';
|
|
15
15
|
import { of, from, combineLatest, throwError, Subject, iif, forkJoin } from 'rxjs';
|
|
16
16
|
import { map, mergeMap, catchError, concatMap, tap } from 'rxjs/operators';
|
|
@@ -171,8 +171,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
|
|
|
171
171
|
}]
|
|
172
172
|
}] });
|
|
173
173
|
|
|
174
|
-
const STORAGE_BASE_URL = 'STORAGE_BASE_URL';
|
|
175
|
-
|
|
176
174
|
class MobileOperationSystemCheckerHelper {
|
|
177
175
|
static isAppleDevice() {
|
|
178
176
|
return (['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(navigator?.platform) ||
|
|
@@ -192,7 +190,7 @@ class AngularFirestoreModule {
|
|
|
192
190
|
};
|
|
193
191
|
}
|
|
194
192
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AngularFirestoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
195
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.3", ngImport: i0, type: AngularFirestoreModule, imports: [AngularElasticSeachModule, i1$1.FirestoreModule
|
|
193
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.3", ngImport: i0, type: AngularFirestoreModule, imports: [AngularElasticSeachModule, i1$1.FirestoreModule] }); }
|
|
196
194
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AngularFirestoreModule, providers: [
|
|
197
195
|
{
|
|
198
196
|
provide: 'FirestoreOptions',
|
|
@@ -405,13 +403,6 @@ class AngularFirestoreModule {
|
|
|
405
403
|
},
|
|
406
404
|
deps: ['FirestoreOptions', ProductFirestoreRepository],
|
|
407
405
|
},
|
|
408
|
-
{
|
|
409
|
-
provide: 'FileUploaderService',
|
|
410
|
-
useFactory: (storage, baseUrl) => {
|
|
411
|
-
return new FirebaseFileUploaderService(storage, baseUrl);
|
|
412
|
-
},
|
|
413
|
-
deps: [Storage, STORAGE_BASE_URL],
|
|
414
|
-
},
|
|
415
406
|
], imports: [AngularElasticSeachModule,
|
|
416
407
|
provideFirestore((injector) => {
|
|
417
408
|
const platformId = injector.get(PLATFORM_ID);
|
|
@@ -425,8 +416,7 @@ class AngularFirestoreModule {
|
|
|
425
416
|
localCache: memoryLocalCache(),
|
|
426
417
|
});
|
|
427
418
|
return firestore;
|
|
428
|
-
})
|
|
429
|
-
provideStorage(() => getStorage())] }); }
|
|
419
|
+
})] }); }
|
|
430
420
|
}
|
|
431
421
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AngularFirestoreModule, decorators: [{
|
|
432
422
|
type: NgModule,
|
|
@@ -446,7 +436,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
|
|
|
446
436
|
});
|
|
447
437
|
return firestore;
|
|
448
438
|
}),
|
|
449
|
-
provideStorage(() => getStorage()),
|
|
450
439
|
],
|
|
451
440
|
providers: [
|
|
452
441
|
{
|
|
@@ -660,13 +649,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
|
|
|
660
649
|
},
|
|
661
650
|
deps: ['FirestoreOptions', ProductFirestoreRepository],
|
|
662
651
|
},
|
|
663
|
-
{
|
|
664
|
-
provide: 'FileUploaderService',
|
|
665
|
-
useFactory: (storage, baseUrl) => {
|
|
666
|
-
return new FirebaseFileUploaderService(storage, baseUrl);
|
|
667
|
-
},
|
|
668
|
-
deps: [Storage, STORAGE_BASE_URL],
|
|
669
|
-
},
|
|
670
652
|
],
|
|
671
653
|
}]
|
|
672
654
|
}] });
|
|
@@ -953,6 +935,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
|
|
|
953
935
|
}]
|
|
954
936
|
}] });
|
|
955
937
|
|
|
938
|
+
const STORAGE_BASE_URL = 'STORAGE_BASE_URL';
|
|
939
|
+
|
|
956
940
|
class CookieDataPersistence {
|
|
957
941
|
get(key) {
|
|
958
942
|
return of(cookie.get(key));
|
|
@@ -1733,17 +1717,19 @@ class CatalogService {
|
|
|
1733
1717
|
async findCatalog(options, limits) {
|
|
1734
1718
|
if (this.hasTerm(options) && options.sort === 'most-relevant') {
|
|
1735
1719
|
const productsIds = await this.findCatalogIdsByElasticSearch(options.term);
|
|
1736
|
-
return this.
|
|
1720
|
+
return this.findCatalogAndSortByMostRevelantByTerm(productsIds, options, limits);
|
|
1737
1721
|
}
|
|
1738
1722
|
if (this.hasCategory(options) && options.sort === 'most-relevant') {
|
|
1723
|
+
const mostRelevant = options.category.mostRelevant ?? [];
|
|
1739
1724
|
const productsIds = await this.productRepository
|
|
1740
1725
|
.find({
|
|
1726
|
+
fields: ['id'],
|
|
1741
1727
|
filters: {
|
|
1742
1728
|
...(await this.buildMainFilter(options)),
|
|
1743
1729
|
},
|
|
1744
1730
|
})
|
|
1745
1731
|
.then((products) => products.data.map((product) => product.id));
|
|
1746
|
-
return this.findCatalogAndSortByMostRevelant(productsIds, options, limits);
|
|
1732
|
+
return this.findCatalogAndSortByMostRevelant(mostRelevant, productsIds, options, limits);
|
|
1747
1733
|
}
|
|
1748
1734
|
const repoParams = {
|
|
1749
1735
|
filters: {
|
|
@@ -1772,7 +1758,32 @@ class CatalogService {
|
|
|
1772
1758
|
.search(term, 999, this.shop)
|
|
1773
1759
|
.then((data) => ({ id: { operator: Where.IN, value: data.hits.map(({ _source }) => _source.id) } }));
|
|
1774
1760
|
}
|
|
1775
|
-
async findCatalogAndSortByMostRevelant(productIds, options, limits) {
|
|
1761
|
+
async findCatalogAndSortByMostRevelant(mostRelevants, productIds, options, limits) {
|
|
1762
|
+
const mostRelevantProductsIds = [...new Set(mostRelevants.concat(productIds))];
|
|
1763
|
+
const totalResult = await this.productRepository.findCatalog({
|
|
1764
|
+
filters: {
|
|
1765
|
+
id: { operator: Where.IN, value: mostRelevantProductsIds },
|
|
1766
|
+
},
|
|
1767
|
+
orderBy: this.buildSortQuery('news'),
|
|
1768
|
+
options: {
|
|
1769
|
+
minimal: ['price'],
|
|
1770
|
+
maximum: ['price'],
|
|
1771
|
+
distinct: ['brand'],
|
|
1772
|
+
},
|
|
1773
|
+
}, options?.mainGender || this.shop === Shops.MENSMARKET ? 'male' : 'female');
|
|
1774
|
+
const firstProducts = totalResult.data.filter((product) => mostRelevants.includes(product.id));
|
|
1775
|
+
const lastProducts = totalResult.data.filter((product) => !mostRelevants.includes(product.id));
|
|
1776
|
+
const categoryMostRelevants = firstProducts.concat(lastProducts);
|
|
1777
|
+
const resultFinal = categoryMostRelevants.slice(limits.offset, limits.offset + limits.limit);
|
|
1778
|
+
return {
|
|
1779
|
+
data: resultFinal,
|
|
1780
|
+
count: totalResult.count,
|
|
1781
|
+
maximum: totalResult.maximum,
|
|
1782
|
+
minimal: totalResult.minimal,
|
|
1783
|
+
distinct: totalResult.distinct,
|
|
1784
|
+
};
|
|
1785
|
+
}
|
|
1786
|
+
async findCatalogAndSortByMostRevelantByTerm(productIds, options, limits) {
|
|
1776
1787
|
const totalResult = await this.productRepository.findCatalog({
|
|
1777
1788
|
fields: ['id', 'stock'],
|
|
1778
1789
|
filters: {
|
|
@@ -2325,7 +2336,7 @@ class AngularConnectModule {
|
|
|
2325
2336
|
};
|
|
2326
2337
|
}
|
|
2327
2338
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AngularConnectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
2328
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.3", ngImport: i0, type: AngularConnectModule, imports: [i1$4.FirebaseAppModule, AngularElasticSeachModule,
|
|
2339
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.3", ngImport: i0, type: AngularConnectModule, imports: [i1$4.FirebaseAppModule, i2.StorageModule, AngularElasticSeachModule,
|
|
2329
2340
|
AngularFirebaseAuthModule,
|
|
2330
2341
|
AngularFirestoreModule,
|
|
2331
2342
|
AngularHasuraGraphQLModule] }); }
|
|
@@ -2348,6 +2359,13 @@ class AngularConnectModule {
|
|
|
2348
2359
|
},
|
|
2349
2360
|
deps: ['UserRepository', 'FileUploaderService'],
|
|
2350
2361
|
},
|
|
2362
|
+
{
|
|
2363
|
+
provide: 'FileUploaderService',
|
|
2364
|
+
useFactory: (storage, baseUrl) => {
|
|
2365
|
+
return new FirebaseFileUploaderService(storage, baseUrl);
|
|
2366
|
+
},
|
|
2367
|
+
deps: [Storage, STORAGE_BASE_URL],
|
|
2368
|
+
},
|
|
2351
2369
|
], imports: [provideFirebaseApp((injector) => {
|
|
2352
2370
|
const appName = injector.get(FIREBASE_APP_NAME) || '[DEFAULT]';
|
|
2353
2371
|
try {
|
|
@@ -2357,6 +2375,7 @@ class AngularConnectModule {
|
|
|
2357
2375
|
return initializeApp(injector.get(FIREBASE_OPTIONS), appName);
|
|
2358
2376
|
}
|
|
2359
2377
|
}),
|
|
2378
|
+
provideStorage((injector) => getStorage(injector.get(FirebaseApp))),
|
|
2360
2379
|
AngularElasticSeachModule,
|
|
2361
2380
|
AngularFirebaseAuthModule,
|
|
2362
2381
|
AngularFirestoreModule,
|
|
@@ -2375,6 +2394,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
|
|
|
2375
2394
|
return initializeApp(injector.get(FIREBASE_OPTIONS), appName);
|
|
2376
2395
|
}
|
|
2377
2396
|
}),
|
|
2397
|
+
provideStorage((injector) => getStorage(injector.get(FirebaseApp))),
|
|
2378
2398
|
AngularElasticSeachModule,
|
|
2379
2399
|
AngularFirebaseAuthModule,
|
|
2380
2400
|
AngularFirestoreModule,
|
|
@@ -2399,6 +2419,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
|
|
|
2399
2419
|
},
|
|
2400
2420
|
deps: ['UserRepository', 'FileUploaderService'],
|
|
2401
2421
|
},
|
|
2422
|
+
{
|
|
2423
|
+
provide: 'FileUploaderService',
|
|
2424
|
+
useFactory: (storage, baseUrl) => {
|
|
2425
|
+
return new FirebaseFileUploaderService(storage, baseUrl);
|
|
2426
|
+
},
|
|
2427
|
+
deps: [Storage, STORAGE_BASE_URL],
|
|
2428
|
+
},
|
|
2402
2429
|
],
|
|
2403
2430
|
}]
|
|
2404
2431
|
}] });
|