@daffodil/category 0.43.0 → 0.44.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/driver/magento/models/complete-category-response.d.ts +3 -0
  2. package/esm2020/driver/magento/category.service.mjs +6 -4
  3. package/esm2020/driver/magento/models/complete-category-response.mjs +1 -1
  4. package/esm2020/driver/magento/transformers/category-page-config-transformer.service.mjs +2 -2
  5. package/esm2020/routing/effects/collection-route.effects.mjs +21 -0
  6. package/esm2020/routing/injection-tokens/public_api.mjs +2 -0
  7. package/esm2020/routing/injection-tokens/request/builder.token.mjs +8 -0
  8. package/esm2020/routing/injection-tokens/request/builders.token.mjs +30 -0
  9. package/esm2020/routing/module.mjs +72 -0
  10. package/esm2020/routing/public_api.mjs +3 -1
  11. package/esm2020/routing/resolvers/category-page/category-page.resolver.mjs +3 -6
  12. package/esm2020/routing/resolvers/category-page-id/category-page-id.resolver.mjs +11 -8
  13. package/esm2020/routing/resolvers/category-page-url/category-page-url.resolver.mjs +11 -13
  14. package/esm2020/state/actions/category-page-filter.actions.mjs +52 -16
  15. package/esm2020/state/actions/category-page.actions.mjs +1 -37
  16. package/esm2020/state/effects/category-page-filter.effects.mjs +7 -7
  17. package/esm2020/state/effects/category-page.effects.mjs +5 -4
  18. package/esm2020/state/facades/collection/facade.mjs +20 -0
  19. package/esm2020/state/facades/page/category-facade.interface.mjs +2 -0
  20. package/esm2020/state/facades/page/category.facade.mjs +52 -0
  21. package/esm2020/state/facades/public_api.mjs +3 -0
  22. package/esm2020/state/public_api.mjs +2 -2
  23. package/esm2020/state/reducers/category/category-reducer-state.interface.mjs +1 -1
  24. package/esm2020/state/reducers/category/category.reducer.mjs +14 -114
  25. package/esm2020/state/reducers/category-reducers.interface.mjs +1 -1
  26. package/esm2020/state/reducers/category-reducers.mjs +3 -1
  27. package/esm2020/state/reducers/page-metadata/reducer.mjs +57 -0
  28. package/esm2020/state/reducers/page-metadata/state.interface.mjs +2 -0
  29. package/esm2020/state/reducers/public_api.mjs +2 -1
  30. package/esm2020/state/selectors/category-page/category-page.selector.mjs +3 -23
  31. package/esm2020/state/selectors/category.selector.mjs +3 -1
  32. package/esm2020/state/selectors/collection/selectors.mjs +10 -0
  33. package/esm2020/state/testing/category-testing.module.mjs +5 -2
  34. package/esm2020/state/testing/mock-category-facade.mjs +1 -11
  35. package/fesm2015/daffodil-category-driver-magento.mjs +6 -4
  36. package/fesm2015/daffodil-category-driver-magento.mjs.map +1 -1
  37. package/fesm2015/daffodil-category-routing.mjs +139 -32
  38. package/fesm2015/daffodil-category-routing.mjs.map +1 -1
  39. package/fesm2015/daffodil-category-state-testing.mjs +4 -11
  40. package/fesm2015/daffodil-category-state-testing.mjs.map +1 -1
  41. package/fesm2015/daffodil-category-state.mjs +211 -208
  42. package/fesm2015/daffodil-category-state.mjs.map +1 -1
  43. package/fesm2020/daffodil-category-driver-magento.mjs +6 -4
  44. package/fesm2020/daffodil-category-driver-magento.mjs.map +1 -1
  45. package/fesm2020/daffodil-category-routing.mjs +139 -28
  46. package/fesm2020/daffodil-category-routing.mjs.map +1 -1
  47. package/fesm2020/daffodil-category-state-testing.mjs +4 -11
  48. package/fesm2020/daffodil-category-state-testing.mjs.map +1 -1
  49. package/fesm2020/daffodil-category-state.mjs +214 -278
  50. package/fesm2020/daffodil-category-state.mjs.map +1 -1
  51. package/package.json +4 -4
  52. package/routing/effects/collection-route.effects.d.ts +10 -0
  53. package/routing/injection-tokens/public_api.d.ts +1 -0
  54. package/routing/injection-tokens/request/builder.token.d.ts +6 -0
  55. package/routing/injection-tokens/request/builders.token.d.ts +26 -0
  56. package/routing/module.d.ts +8 -0
  57. package/routing/public_api.d.ts +2 -0
  58. package/routing/resolvers/category-page-id/category-page-id.resolver.d.ts +3 -1
  59. package/routing/resolvers/category-page-url/category-page-url.resolver.d.ts +3 -3
  60. package/state/actions/category-page-filter.actions.d.ts +49 -9
  61. package/state/actions/category-page.actions.d.ts +3 -42
  62. package/state/effects/category-page-filter.effects.d.ts +2 -2
  63. package/state/facades/collection/facade.d.ts +9 -0
  64. package/state/facades/{category-facade.interface.d.ts → page/category-facade.interface.d.ts} +3 -44
  65. package/state/facades/{category.facade.d.ts → page/category.facade.d.ts} +3 -14
  66. package/state/facades/public_api.d.ts +3 -0
  67. package/state/public_api.d.ts +1 -2
  68. package/state/reducers/category/category-reducer-state.interface.d.ts +5 -5
  69. package/state/reducers/category/category.reducer.d.ts +2 -2
  70. package/state/reducers/category-reducers.interface.d.ts +5 -0
  71. package/state/reducers/page-metadata/reducer.d.ts +11 -0
  72. package/state/reducers/page-metadata/state.interface.d.ts +2 -0
  73. package/state/reducers/public_api.d.ts +2 -0
  74. package/state/selectors/category-page/category-page.selector.d.ts +0 -42
  75. package/state/selectors/category.selector.d.ts +2 -1
  76. package/state/selectors/collection/selectors.d.ts +5 -0
  77. package/state/testing/mock-category-facade.d.ts +2 -13
  78. package/esm2020/state/facades/category-facade.interface.mjs +0 -2
  79. package/esm2020/state/facades/category.facade.mjs +0 -62
  80. package/esm2020/state/reducers/category/pure/build-metadata-from-request.mjs +0 -13
  81. package/state/reducers/category/pure/build-metadata-from-request.d.ts +0 -2
