@daffodil/category 0.47.2 → 0.48.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 (72) hide show
  1. package/driver/magento/category.service.d.ts +1 -1
  2. package/driver/magento/models/{get-products-response.d.ts → get-category-and-products.interface.d.ts} +4 -2
  3. package/driver/magento/models/public_api.d.ts +4 -3
  4. package/driver/magento/models/requests/get-products-by-categories-request.d.ts +3 -2
  5. package/driver/magento/models/url-resolver-response.d.ts +4 -0
  6. package/driver/magento/models/url-resolver.d.ts +4 -0
  7. package/driver/magento/queries/get-category-and-products.d.ts +3 -0
  8. package/driver/magento/queries/public_api.d.ts +2 -2
  9. package/driver/magento/queries/resolve-url.d.ts +6 -0
  10. package/driver/magento/transformers/applied-filter-transformer.service.d.ts +2 -2
  11. package/driver/magento/transformers/pure/add-metadata-types-to-aggregates.d.ts +2 -2
  12. package/esm2020/driver/magento/category-driver.module.mjs +5 -6
  13. package/esm2020/driver/magento/category.service.mjs +26 -28
  14. package/esm2020/driver/magento/models/get-category-and-products.interface.mjs +2 -0
  15. package/esm2020/driver/magento/models/public_api.mjs +1 -1
  16. package/esm2020/driver/magento/models/requests/get-products-by-categories-request.mjs +1 -1
  17. package/esm2020/driver/magento/models/url-resolver-response.mjs +2 -0
  18. package/esm2020/driver/magento/models/url-resolver.mjs +2 -0
  19. package/esm2020/driver/magento/queries/get-category-and-products.mjs +37 -0
  20. package/esm2020/driver/magento/queries/public_api.mjs +3 -3
  21. package/esm2020/driver/magento/queries/resolve-url.mjs +17 -0
  22. package/esm2020/driver/magento/transformers/applied-filter-transformer.service.mjs +1 -1
  23. package/esm2020/driver/magento/transformers/pure/add-metadata-types-to-aggregates.mjs +1 -1
  24. package/esm2020/models/category-page-metadata.mjs +1 -1
  25. package/esm2020/models/category-request.mjs +1 -1
  26. package/esm2020/routing/injection-tokens/request/builders.token.mjs +1 -1
  27. package/esm2020/state/actions/category-page-filter.actions.mjs +1 -1
  28. package/esm2020/state/effects/category-page-filter.effects.mjs +3 -3
  29. package/esm2020/state/effects/category-page.effects.mjs +5 -5
  30. package/esm2020/state/facades/collection/facade.mjs +3 -3
  31. package/esm2020/state/reducers/page-metadata/reducer.mjs +5 -5
  32. package/esm2020/state/selectors/category-page/category-page.selector.mjs +1 -1
  33. package/esm2020/state/selectors/collection/selectors.mjs +3 -3
  34. package/esm2020/state/testing/category-testing.module.mjs +4 -4
  35. package/esm2020/state/testing/mock-category-facade.mjs +1 -1
  36. package/esm2020/testing/factories/category-page-metadata.factory.mjs +5 -6
  37. package/fesm2015/daffodil-category-driver-magento.mjs +50 -47
  38. package/fesm2015/daffodil-category-driver-magento.mjs.map +1 -1
  39. package/fesm2015/daffodil-category-routing.mjs.map +1 -1
  40. package/fesm2015/daffodil-category-state-testing.mjs +3 -3
  41. package/fesm2015/daffodil-category-state-testing.mjs.map +1 -1
  42. package/fesm2015/daffodil-category-state.mjs +11 -10
  43. package/fesm2015/daffodil-category-state.mjs.map +1 -1
  44. package/fesm2015/daffodil-category-testing.mjs +4 -6
  45. package/fesm2015/daffodil-category-testing.mjs.map +1 -1
  46. package/fesm2015/daffodil-category.mjs.map +1 -1
  47. package/fesm2020/daffodil-category-driver-magento.mjs +51 -48
  48. package/fesm2020/daffodil-category-driver-magento.mjs.map +1 -1
  49. package/fesm2020/daffodil-category-routing.mjs.map +1 -1
  50. package/fesm2020/daffodil-category-state-testing.mjs +3 -3
  51. package/fesm2020/daffodil-category-state-testing.mjs.map +1 -1
  52. package/fesm2020/daffodil-category-state.mjs +11 -10
  53. package/fesm2020/daffodil-category-state.mjs.map +1 -1
  54. package/fesm2020/daffodil-category-testing.mjs +4 -6
  55. package/fesm2020/daffodil-category-testing.mjs.map +1 -1
  56. package/fesm2020/daffodil-category.mjs.map +1 -1
  57. package/models/category-page-metadata.d.ts +2 -2
  58. package/models/category-request.d.ts +3 -3
  59. package/package.json +4 -4
  60. package/routing/injection-tokens/request/builder.token.d.ts +1 -1
  61. package/routing/injection-tokens/request/builders.token.d.ts +3 -3
  62. package/state/actions/category-page-filter.actions.d.ts +11 -11
  63. package/state/facades/collection/facade.d.ts +2 -2
  64. package/state/selectors/collection/selectors.d.ts +2 -2
  65. package/testing/factories/category-page-metadata.factory.d.ts +3 -3
  66. package/driver/magento/models/get-category-response.d.ts +0 -4
  67. package/driver/magento/queries/get-category.d.ts +0 -2
  68. package/driver/magento/queries/get-products.d.ts +0 -7
  69. package/esm2020/driver/magento/models/get-category-response.mjs +0 -2
  70. package/esm2020/driver/magento/models/get-products-response.mjs +0 -2
  71. package/esm2020/driver/magento/queries/get-category.mjs +0 -12
  72. package/esm2020/driver/magento/queries/get-products.mjs +0 -37
@@ -3,7 +3,7 @@ import { InjectionToken, Injectable, Inject, NgModule } from '@angular/core';
3
3
  import { combineLatest } from 'rxjs';
4
4
  import { map, switchMap } from 'rxjs/operators';
5
5
  import { DaffCategoryRequestKind } from '@daffodil/category';
6
- import { daffApplyRequestsToFilters } from '@daffodil/product';
6
+ import { daffApplyRequestsToFilters } from '@daffodil/core';
7
7
  import * as i1 from '@daffodil/product/driver/magento';
8
8
  import { magentoProductFragment, magentoProductPageInfoFragment, magentoProductSortFieldsFragment, magentoProductAggregationsFragment, magentoProductGetMatchedAttributeType, MagentoProductFilterActionEnum, magentoProductCollectionMetadataTransform, DAFF_PRODUCT_MAGENTO_PRODUCT_TRANSFORM, MagentoProductGetFilterTypes, magentoAppliedSortOptionTransform, MAGENTO_PRODUCT_CONFIG_TOKEN, DAFF_PRODUCT_MAGENTO_EXTRA_PRODUCT_FRAGMENTS, DAFF_PRODUCT_MAGENTO_EXTRA_PRODUCT_PREVIEW_FRAGMENTS, DAFF_MAGENTO_GET_FILTER_TYPES_QUERY_NAME } from '@daffodil/product/driver/magento';
9
9
  import { daffUriTruncateLeadingSlash, daffUriTruncateFileExtension, daffUriTruncateQueryFragment } from '@daffodil/core/routing';
@@ -33,6 +33,22 @@ const MAGENTO_CATEGORY_CONFIG_DEFAULT = {
33
33
  */
34
34
  const MAGENTO_CATEGORY_CONFIG_TOKEN = new InjectionToken('MAGENTO_CATEGORY_CONFIG_TOKEN', { factory: () => MAGENTO_CATEGORY_CONFIG_DEFAULT });
35
35
 
36
+ const DAFF_MAGENTO_RESOLVE_CATEGORY_URL_QUERY_NAME = 'MagentoResolveCategoryUrl';
37
+ /**
38
+ * This query retrieves a URL resolution from Magento and informs you about
39
+ * what type of route the URL is.
40
+ */
41
+ const MagentoResolveCategoryUrl = gql `
42
+ query ${DAFF_MAGENTO_RESOLVE_CATEGORY_URL_QUERY_NAME}($url: String!) {
43
+ route(url: $url) {
44
+ __typename
45
+ ... on CategoryInterface {
46
+ uid
47
+ }
48
+ }
49
+ }
50
+ `;
51
+
36
52
  const magentoCategoryTreeFragment = gql `
37
53
  fragment categoryTree on CategoryTree {
38
54
  uid
@@ -59,26 +75,14 @@ const magentoCategoryTreeFragment = gql `
59
75
  }
