@daffodil/category 0.41.0 → 0.42.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 (68) hide show
  1. package/esm2020/driver/interfaces/category-service.interface.mjs +1 -1
  2. package/esm2020/driver/magento/category.service.mjs +1 -1
  3. package/esm2020/driver/magento/models/aggregation.mjs +1 -1
  4. package/esm2020/driver/magento/models/category.mjs +1 -1
  5. package/esm2020/driver/magento/models/complete-category-response.mjs +1 -1
  6. package/esm2020/driver/magento/models/get-products-response.mjs +1 -1
  7. package/esm2020/driver/magento/models/requests/custom-metadata-attribute.mjs +1 -1
  8. package/esm2020/driver/magento/models/requests/filters.mjs +1 -1
  9. package/esm2020/driver/magento/models/requests/get-products-by-categories-request.mjs +1 -1
  10. package/esm2020/driver/magento/models/requests/sort.mjs +1 -1
  11. package/esm2020/driver/magento/testing/factories/aggregation/type/price.factory.mjs +1 -1
  12. package/esm2020/driver/magento/testing/factories/aggregation/type/select.factory.mjs +1 -1
  13. package/esm2020/driver/magento/transformers/category-response-transform.service.mjs +1 -1
  14. package/esm2020/filters/type/range/behaviors/apply/apply.mjs +1 -1
  15. package/esm2020/filters/type/range/behaviors/remove/remove.mjs +1 -1
  16. package/esm2020/filters/type/range/behaviors/toggle/toggle.mjs +1 -1
  17. package/esm2020/filters/type/range/is-applied/is-toggle-request-applied-to-filter.mjs +1 -1
  18. package/esm2020/models/category-breadcrumb.mjs +1 -1
  19. package/esm2020/models/filters/category-filter-base.mjs +1 -1
  20. package/esm2020/models/filters/category-filter-option-base.mjs +1 -1
  21. package/esm2020/models/filters/category-filterable.mjs +1 -1
  22. package/esm2020/models/filters/type/category-filter-type.mjs +1 -1
  23. package/esm2020/models/filters/type/equal/filter.mjs +1 -1
  24. package/esm2020/models/filters/type/equal/option.mjs +1 -1
  25. package/esm2020/models/filters/type/equal/request.mjs +1 -1
  26. package/esm2020/models/filters/type/equal/toggle-request.mjs +1 -1
  27. package/esm2020/models/filters/type/range/filter-base.mjs +1 -1
  28. package/esm2020/models/filters/type/range/option.mjs +1 -1
  29. package/esm2020/models/filters/type/range/pair.mjs +1 -1
  30. package/esm2020/models/filters/type/range/request-base.mjs +1 -1
  31. package/esm2020/models/filters/type/range/request-option.mjs +1 -1
  32. package/esm2020/models/filters/type/range-numeric/filter.mjs +1 -1
  33. package/esm2020/models/filters/type/range-numeric/request.mjs +1 -1
  34. package/esm2020/models/filters/type/range-numeric/toggle-request.mjs +1 -1
  35. package/esm2020/models/generic-category.mjs +1 -1
  36. package/esm2020/models/get-category-response.mjs +1 -1
  37. package/esm2020/state/actions/category-page.actions.mjs +1 -1
  38. package/esm2020/state/actions/category.actions.mjs +1 -1
  39. package/esm2020/state/effects/category-page-filter.effects.mjs +1 -1
  40. package/esm2020/state/effects/category-page.effects.mjs +1 -1
  41. package/esm2020/state/effects/category.effects.mjs +1 -1
  42. package/esm2020/state/facades/category-facade.interface.mjs +1 -1
  43. package/esm2020/state/facades/category.facade.mjs +1 -1
  44. package/esm2020/state/reducers/category/category-reducer-state.interface.mjs +1 -1
  45. package/esm2020/state/reducers/category-reducers.interface.mjs +1 -1
  46. package/esm2020/state/selectors/category-entities/category-entities.selector.mjs +1 -1
  47. package/esm2020/state/selectors/category-feature.selector.mjs +1 -1
  48. package/esm2020/state/selectors/category-page/category-page.selector.mjs +1 -1
  49. package/esm2020/state/selectors/category.selector.mjs +1 -1
  50. package/esm2020/state/testing/mock-category-facade.mjs +1 -1
  51. package/esm2020/testing/factories/category-page-metadata.factory.mjs +1 -1
  52. package/esm2020/testing/factories/category.factory.mjs +1 -1
  53. package/esm2020/testing/factories/filters/type/equal/option.mjs +1 -1
  54. package/fesm2015/daffodil-category-driver-magento-testing.mjs.map +1 -1
  55. package/fesm2015/daffodil-category-driver-magento.mjs.map +1 -1
  56. package/fesm2015/daffodil-category-driver.mjs.map +1 -1
  57. package/fesm2015/daffodil-category-state-testing.mjs.map +1 -1
  58. package/fesm2015/daffodil-category-state.mjs.map +1 -1
  59. package/fesm2015/daffodil-category-testing.mjs.map +1 -1
  60. package/fesm2015/daffodil-category.mjs.map +1 -1
  61. package/fesm2020/daffodil-category-driver-magento-testing.mjs.map +1 -1
  62. package/fesm2020/daffodil-category-driver-magento.mjs.map +1 -1
  63. package/fesm2020/daffodil-category-driver.mjs.map +1 -1
  64. package/fesm2020/daffodil-category-state-testing.mjs.map +1 -1
  65. package/fesm2020/daffodil-category-state.mjs.map +1 -1
  66. package/fesm2020/daffodil-category-testing.mjs.map +1 -1
  67. package/fesm2020/daffodil-category.mjs.map +1 -1
  68. package/package.json +4 -4
