@daffodil/category 0.43.0 → 0.44.1
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/magento/category.service.mjs +6 -4
- package/esm2020/driver/magento/models/complete-category-response.mjs +1 -1
- package/esm2020/driver/magento/transformers/category-page-config-transformer.service.mjs +2 -2
- 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 +3 -6
- 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/effects/category-page-filter.effects.mjs +7 -7
- package/esm2020/state/effects/category-page.effects.mjs +5 -4
- 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 +5 -2
- package/esm2020/state/testing/mock-category-facade.mjs +1 -11
- package/fesm2015/daffodil-category-driver-magento.mjs +6 -4
- package/fesm2015/daffodil-category-driver-magento.mjs.map +1 -1
- package/fesm2015/daffodil-category-routing.mjs +139 -32
- package/fesm2015/daffodil-category-routing.mjs.map +1 -1
- package/fesm2015/daffodil-category-state-testing.mjs +4 -11
- package/fesm2015/daffodil-category-state-testing.mjs.map +1 -1
- package/fesm2015/daffodil-category-state.mjs +211 -208
- package/fesm2015/daffodil-category-state.mjs.map +1 -1
- package/fesm2020/daffodil-category-driver-magento.mjs +6 -4
- package/fesm2020/daffodil-category-driver-magento.mjs.map +1 -1
- package/fesm2020/daffodil-category-routing.mjs +139 -28
- package/fesm2020/daffodil-category-routing.mjs.map +1 -1
- package/fesm2020/daffodil-category-state-testing.mjs +4 -11
- package/fesm2020/daffodil-category-state-testing.mjs.map +1 -1
- package/fesm2020/daffodil-category-state.mjs +214 -278
- package/fesm2020/daffodil-category-state.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,15 +1,19 @@
|
|
1
1
|
import { Action } from '@ngrx/store';
|
2
|
+
import { DaffCategoryRequest } from '@daffodil/category';
|
2
3
|
import { DaffProductFilterRequest, DaffProductFilterToggleRequest } from '@daffodil/product';
|
3
4
|
/**
|
4
5
|
* The possible types of category page filter actions.
|
5
6
|
*/
|
6
|
-
export declare enum
|
7
|
+
export declare enum DaffCategoryPageProductCollectionActionTypes {
|
7
8
|
CategoryPageChangeFiltersAction = "[@daffodil/category] Category Page Change Filters Action",
|
8
9
|
CategoryPageReplaceFiltersAction = "[@daffodil/category] Category Page Replace Filters Action",
|
9
10
|
CategoryPageApplyFiltersAction = "[@daffodil/category] Category Page Apply Filters Action",
|
10
11
|
CategoryPageRemoveFiltersAction = "[@daffodil/category] Category Page Remove Filters Action",
|
11
12
|
CategoryPageClearFiltersAction = "[@daffodil/category] Category Page Clear Filters Action",
|
12
|
-
CategoryPageToggleFilterAction = "[@daffodil/category] Category Page Toggle Filter Action"
|
13
|
+
CategoryPageToggleFilterAction = "[@daffodil/category] Category Page Toggle Filter Action",
|
14
|
+
CategoryPageChangeSizeAction = "[@daffodil/category] Category Page Change Size Action",
|
15
|
+
CategoryPageChangeCurrentPageAction = "[@daffodil/category] Category Page Change Current Page Action",
|
16
|
+
CategoryPageChangeSortingOptionAction = "[@daffodil/category] Category Page Change Sorting Option Action"
|
13
17
|
}
|
14
18
|
/**
|
15
19
|
* An action for changing the filters for the current category.
|
@@ -19,7 +23,7 @@ export declare enum DaffCategoryPageFilterActionTypes {
|
|
19
23
|
*/
|
20
24
|
export declare class DaffCategoryPageChangeFilters implements Action {
|
21
25
|
filters: DaffProductFilterRequest[];
|
22
|
-
readonly type =
|
26
|
+
readonly type = DaffCategoryPageProductCollectionActionTypes.CategoryPageChangeFiltersAction;
|
23
27
|
constructor(filters: DaffProductFilterRequest[]);
|
24
28
|
}
|
25
29
|
/**
|
@@ -30,7 +34,7 @@ export declare class DaffCategoryPageChangeFilters implements Action {
|
|
30
34
|
*/
|
31
35
|
export declare class DaffCategoryPageReplaceFilters implements Action {
|
32
36
|
filters: DaffProductFilterRequest[];
|
33
|
-
readonly type =
|
37
|
+
readonly type = DaffCategoryPageProductCollectionActionTypes.CategoryPageReplaceFiltersAction;
|
34
38
|
constructor(filters: DaffProductFilterRequest[]);
|
35
39
|
}
|
36
40
|
/**
|
@@ -40,7 +44,7 @@ export declare class DaffCategoryPageReplaceFilters implements Action {
|
|
40
44
|
*/
|
41
45
|
export declare class DaffCategoryPageApplyFilters implements Action {
|
42
46
|
filters: DaffProductFilterRequest[];
|
43
|
-
readonly type =
|
47
|
+
readonly type = DaffCategoryPageProductCollectionActionTypes.CategoryPageApplyFiltersAction;
|
44
48
|
constructor(filters: DaffProductFilterRequest[]);
|
45
49
|
}
|
46
50
|
/**
|
@@ -50,14 +54,14 @@ export declare class DaffCategoryPageApplyFilters implements Action {
|
|
50
54
|
*/
|
51
55
|
export declare class DaffCategoryPageRemoveFilters implements Action {
|
52
56
|
filters: DaffProductFilterRequest[];
|
53
|
-
readonly type =
|
57
|
+
readonly type = DaffCategoryPageProductCollectionActionTypes.CategoryPageRemoveFiltersAction;
|
54
58
|
constructor(filters: DaffProductFilterRequest[]);
|
55
59
|
}
|
56
60
|
/**
|
57
61
|
* An action for removing all the filters for the current category.
|
58
62
|
*/
|
59
63
|
export declare class DaffCategoryPageClearFilters implements Action {
|
60
|
-
readonly type =
|
64
|
+
readonly type = DaffCategoryPageProductCollectionActionTypes.CategoryPageClearFiltersAction;
|
61
65
|
}
|
62
66
|
/**
|
63
67
|
* An action for toggling a filters for the current category.
|
@@ -66,7 +70,43 @@ export declare class DaffCategoryPageClearFilters implements Action {
|
|
66
70
|
*/
|
67
71
|
export declare class DaffCategoryPageToggleFilter implements Action {
|
68
72
|
filter: DaffProductFilterToggleRequest;
|
69
|
-
readonly type =
|
73
|
+
readonly type = DaffCategoryPageProductCollectionActionTypes.CategoryPageToggleFilterAction;
|
70
74
|
constructor(filter: DaffProductFilterToggleRequest);
|
71
75
|
}
|
72
|
-
|
76
|
+
/**
|
77
|
+
* An action for changing the number of products shown on each page for the selected category.
|
78
|
+
*
|
79
|
+
* @param pageSize - The number of products per page.
|
80
|
+
*/
|
81
|
+
export declare class DaffCategoryPageChangePageSize implements Action {
|
82
|
+
pageSize: number;
|
83
|
+
readonly type = DaffCategoryPageProductCollectionActionTypes.CategoryPageChangeSizeAction;
|
84
|
+
constructor(pageSize: number);
|
85
|
+
}
|
86
|
+
/**
|
87
|
+
* An action for changing the current page of products for the selected category.
|
88
|
+
*
|
89
|
+
* @param currentPage - The current page of products for the selected category.
|
90
|
+
*/
|
91
|
+
export declare class DaffCategoryPageChangeCurrentPage implements Action {
|
92
|
+
currentPage: number;
|
93
|
+
readonly type = DaffCategoryPageProductCollectionActionTypes.CategoryPageChangeCurrentPageAction;
|
94
|
+
constructor(currentPage: number);
|
95
|
+
}
|
96
|
+
/**
|
97
|
+
* An action for changing the sorting option for the selected category.
|
98
|
+
*
|
99
|
+
* @param sort - The sort option to be applied.
|
100
|
+
*/
|
101
|
+
export declare class DaffCategoryPageChangeSortingOption implements Action {
|
102
|
+
sort: {
|
103
|
+
option: DaffCategoryRequest['appliedSortOption'];
|
104
|
+
direction: DaffCategoryRequest['appliedSortDirection'];
|
105
|
+
};
|
106
|
+
readonly type = DaffCategoryPageProductCollectionActionTypes.CategoryPageChangeSortingOptionAction;
|
107
|
+
constructor(sort: {
|
108
|
+
option: DaffCategoryRequest['appliedSortOption'];
|
109
|
+
direction: DaffCategoryRequest['appliedSortDirection'];
|
110
|
+
});
|
111
|
+
}
|
112
|
+
export declare type DaffCategoryPageProductCollectionActions = DaffCategoryPageChangeFilters | DaffCategoryPageReplaceFilters | DaffCategoryPageApplyFilters | DaffCategoryPageRemoveFilters | DaffCategoryPageClearFilters | DaffCategoryPageToggleFilter | DaffCategoryPageChangePageSize | DaffCategoryPageChangeCurrentPage | DaffCategoryPageChangeSortingOption;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { Action } from '@ngrx/store';
|
2
|
-
import {
|
2
|
+
import { DaffGenericCategory, DaffCategory, DaffGetCategoryResponse, DaffCategoryIdRequest, DaffCategoryUrlRequest } from '@daffodil/category';
|
3
3
|
import { DaffStateError } from '@daffodil/core/state';
|
4
4
|
import { DaffProduct } from '@daffodil/product';
|
5
5
|
/**
|
@@ -9,10 +9,7 @@ export declare enum DaffCategoryPageActionTypes {
|
|
9
9
|
CategoryPageLoadAction = "[@daffodil/category] Category Page Load Action",
|
10
10
|
CategoryPageLoadByUrlAction = "[@daffodil/category] Category Page Load By URL Action",
|
11
11
|
CategoryPageLoadSuccessAction = "[@daffodil/category] Category Page Load Success Action",
|
12
|
-
CategoryPageLoadFailureAction = "[@daffodil/category] Category Page Load Failure Action"
|
13
|
-
CategoryPageChangeSizeAction = "[@daffodil/category] Category Page Change Size Action",
|
14
|
-
CategoryPageChangeCurrentPageAction = "[@daffodil/category] Category Page Change Current Page Action",
|
15
|
-
CategoryPageChangeSortingOptionAction = "[@daffodil/category] Category Page Change Sorting Option Action"
|
12
|
+
CategoryPageLoadFailureAction = "[@daffodil/category] Category Page Load Failure Action"
|
16
13
|
}
|
17
14
|
/**
|
18
15
|
* An action triggered to initialize a category page load request.
|
@@ -58,40 +55,4 @@ export declare class DaffCategoryPageLoadFailure implements Action {
|
|
58
55
|
readonly type = DaffCategoryPageActionTypes.CategoryPageLoadFailureAction;
|
59
56
|
constructor(errorMessage: DaffStateError);
|
60
57
|
}
|
61
|
-
|
62
|
-
* An action for changing the number of products shown on each page for the selected category.
|
63
|
-
*
|
64
|
-
* @param pageSize - The number of products per page.
|
65
|
-
*/
|
66
|
-
export declare class DaffCategoryPageChangePageSize implements Action {
|
67
|
-
pageSize: number;
|
68
|
-
readonly type = DaffCategoryPageActionTypes.CategoryPageChangeSizeAction;
|
69
|
-
constructor(pageSize: number);
|
70
|
-
}
|
71
|
-
/**
|
72
|
-
* An action for changing the current page of products for the selected category.
|
73
|
-
*
|
74
|
-
* @param currentPage - The current page of products for the selected category.
|
75
|
-
*/
|
76
|
-
export declare class DaffCategoryPageChangeCurrentPage implements Action {
|
77
|
-
currentPage: number;
|
78
|
-
readonly type = DaffCategoryPageActionTypes.CategoryPageChangeCurrentPageAction;
|
79
|
-
constructor(currentPage: number);
|
80
|
-
}
|
81
|
-
/**
|
82
|
-
* An action for changing the sorting option for the selected category.
|
83
|
-
*
|
84
|
-
* @param sort - The sort option to be applied.
|
85
|
-
*/
|
86
|
-
export declare class DaffCategoryPageChangeSortingOption implements Action {
|
87
|
-
sort: {
|
88
|
-
option: DaffCategoryRequest['appliedSortOption'];
|
89
|
-
direction: DaffCategoryRequest['appliedSortDirection'];
|
90
|
-
};
|
91
|
-
readonly type = DaffCategoryPageActionTypes.CategoryPageChangeSortingOptionAction;
|
92
|
-
constructor(sort: {
|
93
|
-
option: DaffCategoryRequest['appliedSortOption'];
|
94
|
-
direction: DaffCategoryRequest['appliedSortDirection'];
|
95
|
-
});
|
96
|
-
}
|
97
|
-
export declare type DaffCategoryPageActions<U extends DaffGenericCategory<U> = DaffCategory, W extends DaffProduct = DaffProduct> = DaffCategoryPageLoad | DaffCategoryPageLoadByUrl | DaffCategoryPageLoadSuccess<U, W> | DaffCategoryPageLoadFailure | DaffCategoryPageChangePageSize | DaffCategoryPageChangeCurrentPage | DaffCategoryPageChangeSortingOption;
|
58
|
+
export declare type DaffCategoryPageActions<U extends DaffGenericCategory<U> = DaffCategory, W extends DaffProduct = DaffProduct> = DaffCategoryPageLoad | DaffCategoryPageLoadByUrl | DaffCategoryPageLoadSuccess<U, W> | DaffCategoryPageLoadFailure;
|
@@ -7,14 +7,14 @@ import { ErrorTransformer } from '@daffodil/core/state';
|
|
7
7
|
import { DaffProduct } from '@daffodil/product';
|
8
8
|
import { DaffProductGridLoadSuccess } from '@daffodil/product/state';
|
9
9
|
import { DaffCategoryPageLoadSuccess, DaffCategoryPageLoadFailure } from '../actions/category-page.actions';
|
10
|
-
import {
|
10
|
+
import { DaffCategoryProductCollectionFacade } from '../facades/public_api';
|
11
11
|
import * as i0 from "@angular/core";
|
12
12
|
export declare class DaffCategoryPageFilterEffects<V extends DaffGenericCategory<V>, W extends DaffProduct> {
|
13
13
|
private actions$;
|
14
14
|
private driver;
|
15
15
|
private errorMatcher;
|
16
16
|
private facade;
|
17
|
-
constructor(actions$: Actions, driver: DaffCategoryServiceInterface<V, W>, errorMatcher: ErrorTransformer, facade:
|
17
|
+
constructor(actions$: Actions, driver: DaffCategoryServiceInterface<V, W>, errorMatcher: ErrorTransformer, facade: DaffCategoryProductCollectionFacade);
|
18
18
|
/**
|
19
19
|
* Updates the filters applied to the category page. It will take the currently
|
20
20
|
* applied filters from state, form them into a request, and attempt to apply
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import { Store } from '@ngrx/store';
|
2
|
+
import { DaffProductCollectionFacade, DaffProductCollectionFacadeInterface } from '@daffodil/product/state';
|
3
|
+
import { DaffCategoryStateRootSlice } from '../../reducers/public_api';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
export declare class DaffCategoryProductCollectionFacade extends DaffProductCollectionFacade<DaffCategoryStateRootSlice> implements DaffProductCollectionFacadeInterface {
|
6
|
+
constructor(store: Store<DaffCategoryStateRootSlice>);
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DaffCategoryProductCollectionFacade, never>;
|
8
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<DaffCategoryProductCollectionFacade>;
|
9
|
+
}
|
package/state/facades/{category-facade.interface.d.ts → page/category-facade.interface.d.ts}
RENAMED
@@ -1,10 +1,9 @@
|
|
1
1
|
import { Action } from '@ngrx/store';
|
2
2
|
import { Observable } from 'rxjs';
|
3
|
-
import { DaffGenericCategory, DaffCategory
|
4
|
-
import { DaffSortDirectionEnum, DaffSortOption } from '@daffodil/core';
|
3
|
+
import { DaffGenericCategory, DaffCategory } from '@daffodil/category';
|
5
4
|
import { DaffStoreFacade, DaffStateError } from '@daffodil/core/state';
|
6
|
-
import { DaffProduct
|
7
|
-
import { DaffCategoryReducerState } from '
|
5
|
+
import { DaffProduct } from '@daffodil/product';
|
6
|
+
import { DaffCategoryReducerState } from '../../reducers/category/category-reducer-state.interface';
|
8
7
|
/**
|
9
8
|
* A facade for interacting with the category state.
|
10
9
|
* This facade exposes many parts of the state for easy access and allows dispatching of actions.
|
@@ -14,10 +13,6 @@ export interface DaffCategoryFacadeInterface<V extends DaffGenericCategory<V> =
|
|
14
13
|
* The currently selected category.
|
15
14
|
*/
|
16
15
|
category$: Observable<V>;
|
17
|
-
/**
|
18
|
-
* The page metadata for the current category.
|
19
|
-
*/
|
20
|
-
metadata$: Observable<DaffCategoryPageMetadata>;
|
21
16
|
/**
|
22
17
|
* The loading state of the current category page.
|
23
18
|
*/
|
@@ -30,42 +25,6 @@ export interface DaffCategoryFacadeInterface<V extends DaffGenericCategory<V> =
|
|
30
25
|
* Whether the current category is in a resolving state.
|
31
26
|
*/
|
32
27
|
isPageResolving$: Observable<boolean>;
|
33
|
-
/**
|
34
|
-
* The current page of products for the current category.
|
35
|
-
*/
|
36
|
-
currentPage$: Observable<number>;
|
37
|
-
/**
|
38
|
-
* The number of pages of products available in the current category.
|
39
|
-
*/
|
40
|
-
totalPages$: Observable<number>;
|
41
|
-
/**
|
42
|
-
* The total number of products for the filters applied.
|
43
|
-
*/
|
44
|
-
totalProducts$: Observable<number>;
|
45
|
-
/**
|
46
|
-
* The number of products per page for the current category.
|
47
|
-
*/
|
48
|
-
pageSize$: Observable<number>;
|
49
|
-
/**
|
50
|
-
* The filters available for the products of the current category.
|
51
|
-
*/
|
52
|
-
filters$: Observable<Record<DaffProductFilter['name'], DaffProductFilter>>;
|
53
|
-
/**
|
54
|
-
* The sort options available for the products of the current category.
|
55
|
-
*/
|
56
|
-
sortOptions$: Observable<DaffSortOption[]>;
|
57
|
-
/**
|
58
|
-
* The sort options available for the products of the current category.
|
59
|
-
*/
|
60
|
-
appliedFilters$: Observable<Record<DaffProductFilter['name'], DaffProductFilter>>;
|
61
|
-
/**
|
62
|
-
* The sort options available for the products of the current category.
|
63
|
-
*/
|
64
|
-
appliedSortOption$: Observable<string>;
|
65
|
-
/**
|
66
|
-
* The sort options available for the products of the current category.
|
67
|
-
*/
|
68
|
-
appliedSortDirection$: Observable<DaffSortDirectionEnum>;
|
69
28
|
/**
|
70
29
|
* Products of the current category.
|
71
30
|
*/
|
@@ -1,10 +1,9 @@
|
|
1
1
|
import { Store, Action } from '@ngrx/store';
|
2
2
|
import { Observable } from 'rxjs';
|
3
|
-
import { DaffGenericCategory, DaffCategory
|
4
|
-
import { DaffSortDirectionEnum, DaffSortOption } from '@daffodil/core';
|
3
|
+
import { DaffGenericCategory, DaffCategory } from '@daffodil/category';
|
5
4
|
import { DaffStateError } from '@daffodil/core/state';
|
6
|
-
import { DaffProduct
|
7
|
-
import { DaffCategoryStateRootSlice, DaffCategoryReducerState } from '
|
5
|
+
import { DaffProduct } from '@daffodil/product';
|
6
|
+
import { DaffCategoryStateRootSlice, DaffCategoryReducerState } from '../../reducers/public_api';
|
8
7
|
import { DaffCategoryFacadeInterface } from './category-facade.interface';
|
9
8
|
import * as i0 from "@angular/core";
|
10
9
|
/**
|
@@ -17,19 +16,9 @@ export declare class DaffCategoryFacade<V extends DaffGenericCategory<V> = DaffC
|
|
17
16
|
private store;
|
18
17
|
private categorySelectors;
|
19
18
|
category$: Observable<V>;
|
20
|
-
metadata$: Observable<DaffCategoryPageMetadata>;
|
21
19
|
pageLoadingState$: Observable<DaffCategoryReducerState['daffState']>;
|
22
20
|
isPageMutating$: Observable<boolean>;
|
23
21
|
isPageResolving$: Observable<boolean>;
|
24
|
-
currentPage$: Observable<number>;
|
25
|
-
totalPages$: Observable<number>;
|
26
|
-
totalProducts$: Observable<number>;
|
27
|
-
pageSize$: Observable<number>;
|
28
|
-
filters$: Observable<Record<DaffProductFilter['name'], DaffProductFilter>>;
|
29
|
-
sortOptions$: Observable<DaffSortOption[]>;
|
30
|
-
appliedFilters$: Observable<Record<DaffProductFilter['name'], DaffProductFilter>>;
|
31
|
-
appliedSortOption$: Observable<string>;
|
32
|
-
appliedSortDirection$: Observable<DaffSortDirectionEnum>;
|
33
22
|
products$: Observable<W[]>;
|
34
23
|
categoryLoading$: Observable<boolean>;
|
35
24
|
productsLoading$: Observable<boolean>;
|
package/state/public_api.d.ts
CHANGED
@@ -1,8 +1,7 @@
|
|
1
|
-
export { DaffCategoryFacade } from './facades/category.facade';
|
2
|
-
export { DaffCategoryFacadeInterface } from './facades/category-facade.interface';
|
3
1
|
export { DaffCategoryStateModule } from './category-state.module';
|
4
2
|
export * from './selectors/category.selector';
|
5
3
|
export * from './reducers/public_api';
|
4
|
+
export * from './facades/public_api';
|
6
5
|
export * from './actions/category.actions';
|
7
6
|
export * from './actions/category-page.actions';
|
8
7
|
export * from './actions/category-page-filter.actions';
|
@@ -1,10 +1,6 @@
|
|
1
|
-
import {
|
1
|
+
import { DaffCategory } from '@daffodil/category';
|
2
2
|
import { DaffStateError, DaffMutableLoadingState, DaffStateable } from '@daffodil/core/state';
|
3
3
|
export interface DaffCategoryReducerState extends DaffStateable<DaffMutableLoadingState> {
|
4
|
-
/**
|
5
|
-
* The metadata for the current category page.
|
6
|
-
*/
|
7
|
-
categoryPageMetadata: DaffCategoryPageMetadata;
|
8
4
|
/**
|
9
5
|
* @deprecated
|
10
6
|
*/
|
@@ -17,4 +13,8 @@ export interface DaffCategoryReducerState extends DaffStateable<DaffMutableLoadi
|
|
17
13
|
* Errors associated with loading categories.
|
18
14
|
*/
|
19
15
|
errors: DaffStateError[];
|
16
|
+
/**
|
17
|
+
* The ID of the currently loaded category.
|
18
|
+
*/
|
19
|
+
id: DaffCategory['id'];
|
20
20
|
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { DaffGenericCategory } from '@daffodil/category';
|
2
2
|
import { DaffProduct } from '@daffodil/product';
|
3
|
-
import {
|
3
|
+
import { DaffCategoryPageProductCollectionActions } from '../../actions/category-page-filter.actions';
|
4
4
|
import { DaffCategoryPageActions } from '../../actions/category-page.actions';
|
5
5
|
import { DaffCategoryActions } from '../../actions/category.actions';
|
6
6
|
import { DaffCategoryReducerState } from './category-reducer-state.interface';
|
@@ -8,4 +8,4 @@ export declare const initialState: DaffCategoryReducerState;
|
|
8
8
|
/**
|
9
9
|
* Returns the state for category data except for category entities.
|
10
10
|
*/
|
11
|
-
export declare function daffCategoryReducer<U extends DaffGenericCategory<U>, W extends DaffProduct>(state: DaffCategoryReducerState, action: DaffCategoryActions<U, W> | DaffCategoryPageActions<U, W> |
|
11
|
+
export declare function daffCategoryReducer<U extends DaffGenericCategory<U>, W extends DaffProduct>(state: DaffCategoryReducerState, action: DaffCategoryActions<U, W> | DaffCategoryPageActions<U, W> | DaffCategoryPageProductCollectionActions): DaffCategoryReducerState;
|
@@ -4,6 +4,7 @@ import { DaffProduct } from '@daffodil/product';
|
|
4
4
|
import { DaffProductStateRootSlice } from '@daffodil/product/state';
|
5
5
|
import { DAFF_CATEGORY_STORE_FEATURE_KEY } from './category-store-feature-key';
|
6
6
|
import { DaffCategoryReducerState } from './category/category-reducer-state.interface';
|
7
|
+
import { DaffCategoryPageMetadataReducerState } from './page-metadata/state.interface';
|
7
8
|
/**
|
8
9
|
* An interface to describe all of category state.
|
9
10
|
*/
|
@@ -16,6 +17,10 @@ export interface DaffCategoryReducersState<V extends DaffGenericCategory<V> = Da
|
|
16
17
|
* Redux state for category entities.
|
17
18
|
*/
|
18
19
|
categoryEntities: EntityState<V>;
|
20
|
+
/**
|
21
|
+
* The product collection metadata for the category page.
|
22
|
+
*/
|
23
|
+
pageMetadata: DaffCategoryPageMetadataReducerState;
|
19
24
|
}
|
20
25
|
export interface DaffCategoryStateRootSlice<V extends DaffGenericCategory<V> = DaffCategory, W extends DaffProduct = DaffProduct> extends DaffProductStateRootSlice<W> {
|
21
26
|
[DAFF_CATEGORY_STORE_FEATURE_KEY]: DaffCategoryReducersState<V>;
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import { DaffGenericCategory } from '@daffodil/category';
|
2
|
+
import { DaffProduct } from '@daffodil/product';
|
3
|
+
import { DaffCategoryPageProductCollectionActions } from '../../actions/category-page-filter.actions';
|
4
|
+
import { DaffCategoryPageActions } from '../../actions/category-page.actions';
|
5
|
+
import { DaffCategoryActions } from '../../actions/category.actions';
|
6
|
+
import { DaffCategoryPageMetadataReducerState } from './state.interface';
|
7
|
+
export declare const initialState: DaffCategoryPageMetadataReducerState;
|
8
|
+
/**
|
9
|
+
* Returns the state for category data except for category entities.
|
10
|
+
*/
|
11
|
+
export declare function daffCategoryPageMetadataReducer<U extends DaffGenericCategory<U>, W extends DaffProduct>(state: import("@daffodil/category").DaffCategoryPageMetadata, action: DaffCategoryActions<U, W> | DaffCategoryPageActions<U, W> | DaffCategoryPageProductCollectionActions): DaffCategoryPageMetadataReducerState;
|
@@ -2,5 +2,7 @@ export { daffCategoryReducers } from './category-reducers';
|
|
2
2
|
export { DaffCategoryReducersState, DaffCategoryStateRootSlice, } from './category-reducers.interface';
|
3
3
|
export { DaffCategoryReducerState } from './category/category-reducer-state.interface';
|
4
4
|
export { daffCategoryReducer } from './category/category.reducer';
|
5
|
+
export { DaffCategoryPageMetadataReducerState } from './page-metadata/state.interface';
|
6
|
+
export { daffCategoryPageMetadataReducer } from './page-metadata/reducer';
|
5
7
|
export { daffCategoryEntitiesReducer } from './category-entities/category-entities.reducer';
|
6
8
|
export { DAFF_CATEGORY_STORE_FEATURE_KEY } from './category-store-feature-key';
|
@@ -1,7 +1,6 @@
|
|
1
1
|
import { MemoizedSelector } from '@ngrx/store';
|
2
2
|
import { DaffGenericCategory, DaffCategory, DaffCategoryPageMetadata } from '@daffodil/category';
|
3
3
|
import { DaffStateError } from '@daffodil/core/state';
|
4
|
-
import { DaffProductFilter } from '@daffodil/product';
|
5
4
|
import { DaffCategoryReducerState, DaffCategoryStateRootSlice } from '../../reducers/public_api';
|
6
5
|
/**
|
7
6
|
* An interface to describe all selectors related to the category page metadata, category loading, and errors.
|
@@ -11,30 +10,6 @@ export interface DaffCategoryPageMemoizedSelectors<V extends DaffGenericCategory
|
|
11
10
|
* Selects all state related to the category page metadata, category loading, and errors.
|
12
11
|
*/
|
13
12
|
selectCategoryState: MemoizedSelector<DaffCategoryStateRootSlice<V>, DaffCategoryReducerState>;
|
14
|
-
/**
|
15
|
-
* Selects the metadata for the current category page.
|
16
|
-
*/
|
17
|
-
selectCategoryPageMetadata: MemoizedSelector<DaffCategoryStateRootSlice<V>, DaffCategoryPageMetadata>;
|
18
|
-
/**
|
19
|
-
* Selects the current page of products of the current category.
|
20
|
-
*/
|
21
|
-
selectCategoryCurrentPage: MemoizedSelector<DaffCategoryStateRootSlice<V>, DaffCategoryPageMetadata['currentPage']>;
|
22
|
-
/**
|
23
|
-
* Selects the total number of pages of products that exist in the current category.
|
24
|
-
*/
|
25
|
-
selectCategoryTotalPages: MemoizedSelector<DaffCategoryStateRootSlice<V>, DaffCategoryPageMetadata['totalPages']>;
|
26
|
-
/**
|
27
|
-
* Selects the number of products on each category page.
|
28
|
-
*/
|
29
|
-
selectCategoryPageSize: MemoizedSelector<DaffCategoryStateRootSlice<V>, DaffCategoryPageMetadata['pageSize']>;
|
30
|
-
/**
|
31
|
-
* Selects the filters that may be applied to the current category.
|
32
|
-
*/
|
33
|
-
selectCategoryFilters: MemoizedSelector<DaffCategoryStateRootSlice<V>, DaffCategoryPageMetadata['filters']>;
|
34
|
-
/**
|
35
|
-
* Selects the sort options that may be applied to the current category.
|
36
|
-
*/
|
37
|
-
selectCategorySortOptions: MemoizedSelector<DaffCategoryStateRootSlice<V>, DaffCategoryPageMetadata['sortOptions']['options']>;
|
38
13
|
/**
|
39
14
|
* Selects the ids of all products in the current category page.
|
40
15
|
*/
|
@@ -43,23 +18,6 @@ export interface DaffCategoryPageMemoizedSelectors<V extends DaffGenericCategory
|
|
43
18
|
* Selects whether the category page has no products.
|
44
19
|
*/
|
45
20
|
selectIsCategoryPageEmpty: MemoizedSelector<DaffCategoryStateRootSlice<V>, boolean>;
|
46
|
-
/**
|
47
|
-
* Selects the total number of products for the current category.
|
48
|
-
*/
|
49
|
-
selectCategoryPageTotalProducts: MemoizedSelector<DaffCategoryStateRootSlice<V>, DaffCategoryPageMetadata['count']>;
|
50
|
-
/**
|
51
|
-
* Returns a dict of filters and only their applied options.
|
52
|
-
* Filters with no applied options will be omitted.
|
53
|
-
*/
|
54
|
-
selectCategoryPageAppliedFilters: MemoizedSelector<DaffCategoryStateRootSlice<V>, Record<DaffProductFilter['name'], DaffProductFilter>>;
|
55
|
-
/**
|
56
|
-
* Selects the applied sorting option if one is applied.
|
57
|
-
*/
|
58
|
-
selectCategoryPageAppliedSortOption: MemoizedSelector<DaffCategoryStateRootSlice<V>, DaffCategoryPageMetadata['appliedSortOption']>;
|
59
|
-
/**
|
60
|
-
* Selects the applied sorting direction if a sorting option is applied.
|
61
|
-
*/
|
62
|
-
selectCategoryPageAppliedSortDirection: MemoizedSelector<DaffCategoryStateRootSlice<V>, DaffCategoryPageMetadata['appliedSortDirection']>;
|
63
21
|
/**
|
64
22
|
* Selects the loading state of the current category; e.g. mutating, resolving, stable.
|
65
23
|
*/
|
@@ -5,10 +5,11 @@ import { DaffCategoryStateRootSlice } from '../reducers/public_api';
|
|
5
5
|
import { DaffCategoryEntitiesMemoizedSelectors } from './category-entities/category-entities.selector';
|
6
6
|
import { DaffCategoryFeatureMemoizedSelectors } from './category-feature.selector';
|
7
7
|
import { DaffCategoryPageMemoizedSelectors } from './category-page/category-page.selector';
|
8
|
+
import { DaffCategoryPageProductCollectionSelectors } from './collection/selectors';
|
8
9
|
/**
|
9
10
|
* An interface for selectors that combine category metadata and category entities selectors.
|
10
11
|
*/
|
11
|
-
export interface DaffCategoryMemoizedSelectors<V extends DaffGenericCategory<V> = DaffCategory, W extends DaffProduct = DaffProduct> extends DaffCategoryFeatureMemoizedSelectors<V>, DaffCategoryPageMemoizedSelectors<V>, DaffCategoryEntitiesMemoizedSelectors<V> {
|
12
|
+
export interface DaffCategoryMemoizedSelectors<V extends DaffGenericCategory<V> = DaffCategory, W extends DaffProduct = DaffProduct> extends DaffCategoryFeatureMemoizedSelectors<V>, DaffCategoryPageMemoizedSelectors<V>, DaffCategoryPageProductCollectionSelectors, DaffCategoryEntitiesMemoizedSelectors<V> {
|
12
13
|
/**
|
13
14
|
* Selects the current category
|
14
15
|
*/
|
@@ -0,0 +1,5 @@
|
|
1
|
+
import { DaffCategoryPageMetadata } from '@daffodil/category';
|
2
|
+
import { DaffProductCollectionMemoizedSelectors } from '@daffodil/product/state';
|
3
|
+
import { DaffCategoryStateRootSlice } from '../../reducers/public_api';
|
4
|
+
export declare type DaffCategoryPageProductCollectionSelectors = DaffProductCollectionMemoizedSelectors<DaffCategoryStateRootSlice, DaffCategoryPageMetadata>;
|
5
|
+
export declare const getCategoryProductCollectionSelectors: () => DaffCategoryPageProductCollectionSelectors;
|
@@ -1,11 +1,10 @@
|
|
1
1
|
import { Action } from '@ngrx/store';
|
2
2
|
import { BehaviorSubject } from 'rxjs';
|
3
|
-
import { DaffCategory
|
3
|
+
import { DaffCategory } from '@daffodil/category';
|
4
4
|
import { DaffCategoryFacadeInterface } from '@daffodil/category/state';
|
5
5
|
import { DaffCategoryReducerState } from '@daffodil/category/state';
|
6
|
-
import { DaffSortDirectionEnum, DaffSortOption } from '@daffodil/core';
|
7
6
|
import { DaffStateError } from '@daffodil/core/state';
|
8
|
-
import { DaffProduct
|
7
|
+
import { DaffProduct } from '@daffodil/product';
|
9
8
|
import * as i0 from "@angular/core";
|
10
9
|
/**
|
11
10
|
* Can be used to mock out the {@link DaffCategoryFacade} in testing environments.
|
@@ -14,19 +13,9 @@ import * as i0 from "@angular/core";
|
|
14
13
|
*/
|
15
14
|
export declare class MockDaffCategoryFacade implements DaffCategoryFacadeInterface {
|
16
15
|
category$: BehaviorSubject<DaffCategory>;
|
17
|
-
metadata$: BehaviorSubject<DaffCategoryPageMetadata>;
|
18
16
|
pageLoadingState$: BehaviorSubject<DaffCategoryReducerState['daffState']>;
|
19
17
|
isPageMutating$: BehaviorSubject<boolean>;
|
20
18
|
isPageResolving$: BehaviorSubject<boolean>;
|
21
|
-
currentPage$: BehaviorSubject<number>;
|
22
|
-
totalPages$: BehaviorSubject<number>;
|
23
|
-
totalProducts$: BehaviorSubject<number>;
|
24
|
-
pageSize$: BehaviorSubject<number>;
|
25
|
-
filters$: BehaviorSubject<Record<DaffProductFilter['name'], DaffProductFilter>>;
|
26
|
-
sortOptions$: BehaviorSubject<DaffSortOption[]>;
|
27
|
-
appliedFilters$: BehaviorSubject<Record<DaffProductFilter['name'], DaffProductFilter>>;
|
28
|
-
appliedSortOption$: BehaviorSubject<string>;
|
29
|
-
appliedSortDirection$: BehaviorSubject<DaffSortDirectionEnum>;
|
30
19
|
products$: BehaviorSubject<DaffProduct[]>;
|
31
20
|
categoryLoading$: BehaviorSubject<boolean>;
|
32
21
|
productsLoading$: BehaviorSubject<boolean>;
|
@@ -1,2 +0,0 @@
|
|
1
|
-
export {};
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktZmFjYWRlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY2F0ZWdvcnkvc3RhdGUvc3JjL2ZhY2FkZXMvY2F0ZWdvcnktZmFjYWRlLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBEYWZmR2VuZXJpY0NhdGVnb3J5LFxuICBEYWZmQ2F0ZWdvcnksXG4gIERhZmZDYXRlZ29yeVBhZ2VNZXRhZGF0YSxcbn0gZnJvbSAnQGRhZmZvZGlsL2NhdGVnb3J5JztcbmltcG9ydCB7XG4gIERhZmZTb3J0RGlyZWN0aW9uRW51bSxcbiAgRGFmZlNvcnRPcHRpb24sXG59IGZyb20gJ0BkYWZmb2RpbC9jb3JlJztcbmltcG9ydCB7XG4gIERhZmZTdG9yZUZhY2FkZSxcbiAgRGFmZlN0YXRlRXJyb3IsXG59IGZyb20gJ0BkYWZmb2RpbC9jb3JlL3N0YXRlJztcbmltcG9ydCB7XG4gIERhZmZQcm9kdWN0LFxuICBEYWZmUHJvZHVjdEZpbHRlcixcbn0gZnJvbSAnQGRhZmZvZGlsL3Byb2R1Y3QnO1xuXG5pbXBvcnQgeyBEYWZmQ2F0ZWdvcnlSZWR1Y2VyU3RhdGUgfSBmcm9tICcuLi9yZWR1Y2Vycy9jYXRlZ29yeS9jYXRlZ29yeS1yZWR1Y2VyLXN0YXRlLmludGVyZmFjZSc7XG5cbi8qKlxuICogQSBmYWNhZGUgZm9yIGludGVyYWN0aW5nIHdpdGggdGhlIGNhdGVnb3J5IHN0YXRlLlxuICogVGhpcyBmYWNhZGUgZXhwb3NlcyBtYW55IHBhcnRzIG9mIHRoZSBzdGF0ZSBmb3IgZWFzeSBhY2Nlc3MgYW5kIGFsbG93cyBkaXNwYXRjaGluZyBvZiBhY3Rpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhZmZDYXRlZ29yeUZhY2FkZUludGVyZmFjZTxcbiAgViBleHRlbmRzIERhZmZHZW5lcmljQ2F0ZWdvcnk8Vj4gPSBEYWZmQ2F0ZWdvcnksXG4gIFcgZXh0ZW5kcyBEYWZmUHJvZHVjdCA9IERhZmZQcm9kdWN0XG4+IGV4dGVuZHMgRGFmZlN0b3JlRmFjYWRlPEFjdGlvbj4ge1xuICAvKipcbiAgICogVGhlIGN1cnJlbnRseSBzZWxlY3RlZCBjYXRlZ29yeS5cbiAgICovXG4gIGNhdGVnb3J5JDogT2JzZXJ2YWJsZTxWPjtcbiAgLyoqXG4gICAqIFRoZSBwYWdlIG1ldGFkYXRhIGZvciB0aGUgY3VycmVudCBjYXRlZ29yeS5cbiAgICovXG4gIG1ldGFkYXRhJDogT2JzZXJ2YWJsZTxEYWZmQ2F0ZWdvcnlQYWdlTWV0YWRhdGE+O1xuICAvKipcbiAgICogVGhlIGxvYWRpbmcgc3RhdGUgb2YgdGhlIGN1cnJlbnQgY2F0ZWdvcnkgcGFnZS5cbiAgICovXG4gIHBhZ2VMb2FkaW5nU3RhdGUkOiBPYnNlcnZhYmxlPERhZmZDYXRlZ29yeVJlZHVjZXJTdGF0ZVsnZGFmZlN0YXRlJ10+O1xuICAvKipcbiAgICogV2hldGhlciB0aGUgY3VycmVudCBjYXRlZ29yeSBpcyBpbiBhIG11dGF0aW5nIHN0YXRlLlxuICAgKi9cbiAgaXNQYWdlTXV0YXRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAvKipcbiAgICogV2hldGhlciB0aGUgY3VycmVudCBjYXRlZ29yeSBpcyBpbiBhIHJlc29sdmluZyBzdGF0ZS5cbiAgICovXG4gIGlzUGFnZVJlc29sdmluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIC8qKlxuICAgKiBUaGUgY3VycmVudCBwYWdlIG9mIHByb2R1Y3RzIGZvciB0aGUgY3VycmVudCBjYXRlZ29yeS5cbiAgICovXG4gIGN1cnJlbnRQYWdlJDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBwYWdlcyBvZiBwcm9kdWN0cyBhdmFpbGFibGUgaW4gdGhlIGN1cnJlbnQgY2F0ZWdvcnkuXG4gICAqL1xuICB0b3RhbFBhZ2VzJDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuICAvKipcbiAgICogVGhlIHRvdGFsIG51bWJlciBvZiBwcm9kdWN0cyBmb3IgdGhlIGZpbHRlcnMgYXBwbGllZC5cbiAgICovXG4gIHRvdGFsUHJvZHVjdHMkOiBPYnNlcnZhYmxlPG51bWJlcj47XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHByb2R1Y3RzIHBlciBwYWdlIGZvciB0aGUgY3VycmVudCBjYXRlZ29yeS5cbiAgICovXG4gIHBhZ2VTaXplJDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuICAvKipcbiAgICogVGhlIGZpbHRlcnMgYXZhaWxhYmxlIGZvciB0aGUgcHJvZHVjdHMgb2YgdGhlIGN1cnJlbnQgY2F0ZWdvcnkuXG4gICAqL1xuICBmaWx0ZXJzJDogT2JzZXJ2YWJsZTxSZWNvcmQ8RGFmZlByb2R1Y3RGaWx0ZXJbJ25hbWUnXSwgRGFmZlByb2R1Y3RGaWx0ZXI+PjtcbiAgLyoqXG4gICAqIFRoZSBzb3J0IG9wdGlvbnMgYXZhaWxhYmxlIGZvciB0aGUgcHJvZHVjdHMgb2YgdGhlIGN1cnJlbnQgY2F0ZWdvcnkuXG4gICAqL1xuICBzb3J0T3B0aW9ucyQ6IE9ic2VydmFibGU8RGFmZlNvcnRPcHRpb25bXT47XG4gIC8qKlxuICAgKiBUaGUgc29ydCBvcHRpb25zIGF2YWlsYWJsZSBmb3IgdGhlIHByb2R1Y3RzIG9mIHRoZSBjdXJyZW50IGNhdGVnb3J5LlxuICAgKi9cbiAgYXBwbGllZEZpbHRlcnMkOiBPYnNlcnZhYmxlPFJlY29yZDxEYWZmUHJvZHVjdEZpbHRlclsnbmFtZSddLCBEYWZmUHJvZHVjdEZpbHRlcj4+O1xuICAvKipcbiAgICogVGhlIHNvcnQgb3B0aW9ucyBhdmFpbGFibGUgZm9yIHRoZSBwcm9kdWN0cyBvZiB0aGUgY3VycmVudCBjYXRlZ29yeS5cbiAgICovXG4gIGFwcGxpZWRTb3J0T3B0aW9uJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICAvKipcbiAgICogVGhlIHNvcnQgb3B0aW9ucyBhdmFpbGFibGUgZm9yIHRoZSBwcm9kdWN0cyBvZiB0aGUgY3VycmVudCBjYXRlZ29yeS5cbiAgICovXG4gIGFwcGxpZWRTb3J0RGlyZWN0aW9uJDogT2JzZXJ2YWJsZTxEYWZmU29ydERpcmVjdGlvbkVudW0+O1xuICAvKipcbiAgICogUHJvZHVjdHMgb2YgdGhlIGN1cnJlbnQgY2F0ZWdvcnkuXG4gICAqL1xuICBwcm9kdWN0cyQ6IE9ic2VydmFibGU8V1tdPjtcbiAgLyoqXG4gICAqIFRoZSBsb2FkaW5nIHN0YXRlIGZvciByZXRyaWV2aW5nIGEgc2luZ2xlIGNhdGVnb3J5LlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgaXNQYWdlUmVzb2x2aW5nJCBpbnN0ZWFkXG4gICAqL1xuICBjYXRlZ29yeUxvYWRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAvKipcbiAgICogVGhlIGxvYWRpbmcgc3RhdGUgZm9yIHJldHJpZXZpbmcgb25seSB0aGUgcHJvZHVjdHMgb2YgdGhlIGNhdGVnb3J5LlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgaXNQYWdlUmVzb2x2aW5nJCBhbmQgaXNQYWdlTXV0YXRpbmckIGluc3RlYWRcbiAgICovXG4gIHByb2R1Y3RzTG9hZGluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIC8qKlxuICAgKiBFcnJvcnMgYXNzb2NpYXRlZCB3aXRoIHJldHJpZXZpbmcgYSBzaW5nbGUgY2F0ZWdvcnkuXG4gICAqL1xuICBlcnJvcnMkOiBPYnNlcnZhYmxlPERhZmZTdGF0ZUVycm9yW10+O1xuICAvKipcbiAgICogSXMgdGhlIGNhdGVnb3J5IHBhZ2UgZW1wdHkgb2YgcHJvZHVjdHMuXG4gICAqL1xuICBpc0NhdGVnb3J5RW1wdHkkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIC8qKlxuICAgKiBHZXQgYSBjYXRlZ29yeSBieSB0aGUgcHJvdmlkZWQgSWQuXG4gICAqXG4gICAqIEBwYXJhbSBpZFxuICAgKi9cbiAgZ2V0Q2F0ZWdvcnlCeUlkKGlkOiBWWydpZCddKTogT2JzZXJ2YWJsZTxWPjtcblxuICAvKipcbiAgICogR2V0IHByb2R1Y3RzIGJ5IGEgY2F0ZWdvcnkgSWQuXG4gICAqXG4gICAqIEBwYXJhbSBjYXRlZ29yeUlkXG4gICAqL1xuICBnZXRQcm9kdWN0c0J5Q2F0ZWdvcnkoY2F0ZWdvcnlJZDogVlsnaWQnXSk6IE9ic2VydmFibGU8V1tdPjtcblxuICAvKipcbiAgICogR2V0IHByb2R1Y3RzIGJ5IGEgY2F0ZWdvcnkgSWQuXG4gICAqXG4gICAqIEBwYXJhbSBjYXRlZ29yeUlkXG4gICAqL1xuICBnZXRUb3RhbFByb2R1Y3RzQnlDYXRlZ29yeShjYXRlZ29yeUlkOiBWWydpZCddKTogT2JzZXJ2YWJsZTxudW1iZXI+O1xufVxuIl19
|
@@ -1,62 +0,0 @@
|
|
1
|
-
import { Injectable } from '@angular/core';
|
2
|
-
import { Store, select, } from '@ngrx/store';
|
3
|
-
import { getDaffCategorySelectors } from '../selectors/category.selector';
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
import * as i1 from "@ngrx/store";
|
6
|
-
/**
|
7
|
-
* A facade for interacting with the category state.
|
8
|
-
* This facade exposes many parts of the state for easy access and allows dispatching of actions.
|
9
|
-
*
|
10
|
-
* @inheritdoc
|
11
|
-
*/
|
12
|
-
export class DaffCategoryFacade {
|
13
|
-
constructor(store) {
|
14
|
-
this.store = store;
|
15
|
-
this.categorySelectors = getDaffCategorySelectors();
|
16
|
-
this.category$ = this.store.pipe(select(this.categorySelectors.selectCurrentCategory));
|
17
|
-
this.products$ = this.store.pipe(select(this.categorySelectors.selectCategoryPageProducts));
|
18
|
-
this.totalProducts$ = this.store.pipe(select(this.categorySelectors.selectCategoryPageTotalProducts));
|
19
|
-
this.metadata$ = this.store.pipe(select(this.categorySelectors.selectCategoryPageMetadata));
|
20
|
-
this.pageLoadingState$ = this.store.pipe(select(this.categorySelectors.selectCategoryPageState));
|
21
|
-
this.isPageMutating$ = this.store.pipe(select(this.categorySelectors.selectIsCategoryPageMutating));
|
22
|
-
this.isPageResolving$ = this.store.pipe(select(this.categorySelectors.selectIsCategoryPageResolving));
|
23
|
-
this.currentPage$ = this.store.pipe(select(this.categorySelectors.selectCategoryCurrentPage));
|
24
|
-
this.totalPages$ = this.store.pipe(select(this.categorySelectors.selectCategoryTotalPages));
|
25
|
-
this.pageSize$ = this.store.pipe(select(this.categorySelectors.selectCategoryPageSize));
|
26
|
-
this.filters$ = this.store.pipe(select(this.categorySelectors.selectCategoryFilters));
|
27
|
-
this.sortOptions$ = this.store.pipe(select(this.categorySelectors.selectCategorySortOptions));
|
28
|
-
this.appliedFilters$ = this.store.pipe(select(this.categorySelectors.selectCategoryPageAppliedFilters));
|
29
|
-
this.appliedSortOption$ = this.store.pipe(select(this.categorySelectors.selectCategoryPageAppliedSortOption));
|
30
|
-
this.appliedSortDirection$ = this.store.pipe(select(this.categorySelectors.selectCategoryPageAppliedSortDirection));
|
31
|
-
this.categoryLoading$ = this.store.pipe(select(this.categorySelectors.selectCategoryLoading));
|
32
|
-
this.productsLoading$ = this.store.pipe(select(this.categorySelectors.selectCategoryProductsLoading));
|
33
|
-
this.errors$ = this.store.pipe(select(this.categorySelectors.selectCategoryErrors));
|
34
|
-
this.isCategoryEmpty$ = this.store.pipe(select(this.categorySelectors.selectIsCategoryPageEmpty));
|
35
|
-
}
|
36
|
-
getCategoryById(id) {
|
37
|
-
return this.store.pipe(select(this.categorySelectors.selectCategory(id)));
|
38
|
-
}
|
39
|
-
getProductsByCategory(categoryId) {
|
40
|
-
return this.store.pipe(select(this.categorySelectors.selectProductsByCategory(categoryId)));
|
41
|
-
}
|
42
|
-
getTotalProductsByCategory(categoryId) {
|
43
|
-
return this.store.pipe(select(this.categorySelectors.selectTotalProductsByCategory(categoryId)));
|
44
|
-
}
|
45
|
-
/**
|
46
|
-
* Dispatches the given action.
|
47
|
-
*
|
48
|
-
* @param action action to dispatch.
|
49
|
-
*/
|
50
|
-
dispatch(action) {
|
51
|
-
this.store.dispatch(action);
|
52
|
-
}
|
53
|
-
}
|
54
|
-
/** @nocollapse */ /** @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 });
|
55
|
-
/** @nocollapse */ /** @nocollapse */ DaffCategoryFacade.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryFacade, providedIn: 'root' });
|
56
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryFacade, decorators: [{
|
57
|
-
type: Injectable,
|
58
|
-
args: [{
|
59
|
-
providedIn: 'root',
|
60
|
-
}]
|
61
|
-
}], ctorParameters: function () { return [{ type: i1.Store }]; } });
|
62
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkuZmFjYWRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jYXRlZ29yeS9zdGF0ZS9zcmMvZmFjYWRlcy9jYXRlZ29yeS5mYWNhZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsS0FBSyxFQUNMLE1BQU0sR0FFUCxNQUFNLGFBQWEsQ0FBQztBQXVCckIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7OztBQUcxRTs7Ozs7R0FLRztBQUlILE1BQU0sT0FBTyxrQkFBa0I7SUF5RDdCLFlBQW9CLEtBQThDO1FBQTlDLFVBQUssR0FBTCxLQUFLLENBQXlDO1FBcEQxRCxzQkFBaUIsR0FBRyx3QkFBd0IsRUFBTyxDQUFDO1FBcUQzRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDO1FBQ3ZGLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUM7UUFDNUYsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLCtCQUErQixDQUFDLENBQUMsQ0FBQztRQUN0RyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDO1FBQzVGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FB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eEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHdCQUF3QixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRUQsMEJBQTBCLENBQUMsVUFBbUI7UUFDN0MsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLDZCQUE2QixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBd0JEOzs7O09BSUc7SUFDSCxRQUFRLENBQUMsTUFBYztRQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QixDQUFDOztxSkF0RlUsa0JBQWtCO3lKQUFsQixrQkFBa0IsY0FGakIsTUFBTTsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU3RvcmUsXG4gIHNlbGVjdCxcbiAgQWN0aW9uLFxufSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIERhZmZHZW5lcmljQ2F0ZWdvcnksXG4gIERhZmZDYXRlZ29yeSxcbiAgRGFmZkNhdGVnb3J5UGFnZU1ldGFkYXRhLFxufSBmcm9tICdAZGFmZm9kaWwvY2F0ZWdvcnknO1xuaW1wb3J0IHtcbiAgRGFmZlNvcnREaXJlY3Rpb25FbnVtLFxuICBEYWZmU29ydE9wdGlvbixcblxufSBmcm9tICdAZGFmZm9kaWwvY29yZSc7XG5pbXBvcnQgeyBEYWZmU3RhdGVFcnJvciB9IGZyb20gJ0BkYWZmb2RpbC9jb3JlL3N0YXRlJztcbmltcG9ydCB7XG4gIERhZmZQcm9kdWN0LFxuICBEYWZmUHJvZHVjdEZpbHRlcixcbn0gZnJvbSAnQGRhZmZvZGlsL3Byb2R1Y3QnO1xuXG5pbXBvcnQge1xuICBEYWZmQ2F0ZWdvcnlTdGF0ZVJvb3RTbGljZSxcbiAgRGFmZkNhdGVnb3J5UmVkdWNlclN0YXRlLFxufSBmcm9tICcuLi9yZWR1Y2Vycy9wdWJsaWNfYXBpJztcbmltcG9ydCB7IGdldERhZmZDYXRlZ29yeVNlbGVjdG9ycyB9IGZyb20gJy4uL3NlbGVjdG9ycy9jYXRlZ29yeS5zZWxlY3Rvcic7XG5pbXBvcnQgeyBEYWZmQ2F0ZWdvcnlGYWNhZGVJbnRlcmZhY2UgfSBmcm9tICcuL2NhdGVnb3J5LWZhY2FkZS5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIEEgZmFjYWRlIGZvciBpbnRlcmFjdGluZyB3aXRoIHRoZSBjYXRlZ29yeSBzdGF0ZS5cbiAqIFRoaXMgZmFjYWRlIGV4cG9zZXMgbWFueSBwYXJ0cyBvZiB0aGUgc3RhdGUgZm9yIGVhc3kgYWNjZXNzIGFuZCBhbGxvd3MgZGlzcGF0Y2hpbmcgb2YgYWN0aW9ucy5cbiAqXG4gKiBAaW5oZXJpdGRvY1xuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRGFmZkNhdGVnb3J5RmFjYWRlPFxuICBWIGV4dGVuZHMgRGFmZkdlbmVyaWNDYXRlZ29yeTxWPiA9IERhZmZDYXRlZ29yeSxcbiAgVyBleHRlbmRzIERhZmZQcm9kdWN0ID0gRGFmZlByb2R1Y3Rcbj4gaW1wbGVtZW50cyBEYWZmQ2F0ZWdvcnlGYWNhZGVJbnRlcmZhY2U8VixXPiB7XG5cbiAgcHJpdmF0ZSBjYXRlZ29yeVNlbGVjdG9ycyA9IGdldERhZmZDYXRlZ29yeVNlbGVjdG9yczxWLFc+KCk7XG5cbiAgY2F0ZWdvcnkkOiBPYnNlcnZhYmxlPFY+O1xuXG4gIG1ldGFkYXRhJDogT2JzZXJ2YWJsZTxEYWZmQ2F0ZWdvcnlQYWdlTWV0YWRhdGE+O1xuXG4gIHBhZ2VMb2FkaW5nU3RhdGUkOiBPYnNlcnZhYmxlPERhZmZDYXRlZ29yeVJlZHVjZXJTdGF0ZVsnZGFmZlN0YXRlJ10+O1xuXG4gIGlzUGFnZU11dGF0aW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBpc1BhZ2VSZXNvbHZpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIGN1cnJlbnRQYWdlJDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuXG4gIHRvdGFsUGFnZXMkOiBPYnNlcnZhYmxlPG51bWJlcj47XG5cbiAgdG90YWxQcm9kdWN0cyQ6IE9ic2VydmFibGU8bnVtYmVyPjtcblxuICBwYWdlU2l6ZSQ6IE9ic2VydmFibGU8bnVtYmVyPjtcblxuICBmaWx0ZXJzJDogT2JzZXJ2YWJsZTxSZWNvcmQ8RGFmZlByb2R1Y3RGaWx0ZXJbJ25hbWUnXSwgRGFmZlByb2R1Y3RGaWx0ZXI+PjtcblxuICBzb3J0T3B0aW9ucyQ6IE9ic2VydmFibGU8RGFmZlNvcnRPcHRpb25bXT47XG5cbiAgYXBwbGllZEZpbHRlcnMkOiBPYnNlcnZhYmxlPFJlY29yZDxEYWZmUHJvZHVjdEZpbHRlclsnbmFtZSddLCBEYWZmUHJvZHVjdEZpbHRlcj4+O1xuXG4gIGFwcGxpZWRTb3J0T3B0aW9uJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIGFwcGxpZWRTb3J0RGlyZWN0aW9uJDogT2JzZXJ2YWJsZTxEYWZmU29ydERpcmVjdGlvbkVudW0+O1xuXG4gIHByb2R1Y3RzJDogT2JzZXJ2YWJsZTxXW10+O1xuXG4gIGNhdGVnb3J5TG9hZGluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgcHJvZHVjdHNMb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBlcnJvcnMkOiBPYnNlcnZhYmxlPERhZmZTdGF0ZUVycm9yW10+O1xuXG4gIGlzQ2F0ZWdvcnlFbXB0eSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgZ2V0Q2F0ZWdvcnlCeUlkKGlkOiBWWydpZCddKTogT2JzZXJ2YWJsZTxWPiB7XG5cdCAgcmV0dXJuIHRoaXMuc3RvcmUucGlwZShzZWxlY3QodGhpcy5jYXRlZ29yeVNlbGVjdG9ycy5zZWxlY3RDYXRlZ29yeShpZCkpKTtcbiAgfVxuXG4gIGdldFByb2R1Y3RzQnlDYXRlZ29yeShjYXRlZ29yeUlkOiBWWydpZCddKTogT2JzZXJ2YWJsZTxXW10+IHtcblx0ICByZXR1cm4gdGhpcy5zdG9yZS5waXBlKHNlbGVjdCh0aGlzLmNhdGVnb3J5U2VsZWN0b3JzLnNlbGVjdFByb2R1Y3RzQnlDYXRlZ29yeShjYXRlZ29yeUlkKSkpO1xuICB9XG5cbiAgZ2V0VG90YWxQcm9kdWN0c0J5Q2F0ZWdvcnkoY2F0ZWdvcnlJZDogVlsnaWQnXSk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG5cdCAgcmV0dXJuIHRoaXMuc3RvcmUucGlwZShzZWxlY3QodGhpcy5jYXRlZ29yeVNlbGVjdG9ycy5zZWxlY3RUb3RhbFByb2R1Y3RzQnlDYXRlZ29yeShjYXRlZ29yeUlkKSkpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmU8RGFmZkNhdGVnb3J5U3RhdGVSb290U2xpY2U8ViwgVz4+KSB7XG5cdCAgdGhpcy5jYXRlZ29yeSQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMuY2F0ZWdvcnlTZWxlY3RvcnMuc2VsZWN0Q3VycmVudENhdGVnb3J5KSk7XG5cdCAgdGhpcy5wcm9kdWN0cyQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMuY2F0ZWdvcnlTZWxlY3RvcnMuc2VsZWN0Q2F0ZWdvcnlQYWdlUHJvZHVjdHMpKTtcblx0ICB0aGlzLnRvdGFsUHJvZHVjdHMkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdCh0aGlzLmNhdGVnb3J5U2VsZWN0b3JzLnNlbGVjdENhdGVnb3J5UGFnZVRvdGFsUHJvZHVjdHMpKTtcblx0ICB0aGlzLm1ldGFkYXRhJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QodGhpcy5jYXRlZ29yeVNlbGVjdG9ycy5zZWxlY3RDYXRlZ29yeVBhZ2VNZXRhZGF0YSkpO1xuXHQgIHRoaXMucGFnZUxvYWRpbmdTdGF0ZSQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMuY2F0ZWdvcnlTZWxlY3RvcnMuc2VsZWN0Q2F0ZWdvcnlQYWdlU3RhdGUpKTtcblx0ICB0aGlzLmlzUGFnZU11dGF0aW5nJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QodGhpcy5jYXRlZ29yeVNlbGVjdG9ycy5zZWxlY3RJc0NhdGVnb3J5UGFnZU11dGF0aW5nKSk7XG5cdCAgdGhpcy5pc1BhZ2VSZXNvbHZpbmckID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdCh0aGlzLmNhdGVnb3J5U2VsZWN0b3JzLnNlbGVjdElzQ2F0ZWdvcnlQYWdlUmVzb2x2aW5nKSk7XG5cdCAgdGhpcy5jdXJyZW50UGFnZSQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMuY2F0ZWdvcnlTZWxlY3RvcnMuc2VsZWN0Q2F0ZWdvcnlDdXJyZW50UGFnZSkpO1xuXHQgIHRoaXMudG90YWxQYWdlcyQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMuY2F0ZWdvcnlTZWxlY3RvcnMuc2VsZWN0Q2F0ZWdvcnlUb3RhbFBhZ2VzKSk7XG5cdCAgdGhpcy5wYWdlU2l6ZSQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMuY2F0ZWdvcnlTZWxlY3RvcnMuc2VsZWN0Q2F0ZWdvcnlQYWdlU2l6ZSkpO1xuXHQgIHRoaXMuZmlsdGVycyQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMuY2F0ZWdvcnlTZWxlY3RvcnMuc2VsZWN0Q2F0ZWdvcnlGaWx0ZXJzKSk7XG5cdCAgdGhpcy5zb3J0T3B0aW9ucyQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMuY2F0ZWdvcnlTZWxlY3RvcnMuc2VsZWN0Q2F0ZWdvcnlTb3J0T3B0aW9ucykpO1xuXHQgIHRoaXMuYXBwbGllZEZpbHRlcnMkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdCh0aGlzLmNhdGVnb3J5U2VsZWN0b3JzLnNlbGVjdENhdGVnb3J5UGFnZUFwcGxpZWRGaWx0ZXJzKSk7XG5cdCAgdGhpcy5hcHBsaWVkU29ydE9wdGlvbiQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMuY2F0ZWdvcnlTZWxlY3RvcnMuc2VsZWN0Q2F0ZWdvcnlQYWdlQXBwbGllZFNvcnRPcHRpb24pKTtcblx0ICB0aGlzLmFwcGxpZWRTb3J0RGlyZWN0aW9uJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QodGhpcy5jYXRlZ29yeVNlbGVjdG9ycy5zZWxlY3RDYXRlZ29yeVBhZ2VBcHBsaWVkU29ydERpcmVjdGlvbikpO1xuXHQgIHRoaXMuY2F0ZWdvcnlMb2FkaW5nJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QodGhpcy5jYXRlZ29yeVNlbGVjdG9ycy5zZWxlY3RDYXRlZ29yeUxvYWRpbmcpKTtcblx0ICB0aGlzLnByb2R1Y3RzTG9hZGluZyQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMuY2F0ZWdvcnlTZWxlY3RvcnMuc2VsZWN0Q2F0ZWdvcnlQcm9kdWN0c0xvYWRpbmcpKTtcblx0ICB0aGlzLmVycm9ycyQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMuY2F0ZWdvcnlTZWxlY3RvcnMuc2VsZWN0Q2F0ZWdvcnlFcnJvcnMpKTtcblx0ICB0aGlzLmlzQ2F0ZWdvcnlFbXB0eSQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMuY2F0ZWdvcnlTZWxlY3RvcnMuc2VsZWN0SXNDYXRlZ29yeVBhZ2VFbXB0eSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc3BhdGNoZXMgdGhlIGdpdmVuIGFjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIGFjdGlvbiBhY3Rpb24gdG8gZGlzcGF0Y2guXG4gICAqL1xuICBkaXNwYXRjaChhY3Rpb246IEFjdGlvbikge1xuXHQgIHRoaXMuc3RvcmUuZGlzcGF0Y2goYWN0aW9uKTtcbiAgfVxufVxuIl19
|