@daffodil/category 0.54.0 → 0.56.0
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/esm2020/routing/module.mjs +4 -1
- package/esm2020/routing/public_api.mjs +2 -1
- package/esm2020/routing/resolvers/category-page-url/category-page-url.resolver.mjs +8 -18
- package/esm2020/routing/services/public_api.mjs +2 -0
- package/esm2020/routing/services/url-request-builder.service.mjs +35 -0
- package/esm2020/state/facades/page/category-facade.interface.mjs +1 -1
- package/esm2020/state/facades/page/category.facade.mjs +7 -7
- package/esm2020/state/product-state.module.mjs +29 -0
- package/esm2020/state/public_api.mjs +2 -1
- package/esm2020/state/reducers/category/category-reducer-state.interface.mjs +1 -1
- package/esm2020/state/reducers/category/category.reducer.mjs +7 -28
- package/esm2020/state/reducers/product-reducers.mjs +9 -0
- package/esm2020/state/reducers/product.reducer.mjs +30 -0
- package/esm2020/state/selectors/category-page/category-page.selector.mjs +3 -13
- package/esm2020/state/testing/mock-category-facade.mjs +6 -6
- package/fesm2015/daffodil-category-routing.mjs +41 -16
- package/fesm2015/daffodil-category-routing.mjs.map +1 -1
- package/fesm2015/daffodil-category-state-testing.mjs +5 -5
- package/fesm2015/daffodil-category-state-testing.mjs.map +1 -1
- package/fesm2015/daffodil-category-state.mjs +74 -37
- package/fesm2015/daffodil-category-state.mjs.map +1 -1
- package/fesm2020/daffodil-category-routing.mjs +43 -20
- package/fesm2020/daffodil-category-routing.mjs.map +1 -1
- package/fesm2020/daffodil-category-state-testing.mjs +5 -5
- package/fesm2020/daffodil-category-state-testing.mjs.map +1 -1
- package/fesm2020/daffodil-category-state.mjs +73 -49
- package/fesm2020/daffodil-category-state.mjs.map +1 -1
- package/package.json +4 -4
- package/routing/public_api.d.ts +1 -0
- package/routing/resolvers/category-page-url/category-page-url.resolver.d.ts +3 -5
- package/routing/services/public_api.d.ts +1 -0
- package/routing/services/url-request-builder.service.d.ts +17 -0
- package/state/facades/page/category-facade.interface.d.ts +2 -31
- package/state/facades/page/category.facade.d.ts +5 -5
- package/state/product-state.module.d.ts +10 -0
- package/state/public_api.d.ts +1 -0
- package/state/reducers/category/category-reducer-state.interface.d.ts +2 -14
- package/state/reducers/product-reducers.d.ts +3 -0
- package/state/reducers/product.reducer.d.ts +10 -0
- package/state/selectors/category-page/category-page.selector.d.ts +2 -26
- package/state/testing/mock-category-facade.d.ts +5 -5
@@ -1,7 +1,7 @@
|
|
1
1
|
import * as i0 from '@angular/core';
|
2
2
|
import { InjectionToken, PLATFORM_ID, Injectable, Inject, inject, NgModule } from '@angular/core';
|
3
3
|
import { isPlatformBrowser } from '@angular/common';
|
4
|
-
import * as i1$
|
4
|
+
import * as i1$2 from '@ngrx/effects';
|
5
5
|
import { ofType, EffectsModule } from '@ngrx/effects';
|
6
6
|
import { of } from 'rxjs';
|
7
7
|
import { map, take } from 'rxjs/operators';
|
@@ -9,10 +9,10 @@ import { DaffCategoryRequestKind } from '@daffodil/category';
|
|
9
9
|
import * as i3 from '@daffodil/category/state';
|
10
10
|
import { DaffCategoryPageLoad, DaffCategoryPageActionTypes, DaffCategoryPageLoadByUrl, DaffCategoryPageProductCollectionActionTypes } from '@daffodil/category/state';
|
11
11
|
import * as i1 from '@ngrx/store';
|
12
|
-
import * as
|
12
|
+
import * as i1$1 from '@daffodil/core/routing';
|
13
13
|
import * as i4 from '@daffodil/product/routing';
|
14
14
|
import { DaffProductRoutingCollectionEffects, DaffProductRoutingModule, DaffProductGetCollectionRequestFromRoute } from '@daffodil/product/routing';
|
15
|
-
import * as i2
|
15
|
+
import * as i2 from '@angular/router';
|
16
16
|
|
17
17
|
/**
|
18
18
|
* An internal token to combine the {@link DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS} into a single builder.
|
@@ -72,6 +72,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
|
|
72
72
|
type: Injectable
|
73
73
|
}], ctorParameters: function () { return [{ type: DaffCategoryPageIdResolver }]; } });
|
74
74
|
|
75
|
+
class DaffCategoryRoutingUrlRequestBuilder {
|
76
|
+
constructor(requestBuilder, urlNormalizer) {
|
77
|
+
this.requestBuilder = requestBuilder;
|
78
|
+
this.urlNormalizer = urlNormalizer;
|
79
|
+
}
|
80
|
+
/**
|
81
|
+
* Builds a category URL request from the provided route and router state that
|
82
|
+
* is suitable for passing to {@link DaffCategoryPageLoadByUrl}.
|
83
|
+
*/
|
84
|
+
build(route, state) {
|
85
|
+
return Object.assign(Object.assign({}, this.requestBuilder(route)), { url: this.urlNormalizer.normalize(state.url), kind: DaffCategoryRequestKind.URL });
|
86
|
+
}
|
87
|
+
}
|
88
|
+
/** @nocollapse */ DaffCategoryRoutingUrlRequestBuilder.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryRoutingUrlRequestBuilder, deps: [{ token: DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER }, { token: i1$1.DaffRoutingUriNormalizer }], target: i0.ɵɵFactoryTarget.Injectable });
|
89
|
+
/** @nocollapse */ DaffCategoryRoutingUrlRequestBuilder.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryRoutingUrlRequestBuilder, providedIn: 'any' });
|
90
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryRoutingUrlRequestBuilder, decorators: [{
|
91
|
+
type: Injectable,
|
92
|
+
args: [{
|
93
|
+
providedIn: 'any',
|
94
|
+
}]
|
95
|
+
}], ctorParameters: function () {
|
96
|
+
return [{ type: undefined, decorators: [{
|
97
|
+
type: Inject,
|
98
|
+
args: [DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER]
|
99
|
+
}] }, { type: i1$1.DaffRoutingUriNormalizer }];
|
100
|
+
} });
|
101
|
+
|
75
102
|
/**
|
76
103
|
* Resolves category data for category pages, and will only resolve the url
|
77
104
|
* after a category request succeeds or fails. This resolver will take a full
|
@@ -79,19 +106,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
|
|
79
106
|
* Assumes that the URL to be resolved is the primary outlet.
|
80
107
|
*/
|
81
108
|
class DaffCategoryPageUrlResolver {
|
82
|
-
constructor(platformId,
|
109
|
+
constructor(platformId, store, dispatcher, requestBuilder) {
|
83
110
|
this.platformId = platformId;
|
84
|
-
this.requestBuilder = requestBuilder;
|
85
111
|
this.store = store;
|
86
112
|
this.dispatcher = dispatcher;
|
87
|
-
this.
|
113
|
+
this.requestBuilder = requestBuilder;
|
88
114
|
}
|
89
115
|
resolve(route, state) {
|
90
|
-
this.store.dispatch(new DaffCategoryPageLoadByUrl(
|
116
|
+
this.store.dispatch(new DaffCategoryPageLoadByUrl(this.requestBuilder.build(route, state)));
|
91
117
|
return isPlatformBrowser(this.platformId) ? of(true) : this.dispatcher.pipe(ofType(DaffCategoryPageActionTypes.CategoryPageLoadSuccessAction, DaffCategoryPageActionTypes.CategoryPageLoadFailureAction), map(() => true), take(1));
|
92
118
|
}
|
93
119
|
}
|
94
|
-
/** @nocollapse */ DaffCategoryPageUrlResolver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryPageUrlResolver, deps: [{ token: PLATFORM_ID }, { token:
|
120
|
+
/** @nocollapse */ DaffCategoryPageUrlResolver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryPageUrlResolver, deps: [{ token: PLATFORM_ID }, { token: i1.Store }, { token: i1.ActionsSubject }, { token: DaffCategoryRoutingUrlRequestBuilder }], target: i0.ɵɵFactoryTarget.Injectable });
|
95
121
|
/** @nocollapse */ DaffCategoryPageUrlResolver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryPageUrlResolver });
|
96
122
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryPageUrlResolver, decorators: [{
|
97
123
|
type: Injectable
|
@@ -99,10 +125,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
|
|
99
125
|
return [{ type: undefined, decorators: [{
|
100
126
|
type: Inject,
|
101
127
|
args: [PLATFORM_ID]
|
102
|
-
}] }, { type:
|
103
|
-
type: Inject,
|
104
|
-
args: [DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER]
|
105
|
-
}] }, { type: i1.Store }, { type: i1.ActionsSubject }, { type: i2.DaffRoutingUriNormalizer }];
|
128
|
+
}] }, { type: i1.Store }, { type: i1.ActionsSubject }, { type: DaffCategoryRoutingUrlRequestBuilder }];
|
106
129
|
} });
|
107
130
|
|
108
131
|
/**
|
@@ -139,20 +162,21 @@ class DaffCategoryRoutingCollectionEffects extends DaffProductRoutingCollectionE
|
|
139
162
|
super(actions$, router, Object.values(DaffCategoryPageProductCollectionActionTypes), collectionFacade, getQueryParams, route);
|
140
163
|
}
|
141
164
|
}
|
142
|
-
/** @nocollapse */ DaffCategoryRoutingCollectionEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryRoutingCollectionEffects, deps: [{ token: i1$
|
165
|
+
/** @nocollapse */ DaffCategoryRoutingCollectionEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryRoutingCollectionEffects, deps: [{ token: i1$2.Actions }, { token: i2.Router }, { token: i3.DaffCategoryProductCollectionFacade }, { token: i4.DaffProductGetQueryParamsFromRequest }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable });
|
143
166
|
/** @nocollapse */ DaffCategoryRoutingCollectionEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryRoutingCollectionEffects });
|
144
167
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryRoutingCollectionEffects, decorators: [{
|
145
168
|
type: Injectable
|
146
|
-
}], ctorParameters: function () { return [{ type: i1$
|
169
|
+
}], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: i2.Router }, { type: i3.DaffCategoryProductCollectionFacade }, { type: i4.DaffProductGetQueryParamsFromRequest }, { type: i2.ActivatedRoute }]; } });
|
147
170
|
|
148
171
|
class DaffCategoryRoutingModule {
|
149
172
|
}
|
150
173
|
/** @nocollapse */ DaffCategoryRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
151
|
-
/** @nocollapse */ DaffCategoryRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryRoutingModule, imports: [DaffProductRoutingModule, i1$
|
174
|
+
/** @nocollapse */ DaffCategoryRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryRoutingModule, imports: [DaffProductRoutingModule, i1$2.EffectsFeatureModule] });
|
152
175
|
/** @nocollapse */ DaffCategoryRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryRoutingModule, providers: [
|
153
176
|
DaffCategoryPageResolver,
|
154
177
|
DaffCategoryPageIdResolver,
|
155
178
|
DaffCategoryPageUrlResolver,
|
179
|
+
DaffCategoryRoutingUrlRequestBuilder,
|
156
180
|
{
|
157
181
|
provide: DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS,
|
158
182
|
useFactory: (() => {
|
@@ -188,6 +212,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
|
|
188
212
|
DaffCategoryPageResolver,
|
189
213
|
DaffCategoryPageIdResolver,
|
190
214
|
DaffCategoryPageUrlResolver,
|
215
|
+
DaffCategoryRoutingUrlRequestBuilder,
|
191
216
|
{
|
192
217
|
provide: DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS,
|
193
218
|
useFactory: (() => {
|
@@ -212,5 +237,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
|
|
212
237
|
* Generated bundle index. Do not edit.
|
213
238
|
*/
|
214
239
|
|
215
|
-
export { DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS, DaffCategoryPageIdResolver, DaffCategoryPageResolver, DaffCategoryPageUrlResolver, DaffCategoryRoutingModule, daffProvideCategoryRoutingRequestBuilders };
|
240
|
+
export { DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS, DaffCategoryPageIdResolver, DaffCategoryPageResolver, DaffCategoryPageUrlResolver, DaffCategoryRoutingModule, DaffCategoryRoutingUrlRequestBuilder, daffProvideCategoryRoutingRequestBuilders };
|
216
241
|
//# sourceMappingURL=daffodil-category-routing.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"daffodil-category-routing.mjs","sources":["../../../libs/category/routing/src/injection-tokens/request/builder.token.ts","../../../libs/category/routing/src/resolvers/category-page-id/category-page-id.resolver.ts","../../../libs/category/routing/src/resolvers/category-page/category-page.resolver.ts","../../../libs/category/routing/src/resolvers/category-page-url/category-page-url.resolver.ts","../../../libs/category/routing/src/injection-tokens/request/builders.token.ts","../../../libs/category/routing/src/effects/collection-route.effects.ts","../../../libs/category/routing/src/module.ts","../../../libs/category/routing/src/daffodil-category-routing.ts"],"sourcesContent":["import {\n inject,\n InjectionToken,\n} from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\n\nimport {\n DaffCategoryRoutingRequestBuilder,\n DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS,\n} from './builders.token';\n\n/**\n * An internal token to combine the {@link DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS} into a single builder.\n */\nexport const DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER = new InjectionToken<DaffCategoryRoutingRequestBuilder>(\n 'DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER',\n {\n factory: () => () => ({}),\n },\n);\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n Inject,\n Injectable,\n PLATFORM_ID,\n} from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n Resolve,\n} from '@angular/router';\nimport { ofType } from '@ngrx/effects';\nimport {\n ActionsSubject,\n Store,\n} from '@ngrx/store';\nimport {\n Observable,\n of,\n} from 'rxjs';\nimport {\n map,\n take,\n} from 'rxjs/operators';\n\nimport { DaffCategoryRequestKind } from '@daffodil/category';\nimport {\n DaffCategoryReducersState,\n DaffCategoryPageLoad,\n DaffCategoryPageActionTypes,\n} from '@daffodil/category/state';\n\nimport { DaffCategoryRoutingRequestBuilder } from '../../injection-tokens/public_api';\nimport { DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER } from '../../injection-tokens/request/builder.token';\n\n/**\n * Resolves category data for category pages, and will only resolve the url after a category request succeeds or fails. This resolver expects a url\n * of the form `some/url/{id}` where `{id}` is the category id.\n */\n@Injectable()\nexport class DaffCategoryPageIdResolver implements Resolve<Observable<boolean>> {\n constructor(\n @Inject(PLATFORM_ID) private platformId: string,\n @Inject(DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER) private requestBuilder: DaffCategoryRoutingRequestBuilder,\n private store: Store<DaffCategoryReducersState>,\n private dispatcher: ActionsSubject,\n ) { }\n\n resolve(route: ActivatedRouteSnapshot): Observable<boolean> {\n this.store.dispatch(new DaffCategoryPageLoad({\n ...this.requestBuilder(route),\n id: route.paramMap.get('id'),\n kind: DaffCategoryRequestKind.ID,\n }));\n\n return isPlatformBrowser(this.platformId) ? of(true) : this.dispatcher.pipe(\n ofType(DaffCategoryPageActionTypes.CategoryPageLoadSuccessAction, DaffCategoryPageActionTypes.CategoryPageLoadFailureAction),\n map(() => true),\n take(1),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n Resolve,\n} from '@angular/router';\nimport { Observable } from 'rxjs';\n\nimport { DaffCategoryPageIdResolver } from '../category-page-id/category-page-id.resolver';\n\n/**\n * Resolves category data for category pages, and will only resolve the url after a category request succeeds or fails. This resolver expects a url\n * of the form `some/url/{id}` where `{id}` is the category id.\n *\n * @deprecated\n * @see DaffCategoryPageIdResolver\n */\n@Injectable()\nexport class DaffCategoryPageResolver implements Resolve<Observable<boolean>> {\n constructor(\n private categoryPageIdResolver: DaffCategoryPageIdResolver,\n ) { }\n\n resolve(route: ActivatedRouteSnapshot): Observable<boolean> {\n return this.categoryPageIdResolver.resolve(route);\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n Inject,\n Injectable,\n PLATFORM_ID,\n} from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n Resolve,\n RouterStateSnapshot,\n} from '@angular/router';\nimport { ofType } from '@ngrx/effects';\nimport {\n ActionsSubject,\n Store,\n} from '@ngrx/store';\nimport {\n Observable,\n of,\n} from 'rxjs';\nimport {\n map,\n take,\n} from 'rxjs/operators';\n\nimport { DaffCategoryRequestKind } from '@daffodil/category';\nimport {\n DaffCategoryReducersState,\n DaffCategoryPageActionTypes,\n DaffCategoryPageLoadByUrl,\n} from '@daffodil/category/state';\nimport { DaffRoutingUriNormalizer } from '@daffodil/core/routing';\n\nimport { DaffCategoryRoutingRequestBuilder } from '../../injection-tokens/public_api';\nimport { DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER } from '../../injection-tokens/request/builder.token';\n\n/**\n * Resolves category data for category pages, and will only resolve the url\n * after a category request succeeds or fails. This resolver will take a full\n * a url of the form `some/url.html(secondary:outlet)?query=param#fragment` and attempt to resolve a product from it.\n * Assumes that the URL to be resolved is the primary outlet.\n */\n@Injectable()\nexport class DaffCategoryPageUrlResolver implements Resolve<Observable<boolean>> {\n constructor(\n @Inject(PLATFORM_ID) private platformId: string,\n @Inject(DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER) private requestBuilder: DaffCategoryRoutingRequestBuilder,\n private store: Store<DaffCategoryReducersState>,\n private dispatcher: ActionsSubject,\n private urlNormalizer: DaffRoutingUriNormalizer,\n ) { }\n\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\n this.store.dispatch(new DaffCategoryPageLoadByUrl({\n ...this.requestBuilder(route),\n url: this.urlNormalizer.normalize(state.url),\n kind: DaffCategoryRequestKind.URL,\n }));\n\n return isPlatformBrowser(this.platformId) ? of(true) : this.dispatcher.pipe(\n ofType(DaffCategoryPageActionTypes.CategoryPageLoadSuccessAction, DaffCategoryPageActionTypes.CategoryPageLoadFailureAction),\n map(() => true),\n take(1),\n );\n }\n}\n","import {\n InjectionToken,\n ValueProvider,\n} from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\n\nimport { DaffCollectionRequest } from '@daffodil/core';\n\n\nexport type DaffCategoryRoutingRequestBuilder<T extends DaffCollectionRequest = DaffCollectionRequest> = (route: ActivatedRouteSnapshot) => T;\n\n/**\n * A multi-provider injection token for category request builders.\n * These builders are called with the requested route during the resolve step\n * and return options to pass to the category driver.\n */\nexport const DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS = new InjectionToken<DaffCategoryRoutingRequestBuilder[]>(\n 'DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS',\n { factory: () => []},\n);\n\n/**\n * Provides category request builders for the routing layer.\n *\n * See {@link DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS}.\n *\n * ```ts\n * providers: [\n * ...daffProvideCategoryRoutingRequestBuilders(\n * route => ({\n * currentPage: route.queryParams.page\n * })\n * )\n * ]\n * ```\n */\nexport function daffProvideCategoryRoutingRequestBuilders(...builders: DaffCategoryRoutingRequestBuilder[]): ValueProvider[] {\n return builders.map(builder => ({\n provide: DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS,\n useValue: builder,\n multi: true,\n }));\n}\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\nimport { Actions } from '@ngrx/effects';\n\nimport {\n DaffCategoryPageProductCollectionActionTypes,\n DaffCategoryProductCollectionFacade,\n} from '@daffodil/category/state';\nimport {\n DaffProductGetQueryParamsFromRequest,\n DaffProductRoutingCollectionEffects,\n} from '@daffodil/product/routing';\n\n@Injectable()\nexport class DaffCategoryRoutingCollectionEffects extends DaffProductRoutingCollectionEffects {\n constructor(\n actions$: Actions,\n router: Router,\n collectionFacade: DaffCategoryProductCollectionFacade,\n getQueryParams: DaffProductGetQueryParamsFromRequest,\n route: ActivatedRoute,\n ) {\n super(\n actions$,\n router,\n Object.values(DaffCategoryPageProductCollectionActionTypes),\n collectionFacade,\n getQueryParams,\n route,\n );\n }\n}\n","import {\n inject,\n NgModule,\n} from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\nimport { EffectsModule } from '@ngrx/effects';\n\nimport {\n DaffProductGetCollectionRequestFromRoute,\n DaffProductRoutingModule,\n} from '@daffodil/product/routing';\n\nimport { DaffCategoryRoutingCollectionEffects } from './effects/collection-route.effects';\nimport {\n DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS,\n DaffCategoryRoutingRequestBuilder,\n} from './injection-tokens/public_api';\nimport { DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER } from './injection-tokens/request/builder.token';\nimport {\n DaffCategoryPageIdResolver,\n DaffCategoryPageResolver,\n DaffCategoryPageUrlResolver,\n} from './resolvers/public_api';\n\n@NgModule({\n imports: [\n DaffProductRoutingModule,\n EffectsModule.forFeature([\n DaffCategoryRoutingCollectionEffects,\n ]),\n ],\n providers: [\n DaffCategoryPageResolver,\n DaffCategoryPageIdResolver,\n DaffCategoryPageUrlResolver,\n {\n provide: DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS,\n useFactory: () => {\n const service = inject(DaffProductGetCollectionRequestFromRoute);\n const builder: DaffCategoryRoutingRequestBuilder = route => service.getRequest(route.queryParamMap);\n return builder;\n },\n multi: true,\n },\n {\n provide: DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER,\n useFactory: () => {\n const builders = inject(DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS);\n return (route: ActivatedRouteSnapshot) =>\n Object.assign({}, ...builders.map(builder => builder(route)));\n },\n },\n ],\n})\nexport class DaffCategoryRoutingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DaffCategoryPageIdResolver","i1","i2"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"daffodil-category-routing.mjs","sources":["../../../libs/category/routing/src/injection-tokens/request/builder.token.ts","../../../libs/category/routing/src/resolvers/category-page-id/category-page-id.resolver.ts","../../../libs/category/routing/src/resolvers/category-page/category-page.resolver.ts","../../../libs/category/routing/src/services/url-request-builder.service.ts","../../../libs/category/routing/src/resolvers/category-page-url/category-page-url.resolver.ts","../../../libs/category/routing/src/injection-tokens/request/builders.token.ts","../../../libs/category/routing/src/effects/collection-route.effects.ts","../../../libs/category/routing/src/module.ts","../../../libs/category/routing/src/daffodil-category-routing.ts"],"sourcesContent":["import {\n inject,\n InjectionToken,\n} from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\n\nimport {\n DaffCategoryRoutingRequestBuilder,\n DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS,\n} from './builders.token';\n\n/**\n * An internal token to combine the {@link DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS} into a single builder.\n */\nexport const DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER = new InjectionToken<DaffCategoryRoutingRequestBuilder>(\n 'DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER',\n {\n factory: () => () => ({}),\n },\n);\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n Inject,\n Injectable,\n PLATFORM_ID,\n} from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n Resolve,\n} from '@angular/router';\nimport { ofType } from '@ngrx/effects';\nimport {\n ActionsSubject,\n Store,\n} from '@ngrx/store';\nimport {\n Observable,\n of,\n} from 'rxjs';\nimport {\n map,\n take,\n} from 'rxjs/operators';\n\nimport { DaffCategoryRequestKind } from '@daffodil/category';\nimport {\n DaffCategoryReducersState,\n DaffCategoryPageLoad,\n DaffCategoryPageActionTypes,\n} from '@daffodil/category/state';\n\nimport { DaffCategoryRoutingRequestBuilder } from '../../injection-tokens/public_api';\nimport { DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER } from '../../injection-tokens/request/builder.token';\n\n/**\n * Resolves category data for category pages, and will only resolve the url after a category request succeeds or fails. This resolver expects a url\n * of the form `some/url/{id}` where `{id}` is the category id.\n */\n@Injectable()\nexport class DaffCategoryPageIdResolver implements Resolve<Observable<boolean>> {\n constructor(\n @Inject(PLATFORM_ID) private platformId: string,\n @Inject(DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER) private requestBuilder: DaffCategoryRoutingRequestBuilder,\n private store: Store<DaffCategoryReducersState>,\n private dispatcher: ActionsSubject,\n ) { }\n\n resolve(route: ActivatedRouteSnapshot): Observable<boolean> {\n this.store.dispatch(new DaffCategoryPageLoad({\n ...this.requestBuilder(route),\n id: route.paramMap.get('id'),\n kind: DaffCategoryRequestKind.ID,\n }));\n\n return isPlatformBrowser(this.platformId) ? of(true) : this.dispatcher.pipe(\n ofType(DaffCategoryPageActionTypes.CategoryPageLoadSuccessAction, DaffCategoryPageActionTypes.CategoryPageLoadFailureAction),\n map(() => true),\n take(1),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n Resolve,\n} from '@angular/router';\nimport { Observable } from 'rxjs';\n\nimport { DaffCategoryPageIdResolver } from '../category-page-id/category-page-id.resolver';\n\n/**\n * Resolves category data for category pages, and will only resolve the url after a category request succeeds or fails. This resolver expects a url\n * of the form `some/url/{id}` where `{id}` is the category id.\n *\n * @deprecated\n * @see DaffCategoryPageIdResolver\n */\n@Injectable()\nexport class DaffCategoryPageResolver implements Resolve<Observable<boolean>> {\n constructor(\n private categoryPageIdResolver: DaffCategoryPageIdResolver,\n ) { }\n\n resolve(route: ActivatedRouteSnapshot): Observable<boolean> {\n return this.categoryPageIdResolver.resolve(route);\n }\n}\n","import {\n Inject,\n Injectable,\n} from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n RouterStateSnapshot,\n} from '@angular/router';\n\nimport {\n DaffCategoryRequestKind,\n DaffCategoryUrlRequest,\n} from '@daffodil/category';\nimport { DaffRoutingUriNormalizer } from '@daffodil/core/routing';\n\nimport { DaffCategoryRoutingRequestBuilder } from '../injection-tokens/public_api';\nimport { DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER } from '../injection-tokens/request/builder.token';\n\n@Injectable({\n providedIn: 'any',\n})\nexport class DaffCategoryRoutingUrlRequestBuilder {\n constructor(\n @Inject(DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER) private requestBuilder: DaffCategoryRoutingRequestBuilder,\n private urlNormalizer: DaffRoutingUriNormalizer,\n ) { }\n\n /**\n * Builds a category URL request from the provided route and router state that\n * is suitable for passing to {@link DaffCategoryPageLoadByUrl}.\n */\n build(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): DaffCategoryUrlRequest {\n return {\n ...this.requestBuilder(route),\n url: this.urlNormalizer.normalize(state.url),\n kind: DaffCategoryRequestKind.URL,\n };\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n Inject,\n Injectable,\n PLATFORM_ID,\n} from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n Resolve,\n RouterStateSnapshot,\n} from '@angular/router';\nimport { ofType } from '@ngrx/effects';\nimport {\n ActionsSubject,\n Store,\n} from '@ngrx/store';\nimport {\n Observable,\n of,\n} from 'rxjs';\nimport {\n map,\n take,\n} from 'rxjs/operators';\n\nimport {\n DaffCategoryReducersState,\n DaffCategoryPageActionTypes,\n DaffCategoryPageLoadByUrl,\n} from '@daffodil/category/state';\n\nimport { DaffCategoryRoutingUrlRequestBuilder } from '../../services/public_api';\n\n/**\n * Resolves category data for category pages, and will only resolve the url\n * after a category request succeeds or fails. This resolver will take a full\n * a url of the form `some/url.html(secondary:outlet)?query=param#fragment` and attempt to resolve a product from it.\n * Assumes that the URL to be resolved is the primary outlet.\n */\n@Injectable()\nexport class DaffCategoryPageUrlResolver implements Resolve<Observable<boolean>> {\n constructor(\n @Inject(PLATFORM_ID) private platformId: string,\n private store: Store<DaffCategoryReducersState>,\n private dispatcher: ActionsSubject,\n private requestBuilder: DaffCategoryRoutingUrlRequestBuilder,\n ) { }\n\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\n this.store.dispatch(new DaffCategoryPageLoadByUrl(this.requestBuilder.build(route, state)));\n\n return isPlatformBrowser(this.platformId) ? of(true) : this.dispatcher.pipe(\n ofType(DaffCategoryPageActionTypes.CategoryPageLoadSuccessAction, DaffCategoryPageActionTypes.CategoryPageLoadFailureAction),\n map(() => true),\n take(1),\n );\n }\n}\n","import {\n InjectionToken,\n ValueProvider,\n} from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\n\nimport { DaffCollectionRequest } from '@daffodil/core';\n\n\nexport type DaffCategoryRoutingRequestBuilder<T extends DaffCollectionRequest = DaffCollectionRequest> = (route: ActivatedRouteSnapshot) => T;\n\n/**\n * A multi-provider injection token for category request builders.\n * These builders are called with the requested route during the resolve step\n * and return options to pass to the category driver.\n */\nexport const DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS = new InjectionToken<DaffCategoryRoutingRequestBuilder[]>(\n 'DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS',\n { factory: () => []},\n);\n\n/**\n * Provides category request builders for the routing layer.\n *\n * See {@link DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS}.\n *\n * ```ts\n * providers: [\n * ...daffProvideCategoryRoutingRequestBuilders(\n * route => ({\n * currentPage: route.queryParams.page\n * })\n * )\n * ]\n * ```\n */\nexport function daffProvideCategoryRoutingRequestBuilders(...builders: DaffCategoryRoutingRequestBuilder[]): ValueProvider[] {\n return builders.map(builder => ({\n provide: DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS,\n useValue: builder,\n multi: true,\n }));\n}\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\nimport { Actions } from '@ngrx/effects';\n\nimport {\n DaffCategoryPageProductCollectionActionTypes,\n DaffCategoryProductCollectionFacade,\n} from '@daffodil/category/state';\nimport {\n DaffProductGetQueryParamsFromRequest,\n DaffProductRoutingCollectionEffects,\n} from '@daffodil/product/routing';\n\n@Injectable()\nexport class DaffCategoryRoutingCollectionEffects extends DaffProductRoutingCollectionEffects {\n constructor(\n actions$: Actions,\n router: Router,\n collectionFacade: DaffCategoryProductCollectionFacade,\n getQueryParams: DaffProductGetQueryParamsFromRequest,\n route: ActivatedRoute,\n ) {\n super(\n actions$,\n router,\n Object.values(DaffCategoryPageProductCollectionActionTypes),\n collectionFacade,\n getQueryParams,\n route,\n );\n }\n}\n","import {\n inject,\n NgModule,\n} from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\nimport { EffectsModule } from '@ngrx/effects';\n\nimport {\n DaffProductGetCollectionRequestFromRoute,\n DaffProductRoutingModule,\n} from '@daffodil/product/routing';\n\nimport { DaffCategoryRoutingCollectionEffects } from './effects/collection-route.effects';\nimport {\n DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS,\n DaffCategoryRoutingRequestBuilder,\n} from './injection-tokens/public_api';\nimport { DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER } from './injection-tokens/request/builder.token';\nimport {\n DaffCategoryPageIdResolver,\n DaffCategoryPageResolver,\n DaffCategoryPageUrlResolver,\n} from './resolvers/public_api';\nimport { DaffCategoryRoutingUrlRequestBuilder } from './services/public_api';\n\n@NgModule({\n imports: [\n DaffProductRoutingModule,\n EffectsModule.forFeature([\n DaffCategoryRoutingCollectionEffects,\n ]),\n ],\n providers: [\n DaffCategoryPageResolver,\n DaffCategoryPageIdResolver,\n DaffCategoryPageUrlResolver,\n DaffCategoryRoutingUrlRequestBuilder,\n {\n provide: DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS,\n useFactory: () => {\n const service = inject(DaffProductGetCollectionRequestFromRoute);\n const builder: DaffCategoryRoutingRequestBuilder = route => service.getRequest(route.queryParamMap);\n return builder;\n },\n multi: true,\n },\n {\n provide: DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER,\n useFactory: () => {\n const builders = inject(DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS);\n return (route: ActivatedRouteSnapshot) =>\n Object.assign({}, ...builders.map(builder => builder(route)));\n },\n },\n ],\n})\nexport class DaffCategoryRoutingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DaffCategoryPageIdResolver","i1","i2.DaffCategoryRoutingUrlRequestBuilder"],"mappings":"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"}
|
@@ -12,12 +12,12 @@ import { BehaviorSubject } from 'rxjs';
|
|
12
12
|
class MockDaffCategoryFacade {
|
13
13
|
constructor() {
|
14
14
|
this.category$ = new BehaviorSubject(null);
|
15
|
-
this.
|
16
|
-
this.
|
17
|
-
this.
|
15
|
+
this.loadingState$ = new BehaviorSubject(null);
|
16
|
+
this.loading$ = new BehaviorSubject(false);
|
17
|
+
this.mutating$ = new BehaviorSubject(false);
|
18
|
+
this.resolving$ = new BehaviorSubject(false);
|
19
|
+
this.hasErrors$ = new BehaviorSubject(false);
|
18
20
|
this.products$ = new BehaviorSubject([]);
|
19
|
-
this.categoryLoading$ = new BehaviorSubject(false);
|
20
|
-
this.productsLoading$ = new BehaviorSubject(false);
|
21
21
|
this.errors$ = new BehaviorSubject([]);
|
22
22
|
this.isCategoryEmpty$ = new BehaviorSubject(true);
|
23
23
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"daffodil-category-state-testing.mjs","sources":["../../../libs/category/state/testing/src/mock-category-facade.ts","../../../libs/category/state/testing/src/category-testing.module.ts","../../../libs/category/state/testing/src/daffodil-category-state-testing.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Action } from '@ngrx/store';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { DaffCategory } from '@daffodil/category';\nimport { DaffCategoryFacadeInterface } from '@daffodil/category/state';\nimport { DaffCategoryReducerState } from '@daffodil/category/state';\nimport { DaffStateError } from '@daffodil/core/state';\nimport { DaffProduct } from '@daffodil/product';\n\n/**\n * Can be used to mock out the {@link DaffCategoryFacade} in testing environments.\n *\n * @inheritdoc\n */\n@Injectable({ providedIn: 'root' })\nexport class MockDaffCategoryFacade implements DaffCategoryFacadeInterface {\n
|
1
|
+
{"version":3,"file":"daffodil-category-state-testing.mjs","sources":["../../../libs/category/state/testing/src/mock-category-facade.ts","../../../libs/category/state/testing/src/category-testing.module.ts","../../../libs/category/state/testing/src/daffodil-category-state-testing.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Action } from '@ngrx/store';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { DaffCategory } from '@daffodil/category';\nimport { DaffCategoryFacadeInterface } from '@daffodil/category/state';\nimport { DaffCategoryReducerState } from '@daffodil/category/state';\nimport { DaffStateError } from '@daffodil/core/state';\nimport { DaffProduct } from '@daffodil/product';\n\n/**\n * Can be used to mock out the {@link DaffCategoryFacade} in testing environments.\n *\n * @inheritdoc\n */\n@Injectable({ providedIn: 'root' })\nexport class MockDaffCategoryFacade implements DaffCategoryFacadeInterface {\n category$: BehaviorSubject<DaffCategory> = new BehaviorSubject(null);\n loadingState$: BehaviorSubject<DaffCategoryReducerState['daffState']> = new BehaviorSubject(null);\n loading$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n mutating$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n resolving$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n hasErrors$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n products$: BehaviorSubject<DaffProduct[]> = new BehaviorSubject([]);\n errors$: BehaviorSubject<DaffStateError[]> = new BehaviorSubject([]);\n isCategoryEmpty$: BehaviorSubject<boolean> = new BehaviorSubject(true);\n\n getCategoryById(id: DaffCategory['id']): BehaviorSubject<DaffCategory> {\n\t return new BehaviorSubject(null);\n };\n\n getProductsByCategory(categoryId: DaffCategory['id']): BehaviorSubject<DaffProduct[]> {\n\t return new BehaviorSubject([]);\n };\n\n getTotalProductsByCategory(categoryId: DaffCategory['id']): BehaviorSubject<number> {\n\t return new BehaviorSubject(null);\n };\n\n dispatch(action: Action) {};\n}\n","import { NgModule } from '@angular/core';\n\nimport {\n DaffCategoryFacade,\n DaffCategoryProductCollectionFacade,\n} from '@daffodil/category/state';\nimport { MockDaffCollectionFacade } from '@daffodil/core/state/testing';\n\nimport { MockDaffCategoryFacade } from './mock-category-facade';\n\n/**\n * A module that mocks out the {@link DaffCategoryFacade} with {@link MockDaffCategoryFacade} for testing environments.\n */\n@NgModule({\n providers: [\n { provide: DaffCategoryFacade, useExisting: MockDaffCategoryFacade },\n { provide: DaffCategoryProductCollectionFacade, useExisting: MockDaffCollectionFacade },\n ],\n})\nexport class DaffCategoryTestingModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAUA;;;;AAIG;MAEU,sBAAsB,CAAA;AADnC,IAAA,WAAA,GAAA;QAEE,IAAA,CAAA,SAAS,GAAkC,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QACrE,IAAA,CAAA,aAAa,GAA2D,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAClG,IAAA,CAAA,QAAQ,GAA6B,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QAChE,IAAA,CAAA,SAAS,GAA6B,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QACjE,IAAA,CAAA,UAAU,GAA6B,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QAClE,IAAA,CAAA,UAAU,GAA6B,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QAClE,IAAA,CAAA,SAAS,GAAmC,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QACpE,IAAA,CAAA,OAAO,GAAsC,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QACrE,IAAA,CAAA,gBAAgB,GAA6B,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;KAexE;AAbC,IAAA,eAAe,CAAC,EAAsB,EAAA;AACrC,QAAA,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;KACjC;;AAED,IAAA,qBAAqB,CAAC,UAA8B,EAAA;AACnD,QAAA,OAAO,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;KAC/B;;AAED,IAAA,0BAA0B,CAAC,UAA8B,EAAA;AACxD,QAAA,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;KACjC;;IAED,QAAQ,CAAC,MAAc,EAAA,GAAI;;;sIAvBhB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,mBAAA,sBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cADT,MAAM,EAAA,CAAA,CAAA;2FACnB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;ACLlC;;AAEG;MAOU,yBAAyB,CAAA;;yIAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;0IAAzB,yBAAyB,EAAA,CAAA,CAAA;AAAzB,mBAAA,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,EALzB,SAAA,EAAA;AACT,QAAA,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,sBAAsB,EAAE;AACpE,QAAA,EAAE,OAAO,EAAE,mCAAmC,EAAE,WAAW,EAAE,wBAAwB,EAAE;AACxF,KAAA,EAAA,CAAA,CAAA;2FAEU,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBANrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,SAAS,EAAE;AACT,wBAAA,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,sBAAsB,EAAE;AACpE,wBAAA,EAAE,OAAO,EAAE,mCAAmC,EAAE,WAAW,EAAE,wBAAwB,EAAE;AACxF,qBAAA;iBACF,CAAA;;;AClBD;;AAEG;;;;"}
|
@@ -3,15 +3,15 @@ import { Injectable, Inject, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1$1 from '@ngrx/effects';
|
4
4
|
import { createEffect, ofType, EffectsModule } from '@ngrx/effects';
|
5
5
|
import * as i1 from '@ngrx/store';
|
6
|
-
import { createFeatureSelector, createSelector, defaultMemoize, select, StoreModule } from '@ngrx/store';
|
7
|
-
import { getDaffProductSelectors, DaffProductGridLoadSuccess, DaffProductStateModule } from '@daffodil/product/state';
|
6
|
+
import { createFeatureSelector, createSelector, defaultMemoize, select, StoreModule, combineReducers } from '@ngrx/store';
|
7
|
+
import { getDaffProductSelectors, DaffProductGridLoadSuccess, DaffProductStateModule, daffProductReducerInitialState, daffProductProvideExtraReducers } from '@daffodil/product/state';
|
8
8
|
import { asyncScheduler, of } from 'rxjs';
|
9
9
|
import { withLatestFrom, map, throttleTime, switchMap, catchError, mergeMap } from 'rxjs/operators';
|
10
10
|
import { DaffCategoryRequestKind, DAFF_CATEGORY_ERROR_MATCHER } from '@daffodil/category';
|
11
11
|
import { DaffCategoryDriver } from '@daffodil/category/driver';
|
12
12
|
import { daffToggleRequestOnFilters, daffRemoveRequestsFromFilters, daffClearFilters, daffApplyRequestsToFilters, daffFiltersToRequests } from '@daffodil/core';
|
13
13
|
import { createEntityAdapter } from '@ngrx/entity';
|
14
|
-
import { daffCollectionReducerInitialState, getCollectionStateAdapter, daffCollectionSelectorFactory, DaffCollectionFacade } from '@daffodil/core/state';
|
14
|
+
import { daffOperationInitialState, daffOperationFailed, daffCompleteOperation, daffStartMutation, daffStartResolution, daffCollectionReducerInitialState, getCollectionStateAdapter, daffOperationStateSelectorFactory, daffCollectionSelectorFactory, DaffCollectionFacade, daffIdentityReducer } from '@daffodil/core/state';
|
15
15
|
|
16
16
|
/**
|
17
17
|
* The possible types of category page filter actions.
|
@@ -246,13 +246,7 @@ function daffCategoryEntitiesReducer(state = daffCategoryEntitiesAdapter().getIn
|
|
246
246
|
}
|
247
247
|
}
|
248
248
|
|
249
|
-
const initialState$1 = {
|
250
|
-
daffState: "Stable" /* Stable */,
|
251
|
-
categoryLoading: false,
|
252
|
-
productsLoading: false,
|
253
|
-
errors: [],
|
254
|
-
id: null,
|
255
|
-
};
|
249
|
+
const initialState$1 = Object.assign(Object.assign({}, daffOperationInitialState), { id: null });
|
256
250
|
/**
|
257
251
|
* Returns the state for category data except for category entities.
|
258
252
|
*/
|
@@ -260,7 +254,7 @@ function daffCategoryReducer(state = initialState$1, action) {
|
|
260
254
|
switch (action.type) {
|
261
255
|
case DaffCategoryPageActionTypes.CategoryPageLoadAction:
|
262
256
|
case DaffCategoryPageActionTypes.CategoryPageLoadByUrlAction:
|
263
|
-
return
|
257
|
+
return daffStartResolution(state);
|
264
258
|
case DaffCategoryPageProductCollectionActionTypes.CategoryPageChangeSizeAction:
|
265
259
|
case DaffCategoryPageProductCollectionActionTypes.CategoryPageChangeCurrentPageAction:
|
266
260
|
case DaffCategoryPageProductCollectionActionTypes.CategoryPageChangeSortingOptionAction:
|
@@ -270,11 +264,11 @@ function daffCategoryReducer(state = initialState$1, action) {
|
|
270
264
|
case DaffCategoryPageProductCollectionActionTypes.CategoryPageClearFiltersAction:
|
271
265
|
case DaffCategoryPageProductCollectionActionTypes.CategoryPageRemoveFiltersAction:
|
272
266
|
case DaffCategoryPageProductCollectionActionTypes.CategoryPageToggleFilterAction:
|
273
|
-
return
|
267
|
+
return daffStartMutation(state);
|
274
268
|
case DaffCategoryPageActionTypes.CategoryPageLoadSuccessAction:
|
275
|
-
return Object.assign(Object.assign({}, state), {
|
269
|
+
return Object.assign(Object.assign({}, daffCompleteOperation(state)), { id: action.response.category.id });
|
276
270
|
case DaffCategoryPageActionTypes.CategoryPageLoadFailureAction:
|
277
|
-
return
|
271
|
+
return daffOperationFailed([action.errorMessage], state);
|
278
272
|
default:
|
279
273
|
return state;
|
280
274
|
}
|
@@ -380,25 +374,11 @@ const createCategoryPageSelectors = () => {
|
|
380
374
|
const selectCategoryPageMetadata = createSelector(selectCategoryFeatureState, (state) => state.pageMetadata);
|
381
375
|
const selectCategoryPageProductIds = createSelector(selectCategoryPageMetadata, (state) => state.ids);
|
382
376
|
const selectIsCategoryPageEmpty = createSelector(selectCategoryPageProductIds, (state) => !state.length);
|
383
|
-
const selectCategoryPageState = createSelector(selectCategoryState, (state) => state.daffState);
|
384
377
|
const selectCurrentCategoryId = createSelector(selectCategoryState, (state) => state.id);
|
385
|
-
|
386
|
-
const selectCategoryProductsLoading = createSelector(selectCategoryState, (state) => state.productsLoading);
|
387
|
-
const selectCategoryErrors = createSelector(selectCategoryState, (state) => state.errors);
|
388
|
-
const selectIsCategoryPageMutating = createSelector(selectCategoryPageState, (daffState) => daffState === "Mutating" /* Mutating */);
|
389
|
-
const selectIsCategoryPageResolving = createSelector(selectCategoryPageState, (daffState) => daffState === "Resolving" /* Resolving */);
|
390
|
-
return {
|
391
|
-
selectCategoryState,
|
378
|
+
return Object.assign(Object.assign({}, daffOperationStateSelectorFactory(selectCategoryState)), { selectCategoryState,
|
392
379
|
selectCategoryPageProductIds,
|
393
380
|
selectIsCategoryPageEmpty,
|
394
|
-
|
395
|
-
selectCurrentCategoryId,
|
396
|
-
selectCategoryLoading,
|
397
|
-
selectCategoryProductsLoading,
|
398
|
-
selectCategoryErrors,
|
399
|
-
selectIsCategoryPageMutating,
|
400
|
-
selectIsCategoryPageResolving,
|
401
|
-
};
|
381
|
+
selectCurrentCategoryId });
|
402
382
|
};
|
403
383
|
/**
|
404
384
|
* A function that returns all selectors related to the category page metadata, category loading, and errors.
|
@@ -460,12 +440,12 @@ class DaffCategoryFacade {
|
|
460
440
|
this.categorySelectors = getDaffCategorySelectors();
|
461
441
|
this.category$ = this.store.pipe(select(this.categorySelectors.selectCurrentCategory));
|
462
442
|
this.products$ = this.store.pipe(select(this.categorySelectors.selectCategoryPageProducts));
|
463
|
-
this.
|
464
|
-
this.
|
465
|
-
this.
|
466
|
-
this.
|
467
|
-
this.
|
468
|
-
this.
|
443
|
+
this.loadingState$ = this.store.pipe(select(this.categorySelectors.selectLoadingState));
|
444
|
+
this.loading$ = this.store.pipe(select(this.categorySelectors.selectLoading));
|
445
|
+
this.mutating$ = this.store.pipe(select(this.categorySelectors.selectMutating));
|
446
|
+
this.resolving$ = this.store.pipe(select(this.categorySelectors.selectResolving));
|
447
|
+
this.errors$ = this.store.pipe(select(this.categorySelectors.selectErrors));
|
448
|
+
this.hasErrors$ = this.store.pipe(select(this.categorySelectors.selectHasErrors));
|
469
449
|
this.isCategoryEmpty$ = this.store.pipe(select(this.categorySelectors.selectIsCategoryPageEmpty));
|
470
450
|
}
|
471
451
|
getCategoryById(id) {
|
@@ -633,9 +613,66 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
|
|
633
613
|
}]
|
634
614
|
}] });
|
635
615
|
|
616
|
+
/**
|
617
|
+
* Modifies product state for category actions.
|
618
|
+
*/
|
619
|
+
function daffCategoryProductReducer(state = daffProductReducerInitialState, action) {
|
620
|
+
switch (action.type) {
|
621
|
+
case DaffCategoryPageActionTypes.CategoryPageLoadAction:
|
622
|
+
case DaffCategoryPageActionTypes.CategoryPageLoadByUrlAction:
|
623
|
+
return daffStartResolution(state);
|
624
|
+
case DaffCategoryPageProductCollectionActionTypes.CategoryPageChangeSizeAction:
|
625
|
+
case DaffCategoryPageProductCollectionActionTypes.CategoryPageChangeCurrentPageAction:
|
626
|
+
case DaffCategoryPageProductCollectionActionTypes.CategoryPageChangeSortingOptionAction:
|
627
|
+
case DaffCategoryPageProductCollectionActionTypes.CategoryPageChangeFiltersAction:
|
628
|
+
case DaffCategoryPageProductCollectionActionTypes.CategoryPageReplaceFiltersAction:
|
629
|
+
case DaffCategoryPageProductCollectionActionTypes.CategoryPageApplyFiltersAction:
|
630
|
+
case DaffCategoryPageProductCollectionActionTypes.CategoryPageClearFiltersAction:
|
631
|
+
case DaffCategoryPageProductCollectionActionTypes.CategoryPageRemoveFiltersAction:
|
632
|
+
case DaffCategoryPageProductCollectionActionTypes.CategoryPageToggleFilterAction:
|
633
|
+
return daffStartMutation(state);
|
634
|
+
case DaffCategoryPageActionTypes.CategoryPageLoadSuccessAction:
|
635
|
+
case DaffCategoryPageActionTypes.CategoryPageLoadFailureAction:
|
636
|
+
return daffCompleteOperation(state);
|
637
|
+
default:
|
638
|
+
return state;
|
639
|
+
}
|
640
|
+
}
|
641
|
+
|
642
|
+
const daffCategoryProductReducers = {
|
643
|
+
product: daffCategoryProductReducer,
|
644
|
+
productGrid: daffIdentityReducer,
|
645
|
+
products: daffIdentityReducer,
|
646
|
+
bestSellers: daffIdentityReducer,
|
647
|
+
};
|
648
|
+
|
649
|
+
/**
|
650
|
+
* A module that provides injectable reducers into product state.
|
651
|
+
*/
|
652
|
+
class DaffCategoryProductStateModule {
|
653
|
+
}
|
654
|
+
/** @nocollapse */ DaffCategoryProductStateModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryProductStateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
655
|
+
/** @nocollapse */ DaffCategoryProductStateModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryProductStateModule, imports: [DaffProductStateModule] });
|
656
|
+
/** @nocollapse */ DaffCategoryProductStateModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryProductStateModule, providers: [
|
657
|
+
...daffProductProvideExtraReducers(combineReducers(daffCategoryProductReducers)),
|
658
|
+
], imports: [[
|
659
|
+
DaffProductStateModule,
|
660
|
+
]] });
|
661
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryProductStateModule, decorators: [{
|
662
|
+
type: NgModule,
|
663
|
+
args: [{
|
664
|
+
imports: [
|
665
|
+
DaffProductStateModule,
|
666
|
+
],
|
667
|
+
providers: [
|
668
|
+
...daffProductProvideExtraReducers(combineReducers(daffCategoryProductReducers)),
|
669
|
+
],
|
670
|
+
}]
|
671
|
+
}] });
|
672
|
+
|
636
673
|
/**
|
637
674
|
* Generated bundle index. Do not edit.
|
638
675
|
*/
|
639
676
|
|
640
|
-
export { DAFF_CATEGORY_STORE_FEATURE_KEY, DaffCategoryActionTypes, DaffCategoryFacade, DaffCategoryLoad, DaffCategoryLoadFailure, DaffCategoryLoadSuccess, DaffCategoryPageActionTypes, DaffCategoryPageApplyFilters, DaffCategoryPageChangeCurrentPage, DaffCategoryPageChangeFilters, DaffCategoryPageChangePageSize, DaffCategoryPageChangeSortingOption, DaffCategoryPageClearFilters, DaffCategoryPageLoad, DaffCategoryPageLoadByUrl, DaffCategoryPageLoadFailure, DaffCategoryPageLoadSuccess, DaffCategoryPageProductCollectionActionTypes, DaffCategoryPageRemoveFilters, DaffCategoryPageReplaceFilters, DaffCategoryPageToggleFilter, DaffCategoryProductCollectionFacade, DaffCategoryStateModule, daffCategoryEntitiesReducer, daffCategoryPageMetadataReducer, daffCategoryReducer, daffCategoryReducers, getDaffCategorySelectors };
|
677
|
+
export { DAFF_CATEGORY_STORE_FEATURE_KEY, DaffCategoryActionTypes, DaffCategoryFacade, DaffCategoryLoad, DaffCategoryLoadFailure, DaffCategoryLoadSuccess, DaffCategoryPageActionTypes, DaffCategoryPageApplyFilters, DaffCategoryPageChangeCurrentPage, DaffCategoryPageChangeFilters, DaffCategoryPageChangePageSize, DaffCategoryPageChangeSortingOption, DaffCategoryPageClearFilters, DaffCategoryPageLoad, DaffCategoryPageLoadByUrl, DaffCategoryPageLoadFailure, DaffCategoryPageLoadSuccess, DaffCategoryPageProductCollectionActionTypes, DaffCategoryPageRemoveFilters, DaffCategoryPageReplaceFilters, DaffCategoryPageToggleFilter, DaffCategoryProductCollectionFacade, DaffCategoryProductStateModule, DaffCategoryStateModule, daffCategoryEntitiesReducer, daffCategoryPageMetadataReducer, daffCategoryReducer, daffCategoryReducers, getDaffCategorySelectors };
|
641
678
|
//# sourceMappingURL=daffodil-category-state.mjs.map
|