@@ -137,7 +137,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
137
137
  class DaffMagentoCategoryPageConfigTransformerService {
138
138
  transform(categoryResponse) {
139
139
  const aggregatesWithoutCategories = categoryResponse.aggregates.filter(aggregate => aggregate.attribute_code !== 'category_id');
140
- return Object.assign(Object.assign({}, magentoProductCollectionMetadataTransform(aggregatesWithoutCategories, categoryResponse.page_info, categoryResponse.sort_fields, categoryResponse.products, categoryResponse.total_count)), { id: categoryResponse.category.uid });
140
+ return Object.assign(Object.assign({}, magentoProductCollectionMetadataTransform(aggregatesWithoutCategories, categoryResponse.page_info, categoryResponse.sort_fields, categoryResponse.products, categoryResponse.total_count, categoryResponse.appliedSortOption, categoryResponse.appliedSortDirection)), { id: categoryResponse.category.uid });
141
141
  }
142
142
  }
143
143
  /** @nocollapse */ /** @nocollapse */ DaffMagentoCategoryPageConfigTransformerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffMagentoCategoryPageConfigTransformerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
@@ -232,7 +232,7 @@ class DaffMagentoCategoryService {
232
232
  query: MagentoGetProductsQuery(this.extraPreviewFragments),
233
233
  variables: this.getProductsQueryVariables(categoryRequest),
234
234
  }),
235
- ]).pipe(map(([category, filterTypes, products,]) => this.transformCategory(category.data, filterTypes.data, products.data, this.productConfig.baseMediaUrl)), map(result => categoryRequest.filterRequests
235
+ ]).pipe(map(([category, filterTypes, products,]) => this.transformCategory(category.data, filterTypes.data, products.data, categoryRequest, this.productConfig.baseMediaUrl)), map(result => categoryRequest.filterRequests
236
236
  ? applyFiltersOnResponse(categoryRequest.filterRequests, result)
237
237
  : result));
