@daffodil/category 0.77.0 → 0.79.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.
Files changed (52) hide show
  1. package/driver/in-memory/backend/category.service.d.ts +3 -1
  2. package/driver/in-memory/collection-name.const.d.ts +1 -0
  3. package/driver/in-memory/drivers/category.service.d.ts +4 -3
  4. package/driver/interfaces/category-service.interface.d.ts +1 -2
  5. package/driver/magento/interfaces/config.interface.d.ts +1 -6
  6. package/driver/public_api.d.ts +1 -1
  7. package/esm2022/driver/in-memory/backend/category.service.mjs +3 -1
  8. package/esm2022/driver/in-memory/collection-name.const.mjs +2 -0
  9. package/esm2022/driver/in-memory/drivers/category-driver.module.mjs +6 -6
  10. package/esm2022/driver/in-memory/drivers/category.service.mjs +12 -8
  11. package/esm2022/driver/interfaces/category-service.interface.mjs +7 -3
  12. package/esm2022/driver/magento/category-driver.module.mjs +8 -31
  13. package/esm2022/driver/magento/interfaces/config.interface.mjs +8 -3
  14. package/esm2022/driver/public_api.mjs +2 -2
  15. package/esm2022/driver/testing/drivers/category-driver.module.mjs +3 -6
  16. package/esm2022/routing/injection-tokens/public_api.mjs +2 -2
  17. package/esm2022/routing/injection-tokens/request/builder.token.mjs +8 -3
  18. package/esm2022/routing/injection-tokens/request/builders.token.mjs +6 -11
  19. package/esm2022/routing/resolvers/category-page/category-page.resolver.mjs +2 -2
  20. package/esm2022/state/actions/category-page-filter.actions.mjs +2 -2
  21. package/esm2022/state/category-state.module.mjs +4 -4
  22. package/esm2022/state/effects/category-page-metadata.effects.mjs +55 -0
  23. package/esm2022/state/effects/category-page.effects.mjs +8 -38
  24. package/esm2022/state/injection-tokens/error-matcher.token.mjs +8 -3
  25. package/esm2022/state/injection-tokens/public_api.mjs +2 -2
  26. package/esm2022/state/reducers/token/extra.token.mjs +5 -13
  27. package/esm2022/state/reducers/token/reducers.token.mjs +9 -3
  28. package/fesm2022/daffodil-category-driver-in-memory.mjs +43 -40
  29. package/fesm2022/daffodil-category-driver-in-memory.mjs.map +1 -1
  30. package/fesm2022/daffodil-category-driver-magento.mjs +14 -32
  31. package/fesm2022/daffodil-category-driver-magento.mjs.map +1 -1
  32. package/fesm2022/daffodil-category-driver-testing.mjs +2 -5
  33. package/fesm2022/daffodil-category-driver-testing.mjs.map +1 -1
  34. package/fesm2022/daffodil-category-driver.mjs +7 -3
  35. package/fesm2022/daffodil-category-driver.mjs.map +1 -1
  36. package/fesm2022/daffodil-category-routing.mjs +14 -13
  37. package/fesm2022/daffodil-category-routing.mjs.map +1 -1
  38. package/fesm2022/daffodil-category-state.mjs +32 -54
  39. package/fesm2022/daffodil-category-state.mjs.map +1 -1
  40. package/package.json +1 -1
  41. package/routing/injection-tokens/public_api.d.ts +1 -1
  42. package/routing/injection-tokens/request/builder.token.d.ts +1 -5
  43. package/routing/injection-tokens/request/builders.token.d.ts +1 -23
  44. package/routing/resolvers/category-page/category-page.resolver.d.ts +1 -1
  45. package/state/actions/category-page-filter.actions.d.ts +1 -1
  46. package/state/effects/{category-page-filter.effects.d.ts → category-page-metadata.effects.d.ts} +4 -4
  47. package/state/effects/category-page.effects.d.ts +1 -8
  48. package/state/injection-tokens/error-matcher.token.d.ts +1 -6
  49. package/state/injection-tokens/public_api.d.ts +1 -1
  50. package/state/reducers/token/extra.token.d.ts +1 -20
  51. package/state/reducers/token/reducers.token.d.ts +1 -8
  52. package/esm2022/state/effects/category-page-filter.effects.mjs +0 -55
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@daffodil/category","nx":{"targets":{"build":{"outputs":["{workspaceRoot}/dist/category"]}}},"version":"0.77.0","description":"An ecommerce categories package that has multi-platform support and state management features.","repository":{"type":"git","url":"https://github.com/graycoreio/daffodil"},"author":"Graycore LLC","license":"MIT","bugs":{"url":"https://github.com/graycoreio/daffodil/issues"},"publishConfig":{"directory":"../../dist/category"},"homepage":"https://github.com/graycoreio/daffodil","peerDependencies":{"@angular/common":"^18.2.2","@angular/core":"^18.2.2","@daffodil/core":"0.77.0","@daffodil/product":"0.77.0","@ngrx/effects":"^18.0.2","@ngrx/entity":"^18.0.2","@ngrx/store":"^18.0.2","rxjs":"7.8.1"},"optionalDependencies":{"@apollo/client":"^3.0.0","@daffodil/driver":"0.77.0","angular-in-memory-web-api":"^0.18.0","apollo-angular":"^7.1.2","@faker-js/faker":"^7.6.0"},"module":"fesm2022/daffodil-category.mjs","typings":"index.d.ts","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2022":"./esm2022/daffodil-category.mjs","esm":"./esm2022/daffodil-category.mjs","default":"./fesm2022/daffodil-category.mjs"},"./driver":{"types":"./driver/index.d.ts","esm2022":"./esm2022/driver/daffodil-category-driver.mjs","esm":"./esm2022/driver/daffodil-category-driver.mjs","default":"./fesm2022/daffodil-category-driver.mjs"},"./routing":{"types":"./routing/index.d.ts","esm2022":"./esm2022/routing/daffodil-category-routing.mjs","esm":"./esm2022/routing/daffodil-category-routing.mjs","default":"./fesm2022/daffodil-category-routing.mjs"},"./state":{"types":"./state/index.d.ts","esm2022":"./esm2022/state/daffodil-category-state.mjs","esm":"./esm2022/state/daffodil-category-state.mjs","default":"./fesm2022/daffodil-category-state.mjs"},"./testing":{"types":"./testing/index.d.ts","esm2022":"./esm2022/testing/daffodil-category-testing.mjs","esm":"./esm2022/testing/daffodil-category-testing.mjs","default":"./fesm2022/daffodil-category-testing.mjs"},"./driver/in-memory":{"types":"./driver/in-memory/index.d.ts","esm2022":"./esm2022/driver/in-memory/daffodil-category-driver-in-memory.mjs","esm":"./esm2022/driver/in-memory/daffodil-category-driver-in-memory.mjs","default":"./fesm2022/daffodil-category-driver-in-memory.mjs"},"./driver/magento":{"types":"./driver/magento/index.d.ts","esm2022":"./esm2022/driver/magento/daffodil-category-driver-magento.mjs","esm":"./esm2022/driver/magento/daffodil-category-driver-magento.mjs","default":"./fesm2022/daffodil-category-driver-magento.mjs"},"./driver/testing":{"types":"./driver/testing/index.d.ts","esm2022":"./esm2022/driver/testing/daffodil-category-driver-testing.mjs","esm":"./esm2022/driver/testing/daffodil-category-driver-testing.mjs","default":"./fesm2022/daffodil-category-driver-testing.mjs"},"./state/testing":{"types":"./state/testing/index.d.ts","esm2022":"./esm2022/state/testing/daffodil-category-state-testing.mjs","esm":"./esm2022/state/testing/daffodil-category-state-testing.mjs","default":"./fesm2022/daffodil-category-state-testing.mjs"},"./driver/magento/testing":{"types":"./driver/magento/testing/index.d.ts","esm2022":"./esm2022/driver/magento/testing/daffodil-category-driver-magento-testing.mjs","esm":"./esm2022/driver/magento/testing/daffodil-category-driver-magento-testing.mjs","default":"./fesm2022/daffodil-category-driver-magento-testing.mjs"}},"sideEffects":false,"dependencies":{"tslib":"^2.3.0"}}
1
+ {"name":"@daffodil/category","nx":{"targets":{"build":{"outputs":["{workspaceRoot}/dist/category"]}}},"version":"0.79.0","description":"An ecommerce categories package that has multi-platform support and state management features.","repository":{"type":"git","url":"https://github.com/graycoreio/daffodil"},"author":"Graycore LLC","license":"MIT","bugs":{"url":"https://github.com/graycoreio/daffodil/issues"},"publishConfig":{"directory":"../../dist/category"},"homepage":"https://github.com/graycoreio/daffodil","peerDependencies":{"@angular/common":"^18.2.2","@angular/core":"^18.2.2","@daffodil/core":"0.79.0","@daffodil/product":"0.79.0","@ngrx/effects":"^18.0.2","@ngrx/entity":"^18.0.2","@ngrx/store":"^18.0.2","rxjs":"7.8.1"},"optionalDependencies":{"@apollo/client":"^3.0.0","@daffodil/driver":"0.79.0","angular-in-memory-web-api":"^0.18.0","apollo-angular":"^7.1.2","@faker-js/faker":"^7.6.0"},"module":"fesm2022/daffodil-category.mjs","typings":"index.d.ts","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2022":"./esm2022/daffodil-category.mjs","esm":"./esm2022/daffodil-category.mjs","default":"./fesm2022/daffodil-category.mjs"},"./driver":{"types":"./driver/index.d.ts","esm2022":"./esm2022/driver/daffodil-category-driver.mjs","esm":"./esm2022/driver/daffodil-category-driver.mjs","default":"./fesm2022/daffodil-category-driver.mjs"},"./routing":{"types":"./routing/index.d.ts","esm2022":"./esm2022/routing/daffodil-category-routing.mjs","esm":"./esm2022/routing/daffodil-category-routing.mjs","default":"./fesm2022/daffodil-category-routing.mjs"},"./state":{"types":"./state/index.d.ts","esm2022":"./esm2022/state/daffodil-category-state.mjs","esm":"./esm2022/state/daffodil-category-state.mjs","default":"./fesm2022/daffodil-category-state.mjs"},"./testing":{"types":"./testing/index.d.ts","esm2022":"./esm2022/testing/daffodil-category-testing.mjs","esm":"./esm2022/testing/daffodil-category-testing.mjs","default":"./fesm2022/daffodil-category-testing.mjs"},"./driver/in-memory":{"types":"./driver/in-memory/index.d.ts","esm2022":"./esm2022/driver/in-memory/daffodil-category-driver-in-memory.mjs","esm":"./esm2022/driver/in-memory/daffodil-category-driver-in-memory.mjs","default":"./fesm2022/daffodil-category-driver-in-memory.mjs"},"./driver/magento":{"types":"./driver/magento/index.d.ts","esm2022":"./esm2022/driver/magento/daffodil-category-driver-magento.mjs","esm":"./esm2022/driver/magento/daffodil-category-driver-magento.mjs","default":"./fesm2022/daffodil-category-driver-magento.mjs"},"./driver/testing":{"types":"./driver/testing/index.d.ts","esm2022":"./esm2022/driver/testing/daffodil-category-driver-testing.mjs","esm":"./esm2022/driver/testing/daffodil-category-driver-testing.mjs","default":"./fesm2022/daffodil-category-driver-testing.mjs"},"./state/testing":{"types":"./state/testing/index.d.ts","esm2022":"./esm2022/state/testing/daffodil-category-state-testing.mjs","esm":"./esm2022/state/testing/daffodil-category-state-testing.mjs","default":"./fesm2022/daffodil-category-state-testing.mjs"},"./driver/magento/testing":{"types":"./driver/magento/testing/index.d.ts","esm2022":"./esm2022/driver/magento/testing/daffodil-category-driver-magento-testing.mjs","esm":"./esm2022/driver/magento/testing/daffodil-category-driver-magento-testing.mjs","default":"./fesm2022/daffodil-category-driver-magento-testing.mjs"}},"sideEffects":false,"dependencies":{"tslib":"^2.3.0"}}
@@ -1 +1 @@
1
- export { DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS, daffProvideCategoryRoutingRequestBuilders, DaffCategoryRoutingRequestBuilder, } from './request/builders.token';
1
+ export { DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS, provideDaffCategoryRoutingRequestBuilders, DaffCategoryRoutingRequestBuilder, } from './request/builders.token';
@@ -1,6 +1,2 @@
1
- import { InjectionToken } from '@angular/core';
2
1
  import { DaffCategoryRoutingRequestBuilder } from './builders.token';
