@daffodil/category 0.43.1 → 0.45.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/driver/magento/models/complete-category-response.d.ts +3 -0
- package/esm2020/driver/in-memory/backend/category.service.mjs +3 -3
- package/esm2020/driver/in-memory/drivers/category-driver.module.mjs +4 -4
- package/esm2020/driver/in-memory/drivers/category.service.mjs +3 -3
- package/esm2020/driver/magento/category-driver.module.mjs +4 -4
- package/esm2020/driver/magento/category.service.mjs +8 -6
- package/esm2020/driver/magento/models/complete-category-response.mjs +1 -1
- package/esm2020/driver/magento/testing/factories/category.factory.mjs +3 -3
- package/esm2020/driver/magento/transformers/applied-filter-transformer.service.mjs +3 -3
- package/esm2020/driver/magento/transformers/category-page-config-transformer.service.mjs +4 -4
- package/esm2020/driver/magento/transformers/category-response-transform.service.mjs +3 -3
- package/esm2020/driver/magento/transformers/category-transformer.service.mjs +3 -3
- package/esm2020/driver/testing/drivers/category-driver.module.mjs +4 -4
- package/esm2020/driver/testing/drivers/category.service.mjs +3 -3
- package/esm2020/routing/effects/collection-route.effects.mjs +21 -0
- package/esm2020/routing/injection-tokens/public_api.mjs +2 -0
- package/esm2020/routing/injection-tokens/request/builder.token.mjs +8 -0
- package/esm2020/routing/injection-tokens/request/builders.token.mjs +30 -0
- package/esm2020/routing/module.mjs +72 -0
- package/esm2020/routing/public_api.mjs +3 -1
- package/esm2020/routing/resolvers/category-page/category-page.resolver.mjs +4 -7
- package/esm2020/routing/resolvers/category-page-id/category-page-id.resolver.mjs +11 -8
- package/esm2020/routing/resolvers/category-page-url/category-page-url.resolver.mjs +11 -13
- package/esm2020/state/actions/category-page-filter.actions.mjs +52 -16
- package/esm2020/state/actions/category-page.actions.mjs +1 -37
- package/esm2020/state/category-state.module.mjs +4 -4
- package/esm2020/state/effects/category-page-filter.effects.mjs +8 -8
- package/esm2020/state/effects/category-page.effects.mjs +7 -6
- package/esm2020/state/effects/category.effects.mjs +3 -3
- package/esm2020/state/facades/collection/facade.mjs +20 -0
- package/esm2020/state/facades/page/category-facade.interface.mjs +2 -0
- package/esm2020/state/facades/page/category.facade.mjs +52 -0
- package/esm2020/state/facades/public_api.mjs +3 -0
- package/esm2020/state/public_api.mjs +2 -2
- package/esm2020/state/reducers/category/category-reducer-state.interface.mjs +1 -1
- package/esm2020/state/reducers/category/category.reducer.mjs +14 -114
- package/esm2020/state/reducers/category-reducers.interface.mjs +1 -1
- package/esm2020/state/reducers/category-reducers.mjs +3 -1
- package/esm2020/state/reducers/page-metadata/reducer.mjs +57 -0
- package/esm2020/state/reducers/page-metadata/state.interface.mjs +2 -0
- package/esm2020/state/reducers/public_api.mjs +2 -1
- package/esm2020/state/selectors/category-page/category-page.selector.mjs +3 -23
- package/esm2020/state/selectors/category.selector.mjs +3 -1
- package/esm2020/state/selectors/collection/selectors.mjs +10 -0
- package/esm2020/state/testing/category-testing.module.mjs +8 -5
- package/esm2020/state/testing/mock-category-facade.mjs +3 -13
- package/esm2020/testing/factories/category-page-metadata.factory.mjs +3 -3
- package/esm2020/testing/factories/category.factory.mjs +3 -3
- package/fesm2015/daffodil-category-driver-in-memory.mjs +7 -7
- package/fesm2015/daffodil-category-driver-in-memory.mjs.map +1 -1
- package/fesm2015/daffodil-category-driver-magento-testing.mjs +2 -2
- package/fesm2015/daffodil-category-driver-magento-testing.mjs.map +1 -1
- package/fesm2015/daffodil-category-driver-magento.mjs +19 -17
- package/fesm2015/daffodil-category-driver-magento.mjs.map +1 -1
- package/fesm2015/daffodil-category-driver-testing.mjs +5 -5
- package/fesm2015/daffodil-category-driver-testing.mjs.map +1 -1
- package/fesm2015/daffodil-category-routing.mjs +140 -33
- package/fesm2015/daffodil-category-routing.mjs.map +1 -1
- package/fesm2015/daffodil-category-state-testing.mjs +9 -16
- package/fesm2015/daffodil-category-state-testing.mjs.map +1 -1
- package/fesm2015/daffodil-category-state.mjs +221 -218
- package/fesm2015/daffodil-category-state.mjs.map +1 -1
- package/fesm2015/daffodil-category-testing.mjs +4 -4
- package/fesm2015/daffodil-category-testing.mjs.map +1 -1
- package/fesm2020/daffodil-category-driver-in-memory.mjs +7 -7
- package/fesm2020/daffodil-category-driver-in-memory.mjs.map +1 -1
- package/fesm2020/daffodil-category-driver-magento-testing.mjs +2 -2
- package/fesm2020/daffodil-category-driver-magento-testing.mjs.map +1 -1
- package/fesm2020/daffodil-category-driver-magento.mjs +19 -17
- package/fesm2020/daffodil-category-driver-magento.mjs.map +1 -1
- package/fesm2020/daffodil-category-driver-testing.mjs +5 -5
- package/fesm2020/daffodil-category-driver-testing.mjs.map +1 -1
- package/fesm2020/daffodil-category-routing.mjs +140 -29
- package/fesm2020/daffodil-category-routing.mjs.map +1 -1
- package/fesm2020/daffodil-category-state-testing.mjs +9 -16
- package/fesm2020/daffodil-category-state-testing.mjs.map +1 -1
- package/fesm2020/daffodil-category-state.mjs +224 -288
- package/fesm2020/daffodil-category-state.mjs.map +1 -1
- package/fesm2020/daffodil-category-testing.mjs +4 -4
- package/fesm2020/daffodil-category-testing.mjs.map +1 -1
- package/package.json +4 -4
- package/routing/effects/collection-route.effects.d.ts +10 -0
- package/routing/injection-tokens/public_api.d.ts +1 -0
- package/routing/injection-tokens/request/builder.token.d.ts +6 -0
- package/routing/injection-tokens/request/builders.token.d.ts +26 -0
- package/routing/module.d.ts +8 -0
- package/routing/public_api.d.ts +2 -0
- package/routing/resolvers/category-page-id/category-page-id.resolver.d.ts +3 -1
- package/routing/resolvers/category-page-url/category-page-url.resolver.d.ts +3 -3
- package/state/actions/category-page-filter.actions.d.ts +49 -9
- package/state/actions/category-page.actions.d.ts +3 -42
- package/state/effects/category-page-filter.effects.d.ts +2 -2
- package/state/facades/collection/facade.d.ts +9 -0
- package/state/facades/{category-facade.interface.d.ts → page/category-facade.interface.d.ts} +3 -44
- package/state/facades/{category.facade.d.ts → page/category.facade.d.ts} +3 -14
- package/state/facades/public_api.d.ts +3 -0
- package/state/public_api.d.ts +1 -2
- package/state/reducers/category/category-reducer-state.interface.d.ts +5 -5
- package/state/reducers/category/category.reducer.d.ts +2 -2
- package/state/reducers/category-reducers.interface.d.ts +5 -0
- package/state/reducers/page-metadata/reducer.d.ts +11 -0
- package/state/reducers/page-metadata/state.interface.d.ts +2 -0
- package/state/reducers/public_api.d.ts +2 -0
- package/state/selectors/category-page/category-page.selector.d.ts +0 -42
- package/state/selectors/category.selector.d.ts +2 -1
- package/state/selectors/collection/selectors.d.ts +5 -0
- package/state/testing/mock-category-facade.d.ts +2 -13
- package/esm2020/state/facades/category-facade.interface.mjs +0 -2
- package/esm2020/state/facades/category.facade.mjs +0 -62
- package/esm2020/state/reducers/category/pure/build-metadata-from-request.mjs +0 -13
- package/state/reducers/category/pure/build-metadata-from-request.d.ts +0 -2
@@ -1,19 +1,129 @@
|
|
1
1
|
import * as i0 from '@angular/core';
|
2
2
|
import { Injectable, Inject, NgModule } from '@angular/core';
|
3
|
-
import * as i1 from '@ngrx/store';
|
4
|
-
import { createFeatureSelector, createSelector, defaultMemoize, select, StoreModule } from '@ngrx/store';
|
5
|
-
import { getDaffProductSelectors, DaffProductGridLoadSuccess, DaffProductStateModule } from '@daffodil/product/state';
|
6
|
-
import { createEntityAdapter } from '@ngrx/entity';
|
7
|
-
import { daffToggleRequestOnFilters, daffRemoveRequestsFromFilters, daffClearFilters, daffApplyRequestsToFilters, daffProductComputeAppliedFilters, daffProductFiltersToRequests } from '@daffodil/product';
|
8
3
|
import * as i1$1 from '@ngrx/effects';
|
9
4
|
import { createEffect, ofType, EffectsModule } from '@ngrx/effects';
|
5
|
+
import * as i1 from '@ngrx/store';
|
6
|
+
import { createFeatureSelector, createSelector, defaultMemoize, select, StoreModule } from '@ngrx/store';
|
7
|
+
import { daffProductCollectionReducerInitialState, getProductCollectionStateAdapter, daffProductCollectionSelectorFactory, getDaffProductSelectors, DaffProductCollectionFacade, DaffProductGridLoadSuccess, DaffProductStateModule } from '@daffodil/product/state';
|
10
8
|
import { asyncScheduler, of } from 'rxjs';
|
11
9
|
import { withLatestFrom, map, throttleTime, switchMap, catchError, mergeMap } from 'rxjs/operators';
|
12
10
|
import { DaffCategoryRequestKind, DAFF_CATEGORY_ERROR_MATCHER } from '@daffodil/category';
|
13
11
|
import { DaffCategoryDriver } from '@daffodil/category/driver';
|
12
|
+
import { daffToggleRequestOnFilters, daffRemoveRequestsFromFilters, daffClearFilters, daffApplyRequestsToFilters, daffProductFiltersToRequests } from '@daffodil/product';
|
13
|
+
import { createEntityAdapter } from '@ngrx/entity';
|
14
14
|
|
15
|
-
|
16
|
-
|
15
|
+
/**
|
16
|
+
* The possible types of category page filter actions.
|
17
|
+
*/
|
18
|
+
var DaffCategoryPageProductCollectionActionTypes;
|
19
|
+
(function (DaffCategoryPageProductCollectionActionTypes) {
|
20
|
+
DaffCategoryPageProductCollectionActionTypes["CategoryPageChangeFiltersAction"] = "[@daffodil/category] Category Page Change Filters Action";
|
21
|
+
DaffCategoryPageProductCollectionActionTypes["CategoryPageReplaceFiltersAction"] = "[@daffodil/category] Category Page Replace Filters Action";
|
22
|
+
DaffCategoryPageProductCollectionActionTypes["CategoryPageApplyFiltersAction"] = "[@daffodil/category] Category Page Apply Filters Action";
|
23
|
+
DaffCategoryPageProductCollectionActionTypes["CategoryPageRemoveFiltersAction"] = "[@daffodil/category] Category Page Remove Filters Action";
|
24
|
+
DaffCategoryPageProductCollectionActionTypes["CategoryPageClearFiltersAction"] = "[@daffodil/category] Category Page Clear Filters Action";
|
25
|
+
DaffCategoryPageProductCollectionActionTypes["CategoryPageToggleFilterAction"] = "[@daffodil/category] Category Page Toggle Filter Action";
|
26
|
+
DaffCategoryPageProductCollectionActionTypes["CategoryPageChangeSizeAction"] = "[@daffodil/category] Category Page Change Size Action";
|
27
|
+
DaffCategoryPageProductCollectionActionTypes["CategoryPageChangeCurrentPageAction"] = "[@daffodil/category] Category Page Change Current Page Action";
|
28
|
+
DaffCategoryPageProductCollectionActionTypes["CategoryPageChangeSortingOptionAction"] = "[@daffodil/category] Category Page Change Sorting Option Action";
|
29
|
+
})(DaffCategoryPageProductCollectionActionTypes || (DaffCategoryPageProductCollectionActionTypes = {}));
|
30
|
+
/**
|
31
|
+
* An action for changing the filters for the current category.
|
32
|
+
*
|
33
|
+
* @param filters - Filters to be changed on the current category.
|
34
|
+
* @deprecated use {@link DaffCategoryPageReplaceFilters} or {@link DaffCategoryPageApplyFilters}
|
35
|
+
*/
|
36
|
+
class DaffCategoryPageChangeFilters {
|
37
|
+
constructor(filters) {
|
38
|
+
this.filters = filters;
|
39
|
+
this.type = DaffCategoryPageProductCollectionActionTypes.CategoryPageChangeFiltersAction;
|
40
|
+
}
|
41
|
+
}
|
42
|
+
/**
|
43
|
+
* An action for replacing the filters for the current category.
|
44
|
+
* All existing filters will be removed and the specified filters will be applied.
|
45
|
+
*
|
46
|
+
* @param filters - Filters to be set on the current category.
|
47
|
+
*/
|
48
|
+
class DaffCategoryPageReplaceFilters {
|
49
|
+
constructor(filters) {
|
50
|
+
this.filters = filters;
|
51
|
+
this.type = DaffCategoryPageProductCollectionActionTypes.CategoryPageReplaceFiltersAction;
|
52
|
+
}
|
53
|
+
}
|
54
|
+
/**
|
55
|
+
* An action for applying the specified filters for the current category.
|
56
|
+
*
|
57
|
+
* @param filters - Filters to be applied to the current category.
|
58
|
+
*/
|
59
|
+
class DaffCategoryPageApplyFilters {
|
60
|
+
constructor(filters) {
|
61
|
+
this.filters = filters;
|
62
|
+
this.type = DaffCategoryPageProductCollectionActionTypes.CategoryPageApplyFiltersAction;
|
63
|
+
}
|
64
|
+
}
|
65
|
+
/**
|
66
|
+
* An action for removing the specified filters for the current category.
|
67
|
+
*
|
68
|
+
* @param filters - Filters to be removed from the current category.
|
69
|
+
*/
|
70
|
+
class DaffCategoryPageRemoveFilters {
|
71
|
+
constructor(filters) {
|
72
|
+
this.filters = filters;
|
73
|
+
this.type = DaffCategoryPageProductCollectionActionTypes.CategoryPageRemoveFiltersAction;
|
74
|
+
}
|
75
|
+
}
|
76
|
+
/**
|
77
|
+
* An action for removing all the filters for the current category.
|
78
|
+
*/
|
79
|
+
class DaffCategoryPageClearFilters {
|
80
|
+
constructor() {
|
81
|
+
this.type = DaffCategoryPageProductCollectionActionTypes.CategoryPageClearFiltersAction;
|
82
|
+
}
|
83
|
+
}
|
84
|
+
/**
|
85
|
+
* An action for toggling a filters for the current category.
|
86
|
+
*
|
87
|
+
* @param filter - Filter to be toggled on the current category.
|
88
|
+
*/
|
89
|
+
class DaffCategoryPageToggleFilter {
|
90
|
+
constructor(filter) {
|
91
|
+
this.filter = filter;
|
92
|
+
this.type = DaffCategoryPageProductCollectionActionTypes.CategoryPageToggleFilterAction;
|
93
|
+
}
|
94
|
+
}
|
95
|
+
/**
|
96
|
+
* An action for changing the number of products shown on each page for the selected category.
|
97
|
+
*
|
98
|
+
* @param pageSize - The number of products per page.
|
99
|
+
*/
|
100
|
+
class DaffCategoryPageChangePageSize {
|
101
|
+
constructor(pageSize) {
|
102
|
+
this.pageSize = pageSize;
|
103
|
+
this.type = DaffCategoryPageProductCollectionActionTypes.CategoryPageChangeSizeAction;
|
104
|
+
}
|
105
|
+
}
|
106
|
+
/**
|
107
|
+
* An action for changing the current page of products for the selected category.
|
108
|
+
*
|
109
|
+
* @param currentPage - The current page of products for the selected category.
|
110
|
+
*/
|
111
|
+
class DaffCategoryPageChangeCurrentPage {
|
112
|
+
constructor(currentPage) {
|
113
|
+
this.currentPage = currentPage;
|
114
|
+
this.type = DaffCategoryPageProductCollectionActionTypes.CategoryPageChangeCurrentPageAction;
|
115
|
+
}
|
116
|
+
}
|
117
|
+
/**
|
118
|
+
* An action for changing the sorting option for the selected category.
|
119
|
+
*
|
120
|
+
* @param sort - The sort option to be applied.
|
121
|
+
*/
|
122
|
+
class DaffCategoryPageChangeSortingOption {
|
123
|
+
constructor(sort) {
|
124
|
+
this.sort = sort;
|
125
|
+
this.type = DaffCategoryPageProductCollectionActionTypes.CategoryPageChangeSortingOptionAction;
|
126
|
+
}
|
17
127
|
}
|
18
128
|
|
19
129
|
/**
|
@@ -25,9 +135,6 @@ var DaffCategoryPageActionTypes;
|
|
25
135
|
DaffCategoryPageActionTypes["CategoryPageLoadByUrlAction"] = "[@daffodil/category] Category Page Load By URL Action";
|
26
136
|
DaffCategoryPageActionTypes["CategoryPageLoadSuccessAction"] = "[@daffodil/category] Category Page Load Success Action";
|
27
137
|
DaffCategoryPageActionTypes["CategoryPageLoadFailureAction"] = "[@daffodil/category] Category Page Load Failure Action";
|
28
|
-
DaffCategoryPageActionTypes["CategoryPageChangeSizeAction"] = "[@daffodil/category] Category Page Change Size Action";
|
29
|
-
DaffCategoryPageActionTypes["CategoryPageChangeCurrentPageAction"] = "[@daffodil/category] Category Page Change Current Page Action";
|
30
|
-
DaffCategoryPageActionTypes["CategoryPageChangeSortingOptionAction"] = "[@daffodil/category] Category Page Change Sorting Option Action";
|
31
138
|
})(DaffCategoryPageActionTypes || (DaffCategoryPageActionTypes = {}));
|
32
139
|
/**
|
33
140
|
* An action triggered to initialize a category page load request.
|
@@ -77,38 +184,9 @@ class DaffCategoryPageLoadFailure {
|
|
77
184
|
this.type = DaffCategoryPageActionTypes.CategoryPageLoadFailureAction;
|
78
185
|
}
|
79
186
|
}
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
* @param pageSize - The number of products per page.
|
84
|
-
*/
|
85
|
-
class DaffCategoryPageChangePageSize {
|
86
|
-
constructor(pageSize) {
|
87
|
-
this.pageSize = pageSize;
|
88
|
-
this.type = DaffCategoryPageActionTypes.CategoryPageChangeSizeAction;
|
89
|
-
}
|
90
|
-
}
|
91
|
-
/**
|
92
|
-
* An action for changing the current page of products for the selected category.
|
93
|
-
*
|
94
|
-
* @param currentPage - The current page of products for the selected category.
|
95
|
-
*/
|
96
|
-
class DaffCategoryPageChangeCurrentPage {
|
97
|
-
constructor(currentPage) {
|
98
|
-
this.currentPage = currentPage;
|
99
|
-
this.type = DaffCategoryPageActionTypes.CategoryPageChangeCurrentPageAction;
|
100
|
-
}
|
101
|
-
}
|
102
|
-
/**
|
103
|
-
* An action for changing the sorting option for the selected category.
|
104
|
-
*
|
105
|
-
* @param sort - The sort option to be applied.
|
106
|
-
*/
|
107
|
-
class DaffCategoryPageChangeSortingOption {
|
108
|
-
constructor(sort) {
|
109
|
-
this.sort = sort;
|
110
|
-
this.type = DaffCategoryPageActionTypes.CategoryPageChangeSortingOptionAction;
|
111
|
-
}
|
187
|
+
|
188
|
+
function daffCategoryEntitiesAdapter() {
|
189
|
+
return createEntityAdapter();
|
112
190
|
}
|
113
191
|
|
114
192
|
/**
|
@@ -167,145 +245,33 @@ function daffCategoryEntitiesReducer(state = daffCategoryEntitiesAdapter().getIn
|
|
167
245
|
}
|
168
246
|
}
|
169
247
|
|
170
|
-
|
171
|
-
* The possible types of category page filter actions.
|
172
|
-
*/
|
173
|
-
var DaffCategoryPageFilterActionTypes;
|
174
|
-
(function (DaffCategoryPageFilterActionTypes) {
|
175
|
-
DaffCategoryPageFilterActionTypes["CategoryPageChangeFiltersAction"] = "[@daffodil/category] Category Page Change Filters Action";
|
176
|
-
DaffCategoryPageFilterActionTypes["CategoryPageReplaceFiltersAction"] = "[@daffodil/category] Category Page Replace Filters Action";
|
177
|
-
DaffCategoryPageFilterActionTypes["CategoryPageApplyFiltersAction"] = "[@daffodil/category] Category Page Apply Filters Action";
|
178
|
-
DaffCategoryPageFilterActionTypes["CategoryPageRemoveFiltersAction"] = "[@daffodil/category] Category Page Remove Filters Action";
|
179
|
-
DaffCategoryPageFilterActionTypes["CategoryPageClearFiltersAction"] = "[@daffodil/category] Category Page Clear Filters Action";
|
180
|
-
DaffCategoryPageFilterActionTypes["CategoryPageToggleFilterAction"] = "[@daffodil/category] Category Page Toggle Filter Action";
|
181
|
-
})(DaffCategoryPageFilterActionTypes || (DaffCategoryPageFilterActionTypes = {}));
|
182
|
-
/**
|
183
|
-
* An action for changing the filters for the current category.
|
184
|
-
*
|
185
|
-
* @param filters - Filters to be changed on the current category.
|
186
|
-
* @deprecated use {@link DaffCategoryPageReplaceFilters} or {@link DaffCategoryPageApplyFilters}
|
187
|
-
*/
|
188
|
-
class DaffCategoryPageChangeFilters {
|
189
|
-
constructor(filters) {
|
190
|
-
this.filters = filters;
|
191
|
-
this.type = DaffCategoryPageFilterActionTypes.CategoryPageChangeFiltersAction;
|
192
|
-
}
|
193
|
-
}
|
194
|
-
/**
|
195
|
-
* An action for replacing the filters for the current category.
|
196
|
-
* All existing filters will be removed and the specified filters will be applied.
|
197
|
-
*
|
198
|
-
* @param filters - Filters to be set on the current category.
|
199
|
-
*/
|
200
|
-
class DaffCategoryPageReplaceFilters {
|
201
|
-
constructor(filters) {
|
202
|
-
this.filters = filters;
|
203
|
-
this.type = DaffCategoryPageFilterActionTypes.CategoryPageReplaceFiltersAction;
|
204
|
-
}
|
205
|
-
}
|
206
|
-
/**
|
207
|
-
* An action for applying the specified filters for the current category.
|
208
|
-
*
|
209
|
-
* @param filters - Filters to be applied to the current category.
|
210
|
-
*/
|
211
|
-
class DaffCategoryPageApplyFilters {
|
212
|
-
constructor(filters) {
|
213
|
-
this.filters = filters;
|
214
|
-
this.type = DaffCategoryPageFilterActionTypes.CategoryPageApplyFiltersAction;
|
215
|
-
}
|
216
|
-
}
|
217
|
-
/**
|
218
|
-
* An action for removing the specified filters for the current category.
|
219
|
-
*
|
220
|
-
* @param filters - Filters to be removed from the current category.
|
221
|
-
*/
|
222
|
-
class DaffCategoryPageRemoveFilters {
|
223
|
-
constructor(filters) {
|
224
|
-
this.filters = filters;
|
225
|
-
this.type = DaffCategoryPageFilterActionTypes.CategoryPageRemoveFiltersAction;
|
226
|
-
}
|
227
|
-
}
|
228
|
-
/**
|
229
|
-
* An action for removing all the filters for the current category.
|
230
|
-
*/
|
231
|
-
class DaffCategoryPageClearFilters {
|
232
|
-
constructor() {
|
233
|
-
this.type = DaffCategoryPageFilterActionTypes.CategoryPageClearFiltersAction;
|
234
|
-
}
|
235
|
-
}
|
236
|
-
/**
|
237
|
-
* An action for toggling a filters for the current category.
|
238
|
-
*
|
239
|
-
* @param filter - Filter to be toggled on the current category.
|
240
|
-
*/
|
241
|
-
class DaffCategoryPageToggleFilter {
|
242
|
-
constructor(filter) {
|
243
|
-
this.filter = filter;
|
244
|
-
this.type = DaffCategoryPageFilterActionTypes.CategoryPageToggleFilterAction;
|
245
|
-
}
|
246
|
-
}
|
247
|
-
|
248
|
-
const allowedMetadataKeys = [
|
249
|
-
'appliedSortOption',
|
250
|
-
'appliedSortDirection',
|
251
|
-
'currentPage',
|
252
|
-
'pageSize',
|
253
|
-
];
|
254
|
-
const buildMetadataFromRequest = (request) => allowedMetadataKeys.reduce((acc, key) => {
|
255
|
-
if (request[key]) {
|
256
|
-
acc[key] = request[key];
|
257
|
-
}
|
258
|
-
return acc;
|
259
|
-
}, {});
|
260
|
-
|
261
|
-
const initialState = {
|
262
|
-
categoryPageMetadata: {
|
263
|
-
id: null,
|
264
|
-
appliedSortOption: null,
|
265
|
-
appliedSortDirection: null,
|
266
|
-
currentPage: null,
|
267
|
-
pageSize: null,
|
268
|
-
totalPages: null,
|
269
|
-
filters: {},
|
270
|
-
sortOptions: {
|
271
|
-
default: null,
|
272
|
-
options: [],
|
273
|
-
},
|
274
|
-
count: null,
|
275
|
-
ids: [],
|
276
|
-
},
|
248
|
+
const initialState$1 = {
|
277
249
|
daffState: "Stable" /* Stable */,
|
278
250
|
categoryLoading: false,
|
279
251
|
productsLoading: false,
|
280
252
|
errors: [],
|
253
|
+
id: null,
|
281
254
|
};
|
282
255
|
/**
|
283
256
|
* Returns the state for category data except for category entities.
|
284
257
|
*/
|
285
|
-
function daffCategoryReducer(state = initialState, action) {
|
258
|
+
function daffCategoryReducer(state = initialState$1, action) {
|
286
259
|
switch (action.type) {
|
287
260
|
case DaffCategoryPageActionTypes.CategoryPageLoadAction:
|
288
261
|
case DaffCategoryPageActionTypes.CategoryPageLoadByUrlAction:
|
289
|
-
return Object.assign(Object.assign({}, state), { categoryLoading: true, productsLoading: true, daffState: "Resolving" /* Resolving */,
|
290
|
-
case
|
291
|
-
|
292
|
-
case
|
293
|
-
|
294
|
-
case
|
295
|
-
|
296
|
-
case
|
297
|
-
case
|
298
|
-
|
299
|
-
|
300
|
-
return Object.assign(Object.assign({}, state), { productsLoading: true, daffState: "Mutating" /* Mutating */, categoryPageMetadata: Object.assign(Object.assign({}, state.categoryPageMetadata), { filters: daffApplyRequestsToFilters(action.filters, state.categoryPageMetadata.filters) }) });
|
301
|
-
case DaffCategoryPageFilterActionTypes.CategoryPageClearFiltersAction:
|
302
|
-
return Object.assign(Object.assign({}, state), { productsLoading: true, daffState: "Mutating" /* Mutating */, categoryPageMetadata: Object.assign(Object.assign({}, state.categoryPageMetadata), { filters: daffClearFilters(state.categoryPageMetadata.filters) }) });
|
303
|
-
case DaffCategoryPageFilterActionTypes.CategoryPageRemoveFiltersAction:
|
304
|
-
return Object.assign(Object.assign({}, state), { productsLoading: true, daffState: "Mutating" /* Mutating */, categoryPageMetadata: Object.assign(Object.assign({}, state.categoryPageMetadata), { filters: daffRemoveRequestsFromFilters(action.filters, state.categoryPageMetadata.filters) }) });
|
305
|
-
case DaffCategoryPageFilterActionTypes.CategoryPageToggleFilterAction:
|
306
|
-
return Object.assign(Object.assign({}, state), { productsLoading: true, daffState: "Mutating" /* Mutating */, categoryPageMetadata: Object.assign(Object.assign({}, state.categoryPageMetadata), { filters: daffToggleRequestOnFilters(action.filter, state.categoryPageMetadata.filters) }) });
|
262
|
+
return Object.assign(Object.assign({}, state), { categoryLoading: true, productsLoading: true, daffState: "Resolving" /* Resolving */, id: null });
|
263
|
+
case DaffCategoryPageProductCollectionActionTypes.CategoryPageChangeSizeAction:
|
264
|
+
case DaffCategoryPageProductCollectionActionTypes.CategoryPageChangeCurrentPageAction:
|
265
|
+
case DaffCategoryPageProductCollectionActionTypes.CategoryPageChangeSortingOptionAction:
|
266
|
+
case DaffCategoryPageProductCollectionActionTypes.CategoryPageChangeFiltersAction:
|
267
|
+
case DaffCategoryPageProductCollectionActionTypes.CategoryPageReplaceFiltersAction:
|
268
|
+
case DaffCategoryPageProductCollectionActionTypes.CategoryPageApplyFiltersAction:
|
269
|
+
case DaffCategoryPageProductCollectionActionTypes.CategoryPageClearFiltersAction:
|
270
|
+
case DaffCategoryPageProductCollectionActionTypes.CategoryPageRemoveFiltersAction:
|
271
|
+
case DaffCategoryPageProductCollectionActionTypes.CategoryPageToggleFilterAction:
|
272
|
+
return Object.assign(Object.assign({}, state), { productsLoading: true, daffState: "Mutating" /* Mutating */ });
|
307
273
|
case DaffCategoryPageActionTypes.CategoryPageLoadSuccessAction:
|
308
|
-
return Object.assign(Object.assign({}, state), { categoryLoading: false, productsLoading: false, daffState: "Stable" /* Stable */,
|
274
|
+
return Object.assign(Object.assign({}, state), { categoryLoading: false, productsLoading: false, daffState: "Stable" /* Stable */, id: action.response.category.id });
|
309
275
|
case DaffCategoryPageActionTypes.CategoryPageLoadFailureAction:
|
310
276
|
return Object.assign(Object.assign({}, state), { categoryLoading: false, productsLoading: false, errors: [action.errorMessage], daffState: "Stable" /* Stable */ });
|
311
277
|
default:
|
@@ -313,12 +279,57 @@ function daffCategoryReducer(state = initialState, action) {
|
|
313
279
|
}
|
314
280
|
}
|
315
281
|
|
282
|
+
const initialState = Object.assign(Object.assign({}, daffProductCollectionReducerInitialState), { id: null });
|
283
|
+
/**
|
284
|
+
* Returns the state for category data except for category entities.
|
285
|
+
*/
|
286
|
+
function daffCategoryPageMetadataReducer(state = initialState, action) {
|
287
|
+
const adapter = getProductCollectionStateAdapter();
|
288
|
+
switch (action.type) {
|
289
|
+
case DaffCategoryPageActionTypes.CategoryPageLoadAction:
|
290
|
+
case DaffCategoryPageActionTypes.CategoryPageLoadByUrlAction:
|
291
|
+
return Object.assign(Object.assign({}, adapter.storeRequest(action.request, initialState)), { id: null });
|
292
|
+
case DaffCategoryPageProductCollectionActionTypes.CategoryPageChangeSizeAction:
|
293
|
+
return adapter.setPageSize(action.pageSize, state);
|
294
|
+
case DaffCategoryPageProductCollectionActionTypes.CategoryPageChangeCurrentPageAction:
|
295
|
+
return adapter.setCurrentPage(action.currentPage, state);
|
296
|
+
case DaffCategoryPageProductCollectionActionTypes.CategoryPageChangeSortingOptionAction:
|
297
|
+
return adapter.setSort(action.sort.option, action.sort.direction, state);
|
298
|
+
case DaffCategoryPageProductCollectionActionTypes.CategoryPageChangeFiltersAction:
|
299
|
+
case DaffCategoryPageProductCollectionActionTypes.CategoryPageReplaceFiltersAction:
|
300
|
+
return adapter.setFilters(daffApplyRequestsToFilters(action.filters, daffClearFilters(state.filters)), state);
|
301
|
+
case DaffCategoryPageProductCollectionActionTypes.CategoryPageApplyFiltersAction:
|
302
|
+
return adapter.setFilters(daffApplyRequestsToFilters(action.filters, state.filters), state);
|
303
|
+
case DaffCategoryPageProductCollectionActionTypes.CategoryPageClearFiltersAction:
|
304
|
+
return adapter.setFilters(daffClearFilters(state.filters), state);
|
305
|
+
case DaffCategoryPageProductCollectionActionTypes.CategoryPageRemoveFiltersAction:
|
306
|
+
return adapter.setFilters(daffRemoveRequestsFromFilters(action.filters, state.filters), state);
|
307
|
+
case DaffCategoryPageProductCollectionActionTypes.CategoryPageToggleFilterAction:
|
308
|
+
return adapter.setFilters(daffToggleRequestOnFilters(action.filter, state.filters), state);
|
309
|
+
case DaffCategoryPageActionTypes.CategoryPageLoadSuccessAction:
|
310
|
+
return Object.assign(Object.assign({}, adapter.setMetadata({
|
311
|
+
currentPage: action.response.categoryPageMetadata.currentPage,
|
312
|
+
pageSize: action.response.categoryPageMetadata.pageSize,
|
313
|
+
filters: action.response.categoryPageMetadata.filters,
|
314
|
+
sortOptions: action.response.categoryPageMetadata.sortOptions,
|
315
|
+
totalPages: action.response.categoryPageMetadata.totalPages,
|
316
|
+
count: action.response.categoryPageMetadata.count,
|
317
|
+
ids: action.response.categoryPageMetadata.ids,
|
318
|
+
appliedSortOption: action.response.categoryPageMetadata.appliedSortOption || action.response.categoryPageMetadata.sortOptions.default,
|
319
|
+
appliedSortDirection: action.response.categoryPageMetadata.appliedSortDirection,
|
320
|
+
}, state)), { id: action.response.categoryPageMetadata.id });
|
321
|
+
default:
|
322
|
+
return state;
|
323
|
+
}
|
324
|
+
}
|
325
|
+
|
316
326
|
/**
|
317
327
|
* All daffodil defined category reducers.
|
318
328
|
*/
|
319
329
|
const daffCategoryReducers = {
|
320
330
|
category: daffCategoryReducer,
|
321
331
|
categoryEntities: daffCategoryEntitiesReducer,
|
332
|
+
pageMetadata: daffCategoryPageMetadataReducer,
|
322
333
|
};
|
323
334
|
|
324
335
|
/**
|
@@ -365,20 +376,11 @@ const getDaffCategoryEntitiesSelectors = (() => {
|
|
365
376
|
const createCategoryPageSelectors = () => {
|
366
377
|
const selectCategoryFeatureState = getDaffCategoryFeatureSelector().selectCategoryFeatureState;
|
367
378
|
const selectCategoryState = createSelector(selectCategoryFeatureState, (state) => state.category);
|
368
|
-
const selectCategoryPageMetadata = createSelector(
|
369
|
-
const selectCategoryCurrentPage = createSelector(selectCategoryPageMetadata, (state) => state.currentPage);
|
370
|
-
const selectCategoryTotalPages = createSelector(selectCategoryPageMetadata, (state) => state.totalPages);
|
371
|
-
const selectCategoryPageSize = createSelector(selectCategoryPageMetadata, (state) => state.pageSize);
|
372
|
-
const selectCategoryFilters = createSelector(selectCategoryPageMetadata, (state) => state.filters);
|
373
|
-
const selectCategorySortOptions = createSelector(selectCategoryPageMetadata, (state) => state.sortOptions.options);
|
379
|
+
const selectCategoryPageMetadata = createSelector(selectCategoryFeatureState, (state) => state.pageMetadata);
|
374
380
|
const selectCategoryPageProductIds = createSelector(selectCategoryPageMetadata, (state) => state.ids);
|
375
381
|
const selectIsCategoryPageEmpty = createSelector(selectCategoryPageProductIds, (state) => !state.length);
|
376
|
-
const selectCategoryPageTotalProducts = createSelector(selectCategoryPageMetadata, (state) => state.count);
|
377
|
-
const selectCategoryPageAppliedFilters = createSelector(selectCategoryFilters, (filters) => daffProductComputeAppliedFilters(filters));
|
378
|
-
const selectCategoryPageAppliedSortOption = createSelector(selectCategoryPageMetadata, (state) => state.appliedSortOption);
|
379
|
-
const selectCategoryPageAppliedSortDirection = createSelector(selectCategoryPageMetadata, (state) => state.appliedSortDirection);
|
380
382
|
const selectCategoryPageState = createSelector(selectCategoryState, (state) => state.daffState);
|
381
|
-
const selectCurrentCategoryId = createSelector(
|
383
|
+
const selectCurrentCategoryId = createSelector(selectCategoryState, (state) => state.id);
|
382
384
|
const selectCategoryLoading = createSelector(selectCategoryState, (state) => state.categoryLoading);
|
383
385
|
const selectCategoryProductsLoading = createSelector(selectCategoryState, (state) => state.productsLoading);
|
384
386
|
const selectCategoryErrors = createSelector(selectCategoryState, (state) => state.errors);
|
@@ -386,18 +388,8 @@ const createCategoryPageSelectors = () => {
|
|
386
388
|
const selectIsCategoryPageResolving = createSelector(selectCategoryPageState, (daffState) => daffState === "Resolving" /* Resolving */);
|
387
389
|
return {
|
388
390
|
selectCategoryState,
|
389
|
-
selectCategoryPageMetadata,
|
390
|
-
selectCategoryCurrentPage,
|
391
|
-
selectCategoryTotalPages,
|
392
|
-
selectCategoryPageSize,
|
393
|
-
selectCategoryFilters,
|
394
|
-
selectCategorySortOptions,
|
395
391
|
selectCategoryPageProductIds,
|
396
392
|
selectIsCategoryPageEmpty,
|
397
|
-
selectCategoryPageTotalProducts,
|
398
|
-
selectCategoryPageAppliedFilters,
|
399
|
-
selectCategoryPageAppliedSortOption,
|
400
|
-
selectCategoryPageAppliedSortDirection,
|
401
393
|
selectCategoryPageState,
|
402
394
|
selectCurrentCategoryId,
|
403
395
|
selectCategoryLoading,
|
@@ -418,6 +410,13 @@ const getDaffCategoryPageSelectors = (() => {
|
|
418
410
|
: createCategoryPageSelectors();
|
419
411
|
})();
|
420
412
|
|
413
|
+
const { selectCategoryFeatureState, } = getDaffCategoryFeatureSelector();
|
414
|
+
const selectCategoryProductCollectionState = createSelector(selectCategoryFeatureState, state => state.pageMetadata);
|
415
|
+
const getCategoryProductCollectionSelectors = (() => {
|
416
|
+
let cache;
|
417
|
+
return () => cache = cache || daffProductCollectionSelectorFactory(selectCategoryProductCollectionState);
|
418
|
+
})();
|
419
|
+
|
421
420
|
const createCategorySelectors = () => {
|
422
421
|
const { selectAllProducts, selectProductEntities } = getDaffProductSelectors();
|
423
422
|
const { selectCategoryEntities, } = getDaffCategoryEntitiesSelectors();
|
@@ -432,7 +431,7 @@ const createCategorySelectors = () => {
|
|
432
431
|
? products.filter(product => category.product_ids.indexOf(product.id) >= 0)
|
433
432
|
: [])).memoized;
|
434
433
|
const selectTotalProductsByCategory = defaultMemoize((categoryId) => createSelector(selectProductsByCategory(categoryId), (products) => products.length)).memoized;
|
435
|
-
return Object.assign(Object.assign(Object.assign(Object.assign({}, getDaffCategoryFeatureSelector()), getDaffCategoryEntitiesSelectors()), getDaffCategoryPageSelectors()), { selectCurrentCategory,
|
434
|
+
return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, getDaffCategoryFeatureSelector()), getDaffCategoryEntitiesSelectors()), getDaffCategoryPageSelectors()), getCategoryProductCollectionSelectors()), { selectCurrentCategory,
|
436
435
|
selectCategoryPageProducts,
|
437
436
|
selectCategory,
|
438
437
|
selectProductsByCategory,
|
@@ -460,19 +459,9 @@ class DaffCategoryFacade {
|
|
460
459
|
this.categorySelectors = getDaffCategorySelectors();
|
461
460
|
this.category$ = this.store.pipe(select(this.categorySelectors.selectCurrentCategory));
|
462
461
|
this.products$ = this.store.pipe(select(this.categorySelectors.selectCategoryPageProducts));
|
463
|
-
this.totalProducts$ = this.store.pipe(select(this.categorySelectors.selectCategoryPageTotalProducts));
|
464
|
-
this.metadata$ = this.store.pipe(select(this.categorySelectors.selectCategoryPageMetadata));
|
465
462
|
this.pageLoadingState$ = this.store.pipe(select(this.categorySelectors.selectCategoryPageState));
|
466
463
|
this.isPageMutating$ = this.store.pipe(select(this.categorySelectors.selectIsCategoryPageMutating));
|
467
464
|
this.isPageResolving$ = this.store.pipe(select(this.categorySelectors.selectIsCategoryPageResolving));
|
468
|
-
this.currentPage$ = this.store.pipe(select(this.categorySelectors.selectCategoryCurrentPage));
|
469
|
-
this.totalPages$ = this.store.pipe(select(this.categorySelectors.selectCategoryTotalPages));
|
470
|
-
this.pageSize$ = this.store.pipe(select(this.categorySelectors.selectCategoryPageSize));
|
471
|
-
this.filters$ = this.store.pipe(select(this.categorySelectors.selectCategoryFilters));
|
472
|
-
this.sortOptions$ = this.store.pipe(select(this.categorySelectors.selectCategorySortOptions));
|
473
|
-
this.appliedFilters$ = this.store.pipe(select(this.categorySelectors.selectCategoryPageAppliedFilters));
|
474
|
-
this.appliedSortOption$ = this.store.pipe(select(this.categorySelectors.selectCategoryPageAppliedSortOption));
|
475
|
-
this.appliedSortDirection$ = this.store.pipe(select(this.categorySelectors.selectCategoryPageAppliedSortDirection));
|
476
465
|
this.categoryLoading$ = this.store.pipe(select(this.categorySelectors.selectCategoryLoading));
|
477
466
|
this.productsLoading$ = this.store.pipe(select(this.categorySelectors.selectCategoryProductsLoading));
|
478
467
|
this.errors$ = this.store.pipe(select(this.categorySelectors.selectCategoryErrors));
|
@@ -496,8 +485,8 @@ class DaffCategoryFacade {
|
|
496
485
|
this.store.dispatch(action);
|
497
486
|
}
|
498
487
|
}
|
499
|
-
/** @nocollapse */
|
500
|
-
/** @nocollapse */
|
488
|
+
/** @nocollapse */ DaffCategoryFacade.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryFacade, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable });
|
489
|
+
/** @nocollapse */ DaffCategoryFacade.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryFacade, providedIn: 'root' });
|
501
490
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryFacade, decorators: [{
|
502
491
|
type: Injectable,
|
503
492
|
args: [{
|
@@ -505,6 +494,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
|
|
505
494
|
}]
|
506
495
|
}], ctorParameters: function () { return [{ type: i1.Store }]; } });
|
507
496
|
|
497
|
+
class DaffCategoryProductCollectionFacade extends DaffProductCollectionFacade {
|
498
|
+
constructor(store) {
|
499
|
+
super(store, getCategoryProductCollectionSelectors());
|
500
|
+
}
|
501
|
+
}
|
502
|
+
/** @nocollapse */ DaffCategoryProductCollectionFacade.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryProductCollectionFacade, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable });
|
503
|
+
/** @nocollapse */ DaffCategoryProductCollectionFacade.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryProductCollectionFacade, providedIn: 'root' });
|
504
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryProductCollectionFacade, decorators: [{
|
505
|
+
type: Injectable,
|
506
|
+
args: [{
|
507
|
+
providedIn: 'root',
|
508
|
+
}]
|
509
|
+
}], ctorParameters: function () { return [{ type: i1.Store }]; } });
|
510
|
+
|
508
511
|
class DaffCategoryPageFilterEffects {
|
509
512
|
constructor(actions$, driver, errorMatcher, facade) {
|
510
513
|
this.actions$ = actions$;
|
@@ -519,7 +522,7 @@ class DaffCategoryPageFilterEffects {
|
|
519
522
|
* @param throttleWindow the amount of time to delay when apply/removing filters
|
520
523
|
* in a sequence.
|
521
524
|
*/
|
522
|
-
this.updateFilters$ = createEffect(() => (throttleWindow = 300, scheduler = asyncScheduler) => this.actions$.pipe(ofType(
|
525
|
+
this.updateFilters$ = createEffect(() => (throttleWindow = 300, scheduler = asyncScheduler) => this.actions$.pipe(ofType(DaffCategoryPageProductCollectionActionTypes.CategoryPageChangeFiltersAction, DaffCategoryPageProductCollectionActionTypes.CategoryPageReplaceFiltersAction, DaffCategoryPageProductCollectionActionTypes.CategoryPageApplyFiltersAction, DaffCategoryPageProductCollectionActionTypes.CategoryPageClearFiltersAction, DaffCategoryPageProductCollectionActionTypes.CategoryPageRemoveFiltersAction, DaffCategoryPageProductCollectionActionTypes.CategoryPageToggleFilterAction), withLatestFrom(this.facade.metadata$), map(([action, metadata]) => ({
|
523
526
|
kind: DaffCategoryRequestKind.ID,
|
524
527
|
id: metadata.id,
|
525
528
|
filterRequests: daffProductFiltersToRequests(metadata.filters),
|
@@ -533,8 +536,8 @@ class DaffCategoryPageFilterEffects {
|
|
533
536
|
]), catchError((error) => of(new DaffCategoryPageLoadFailure(this.errorMatcher(error))))))));
|
534
537
|
}
|
535
538
|
}
|
536
|
-
/** @nocollapse */
|
537
|
-
/** @nocollapse */
|
539
|
+
/** @nocollapse */ DaffCategoryPageFilterEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryPageFilterEffects, deps: [{ token: i1$1.Actions }, { token: DaffCategoryDriver }, { token: DAFF_CATEGORY_ERROR_MATCHER }, { token: DaffCategoryProductCollectionFacade }], target: i0.ɵɵFactoryTarget.Injectable });
|
540
|
+
/** @nocollapse */ DaffCategoryPageFilterEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryPageFilterEffects });
|
538
541
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryPageFilterEffects, decorators: [{
|
539
542
|
type: Injectable
|
540
543
|
}], ctorParameters: function () {
|
@@ -544,7 +547,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
|
|
544
547
|
}] }, { type: undefined, decorators: [{
|
545
548
|
type: Inject,
|
546
549
|
args: [DAFF_CATEGORY_ERROR_MATCHER]
|
547
|
-
}] }, { type:
|
550
|
+
}] }, { type: DaffCategoryProductCollectionFacade }];
|
548
551
|
} });
|
549
552
|
|
550
553
|
class DaffCategoryPageEffects {
|
@@ -559,9 +562,9 @@ class DaffCategoryPageEffects {
|
|
559
562
|
new DaffProductGridLoadSuccess(resp.products),
|
560
563
|
new DaffCategoryPageLoadSuccess(resp),
|
561
564
|
]), catchError((error) => of(new DaffCategoryPageLoadFailure(this.errorMatcher(error))))))));
|
562
|
-
this.changeCategoryPageSize$ = createEffect(() => this.actions$.pipe(ofType(
|
563
|
-
this.changeCategoryCurrentPage$ = createEffect(() => this.actions$.pipe(ofType(
|
564
|
-
this.changeCategorySort$ = createEffect(() => this.actions$.pipe(ofType(
|
565
|
+
this.changeCategoryPageSize$ = createEffect(() => this.actions$.pipe(ofType(DaffCategoryPageProductCollectionActionTypes.CategoryPageChangeSizeAction), withLatestFrom(this.store.pipe(select(this.categorySelectors.selectCollectionMetadata))), switchMap(([action, metadata]) => this.processCategoryGetRequest(Object.assign(Object.assign({}, metadata), { kind: DaffCategoryRequestKind.ID, filterRequests: daffProductFiltersToRequests(metadata.filters), pageSize: action.pageSize })))));
|
566
|
+
this.changeCategoryCurrentPage$ = createEffect(() => this.actions$.pipe(ofType(DaffCategoryPageProductCollectionActionTypes.CategoryPageChangeCurrentPageAction), withLatestFrom(this.store.pipe(select(this.categorySelectors.selectCollectionMetadata))), switchMap(([action, metadata]) => this.processCategoryGetRequest(Object.assign(Object.assign({}, metadata), { kind: DaffCategoryRequestKind.ID, filterRequests: daffProductFiltersToRequests(metadata.filters), currentPage: action.currentPage })))));
|
567
|
+
this.changeCategorySort$ = createEffect(() => this.actions$.pipe(ofType(DaffCategoryPageProductCollectionActionTypes.CategoryPageChangeSortingOptionAction), withLatestFrom(this.store.pipe(select(this.categorySelectors.selectCollectionMetadata))), switchMap(([action, metadata]) => this.processCategoryGetRequest(Object.assign(Object.assign({}, metadata), { kind: DaffCategoryRequestKind.ID, filterRequests: daffProductFiltersToRequests(metadata.filters), appliedSortOption: action.sort.option, appliedSortDirection: action.sort.direction })))));
|
565
568
|
}
|
566
569
|
processCategoryGetRequest(payload) {
|
567
570
|
return this.driver.get(payload).pipe(switchMap((resp) => [
|
@@ -570,8 +573,8 @@ class DaffCategoryPageEffects {
|
|
570
573
|
]), catchError((error) => of(new DaffCategoryPageLoadFailure(this.errorMatcher(error)))));
|
571
574
|
}
|
572
575
|
}
|
573
|
-
/** @nocollapse */
|
574
|
-
/** @nocollapse */
|
576
|
+
/** @nocollapse */ DaffCategoryPageEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryPageEffects, deps: [{ token: i1$1.Actions }, { token: DaffCategoryDriver }, { token: DAFF_CATEGORY_ERROR_MATCHER }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable });
|
577
|
+
/** @nocollapse */ DaffCategoryPageEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryPageEffects });
|
575
578
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryPageEffects, decorators: [{
|
576
579
|
type: Injectable
|
577
580
|
}], ctorParameters: function () {
|
@@ -592,8 +595,8 @@ class DaffCategoryEffects {
|
|
592
595
|
this.loadCategory$ = createEffect(() => this.actions$.pipe(ofType(DaffCategoryActionTypes.CategoryLoadAction), mergeMap((action) => this.driver.get(action.request).pipe(switchMap((resp) => of(new DaffProductGridLoadSuccess(resp.products), new DaffCategoryLoadSuccess(resp))), catchError((error) => of(new DaffCategoryLoadFailure(this.errorMatcher(error))))))));
|
593
596
|
}
|
594
597
|
}
|
595
|
-
/** @nocollapse */
|
596
|
-
/** @nocollapse */
|
598
|
+
/** @nocollapse */ DaffCategoryEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryEffects, deps: [{ token: i1$1.Actions }, { token: DaffCategoryDriver }, { token: DAFF_CATEGORY_ERROR_MATCHER }], target: i0.ɵɵFactoryTarget.Injectable });
|
599
|
+
/** @nocollapse */ DaffCategoryEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryEffects });
|
597
600
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryEffects, decorators: [{
|
598
601
|
type: Injectable
|
599
602
|
}], ctorParameters: function () {
|
@@ -611,9 +614,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
|
|
611
614
|
*/
|
612
615
|
class DaffCategoryStateModule {
|
613
616
|
}
|
614
|
-
/** @nocollapse */
|
615
|
-
/** @nocollapse */
|
616
|
-
/** @nocollapse */
|
617
|
+
/** @nocollapse */ DaffCategoryStateModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryStateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
618
|
+
/** @nocollapse */ DaffCategoryStateModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryStateModule, imports: [i1.StoreFeatureModule, i1$1.EffectsFeatureModule, DaffProductStateModule] });
|
619
|
+
/** @nocollapse */ DaffCategoryStateModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryStateModule, imports: [[
|
617
620
|
StoreModule.forFeature(DAFF_CATEGORY_STORE_FEATURE_KEY, daffCategoryReducers),
|
618
621
|
EffectsModule.forFeature([DaffCategoryEffects, DaffCategoryPageEffects, DaffCategoryPageFilterEffects]),
|
619
622
|
DaffProductStateModule,
|
@@ -633,5 +636,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
|
|
633
636
|
* Generated bundle index. Do not edit.
|
634
637
|
*/
|
635
638
|
|
636
|
-
export { DAFF_CATEGORY_STORE_FEATURE_KEY, DaffCategoryActionTypes, DaffCategoryFacade, DaffCategoryLoad, DaffCategoryLoadFailure, DaffCategoryLoadSuccess, DaffCategoryPageActionTypes, DaffCategoryPageApplyFilters, DaffCategoryPageChangeCurrentPage, DaffCategoryPageChangeFilters, DaffCategoryPageChangePageSize, DaffCategoryPageChangeSortingOption, DaffCategoryPageClearFilters,
|
639
|
+
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 };
|
637
640
|
//# sourceMappingURL=daffodil-category-state.mjs.map
|