238
238
  }
@@ -254,7 +254,7 @@ class DaffMagentoCategoryService {
254
254
  return this.apollo.query({
255
255
  query: MagentoGetProductsQuery(this.extraPreviewFragments),
256
256
  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 })),
257
- }).pipe(map(products => this.transformCategory(category.data, filterTypes.data, products.data, this.productConfig.baseMediaUrl)), map(result => categoryRequest.filterRequests
257
+ }).pipe(map(products => this.transformCategory(category.data, filterTypes.data, products.data, categoryRequest, this.productConfig.baseMediaUrl)), map(result => categoryRequest.filterRequests
258
258
  ? applyFiltersOnResponse(categoryRequest.filterRequests, result)
259
259
  : result));
260
260
  }));
@@ -274,7 +274,7 @@ class DaffMagentoCategoryService {
274
274
  }
275
275
  return queryVariables;
276
276
  }
277
- transformCategory(categoryResponse, filterTypesResponse, productsResponse, mediaUrl) {
277
+ transformCategory(categoryResponse, filterTypesResponse, productsResponse, request, mediaUrl) {
278
278
  const aggregations = addMetadataTypesToProductsResponse(filterTypesResponse, productsResponse);
279
279
  const completeCategory = {
280
280
  category: categoryResponse.categoryList[0],
@@ -283,6 +283,8 @@ class DaffMagentoCategoryService {
283
283
  sort_fields: aggregations.products.sort_fields,
284
284
  total_count: productsResponse.products.total_count,
285
285
  page_info: productsResponse.products.page_info,
286
+ appliedSortOption: request.appliedSortOption,
287
+ appliedSortDirection: request.appliedSortDirection,
286
288
  };
287
289
  return this.magentoCategoryResponseTransformer.transform(completeCategory, mediaUrl);
288
290
  }
@@ -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 ),\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 { Injectable } from '@angular/core';\n\nimport { DaffGetCategoryResponse } from '@daffodil/category';\nimport { DaffMagentoProductsTransformer } 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 private magentoProductsTransformService: DaffMagentoProductsTransformer,\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: this.magentoProductsTransformService.transformManyMagentoProducts(completeCategory.products, 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} 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_PREVIEW_FRAGMENTS,\n MagentoProductGetFilterTypes,\n MagentoProductGetFilterTypesResponse,\n MAGENTO_PRODUCT_CONFIG_TOKEN,\n magentoAppliedSortOptionTransform,\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} 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_PREVIEW_FRAGMENTS) private extraPreviewFragments: 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(this.extraPreviewFragments),\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, 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(this.extraPreviewFragments),\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, 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 mediaUrl: string,\n ): DaffGetCategoryResponse {\n const aggregations = addMetadataTypesToProductsResponse(filterTypesResponse, productsResponse);\n const completeCategory = {\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 };\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 { DAFF_MAGENTO_GET_FILTER_TYPES_QUERY_NAME } 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":["i1.DaffMagentoCategoryTransformerService","i2.DaffMagentoCategoryPageConfigTransformerService","i3","i1","i2.DaffMagentoCategoryResponseTransformService","i2.DaffMagentoAppliedFiltersTransformService"],"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/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 { Injectable } from '@angular/core';\n\nimport { DaffGetCategoryResponse } from '@daffodil/category';\nimport { DaffMagentoProductsTransformer } 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 private magentoProductsTransformService: DaffMagentoProductsTransformer,\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: this.magentoProductsTransformService.transformManyMagentoProducts(completeCategory.products, 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_PREVIEW_FRAGMENTS,\n MagentoProductGetFilterTypes,\n MagentoProductGetFilterTypesResponse,\n MAGENTO_PRODUCT_CONFIG_TOKEN,\n magentoAppliedSortOptionTransform,\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_PREVIEW_FRAGMENTS) private extraPreviewFragments: 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(this.extraPreviewFragments),\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(this.extraPreviewFragments),\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 { DAFF_MAGENTO_GET_FILTER_TYPES_QUERY_NAME } 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":["i1.DaffMagentoCategoryTransformerService","i2.DaffMagentoCategoryPageConfigTransformerService","i3","i1","i2.DaffMagentoCategoryResponseTransformService","i2.DaffMagentoAppliedFiltersTransformService"],"mappings":"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"}
@@ -1,43 +1,53 @@
1
1
  import * as i0 from '@angular/core';
2
- import { PLATFORM_ID, Injectable, Inject } from '@angular/core';
2
+ import { InjectionToken, PLATFORM_ID, Injectable, Inject, inject, NgModule } from '@angular/core';
3
3
  import { isPlatformBrowser } from '@angular/common';
4
- import { ofType } from '@ngrx/effects';
4
+ import * as i1$1 from '@ngrx/effects';
5
+ import { ofType, EffectsModule } from '@ngrx/effects';
5
6
  import { of } from 'rxjs';
6
7
  import { mapTo, take } from 'rxjs/operators';
7
8
  import { DaffCategoryRequestKind } from '@daffodil/category';
8
- import { DaffCategoryPageLoad, DaffCategoryPageActionTypes, DaffCategoryPageLoadByUrl } from '@daffodil/category/state';
9
+ import * as i3 from '@daffodil/category/state';
10
+ import { DaffCategoryPageLoad, DaffCategoryPageActionTypes, DaffCategoryPageLoadByUrl, DaffCategoryPageProductCollectionActionTypes } from '@daffodil/category/state';
9
11
  import * as i1 from '@ngrx/store';
10
12
  import * as i2 from '@daffodil/core/routing';
13
+ import * as i4 from '@daffodil/product/routing';
14
+ import { DaffProductRoutingCollectionEffects, DaffProductRoutingModule, DaffProductGetCollectionRequestFromRoute } from '@daffodil/product/routing';
15
+ import * as i2$1 from '@angular/router';
16
+
17
+ /**
18
+ * An internal token to combine the {@link DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS} into a single builder.
19
+ */
20
+ const DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER = new InjectionToken('DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER', {
21
+ factory: () => () => ({}),
22
+ });
11
23
 
12
24
  /**
13
25
  * Resolves category data for category pages, and will only resolve the url after a category request succeeds or fails. This resolver expects a url
14
26
  * of the form `some/url/{id}` where `{id}` is the category id.
15
27
  */
16
28
  class DaffCategoryPageIdResolver {
17
- constructor(platformId, store, dispatcher) {
29
+ constructor(platformId, requestBuilder, store, dispatcher) {
18
30
  this.platformId = platformId;
31
+ this.requestBuilder = requestBuilder;
19
32
  this.store = store;
20
33
  this.dispatcher = dispatcher;
21
34
  }
22
35
  resolve(route) {
23
- this.store.dispatch(new DaffCategoryPageLoad({
24
- id: route.paramMap.get('id'),
25
- kind: DaffCategoryRequestKind.ID,
26
- }));
36
+ this.store.dispatch(new DaffCategoryPageLoad(Object.assign(Object.assign({}, this.requestBuilder(route)), { id: route.paramMap.get('id'), kind: DaffCategoryRequestKind.ID })));
27
37
  return isPlatformBrowser(this.platformId) ? of(true) : this.dispatcher.pipe(ofType(DaffCategoryPageActionTypes.CategoryPageLoadSuccessAction, DaffCategoryPageActionTypes.CategoryPageLoadFailureAction), mapTo(true), take(1));
28
38
  }
29
39
  }
30
- /** @nocollapse */ /** @nocollapse */ DaffCategoryPageIdResolver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryPageIdResolver, deps: [{ token: PLATFORM_ID }, { token: i1.Store }, { token: i1.ActionsSubject }], target: i0.ɵɵFactoryTarget.Injectable });
31
- /** @nocollapse */ /** @nocollapse */ DaffCategoryPageIdResolver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryPageIdResolver, providedIn: 'root' });
40
+ /** @nocollapse */ /** @nocollapse */ DaffCategoryPageIdResolver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryPageIdResolver, deps: [{ token: PLATFORM_ID }, { token: DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER }, { token: i1.Store }, { token: i1.ActionsSubject }], target: i0.ɵɵFactoryTarget.Injectable });
41
+ /** @nocollapse */ /** @nocollapse */ DaffCategoryPageIdResolver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryPageIdResolver });
32
42
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryPageIdResolver, decorators: [{
33
- type: Injectable,
34
- args: [{
35
- providedIn: 'root',
36
- }]
43
+ type: Injectable
37
44
  }], ctorParameters: function () {
38
45
  return [{ type: undefined, decorators: [{
39
46
  type: Inject,
40
47
  args: [PLATFORM_ID]
48
+ }] }, { type: undefined, decorators: [{
49
+ type: Inject,
50
+ args: [DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER]
41
51
  }] }, { type: i1.Store }, { type: i1.ActionsSubject }];
42
52
  } });