3
- /**
4
- * An internal token to combine the {@link DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS} into a single builder.
5
- */
6
- export declare const DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER: InjectionToken<DaffCategoryRoutingRequestBuilder>;
2
+ export declare const DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER: import("@angular/core").InjectionToken<DaffCategoryRoutingRequestBuilder>, provideDaffCategoryRoutingOptionsBuilder: <R extends DaffCategoryRoutingRequestBuilder = DaffCategoryRoutingRequestBuilder>(value: R) => import("@angular/core").ValueProvider;
@@ -1,26 +1,4 @@
1
- import { InjectionToken, ValueProvider } from '@angular/core';
2
1
  import { ActivatedRouteSnapshot } from '@angular/router';
3
2
  import { DaffCollectionRequest } from '@daffodil/core';
4
3
  export type DaffCategoryRoutingRequestBuilder<T extends DaffCollectionRequest = DaffCollectionRequest> = (route: ActivatedRouteSnapshot) => T;
5
- /**
6
- * A multi-provider injection token for category request builders.
7
- * These builders are called with the requested route during the resolve step
8
- * and return options to pass to the category driver.
9
- */
10
- export declare const DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS: InjectionToken<DaffCategoryRoutingRequestBuilder<DaffCollectionRequest>[]>;
11
- /**
12
- * Provides category request builders for the routing layer.
13
- *
14
- * See {@link DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS}.
15
- *
16
- * ```ts
17
- * providers: [
18
- * ...daffProvideCategoryRoutingRequestBuilders(
19
- * route => ({
20
- * currentPage: route.queryParams.page
21
- * })
22
- * )
23
- * ]
24
- * ```
25
- */
26
- export declare function daffProvideCategoryRoutingRequestBuilders(...builders: DaffCategoryRoutingRequestBuilder[]): ValueProvider[];
4
+ export declare const DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS: import("@angular/core").InjectionToken<DaffCategoryRoutingRequestBuilder<DaffCollectionRequest>[]>, provideDaffCategoryRoutingRequestBuilders: <R extends DaffCategoryRoutingRequestBuilder<DaffCollectionRequest> = DaffCategoryRoutingRequestBuilder<DaffCollectionRequest>>(...values: R[]) => Array<import("@angular/core").ValueProvider>;
@@ -6,7 +6,7 @@ import * as i0 from "@angular/core";
6
6
  * Resolves category data for category pages, and will only resolve the url after a category request succeeds or fails. This resolver expects a url