60
76
  `;
61
77
 
62
- const DAFF_MAGENTO_GET_CATEGORY_QUERY_NAME = 'MagentoGetCategoryQuery';
63
- const MagentoGetCategoryQuery = gql `
64
- query ${DAFF_MAGENTO_GET_CATEGORY_QUERY_NAME}($filters: CategoryFilterInput){
65
- categoryList(filters: $filters) {
78
+ const DAFF_MAGENTO_GET_CATEGORY_AND_PRODUCTS_QUERY_NAME = 'MagentoGetCategoryAndProducts';
79
+ const MagentoGetCategoryAndProductsQuery = (extraProductFragments = []) => gql `
80
+ query ${DAFF_MAGENTO_GET_CATEGORY_AND_PRODUCTS_QUERY_NAME}($categoryFilters: CategoryFilterInput, $productFilter: ProductAttributeFilterInput!, $search: String, $pageSize: Int, $currentPage: Int, $sort: ProductAttributeSortInput)
81
+ {
82
+ categoryList(filters: $categoryFilters) {
66
83
  ...categoryTree
67
84
  }
68
- }
69
- ${magentoCategoryTreeFragment}
70
- `;
71
-
72
- const DAFF_MAGENTO_GET_PRODUCTS_QUERY_NAME = 'MagentoGetProducts';
73
- // TODO(griest024): should this be using the product preview fragment instead?
74
- /**
75
- * This query only exists because products and their associated aggregations/filter cannot
76
- * be retrieved through a category call.
77
- */
78
- const MagentoGetProductsQuery = (extraProductFragments = []) => gql `
79
- query ${DAFF_MAGENTO_GET_PRODUCTS_QUERY_NAME}($filter: ProductAttributeFilterInput!, $search: String, $pageSize: Int, $currentPage: Int, $sort: ProductAttributeSortInput)
80
- {
81
- products(filter: $filter, search: $search, pageSize: $pageSize, currentPage: $currentPage, sort: $sort)
85
+ products(filter: $productFilter, search: $search, pageSize: $pageSize, currentPage: $currentPage, sort: $sort)
82
86
  {
83
87
  total_count
84
88
  items {
@@ -96,6 +100,7 @@ query ${DAFF_MAGENTO_GET_PRODUCTS_QUERY_NAME}($filter: ProductAttributeFilterInp
96
100
  }
97
101
  }
98
102
  }
103
+ ${magentoCategoryTreeFragment}
99
104
  ${magentoProductFragment}
100
105
  ${magentoProductPageInfoFragment}
101
106
  ${magentoProductSortFieldsFragment}
@@ -224,36 +229,29 @@ class DaffMagentoCategoryService {
224
229
  this.extraProductFragments = extraProductFragments;
225
230
  this.extraProductPreviewFragments = extraProductPreviewFragments;
226
231
  }
227
- //todo the MagentoGetCategoryQuery needs to get its own product ids.
228
232
  get(categoryRequest) {
229
233
  return combineLatest([
230
- this.apollo.query({
231
- query: MagentoGetCategoryQuery,
232
- variables: { filters: { category_uid: { eq: categoryRequest.id } } },
233
- }),
234
234
  this.apollo.query({
235
235
  query: MagentoProductGetFilterTypes,
236
236
  }),
237
237
  this.apollo.query({
238
- query: MagentoGetProductsQuery([
238
+ query: MagentoGetCategoryAndProductsQuery([
239
239
  ...this.extraProductFragments,
240
240
  ...this.extraProductPreviewFragments,
241
241
  ]),
242
- variables: this.getProductsQueryVariables(categoryRequest),
242
+ variables: this.getCategoryAndProductsQueryVariables(categoryRequest),
243
243
  }),
244
- ]).pipe(map(([category, filterTypes, products,]) => this.transformCategory(category.data, filterTypes.data, products.data, categoryRequest, this.productConfig.baseMediaUrl)), map(result => categoryRequest.filterRequests
244
+ ]).pipe(map(([filterTypes, categoryAndProducts,]) => this.transformCategory(categoryAndProducts.data, filterTypes.data, categoryRequest, this.productConfig.baseMediaUrl)), map(result => categoryRequest.filterRequests
245
245
  ? applyFiltersOnResponse(categoryRequest.filterRequests, result)
246
246
  : result));
247
247
  }
248
248
  getByUrl(categoryRequest) {
249
249
  return combineLatest([
250
250
  this.apollo.query({
251
- query: MagentoGetCategoryQuery,
252
- variables: { filters: { url_path: {
253
- eq: this.config.truncateUrl
254
- ? this.config.uriTruncationStrategy(categoryRequest.url)
255
- : categoryRequest.url,
256
- } } },
251
+ query: MagentoResolveCategoryUrl,
252
+ variables: {
253
+ url: categoryRequest.url,
254
+ },
257
255
  }),
258
256
  this.apollo.query({
259
257
  query: MagentoProductGetFilterTypes,
@@ -261,19 +259,24 @@ class DaffMagentoCategoryService {
261
259
  ]).pipe(switchMap(([category, filterTypes,]) => {
262
260
  var _a;
263
261
  return this.apollo.query({
264
- query: MagentoGetProductsQuery([
262
+ query: MagentoGetCategoryAndProductsQuery([
265
263
  ...this.extraProductFragments,
266
264
  ...this.extraProductPreviewFragments,
267
265
  ]),
268
- variables: this.getProductsQueryVariables(Object.assign(Object.assign({}, categoryRequest), { id: (_a = category.data.categoryList[0]) === null || _a === void 0 ? void 0 : _a.uid, kind: DaffCategoryRequestKind.ID })),
269
- }).pipe(map(products => this.transformCategory(category.data, filterTypes.data, products.data, categoryRequest, this.productConfig.baseMediaUrl)), map(result => categoryRequest.filterRequests
266
+ variables: this.getCategoryAndProductsQueryVariables(Object.assign(Object.assign({}, categoryRequest), { id: (_a = category.data.route) === null || _a === void 0 ? void 0 : _a.uid, kind: DaffCategoryRequestKind.ID })),
267
+ }).pipe(map(categoryAndProducts => this.transformCategory(categoryAndProducts.data, filterTypes.data, categoryRequest, this.productConfig.baseMediaUrl)), map(result => categoryRequest.filterRequests
270
268
  ? applyFiltersOnResponse(categoryRequest.filterRequests, result)
271
269
  : result));
272
270
  }));
273
271
  }
274
- getProductsQueryVariables(request) {
272
+ getCategoryAndProductsQueryVariables(request) {
275
273
  const queryVariables = {
276
- filter: this.magentoAppliedFiltersTransformer.transform(request.id, request.filterRequests),
274
+ productFilter: this.magentoAppliedFiltersTransformer.transform(request.id, request.filterRequests),
275
+ categoryFilters: {
276
+ category_uid: {
277
+ eq: request.id,
278
+ },
279
+ },
277
280
  };
278
281
  if (request.pageSize) {
279
282
  queryVariables['pageSize'] = request.pageSize;
@@ -286,15 +289,15 @@ class DaffMagentoCategoryService {
286
289
  }
287
290
  return queryVariables;
288
291
  }
289
- transformCategory(categoryResponse, filterTypesResponse, productsResponse, request, mediaUrl) {
290
- const aggregations = addMetadataTypesToProductsResponse(filterTypesResponse, productsResponse);
292
+ transformCategory(categoryResponse, filterTypesResponse, request, mediaUrl) {
293
+ const aggregations = addMetadataTypesToProductsResponse(filterTypesResponse, categoryResponse);
291
294
  const completeCategory = {
292
295
  category: categoryResponse.categoryList[0],
293
- products: productsResponse.products.items,
296
+ products: categoryResponse.products.items,
294
297
  aggregates: aggregations.products.aggregations,
295
298
  sort_fields: aggregations.products.sort_fields,
296
- total_count: productsResponse.products.total_count,
297
- page_info: productsResponse.products.page_info,
299
+ total_count: categoryResponse.products.total_count,
300
+ page_info: categoryResponse.products.page_info,
298
301
  appliedSortOption: request.appliedSortOption,
299
302
  appliedSortDirection: request.appliedSortDirection,
300
303
  };
@@ -343,17 +346,17 @@ class DaffCategoryMagentoDriverModule {
343
346
  DaffMagentoAppliedFiltersTransformService,
344
347
  {
345
348
  provide: DAFF_MAGENTO_CACHEABLE_OPERATIONS,
346
- useValue: DAFF_MAGENTO_GET_CATEGORY_QUERY_NAME,
349
+ useValue: DAFF_MAGENTO_GET_FILTER_TYPES_QUERY_NAME,
347
350
  multi: true,
348
351
  },
349
352
  {
350
353
  provide: DAFF_MAGENTO_CACHEABLE_OPERATIONS,
351
- useValue: DAFF_MAGENTO_GET_FILTER_TYPES_QUERY_NAME,
354
+ useValue: DAFF_MAGENTO_GET_CATEGORY_AND_PRODUCTS_QUERY_NAME,
352
355
  multi: true,
353
356
  },
354
357
  {
355
358
  provide: DAFF_MAGENTO_CACHEABLE_OPERATIONS,
356
- useValue: DAFF_MAGENTO_GET_PRODUCTS_QUERY_NAME,
359
+ useValue: DAFF_MAGENTO_RESOLVE_CATEGORY_URL_QUERY_NAME,
357
360
  multi: true,
358
361
  },
359
362
  {
@@ -382,5 +385,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
382
385
  * Generated bundle index. Do not edit.
383
386
  */
384
387
 
385
- export { DAFF_MAGENTO_GET_CATEGORY_QUERY_NAME, DAFF_MAGENTO_GET_PRODUCTS_QUERY_NAME, DaffCategoryMagentoDriverModule, DaffMagentoAppliedFiltersTransformService, DaffMagentoCategoryPageConfigTransformerService, DaffMagentoCategoryResponseTransformService, DaffMagentoCategoryService, DaffMagentoCategoryTransformerService, MAGENTO_CATEGORY_CONFIG_DEFAULT, MAGENTO_CATEGORY_CONFIG_TOKEN, MagentoGetCategoryQuery, MagentoGetProductsQuery, magentoCategoryTreeFragment };
388
+ export { DAFF_MAGENTO_GET_CATEGORY_AND_PRODUCTS_QUERY_NAME, DAFF_MAGENTO_RESOLVE_CATEGORY_URL_QUERY_NAME, DaffCategoryMagentoDriverModule, DaffMagentoAppliedFiltersTransformService, DaffMagentoCategoryPageConfigTransformerService, DaffMagentoCategoryResponseTransformService, DaffMagentoCategoryService, DaffMagentoCategoryTransformerService, MAGENTO_CATEGORY_CONFIG_DEFAULT, MAGENTO_CATEGORY_CONFIG_TOKEN, MagentoGetCategoryAndProductsQuery, MagentoResolveCategoryUrl, magentoCategoryTreeFragment };
386
389
  //# sourceMappingURL=daffodil-category-driver-magento.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"daffodil-category-driver-magento.mjs","sources":["../../../libs/category/driver/magento/src/transformers/truncate-url.ts","../../../libs/category/driver/magento/src/config/default.ts","../../../libs/category/driver/magento/src/interfaces/config.interface.ts","../../../libs/category/driver/magento/src/queries/fragments/category-tree.ts","../../../libs/category/driver/magento/src/queries/get-category.ts","../../../libs/category/driver/magento/src/queries/get-products.ts","../../../libs/category/driver/magento/src/transformers/pure/add-metadata-types-to-aggregates.ts","../../../libs/category/driver/magento/src/transformers/applied-filter-transformer.service.ts","../../../libs/category/driver/magento/src/transformers/category-page-config-transformer.service.ts","../../../libs/category/driver/magento/src/transformers/category-transformer.service.ts","../../../libs/category/driver/magento/src/transformers/category-response-transform.service.ts","../../../libs/category/driver/magento/src/category.service.ts","../../../libs/category/driver/magento/src/category-driver.module.ts","../../../libs/category/driver/magento/src/daffodil-category-driver-magento.ts"],"sourcesContent":["import {\n daffUriTruncateQueryFragment,\n daffUriTruncateFileExtension,\n daffUriTruncateLeadingSlash,\n} from '@daffodil/core/routing';\n\n/**\n * Truncates leading slash, file extension, query params, and fragments.\n */\nexport const magentoCategoryTruncateUrl = (url: string): string =>\n daffUriTruncateLeadingSlash(daffUriTruncateFileExtension(daffUriTruncateQueryFragment(url)));\n","import { DaffCategoryMagentoDriverConfig } from '../interfaces/public_api';\nimport { magentoCategoryTruncateUrl } from '../transformers/truncate-url';\n\n/**\n * The default configuration for the {@link DaffCategoryMagentoDriverConfig}.\n */\nexport const MAGENTO_CATEGORY_CONFIG_DEFAULT: DaffCategoryMagentoDriverConfig = {\n truncateUrl: true,\n uriTruncationStrategy: magentoCategoryTruncateUrl,\n};\n","import { InjectionToken } from '@angular/core';\n\nimport { MAGENTO_CATEGORY_CONFIG_DEFAULT } from '../config/default';\n\n/**\n * The token used to provide @daffodil/category/driver/magento config data.\n * Mandatory for the Magento driver.\n */\nexport const MAGENTO_CATEGORY_CONFIG_TOKEN = new InjectionToken<DaffCategoryMagentoDriverConfig>('MAGENTO_CATEGORY_CONFIG_TOKEN', { factory: () => MAGENTO_CATEGORY_CONFIG_DEFAULT });\n\n/**\n * An interface for providing @daffodil/category/driver/magento with necessary config values.\n */\nexport interface DaffCategoryMagentoDriverConfig {\n /**\n * Whether or not to attempt to truncate the category URL\n * during the {@link DaffMagentoCategoryService#getByUrl} call.\n * True by default.\n */\n truncateUrl?: boolean;\n /**\n * An optional custom function to truncate the URL.\n * Defaults to truncate leading slash, file extension, query params, and fragments.\n */\n uriTruncationStrategy?: (string) => string;\n}\n","import { gql } from 'apollo-angular';\n\nexport const magentoCategoryTreeFragment = gql`\n fragment categoryTree on CategoryTree {\n uid\n url_path\n url_suffix\n canonical_url\n\t\tname\n\t\tlevel\n\t\tmeta_title\n\t\tmeta_description\n\t\tdescription\n\t\tbreadcrumbs {\n\t\t\tcategory_uid\n\t\t\tcategory_name\n\t\t\tcategory_level\n\t\t\tcategory_url_path\n\t\t}\n\t\tproducts {\n\t\t\titems {\n\t\t\t\tsku\n\t\t\t}\n\t\t}\n\t\tchildren_count\n }\n`;\n","import { gql } from 'apollo-angular';\n\nimport { magentoCategoryTreeFragment } from './fragments/public_api';\n\nexport const DAFF_MAGENTO_GET_CATEGORY_QUERY_NAME = 'MagentoGetCategoryQuery';\n\nexport const MagentoGetCategoryQuery = gql`\nquery ${DAFF_MAGENTO_GET_CATEGORY_QUERY_NAME}($filters: CategoryFilterInput){\n\tcategoryList(filters: $filters) {\n\t\t...categoryTree\n\t}\n}\n${magentoCategoryTreeFragment}\n`;\n","import { gql } from 'apollo-angular';\nimport { DocumentNode } from 'graphql';\n\nimport {\n daffBuildFragmentDefinition,\n daffBuildFragmentNameSpread,\n} from '@daffodil/core/graphql';\nimport {\n magentoProductAggregationsFragment,\n magentoProductFragment,\n magentoProductPageInfoFragment,\n magentoProductSortFieldsFragment,\n} from '@daffodil/product/driver/magento';\n\nexport const DAFF_MAGENTO_GET_PRODUCTS_QUERY_NAME = 'MagentoGetProducts';\n// TODO(griest024): should this be using the product preview fragment instead?\n/**\n * This query only exists because products and their associated aggregations/filter cannot\n * be retrieved through a category call.\n */\nexport const MagentoGetProductsQuery = (extraProductFragments: DocumentNode[] = []) => gql`\nquery ${DAFF_MAGENTO_GET_PRODUCTS_QUERY_NAME}($filter: ProductAttributeFilterInput!, $search: String, $pageSize: Int, $currentPage: Int, $sort: ProductAttributeSortInput)\n{\n\tproducts(filter: $filter, search: $search, pageSize: $pageSize, currentPage: $currentPage, sort: $sort)\n\t{\n\t\ttotal_count\n\t\titems {\n\t\t\t...product\n ${daffBuildFragmentNameSpread(...extraProductFragments)}\n\t\t}\n\t\tpage_info {\n\t\t\t...magentoProductPageInfo\n\t\t}\n\t\taggregations {\n\t\t\t...magentoProductAggregations\n\t\t}\n\t\tsort_fields {\n\t\t\t...magentoProductSortFields\n\t\t}\n\t}\n}\n${magentoProductFragment}\n${magentoProductPageInfoFragment}\n${magentoProductSortFieldsFragment}\n${magentoProductAggregationsFragment}\n${daffBuildFragmentDefinition(...extraProductFragments)}\n`;\n","import {\n MagentoProductGetFilterTypesResponse,\n magentoProductGetMatchedAttributeType,\n} from '@daffodil/product/driver/magento';\n\nimport { MagentoGetProductsResponse } from '../../models/public_api';\n\nexport function addMetadataTypesToProductsResponse(\n attributeResponse: MagentoProductGetFilterTypesResponse,\n aggregationResponse: MagentoGetProductsResponse,\n): MagentoGetProductsResponse {\n return {\n ...aggregationResponse,\n products: {\n ...aggregationResponse.products,\n aggregations: [\n ...aggregationResponse.products.aggregations.map((aggregate) => ({\n ...aggregate,\n type: magentoProductGetMatchedAttributeType(aggregate, attributeResponse.__type.inputFields),\n })),\n ],\n },\n };\n}\n","import { Injectable } from '@angular/core';\n\nimport { DaffCategory } from '@daffodil/category';\nimport { DaffProductFilterRequest } from '@daffodil/product';\nimport {\n MagentoProductFilterActionEnum,\n MagentoProductFilters,\n MagentoProductAppliedFiltersTransformService,\n} from '@daffodil/product/driver/magento';\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffMagentoAppliedFiltersTransformService {\n constructor(\n private productFilterRequestsTransformer: MagentoProductAppliedFiltersTransformService,\n ) {}\n\n transform(categoryId: DaffCategory['id'], daffFilters: DaffProductFilterRequest[]): MagentoProductFilters {\n const magentoFilters: MagentoProductFilters = {\n category_uid: {\n [MagentoProductFilterActionEnum.Equal]: categoryId,\n },\n };\n\n if(!daffFilters) {\n return magentoFilters;\n }\n\n return {\n ...magentoFilters,\n ...this.productFilterRequestsTransformer.transform(daffFilters),\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { DaffCategoryPageMetadata } from '@daffodil/category';\nimport { magentoProductCollectionMetadataTransform } from '@daffodil/product/driver/magento';\n\nimport { MagentoCompleteCategoryResponse } from '../models/public_api';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffMagentoCategoryPageConfigTransformerService {\n\n transform(categoryResponse: MagentoCompleteCategoryResponse): DaffCategoryPageMetadata {\n const aggregatesWithoutCategories = categoryResponse.aggregates.filter(aggregate => aggregate.attribute_code !== 'category_id');\n\n return {\n ...magentoProductCollectionMetadataTransform(\n aggregatesWithoutCategories,\n categoryResponse.page_info,\n categoryResponse.sort_fields,\n categoryResponse.products,\n categoryResponse.total_count,\n categoryResponse.appliedSortOption,\n categoryResponse.appliedSortDirection,\n ),\n id: categoryResponse.category.uid,\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n DaffCategory,\n DaffCategoryBreadcrumb,\n} from '@daffodil/category';\nimport { MagentoProduct } from '@daffodil/product/driver/magento';\n\nimport {\n MagentoBreadcrumb,\n MagentoCategory,\n} from '../models/public_api';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffMagentoCategoryTransformerService {\n\n transform(category: MagentoCategory, products: MagentoProduct[]): DaffCategory {\n return {\n id: category.uid,\n url: `/${category.url_path}${category.url_suffix}`,\n canonicalUrl: category.canonical_url,\n name: category.name,\n description: category.description,\n meta_title: category.meta_title,\n meta_description: category.meta_description,\n children_count: category.children_count,\n breadcrumbs: category.breadcrumbs\n ?.map(breadcrumb => this.transformBreadcrumb(breadcrumb, category))\n .sort((a, b) => a.level - b.level) || null,\n product_ids: products.map(product => product.sku),\n total_products: products.length,\n };\n }\n\n private transformBreadcrumb(breadcrumb: MagentoBreadcrumb, category: MagentoCategory): DaffCategoryBreadcrumb {\n return {\n id: breadcrumb.category_uid,\n name: breadcrumb.category_name,\n level: breadcrumb.category_level,\n url: `/${breadcrumb.category_url_path}${category.url_suffix}`,\n };\n }\n}\n","import {\n Inject,\n Injectable,\n} from '@angular/core';\n\nimport { DaffGetCategoryResponse } from '@daffodil/category';\nimport {\n DAFF_PRODUCT_MAGENTO_PRODUCT_TRANSFORM,\n DaffMagentoProductTransform,\n} from '@daffodil/product/driver/magento';\n\nimport { MagentoCompleteCategoryResponse } from '../models/public_api';\nimport { DaffMagentoCategoryPageConfigTransformerService } from './category-page-config-transformer.service';\nimport { DaffMagentoCategoryTransformerService } from './category-transformer.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffMagentoCategoryResponseTransformService {\n\n constructor(\n private magentoCategoryTransformerService: DaffMagentoCategoryTransformerService,\n private magentoCategoryPageConfigurationTransformerService: DaffMagentoCategoryPageConfigTransformerService,\n @Inject(DAFF_PRODUCT_MAGENTO_PRODUCT_TRANSFORM) private magentoProductsTransform: DaffMagentoProductTransform,\n ) {}\n\n transform(completeCategory: MagentoCompleteCategoryResponse, mediaUrl: string): DaffGetCategoryResponse {\n return {\n ...{ magentoCompleteCategoryResponse: completeCategory },\n category: this.magentoCategoryTransformerService.transform(completeCategory.category, completeCategory.products),\n categoryPageMetadata: this.magentoCategoryPageConfigurationTransformerService.transform(completeCategory),\n products: completeCategory.products.map(product => this.magentoProductsTransform(product, mediaUrl)),\n };\n }\n}\n","import {\n Injectable,\n Inject,\n} from '@angular/core';\nimport { Apollo } from 'apollo-angular';\nimport { DocumentNode } from 'graphql';\nimport {\n Observable,\n combineLatest,\n} from 'rxjs';\nimport {\n map,\n switchMap,\n} from 'rxjs/operators';\n\nimport {\n DaffGetCategoryResponse,\n DaffCategoryUrlRequest,\n DaffCategoryRequestKind,\n DaffCategoryIdRequest,\n DaffCategoryRequest,\n} from '@daffodil/category';\nimport { DaffCategoryServiceInterface } from '@daffodil/category/driver';\nimport {\n daffApplyRequestsToFilters,\n DaffProductFilterRequest,\n} from '@daffodil/product';\nimport {\n DaffProductMagentoDriverConfig,\n DAFF_PRODUCT_MAGENTO_EXTRA_PRODUCT_FRAGMENTS,\n MagentoProductGetFilterTypes,\n MagentoProductGetFilterTypesResponse,\n MAGENTO_PRODUCT_CONFIG_TOKEN,\n magentoAppliedSortOptionTransform,\n DAFF_PRODUCT_MAGENTO_EXTRA_PRODUCT_PREVIEW_FRAGMENTS,\n} from '@daffodil/product/driver/magento';\n\nimport {\n MAGENTO_CATEGORY_CONFIG_TOKEN,\n DaffCategoryMagentoDriverConfig,\n} from './interfaces/public_api';\nimport {\n MagentoGetACategoryResponse,\n MagentoGetProductsResponse,\n MagentoGetProductsByCategoriesRequest,\n MagentoCompleteCategoryResponse,\n} from './models/public_api';\nimport {\n MagentoGetProductsQuery,\n MagentoGetCategoryQuery,\n} from './queries/public_api';\nimport {\n DaffMagentoCategoryResponseTransformService,\n DaffMagentoAppliedFiltersTransformService,\n} from './transformers/public_api';\nimport { addMetadataTypesToProductsResponse } from './transformers/pure/add-metadata-types-to-aggregates';\n\nconst applyFiltersOnResponse = (requests: DaffProductFilterRequest[], response: DaffGetCategoryResponse): DaffGetCategoryResponse => ({\n ...response,\n categoryPageMetadata: {\n ...response.categoryPageMetadata,\n filters: daffApplyRequestsToFilters(requests, response.categoryPageMetadata.filters),\n },\n});\n\n/**\n * A service for making magento apollo queries for categories. Should be provided via the {@link DaffCategoryDriver} token.\n *\n * @inheritdoc\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffMagentoCategoryService implements DaffCategoryServiceInterface {\n\n constructor(\n private apollo: Apollo,\n private magentoCategoryResponseTransformer: DaffMagentoCategoryResponseTransformService,\n private magentoAppliedFiltersTransformer: DaffMagentoAppliedFiltersTransformService,\n @Inject(MAGENTO_CATEGORY_CONFIG_TOKEN) private config: DaffCategoryMagentoDriverConfig,\n @Inject(MAGENTO_PRODUCT_CONFIG_TOKEN) private productConfig: DaffProductMagentoDriverConfig,\n @Inject(DAFF_PRODUCT_MAGENTO_EXTRA_PRODUCT_FRAGMENTS) private extraProductFragments: DocumentNode[],\n @Inject(DAFF_PRODUCT_MAGENTO_EXTRA_PRODUCT_PREVIEW_FRAGMENTS) private extraProductPreviewFragments: DocumentNode[],\n ) {}\n\n //todo the MagentoGetCategoryQuery needs to get its own product ids.\n get(categoryRequest: DaffCategoryIdRequest): Observable<DaffGetCategoryResponse> {\n return combineLatest([\n this.apollo.query<MagentoGetACategoryResponse>({\n query: MagentoGetCategoryQuery,\n variables: { filters: { category_uid: { eq: categoryRequest.id }}},\n }),\n this.apollo.query<MagentoProductGetFilterTypesResponse>({\n query: MagentoProductGetFilterTypes,\n }),\n this.apollo.query<MagentoGetProductsResponse>({\n query: MagentoGetProductsQuery([\n ...this.extraProductFragments,\n ...this.extraProductPreviewFragments,\n ]),\n variables: this.getProductsQueryVariables(categoryRequest),\n }),\n ]).pipe(\n map(([\n category,\n filterTypes,\n products,\n ]) => this.transformCategory(category.data, filterTypes.data, products.data, categoryRequest, this.productConfig.baseMediaUrl)),\n map(result => categoryRequest.filterRequests\n ? applyFiltersOnResponse(categoryRequest.filterRequests, result)\n : result,\n ),\n );\n }\n\n getByUrl(categoryRequest: DaffCategoryUrlRequest): Observable<DaffGetCategoryResponse> {\n return combineLatest([\n this.apollo.query<MagentoGetACategoryResponse>({\n query: MagentoGetCategoryQuery,\n variables: { filters: { url_path: {\n eq: this.config.truncateUrl\n ? this.config.uriTruncationStrategy(categoryRequest.url)\n : categoryRequest.url,\n }}},\n }),\n this.apollo.query<MagentoProductGetFilterTypesResponse>({\n query: MagentoProductGetFilterTypes,\n }),\n ]).pipe(\n switchMap(([\n category,\n filterTypes,\n ]) => this.apollo.query<MagentoGetProductsResponse>({\n query: MagentoGetProductsQuery([\n ...this.extraProductFragments,\n ...this.extraProductPreviewFragments,\n ]),\n variables: this.getProductsQueryVariables({\n ...categoryRequest,\n id: category.data.categoryList[0]?.uid,\n kind: DaffCategoryRequestKind.ID,\n }),\n }).pipe(\n map(products => this.transformCategory(category.data, filterTypes.data, products.data, categoryRequest, this.productConfig.baseMediaUrl)),\n map(result => categoryRequest.filterRequests\n ? applyFiltersOnResponse(categoryRequest.filterRequests, result)\n : result,\n ),\n )),\n );\n }\n\n private getProductsQueryVariables(request: DaffCategoryIdRequest): MagentoGetProductsByCategoriesRequest {\n const queryVariables = {\n filter: this.magentoAppliedFiltersTransformer.transform(request.id, request.filterRequests),\n };\n if(request.pageSize) {\n queryVariables['pageSize'] = request.pageSize;\n }\n if(request.currentPage) {\n queryVariables['currentPage'] = request.currentPage;\n }\n if(request.appliedSortOption && request.appliedSortDirection) {\n queryVariables['sort'] = magentoAppliedSortOptionTransform(request.appliedSortOption, request.appliedSortDirection);\n }\n\n return queryVariables;\n }\n\n private transformCategory(\n categoryResponse: MagentoGetACategoryResponse,\n filterTypesResponse: MagentoProductGetFilterTypesResponse,\n productsResponse: MagentoGetProductsResponse,\n request: DaffCategoryRequest,\n mediaUrl: string,\n ): DaffGetCategoryResponse {\n const aggregations = addMetadataTypesToProductsResponse(filterTypesResponse, productsResponse);\n const completeCategory: MagentoCompleteCategoryResponse = {\n category: categoryResponse.categoryList[0],\n products: productsResponse.products.items,\n aggregates: aggregations.products.aggregations,\n sort_fields: aggregations.products.sort_fields,\n total_count: productsResponse.products.total_count,\n page_info: productsResponse.products.page_info,\n appliedSortOption: request.appliedSortOption,\n appliedSortDirection: request.appliedSortDirection,\n };\n\n return this.magentoCategoryResponseTransformer.transform(completeCategory, mediaUrl);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ModuleWithProviders,\n NgModule,\n} from '@angular/core';\n\nimport { DaffCategoryDriver } from '@daffodil/category/driver';\nimport { DAFF_MAGENTO_CACHEABLE_OPERATIONS } from '@daffodil/driver/magento';\nimport {\n daffProvideProductMagentoExtraProductPreviewFragments,\n DAFF_MAGENTO_GET_FILTER_TYPES_QUERY_NAME,\n magentoProductPreviewFragment,\n} from '@daffodil/product/driver/magento';\n\nimport { DaffMagentoCategoryService } from './category.service';\nimport { MAGENTO_CATEGORY_CONFIG_DEFAULT } from './config/default';\nimport {\n DaffCategoryMagentoDriverConfig,\n MAGENTO_CATEGORY_CONFIG_TOKEN,\n} from './interfaces/public_api';\nimport { DAFF_MAGENTO_GET_CATEGORY_QUERY_NAME } from './queries/get-category';\nimport { DAFF_MAGENTO_GET_PRODUCTS_QUERY_NAME } from './queries/get-products';\nimport { DaffMagentoAppliedFiltersTransformService } from './transformers/applied-filter-transformer.service';\nimport { DaffMagentoCategoryPageConfigTransformerService } from './transformers/category-page-config-transformer.service';\nimport { DaffMagentoCategoryResponseTransformService } from './transformers/category-response-transform.service';\nimport { DaffMagentoCategoryTransformerService } from './transformers/category-transformer.service';\n\n/**\n * A module that provides the {@link DaffCategoryDriver} and {@link MAGENTO_CATEGORY_CONFIG_TOKEN} as the {@link DaffMagentoCategoryService} and\n * {@link MAGENTO_CATEGORY_CONFIG_DEFAULT} respectively\n */\n@NgModule({\n imports: [\n CommonModule,\n ],\n})\nexport class DaffCategoryMagentoDriverModule {\n static forRoot(config: DaffCategoryMagentoDriverConfig = MAGENTO_CATEGORY_CONFIG_DEFAULT): ModuleWithProviders<DaffCategoryMagentoDriverModule> {\n return {\n ngModule: DaffCategoryMagentoDriverModule,\n providers: [\n {\n provide: DaffCategoryDriver,\n useExisting: DaffMagentoCategoryService,\n },\n DaffMagentoCategoryPageConfigTransformerService,\n DaffMagentoCategoryResponseTransformService,\n DaffMagentoCategoryTransformerService,\n DaffMagentoAppliedFiltersTransformService,\n {\n provide: DAFF_MAGENTO_CACHEABLE_OPERATIONS,\n useValue: DAFF_MAGENTO_GET_CATEGORY_QUERY_NAME,\n multi: true,\n },\n {\n provide: DAFF_MAGENTO_CACHEABLE_OPERATIONS,\n useValue: DAFF_MAGENTO_GET_FILTER_TYPES_QUERY_NAME,\n multi: true,\n },\n {\n provide: DAFF_MAGENTO_CACHEABLE_OPERATIONS,\n useValue: DAFF_MAGENTO_GET_PRODUCTS_QUERY_NAME,\n multi: true,\n },\n {\n provide: MAGENTO_CATEGORY_CONFIG_TOKEN,\n useValue: {\n ...MAGENTO_CATEGORY_CONFIG_DEFAULT,\n ...config,\n },\n },\n ],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daffodil-category-driver-magento.mjs","sources":["../../../libs/category/driver/magento/src/transformers/truncate-url.ts","../../../libs/category/driver/magento/src/config/default.ts","../../../libs/category/driver/magento/src/interfaces/config.interface.ts","../../../libs/category/driver/magento/src/queries/resolve-url.ts","../../../libs/category/driver/magento/src/queries/fragments/category-tree.ts","../../../libs/category/driver/magento/src/queries/get-category-and-products.ts","../../../libs/category/driver/magento/src/transformers/pure/add-metadata-types-to-aggregates.ts","../../../libs/category/driver/magento/src/transformers/applied-filter-transformer.service.ts","../../../libs/category/driver/magento/src/transformers/category-page-config-transformer.service.ts","../../../libs/category/driver/magento/src/transformers/category-transformer.service.ts","../../../libs/category/driver/magento/src/transformers/category-response-transform.service.ts","../../../libs/category/driver/magento/src/category.service.ts","../../../libs/category/driver/magento/src/category-driver.module.ts","../../../libs/category/driver/magento/src/daffodil-category-driver-magento.ts"],"sourcesContent":["import {\n daffUriTruncateQueryFragment,\n daffUriTruncateFileExtension,\n daffUriTruncateLeadingSlash,\n} from '@daffodil/core/routing';\n\n/**\n * Truncates leading slash, file extension, query params, and fragments.\n */\nexport const magentoCategoryTruncateUrl = (url: string): string =>\n daffUriTruncateLeadingSlash(daffUriTruncateFileExtension(daffUriTruncateQueryFragment(url)));\n","import { DaffCategoryMagentoDriverConfig } from '../interfaces/public_api';\nimport { magentoCategoryTruncateUrl } from '../transformers/truncate-url';\n\n/**\n * The default configuration for the {@link DaffCategoryMagentoDriverConfig}.\n */\nexport const MAGENTO_CATEGORY_CONFIG_DEFAULT: DaffCategoryMagentoDriverConfig = {\n truncateUrl: true,\n uriTruncationStrategy: magentoCategoryTruncateUrl,\n};\n","import { InjectionToken } from '@angular/core';\n\nimport { MAGENTO_CATEGORY_CONFIG_DEFAULT } from '../config/default';\n\n/**\n * The token used to provide @daffodil/category/driver/magento config data.\n * Mandatory for the Magento driver.\n */\nexport const MAGENTO_CATEGORY_CONFIG_TOKEN = new InjectionToken<DaffCategoryMagentoDriverConfig>('MAGENTO_CATEGORY_CONFIG_TOKEN', { factory: () => MAGENTO_CATEGORY_CONFIG_DEFAULT });\n\n/**\n * An interface for providing @daffodil/category/driver/magento with necessary config values.\n */\nexport interface DaffCategoryMagentoDriverConfig {\n /**\n * Whether or not to attempt to truncate the category URL\n * during the {@link DaffMagentoCategoryService#getByUrl} call.\n * True by default.\n */\n truncateUrl?: boolean;\n /**\n * An optional custom function to truncate the URL.\n * Defaults to truncate leading slash, file extension, query params, and fragments.\n */\n uriTruncationStrategy?: (string) => string;\n}\n","import { gql } from 'apollo-angular';\n\nexport const DAFF_MAGENTO_RESOLVE_CATEGORY_URL_QUERY_NAME = 'MagentoResolveCategoryUrl';\n\n/**\n * This query retrieves a URL resolution from Magento and informs you about\n * what type of route the URL is.\n */\nexport const MagentoResolveCategoryUrl = gql`\n\tquery ${DAFF_MAGENTO_RESOLVE_CATEGORY_URL_QUERY_NAME}($url: String!) {\n\t\troute(url: $url) {\n __typename\n\t\t\t... on CategoryInterface {\n\t\t\t\tuid\n\t\t\t}\n\t\t}\n\t}\n`;\n","import { gql } from 'apollo-angular';\n\nexport const magentoCategoryTreeFragment = gql`\n fragment categoryTree on CategoryTree {\n uid\n url_path\n url_suffix\n canonical_url\n\t\tname\n\t\tlevel\n\t\tmeta_title\n\t\tmeta_description\n\t\tdescription\n\t\tbreadcrumbs {\n\t\t\tcategory_uid\n\t\t\tcategory_name\n\t\t\tcategory_level\n\t\t\tcategory_url_path\n\t\t}\n\t\tproducts {\n\t\t\titems {\n\t\t\t\tsku\n\t\t\t}\n\t\t}\n\t\tchildren_count\n }\n`;\n","import { gql } from 'apollo-angular';\nimport { DocumentNode } from 'graphql';\n\nimport {\n daffBuildFragmentDefinition,\n daffBuildFragmentNameSpread,\n} from '@daffodil/core/graphql';\nimport {\n magentoProductAggregationsFragment,\n magentoProductFragment,\n magentoProductPageInfoFragment,\n magentoProductSortFieldsFragment,\n} from '@daffodil/product/driver/magento';\n\nimport { magentoCategoryTreeFragment } from './fragments/public_api';\n\nexport const DAFF_MAGENTO_GET_CATEGORY_AND_PRODUCTS_QUERY_NAME = 'MagentoGetCategoryAndProducts';\n\nexport const MagentoGetCategoryAndProductsQuery = (extraProductFragments: DocumentNode[] = []) => gql`\nquery ${DAFF_MAGENTO_GET_CATEGORY_AND_PRODUCTS_QUERY_NAME}($categoryFilters: CategoryFilterInput, $productFilter: ProductAttributeFilterInput!, $search: String, $pageSize: Int, $currentPage: Int, $sort: ProductAttributeSortInput)\n{\n categoryList(filters: $categoryFilters) {\n\t\t...categoryTree\n\t}\n\tproducts(filter: $productFilter, search: $search, pageSize: $pageSize, currentPage: $currentPage, sort: $sort)\n\t{\n\t\ttotal_count\n\t\titems {\n\t\t\t...product\n ${daffBuildFragmentNameSpread(...extraProductFragments)}\n\t\t}\n\t\tpage_info {\n\t\t\t...magentoProductPageInfo\n\t\t}\n\t\taggregations {\n\t\t\t...magentoProductAggregations\n\t\t}\n\t\tsort_fields {\n\t\t\t...magentoProductSortFields\n\t\t}\n\t}\n}\n${magentoCategoryTreeFragment}\n${magentoProductFragment}\n${magentoProductPageInfoFragment}\n${magentoProductSortFieldsFragment}\n${magentoProductAggregationsFragment}\n${daffBuildFragmentDefinition(...extraProductFragments)}\n`;\n","import {\n MagentoProductGetFilterTypesResponse,\n magentoProductGetMatchedAttributeType,\n} from '@daffodil/product/driver/magento';\n\nimport { MagentoGetCategoryAndProductsResponse } from '../../models/public_api';\n\nexport function addMetadataTypesToProductsResponse(\n attributeResponse: MagentoProductGetFilterTypesResponse,\n aggregationResponse: MagentoGetCategoryAndProductsResponse,\n): MagentoGetCategoryAndProductsResponse {\n return {\n ...aggregationResponse,\n products: {\n ...aggregationResponse.products,\n aggregations: [\n ...aggregationResponse.products.aggregations.map((aggregate) => ({\n ...aggregate,\n type: magentoProductGetMatchedAttributeType(aggregate, attributeResponse.__type.inputFields),\n })),\n ],\n },\n };\n}\n","import { Injectable } from '@angular/core';\n\nimport { DaffCategory } from '@daffodil/category';\nimport { DaffFilterRequest } from '@daffodil/core';\nimport {\n MagentoProductFilterActionEnum,\n MagentoProductFilters,\n MagentoProductAppliedFiltersTransformService,\n} from '@daffodil/product/driver/magento';\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffMagentoAppliedFiltersTransformService {\n constructor(\n private productFilterRequestsTransformer: MagentoProductAppliedFiltersTransformService,\n ) {}\n\n transform(categoryId: DaffCategory['id'], daffFilters: DaffFilterRequest[]): MagentoProductFilters {\n const magentoFilters: MagentoProductFilters = {\n category_uid: {\n [MagentoProductFilterActionEnum.Equal]: categoryId,\n },\n };\n\n if(!daffFilters) {\n return magentoFilters;\n }\n\n return {\n ...magentoFilters,\n ...this.productFilterRequestsTransformer.transform(daffFilters),\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { DaffCategoryPageMetadata } from '@daffodil/category';\nimport { magentoProductCollectionMetadataTransform } from '@daffodil/product/driver/magento';\n\nimport { MagentoCompleteCategoryResponse } from '../models/public_api';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffMagentoCategoryPageConfigTransformerService {\n\n transform(categoryResponse: MagentoCompleteCategoryResponse): DaffCategoryPageMetadata {\n const aggregatesWithoutCategories = categoryResponse.aggregates.filter(aggregate => aggregate.attribute_code !== 'category_id');\n\n return {\n ...magentoProductCollectionMetadataTransform(\n aggregatesWithoutCategories,\n categoryResponse.page_info,\n categoryResponse.sort_fields,\n categoryResponse.products,\n categoryResponse.total_count,\n categoryResponse.appliedSortOption,\n categoryResponse.appliedSortDirection,\n ),\n id: categoryResponse.category.uid,\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n DaffCategory,\n DaffCategoryBreadcrumb,\n} from '@daffodil/category';\nimport { MagentoProduct } from '@daffodil/product/driver/magento';\n\nimport {\n MagentoBreadcrumb,\n MagentoCategory,\n} from '../models/public_api';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffMagentoCategoryTransformerService {\n\n transform(category: MagentoCategory, products: MagentoProduct[]): DaffCategory {\n return {\n id: category.uid,\n url: `/${category.url_path}${category.url_suffix}`,\n canonicalUrl: category.canonical_url,\n name: category.name,\n description: category.description,\n meta_title: category.meta_title,\n meta_description: category.meta_description,\n children_count: category.children_count,\n breadcrumbs: category.breadcrumbs\n ?.map(breadcrumb => this.transformBreadcrumb(breadcrumb, category))\n .sort((a, b) => a.level - b.level) || null,\n product_ids: products.map(product => product.sku),\n total_products: products.length,\n };\n }\n\n private transformBreadcrumb(breadcrumb: MagentoBreadcrumb, category: MagentoCategory): DaffCategoryBreadcrumb {\n return {\n id: breadcrumb.category_uid,\n name: breadcrumb.category_name,\n level: breadcrumb.category_level,\n url: `/${breadcrumb.category_url_path}${category.url_suffix}`,\n };\n }\n}\n","import {\n Inject,\n Injectable,\n} from '@angular/core';\n\nimport { DaffGetCategoryResponse } from '@daffodil/category';\nimport {\n DAFF_PRODUCT_MAGENTO_PRODUCT_TRANSFORM,\n DaffMagentoProductTransform,\n} from '@daffodil/product/driver/magento';\n\nimport { MagentoCompleteCategoryResponse } from '../models/public_api';\nimport { DaffMagentoCategoryPageConfigTransformerService } from './category-page-config-transformer.service';\nimport { DaffMagentoCategoryTransformerService } from './category-transformer.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffMagentoCategoryResponseTransformService {\n\n constructor(\n private magentoCategoryTransformerService: DaffMagentoCategoryTransformerService,\n private magentoCategoryPageConfigurationTransformerService: DaffMagentoCategoryPageConfigTransformerService,\n @Inject(DAFF_PRODUCT_MAGENTO_PRODUCT_TRANSFORM) private magentoProductsTransform: DaffMagentoProductTransform,\n ) {}\n\n transform(completeCategory: MagentoCompleteCategoryResponse, mediaUrl: string): DaffGetCategoryResponse {\n return {\n ...{ magentoCompleteCategoryResponse: completeCategory },\n category: this.magentoCategoryTransformerService.transform(completeCategory.category, completeCategory.products),\n categoryPageMetadata: this.magentoCategoryPageConfigurationTransformerService.transform(completeCategory),\n products: completeCategory.products.map(product => this.magentoProductsTransform(product, mediaUrl)),\n };\n }\n}\n","import {\n Injectable,\n Inject,\n} from '@angular/core';\nimport { Apollo } from 'apollo-angular';\nimport { DocumentNode } from 'graphql';\nimport {\n Observable,\n combineLatest,\n} from 'rxjs';\nimport {\n map,\n switchMap,\n} from 'rxjs/operators';\n\nimport {\n DaffGetCategoryResponse,\n DaffCategoryUrlRequest,\n DaffCategoryRequestKind,\n DaffCategoryIdRequest,\n DaffCategoryRequest,\n} from '@daffodil/category';\nimport { DaffCategoryServiceInterface } from '@daffodil/category/driver';\nimport {\n daffApplyRequestsToFilters,\n DaffFilterRequest,\n} from '@daffodil/core';\nimport {\n DaffProductMagentoDriverConfig,\n DAFF_PRODUCT_MAGENTO_EXTRA_PRODUCT_FRAGMENTS,\n MagentoProductGetFilterTypes,\n MagentoProductGetFilterTypesResponse,\n MAGENTO_PRODUCT_CONFIG_TOKEN,\n magentoAppliedSortOptionTransform,\n DAFF_PRODUCT_MAGENTO_EXTRA_PRODUCT_PREVIEW_FRAGMENTS,\n} from '@daffodil/product/driver/magento';\n\nimport {\n MAGENTO_CATEGORY_CONFIG_TOKEN,\n DaffCategoryMagentoDriverConfig,\n} from './interfaces/public_api';\nimport {\n MagentoGetCategoryAndProductsRequest,\n MagentoGetCategoryAndProductsResponse,\n MagentoCategoryUrlResolverResponse,\n MagentoCompleteCategoryResponse,\n} from './models/public_api';\nimport {\n MagentoGetCategoryAndProductsQuery,\n MagentoResolveCategoryUrl,\n} from './queries/public_api';\nimport {\n DaffMagentoCategoryResponseTransformService,\n DaffMagentoAppliedFiltersTransformService,\n} from './transformers/public_api';\nimport { addMetadataTypesToProductsResponse } from './transformers/pure/add-metadata-types-to-aggregates';\n\nconst applyFiltersOnResponse = (requests: DaffFilterRequest[], response: DaffGetCategoryResponse): DaffGetCategoryResponse => ({\n ...response,\n categoryPageMetadata: {\n ...response.categoryPageMetadata,\n filters: daffApplyRequestsToFilters(requests, response.categoryPageMetadata.filters),\n },\n});\n\n/**\n * A service for making magento apollo queries for categories. Should be provided via the {@link DaffCategoryDriver} token.\n *\n * @inheritdoc\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffMagentoCategoryService implements DaffCategoryServiceInterface {\n\n constructor(\n private apollo: Apollo,\n private magentoCategoryResponseTransformer: DaffMagentoCategoryResponseTransformService,\n private magentoAppliedFiltersTransformer: DaffMagentoAppliedFiltersTransformService,\n @Inject(MAGENTO_CATEGORY_CONFIG_TOKEN) private config: DaffCategoryMagentoDriverConfig,\n @Inject(MAGENTO_PRODUCT_CONFIG_TOKEN) private productConfig: DaffProductMagentoDriverConfig,\n @Inject(DAFF_PRODUCT_MAGENTO_EXTRA_PRODUCT_FRAGMENTS) private extraProductFragments: DocumentNode[],\n @Inject(DAFF_PRODUCT_MAGENTO_EXTRA_PRODUCT_PREVIEW_FRAGMENTS) private extraProductPreviewFragments: DocumentNode[],\n ) {}\n\n get(categoryRequest: DaffCategoryIdRequest): Observable<DaffGetCategoryResponse> {\n return combineLatest([\n this.apollo.query<MagentoProductGetFilterTypesResponse>({\n query: MagentoProductGetFilterTypes,\n }),\n this.apollo.query<MagentoGetCategoryAndProductsResponse>({\n query: MagentoGetCategoryAndProductsQuery([\n ...this.extraProductFragments,\n ...this.extraProductPreviewFragments,\n ]),\n variables: this.getCategoryAndProductsQueryVariables(categoryRequest),\n }),\n ]).pipe(\n map(([\n filterTypes,\n categoryAndProducts,\n ]) => this.transformCategory(categoryAndProducts.data, filterTypes.data, categoryRequest ,this.productConfig.baseMediaUrl)),\n map(result => categoryRequest.filterRequests\n ? applyFiltersOnResponse(categoryRequest.filterRequests, result)\n : result,\n ),\n );\n }\n\n getByUrl(categoryRequest: DaffCategoryUrlRequest): Observable<DaffGetCategoryResponse> {\n return combineLatest([\n this.apollo.query<MagentoCategoryUrlResolverResponse>({\n query: MagentoResolveCategoryUrl,\n variables: {\n url: categoryRequest.url,\n },\n }),\n this.apollo.query<MagentoProductGetFilterTypesResponse>({\n query: MagentoProductGetFilterTypes,\n }),\n ]).pipe(\n switchMap(([\n category,\n filterTypes,\n ]) => this.apollo.query<MagentoGetCategoryAndProductsResponse>({\n query: MagentoGetCategoryAndProductsQuery([\n ...this.extraProductFragments,\n ...this.extraProductPreviewFragments,\n ]),\n variables: this.getCategoryAndProductsQueryVariables({\n ...categoryRequest,\n id: category.data.route?.uid,\n kind: DaffCategoryRequestKind.ID,\n }),\n }).pipe(\n map(categoryAndProducts => this.transformCategory(categoryAndProducts.data, filterTypes.data, categoryRequest, this.productConfig.baseMediaUrl)),\n map(result => categoryRequest.filterRequests\n ? applyFiltersOnResponse(categoryRequest.filterRequests, result)\n : result,\n ),\n )),\n );\n }\n\n private getCategoryAndProductsQueryVariables(request: DaffCategoryIdRequest): MagentoGetCategoryAndProductsRequest {\n const queryVariables = {\n productFilter: this.magentoAppliedFiltersTransformer.transform(request.id, request.filterRequests),\n categoryFilters: {\n category_uid: {\n eq: request.id,\n },\n },\n };\n if(request.pageSize) {\n queryVariables['pageSize'] = request.pageSize;\n }\n if(request.currentPage) {\n queryVariables['currentPage'] = request.currentPage;\n }\n if(request.appliedSortOption && request.appliedSortDirection) {\n queryVariables['sort'] = magentoAppliedSortOptionTransform(request.appliedSortOption, request.appliedSortDirection);\n }\n\n return queryVariables;\n }\n\n private transformCategory(\n categoryResponse: MagentoGetCategoryAndProductsResponse,\n filterTypesResponse: MagentoProductGetFilterTypesResponse,\n request: DaffCategoryRequest,\n mediaUrl: string,\n ): DaffGetCategoryResponse {\n const aggregations = addMetadataTypesToProductsResponse(filterTypesResponse, categoryResponse);\n const completeCategory: MagentoCompleteCategoryResponse = {\n category: categoryResponse.categoryList[0],\n products: categoryResponse.products.items,\n aggregates: aggregations.products.aggregations,\n sort_fields: aggregations.products.sort_fields,\n total_count: categoryResponse.products.total_count,\n page_info: categoryResponse.products.page_info,\n appliedSortOption: request.appliedSortOption,\n appliedSortDirection: request.appliedSortDirection,\n };\n\n return this.magentoCategoryResponseTransformer.transform(completeCategory, mediaUrl);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ModuleWithProviders,\n NgModule,\n} from '@angular/core';\n\nimport { DaffCategoryDriver } from '@daffodil/category/driver';\nimport { DAFF_MAGENTO_CACHEABLE_OPERATIONS } from '@daffodil/driver/magento';\nimport {\n daffProvideProductMagentoExtraProductPreviewFragments,\n DAFF_MAGENTO_GET_FILTER_TYPES_QUERY_NAME,\n magentoProductPreviewFragment,\n} from '@daffodil/product/driver/magento';\n\nimport { DaffMagentoCategoryService } from './category.service';\nimport { MAGENTO_CATEGORY_CONFIG_DEFAULT } from './config/default';\nimport {\n DaffCategoryMagentoDriverConfig,\n MAGENTO_CATEGORY_CONFIG_TOKEN,\n} from './interfaces/public_api';\nimport {\n DAFF_MAGENTO_GET_CATEGORY_AND_PRODUCTS_QUERY_NAME,\n DAFF_MAGENTO_RESOLVE_CATEGORY_URL_QUERY_NAME,\n} from './queries/public_api';\nimport { DaffMagentoAppliedFiltersTransformService } from './transformers/applied-filter-transformer.service';\nimport { DaffMagentoCategoryPageConfigTransformerService } from './transformers/category-page-config-transformer.service';\nimport { DaffMagentoCategoryResponseTransformService } from './transformers/category-response-transform.service';\nimport { DaffMagentoCategoryTransformerService } from './transformers/category-transformer.service';\n\n/**\n * A module that provides the {@link DaffCategoryDriver} and {@link MAGENTO_CATEGORY_CONFIG_TOKEN} as the {@link DaffMagentoCategoryService} and\n * {@link MAGENTO_CATEGORY_CONFIG_DEFAULT} respectively\n */\n@NgModule({\n imports: [\n CommonModule,\n ],\n})\nexport class DaffCategoryMagentoDriverModule {\n static forRoot(config: DaffCategoryMagentoDriverConfig = MAGENTO_CATEGORY_CONFIG_DEFAULT): ModuleWithProviders<DaffCategoryMagentoDriverModule> {\n return {\n ngModule: DaffCategoryMagentoDriverModule,\n providers: [\n {\n provide: DaffCategoryDriver,\n useExisting: DaffMagentoCategoryService,\n },\n DaffMagentoCategoryPageConfigTransformerService,\n DaffMagentoCategoryResponseTransformService,\n DaffMagentoCategoryTransformerService,\n DaffMagentoAppliedFiltersTransformService,\n {\n provide: DAFF_MAGENTO_CACHEABLE_OPERATIONS,\n useValue: DAFF_MAGENTO_GET_FILTER_TYPES_QUERY_NAME,\n multi: true,\n },\n {\n provide: DAFF_MAGENTO_CACHEABLE_OPERATIONS,\n useValue: DAFF_MAGENTO_GET_CATEGORY_AND_PRODUCTS_QUERY_NAME,\n multi: true,\n },\n {\n provide: DAFF_MAGENTO_CACHEABLE_OPERATIONS,\n useValue: DAFF_MAGENTO_RESOLVE_CATEGORY_URL_QUERY_NAME,\n multi: true,\n },\n {\n provide: MAGENTO_CATEGORY_CONFIG_TOKEN,\n useValue: {\n ...MAGENTO_CATEGORY_CONFIG_DEFAULT,\n ...config,\n },\n },\n ],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"daffodil-category-routing.mjs","sources":["../../../libs/category/routing/src/injection-tokens/request/builder.token.ts","../../../libs/category/routing/src/resolvers/category-page-id/category-page-id.resolver.ts","../../../libs/category/routing/src/resolvers/category-page/category-page.resolver.ts","../../../libs/category/routing/src/resolvers/category-page-url/category-page-url.resolver.ts","../../../libs/category/routing/src/injection-tokens/request/builders.token.ts","../../../libs/category/routing/src/effects/collection-route.effects.ts","../../../libs/category/routing/src/module.ts","../../../libs/category/routing/src/daffodil-category-routing.ts"],"sourcesContent":["import {\n inject,\n InjectionToken,\n} from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\n\nimport {\n DaffCategoryRoutingRequestBuilder,\n DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS,\n} from './builders.token';\n\n/**\n * An internal token to combine the {@link DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS} into a single builder.\n */\nexport const DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER = new InjectionToken<DaffCategoryRoutingRequestBuilder>(\n 'DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER',\n {\n factory: () => () => ({}),\n },\n);\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n Inject,\n Injectable,\n PLATFORM_ID,\n} from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n Resolve,\n} from '@angular/router';\nimport { ofType } from '@ngrx/effects';\nimport {\n ActionsSubject,\n Store,\n} from '@ngrx/store';\nimport {\n Observable,\n of,\n} from 'rxjs';\nimport {\n map,\n take,\n} from 'rxjs/operators';\n\nimport { DaffCategoryRequestKind } from '@daffodil/category';\nimport {\n DaffCategoryReducersState,\n DaffCategoryPageLoad,\n DaffCategoryPageActionTypes,\n} from '@daffodil/category/state';\n\nimport { DaffCategoryRoutingRequestBuilder } from '../../injection-tokens/public_api';\nimport { DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER } from '../../injection-tokens/request/builder.token';\n\n/**\n * Resolves category data for category pages, and will only resolve the url after a category request succeeds or fails. This resolver expects a url\n * of the form `some/url/{id}` where `{id}` is the category id.\n */\n@Injectable()\nexport class DaffCategoryPageIdResolver implements Resolve<Observable<boolean>> {\n constructor(\n @Inject(PLATFORM_ID) private platformId: string,\n @Inject(DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER) private requestBuilder: DaffCategoryRoutingRequestBuilder,\n private store: Store<DaffCategoryReducersState>,\n private dispatcher: ActionsSubject,\n ) { }\n\n resolve(route: ActivatedRouteSnapshot): Observable<boolean> {\n this.store.dispatch(new DaffCategoryPageLoad({\n ...this.requestBuilder(route),\n id: route.paramMap.get('id'),\n kind: DaffCategoryRequestKind.ID,\n }));\n\n return isPlatformBrowser(this.platformId) ? of(true) : this.dispatcher.pipe(\n ofType(DaffCategoryPageActionTypes.CategoryPageLoadSuccessAction, DaffCategoryPageActionTypes.CategoryPageLoadFailureAction),\n map(() => true),\n take(1),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n Resolve,\n} from '@angular/router';\nimport { Observable } from 'rxjs';\n\nimport { DaffCategoryPageIdResolver } from '../category-page-id/category-page-id.resolver';\n\n/**\n * Resolves category data for category pages, and will only resolve the url after a category request succeeds or fails. This resolver expects a url\n * of the form `some/url/{id}` where `{id}` is the category id.\n *\n * @deprecated\n * @see DaffCategoryPageIdResolver\n */\n@Injectable()\nexport class DaffCategoryPageResolver implements Resolve<Observable<boolean>> {\n constructor(\n private categoryPageIdResolver: DaffCategoryPageIdResolver,\n ) { }\n\n resolve(route: ActivatedRouteSnapshot): Observable<boolean> {\n return this.categoryPageIdResolver.resolve(route);\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n Inject,\n Injectable,\n PLATFORM_ID,\n} from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n Resolve,\n RouterStateSnapshot,\n} from '@angular/router';\nimport { ofType } from '@ngrx/effects';\nimport {\n ActionsSubject,\n Store,\n} from '@ngrx/store';\nimport {\n Observable,\n of,\n} from 'rxjs';\nimport {\n map,\n take,\n} from 'rxjs/operators';\n\nimport { DaffCategoryRequestKind } from '@daffodil/category';\nimport {\n DaffCategoryReducersState,\n DaffCategoryPageActionTypes,\n DaffCategoryPageLoadByUrl,\n} from '@daffodil/category/state';\nimport { DaffRoutingUriNormalizer } from '@daffodil/core/routing';\n\nimport { DaffCategoryRoutingRequestBuilder } from '../../injection-tokens/public_api';\nimport { DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER } from '../../injection-tokens/request/builder.token';\n\n/**\n * Resolves category data for category pages, and will only resolve the url\n * after a category request succeeds or fails. This resolver will take a full\n * a url of the form `some/url.html(secondary:outlet)?query=param#fragment` and attempt to resolve a product from it.\n * Assumes that the URL to be resolved is the primary outlet.\n */\n@Injectable()\nexport class DaffCategoryPageUrlResolver implements Resolve<Observable<boolean>> {\n constructor(\n @Inject(PLATFORM_ID) private platformId: string,\n @Inject(DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER) private requestBuilder: DaffCategoryRoutingRequestBuilder,\n private store: Store<DaffCategoryReducersState>,\n private dispatcher: ActionsSubject,\n private urlNormalizer: DaffRoutingUriNormalizer,\n ) { }\n\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\n this.store.dispatch(new DaffCategoryPageLoadByUrl({\n ...this.requestBuilder(route),\n url: this.urlNormalizer.normalize(state.url),\n kind: DaffCategoryRequestKind.URL,\n }));\n\n return isPlatformBrowser(this.platformId) ? of(true) : this.dispatcher.pipe(\n ofType(DaffCategoryPageActionTypes.CategoryPageLoadSuccessAction, DaffCategoryPageActionTypes.CategoryPageLoadFailureAction),\n map(() => true),\n take(1),\n );\n }\n}\n","import {\n InjectionToken,\n ValueProvider,\n} from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\n\nimport { DaffProductCollectionRequest } from '@daffodil/product';\n\n\nexport type DaffCategoryRoutingRequestBuilder<T extends DaffProductCollectionRequest = DaffProductCollectionRequest> = (route: ActivatedRouteSnapshot) => T;\n\n/**\n * A multi-provider injection token for category request builders.\n * These builders are called with the requested route during the resolve step\n * and return options to pass to the category driver.\n */\nexport const DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS = new InjectionToken<DaffCategoryRoutingRequestBuilder[]>(\n 'DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS',\n { factory: () => []},\n);\n\n/**\n * Provides category request builders for the routing layer.\n *\n * See {@link DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS}.\n *\n * ```ts\n * providers: [\n * ...daffProvideCategoryRoutingRequestBuilders(\n * route => ({\n * currentPage: route.queryParams.page\n * })\n * )\n * ]\n * ```\n */\nexport function daffProvideCategoryRoutingRequestBuilders(...builders: DaffCategoryRoutingRequestBuilder[]): ValueProvider[] {\n return builders.map(builder => ({\n provide: DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS,\n useValue: builder,\n multi: true,\n }));\n}\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\nimport { Actions } from '@ngrx/effects';\n\nimport {\n DaffCategoryPageProductCollectionActionTypes,\n DaffCategoryProductCollectionFacade,\n} from '@daffodil/category/state';\nimport {\n DaffProductGetQueryParamsFromRequest,\n DaffProductRoutingCollectionEffects,\n} from '@daffodil/product/routing';\n\n@Injectable()\nexport class DaffCategoryRoutingCollectionEffects extends DaffProductRoutingCollectionEffects {\n constructor(\n actions$: Actions,\n router: Router,\n collectionFacade: DaffCategoryProductCollectionFacade,\n getQueryParams: DaffProductGetQueryParamsFromRequest,\n route: ActivatedRoute,\n ) {\n super(\n actions$,\n router,\n Object.values(DaffCategoryPageProductCollectionActionTypes),\n collectionFacade,\n getQueryParams,\n route,\n );\n }\n}\n","import {\n inject,\n NgModule,\n} from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\nimport { EffectsModule } from '@ngrx/effects';\n\nimport {\n DaffProductGetCollectionRequestFromRoute,\n DaffProductRoutingModule,\n} from '@daffodil/product/routing';\n\nimport { DaffCategoryRoutingCollectionEffects } from './effects/collection-route.effects';\nimport {\n DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS,\n DaffCategoryRoutingRequestBuilder,\n} from './injection-tokens/public_api';\nimport { DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER } from './injection-tokens/request/builder.token';\nimport {\n DaffCategoryPageIdResolver,\n DaffCategoryPageResolver,\n DaffCategoryPageUrlResolver,\n} from './resolvers/public_api';\n\n@NgModule({\n imports: [\n DaffProductRoutingModule,\n EffectsModule.forFeature([\n DaffCategoryRoutingCollectionEffects,\n ]),\n ],\n providers: [\n DaffCategoryPageResolver,\n DaffCategoryPageIdResolver,\n DaffCategoryPageUrlResolver,\n {\n provide: DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS,\n useFactory: () => {\n const service = inject(DaffProductGetCollectionRequestFromRoute);\n const builder: DaffCategoryRoutingRequestBuilder = route => service.getRequest(route.queryParamMap);\n return builder;\n },\n multi: true,\n },\n {\n provide: DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER,\n useFactory: () => {\n const builders = inject(DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS);\n return (route: ActivatedRouteSnapshot) =>\n Object.assign({}, ...builders.map(builder => builder(route)));\n },\n },\n ],\n})\nexport class DaffCategoryRoutingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DaffCategoryPageIdResolver","i1","i2"],"mappings":";;;;;;;;;;;;;;;;AAWA;;AAEG;AACI,MAAM,qCAAqC,GAAG,IAAI,cAAc,CACrE,uCAAuC,EACvC;IACE,OAAO,EAAE,MAAM,OAAO,EAAE,CAAC;AAC1B,CAAA,CACF;;ACeD;;;AAGG;MAEU,0BAA0B,CAAA;AACrC,IAAA,WAAA,CAC+B,UAAkB,EACQ,cAAiD,EAChG,KAAuC,EACvC,UAA0B,EAAA;AAHL,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAQ;AACQ,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmC;AAChG,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAkC;AACvC,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAgB;KAC/B;AAEL,IAAA,OAAO,CAAC,KAA6B,EAAA;AACnC,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,oBAAoB,CACvC,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAC7B,EAAA,EAAA,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAC5B,IAAI,EAAE,uBAAuB,CAAC,EAAE,EAAA,CAAA,CAChC,CAAC,CAAC;QAEJ,OAAO,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CACzE,MAAM,CAAC,2BAA2B,CAAC,6BAA6B,EAAE,2BAA2B,CAAC,6BAA6B,CAAC,EAC5H,GAAG,CAAC,MAAM,IAAI,CAAC,EACf,IAAI,CAAC,CAAC,CAAC,CACR,CAAC;KACH;;0IApBU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAE3B,WAAW,EAAA,EAAA,EAAA,KAAA,EACX,qCAAqC,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;8IAHpC,0BAA0B,EAAA,CAAA,CAAA;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC,UAAU;;;8BAGN,MAAM;+BAAC,WAAW,CAAA;;8BAClB,MAAM;+BAAC,qCAAqC,CAAA;;;;ACjCjD;;;;;;AAMG;MAEU,wBAAwB,CAAA;AACnC,IAAA,WAAA,CACU,sBAAkD,EAAA;AAAlD,QAAA,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAA4B;KACvD;AAEL,IAAA,OAAO,CAAC,KAA6B,EAAA;QACnC,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KACnD;;wIAPU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,0BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;4IAAxB,wBAAwB,EAAA,CAAA,CAAA;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC,UAAU;;;ACoBX;;;;;AAKG;MAEU,2BAA2B,CAAA;IACtC,WAC+B,CAAA,UAAkB,EACQ,cAAiD,EAChG,KAAuC,EACvC,UAA0B,EAC1B,aAAuC,EAAA;AAJlB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAQ;AACQ,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmC;AAChG,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAkC;AACvC,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAgB;AAC1B,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAA0B;KAC5C;IAEL,OAAO,CAAC,KAA6B,EAAE,KAA0B,EAAA;AAC/D,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,yBAAyB,CAC5C,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAC7B,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAC5C,IAAI,EAAE,uBAAuB,CAAC,GAAG,EAAA,CAAA,CACjC,CAAC,CAAC;QAEJ,OAAO,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CACzE,MAAM,CAAC,2BAA2B,CAAC,6BAA6B,EAAE,2BAA2B,CAAC,6BAA6B,CAAC,EAC5H,GAAG,CAAC,MAAM,IAAI,CAAC,EACf,IAAI,CAAC,CAAC,CAAC,CACR,CAAC;KACH;;2IArBU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAE5B,WAAW,EAAA,EAAA,EAAA,KAAA,EACX,qCAAqC,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;+IAHpC,2BAA2B,EAAA,CAAA,CAAA;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADvC,UAAU;;;8BAGN,MAAM;+BAAC,WAAW,CAAA;;8BAClB,MAAM;+BAAC,qCAAqC,CAAA;;;;ACnCjD;;;;AAIG;AACU,MAAA,sCAAsC,GAAG,IAAI,cAAc,CACtE,wCAAwC,EACxC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAC,EACpB;AAEF;;;;;;;;;;;;;;AAcG;AACa,SAAA,yCAAyC,CAAC,GAAG,QAA6C,EAAA;IACxG,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,KAAK;AAC9B,QAAA,OAAO,EAAE,sCAAsC;AAC/C,QAAA,QAAQ,EAAE,OAAO;AACjB,QAAA,KAAK,EAAE,IAAI;AACZ,KAAA,CAAC,CAAC,CAAC;AACN;;ACzBM,MAAO,oCAAqC,SAAQ,mCAAmC,CAAA;IAC3F,WACE,CAAA,QAAiB,EACjB,MAAc,EACd,gBAAqD,EACrD,cAAoD,EACpD,KAAqB,EAAA;AAErB,QAAA,KAAK,CACH,QAAQ,EACR,MAAM,EACN,MAAM,CAAC,MAAM,CAAC,4CAA4C,CAAC,EAC3D,gBAAgB,EAChB,cAAc,EACd,KAAK,CACN,CAAC;KACH;;oJAhBU,oCAAoC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mCAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,oCAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;wJAApC,oCAAoC,EAAA,CAAA,CAAA;2FAApC,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBADhD,UAAU;;;MCsCE,yBAAyB,CAAA;;yIAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAzB,mBAAA,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,YA5BlC,wBAAwB,EAAAD,IAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,CAAA;AA4Bf,mBAAA,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,EAvBzB,SAAA,EAAA;QACT,wBAAwB;QACxB,0BAA0B;QAC1B,2BAA2B;AAC3B,QAAA;AACE,YAAA,OAAO,EAAE,sCAAsC;YAC/C,UAAU,GAAE,MAAK;AACf,gBAAA,MAAM,OAAO,GAAG,MAAM,CAAC,wCAAwC,CAAC,CAAC;AACjE,gBAAA,MAAM,OAAO,IAAsC,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA,CAAC;AACpG,gBAAA,OAAO,OAAO,CAAC;AACjB,aAAC,CAAA;AACD,YAAA,KAAK,EAAE,IAAI;AACZ,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,qCAAqC;YAC9C,UAAU,GAAE,MAAK;AACf,gBAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,sCAAsC,CAAC,CAAC;AAChE,gBAAA,QAAO,CAAC,KAA6B,KACnC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,EAAC,CAAC,EAAC;AAClE,aAAC,CAAA;AACF,SAAA;KACF,EA3BQ,OAAA,EAAA,CAAA;YACP,wBAAwB;YACxB,aAAa,CAAC,UAAU,CAAC;gBACvB,oCAAoC;aACrC,CAAC;SACH,CAAA,EAAA,CAAA,CAAA;2FAwBU,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBA9BrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,wBAAwB;wBACxB,aAAa,CAAC,UAAU,CAAC;4BACvB,oCAAoC;yBACrC,CAAC;AACH,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACT,wBAAwB;wBACxB,0BAA0B;wBAC1B,2BAA2B;AAC3B,wBAAA;AACE,4BAAA,OAAO,EAAE,sCAAsC;4BAC/C,UAAU,GAAE,MAAK;AACf,gCAAA,MAAM,OAAO,GAAG,MAAM,CAAC,wCAAwC,CAAC,CAAC;AACjE,gCAAA,MAAM,OAAO,IAAsC,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA,CAAC;AACpG,gCAAA,OAAO,OAAO,CAAC;AACjB,6BAAC,CAAA;AACD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,qCAAqC;4BAC9C,UAAU,GAAE,MAAK;AACf,gCAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,sCAAsC,CAAC,CAAC;AAChE,gCAAA,QAAO,CAAC,KAA6B,KACnC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,EAAC,CAAC,EAAC;AAClE,6BAAC,CAAA;AACF,yBAAA;AACF,qBAAA;iBACF,CAAA;;;ACrDD;;AAEG;;;;"}
1
+ {"version":3,"file":"daffodil-category-routing.mjs","sources":["../../../libs/category/routing/src/injection-tokens/request/builder.token.ts","../../../libs/category/routing/src/resolvers/category-page-id/category-page-id.resolver.ts","../../../libs/category/routing/src/resolvers/category-page/category-page.resolver.ts","../../../libs/category/routing/src/resolvers/category-page-url/category-page-url.resolver.ts","../../../libs/category/routing/src/injection-tokens/request/builders.token.ts","../../../libs/category/routing/src/effects/collection-route.effects.ts","../../../libs/category/routing/src/module.ts","../../../libs/category/routing/src/daffodil-category-routing.ts"],"sourcesContent":["import {\n inject,\n InjectionToken,\n} from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\n\nimport {\n DaffCategoryRoutingRequestBuilder,\n DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS,\n} from './builders.token';\n\n/**\n * An internal token to combine the {@link DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS} into a single builder.\n */\nexport const DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER = new InjectionToken<DaffCategoryRoutingRequestBuilder>(\n 'DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER',\n {\n factory: () => () => ({}),\n },\n);\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n Inject,\n Injectable,\n PLATFORM_ID,\n} from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n Resolve,\n} from '@angular/router';\nimport { ofType } from '@ngrx/effects';\nimport {\n ActionsSubject,\n Store,\n} from '@ngrx/store';\nimport {\n Observable,\n of,\n} from 'rxjs';\nimport {\n map,\n take,\n} from 'rxjs/operators';\n\nimport { DaffCategoryRequestKind } from '@daffodil/category';\nimport {\n DaffCategoryReducersState,\n DaffCategoryPageLoad,\n DaffCategoryPageActionTypes,\n} from '@daffodil/category/state';\n\nimport { DaffCategoryRoutingRequestBuilder } from '../../injection-tokens/public_api';\nimport { DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER } from '../../injection-tokens/request/builder.token';\n\n/**\n * Resolves category data for category pages, and will only resolve the url after a category request succeeds or fails. This resolver expects a url\n * of the form `some/url/{id}` where `{id}` is the category id.\n */\n@Injectable()\nexport class DaffCategoryPageIdResolver implements Resolve<Observable<boolean>> {\n constructor(\n @Inject(PLATFORM_ID) private platformId: string,\n @Inject(DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER) private requestBuilder: DaffCategoryRoutingRequestBuilder,\n private store: Store<DaffCategoryReducersState>,\n private dispatcher: ActionsSubject,\n ) { }\n\n resolve(route: ActivatedRouteSnapshot): Observable<boolean> {\n this.store.dispatch(new DaffCategoryPageLoad({\n ...this.requestBuilder(route),\n id: route.paramMap.get('id'),\n kind: DaffCategoryRequestKind.ID,\n }));\n\n return isPlatformBrowser(this.platformId) ? of(true) : this.dispatcher.pipe(\n ofType(DaffCategoryPageActionTypes.CategoryPageLoadSuccessAction, DaffCategoryPageActionTypes.CategoryPageLoadFailureAction),\n map(() => true),\n take(1),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n Resolve,\n} from '@angular/router';\nimport { Observable } from 'rxjs';\n\nimport { DaffCategoryPageIdResolver } from '../category-page-id/category-page-id.resolver';\n\n/**\n * Resolves category data for category pages, and will only resolve the url after a category request succeeds or fails. This resolver expects a url\n * of the form `some/url/{id}` where `{id}` is the category id.\n *\n * @deprecated\n * @see DaffCategoryPageIdResolver\n */\n@Injectable()\nexport class DaffCategoryPageResolver implements Resolve<Observable<boolean>> {\n constructor(\n private categoryPageIdResolver: DaffCategoryPageIdResolver,\n ) { }\n\n resolve(route: ActivatedRouteSnapshot): Observable<boolean> {\n return this.categoryPageIdResolver.resolve(route);\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n Inject,\n Injectable,\n PLATFORM_ID,\n} from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n Resolve,\n RouterStateSnapshot,\n} from '@angular/router';\nimport { ofType } from '@ngrx/effects';\nimport {\n ActionsSubject,\n Store,\n} from '@ngrx/store';\nimport {\n Observable,\n of,\n} from 'rxjs';\nimport {\n map,\n take,\n} from 'rxjs/operators';\n\nimport { DaffCategoryRequestKind } from '@daffodil/category';\nimport {\n DaffCategoryReducersState,\n DaffCategoryPageActionTypes,\n DaffCategoryPageLoadByUrl,\n} from '@daffodil/category/state';\nimport { DaffRoutingUriNormalizer } from '@daffodil/core/routing';\n\nimport { DaffCategoryRoutingRequestBuilder } from '../../injection-tokens/public_api';\nimport { DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER } from '../../injection-tokens/request/builder.token';\n\n/**\n * Resolves category data for category pages, and will only resolve the url\n * after a category request succeeds or fails. This resolver will take a full\n * a url of the form `some/url.html(secondary:outlet)?query=param#fragment` and attempt to resolve a product from it.\n * Assumes that the URL to be resolved is the primary outlet.\n */\n@Injectable()\nexport class DaffCategoryPageUrlResolver implements Resolve<Observable<boolean>> {\n constructor(\n @Inject(PLATFORM_ID) private platformId: string,\n @Inject(DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER) private requestBuilder: DaffCategoryRoutingRequestBuilder,\n private store: Store<DaffCategoryReducersState>,\n private dispatcher: ActionsSubject,\n private urlNormalizer: DaffRoutingUriNormalizer,\n ) { }\n\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\n this.store.dispatch(new DaffCategoryPageLoadByUrl({\n ...this.requestBuilder(route),\n url: this.urlNormalizer.normalize(state.url),\n kind: DaffCategoryRequestKind.URL,\n }));\n\n return isPlatformBrowser(this.platformId) ? of(true) : this.dispatcher.pipe(\n ofType(DaffCategoryPageActionTypes.CategoryPageLoadSuccessAction, DaffCategoryPageActionTypes.CategoryPageLoadFailureAction),\n map(() => true),\n take(1),\n );\n }\n}\n","import {\n InjectionToken,\n ValueProvider,\n} from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\n\nimport { DaffCollectionRequest } from '@daffodil/core';\n\n\nexport type DaffCategoryRoutingRequestBuilder<T extends DaffCollectionRequest = DaffCollectionRequest> = (route: ActivatedRouteSnapshot) => T;\n\n/**\n * A multi-provider injection token for category request builders.\n * These builders are called with the requested route during the resolve step\n * and return options to pass to the category driver.\n */\nexport const DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS = new InjectionToken<DaffCategoryRoutingRequestBuilder[]>(\n 'DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS',\n { factory: () => []},\n);\n\n/**\n * Provides category request builders for the routing layer.\n *\n * See {@link DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS}.\n *\n * ```ts\n * providers: [\n * ...daffProvideCategoryRoutingRequestBuilders(\n * route => ({\n * currentPage: route.queryParams.page\n * })\n * )\n * ]\n * ```\n */\nexport function daffProvideCategoryRoutingRequestBuilders(...builders: DaffCategoryRoutingRequestBuilder[]): ValueProvider[] {\n return builders.map(builder => ({\n provide: DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS,\n useValue: builder,\n multi: true,\n }));\n}\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\nimport { Actions } from '@ngrx/effects';\n\nimport {\n DaffCategoryPageProductCollectionActionTypes,\n DaffCategoryProductCollectionFacade,\n} from '@daffodil/category/state';\nimport {\n DaffProductGetQueryParamsFromRequest,\n DaffProductRoutingCollectionEffects,\n} from '@daffodil/product/routing';\n\n@Injectable()\nexport class DaffCategoryRoutingCollectionEffects extends DaffProductRoutingCollectionEffects {\n constructor(\n actions$: Actions,\n router: Router,\n collectionFacade: DaffCategoryProductCollectionFacade,\n getQueryParams: DaffProductGetQueryParamsFromRequest,\n route: ActivatedRoute,\n ) {\n super(\n actions$,\n router,\n Object.values(DaffCategoryPageProductCollectionActionTypes),\n collectionFacade,\n getQueryParams,\n route,\n );\n }\n}\n","import {\n inject,\n NgModule,\n} from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\nimport { EffectsModule } from '@ngrx/effects';\n\nimport {\n DaffProductGetCollectionRequestFromRoute,\n DaffProductRoutingModule,\n} from '@daffodil/product/routing';\n\nimport { DaffCategoryRoutingCollectionEffects } from './effects/collection-route.effects';\nimport {\n DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS,\n DaffCategoryRoutingRequestBuilder,\n} from './injection-tokens/public_api';\nimport { DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER } from './injection-tokens/request/builder.token';\nimport {\n DaffCategoryPageIdResolver,\n DaffCategoryPageResolver,\n DaffCategoryPageUrlResolver,\n} from './resolvers/public_api';\n\n@NgModule({\n imports: [\n DaffProductRoutingModule,\n EffectsModule.forFeature([\n DaffCategoryRoutingCollectionEffects,\n ]),\n ],\n providers: [\n DaffCategoryPageResolver,\n DaffCategoryPageIdResolver,\n DaffCategoryPageUrlResolver,\n {\n provide: DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS,\n useFactory: () => {\n const service = inject(DaffProductGetCollectionRequestFromRoute);\n const builder: DaffCategoryRoutingRequestBuilder = route => service.getRequest(route.queryParamMap);\n return builder;\n },\n multi: true,\n },\n {\n provide: DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER,\n useFactory: () => {\n const builders = inject(DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS);\n return (route: ActivatedRouteSnapshot) =>\n Object.assign({}, ...builders.map(builder => builder(route)));\n },\n },\n ],\n})\nexport class DaffCategoryRoutingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DaffCategoryPageIdResolver","i1","i2"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, NgModule } from '@angular/core';
3
3
  import { DaffCategoryFacade, DaffCategoryProductCollectionFacade } from '@daffodil/category/state';
4
- import { MockDaffProductCollectionFacade } from '@daffodil/product/state/testing';
4
+ import { MockDaffCollectionFacade } from '@daffodil/core/state/testing';
5
5
  import { BehaviorSubject } from 'rxjs';
6
6
 
7
7
  /**
@@ -52,14 +52,14 @@ class DaffCategoryTestingModule {
52
52
  /** @nocollapse */ DaffCategoryTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryTestingModule });
53
53
  /** @nocollapse */ DaffCategoryTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryTestingModule, providers: [
54
54
  { provide: DaffCategoryFacade, useExisting: MockDaffCategoryFacade },
55
- { provide: DaffCategoryProductCollectionFacade, useExisting: MockDaffProductCollectionFacade },
55
+ { provide: DaffCategoryProductCollectionFacade, useExisting: MockDaffCollectionFacade },
56
56
  ] });