43
53
 
@@ -57,53 +67,150 @@ class DaffCategoryPageResolver {
57
67
  }
58
68
  }
59
69
  /** @nocollapse */ /** @nocollapse */ DaffCategoryPageResolver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryPageResolver, deps: [{ token: DaffCategoryPageIdResolver }], target: i0.ɵɵFactoryTarget.Injectable });
60
- /** @nocollapse */ /** @nocollapse */ DaffCategoryPageResolver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryPageResolver, providedIn: 'root' });
70
+ /** @nocollapse */ /** @nocollapse */ DaffCategoryPageResolver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryPageResolver });
61
71
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryPageResolver, decorators: [{
62
- type: Injectable,
63
- args: [{
64
- providedIn: 'root',
65
- }]
72
+ type: Injectable
66
73
  }], ctorParameters: function () { return [{ type: DaffCategoryPageIdResolver }]; } });
67
74
 
68
- const getPage = (route) => route.queryParams.p || route.queryParams.page;
69
75
  /**
70
76
  * Resolves category data for category pages, and will only resolve the url
71
77
  * after a category request succeeds or fails. This resolver will take a full
72
78
  * a url of the form `some/url.html(secondary:outlet)?query=param#fragment` and attempt to resolve a product from it.
73
79
  * Assumes that the URL to be resolved is the primary outlet.
74
- *
75
- * Will check the `p` and `page` query params for a page number value.
76
80
  */