7
7
  * of the form `some/url/{id}` where `{id}` is the category id.
8
8
  *
9
- * @deprecated
9
+ * @deprecated Deprecated in version 0.78.0. Will be removed in version 0.81.0.
10
10
  * @see DaffCategoryPageIdResolver
11
11
  */
12
12
  export declare class DaffCategoryPageResolver {
@@ -19,7 +19,7 @@ export declare enum DaffCategoryPageProductCollectionActionTypes {
19
19
  * An action for changing the filters for the current category.
20
20
  *
21
21
  * @param filters - Filters to be changed on the current category.
22
- * @deprecated use {@link DaffCategoryPageReplaceFilters} or {@link DaffCategoryPageApplyFilters}
22
+ * @deprecated use {@link DaffCategoryPageReplaceFilters} or {@link DaffCategoryPageApplyFilters} Deprecated in version 0.78.0. Will be removed in version 0.81.0.
23
23
  */
24
24
  export declare class DaffCategoryPageChangeFilters implements Action {
25
25
  filters: DaffFilterRequest[];
@@ -9,7 +9,7 @@ import { DaffProductGridLoadSuccess } from '@daffodil/product/state';
9
9
  import { DaffCategoryPageLoadSuccess, DaffCategoryPageLoadFailure } from '../actions/category-page.actions';
10
10
  import { DaffCategoryProductCollectionFacade } from '../facades/public_api';
11
11
  import * as i0 from "@angular/core";
12
- export declare class DaffCategoryPageFilterEffects<V extends DaffGenericCategory<V>, W extends DaffProduct> {
12
+ export declare class DaffCategoryPageMetadataEffects<V extends DaffGenericCategory<V>, W extends DaffProduct> {
13
13
  private actions$;
14
14
  private driver;
15
15
  private errorMatcher;
@@ -23,7 +23,7 @@ export declare class DaffCategoryPageFilterEffects<V extends DaffGenericCategory
23
23
  * @param throttleWindow the amount of time to delay when apply/removing filters
24
24
  * in a sequence.
25
25
  */
26
- updateFilters$: (throttleWindow: number, scheduler: AsyncScheduler) => Observable<DaffProductGridLoadSuccess | DaffCategoryPageLoadSuccess | DaffCategoryPageLoadFailure>;
27
- static ɵfac: i0.ɵɵFactoryDeclaration<DaffCategoryPageFilterEffects<any, any>, never>;
28
- static ɵprov: i0.ɵɵInjectableDeclaration<DaffCategoryPageFilterEffects<any, any>>;
26
+ update$: (throttleWindow: number, scheduler: AsyncScheduler) => Observable<DaffProductGridLoadSuccess | DaffCategoryPageLoadSuccess | DaffCategoryPageLoadFailure>;
27
+ static ɵfac: i0.ɵɵFactoryDeclaration<DaffCategoryPageMetadataEffects<any, any>, never>;
28
+ static ɵprov: i0.ɵɵInjectableDeclaration<DaffCategoryPageMetadataEffects<any, any>>;
29
29
  }
@@ -1,5 +1,4 @@
1
1
  import { Actions } from '@ngrx/effects';
2
- import { Store } from '@ngrx/store';
3
2
  import { Observable } from 'rxjs';
4
3
  import { DaffGenericCategory } from '@daffodil/category';
5
4
  import { DaffCategoryServiceInterface } from '@daffodil/category/driver';
@@ -10,15 +9,9 @@ export declare class DaffCategoryPageEffects<V extends DaffGenericCategory<V>, W
10
9
  private actions$;
11
10
  private driver;
12
11
  private errorMatcher;
13
- private store;
14
- constructor(actions$: Actions, driver: DaffCategoryServiceInterface<V, W>, errorMatcher: ErrorTransformer, store: Store<any>);
15
- private categorySelectors;
12
+ constructor(actions$: Actions, driver: DaffCategoryServiceInterface<V, W>, errorMatcher: ErrorTransformer);
16
13
  loadCategoryPage$: Observable<any>;
17
14
  loadCategoryPageByUrl$: Observable<any>;
18
- changeCategoryPageSize$: Observable<any>;
19
- changeCategoryCurrentPage$: Observable<any>;
20
- changeCategorySort$: Observable<any>;
21
- private processCategoryGetRequest;
22
15
  static ɵfac: i0.ɵɵFactoryDeclaration<DaffCategoryPageEffects<any, any>, never>;
23
16
  static ɵprov: i0.ɵɵInjectableDeclaration<DaffCategoryPageEffects<any, any>>;
24
17
  }
@@ -1,7 +1,2 @@
1
- import { InjectionToken } from '@angular/core';
2
1
  import { daffTransformErrorToStateError } from '@daffodil/core/state';
3
- /**
4
- * Transforms `DaffError`s into `DaffStateError`s before they are serialized into state.
5
- * Can be used to further refine Daffodil errors into more specific app errors.
6
- */
7
- export declare const DAFF_CATEGORY_ERROR_MATCHER: InjectionToken<typeof daffTransformErrorToStateError>;
2
+ export declare const DAFF_CATEGORY_ERROR_MATCHER: import("@angular/core").InjectionToken<typeof daffTransformErrorToStateError>, provideDaffCategoryErrorMatcher: <R extends typeof daffTransformErrorToStateError = typeof daffTransformErrorToStateError>(value: R) => import("@angular/core").ValueProvider;
@@ -1 +1 @@
1
- export { DAFF_CATEGORY_ERROR_MATCHER } from './error-matcher.token';
1
+ export * from './error-matcher.token';
@@ -1,22 +1,3 @@
1
- import { InjectionToken, Provider } from '@angular/core';
2
1
  import { ActionReducer } from '@ngrx/store';
3
2
  import { DaffCategoryReducersState } from '../category-reducers.interface';
4
- /**
5
- * A token to hold the injectable extra reducers.
6
- *
7
- * Prefer using {@link daffCategoryProvideExtraReducers}.
8
- */
9
- export declare const DAFF_CATEGORY_EXTRA_REDUCERS: InjectionToken<ActionReducer<DaffCategoryReducersState<import("@daffodil/category").DaffCategory>, import("@ngrx/store").Action<string>>[]>;
10
- /**
11
- * Provides additional reducers that run after the standard Daffodil category reducers.
12
- *
13
- * ```ts
14
- * providers: [
15
- * ...daffCategoryProvideExtraReducers(
16
- * myReducer1,
17
- * myReducer2
18
- * )
19
- * ]
20
- * ```
21
- */
22
- export declare function daffCategoryProvideExtraReducers(...reducers: ActionReducer<DaffCategoryReducersState>[]): Provider[];
3
+ export declare const DAFF_CATEGORY_EXTRA_REDUCERS: import("@angular/core").InjectionToken<ActionReducer<DaffCategoryReducersState<import("@daffodil/category").DaffCategory>, import("@ngrx/store").Action<string>>[]>, daffCategoryProvideExtraReducers: <R extends ActionReducer<DaffCategoryReducersState<import("@daffodil/category").DaffCategory>, import("@ngrx/store").Action<string>> = ActionReducer<DaffCategoryReducersState<import("@daffodil/category").DaffCategory>, import("@ngrx/store").Action<string>>>(...values: R[]) => Array<import("@angular/core").ValueProvider>;
@@ -1,11 +1,4 @@
1
- import { InjectionToken } from '@angular/core';
2
1
  import { ActionReducer } from '@ngrx/store';
3
2
  import { DaffCategory } from '@daffodil/category';
4
3
  import { DaffCategoryReducersState } from '../category-reducers.interface';
5
- /**
6
- * An internal token to hold the Daffodil category reducers.
7
- * Includes the extra and standard reducers.
8
- *
9
- * @docs-private
10
- */
11
- export declare const DAFF_CATEGORY_REDUCERS: InjectionToken<ActionReducer<DaffCategoryReducersState<DaffCategory>, import("@ngrx/store").Action<string>>>;
4
+ export declare const DAFF_CATEGORY_REDUCERS: import("@angular/core").InjectionToken<ActionReducer<DaffCategoryReducersState<DaffCategory>, import("@ngrx/store").Action<string>>>, provideDaffCategoryReducers: <R extends ActionReducer<DaffCategoryReducersState<DaffCategory>, import("@ngrx/store").Action<string>> = ActionReducer<DaffCategoryReducersState<DaffCategory>, import("@ngrx/store").Action<string>>>(value: R) => import("@angular/core").ValueProvider;
@@ -1,55 +0,0 @@
1
- import { Injectable, Inject, } from '@angular/core';
2
- import { Actions, createEffect, ofType, } from '@ngrx/effects';
3
- import { of, asyncScheduler, } from 'rxjs';
4
- import { switchMap, catchError, map, throttleTime, withLatestFrom, } from 'rxjs/operators';
5
- import { DaffCategoryRequestKind, } from '@daffodil/category';
6
- import { DaffCategoryDriver, } from '@daffodil/category/driver';
7
- import { daffFiltersToRequests, } from '@daffodil/core';
8
- import { DaffProductGridLoadSuccess } from '@daffodil/product/state';
9
- import { DaffCategoryPageProductCollectionActionTypes, } from '../actions/category-page-filter.actions';
10
- import { DaffCategoryPageLoadSuccess, DaffCategoryPageLoadFailure, } from '../actions/category-page.actions';
11
- import { DaffCategoryProductCollectionFacade } from '../facades/public_api';
12
- import { DAFF_CATEGORY_ERROR_MATCHER } from '../injection-tokens/public_api';
13
- import * as i0 from "@angular/core";
14
- import * as i1 from "@ngrx/effects";
15
- import * as i2 from "../facades/public_api";
16
- export class DaffCategoryPageFilterEffects {
17
- constructor(actions$, driver, errorMatcher, facade) {
18
- this.actions$ = actions$;
19
- this.driver = driver;
20
- this.errorMatcher = errorMatcher;
21
- this.facade = facade;
22
- /**
23
- * Updates the filters applied to the category page. It will take the currently
24
- * applied filters from state, form them into a request, and attempt to apply
25
- * that request to a backend service.
26
- *
27
- * @param throttleWindow the amount of time to delay when apply/removing filters
28
- * in a sequence.
29
- */
30
- 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]) => ({
31
- kind: DaffCategoryRequestKind.ID,
32
- id: metadata.id,
33
- filterRequests: daffFiltersToRequests(metadata.filters),
34
- appliedSortOption: metadata.appliedSortOption,
35
- appliedSortDirection: metadata.appliedSortDirection,
36
- currentPage: metadata.currentPage,
37
- pageSize: metadata.pageSize,
38
- })), throttleTime(throttleWindow, scheduler, { leading: true, trailing: true }), switchMap(payload => this.driver.get(payload).pipe(switchMap((resp) => [
39
- new DaffProductGridLoadSuccess(resp.products),
40
- new DaffCategoryPageLoadSuccess(resp),
41
- ]), catchError((error) => of(new DaffCategoryPageLoadFailure(this.errorMatcher(error))))))));
42
- }
43
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DaffCategoryPageFilterEffects, deps: [{ token: i1.Actions }, { token: DaffCategoryDriver }, { token: DAFF_CATEGORY_ERROR_MATCHER }, { token: i2.DaffCategoryProductCollectionFacade }], target: i0.ɵɵFactoryTarget.Injectable }); }
44
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DaffCategoryPageFilterEffects }); }
45
- }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DaffCategoryPageFilterEffects, decorators: [{
47
- type: Injectable
48
- }], ctorParameters: () => [{ type: i1.Actions }, { type: undefined, decorators: [{
49
- type: Inject,
50
- args: [DaffCategoryDriver]
51
- }] }, { type: undefined, decorators: [{
52
- type: Inject,
53
- args: [DAFF_CATEGORY_ERROR_MATCHER]
54
- }] }, { type: i2.DaffCategoryProductCollectionFacade }] });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktcGFnZS1maWx0ZXIuZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY2F0ZWdvcnkvc3RhdGUvc3JjL2VmZmVjdHMvY2F0ZWdvcnktcGFnZS1maWx0ZXIuZWZmZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsT0FBTyxFQUNQLFlBQVksRUFDWixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLEVBQUUsRUFFRixjQUFjLEdBQ2YsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixHQUFHLEVBQ0gsWUFBWSxFQUNaLGNBQWMsR0FDZixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFHTCx1QkFBdUIsR0FFeEIsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBQ0wsa0JBQWtCLEdBRW5CLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUVMLHFCQUFxQixHQUN0QixNQUFNLGdCQUFnQixDQUFDO0FBR3hCLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXJFLE9BQU8sRUFDTCw0Q0FBNEMsR0FFN0MsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRCxPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLDJCQUEyQixHQUM1QixNQUFNLGtDQUFrQyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7O0FBRzdFLE1BQU0sT0FBTyw2QkFBNkI7SUFLeEMsWUFDVSxRQUFpQixFQUNXLE1BQTBDLEVBQ2pDLFlBQThCLEVBQ25FLE1BQTJDO1FBSDNDLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDVyxXQUFNLEdBQU4sTUFBTSxDQUFvQztRQUNqQyxpQkFBWSxHQUFaLFlBQVksQ0FBa0I7UUFDbkUsV0FBTSxHQUFOLE1BQU0sQ0FBcUM7UUFHckQ7Ozs7Ozs7V0FPRztRQUVILG1CQUFjLEdBSVYsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsY0FBYyxHQUFHLEdBQUcsRUFBRSxTQUFTLEdBQUcsY0FBYyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDM0YsTUFBTSxDQUNKLDRDQUE0QyxDQUFDLCtCQUErQixFQUM1RSw0Q0FBNEMsQ0FBQyxnQ0FBZ0MsRUFDN0UsNENBQTRDLENBQUMsOEJBQThCLEVBQzNFLDRDQUE0QyxDQUFDLDhCQUE4QixFQUMzRSw0Q0FBNEMsQ0FBQywrQkFBK0IsRUFDNUUsNENBQTRDLENBQUMsOEJBQThCLENBQzVFLEVBQ0QsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQ3JDLEdBQUcsQ0FBQyxDQUNGLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBdUUsRUFDakUsRUFBRSxDQUFDLENBQUM7WUFDM0IsSUFBSSxFQUFFLHVCQUF1QixDQUFDLEVBQUU7WUFDaEMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFO1lBQ2YsY0FBYyxFQUFFLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFDdkQsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLGlCQUFpQjtZQUM3QyxvQkFBb0IsRUFBRSxRQUFRLENBQUMsb0JBQW9CO1lBQ25ELFdBQVcsRUFBRSxRQUFRLENBQUMsV0FBVztZQUNqQyxRQUFRLEVBQUUsUUFBUSxDQUFDLFFBQVE7U0FDNUIsQ0FBQyxDQUFDLEVBQ0gsWUFBWSxDQUFDLGNBQWMsRUFBRSxTQUFTLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUMxRSxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ2hELFNBQVMsQ0FBQyxDQUFDLElBQW1DLEVBQUUsRUFBRSxDQUFDO1lBQ2pELElBQUksMEJBQTBCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUM3QyxJQUFJLDJCQUEyQixDQUFDLElBQUksQ0FBQztTQUN0QyxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsS0FBZ0IsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksMkJBQTJCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDaEcsQ0FBQyxDQUNILENBQUMsQ0FBQztJQTVDSCxDQUFDO2lJQVZRLDZCQUE2Qix5Q0FPOUIsa0JBQWtCLGFBQ2xCLDJCQUEyQjtxSUFSMUIsNkJBQTZCOzsyRkFBN0IsNkJBQTZCO2tCQUR6QyxVQUFVOzswQkFRTixNQUFNOzJCQUFDLGtCQUFrQjs7MEJBQ3pCLE1BQU07MkJBQUMsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0YWJsZSxcbiAgSW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFjdGlvbnMsXG4gIGNyZWF0ZUVmZmVjdCxcbiAgb2ZUeXBlLFxufSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7XG4gIG9mLFxuICBPYnNlcnZhYmxlLFxuICBhc3luY1NjaGVkdWxlcixcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBc3luY1NjaGVkdWxlciB9IGZyb20gJ3J4anMvaW50ZXJuYWwvc2NoZWR1bGVyL0FzeW5jU2NoZWR1bGVyJztcbmltcG9ydCB7XG4gIHN3aXRjaE1hcCxcbiAgY2F0Y2hFcnJvcixcbiAgbWFwLFxuICB0aHJvdHRsZVRpbWUsXG4gIHdpdGhMYXRlc3RGcm9tLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gIERhZmZHZW5lcmljQ2F0ZWdvcnksXG4gIERhZmZHZXRDYXRlZ29yeVJlc3BvbnNlLFxuICBEYWZmQ2F0ZWdvcnlSZXF1ZXN0S2luZCxcbiAgRGFmZkNhdGVnb3J5SWRSZXF1ZXN0LFxufSBmcm9tICdAZGFmZm9kaWwvY2F0ZWdvcnknO1xuaW1wb3J0IHsgRGFmZkNhdGVnb3J5UGFnZU1ldGFkYXRhIH0gZnJvbSAnQGRhZmZvZGlsL2NhdGVnb3J5JztcbmltcG9ydCB7XG4gIERhZmZDYXRlZ29yeURyaXZlcixcbiAgRGFmZkNhdGVnb3J5U2VydmljZUludGVyZmFjZSxcbn0gZnJvbSAnQGRhZmZvZGlsL2NhdGVnb3J5L2RyaXZlcic7XG5pbXBvcnQge1xuICBEYWZmRXJyb3IsXG4gIGRhZmZGaWx0ZXJzVG9SZXF1ZXN0cyxcbn0gZnJvbSAnQGRhZmZvZGlsL2NvcmUnO1xuaW1wb3J0IHsgRXJyb3JUcmFuc2Zvcm1lciB9IGZyb20gJ0BkYWZmb2RpbC9jb3JlL3N0YXRlJztcbmltcG9ydCB7IERhZmZQcm9kdWN0IH0gZnJvbSAnQGRhZmZvZGlsL3Byb2R1Y3QnO1xuaW1wb3J0IHsgRGFmZlByb2R1Y3RHcmlkTG9hZFN1Y2Nlc3MgfSBmcm9tICdAZGFmZm9kaWwvcHJvZHVjdC9zdGF0ZSc7XG5cbmltcG9ydCB7XG4gIERhZmZDYXRlZ29yeVBhZ2VQcm9kdWN0Q29sbGVjdGlvbkFjdGlvblR5cGVzLFxuICBEYWZmQ2F0ZWdvcnlQYWdlUHJvZHVjdENvbGxlY3Rpb25BY3Rpb25zLFxufSBmcm9tICcuLi9hY3Rpb25zL2NhdGVnb3J5LXBhZ2UtZmlsdGVyLmFjdGlvbnMnO1xuaW1wb3J0IHtcbiAgRGFmZkNhdGVnb3J5UGFnZUxvYWRTdWNjZXNzLFxuICBEYWZmQ2F0ZWdvcnlQYWdlTG9hZEZhaWx1cmUsXG59IGZyb20gJy4uL2FjdGlvbnMvY2F0ZWdvcnktcGFnZS5hY3Rpb25zJztcbmltcG9ydCB7IERhZmZDYXRlZ29yeVByb2R1Y3RDb2xsZWN0aW9uRmFjYWRlIH0gZnJvbSAnLi4vZmFjYWRlcy9wdWJsaWNfYXBpJztcbmltcG9ydCB7IERBRkZfQ0FURUdPUllfRVJST1JfTUFUQ0hFUiB9IGZyb20gJy4uL2luamVjdGlvbi10b2tlbnMvcHVibGljX2FwaSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEYWZmQ2F0ZWdvcnlQYWdlRmlsdGVyRWZmZWN0czxcbiAgViBleHRlbmRzIERhZmZHZW5lcmljQ2F0ZWdvcnk8Vj4sXG4gIFcgZXh0ZW5kcyBEYWZmUHJvZHVjdFxuPiB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhY3Rpb25zJDogQWN0aW9ucyxcbiAgICBASW5qZWN0KERhZmZDYXRlZ29yeURyaXZlcikgcHJpdmF0ZSBkcml2ZXI6IERhZmZDYXRlZ29yeVNlcnZpY2VJbnRlcmZhY2U8ViwgVz4sXG4gICAgQEluamVjdChEQUZGX0NBVEVHT1JZX0VSUk9SX01BVENIRVIpIHByaXZhdGUgZXJyb3JNYXRjaGVyOiBFcnJvclRyYW5zZm9ybWVyLFxuICAgIHByaXZhdGUgZmFjYWRlOiBEYWZmQ2F0ZWdvcnlQcm9kdWN0Q29sbGVjdGlvbkZhY2FkZSxcbiAgKXt9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGZpbHRlcnMgYXBwbGllZCB0byB0aGUgY2F0ZWdvcnkgcGFnZS4gSXQgd2lsbCB0YWtlIHRoZSBjdXJyZW50bHlcbiAgICogYXBwbGllZCBmaWx0ZXJzIGZyb20gc3RhdGUsIGZvcm0gdGhlbSBpbnRvIGEgcmVxdWVzdCwgYW5kIGF0dGVtcHQgdG8gYXBwbHlcbiAgICogdGhhdCByZXF1ZXN0IHRvIGEgYmFja2VuZCBzZXJ2aWNlLlxuICAgKlxuICAgKiBAcGFyYW0gdGhyb3R0bGVXaW5kb3cgdGhlIGFtb3VudCBvZiB0aW1lIHRvIGRlbGF5IHdoZW4gYXBwbHkvcmVtb3ZpbmcgZmlsdGVyc1xuICAgKiBpbiBhIHNlcXVlbmNlLlxuICAgKi9cblxuICB1cGRhdGVGaWx0ZXJzJDogKHRocm90dGxlV2luZG93OiBudW1iZXIsIHNjaGVkdWxlcjogQXN5bmNTY2hlZHVsZXIpID0+IE9ic2VydmFibGU8XG4gIERhZmZQcm9kdWN0R3JpZExvYWRTdWNjZXNzXG4gIHwgRGFmZkNhdGVnb3J5UGFnZUxvYWRTdWNjZXNzXG4gIHwgRGFmZkNhdGVnb3J5UGFnZUxvYWRGYWlsdXJlXG4gID4gPSBjcmVhdGVFZmZlY3QoKCkgPT4gKHRocm90dGxlV2luZG93ID0gMzAwLCBzY2hlZHVsZXIgPSBhc3luY1NjaGVkdWxlcikgPT4gdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKFxuICAgICAgICBEYWZmQ2F0ZWdvcnlQYWdlUHJvZHVjdENvbGxlY3Rpb25BY3Rpb25UeXBlcy5DYXRlZ29yeVBhZ2VDaGFuZ2VGaWx0ZXJzQWN0aW9uLFxuICAgICAgICBEYWZmQ2F0ZWdvcnlQYWdlUHJvZHVjdENvbGxlY3Rpb25BY3Rpb25UeXBlcy5DYXRlZ29yeVBhZ2VSZXBsYWNlRmlsdGVyc0FjdGlvbixcbiAgICAgICAgRGFmZkNhdGVnb3J5UGFnZVByb2R1Y3RDb2xsZWN0aW9uQWN0aW9uVHlwZXMuQ2F0ZWdvcnlQYWdlQXBwbHlGaWx0ZXJzQWN0aW9uLFxuICAgICAgICBEYWZmQ2F0ZWdvcnlQYWdlUHJvZHVjdENvbGxlY3Rpb25BY3Rpb25UeXBlcy5DYXRlZ29yeVBhZ2VDbGVhckZpbHRlcnNBY3Rpb24sXG4gICAgICAgIERhZmZDYXRlZ29yeVBhZ2VQcm9kdWN0Q29sbGVjdGlvbkFjdGlvblR5cGVzLkNhdGVnb3J5UGFnZVJlbW92ZUZpbHRlcnNBY3Rpb24sXG4gICAgICAgIERhZmZDYXRlZ29yeVBhZ2VQcm9kdWN0Q29sbGVjdGlvbkFjdGlvblR5cGVzLkNhdGVnb3J5UGFnZVRvZ2dsZUZpbHRlckFjdGlvbixcbiAgICAgICksXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLmZhY2FkZS5tZXRhZGF0YSQpLFxuICAgICAgbWFwKChcbiAgICAgICAgW2FjdGlvbiwgbWV0YWRhdGFdOiBbRGFmZkNhdGVnb3J5UGFnZVByb2R1Y3RDb2xsZWN0aW9uQWN0aW9ucywgRGFmZkNhdGVnb3J5UGFnZU1ldGFkYXRhXSxcbiAgICAgICk6IERhZmZDYXRlZ29yeUlkUmVxdWVzdCA9PiAoe1xuICAgICAgICBraW5kOiBEYWZmQ2F0ZWdvcnlSZXF1ZXN0S2luZC5JRCxcbiAgICAgICAgaWQ6IG1ldGFkYXRhLmlkLFxuICAgICAgICBmaWx0ZXJSZXF1ZXN0czogZGFmZkZpbHRlcnNUb1JlcXVlc3RzKG1ldGFkYXRhLmZpbHRlcnMpLFxuICAgICAgICBhcHBsaWVkU29ydE9wdGlvbjogbWV0YWRhdGEuYXBwbGllZFNvcnRPcHRpb24sXG4gICAgICAgIGFwcGxpZWRTb3J0RGlyZWN0aW9uOiBtZXRhZGF0YS5hcHBsaWVkU29ydERpcmVjdGlvbixcbiAgICAgICAgY3VycmVudFBhZ2U6IG1ldGFkYXRhLmN1cnJlbnRQYWdlLFxuICAgICAgICBwYWdlU2l6ZTogbWV0YWRhdGEucGFnZVNpemUsXG4gICAgICB9KSksXG4gICAgICB0aHJvdHRsZVRpbWUodGhyb3R0bGVXaW5kb3csIHNjaGVkdWxlciwgeyBsZWFkaW5nOiB0cnVlLCB0cmFpbGluZzogdHJ1ZSB9KSxcbiAgICAgIHN3aXRjaE1hcChwYXlsb2FkID0+IHRoaXMuZHJpdmVyLmdldChwYXlsb2FkKS5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHJlc3A6IERhZmZHZXRDYXRlZ29yeVJlc3BvbnNlPFYsIFc+KSA9PiBbXG4gICAgICAgICAgbmV3IERhZmZQcm9kdWN0R3JpZExvYWRTdWNjZXNzKHJlc3AucHJvZHVjdHMpLFxuICAgICAgICAgIG5ldyBEYWZmQ2F0ZWdvcnlQYWdlTG9hZFN1Y2Nlc3MocmVzcCksXG4gICAgICAgIF0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogRGFmZkVycm9yKSA9PiBvZihuZXcgRGFmZkNhdGVnb3J5UGFnZUxvYWRGYWlsdXJlKHRoaXMuZXJyb3JNYXRjaGVyKGVycm9yKSkpKSxcbiAgICAgICkpLFxuICAgICkpO1xufVxuIl19