@@ -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/get-filter-types.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/aggregate/get-matched-attribute-type.ts","../../../libs/category/driver/magento/src/transformers/pure/aggregate/add-metadata-types-to-aggregates.ts","../../../libs/category/driver/magento/src/models/requests/filters.ts","../../../libs/category/driver/magento/src/models/requests/sort.ts","../../../libs/category/driver/magento/src/models/filter-type.enum.ts","../../../libs/category/driver/magento/src/transformers/applied-filter-transformer.service.ts","../../../libs/category/driver/magento/src/transformers/applied-sort-option-transformer.service.ts","../../../libs/category/driver/magento/src/transformers/pure/aggregate/type/equal.ts","../../../libs/category/driver/magento/src/transformers/pure/aggregate/type/range.ts","../../../libs/category/driver/magento/src/transformers/pure/aggregate/transform.ts","../../../libs/category/driver/magento/src/transformers/pure/sort-default-option-first.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_GET_FILTER_TYPES_QUERY_NAME = 'MagentoGetFilterFieldTypesForCategory';\n\nexport const MagentoGetCategoryFilterTypes = gql`\nquery ${DAFF_MAGENTO_GET_FILTER_TYPES_QUERY_NAME} {\n __type (name: \"ProductAttributeFilterInput\") {\n inputFields {\n name\n type {\n name\n }\n }\n }\n}\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 { magentoProductFragment } from '@daffodil/product/driver/magento';\n\nexport const DAFF_MAGENTO_GET_PRODUCTS_QUERY_NAME = 'MagentoGetProducts';\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\tpage_size\n\t\t\tcurrent_page\n\t\t\ttotal_pages\n\t\t}\n\t\taggregations {\n\t\t\tlabel\n\t\t\tcount\n\t\t\tattribute_code\n options {\n count\n label\n value\n\t\t\t}\n\t\t}\n\t\tsort_fields {\n\t\t\tdefault\n\t\t\toptions {\n\t\t\t\tlabel\n\t\t\t\tvalue\n\t\t\t}\n\t\t}\n\t}\n}\n${magentoProductFragment}\n${daffBuildFragmentDefinition(...extraProductFragments)}\n`;\n","import { MagentoGetCategoryFilterTypesResponse } from '../../../models/get-filter-types-response.interface';\nimport {\n MagentoAggregation,\n MagentoCategoryFilterType,\n} from '../../../models/public_api';\n\nexport const getMatchedAttributeType = (aggregate: MagentoAggregation, attributes: MagentoGetCategoryFilterTypesResponse): MagentoCategoryFilterType =>\n attributes.__type.inputFields.filter(item => item.name === aggregate.attribute_code)[0].type.name;\n","import {\n MagentoGetCategoryFilterTypesResponse,\n MagentoGetProductsResponse,\n} from '../../../models/public_api';\nimport { getMatchedAttributeType } from './get-matched-attribute-type';\n\nexport function addMetadataTypesToAggregates(\n attributeResponse: MagentoGetCategoryFilterTypesResponse,\n aggregationResponse: MagentoGetProductsResponse,\n): MagentoGetProductsResponse {\n\n return {\n ...aggregationResponse,\n products: {\n ...aggregationResponse.products,\n aggregations: [\n ...aggregationResponse.products.aggregations.map((aggregate) => ({\n ...aggregate,\n type: getMatchedAttributeType(aggregate, attributeResponse),\n })),\n ],\n },\n };\n}\n","export enum MagentoCategoryFilterActionEnum {\n\tEqual = 'eq',\n\tTo = 'to',\n\tFrom = 'from',\n\tIn = 'in',\n\tMatch = 'match'\n}\n\nexport interface MagentoCategoryFilters {\n\t[x: string]: MagentoFilterAction;\n}\n\nexport type MagentoFilterAction = {\n\t[key in MagentoCategoryFilterActionEnum]?: string | string[];\n};\n","export enum MagentoSortDirectionEnum {\n\tAscending = 'ASC',\n\tDecending = 'DESC'\n}\n\nexport interface MagentoSortFieldAction {\n\t[x: string]: MagentoSortDirectionEnum;\n}\n","// maybe this shoould be in @daffodil/product/driver/magento?\nexport enum MagentoCategoryFilterType {\n Equal = 'FilterEqualTypeInput',\n Match = 'FilterEqualTypeInput',\n Range = 'FilterRangeTypeInput'\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n DaffCategory,\n DaffCategoryFilterRequest,\n DaffCategoryFilterType,\n} from '@daffodil/category';\n\nimport {\n MagentoCategoryFilters,\n MagentoCategoryFilterActionEnum,\n} from '../models/public_api';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffMagentoAppliedFiltersTransformService {\n\n transform(categoryId: DaffCategory['id'], daffFilters: DaffCategoryFilterRequest[]): MagentoCategoryFilters {\n const magentoFilters: MagentoCategoryFilters = {\n category_uid: {\n [MagentoCategoryFilterActionEnum.Equal]: categoryId,\n },\n };\n\n if(!daffFilters) {\n return magentoFilters;\n }\n\n daffFilters.forEach(filter => {\n // The FromTo filter needs special treatment, because Magento accepts the \"from\" and \"to\" filters\n // separately (it also outputs FromTo filter pairs together)\n if(filter.type === DaffCategoryFilterType.RangeNumeric) {\n magentoFilters[filter.name] = {\n ...magentoFilters[filter.name],\n ...this.getRangeFromValue(filter.value.min.toString()),\n ...this.getRangeToValue(filter.value.max.toString()),\n };\n } else {\n magentoFilters[filter.name] = {\n ...magentoFilters[filter.name],\n [this.getFilterAction(filter.type)]: this.getFilterValue(filter.type, filter.value),\n };\n }\n });\n\n return magentoFilters;\n }\n\n /**\n * Returns an In action for Equal type and a Match action for Match type.\n */\n private getFilterAction(type: DaffCategoryFilterType): MagentoCategoryFilterActionEnum {\n return type === DaffCategoryFilterType.Equal\n ? MagentoCategoryFilterActionEnum.In\n : MagentoCategoryFilterActionEnum.Match;\n }\n\n /**\n * Returns an array for Equal type and a string for Match type.\n */\n private getFilterValue(type: DaffCategoryFilterType, value: DaffCategoryFilterRequest['value']): string | string[] {\n return type === DaffCategoryFilterType.Equal ? value : value[0];\n }\n\n private getRangeFromValue(fromValue: string) {\n return fromValue !== '*' ? { [MagentoCategoryFilterActionEnum.From]: fromValue } : null;\n }\n\n private getRangeToValue(toValue: string) {\n return toValue !== '*' ? { [MagentoCategoryFilterActionEnum.To]: toValue } : null;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { DaffSortDirectionEnum } from '@daffodil/core/state';\n\nimport {\n MagentoSortFieldAction,\n MagentoSortDirectionEnum,\n} from '../models/public_api';\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffMagentoAppliedSortOptionTransformService {\n\n transform(appliedOption: string, appliedDirection: DaffSortDirectionEnum): MagentoSortFieldAction {\n return {\n [appliedOption]: this.transformDirection(appliedDirection),\n };\n }\n\n private transformDirection(direction: DaffSortDirectionEnum): MagentoSortDirectionEnum {\n if(direction === DaffSortDirectionEnum.Ascending) {\n return MagentoSortDirectionEnum.Ascending;\n } else if(direction === DaffSortDirectionEnum.Descending) {\n return MagentoSortDirectionEnum.Decending;\n }\n }\n}\n","import { DaffCategoryFilterEqualOption } from '@daffodil/category';\nimport {\n DaffCategoryFilterEqual,\n DaffCategoryFilterType,\n} from '@daffodil/category';\nimport { Dict } from '@daffodil/core';\n\nimport { MagentoAggregation } from '../../../../models/public_api';\n\nexport const transformAggregateEqual = (aggregate: MagentoAggregation): DaffCategoryFilterEqual => ({\n label: aggregate.label,\n type: DaffCategoryFilterType.Equal,\n name: aggregate.attribute_code,\n options: aggregate.options.reduce((acc, option) => {\n acc[option.value] = {\n applied: false,\n label: option.label,\n count: option.count,\n value: option.value,\n };\n return acc;\n }, <Dict<DaffCategoryFilterEqualOption>>{}),\n});\n","import {\n DaffCategoryFilterType,\n DaffCategoryFilterRangeNumeric,\n} from '@daffodil/category';\n\nimport { MagentoAggregation } from '../../../../models/public_api';\n\n/**\n * The char that Magento uses to separate individual elements of the buckets\n * they return for range elements\n */\nexport const magentoBucketSeparator = '-';\n\nexport const transformAggregateRange = (aggregate: MagentoAggregation): DaffCategoryFilterRangeNumeric => ({\n label: aggregate.label,\n type: DaffCategoryFilterType.RangeNumeric,\n name: aggregate.attribute_code,\n min: parseInt(aggregate.options[0].value.split('-')[0], 10),\n max: parseInt(aggregate.options[aggregate.options.length - 1].value.split(magentoBucketSeparator)[1], 10),\n options: {},\n});\n","import { DaffCategoryFilter } from '@daffodil/category';\n\nimport {\n MagentoAggregation,\n MagentoCategoryFilterType,\n} from '../../../models/public_api';\nimport { transformAggregateEqual } from './type/equal';\nimport { transformAggregateRange } from './type/range';\n\nexport const transformAggregate = (aggregate: MagentoAggregation): DaffCategoryFilter => {\n switch (aggregate.type) {\n case MagentoCategoryFilterType.Range:\n return transformAggregateRange(aggregate);\n case MagentoCategoryFilterType.Equal:\n case MagentoCategoryFilterType.Match:\n default:\n return transformAggregateEqual(aggregate);\n }\n};\n","import { MagentoSortFields } from '../../models/sort-fields';\n\nexport function coerceDefaultSortOptionFirst(sort_fields: MagentoSortFields): MagentoSortFields {\n const index = sort_fields.options.findIndex(option => sort_fields.default === option.value);\n\n return {\n ...sort_fields,\n options: [\n sort_fields.options[index],\n ...sort_fields.options.slice(0, index),\n ...sort_fields.options.slice(index + 1),\n ],\n };\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n DaffCategoryPageMetadata,\n daffCategoryFilterArrayToDict,\n} from '@daffodil/category';\n\nimport { MagentoCompleteCategoryResponse } from '../models/public_api';\nimport { transformAggregate } from './pure/aggregate/transform';\nimport { coerceDefaultSortOptionFirst } from './pure/sort-default-option-first';\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 id: categoryResponse.category.uid,\n page_size: categoryResponse.page_info.page_size,\n current_page: categoryResponse.page_info.current_page,\n total_pages: categoryResponse.page_info.total_pages,\n total_products: categoryResponse.total_count,\n filters: daffCategoryFilterArrayToDict(aggregatesWithoutCategories.map(transformAggregate)),\n sort_options: {\n default: categoryResponse.sort_fields.default,\n options: coerceDefaultSortOptionFirst(categoryResponse.sort_fields).options,\n },\n product_ids: categoryResponse.products.map(product => product.sku),\n // TODO: implement?\n applied_sort_direction: null,\n applied_sort_option: null,\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\t\tprivate 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 daffApplyRequestsToFilters,\n DaffCategoryUrlRequest,\n DaffCategoryRequestKind,\n DaffCategoryFilterRequest,\n DaffCategoryIdRequest,\n} from '@daffodil/category';\nimport { DaffCategoryServiceInterface } from '@daffodil/category/driver';\nimport {\n DaffProductMagentoDriverConfig,\n DAFF_PRODUCT_MAGENTO_EXTRA_PRODUCT_PREVIEW_FRAGMENTS,\n MAGENTO_PRODUCT_CONFIG_TOKEN,\n} from '@daffodil/product/driver/magento';\n\nimport {\n MAGENTO_CATEGORY_CONFIG_TOKEN,\n DaffCategoryMagentoDriverConfig,\n} from './interfaces/public_api';\nimport { MagentoGetCategoryFilterTypesResponse } from './models/get-filter-types-response.interface';\nimport {\n MagentoGetACategoryResponse,\n MagentoGetProductsResponse,\n MagentoGetProductsByCategoriesRequest,\n} from './models/public_api';\nimport { MagentoGetCategoryFilterTypes } from './queries/get-filter-types';\nimport {\n MagentoGetProductsQuery,\n MagentoGetCategoryQuery,\n} from './queries/public_api';\nimport {\n DaffMagentoCategoryResponseTransformService,\n DaffMagentoAppliedFiltersTransformService,\n DaffMagentoAppliedSortOptionTransformService,\n} from './transformers/public_api';\nimport { addMetadataTypesToAggregates } from './transformers/pure/aggregate/add-metadata-types-to-aggregates';\n\nconst applyFiltersOnResponse = (requests: DaffCategoryFilterRequest[], 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\t\tprivate magentoCategoryResponseTransformer: DaffMagentoCategoryResponseTransformService,\n\t\tprivate magentoAppliedFiltersTransformer: DaffMagentoAppliedFiltersTransformService,\n\t\tprivate magentoAppliedSortTransformer: DaffMagentoAppliedSortOptionTransformService,\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<MagentoGetCategoryFilterTypesResponse>({\n query: MagentoGetCategoryFilterTypes,\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.filter_requests\n ? applyFiltersOnResponse(categoryRequest.filter_requests, 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<MagentoGetCategoryFilterTypesResponse>({\n query: MagentoGetCategoryFilterTypes,\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.filter_requests\n ? applyFiltersOnResponse(categoryRequest.filter_requests, 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.filter_requests),\n };\n if(request.page_size) {\n queryVariables['pageSize'] = request.page_size;\n }\n if(request.current_page) {\n queryVariables['currentPage'] = request.current_page;\n }\n if(request.applied_sort_option && request.applied_sort_direction) {\n queryVariables['sort'] = this.magentoAppliedSortTransformer.transform(request.applied_sort_option, request.applied_sort_direction);\n }\n\n return queryVariables;\n }\n\n private transformCategory(\n categoryResponse: MagentoGetACategoryResponse,\n filterTypesResponse: MagentoGetCategoryFilterTypesResponse,\n productsResponse: MagentoGetProductsResponse,\n mediaUrl: string,\n ): DaffGetCategoryResponse {\n const aggregations = addMetadataTypesToAggregates(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';\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 { DAFF_MAGENTO_GET_FILTER_TYPES_QUERY_NAME } from './queries/public_api';\nimport { DaffMagentoAppliedFiltersTransformService } from './transformers/applied-filter-transformer.service';\nimport { DaffMagentoAppliedSortOptionTransformService } from './transformers/applied-sort-option-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 DaffMagentoAppliedSortOptionTransformService,\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","i2.DaffMagentoCategoryResponseTransformService","i2.DaffMagentoAppliedFiltersTransformService","i2.DaffMagentoAppliedSortOptionTransformService"],"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/get-filter-types.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/aggregate/get-matched-attribute-type.ts","../../../libs/category/driver/magento/src/transformers/pure/aggregate/add-metadata-types-to-aggregates.ts","../../../libs/category/driver/magento/src/models/requests/filters.ts","../../../libs/category/driver/magento/src/models/requests/sort.ts","../../../libs/category/driver/magento/src/models/filter-type.enum.ts","../../../libs/category/driver/magento/src/transformers/applied-filter-transformer.service.ts","../../../libs/category/driver/magento/src/transformers/applied-sort-option-transformer.service.ts","../../../libs/category/driver/magento/src/transformers/pure/aggregate/type/equal.ts","../../../libs/category/driver/magento/src/transformers/pure/aggregate/type/range.ts","../../../libs/category/driver/magento/src/transformers/pure/aggregate/transform.ts","../../../libs/category/driver/magento/src/transformers/pure/sort-default-option-first.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_GET_FILTER_TYPES_QUERY_NAME = 'MagentoGetFilterFieldTypesForCategory';\n\nexport const MagentoGetCategoryFilterTypes = gql`\nquery ${DAFF_MAGENTO_GET_FILTER_TYPES_QUERY_NAME} {\n __type (name: \"ProductAttributeFilterInput\") {\n inputFields {\n name\n type {\n name\n }\n }\n }\n}\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 { magentoProductFragment } from '@daffodil/product/driver/magento';\n\nexport const DAFF_MAGENTO_GET_PRODUCTS_QUERY_NAME = 'MagentoGetProducts';\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\tpage_size\n\t\t\tcurrent_page\n\t\t\ttotal_pages\n\t\t}\n\t\taggregations {\n\t\t\tlabel\n\t\t\tcount\n\t\t\tattribute_code\n options {\n count\n label\n value\n\t\t\t}\n\t\t}\n\t\tsort_fields {\n\t\t\tdefault\n\t\t\toptions {\n\t\t\t\tlabel\n\t\t\t\tvalue\n\t\t\t}\n\t\t}\n\t}\n}\n${magentoProductFragment}\n${daffBuildFragmentDefinition(...extraProductFragments)}\n`;\n","import { MagentoGetCategoryFilterTypesResponse } from '../../../models/get-filter-types-response.interface';\nimport {\n MagentoAggregation,\n MagentoCategoryFilterType,\n} from '../../../models/public_api';\n\nexport const getMatchedAttributeType = (aggregate: MagentoAggregation, attributes: MagentoGetCategoryFilterTypesResponse): MagentoCategoryFilterType =>\n attributes.__type.inputFields.filter(item => item.name === aggregate.attribute_code)[0].type.name;\n","import {\n MagentoGetCategoryFilterTypesResponse,\n MagentoGetProductsResponse,\n} from '../../../models/public_api';\nimport { getMatchedAttributeType } from './get-matched-attribute-type';\n\nexport function addMetadataTypesToAggregates(\n attributeResponse: MagentoGetCategoryFilterTypesResponse,\n aggregationResponse: MagentoGetProductsResponse,\n): MagentoGetProductsResponse {\n\n return {\n ...aggregationResponse,\n products: {\n ...aggregationResponse.products,\n aggregations: [\n ...aggregationResponse.products.aggregations.map((aggregate) => ({\n ...aggregate,\n type: getMatchedAttributeType(aggregate, attributeResponse),\n })),\n ],\n },\n };\n}\n","export enum MagentoCategoryFilterActionEnum {\n Equal = 'eq',\n To = 'to',\n From = 'from',\n In = 'in',\n Match = 'match'\n}\n\nexport interface MagentoCategoryFilters {\n [x: string]: MagentoFilterAction;\n}\n\nexport type MagentoFilterAction = {\n [key in MagentoCategoryFilterActionEnum]?: string | string[];\n};\n","export enum MagentoSortDirectionEnum {\n Ascending = 'ASC',\n Decending = 'DESC'\n}\n\nexport interface MagentoSortFieldAction {\n [x: string]: MagentoSortDirectionEnum;\n}\n","// maybe this shoould be in @daffodil/product/driver/magento?\nexport enum MagentoCategoryFilterType {\n Equal = 'FilterEqualTypeInput',\n Match = 'FilterEqualTypeInput',\n Range = 'FilterRangeTypeInput'\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n DaffCategory,\n DaffCategoryFilterRequest,\n DaffCategoryFilterType,\n} from '@daffodil/category';\n\nimport {\n MagentoCategoryFilters,\n MagentoCategoryFilterActionEnum,\n} from '../models/public_api';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffMagentoAppliedFiltersTransformService {\n\n transform(categoryId: DaffCategory['id'], daffFilters: DaffCategoryFilterRequest[]): MagentoCategoryFilters {\n const magentoFilters: MagentoCategoryFilters = {\n category_uid: {\n [MagentoCategoryFilterActionEnum.Equal]: categoryId,\n },\n };\n\n if(!daffFilters) {\n return magentoFilters;\n }\n\n daffFilters.forEach(filter => {\n // The FromTo filter needs special treatment, because Magento accepts the \"from\" and \"to\" filters\n // separately (it also outputs FromTo filter pairs together)\n if(filter.type === DaffCategoryFilterType.RangeNumeric) {\n magentoFilters[filter.name] = {\n ...magentoFilters[filter.name],\n ...this.getRangeFromValue(filter.value.min.toString()),\n ...this.getRangeToValue(filter.value.max.toString()),\n };\n } else {\n magentoFilters[filter.name] = {\n ...magentoFilters[filter.name],\n [this.getFilterAction(filter.type)]: this.getFilterValue(filter.type, filter.value),\n };\n }\n });\n\n return magentoFilters;\n }\n\n /**\n * Returns an In action for Equal type and a Match action for Match type.\n */\n private getFilterAction(type: DaffCategoryFilterType): MagentoCategoryFilterActionEnum {\n return type === DaffCategoryFilterType.Equal\n ? MagentoCategoryFilterActionEnum.In\n : MagentoCategoryFilterActionEnum.Match;\n }\n\n /**\n * Returns an array for Equal type and a string for Match type.\n */\n private getFilterValue(type: DaffCategoryFilterType, value: DaffCategoryFilterRequest['value']): string | string[] {\n return type === DaffCategoryFilterType.Equal ? value : value[0];\n }\n\n private getRangeFromValue(fromValue: string) {\n return fromValue !== '*' ? { [MagentoCategoryFilterActionEnum.From]: fromValue } : null;\n }\n\n private getRangeToValue(toValue: string) {\n return toValue !== '*' ? { [MagentoCategoryFilterActionEnum.To]: toValue } : null;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { DaffSortDirectionEnum } from '@daffodil/core/state';\n\nimport {\n MagentoSortFieldAction,\n MagentoSortDirectionEnum,\n} from '../models/public_api';\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffMagentoAppliedSortOptionTransformService {\n\n transform(appliedOption: string, appliedDirection: DaffSortDirectionEnum): MagentoSortFieldAction {\n return {\n [appliedOption]: this.transformDirection(appliedDirection),\n };\n }\n\n private transformDirection(direction: DaffSortDirectionEnum): MagentoSortDirectionEnum {\n if(direction === DaffSortDirectionEnum.Ascending) {\n return MagentoSortDirectionEnum.Ascending;\n } else if(direction === DaffSortDirectionEnum.Descending) {\n return MagentoSortDirectionEnum.Decending;\n }\n }\n}\n","import { DaffCategoryFilterEqualOption } from '@daffodil/category';\nimport {\n DaffCategoryFilterEqual,\n DaffCategoryFilterType,\n} from '@daffodil/category';\nimport { Dict } from '@daffodil/core';\n\nimport { MagentoAggregation } from '../../../../models/public_api';\n\nexport const transformAggregateEqual = (aggregate: MagentoAggregation): DaffCategoryFilterEqual => ({\n label: aggregate.label,\n type: DaffCategoryFilterType.Equal,\n name: aggregate.attribute_code,\n options: aggregate.options.reduce((acc, option) => {\n acc[option.value] = {\n applied: false,\n label: option.label,\n count: option.count,\n value: option.value,\n };\n return acc;\n }, <Dict<DaffCategoryFilterEqualOption>>{}),\n});\n","import {\n DaffCategoryFilterType,\n DaffCategoryFilterRangeNumeric,\n} from '@daffodil/category';\n\nimport { MagentoAggregation } from '../../../../models/public_api';\n\n/**\n * The char that Magento uses to separate individual elements of the buckets\n * they return for range elements\n */\nexport const magentoBucketSeparator = '-';\n\nexport const transformAggregateRange = (aggregate: MagentoAggregation): DaffCategoryFilterRangeNumeric => ({\n label: aggregate.label,\n type: DaffCategoryFilterType.RangeNumeric,\n name: aggregate.attribute_code,\n min: parseInt(aggregate.options[0].value.split('-')[0], 10),\n max: parseInt(aggregate.options[aggregate.options.length - 1].value.split(magentoBucketSeparator)[1], 10),\n options: {},\n});\n","import { DaffCategoryFilter } from '@daffodil/category';\n\nimport {\n MagentoAggregation,\n MagentoCategoryFilterType,\n} from '../../../models/public_api';\nimport { transformAggregateEqual } from './type/equal';\nimport { transformAggregateRange } from './type/range';\n\nexport const transformAggregate = (aggregate: MagentoAggregation): DaffCategoryFilter => {\n switch (aggregate.type) {\n case MagentoCategoryFilterType.Range:\n return transformAggregateRange(aggregate);\n case MagentoCategoryFilterType.Equal:\n case MagentoCategoryFilterType.Match:\n default:\n return transformAggregateEqual(aggregate);\n }\n};\n","import { MagentoSortFields } from '../../models/sort-fields';\n\nexport function coerceDefaultSortOptionFirst(sort_fields: MagentoSortFields): MagentoSortFields {\n const index = sort_fields.options.findIndex(option => sort_fields.default === option.value);\n\n return {\n ...sort_fields,\n options: [\n sort_fields.options[index],\n ...sort_fields.options.slice(0, index),\n ...sort_fields.options.slice(index + 1),\n ],\n };\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n DaffCategoryPageMetadata,\n daffCategoryFilterArrayToDict,\n} from '@daffodil/category';\n\nimport { MagentoCompleteCategoryResponse } from '../models/public_api';\nimport { transformAggregate } from './pure/aggregate/transform';\nimport { coerceDefaultSortOptionFirst } from './pure/sort-default-option-first';\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 id: categoryResponse.category.uid,\n page_size: categoryResponse.page_info.page_size,\n current_page: categoryResponse.page_info.current_page,\n total_pages: categoryResponse.page_info.total_pages,\n total_products: categoryResponse.total_count,\n filters: daffCategoryFilterArrayToDict(aggregatesWithoutCategories.map(transformAggregate)),\n sort_options: {\n default: categoryResponse.sort_fields.default,\n options: coerceDefaultSortOptionFirst(categoryResponse.sort_fields).options,\n },\n product_ids: categoryResponse.products.map(product => product.sku),\n // TODO: implement?\n applied_sort_direction: null,\n applied_sort_option: null,\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 daffApplyRequestsToFilters,\n DaffCategoryUrlRequest,\n DaffCategoryRequestKind,\n DaffCategoryFilterRequest,\n DaffCategoryIdRequest,\n} from '@daffodil/category';\nimport { DaffCategoryServiceInterface } from '@daffodil/category/driver';\nimport {\n DaffProductMagentoDriverConfig,\n DAFF_PRODUCT_MAGENTO_EXTRA_PRODUCT_PREVIEW_FRAGMENTS,\n MAGENTO_PRODUCT_CONFIG_TOKEN,\n} from '@daffodil/product/driver/magento';\n\nimport {\n MAGENTO_CATEGORY_CONFIG_TOKEN,\n DaffCategoryMagentoDriverConfig,\n} from './interfaces/public_api';\nimport { MagentoGetCategoryFilterTypesResponse } from './models/get-filter-types-response.interface';\nimport {\n MagentoGetACategoryResponse,\n MagentoGetProductsResponse,\n MagentoGetProductsByCategoriesRequest,\n} from './models/public_api';\nimport { MagentoGetCategoryFilterTypes } from './queries/get-filter-types';\nimport {\n MagentoGetProductsQuery,\n MagentoGetCategoryQuery,\n} from './queries/public_api';\nimport {\n DaffMagentoCategoryResponseTransformService,\n DaffMagentoAppliedFiltersTransformService,\n DaffMagentoAppliedSortOptionTransformService,\n} from './transformers/public_api';\nimport { addMetadataTypesToAggregates } from './transformers/pure/aggregate/add-metadata-types-to-aggregates';\n\nconst applyFiltersOnResponse = (requests: DaffCategoryFilterRequest[], 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 private magentoAppliedSortTransformer: DaffMagentoAppliedSortOptionTransformService,\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<MagentoGetCategoryFilterTypesResponse>({\n query: MagentoGetCategoryFilterTypes,\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.filter_requests\n ? applyFiltersOnResponse(categoryRequest.filter_requests, 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<MagentoGetCategoryFilterTypesResponse>({\n query: MagentoGetCategoryFilterTypes,\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.filter_requests\n ? applyFiltersOnResponse(categoryRequest.filter_requests, 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.filter_requests),\n };\n if(request.page_size) {\n queryVariables['pageSize'] = request.page_size;\n }\n if(request.current_page) {\n queryVariables['currentPage'] = request.current_page;\n }\n if(request.applied_sort_option && request.applied_sort_direction) {\n queryVariables['sort'] = this.magentoAppliedSortTransformer.transform(request.applied_sort_option, request.applied_sort_direction);\n }\n\n return queryVariables;\n }\n\n private transformCategory(\n categoryResponse: MagentoGetACategoryResponse,\n filterTypesResponse: MagentoGetCategoryFilterTypesResponse,\n productsResponse: MagentoGetProductsResponse,\n mediaUrl: string,\n ): DaffGetCategoryResponse {\n const aggregations = addMetadataTypesToAggregates(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';\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 { DAFF_MAGENTO_GET_FILTER_TYPES_QUERY_NAME } from './queries/public_api';\nimport { DaffMagentoAppliedFiltersTransformService } from './transformers/applied-filter-transformer.service';\nimport { DaffMagentoAppliedSortOptionTransformService } from './transformers/applied-sort-option-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 DaffMagentoAppliedSortOptionTransformService,\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","i2.DaffMagentoCategoryResponseTransformService","i2.DaffMagentoAppliedFiltersTransformService","i2.DaffMagentoAppliedSortOptionTransformService"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"daffodil-category-driver.mjs","sources":["../../../libs/category/driver/src/interfaces/category-service.interface.ts","../../../libs/category/driver/src/daffodil-category-driver.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport {\n DaffGenericCategory,\n DaffCategory,\n DaffGetCategoryResponse,\n DaffCategoryIdRequest,\n DaffCategoryUrlRequest,\n} from '@daffodil/category';\nimport { DaffProduct } from '@daffodil/product';\n\n/**\n * An interface for category service drivers.\n */\nexport interface DaffCategoryServiceInterface<\n\tV extends DaffGenericCategory<V> = DaffCategory,\n\tW extends DaffProduct = DaffProduct\n> {\n /**\n * Fetch a category by its ID.\n */\n get(categoryRequest: DaffCategoryIdRequest): Observable<DaffGetCategoryResponse<V, W>>;\n /**\n * Fetch a category by its associated URL.\n */\n getByUrl(categoryRequest: DaffCategoryUrlRequest): Observable<DaffGetCategoryResponse<V, W>>;\n}\n\n//TODO(damienwebdev): This any generic is necessary until we ship Ivy packages, do not change it.\n//See: https://github.com/ng-packagr/ng-packagr/issues/1844\nexport const DaffCategoryDriver = new InjectionToken<any>('DaffCategoryDriver');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AA6BA;AACA;MACa,kBAAkB,GAAG,IAAI,cAAc,CAAM,oBAAoB;;AC/B9E;;AAEG;;;;"}
1
+ {"version":3,"file":"daffodil-category-driver.mjs","sources":["../../../libs/category/driver/src/interfaces/category-service.interface.ts","../../../libs/category/driver/src/daffodil-category-driver.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport {\n DaffGenericCategory,\n DaffCategory,\n DaffGetCategoryResponse,\n DaffCategoryIdRequest,\n DaffCategoryUrlRequest,\n} from '@daffodil/category';\nimport { DaffProduct } from '@daffodil/product';\n\n/**\n * An interface for category service drivers.\n */\nexport interface DaffCategoryServiceInterface<\n V extends DaffGenericCategory<V> = DaffCategory,\n W extends DaffProduct = DaffProduct\n> {\n /**\n * Fetch a category by its ID.\n */\n get(categoryRequest: DaffCategoryIdRequest): Observable<DaffGetCategoryResponse<V, W>>;\n /**\n * Fetch a category by its associated URL.\n */\n getByUrl(categoryRequest: DaffCategoryUrlRequest): Observable<DaffGetCategoryResponse<V, W>>;\n}\n\n//TODO(damienwebdev): This any generic is necessary until we ship Ivy packages, do not change it.\n//See: https://github.com/ng-packagr/ng-packagr/issues/1844\nexport const DaffCategoryDriver = new InjectionToken<any>('DaffCategoryDriver');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AA6BA;AACA;MACa,kBAAkB,GAAG,IAAI,cAAc,CAAM,oBAAoB;;AC/B9E;;AAEG;;;;"}
@@ -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 DaffCategoryFilter,\n DaffCategoryPageMetadata,\n} from '@daffodil/category';\nimport { DaffCategoryFacadeInterface } from '@daffodil/category/state';\nimport { DaffCategoryReducerState } from '@daffodil/category/state';\nimport { Dict } from '@daffodil/core';\nimport {\n DaffSortDirectionEnum,\n DaffSortOption,\n DaffStateError,\n} 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 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\ttotalPages$: BehaviorSubject<number> = new BehaviorSubject(null);\n\ttotalProducts$: BehaviorSubject<number> = new BehaviorSubject(null);\n pageSize$: BehaviorSubject<number> = new BehaviorSubject(null);\n filters$: BehaviorSubject<Dict<DaffCategoryFilter>> = new BehaviorSubject({});\n sortOptions$: BehaviorSubject<DaffSortOption[]> = new BehaviorSubject([]);\n appliedFilters$: BehaviorSubject<Dict<DaffCategoryFilter>> = 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\terrors$: BehaviorSubject<DaffStateError[]> = new BehaviorSubject([]);\n\tisCategoryEmpty$: BehaviorSubject<boolean> = new BehaviorSubject(true);\n\n\tgetCategoryById(id: DaffCategory['id']): BehaviorSubject<DaffCategory> {\n\t return new BehaviorSubject(null);\n\t};\n\tgetProductsByCategory(categoryId: DaffCategory['id']): BehaviorSubject<DaffProduct[]> {\n\t return new BehaviorSubject([]);\n\t};\n\tgetTotalProductsByCategory(categoryId: DaffCategory['id']): BehaviorSubject<number> {\n\t return new BehaviorSubject(null);\n\t};\n\tdispatch(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 DaffCategoryFilter,\n DaffCategoryPageMetadata,\n} from '@daffodil/category';\nimport { DaffCategoryFacadeInterface } from '@daffodil/category/state';\nimport { DaffCategoryReducerState } from '@daffodil/category/state';\nimport { Dict } from '@daffodil/core';\nimport {\n DaffSortDirectionEnum,\n DaffSortOption,\n DaffStateError,\n} 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 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<Dict<DaffCategoryFilter>> = new BehaviorSubject({});\n sortOptions$: BehaviorSubject<DaffSortOption[]> = new BehaviorSubject([]);\n appliedFilters$: BehaviorSubject<Dict<DaffCategoryFilter>> = 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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"}