77
81
  class DaffCategoryPageUrlResolver {
78
- constructor(platformId, store, dispatcher, urlNormalizer) {
82
+ constructor(platformId, requestBuilder, store, dispatcher, urlNormalizer) {
79
83
  this.platformId = platformId;
84
+ this.requestBuilder = requestBuilder;
80
85
  this.store = store;
81
86
  this.dispatcher = dispatcher;
82
87
  this.urlNormalizer = urlNormalizer;
83
88
  }
84
89
  resolve(route, state) {
85
- const currentPage = getPage(route);
86
- this.store.dispatch(new DaffCategoryPageLoadByUrl(Object.assign({ url: this.urlNormalizer.normalize(state.url), kind: DaffCategoryRequestKind.URL }, (currentPage ? { currentPage: Number(currentPage) } : {}))));
90
+ this.store.dispatch(new DaffCategoryPageLoadByUrl(Object.assign(Object.assign({}, this.requestBuilder(route)), { url: this.urlNormalizer.normalize(state.url), kind: DaffCategoryRequestKind.URL })));
87
91
  return isPlatformBrowser(this.platformId) ? of(true) : this.dispatcher.pipe(ofType(DaffCategoryPageActionTypes.CategoryPageLoadSuccessAction, DaffCategoryPageActionTypes.CategoryPageLoadFailureAction), mapTo(true), take(1));
88
92
  }
89
93
  }
90
- /** @nocollapse */ /** @nocollapse */ DaffCategoryPageUrlResolver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryPageUrlResolver, deps: [{ token: PLATFORM_ID }, { token: i1.Store }, { token: i1.ActionsSubject }, { token: i2.DaffRoutingUriNormalizer }], target: i0.ɵɵFactoryTarget.Injectable });
91
- /** @nocollapse */ /** @nocollapse */ DaffCategoryPageUrlResolver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryPageUrlResolver, providedIn: 'root' });
94
+ /** @nocollapse */ /** @nocollapse */ DaffCategoryPageUrlResolver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryPageUrlResolver, deps: [{ token: PLATFORM_ID }, { token: DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER }, { token: i1.Store }, { token: i1.ActionsSubject }, { token: i2.DaffRoutingUriNormalizer }], target: i0.ɵɵFactoryTarget.Injectable });
95
+ /** @nocollapse */ /** @nocollapse */ DaffCategoryPageUrlResolver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryPageUrlResolver });
92
96
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryPageUrlResolver, decorators: [{
93
- type: Injectable,
94
- args: [{
95
- providedIn: 'root',
96
- }]
97
+ type: Injectable
97
98
  }], ctorParameters: function () {
98
99
  return [{ type: undefined, decorators: [{
99
100
  type: Inject,
100
101
  args: [PLATFORM_ID]
102
+ }] }, { type: undefined, decorators: [{
103
+ type: Inject,
104
+ args: [DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER]
101
105
  }] }, { type: i1.Store }, { type: i1.ActionsSubject }, { type: i2.DaffRoutingUriNormalizer }];
102
106
  } });