57
57
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryTestingModule, decorators: [{
58
58
  type: NgModule,
59
59
  args: [{
60
60
  providers: [
61
61
  { provide: DaffCategoryFacade, useExisting: MockDaffCategoryFacade },
62
- { provide: DaffCategoryProductCollectionFacade, useExisting: MockDaffProductCollectionFacade },
62
+ { provide: DaffCategoryProductCollectionFacade, useExisting: MockDaffCollectionFacade },
63
63
  ],
64
64
  }]
65
65
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"daffodil-category-state-testing.mjs","sources":["../../../libs/category/state/testing/src/mock-category-facade.ts","../../../libs/category/state/testing/src/category-testing.module.ts","../../../libs/category/state/testing/src/daffodil-category-state-testing.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Action } from '@ngrx/store';\nimport { BehaviorSubject } from 'rxjs';\n\nimport {\n DaffCategory,\n DaffCategoryPageMetadata,\n} from '@daffodil/category';\nimport { DaffCategoryFacadeInterface } from '@daffodil/category/state';\nimport { DaffCategoryReducerState } from '@daffodil/category/state';\nimport {\n DaffSortDirectionEnum,\n DaffSortOption,\n\n} from '@daffodil/core';\nimport { DaffStateError } from '@daffodil/core/state';\nimport {\n DaffProduct,\n DaffProductFilter,\n} from '@daffodil/product';\n\n/**\n * Can be used to mock out the {@link DaffCategoryFacade} in testing environments.\n *\n * @inheritdoc\n */\n@Injectable({ providedIn: 'root' })\nexport class MockDaffCategoryFacade implements DaffCategoryFacadeInterface {\n\n category$: BehaviorSubject<DaffCategory> = new BehaviorSubject(null);\n pageLoadingState$: BehaviorSubject<DaffCategoryReducerState['daffState']> = new BehaviorSubject(null);\n isPageMutating$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n isPageResolving$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n products$: BehaviorSubject<DaffProduct[]> = new BehaviorSubject([]);\n categoryLoading$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n productsLoading$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n errors$: BehaviorSubject<DaffStateError[]> = new BehaviorSubject([]);\n isCategoryEmpty$: BehaviorSubject<boolean> = new BehaviorSubject(true);\n\n getCategoryById(id: DaffCategory['id']): BehaviorSubject<DaffCategory> {\n\t return new BehaviorSubject(null);\n };\n getProductsByCategory(categoryId: DaffCategory['id']): BehaviorSubject<DaffProduct[]> {\n\t return new BehaviorSubject([]);\n };\n getTotalProductsByCategory(categoryId: DaffCategory['id']): BehaviorSubject<number> {\n\t return new BehaviorSubject(null);\n };\n dispatch(action: Action) {};\n}\n","import { NgModule } from '@angular/core';\n\nimport {\n DaffCategoryFacade,\n DaffCategoryProductCollectionFacade,\n} from '@daffodil/category/state';\nimport { MockDaffProductCollectionFacade } from '@daffodil/product/state/testing';\n\nimport { MockDaffCategoryFacade } from './mock-category-facade';\n\n/**\n * A module that mocks out the {@link DaffCategoryFacade} with {@link MockDaffCategoryFacade} for testing environments.\n */\n@NgModule({\n providers: [\n { provide: DaffCategoryFacade, useExisting: MockDaffCategoryFacade },\n { provide: DaffCategoryProductCollectionFacade, useExisting: MockDaffProductCollectionFacade },\n ],\n})\nexport class DaffCategoryTestingModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAqBA;;;;AAIG;MAEU,sBAAsB,CAAA;AADnC,IAAA,WAAA,GAAA;QAGE,IAAA,CAAA,SAAS,GAAkC,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QACrE,IAAA,CAAA,iBAAiB,GAA2D,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QACtG,IAAA,CAAA,eAAe,GAA6B,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QACvE,IAAA,CAAA,gBAAgB,GAA6B,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QACxE,IAAA,CAAA,SAAS,GAAmC,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QACpE,IAAA,CAAA,gBAAgB,GAA6B,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QACxE,IAAA,CAAA,gBAAgB,GAA6B,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QACxE,IAAA,CAAA,OAAO,GAAsC,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QACrE,IAAA,CAAA,gBAAgB,GAA6B,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;KAYxE;AAVC,IAAA,eAAe,CAAC,EAAsB,EAAA;AACrC,QAAA,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;KACjC;;AACD,IAAA,qBAAqB,CAAC,UAA8B,EAAA;AACnD,QAAA,OAAO,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;KAC/B;;AACD,IAAA,0BAA0B,CAAC,UAA8B,EAAA;AACxD,QAAA,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;KACjC;;IACD,QAAQ,CAAC,MAAc,EAAA,GAAI;;;sIArBhB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,mBAAA,sBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cADT,MAAM,EAAA,CAAA,CAAA;2FACnB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;AChBlC;;AAEG;MAOU,yBAAyB,CAAA;;yIAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;0IAAzB,yBAAyB,EAAA,CAAA,CAAA;AAAzB,mBAAA,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,EALzB,SAAA,EAAA;AACT,QAAA,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,sBAAsB,EAAE;AACpE,QAAA,EAAE,OAAO,EAAE,mCAAmC,EAAE,WAAW,EAAE,+BAA+B,EAAE;AAC/F,KAAA,EAAA,CAAA,CAAA;2FAEU,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBANrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,SAAS,EAAE;AACT,wBAAA,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,sBAAsB,EAAE;AACpE,wBAAA,EAAE,OAAO,EAAE,mCAAmC,EAAE,WAAW,EAAE,+BAA+B,EAAE;AAC/F,qBAAA;iBACF,CAAA;;;AClBD;;AAEG;;;;"}
1
+ {"version":3,"file":"daffodil-category-state-testing.mjs","sources":["../../../libs/category/state/testing/src/mock-category-facade.ts","../../../libs/category/state/testing/src/category-testing.module.ts","../../../libs/category/state/testing/src/daffodil-category-state-testing.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Action } from '@ngrx/store';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { DaffCategory } from '@daffodil/category';\nimport { DaffCategoryFacadeInterface } from '@daffodil/category/state';\nimport { DaffCategoryReducerState } from '@daffodil/category/state';\nimport { DaffStateError } from '@daffodil/core/state';\nimport { DaffProduct } from '@daffodil/product';\n\n/**\n * Can be used to mock out the {@link DaffCategoryFacade} in testing environments.\n *\n * @inheritdoc\n */\n@Injectable({ providedIn: 'root' })\nexport class MockDaffCategoryFacade implements DaffCategoryFacadeInterface {\n\n category$: BehaviorSubject<DaffCategory> = new BehaviorSubject(null);\n pageLoadingState$: BehaviorSubject<DaffCategoryReducerState['daffState']> = new BehaviorSubject(null);\n isPageMutating$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n isPageResolving$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n products$: BehaviorSubject<DaffProduct[]> = new BehaviorSubject([]);\n categoryLoading$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n productsLoading$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n errors$: BehaviorSubject<DaffStateError[]> = new BehaviorSubject([]);\n isCategoryEmpty$: BehaviorSubject<boolean> = new BehaviorSubject(true);\n\n getCategoryById(id: DaffCategory['id']): BehaviorSubject<DaffCategory> {\n\t return new BehaviorSubject(null);\n };\n getProductsByCategory(categoryId: DaffCategory['id']): BehaviorSubject<DaffProduct[]> {\n\t return new BehaviorSubject([]);\n };\n getTotalProductsByCategory(categoryId: DaffCategory['id']): BehaviorSubject<number> {\n\t return new BehaviorSubject(null);\n };\n dispatch(action: Action) {};\n}\n","import { NgModule } from '@angular/core';\n\nimport {\n DaffCategoryFacade,\n DaffCategoryProductCollectionFacade,\n} from '@daffodil/category/state';\nimport { MockDaffCollectionFacade } from '@daffodil/core/state/testing';\n\nimport { MockDaffCategoryFacade } from './mock-category-facade';\n\n/**\n * A module that mocks out the {@link DaffCategoryFacade} with {@link MockDaffCategoryFacade} for testing environments.\n */\n@NgModule({\n providers: [\n { provide: DaffCategoryFacade, useExisting: MockDaffCategoryFacade },\n { provide: DaffCategoryProductCollectionFacade, useExisting: MockDaffCollectionFacade },\n ],\n})\nexport class DaffCategoryTestingModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAUA;;;;AAIG;MAEU,sBAAsB,CAAA;AADnC,IAAA,WAAA,GAAA;QAGE,IAAA,CAAA,SAAS,GAAkC,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QACrE,IAAA,CAAA,iBAAiB,GAA2D,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QACtG,IAAA,CAAA,eAAe,GAA6B,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QACvE,IAAA,CAAA,gBAAgB,GAA6B,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QACxE,IAAA,CAAA,SAAS,GAAmC,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QACpE,IAAA,CAAA,gBAAgB,GAA6B,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QACxE,IAAA,CAAA,gBAAgB,GAA6B,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QACxE,IAAA,CAAA,OAAO,GAAsC,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QACrE,IAAA,CAAA,gBAAgB,GAA6B,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;KAYxE;AAVC,IAAA,eAAe,CAAC,EAAsB,EAAA;AACrC,QAAA,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;KACjC;;AACD,IAAA,qBAAqB,CAAC,UAA8B,EAAA;AACnD,QAAA,OAAO,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;KAC/B;;AACD,IAAA,0BAA0B,CAAC,UAA8B,EAAA;AACxD,QAAA,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;KACjC;;IACD,QAAQ,CAAC,MAAc,EAAA,GAAI;;;sIArBhB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,mBAAA,sBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cADT,MAAM,EAAA,CAAA,CAAA;2FACnB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;ACLlC;;AAEG;MAOU,yBAAyB,CAAA;;yIAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;0IAAzB,yBAAyB,EAAA,CAAA,CAAA;AAAzB,mBAAA,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,EALzB,SAAA,EAAA;AACT,QAAA,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,sBAAsB,EAAE;AACpE,QAAA,EAAE,OAAO,EAAE,mCAAmC,EAAE,WAAW,EAAE,wBAAwB,EAAE;AACxF,KAAA,EAAA,CAAA,CAAA;2FAEU,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBANrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,SAAS,EAAE;AACT,wBAAA,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,sBAAsB,EAAE;AACpE,wBAAA,EAAE,OAAO,EAAE,mCAAmC,EAAE,WAAW,EAAE,wBAAwB,EAAE;AACxF,qBAAA;iBACF,CAAA;;;AClBD;;AAEG;;;;"}
@@ -4,13 +4,14 @@ import * as i1$1 from '@ngrx/effects';
4
4
  import { createEffect, ofType, EffectsModule } from '@ngrx/effects';
5
5
  import * as i1 from '@ngrx/store';
6
6
  import { createFeatureSelector, createSelector, defaultMemoize, select, StoreModule } from '@ngrx/store';
7
- import { daffProductCollectionReducerInitialState, getProductCollectionStateAdapter, daffProductCollectionSelectorFactory, getDaffProductSelectors, DaffProductCollectionFacade, DaffProductGridLoadSuccess, DaffProductStateModule } from '@daffodil/product/state';
7
+ import { getDaffProductSelectors, DaffProductGridLoadSuccess, DaffProductStateModule } from '@daffodil/product/state';
8
8
  import { asyncScheduler, of } from 'rxjs';
9
9
  import { withLatestFrom, map, throttleTime, switchMap, catchError, mergeMap } from 'rxjs/operators';
10
10
  import { DaffCategoryRequestKind, DAFF_CATEGORY_ERROR_MATCHER } from '@daffodil/category';
11
11
  import { DaffCategoryDriver } from '@daffodil/category/driver';
12
- import { daffToggleRequestOnFilters, daffRemoveRequestsFromFilters, daffClearFilters, daffApplyRequestsToFilters, daffProductFiltersToRequests } from '@daffodil/product';
12
+ import { daffToggleRequestOnFilters, daffRemoveRequestsFromFilters, daffClearFilters, daffApplyRequestsToFilters, daffFiltersToRequests } from '@daffodil/core';
13
13
  import { createEntityAdapter } from '@ngrx/entity';
14
+ import { daffCollectionReducerInitialState, getCollectionStateAdapter, daffCollectionSelectorFactory, DaffCollectionFacade } from '@daffodil/core/state';
14
15
 
15
16
  /**
16
17
  * The possible types of category page filter actions.
@@ -279,12 +280,12 @@ function daffCategoryReducer(state = initialState$1, action) {
279
280
  }
280
281
  }
281
282
 
282
- const initialState = Object.assign(Object.assign({}, daffProductCollectionReducerInitialState), { id: null });
283
+ const initialState = Object.assign(Object.assign({}, daffCollectionReducerInitialState), { id: null });
283
284
  /**
284
285
  * Returns the state for category data except for category entities.
285
286
  */
286
287
  function daffCategoryPageMetadataReducer(state = initialState, action) {
287
- const adapter = getProductCollectionStateAdapter();
288
+ const adapter = getCollectionStateAdapter();
288
289
  switch (action.type) {
289
290
  case DaffCategoryPageActionTypes.CategoryPageLoadAction:
290
291
  case DaffCategoryPageActionTypes.CategoryPageLoadByUrlAction:
@@ -414,7 +415,7 @@ const { selectCategoryFeatureState, } = getDaffCategoryFeatureSelector();
414
415
  const selectCategoryProductCollectionState = createSelector(selectCategoryFeatureState, state => state.pageMetadata);
415
416
  const getCategoryProductCollectionSelectors = (() => {
416
417
  let cache;
417
- return () => cache = cache || daffProductCollectionSelectorFactory(selectCategoryProductCollectionState);
418
+ return () => cache = cache || daffCollectionSelectorFactory(selectCategoryProductCollectionState);
418
419
  })();
419
420
 
420
421
  const createCategorySelectors = () => {
@@ -494,7 +495,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
494
495
  }]
495
496
  }], ctorParameters: function () { return [{ type: i1.Store }]; } });