103
107
 
108
+ /**
109
+ * A multi-provider injection token for category request builders.
110
+ * These builders are called with the requested route during the resolve step
111
+ * and return options to pass to the category driver.
112
+ */
113
+ const DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS = new InjectionToken('DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS', { factory: () => [] });
114
+ /**
115
+ * Provides category request builders for the routing layer.
116
+ *
117
+ * See {@link DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS}.
118
+ *
119
+ * ```ts
120
+ * providers: [
121
+ * ...daffProvideCategoryRoutingRequestBuilders(
122
+ * route => ({
123
+ * currentPage: route.queryParams.page
124
+ * })
125
+ * )
126
+ * ]
127
+ * ```
128
+ */
129
+ function daffProvideCategoryRoutingRequestBuilders(...builders) {
130
+ return builders.map(builder => ({
131
+ provide: DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS,
132
+ useValue: builder,
133
+ multi: true,
134
+ }));
135
+ }
136
+
137
+ class DaffCategoryRoutingCollectionEffects extends DaffProductRoutingCollectionEffects {
138
+ constructor(actions$, router, collectionFacade, getQueryParams, route) {
139
+ super(actions$, router, Object.values(DaffCategoryPageProductCollectionActionTypes), collectionFacade, getQueryParams, route);
140
+ }
141
+ }
142
+ /** @nocollapse */ /** @nocollapse */ DaffCategoryRoutingCollectionEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryRoutingCollectionEffects, deps: [{ token: i1$1.Actions }, { token: i2$1.Router }, { token: i3.DaffCategoryProductCollectionFacade }, { token: i4.DaffProductGetQueryParamsFromRequest }, { token: i2$1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable });
143
+ /** @nocollapse */ /** @nocollapse */ DaffCategoryRoutingCollectionEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryRoutingCollectionEffects });
144
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryRoutingCollectionEffects, decorators: [{
145
+ type: Injectable
146
+ }], ctorParameters: function () { return [{ type: i1$1.Actions }, { type: i2$1.Router }, { type: i3.DaffCategoryProductCollectionFacade }, { type: i4.DaffProductGetQueryParamsFromRequest }, { type: i2$1.ActivatedRoute }]; } });
147
+
148
+ class DaffCategoryRoutingModule {
149
+ }
150
+ /** @nocollapse */ /** @nocollapse */ DaffCategoryRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
151
+ /** @nocollapse */ /** @nocollapse */ DaffCategoryRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryRoutingModule, imports: [DaffProductRoutingModule, i1$1.EffectsFeatureModule] });
152
+ /** @nocollapse */ /** @nocollapse */ DaffCategoryRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryRoutingModule, providers: [
153
+ DaffCategoryPageResolver,
154
+ DaffCategoryPageIdResolver,
155
+ DaffCategoryPageUrlResolver,
156
+ {
157
+ provide: DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS,
158
+ useFactory: (() => {
159
+ const service = inject(DaffProductGetCollectionRequestFromRoute);
160
+ const builder = (route => service.getRequest(route.queryParamMap));
161
+ return builder;
162
+ }),
163
+ multi: true,
164
+ },
165
+ {
166
+ provide: DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER,
167
+ useFactory: (() => {
168
+ const builders = inject(DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS);
169
+ return ((route) => Object.assign({}, ...builders.map((builder => builder(route)))));
170
+ }),
171
+ },
172
+ ], imports: [[
173
+ DaffProductRoutingModule,
174
+ EffectsModule.forFeature([
175
+ DaffCategoryRoutingCollectionEffects,
176
+ ]),
177
+ ]] });
178
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryRoutingModule, decorators: [{
179
+ type: NgModule,
180
+ args: [{
181
+ imports: [
182
+ DaffProductRoutingModule,
183
+ EffectsModule.forFeature([
184
+ DaffCategoryRoutingCollectionEffects,
185
+ ]),
186
+ ],
187
+ providers: [
188
+ DaffCategoryPageResolver,
189
+ DaffCategoryPageIdResolver,
190
+ DaffCategoryPageUrlResolver,
191
+ {
192
+ provide: DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS,
193
+ useFactory: (() => {
194
+ const service = inject(DaffProductGetCollectionRequestFromRoute);
195
+ const builder = (route => service.getRequest(route.queryParamMap));
196
+ return builder;
197
+ }),
198
+ multi: true,
199
+ },
200
+ {
201
+ provide: DAFF_CATEGORY_ROUTING_OPTIONS_BUILDER,
202
+ useFactory: (() => {
203
+ const builders = inject(DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS);
204
+ return ((route) => Object.assign({}, ...builders.map((builder => builder(route)))));
205
+ }),
206
+ },
207
+ ],
208
+ }]
209
+ }] });
210
+
104
211
  /**
105
212
  * Generated bundle index. Do not edit.
106
213
  */
107
214
 
108
- export { DaffCategoryPageIdResolver, DaffCategoryPageResolver, DaffCategoryPageUrlResolver };
215
+ export { DAFF_CATEGORY_ROUTING_OPTIONS_BUILDERS, DaffCategoryPageIdResolver, DaffCategoryPageResolver, DaffCategoryPageUrlResolver, DaffCategoryRoutingModule, daffProvideCategoryRoutingRequestBuilders };
109
216
  //# sourceMappingURL=daffodil-category-routing.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"daffodil-category-routing.mjs","sources":["../../../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/daffodil-category-routing.ts"],"sourcesContent":["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 mapTo,\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\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({\n providedIn: 'root',\n})\nexport class DaffCategoryPageIdResolver implements Resolve<Observable<boolean>> {\n constructor(\n @Inject(PLATFORM_ID) private platformId: string,\n private store: Store<DaffCategoryReducersState>,\n private dispatcher: ActionsSubject,\n ) { }\n\n resolve(route: ActivatedRouteSnapshot): Observable<boolean> {\n this.store.dispatch(new DaffCategoryPageLoad({\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 mapTo(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({\n providedIn: 'root',\n})\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 mapTo,\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\nconst getPage = (route: ActivatedRouteSnapshot): string => route.queryParams.p || route.queryParams.page;\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 * Will check the `p` and `page` query params for a page number value.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffCategoryPageUrlResolver implements Resolve<Observable<boolean>> {\n constructor(\n @Inject(PLATFORM_ID) private platformId: string,\n private store: Store<DaffCategoryReducersState>,\n private dispatcher: ActionsSubject,\n private urlNormalizer: DaffRoutingUriNormalizer,\n ) { }\n\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\n const currentPage = getPage(route);\n\n this.store.dispatch(new DaffCategoryPageLoadByUrl({\n url: this.urlNormalizer.normalize(state.url),\n kind: DaffCategoryRequestKind.URL,\n ...(currentPage ? { currentPage: Number(currentPage) } : {}),\n }));\n\n return isPlatformBrowser(this.platformId) ? of(true) : this.dispatcher.pipe(\n ofType(DaffCategoryPageActionTypes.CategoryPageLoadSuccessAction, DaffCategoryPageActionTypes.CategoryPageLoadFailureAction),\n mapTo(true),\n take(1),\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DaffCategoryPageIdResolver"],"mappings":"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"}