496
497
 
497
- class DaffCategoryProductCollectionFacade extends DaffProductCollectionFacade {
498
+ class DaffCategoryProductCollectionFacade extends DaffCollectionFacade {
498
499
  constructor(store) {
499
500
  super(store, getCategoryProductCollectionSelectors());
500
501
  }
@@ -525,7 +526,7 @@ class DaffCategoryPageFilterEffects {
525
526
  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]) => ({
526
527
  kind: DaffCategoryRequestKind.ID,
527
528
  id: metadata.id,
528
- filterRequests: daffProductFiltersToRequests(metadata.filters),
529
+ filterRequests: daffFiltersToRequests(metadata.filters),
529
530
  appliedSortOption: metadata.appliedSortOption,
530
531
  appliedSortDirection: metadata.appliedSortDirection,
531
532
  currentPage: metadata.currentPage,
@@ -562,9 +563,9 @@ class DaffCategoryPageEffects {
562
563
  new DaffProductGridLoadSuccess(resp.products),
563
564
  new DaffCategoryPageLoadSuccess(resp),
564
565
  ]), catchError((error) => of(new DaffCategoryPageLoadFailure(this.errorMatcher(error))))))));
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 })))));
566
+ 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: daffFiltersToRequests(metadata.filters), pageSize: action.pageSize })))));
567
+ 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: daffFiltersToRequests(metadata.filters), currentPage: action.currentPage })))));
568
+ 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: daffFiltersToRequests(metadata.filters), appliedSortOption: action.sort.option, appliedSortDirection: action.sort.direction })))));
568
569
  }
569
570
  processCategoryGetRequest(payload) {
570
571
  return this.driver.get(payload).pipe(switchMap((resp) => [