1
+ {"version":3,"file":"daffodil-category-routing.mjs","sources":["../../../libs/category/routing/src/injection-tokens/request/builder.token.ts","../../../libs/category/routing/src/resolvers/category-page-id/category-page-id.resolver.ts","../../../libs/category/routing/src/resolvers/category-page/category-page.resolver.ts","../../../libs/category/routing/src/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 mapTo,\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 mapTo(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 mapTo,\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 mapTo(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":"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"}
@@ -1,6 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, NgModule } from '@angular/core';
3
- import { DaffCategoryFacade } from '@daffodil/category/state';
3
+ import { DaffCategoryFacade, DaffCategoryProductCollectionFacade } from '@daffodil/category/state';
4
+ import { MockDaffProductCollectionFacade } from '@daffodil/product/state/testing';
4
5
  import { BehaviorSubject } from 'rxjs';
5
6
 
6
7
  /**
@@ -11,19 +12,9 @@ import { BehaviorSubject } from 'rxjs';
11
12
  class MockDaffCategoryFacade {
12
13
  constructor() {
13
14
  this.category$ = new BehaviorSubject(null);
14
- this.metadata$ = new BehaviorSubject(null);
15
15
  this.pageLoadingState$ = new BehaviorSubject(null);
16
16
  this.isPageMutating$ = new BehaviorSubject(false);
17
17
  this.isPageResolving$ = new BehaviorSubject(false);
18
- this.currentPage$ = new BehaviorSubject(null);
19
- this.totalPages$ = new BehaviorSubject(null);
20
- this.totalProducts$ = new BehaviorSubject(null);
21
- this.pageSize$ = new BehaviorSubject(null);
22
- this.filters$ = new BehaviorSubject({});
23
- this.sortOptions$ = new BehaviorSubject([]);
24
- this.appliedFilters$ = new BehaviorSubject({});
25
- this.appliedSortOption$ = new BehaviorSubject(null);
26
- this.appliedSortDirection$ = new BehaviorSubject(null);
27
18
  this.products$ = new BehaviorSubject([]);
28
19
  this.categoryLoading$ = new BehaviorSubject(false);
29
20
  this.productsLoading$ = new BehaviorSubject(false);
@@ -61,12 +52,14 @@ class DaffCategoryTestingModule {
61
52
  /** @nocollapse */ /** @nocollapse */ DaffCategoryTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryTestingModule });
62
53
  /** @nocollapse */ /** @nocollapse */ DaffCategoryTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryTestingModule, providers: [
63
54
  { provide: DaffCategoryFacade, useExisting: MockDaffCategoryFacade },
55
+ { provide: DaffCategoryProductCollectionFacade, useExisting: MockDaffProductCollectionFacade },
64
56
  ] });
65
57
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCategoryTestingModule, decorators: [{
66
58
  type: NgModule,
67
59
  args: [{
68
60
  providers: [
69
61
  { provide: DaffCategoryFacade, useExisting: MockDaffCategoryFacade },
62
+ { provide: DaffCategoryProductCollectionFacade, useExisting: MockDaffProductCollectionFacade },
70
63
  ],
71
64
  }]
72
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 metadata$: BehaviorSubject<DaffCategoryPageMetadata> = 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 currentPage$: BehaviorSubject<number> = new BehaviorSubject(null);\n totalPages$: BehaviorSubject<number> = new BehaviorSubject(null);\n totalProducts$: BehaviorSubject<number> = new BehaviorSubject(null);\n pageSize$: BehaviorSubject<number> = new BehaviorSubject(null);\n filters$: BehaviorSubject<Record<DaffProductFilter['name'], DaffProductFilter>> = new BehaviorSubject({});\n sortOptions$: BehaviorSubject<DaffSortOption[]> = new BehaviorSubject([]);\n appliedFilters$: BehaviorSubject<Record<DaffProductFilter['name'], DaffProductFilter>> = new BehaviorSubject({});\n appliedSortOption$: BehaviorSubject<string> = new BehaviorSubject(null);\n appliedSortDirection$: BehaviorSubject<DaffSortDirectionEnum> = new BehaviorSubject(null);\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 { DaffCategoryFacade } from '@daffodil/category/state';\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 ],\n})\nexport class DaffCategoryTestingModule { }\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-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;;;yJArBhB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,sCAAA,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;;4JAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;6JAAzB,yBAAyB,EAAA,CAAA,CAAA;AAAzB,sCAAA,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;;;;"}