@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.mjs","sources":["../../../libs/category/src/models/filters/type/category-filter-type.ts","../../../libs/category/src/models/filters/type/range/separator.ts","../../../libs/category/src/models/category-request.ts","../../../libs/category/src/filters/errors/codes.enum.ts","../../../libs/category/src/errors/codes.enum.ts","../../../libs/category/src/filters/errors/filter-not-found.error.ts","../../../libs/category/src/filters/errors/request-name-mismatch.error.ts","../../../libs/category/src/filters/errors/request-type-mismatch.error.ts","../../../libs/category/src/filters/errors/unknown-filter-type.error.ts","../../../libs/category/src/filters/errors/map.ts","../../../libs/category/src/errors/map.ts","../../../libs/category/src/injection-tokens/error-matcher.token.ts","../../../libs/category/src/filters/type/equal/behaviors/apply/apply.ts","../../../libs/category/src/filters/type/range/compute-pair-label.ts","../../../libs/category/src/filters/type/range/behaviors/apply/apply.ts","../../../libs/category/src/filters/validators/request-name-match.ts","../../../libs/category/src/filters/validators/request-type-match.ts","../../../libs/category/src/filters/behaviors/apply/apply-filter.ts","../../../libs/category/src/filters/behaviors/apply/apply-request-to-filters.ts","../../../libs/category/src/filters/behaviors/apply/apply-requests-to-filters.ts","../../../libs/category/src/filters/type/equal/behaviors/clear/clear.ts","../../../libs/category/src/filters/type/range/behaviors/clear/clear.ts","../../../libs/category/src/filters/behaviors/clear/clear-filter.ts","../../../libs/category/src/filters/behaviors/clear/clear-filters.ts","../../../libs/category/src/filters/type/equal/behaviors/remove/remove.ts","../../../libs/category/src/filters/type/range/behaviors/remove/remove.ts","../../../libs/category/src/filters/behaviors/remove/remove-filter.ts","../../../libs/category/src/filters/behaviors/remove/remove-request-from-filters.ts","../../../libs/category/src/filters/behaviors/remove/remove-requests-from-filters.ts","../../../libs/category/src/filters/type/equal/behaviors/toggle/toggle.ts","../../../libs/category/src/filters/type/range/behaviors/toggle/toggle.ts","../../../libs/category/src/filters/behaviors/toggle/toggle.ts","../../../libs/category/src/filters/behaviors/toggle/toggle-request-on-filters.ts","../../../libs/category/src/filters/type/equal/is-applied/is-applied.ts","../../../libs/category/src/filters/type/range/is-applied/is-applied.ts","../../../libs/category/src/filters/is-applied/is-filter-applied.ts","../../../libs/category/src/filters/type/equal/is-applied/is-toggle-request-applied-to-filter.ts","../../../libs/category/src/filters/type/range/is-applied/is-toggle-request-applied-to-filter.ts","../../../libs/category/src/filters/is-applied/is-toggle-request-applied-to-filter.ts","../../../libs/category/src/filters/find-applied/find-applied-options.ts","../../../libs/category/src/filters/type/equal/to-request/filter-to-request.ts","../../../libs/category/src/filters/type/range/to-request/filter-to-request.ts","../../../libs/category/src/filters/type/range-numeric/to-request/filter-to-request.ts","../../../libs/category/src/filters/to-request/filter-to-request.ts","../../../libs/category/src/filters/to-request/filters-to-requests.ts","../../../libs/category/src/filters/type/range/array-to-dict/pair.ts","../../../libs/category/src/filters/type/equal/array-to-dict/option.ts","../../../libs/category/src/filters/array-to-dict/array-to-dict.ts","../../../libs/category/src/filters/compute-applied-filters/compute-applied-filters.ts","../../../libs/category/src/daffodil-category.ts"],"sourcesContent":["/**\n * The known types of filters.\n */\nexport enum DaffCategoryFilterType {\n\tEqual = 'equal',\n\tRangeNumeric = 'rangeNumeric'\n}\n","/**\n * The separator between a range type filter's values\n * e.g. \"price\": \"30-40\".\n */\nexport const DaffCategoryFromToFilterSeparator = '-';\n","import {\n ID,\n DaffLocatable,\n} from '@daffodil/core';\nimport { DaffSortDirectionEnum } from '@daffodil/core/state';\n\nimport { DaffCategory } from './category';\nimport { DaffCategoryFilterRequest } from './filters/public_api';\n\n/**\n * When you request a category page, there's two ways to do so, via URL or via ID.\n */\nexport enum DaffCategoryRequestKind {\n URL = 'URL',\n // eslint-disable-next-line @typescript-eslint/no-shadow\n ID = 'ID'\n}\n\n/**\n * A model of the request sent to the {@link DaffCategoryServiceInterface} to retrieve information\n * about a category.\n */\nexport interface DaffCategoryBaseRequest {\n /**\n * The properties by which to filter the items of the category being requested.\n */\n filter_requests?: DaffCategoryFilterRequest[];\n\n /**\n * The option by which to sort a category's items.\n */\n applied_sort_option?: string;\n\n /**\n * The direction by which to sort the category's items.\n */\n applied_sort_direction?: DaffSortDirectionEnum;\n\n /**\n * What page of the category's items to retrieve.\n */\n current_page?: number;\n\n /**\n * The number of items per-page to request.\n */\n page_size?: number;\n}\n\n/**\n * The request used to retrieve a category and its relevant items.\n */\nexport type DaffCategoryRequest = DaffCategoryIdRequest | DaffCategoryUrlRequest;\n\n/**\n * A request used to retrieve a category by its uid.\n */\nexport interface DaffCategoryIdRequest extends DaffCategoryBaseRequest {\n id: DaffCategory['id'];\n kind: DaffCategoryRequestKind.ID;\n}\n\n/**\n * A request used to retrieve a category by its URL.\n * The qualified URL without domain.\n * e.g. a/path/to/the/category.html\n */\nexport interface DaffCategoryUrlRequest extends DaffCategoryBaseRequest, DaffLocatable {\n kind: DaffCategoryRequestKind.URL;\n};\n","/**\n * The error codes applicable to the filter behaviors of `@daffodil/category`.\n *\n * @docs-private\n */\nexport enum DaffCategoryFilterErrorCodes {\n FILTER_REQUEST_TYPE_MISMATCH = 'DAFF_CATEGORY_FILTER_REQUEST_TYPE_MISMATCH',\n FILTER_REQUEST_NAME_MISMATCH = 'DAFF_CATEGORY_FILTER_REQUEST_NAME_MISMATCH',\n FILTER_NOT_FOUND = 'DAFF_CATEGORY_FILTER_NOT_FOUND',\n UNKNOWN_FILTER_TYPE = 'DAFF_CATEGORY_UNKNOWN_FILTER_TYPE',\n}\n","import { DaffCategoryFilterErrorCodes } from '../filters/errors/codes.enum';\n\n/**\n *\n * The available error codes of the @daffodil/category package.\n *\n * Note that this only contains errors in the root @daffodil/category package, not\n * any of its subpackages e.g. `@daffodil/category/testing`.\n */\nexport const DaffCategoryErrorCodes = {\n ...DaffCategoryFilterErrorCodes,\n};\nexport type DaffCategoryErrorCodes = DaffCategoryFilterErrorCodes;\n","import {\n DaffInheritableError,\n DaffError,\n} from '@daffodil/core';\n\nimport { DaffCategoryErrorCodes } from '../../errors/codes.enum';\n\n/**\n * An error thrown when a lookup for a filter.\n */\nexport class DaffCategoryFilterNotFound extends DaffInheritableError implements DaffError {\n public readonly code: string = DaffCategoryErrorCodes.FILTER_NOT_FOUND;\n\n constructor(message?: string) {\n\t super(message);\n }\n}\n","import {\n DaffInheritableError,\n DaffError,\n} from '@daffodil/core';\n\nimport { DaffCategoryErrorCodes } from '../../errors/codes.enum';\n\n/**\n * An error thrown when an operation targeting a filter matching one name\n * matches a filter of another name.\n */\nexport class DaffCategoryFilterRequestNameMismatch extends DaffInheritableError implements DaffError {\n public readonly code: string = DaffCategoryErrorCodes.FILTER_REQUEST_NAME_MISMATCH;\n\n constructor(message?: string) {\n\t super(message);\n }\n}\n","import {\n DaffInheritableError,\n DaffError,\n} from '@daffodil/core';\n\nimport { DaffCategoryErrorCodes } from '../../errors/codes.enum';\n\n/**\n * An error thrown when an operation targeting a filter matching one type\n * matches a filter of another type.\n */\nexport class DaffCategoryFilterRequestTypeMismatch extends DaffInheritableError implements DaffError {\n public readonly code: string = DaffCategoryErrorCodes.FILTER_REQUEST_TYPE_MISMATCH;\n\n constructor(message?: string) {\n\t super(message);\n }\n}\n","import {\n DaffInheritableError,\n DaffError,\n} from '@daffodil/core';\n\nimport { DaffCategoryErrorCodes } from '../../errors/codes.enum';\n\n/**\n * An error thrown when an operation targeting a filter matches a type unknown\n * to Daffodil.\n */\nexport class DaffCategoryUnknownFilterType extends DaffInheritableError implements DaffError {\n public readonly code: string = DaffCategoryErrorCodes.UNKNOWN_FILTER_TYPE;\n\n constructor(message?: string) {\n\t super(message);\n }\n}\n","import { DaffCategoryFilterErrorCodes } from './codes.enum';\nimport { DaffCategoryFilterNotFound } from './filter-not-found.error';\nimport { DaffCategoryFilterRequestNameMismatch } from './request-name-mismatch.error';\nimport { DaffCategoryFilterRequestTypeMismatch } from './request-type-mismatch.error';\nimport { DaffCategoryUnknownFilterType } from './unknown-filter-type.error';\n\n/**\n * A mapping from error codes to error class constructors.\n */\nexport const DaffCategoryFiltersErrorMap = {\n [DaffCategoryFilterErrorCodes.FILTER_REQUEST_TYPE_MISMATCH]: DaffCategoryFilterRequestTypeMismatch,\n [DaffCategoryFilterErrorCodes.FILTER_REQUEST_NAME_MISMATCH]: DaffCategoryFilterRequestNameMismatch,\n [DaffCategoryFilterErrorCodes.FILTER_NOT_FOUND]: DaffCategoryFilterNotFound,\n [DaffCategoryFilterErrorCodes.UNKNOWN_FILTER_TYPE]: DaffCategoryUnknownFilterType,\n};\n","import { DaffCategoryFiltersErrorMap } from '../filters/errors/map';\n/**\n * A mapping from error codes to error class constructors.\n */\nexport const DaffCategoryErrorMap: typeof DaffCategoryFiltersErrorMap = {\n ...DaffCategoryFiltersErrorMap,\n};\n","import { InjectionToken } from '@angular/core';\n\nimport { daffTransformErrorToStateError } from '@daffodil/core/state';\n\n/**\n * Transforms `DaffError`s into `DaffStateError`s before they are serialized into state.\n * Can be used to further refine Daffodil errors into more specific app errors.\n */\nexport const DAFF_CATEGORY_ERROR_MATCHER = new InjectionToken<typeof daffTransformErrorToStateError>(\n 'DAFF_CATEGORY_ERROR_MATCHER',\n { factory: () => daffTransformErrorToStateError },\n);\n","import {\n DaffCategoryFilterEqual,\n DaffCategoryFilterEqualRequest,\n} from '../../../../../models/public_api';\n\n/**\n * Applies a {@link DaffCategoryFilterEqualRequest} to a {@link DaffCategoryFilterEqual}\n *\n * @idempotent {filter}\n * @docs-private\n */\nexport const daffApplyFilterEqual = (\n request: DaffCategoryFilterEqualRequest,\n filter: DaffCategoryFilterEqual,\n): DaffCategoryFilterEqual => ({\n ...filter,\n options: request.value.reduce((acc, value) => {\n const option = filter.options[value];\n\n if (option) {\n acc[value] = {\n ...option,\n applied: true,\n };\n }\n\n return acc;\n }, { ...filter.options }),\n});\n","import { DaffCategoryFromToFilterSeparator } from '../../../models/public_api';\n\nexport const daffCategoryComputeFilterRangePairLabel = (min, max): string =>\n `${min}${DaffCategoryFromToFilterSeparator}${max}`;\n","import {\n DaffCategoryFilterRangeRequestBase,\n DaffCategoryFilterRangeBase,\n} from '../../../../../models/public_api';\nimport { daffCategoryComputeFilterRangePairLabel } from '../../compute-pair-label';\n\n/**\n * Applies a {@link DaffCategoryFilterRangeRequestBase} to a {@link DaffCategoryFilterRangeBase}\n *\n * @idempotent {filter}\n * @docs-private\n */\nexport const daffApplyFilterRange = <T, U extends DaffCategoryFilterRangeRequestBase<T>, V extends DaffCategoryFilterRangeBase<T>>(\n request: U,\n filter: V,\n): V => ({\n ...filter,\n options: {\n [daffCategoryComputeFilterRangePairLabel(request.value.min, request.value.max)]: {\n min: {\n value: request.value.min,\n label: String(request.value.min),\n },\n max: {\n value: request.value.max,\n label: String(request.value.max),\n },\n applied: true,\n },\n },\n });\n","import {\n DaffCategoryFilterRequest,\n DaffCategoryFilter,\n DaffCategoryFilterToggleRequest,\n} from '../../models/public_api';\nimport { DaffCategoryFilterNotFound } from '../errors/filter-not-found.error';\nimport { DaffCategoryFilterRequestNameMismatch } from '../errors/request-name-mismatch.error';\n\n/**\n * Ensures that the names of the filter and the filter request match.\n *\n * @throws {@link DaffCategoryFilterNotFound} if the names do not match.\n */\nexport const daffCategoryValidateFilterRequestNameMatch = (\n request: DaffCategoryFilterRequest | DaffCategoryFilterToggleRequest,\n filter: DaffCategoryFilter,\n): void => {\n if (!filter) {\n throw new DaffCategoryFilterNotFound('Filter does not exist');\n }\n if (request.name !== filter.name) {\n throw new DaffCategoryFilterRequestNameMismatch('Filter name does not match request name');\n }\n};\n","import {\n DaffCategoryFilterRequest,\n DaffCategoryFilter,\n DaffCategoryFilterToggleRequest,\n} from '../../models/public_api';\nimport { DaffCategoryFilterRequestTypeMismatch } from '../errors/request-type-mismatch.error';\n\n/**\n * Ensures that the types of the filter and the filter request match.\n *\n * @throws {@link DaffCategoryFilterRequestTypeMismatch} if the types do not match.\n */\nexport const daffCategoryValidateFilterRequestTypeMatch = (\n request: DaffCategoryFilterRequest | DaffCategoryFilterToggleRequest,\n filter: DaffCategoryFilter,\n): void => {\n if (request.type !== filter.type) {\n throw new DaffCategoryFilterRequestTypeMismatch('Filter types don\\'t match');\n }\n};\n","import {\n DaffCategoryFilterRequest,\n DaffCategoryFilter,\n DaffCategoryFilterType,\n DaffCategoryFilterEqual,\n DaffCategoryFilterRangeNumeric,\n} from '../../../models/public_api';\nimport { DaffCategoryUnknownFilterType } from '../../errors/unknown-filter-type.error';\nimport { daffApplyFilterEqual } from '../../type/equal/behaviors/apply/apply';\nimport { daffApplyFilterRange } from '../../type/range/behaviors/apply/apply';\nimport {\n daffCategoryValidateFilterRequestNameMatch,\n daffCategoryValidateFilterRequestTypeMatch,\n} from '../../validators/public_api';\n\n/**\n * Applies a filter request to the matching filter.\n *\n * @idempotent {filter}\n * @throws {@link DaffCategoryUnknownFilterType}\n */\nexport const daffApplyFilter = (request: DaffCategoryFilterRequest, filter: DaffCategoryFilter): DaffCategoryFilter => {\n daffCategoryValidateFilterRequestNameMatch(request, filter);\n daffCategoryValidateFilterRequestTypeMatch(request, filter);\n\n switch (request.type) {\n case DaffCategoryFilterType.Equal:\n return daffApplyFilterEqual(request, <DaffCategoryFilterEqual>filter);\n case(DaffCategoryFilterType.RangeNumeric):\n return daffApplyFilterRange(request, <DaffCategoryFilterRangeNumeric>filter);\n default:\n throw new DaffCategoryUnknownFilterType('Unknown filter type');\n }\n};\n","import { Dict } from '@daffodil/core';\n\nimport {\n DaffCategoryFilterRequest,\n DaffCategoryFilter,\n} from '../../../models/public_api';\nimport { daffApplyFilter } from './apply-filter';\n\n/**\n * Applies a {@link DaffCategoryFilterRequest} to a {@link Dict} of {@link DaffCategoryFilter}\n * returning the updated {@link Dict}.\n *\n * @idempotent {filters}\n */\nexport const daffApplyRequestToFilters = (request: DaffCategoryFilterRequest, filters: Dict<DaffCategoryFilter>): Dict<DaffCategoryFilter> => ({\n ...filters,\n [request.name]: daffApplyFilter(request, filters[request.name]),\n});\n\n\n","import { Dict } from '@daffodil/core';\n\nimport {\n DaffCategoryFilterRequest,\n DaffCategoryFilter,\n} from '../../../models/public_api';\nimport { daffApplyFilter } from './apply-filter';\n\n/**\n * Applies filters from a {@link DaffCategoryFilterRequest} to a {@link Dict}\n * of {@link DaffCategoryFilter}.\n *\n * @idempotent {filters}\n */\nexport const daffApplyRequestsToFilters = (\n filtersRequests: DaffCategoryFilterRequest[],\n filters: Dict<DaffCategoryFilter>,\n): Dict<DaffCategoryFilter> =>\n filtersRequests.reduce((acc, request) => {\n acc[request.name] = daffApplyFilter(request, filters[request.name]);\n return acc;\n }, { ...filters });\n\n\n","import { DaffCategoryFilterEqual } from '../../../../../models/public_api';\n\n/**\n * Unapplies the applied filter options of a {@link DaffCategoryFilterEqual}\n *\n * @idempotent {filter}\n * @docs-private\n */\nexport const daffClearFilterEqual = (filter: DaffCategoryFilterEqual): DaffCategoryFilterEqual => ({\n ...filter,\n options: Object.keys(filter.options).map((key) => filter.options[key]).reduce((acc, option) => {\n acc[option.value] = {\n ...option,\n applied: false,\n };\n return acc;\n }, { ...filter.options }),\n});\n","import { DaffCategoryFilterRangeBase } from '../../../../../models/public_api';\n\n/**\n * Unapplies the applied filter options of a {@link DaffCategoryFilterRangeBase}\n *\n * @idempotent {filter}\n * @docs-private\n */\nexport const daffClearFilterRange = <T, U extends DaffCategoryFilterRangeBase<T>>(filter: U): U => ({\n ...filter,\n options: {},\n});\n","import {\n DaffCategoryFilterType,\n DaffCategoryFilter,\n} from '../../../models/public_api';\nimport { DaffCategoryUnknownFilterType } from '../../errors/unknown-filter-type.error';\nimport { daffClearFilterEqual } from '../../type/equal/behaviors/clear/clear';\nimport { daffClearFilterRange } from '../../type/range/behaviors/clear/clear';\n\n/**\n * Undoes the applied state of all applied filter options of a {@link DaffCategoryFilter}\n * returning the filter.\n *\n * @idempotent {filter}\n */\nexport const daffClearFilter = (filter: DaffCategoryFilter): DaffCategoryFilter => {\n switch (filter.type) {\n case DaffCategoryFilterType.RangeNumeric:\n return daffClearFilterRange(filter);\n case DaffCategoryFilterType.Equal:\n return daffClearFilterEqual(filter);\n default:\n throw new DaffCategoryUnknownFilterType('Unknown filter type');\n }\n};\n","import { Dict } from '@daffodil/core';\n\nimport { DaffCategoryFilter } from '../../../models/public_api';\nimport { daffClearFilter } from './clear-filter';\n\n/**\n * Undoes the applied state of all applied filter options of a {@link Dict} of {@link DaffCategoryFilter}\n * returning updated {@link Dict}.\n *\n * @idempotent {filters}\n */\nexport const daffClearFilters = (filters: Dict<DaffCategoryFilter>): Dict<DaffCategoryFilter> =>\n Object.keys(filters).map((key) => filters[key]).reduce((acc, filter) => {\n acc[filter.name] = daffClearFilter(filter);\n return acc;\n }, {});\n","import {\n DaffCategoryFilterEqualRequest,\n DaffCategoryFilter,\n DaffCategoryFilterEqual,\n} from '../../../../../models/public_api';\n\n/**\n * Removes the matching filter options of a {@link DaffCategoryFilterEqual}\n * that match the {@link DaffCategoryFilterEqualRequest}\n *\n * If there are no matching options, returns the original {@link DaffCategoryFilterEqual}\n *\n * @idempotent {filter}\n * @docs-private\n */\nexport const daffRemoveFilterEqual = (\n request: DaffCategoryFilterEqualRequest,\n filter: DaffCategoryFilterEqual,\n): DaffCategoryFilter => ({\n ...filter,\n options: request.value.reduce((acc, value) => {\n const option = filter.options[value];\n\n if (option) {\n acc[value] = {\n ...option,\n applied: false,\n };\n }\n\n return acc;\n }, { ...filter.options }),\n});\n","import {\n DaffCategoryFilterRangeRequestBase,\n DaffCategoryFilterRangeBase,\n} from '../../../../../models/public_api';\nimport { daffCategoryComputeFilterRangePairLabel } from '../../compute-pair-label';\n\n/**\n * Removes the matching filter options of a {@link DaffCategoryFilterRangeBase}\n * that match the {@link DaffCategoryFilterRangeRequestBase}\n *\n * If there are no matching options, returns the original {@link DaffCategoryFilterRangeBase}\n *\n * @idempotent {filter}\n * @docs-private\n */\nexport const daffRemoveFilterRange = <T, U extends DaffCategoryFilterRangeBase<T>>(\n request: DaffCategoryFilterRangeRequestBase<T>,\n filter: U,\n): U =>\n filter.options[daffCategoryComputeFilterRangePairLabel(request.value.min, request.value.max)]\n ? ({\n ...filter,\n options: {},\n })\n : filter;\n","import {\n DaffCategoryFilterRequest,\n DaffCategoryFilter,\n DaffCategoryFilterType,\n DaffCategoryFilterEqual,\n DaffCategoryFilterRangeNumeric,\n} from '../../../models/public_api';\nimport { DaffCategoryUnknownFilterType } from '../../errors/unknown-filter-type.error';\nimport { daffRemoveFilterEqual } from '../../type/equal/behaviors/remove/remove';\nimport { daffRemoveFilterRange } from '../../type/range/behaviors/remove/remove';\nimport {\n daffCategoryValidateFilterRequestNameMatch,\n daffCategoryValidateFilterRequestTypeMatch,\n} from '../../validators/public_api';\n\n/**\n * Undoes any applied options of a {@link DaffCategoryFilter} that match the\n * {@link DaffCategoryFilterRequest}, returning the {@link DaffCategoryFilter}.\n *\n * @idempotent {filter}\n * @pure\n */\nexport const daffRemoveFilter = (request: DaffCategoryFilterRequest, filter: DaffCategoryFilter): DaffCategoryFilter => {\n daffCategoryValidateFilterRequestNameMatch(request, filter);\n daffCategoryValidateFilterRequestTypeMatch(request, filter);\n\n switch (request.type) {\n case DaffCategoryFilterType.Equal:\n return daffRemoveFilterEqual(request, <DaffCategoryFilterEqual>filter);\n case (DaffCategoryFilterType.RangeNumeric):\n return daffRemoveFilterRange(request, <DaffCategoryFilterRangeNumeric>filter);\n default:\n throw new DaffCategoryUnknownFilterType('Unknown filter type');\n }\n};\n","import { Dict } from '@daffodil/core';\n\nimport {\n DaffCategoryFilterRequest,\n DaffCategoryFilter,\n} from '../../../models/public_api';\nimport { daffRemoveFilter } from './remove-filter';\n\n/**\n * Undoes any applied options of a particular filter of a {@link Dict} of {@link DaffCategoryFilter}\n * that match the {@link DaffCategoryFilterRequest}, returning the {@link Dict} of {@link DaffCategoryFilter}.\n *\n * @idempotent {filters}\n */\nexport const daffRemoveRequestFromFilters = (\n request: DaffCategoryFilterRequest,\n filters: Dict<DaffCategoryFilter>,\n): Dict<DaffCategoryFilter> => ({\n ...filters,\n [request.name]: daffRemoveFilter(request, filters[request.name]),\n});\n","import { Dict } from '@daffodil/core';\n\nimport {\n DaffCategoryFilterRequest,\n DaffCategoryFilter,\n} from '../../../models/public_api';\nimport { daffRemoveFilter } from './remove-filter';\n\n/**\n * Undoes all applied options of a {@link Dict} of {@link DaffCategoryFilter}\n * that match any of the {@link DaffCategoryFilterRequest},\n * returning the updated {@link Dict} of {@link DaffCategoryFilter}.\n *\n * @idempotent {filters}\n */\nexport const daffRemoveRequestsFromFilters = (\n requests: (DaffCategoryFilterRequest)[],\n filters: Dict<DaffCategoryFilter>,\n): Dict<DaffCategoryFilter> =>\n requests.reduce((acc, request) => {\n acc[request.name] = daffRemoveFilter(request, filters[request.name]);\n return acc;\n }, { ...filters });\n","import { DaffCategoryFilterEqual } from '../../../../../models/public_api';\nimport { DaffCategoryFilterEqualToggleRequest } from '../../../../../models/public_api';\n\n/**\n * Oscillates the applied state of the matching filter options of a {@link DaffCategoryFilterEqual}\n * that match the {@link DaffCategoryFilterEqualRequest}\n *\n * If there are no matching options, returns the original {@link DaffCategoryFilterEqual}\n *\n * @docs-private\n */\nexport const daffToggleFilterEqual = (\n request: DaffCategoryFilterEqualToggleRequest,\n filter: DaffCategoryFilterEqual,\n): DaffCategoryFilterEqual => {\n const option = filter.options[request.value];\n\n return option\n ? {\n ...filter,\n options: {\n ...filter.options,\n [option.value]: {\n ...option,\n applied: !option.applied,\n },\n },\n }\n : filter;\n};\n","import {\n DaffCategoryFilterRangeBase,\n DaffCategoryFilterRangeRequestBase,\n} from '../../../../../models/public_api';\nimport { daffCategoryComputeFilterRangePairLabel } from '../../compute-pair-label';\nimport { daffApplyFilterRange } from '../apply/apply';\nimport { daffRemoveFilterRange } from '../remove/remove';\n\n/**\n * Oscillates the applied state of the matching filter options of a {@link DaffCategoryFilterRangeBase}\n * that match the {@link DaffCategoryFilterRangeRequestBase}\n *\n * If there are no matching options, returns the original {@link DaffCategoryFilterRangeBase}\n *\n * @docs-private\n */\nexport const daffToggleFilterRange = <T, U extends DaffCategoryFilterRangeBase<T>>(\n request: DaffCategoryFilterRangeRequestBase<T>,\n filter: U,\n): U =>\n filter.options[daffCategoryComputeFilterRangePairLabel(request.value.min, request.value.max)]\n ? daffRemoveFilterRange(request, filter)\n : daffApplyFilterRange(request, filter);\n","import {\n DaffCategoryFilterToggleRequest,\n DaffCategoryFilter,\n DaffCategoryFilterType,\n DaffCategoryFilterEqual,\n DaffCategoryFilterRangeNumeric,\n} from '../../../models/public_api';\nimport { DaffCategoryUnknownFilterType } from '../../errors/unknown-filter-type.error';\nimport { daffToggleFilterEqual } from '../../type/equal/behaviors/toggle/toggle';\nimport { daffToggleFilterRange } from '../../type/range/behaviors/toggle/toggle';\nimport {\n daffCategoryValidateFilterRequestNameMatch,\n daffCategoryValidateFilterRequestTypeMatch,\n} from '../../validators/public_api';\n\n/**\n * Toggles the state of the filters (and their options) in the {@link DaffCategoryFilter}\n * that match the {@link DaffCategoryFilterToggleRequest} .\n */\nexport function daffToggleFilter(\n request: DaffCategoryFilterToggleRequest,\n filter: DaffCategoryFilter,\n): DaffCategoryFilter {\n daffCategoryValidateFilterRequestNameMatch(request, filter);\n daffCategoryValidateFilterRequestTypeMatch(request, filter);\n\n switch (request.type) {\n case DaffCategoryFilterType.Equal:\n return daffToggleFilterEqual(request, <DaffCategoryFilterEqual>filter);\n case(DaffCategoryFilterType.RangeNumeric):\n return daffToggleFilterRange(request, <DaffCategoryFilterRangeNumeric>filter);\n default:\n throw new DaffCategoryUnknownFilterType('Unknown filter type');\n }\n}\n","import { Dict } from '@daffodil/core';\n\nimport {\n DaffCategoryFilter,\n DaffCategoryFilterToggleRequest,\n} from '../../../models/public_api';\nimport { daffToggleFilter } from './toggle';\n\n/**\n * Toggles the state of a filter option in the {@link Dict<DaffCategoryFilter>}\n * that matches the {@link DaffCategoryFilterToggleRequest}.\n */\nexport const daffToggleRequestOnFilters = (\n request: DaffCategoryFilterToggleRequest,\n filters: Dict<DaffCategoryFilter>): Dict<DaffCategoryFilter> => ({\n ...filters,\n [request.name]: daffToggleFilter(request, filters[request.name]),\n});\n\n\n","import { DaffCategoryFilterEqual } from '../../../../models/public_api';\n\n/**\n * Determines whether or not the {@link DaffCategoryFilterEqual} has any applied options.\n */\nexport const daffIsFilterEqualApplied = (filter: DaffCategoryFilterEqual): boolean =>\n Object.keys(filter.options).map((key) => filter.options[key]).findIndex(option => option.applied) > -1;\n","import { DaffCategoryFilterRangeBase } from '../../../../models/public_api';\n\n/**\n * Determines whether or not a {@link DaffCategoryFilterRangeBase} has any applied options.\n */\nexport const daffIsFilterRangeApplied = <T>(filter: DaffCategoryFilterRangeBase<T>): boolean =>\n Object.keys(filter.options).length > 0;\n","import {\n DaffCategoryFilterType,\n DaffCategoryFilter,\n} from '../../models/public_api';\nimport { DaffCategoryUnknownFilterType } from '../errors/unknown-filter-type.error';\nimport { daffIsFilterEqualApplied } from '../type/equal/is-applied/is-applied';\nimport { daffIsFilterRangeApplied } from '../type/range/is-applied/is-applied';\n\n/**\n * Determines whether or not a filter has any currently applied options.\n */\nexport const daffIsFilterApplied = (filter: DaffCategoryFilter): boolean => {\n switch (filter.type) {\n case DaffCategoryFilterType.RangeNumeric:\n return daffIsFilterRangeApplied(filter);\n case DaffCategoryFilterType.Equal:\n return daffIsFilterEqualApplied(filter);\n default:\n throw new DaffCategoryUnknownFilterType('Unknown filter type');\n }\n};\n","import {\n DaffCategoryFilterEqualToggleRequest,\n DaffCategoryFilterEqual,\n} from '../../../../models/public_api';\n\n/**\n * Determines whether or not any {@link DaffCategoryFilterEqual} options matching {@link DaffCategoryFilterEqualToggleRequest} are applied.\n */\nexport const daffIsEqualToggleRequestAppliedToFilter = (\n request: DaffCategoryFilterEqualToggleRequest,\n filter: DaffCategoryFilterEqual,\n): boolean => !!filter.options[request.value]?.applied;\n","import {\n DaffCategoryFilterRangeRequestBase,\n DaffCategoryFilterRangeBase,\n} from '../../../../models/public_api';\nimport { daffCategoryComputeFilterRangePairLabel } from '../compute-pair-label';\n\n/**\n * Determines whether or not any {@link DaffCategoryFilterRangeBase} options matching {@link DaffCategoryFilterRangeRequestBase} are applied.\n */\nexport const daffIsRangeToggleRequestAppliedToFilter = <T>(\n request: DaffCategoryFilterRangeRequestBase<T>,\n filter: DaffCategoryFilterRangeBase<T>,\n): boolean =>\n daffCategoryComputeFilterRangePairLabel(request.value.min, request.value.max) in filter.options;\n","import {\n DaffCategoryFilter,\n DaffCategoryFilterToggleRequest,\n DaffCategoryFilterType,\n DaffCategoryFilterRangeNumericToggleRequest,\n DaffCategoryFilterEqualToggleRequest,\n} from '../../models/public_api';\nimport { DaffCategoryUnknownFilterType } from '../errors/unknown-filter-type.error';\nimport { daffIsEqualToggleRequestAppliedToFilter } from '../type/equal/is-applied/is-toggle-request-applied-to-filter';\nimport { daffIsRangeToggleRequestAppliedToFilter } from '../type/range/is-applied/is-toggle-request-applied-to-filter';\n\n/**\n * Determines whether or not a {@link DaffCategoryFilterToggleRequest} is already applied to a {@link DaffCategoryFilter}.\n */\nexport const daffIsToggleRequestAppliedToFilter = (request: DaffCategoryFilterToggleRequest, filter: DaffCategoryFilter): boolean => {\n switch (filter.type) {\n case DaffCategoryFilterType.RangeNumeric:\n return daffIsRangeToggleRequestAppliedToFilter(<DaffCategoryFilterRangeNumericToggleRequest>request, filter);\n case DaffCategoryFilterType.Equal:\n return daffIsEqualToggleRequestAppliedToFilter(<DaffCategoryFilterEqualToggleRequest>request, filter);\n default:\n throw new DaffCategoryUnknownFilterType('Unknown filter type');\n }\n};\n","import { DaffCategoryFilterBase } from '../../models/public_api';\n\n/**\n * Finds the applied options in the filter.\n */\nexport const daffCategoryFindAppliedFilterOptions = <T extends DaffCategoryFilterBase>(filter: T): T['options'][string][] =>\n Object.keys(filter.options).map((key) => <T['options'][string]>filter.options[key]).filter((option) => option.applied);\n","import {\n DaffCategoryFilterEqual,\n DaffCategoryFilterEqualRequest,\n DaffCategoryFilterType,\n} from '../../../../models/public_api';\nimport { daffCategoryFindAppliedFilterOptions } from '../../../find-applied/public_api';\n\n/**\n * Builds an {@link DaffCategoryFilterEqualRequest} from the passed filter and options.\n */\nexport const daffCategoryFilterEqualToRequest = (\n filter: DaffCategoryFilterEqual,\n): DaffCategoryFilterEqualRequest | null => {\n const options = daffCategoryFindAppliedFilterOptions(filter);\n if(!options.length){\n return null;\n }\n\n return {\n type: DaffCategoryFilterType.Equal,\n name: filter.name,\n value: options.map(option => option.value),\n };\n};\n","import {\n DaffCategoryFilterRangeBase,\n DaffCategoryFilterRangeRequestBase,\n} from '../../../../models/public_api';\nimport { daffCategoryFindAppliedFilterOptions } from '../../../find-applied/public_api';\n\n/**\n * Builds a {@link DaffCategoryFilterRangeRequestBase} from the passed {@link DaffCategoryFilterRangeBase} and options.\n */\nexport const daffCategoryFilterRangeToRequest = <T, U extends DaffCategoryFilterRangeBase<T>>(\n filter: U,\n): DaffCategoryFilterRangeRequestBase<T> => {\n const options = daffCategoryFindAppliedFilterOptions(filter);\n if(!options.length){\n return null;\n }\n\n return {\n type: filter.type,\n name: filter.name,\n value: {\n min: options[0].min.value,\n max: options[0].max.value,\n },\n };\n};\n","import {\n DaffCategoryFilterRangeNumeric,\n DaffCategoryFilterRangeNumericRequest,\n} from '../../../../models/public_api';\nimport { daffCategoryFilterRangeToRequest } from '../../range/to-request/filter-to-request';\n\n/**\n * Transforms a {@link DaffCategoryFilterRangeNumeric} into a {@link DaffCategoryFilterRangeNumericRequest}\n */\nexport const daffCategoryFilterRangeNumericToRequest = (\n filter: DaffCategoryFilterRangeNumeric,\n): DaffCategoryFilterRangeNumericRequest => <DaffCategoryFilterRangeNumericRequest>daffCategoryFilterRangeToRequest(filter);\n","import {\n DaffCategoryFilter,\n DaffCategoryFilterRequest,\n DaffCategoryFilterType,\n} from '../../models/public_api';\nimport { DaffCategoryUnknownFilterType } from '../errors/unknown-filter-type.error';\nimport { daffCategoryFilterEqualToRequest } from '../type/equal/to-request/filter-to-request';\nimport { daffCategoryFilterRangeNumericToRequest } from '../type/range-numeric/to-request/filter-to-request';\n\n/**\n * Builds a category filter request from a category filter.\n * Returns null if the category filter does not have at least one applied option.\n */\nexport function daffCategoryFilterToRequest(filter: DaffCategoryFilter): DaffCategoryFilterRequest | null {\n switch (filter.type) {\n case DaffCategoryFilterType.RangeNumeric:\n return daffCategoryFilterRangeNumericToRequest(filter);\n case DaffCategoryFilterType.Equal:\n return daffCategoryFilterEqualToRequest(filter);\n default:\n throw new DaffCategoryUnknownFilterType('Unknown filter type');\n }\n};\n","import { Dict } from '@daffodil/core';\n\nimport {\n DaffCategoryFilter,\n DaffCategoryFilterRequest,\n} from '../../models/public_api';\nimport { daffCategoryFilterToRequest } from './filter-to-request';\n\n/**\n * Builds a list of filter requests from a list of filters.\n * Requests are only built for the filters that have at least one applied option.\n */\nexport function daffCategoryFiltersToRequests(filters: Dict<DaffCategoryFilter>): DaffCategoryFilterRequest[] {\n return Object.keys(filters).map((key) => filters[key]).reduce((acc: DaffCategoryFilterRequest[], filter) => {\n const request = daffCategoryFilterToRequest(filter);\n\n if (request) {\n acc.push(request);\n }\n\n return acc;\n }, []);\n}\n","import {\n Dict,\n daffArrayToDict,\n} from '@daffodil/core';\n\nimport { DaffCategoryFilterRangePair } from '../../../../models/public_api';\nimport { daffCategoryComputeFilterRangePairLabel } from '../compute-pair-label';\n\n/**\n * Transforms an {@link DaffCategoryFilterRangePair[]} to a {@link Dict<DaffCategoryFilterRangePair>}.\n */\nexport const daffCategoryFilterRangePairArrayToDict = <T>(pairs: DaffCategoryFilterRangePair<T>[]): Dict<DaffCategoryFilterRangePair<T>> =>\n daffArrayToDict(pairs, pair => daffCategoryComputeFilterRangePairLabel(pair.min.value, pair.max.value));\n","import {\n Dict,\n daffArrayToDict,\n} from '@daffodil/core';\n\nimport { DaffCategoryFilterEqualOption } from '../../../../models/public_api';\n\n/**\n * Converts a list of category equal filter options to a dict of options keyed by option value.\n */\nexport const daffCategoryFilterEqualOptionArrayToDict =\n (options: DaffCategoryFilterEqualOption[]): Dict<DaffCategoryFilterEqualOption> =>\n daffArrayToDict(options, option => option.value);\n","import {\n Dict,\n daffArrayToDict,\n} from '@daffodil/core';\n\nimport { DaffCategoryFilter } from '../../models/public_api';\n\n/**\n * Converts a list of category filters into a {@link Dict} of filters keyed by filter name.\n */\nexport const daffCategoryFilterArrayToDict = (filters: DaffCategoryFilter[]): Dict<DaffCategoryFilter> =>\n daffArrayToDict(filters, filter => filter.name);\n","import { Dict } from '@daffodil/core';\n\nimport {\n DaffCategoryFilter,\n DaffCategoryFilterType,\n DaffCategoryFilterEqualOption,\n DaffCategoryFilterRangePair,\n} from '../../models/public_api';\nimport { daffCategoryFindAppliedFilterOptions } from '../find-applied/public_api';\nimport { daffCategoryFilterEqualOptionArrayToDict } from '../type/equal/public_api';\nimport { daffCategoryFilterRangePairArrayToDict } from '../type/range/public_api';\n\n/**\n * Returns a {@link Dict<DaffCategoryFilter>} and only their applied options.\n * {@link DaffCategoryFilter} that have no applied options will be omitted.\n */\nexport const daffCategoryComputeAppliedFilters = (filters: Dict<DaffCategoryFilter>): Dict<DaffCategoryFilter> =>\n Object.keys(filters).map(key => filters[key]).reduce((acc, filter) => {\n const appliedOptions = daffCategoryFindAppliedFilterOptions(filter);\n\n if (appliedOptions.length > 0) {\n acc[filter.name] = {\n ...filter,\n options: filter.type === DaffCategoryFilterType.Equal\n ? daffCategoryFilterEqualOptionArrayToDict(<DaffCategoryFilterEqualOption[]>appliedOptions)\n : daffCategoryFilterRangePairArrayToDict(<DaffCategoryFilterRangePair<unknown>[]>appliedOptions),\n };\n }\n\n return acc;\n }, {});\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daffodil-category.mjs","sources":["../../../libs/category/src/models/filters/type/category-filter-type.ts","../../../libs/category/src/models/filters/type/range/separator.ts","../../../libs/category/src/models/category-request.ts","../../../libs/category/src/filters/errors/codes.enum.ts","../../../libs/category/src/errors/codes.enum.ts","../../../libs/category/src/filters/errors/filter-not-found.error.ts","../../../libs/category/src/filters/errors/request-name-mismatch.error.ts","../../../libs/category/src/filters/errors/request-type-mismatch.error.ts","../../../libs/category/src/filters/errors/unknown-filter-type.error.ts","../../../libs/category/src/filters/errors/map.ts","../../../libs/category/src/errors/map.ts","../../../libs/category/src/injection-tokens/error-matcher.token.ts","../../../libs/category/src/filters/type/equal/behaviors/apply/apply.ts","../../../libs/category/src/filters/type/range/compute-pair-label.ts","../../../libs/category/src/filters/type/range/behaviors/apply/apply.ts","../../../libs/category/src/filters/validators/request-name-match.ts","../../../libs/category/src/filters/validators/request-type-match.ts","../../../libs/category/src/filters/behaviors/apply/apply-filter.ts","../../../libs/category/src/filters/behaviors/apply/apply-request-to-filters.ts","../../../libs/category/src/filters/behaviors/apply/apply-requests-to-filters.ts","../../../libs/category/src/filters/type/equal/behaviors/clear/clear.ts","../../../libs/category/src/filters/type/range/behaviors/clear/clear.ts","../../../libs/category/src/filters/behaviors/clear/clear-filter.ts","../../../libs/category/src/filters/behaviors/clear/clear-filters.ts","../../../libs/category/src/filters/type/equal/behaviors/remove/remove.ts","../../../libs/category/src/filters/type/range/behaviors/remove/remove.ts","../../../libs/category/src/filters/behaviors/remove/remove-filter.ts","../../../libs/category/src/filters/behaviors/remove/remove-request-from-filters.ts","../../../libs/category/src/filters/behaviors/remove/remove-requests-from-filters.ts","../../../libs/category/src/filters/type/equal/behaviors/toggle/toggle.ts","../../../libs/category/src/filters/type/range/behaviors/toggle/toggle.ts","../../../libs/category/src/filters/behaviors/toggle/toggle.ts","../../../libs/category/src/filters/behaviors/toggle/toggle-request-on-filters.ts","../../../libs/category/src/filters/type/equal/is-applied/is-applied.ts","../../../libs/category/src/filters/type/range/is-applied/is-applied.ts","../../../libs/category/src/filters/is-applied/is-filter-applied.ts","../../../libs/category/src/filters/type/equal/is-applied/is-toggle-request-applied-to-filter.ts","../../../libs/category/src/filters/type/range/is-applied/is-toggle-request-applied-to-filter.ts","../../../libs/category/src/filters/is-applied/is-toggle-request-applied-to-filter.ts","../../../libs/category/src/filters/find-applied/find-applied-options.ts","../../../libs/category/src/filters/type/equal/to-request/filter-to-request.ts","../../../libs/category/src/filters/type/range/to-request/filter-to-request.ts","../../../libs/category/src/filters/type/range-numeric/to-request/filter-to-request.ts","../../../libs/category/src/filters/to-request/filter-to-request.ts","../../../libs/category/src/filters/to-request/filters-to-requests.ts","../../../libs/category/src/filters/type/range/array-to-dict/pair.ts","../../../libs/category/src/filters/type/equal/array-to-dict/option.ts","../../../libs/category/src/filters/array-to-dict/array-to-dict.ts","../../../libs/category/src/filters/compute-applied-filters/compute-applied-filters.ts","../../../libs/category/src/daffodil-category.ts"],"sourcesContent":["/**\n * The known types of filters.\n */\nexport enum DaffCategoryFilterType {\n Equal = 'equal',\n RangeNumeric = 'rangeNumeric'\n}\n","/**\n * The separator between a range type filter's values\n * e.g. \"price\": \"30-40\".\n */\nexport const DaffCategoryFromToFilterSeparator = '-';\n","import {\n ID,\n DaffLocatable,\n} from '@daffodil/core';\nimport { DaffSortDirectionEnum } from '@daffodil/core/state';\n\nimport { DaffCategory } from './category';\nimport { DaffCategoryFilterRequest } from './filters/public_api';\n\n/**\n * When you request a category page, there's two ways to do so, via URL or via ID.\n */\nexport enum DaffCategoryRequestKind {\n URL = 'URL',\n // eslint-disable-next-line @typescript-eslint/no-shadow\n ID = 'ID'\n}\n\n/**\n * A model of the request sent to the {@link DaffCategoryServiceInterface} to retrieve information\n * about a category.\n */\nexport interface DaffCategoryBaseRequest {\n /**\n * The properties by which to filter the items of the category being requested.\n */\n filter_requests?: DaffCategoryFilterRequest[];\n\n /**\n * The option by which to sort a category's items.\n */\n applied_sort_option?: string;\n\n /**\n * The direction by which to sort the category's items.\n */\n applied_sort_direction?: DaffSortDirectionEnum;\n\n /**\n * What page of the category's items to retrieve.\n */\n current_page?: number;\n\n /**\n * The number of items per-page to request.\n */\n page_size?: number;\n}\n\n/**\n * The request used to retrieve a category and its relevant items.\n */\nexport type DaffCategoryRequest = DaffCategoryIdRequest | DaffCategoryUrlRequest;\n\n/**\n * A request used to retrieve a category by its uid.\n */\nexport interface DaffCategoryIdRequest extends DaffCategoryBaseRequest {\n id: DaffCategory['id'];\n kind: DaffCategoryRequestKind.ID;\n}\n\n/**\n * A request used to retrieve a category by its URL.\n * The qualified URL without domain.\n * e.g. a/path/to/the/category.html\n */\nexport interface DaffCategoryUrlRequest extends DaffCategoryBaseRequest, DaffLocatable {\n kind: DaffCategoryRequestKind.URL;\n};\n","/**\n * The error codes applicable to the filter behaviors of `@daffodil/category`.\n *\n * @docs-private\n */\nexport enum DaffCategoryFilterErrorCodes {\n FILTER_REQUEST_TYPE_MISMATCH = 'DAFF_CATEGORY_FILTER_REQUEST_TYPE_MISMATCH',\n FILTER_REQUEST_NAME_MISMATCH = 'DAFF_CATEGORY_FILTER_REQUEST_NAME_MISMATCH',\n FILTER_NOT_FOUND = 'DAFF_CATEGORY_FILTER_NOT_FOUND',\n UNKNOWN_FILTER_TYPE = 'DAFF_CATEGORY_UNKNOWN_FILTER_TYPE',\n}\n","import { DaffCategoryFilterErrorCodes } from '../filters/errors/codes.enum';\n\n/**\n *\n * The available error codes of the @daffodil/category package.\n *\n * Note that this only contains errors in the root @daffodil/category package, not\n * any of its subpackages e.g. `@daffodil/category/testing`.\n */\nexport const DaffCategoryErrorCodes = {\n ...DaffCategoryFilterErrorCodes,\n};\nexport type DaffCategoryErrorCodes = DaffCategoryFilterErrorCodes;\n","import {\n DaffInheritableError,\n DaffError,\n} from '@daffodil/core';\n\nimport { DaffCategoryErrorCodes } from '../../errors/codes.enum';\n\n/**\n * An error thrown when a lookup for a filter.\n */\nexport class DaffCategoryFilterNotFound extends DaffInheritableError implements DaffError {\n public readonly code: string = DaffCategoryErrorCodes.FILTER_NOT_FOUND;\n\n constructor(message?: string) {\n\t super(message);\n }\n}\n","import {\n DaffInheritableError,\n DaffError,\n} from '@daffodil/core';\n\nimport { DaffCategoryErrorCodes } from '../../errors/codes.enum';\n\n/**\n * An error thrown when an operation targeting a filter matching one name\n * matches a filter of another name.\n */\nexport class DaffCategoryFilterRequestNameMismatch extends DaffInheritableError implements DaffError {\n public readonly code: string = DaffCategoryErrorCodes.FILTER_REQUEST_NAME_MISMATCH;\n\n constructor(message?: string) {\n\t super(message);\n }\n}\n","import {\n DaffInheritableError,\n DaffError,\n} from '@daffodil/core';\n\nimport { DaffCategoryErrorCodes } from '../../errors/codes.enum';\n\n/**\n * An error thrown when an operation targeting a filter matching one type\n * matches a filter of another type.\n */\nexport class DaffCategoryFilterRequestTypeMismatch extends DaffInheritableError implements DaffError {\n public readonly code: string = DaffCategoryErrorCodes.FILTER_REQUEST_TYPE_MISMATCH;\n\n constructor(message?: string) {\n\t super(message);\n }\n}\n","import {\n DaffInheritableError,\n DaffError,\n} from '@daffodil/core';\n\nimport { DaffCategoryErrorCodes } from '../../errors/codes.enum';\n\n/**\n * An error thrown when an operation targeting a filter matches a type unknown\n * to Daffodil.\n */\nexport class DaffCategoryUnknownFilterType extends DaffInheritableError implements DaffError {\n public readonly code: string = DaffCategoryErrorCodes.UNKNOWN_FILTER_TYPE;\n\n constructor(message?: string) {\n\t super(message);\n }\n}\n","import { DaffCategoryFilterErrorCodes } from './codes.enum';\nimport { DaffCategoryFilterNotFound } from './filter-not-found.error';\nimport { DaffCategoryFilterRequestNameMismatch } from './request-name-mismatch.error';\nimport { DaffCategoryFilterRequestTypeMismatch } from './request-type-mismatch.error';\nimport { DaffCategoryUnknownFilterType } from './unknown-filter-type.error';\n\n/**\n * A mapping from error codes to error class constructors.\n */\nexport const DaffCategoryFiltersErrorMap = {\n [DaffCategoryFilterErrorCodes.FILTER_REQUEST_TYPE_MISMATCH]: DaffCategoryFilterRequestTypeMismatch,\n [DaffCategoryFilterErrorCodes.FILTER_REQUEST_NAME_MISMATCH]: DaffCategoryFilterRequestNameMismatch,\n [DaffCategoryFilterErrorCodes.FILTER_NOT_FOUND]: DaffCategoryFilterNotFound,\n [DaffCategoryFilterErrorCodes.UNKNOWN_FILTER_TYPE]: DaffCategoryUnknownFilterType,\n};\n","import { DaffCategoryFiltersErrorMap } from '../filters/errors/map';\n/**\n * A mapping from error codes to error class constructors.\n */\nexport const DaffCategoryErrorMap: typeof DaffCategoryFiltersErrorMap = {\n ...DaffCategoryFiltersErrorMap,\n};\n","import { InjectionToken } from '@angular/core';\n\nimport { daffTransformErrorToStateError } from '@daffodil/core/state';\n\n/**\n * Transforms `DaffError`s into `DaffStateError`s before they are serialized into state.\n * Can be used to further refine Daffodil errors into more specific app errors.\n */\nexport const DAFF_CATEGORY_ERROR_MATCHER = new InjectionToken<typeof daffTransformErrorToStateError>(\n 'DAFF_CATEGORY_ERROR_MATCHER',\n { factory: () => daffTransformErrorToStateError },\n);\n","import {\n DaffCategoryFilterEqual,\n DaffCategoryFilterEqualRequest,\n} from '../../../../../models/public_api';\n\n/**\n * Applies a {@link DaffCategoryFilterEqualRequest} to a {@link DaffCategoryFilterEqual}\n *\n * @idempotent {filter}\n * @docs-private\n */\nexport const daffApplyFilterEqual = (\n request: DaffCategoryFilterEqualRequest,\n filter: DaffCategoryFilterEqual,\n): DaffCategoryFilterEqual => ({\n ...filter,\n options: request.value.reduce((acc, value) => {\n const option = filter.options[value];\n\n if (option) {\n acc[value] = {\n ...option,\n applied: true,\n };\n }\n\n return acc;\n }, { ...filter.options }),\n});\n","import { DaffCategoryFromToFilterSeparator } from '../../../models/public_api';\n\nexport const daffCategoryComputeFilterRangePairLabel = (min, max): string =>\n `${min}${DaffCategoryFromToFilterSeparator}${max}`;\n","import {\n DaffCategoryFilterRangeRequestBase,\n DaffCategoryFilterRangeBase,\n} from '../../../../../models/public_api';\nimport { daffCategoryComputeFilterRangePairLabel } from '../../compute-pair-label';\n\n/**\n * Applies a {@link DaffCategoryFilterRangeRequestBase} to a {@link DaffCategoryFilterRangeBase}\n *\n * @idempotent {filter}\n * @docs-private\n */\nexport const daffApplyFilterRange = <T, U extends DaffCategoryFilterRangeRequestBase<T>, V extends DaffCategoryFilterRangeBase<T>>(\n request: U,\n filter: V,\n): V => ({\n ...filter,\n options: {\n [daffCategoryComputeFilterRangePairLabel(request.value.min, request.value.max)]: {\n min: {\n value: request.value.min,\n label: String(request.value.min),\n },\n max: {\n value: request.value.max,\n label: String(request.value.max),\n },\n applied: true,\n },\n },\n});\n","import {\n DaffCategoryFilterRequest,\n DaffCategoryFilter,\n DaffCategoryFilterToggleRequest,\n} from '../../models/public_api';\nimport { DaffCategoryFilterNotFound } from '../errors/filter-not-found.error';\nimport { DaffCategoryFilterRequestNameMismatch } from '../errors/request-name-mismatch.error';\n\n/**\n * Ensures that the names of the filter and the filter request match.\n *\n * @throws {@link DaffCategoryFilterNotFound} if the names do not match.\n */\nexport const daffCategoryValidateFilterRequestNameMatch = (\n request: DaffCategoryFilterRequest | DaffCategoryFilterToggleRequest,\n filter: DaffCategoryFilter,\n): void => {\n if (!filter) {\n throw new DaffCategoryFilterNotFound('Filter does not exist');\n }\n if (request.name !== filter.name) {\n throw new DaffCategoryFilterRequestNameMismatch('Filter name does not match request name');\n }\n};\n","import {\n DaffCategoryFilterRequest,\n DaffCategoryFilter,\n DaffCategoryFilterToggleRequest,\n} from '../../models/public_api';\nimport { DaffCategoryFilterRequestTypeMismatch } from '../errors/request-type-mismatch.error';\n\n/**\n * Ensures that the types of the filter and the filter request match.\n *\n * @throws {@link DaffCategoryFilterRequestTypeMismatch} if the types do not match.\n */\nexport const daffCategoryValidateFilterRequestTypeMatch = (\n request: DaffCategoryFilterRequest | DaffCategoryFilterToggleRequest,\n filter: DaffCategoryFilter,\n): void => {\n if (request.type !== filter.type) {\n throw new DaffCategoryFilterRequestTypeMismatch('Filter types don\\'t match');\n }\n};\n","import {\n DaffCategoryFilterRequest,\n DaffCategoryFilter,\n DaffCategoryFilterType,\n DaffCategoryFilterEqual,\n DaffCategoryFilterRangeNumeric,\n} from '../../../models/public_api';\nimport { DaffCategoryUnknownFilterType } from '../../errors/unknown-filter-type.error';\nimport { daffApplyFilterEqual } from '../../type/equal/behaviors/apply/apply';\nimport { daffApplyFilterRange } from '../../type/range/behaviors/apply/apply';\nimport {\n daffCategoryValidateFilterRequestNameMatch,\n daffCategoryValidateFilterRequestTypeMatch,\n} from '../../validators/public_api';\n\n/**\n * Applies a filter request to the matching filter.\n *\n * @idempotent {filter}\n * @throws {@link DaffCategoryUnknownFilterType}\n */\nexport const daffApplyFilter = (request: DaffCategoryFilterRequest, filter: DaffCategoryFilter): DaffCategoryFilter => {\n daffCategoryValidateFilterRequestNameMatch(request, filter);\n daffCategoryValidateFilterRequestTypeMatch(request, filter);\n\n switch (request.type) {\n case DaffCategoryFilterType.Equal:\n return daffApplyFilterEqual(request, <DaffCategoryFilterEqual>filter);\n case(DaffCategoryFilterType.RangeNumeric):\n return daffApplyFilterRange(request, <DaffCategoryFilterRangeNumeric>filter);\n default:\n throw new DaffCategoryUnknownFilterType('Unknown filter type');\n }\n};\n","import { Dict } from '@daffodil/core';\n\nimport {\n DaffCategoryFilterRequest,\n DaffCategoryFilter,\n} from '../../../models/public_api';\nimport { daffApplyFilter } from './apply-filter';\n\n/**\n * Applies a {@link DaffCategoryFilterRequest} to a {@link Dict} of {@link DaffCategoryFilter}\n * returning the updated {@link Dict}.\n *\n * @idempotent {filters}\n */\nexport const daffApplyRequestToFilters = (request: DaffCategoryFilterRequest, filters: Dict<DaffCategoryFilter>): Dict<DaffCategoryFilter> => ({\n ...filters,\n [request.name]: daffApplyFilter(request, filters[request.name]),\n});\n\n\n","import { Dict } from '@daffodil/core';\n\nimport {\n DaffCategoryFilterRequest,\n DaffCategoryFilter,\n} from '../../../models/public_api';\nimport { daffApplyFilter } from './apply-filter';\n\n/**\n * Applies filters from a {@link DaffCategoryFilterRequest} to a {@link Dict}\n * of {@link DaffCategoryFilter}.\n *\n * @idempotent {filters}\n */\nexport const daffApplyRequestsToFilters = (\n filtersRequests: DaffCategoryFilterRequest[],\n filters: Dict<DaffCategoryFilter>,\n): Dict<DaffCategoryFilter> =>\n filtersRequests.reduce((acc, request) => {\n acc[request.name] = daffApplyFilter(request, filters[request.name]);\n return acc;\n }, { ...filters });\n\n\n","import { DaffCategoryFilterEqual } from '../../../../../models/public_api';\n\n/**\n * Unapplies the applied filter options of a {@link DaffCategoryFilterEqual}\n *\n * @idempotent {filter}\n * @docs-private\n */\nexport const daffClearFilterEqual = (filter: DaffCategoryFilterEqual): DaffCategoryFilterEqual => ({\n ...filter,\n options: Object.keys(filter.options).map((key) => filter.options[key]).reduce((acc, option) => {\n acc[option.value] = {\n ...option,\n applied: false,\n };\n return acc;\n }, { ...filter.options }),\n});\n","import { DaffCategoryFilterRangeBase } from '../../../../../models/public_api';\n\n/**\n * Unapplies the applied filter options of a {@link DaffCategoryFilterRangeBase}\n *\n * @idempotent {filter}\n * @docs-private\n */\nexport const daffClearFilterRange = <T, U extends DaffCategoryFilterRangeBase<T>>(filter: U): U => ({\n ...filter,\n options: {},\n});\n","import {\n DaffCategoryFilterType,\n DaffCategoryFilter,\n} from '../../../models/public_api';\nimport { DaffCategoryUnknownFilterType } from '../../errors/unknown-filter-type.error';\nimport { daffClearFilterEqual } from '../../type/equal/behaviors/clear/clear';\nimport { daffClearFilterRange } from '../../type/range/behaviors/clear/clear';\n\n/**\n * Undoes the applied state of all applied filter options of a {@link DaffCategoryFilter}\n * returning the filter.\n *\n * @idempotent {filter}\n */\nexport const daffClearFilter = (filter: DaffCategoryFilter): DaffCategoryFilter => {\n switch (filter.type) {\n case DaffCategoryFilterType.RangeNumeric:\n return daffClearFilterRange(filter);\n case DaffCategoryFilterType.Equal:\n return daffClearFilterEqual(filter);\n default:\n throw new DaffCategoryUnknownFilterType('Unknown filter type');\n }\n};\n","import { Dict } from '@daffodil/core';\n\nimport { DaffCategoryFilter } from '../../../models/public_api';\nimport { daffClearFilter } from './clear-filter';\n\n/**\n * Undoes the applied state of all applied filter options of a {@link Dict} of {@link DaffCategoryFilter}\n * returning updated {@link Dict}.\n *\n * @idempotent {filters}\n */\nexport const daffClearFilters = (filters: Dict<DaffCategoryFilter>): Dict<DaffCategoryFilter> =>\n Object.keys(filters).map((key) => filters[key]).reduce((acc, filter) => {\n acc[filter.name] = daffClearFilter(filter);\n return acc;\n }, {});\n","import {\n DaffCategoryFilterEqualRequest,\n DaffCategoryFilter,\n DaffCategoryFilterEqual,\n} from '../../../../../models/public_api';\n\n/**\n * Removes the matching filter options of a {@link DaffCategoryFilterEqual}\n * that match the {@link DaffCategoryFilterEqualRequest}\n *\n * If there are no matching options, returns the original {@link DaffCategoryFilterEqual}\n *\n * @idempotent {filter}\n * @docs-private\n */\nexport const daffRemoveFilterEqual = (\n request: DaffCategoryFilterEqualRequest,\n filter: DaffCategoryFilterEqual,\n): DaffCategoryFilter => ({\n ...filter,\n options: request.value.reduce((acc, value) => {\n const option = filter.options[value];\n\n if (option) {\n acc[value] = {\n ...option,\n applied: false,\n };\n }\n\n return acc;\n }, { ...filter.options }),\n});\n","import {\n DaffCategoryFilterRangeRequestBase,\n DaffCategoryFilterRangeBase,\n} from '../../../../../models/public_api';\nimport { daffCategoryComputeFilterRangePairLabel } from '../../compute-pair-label';\n\n/**\n * Removes the matching filter options of a {@link DaffCategoryFilterRangeBase}\n * that match the {@link DaffCategoryFilterRangeRequestBase}\n *\n * If there are no matching options, returns the original {@link DaffCategoryFilterRangeBase}\n *\n * @idempotent {filter}\n * @docs-private\n */\nexport const daffRemoveFilterRange = <T, U extends DaffCategoryFilterRangeBase<T>>(\n request: DaffCategoryFilterRangeRequestBase<T>,\n filter: U,\n): U =>\n filter.options[daffCategoryComputeFilterRangePairLabel(request.value.min, request.value.max)]\n ? ({\n ...filter,\n options: {},\n })\n : filter;\n","import {\n DaffCategoryFilterRequest,\n DaffCategoryFilter,\n DaffCategoryFilterType,\n DaffCategoryFilterEqual,\n DaffCategoryFilterRangeNumeric,\n} from '../../../models/public_api';\nimport { DaffCategoryUnknownFilterType } from '../../errors/unknown-filter-type.error';\nimport { daffRemoveFilterEqual } from '../../type/equal/behaviors/remove/remove';\nimport { daffRemoveFilterRange } from '../../type/range/behaviors/remove/remove';\nimport {\n daffCategoryValidateFilterRequestNameMatch,\n daffCategoryValidateFilterRequestTypeMatch,\n} from '../../validators/public_api';\n\n/**\n * Undoes any applied options of a {@link DaffCategoryFilter} that match the\n * {@link DaffCategoryFilterRequest}, returning the {@link DaffCategoryFilter}.\n *\n * @idempotent {filter}\n * @pure\n */\nexport const daffRemoveFilter = (request: DaffCategoryFilterRequest, filter: DaffCategoryFilter): DaffCategoryFilter => {\n daffCategoryValidateFilterRequestNameMatch(request, filter);\n daffCategoryValidateFilterRequestTypeMatch(request, filter);\n\n switch (request.type) {\n case DaffCategoryFilterType.Equal:\n return daffRemoveFilterEqual(request, <DaffCategoryFilterEqual>filter);\n case (DaffCategoryFilterType.RangeNumeric):\n return daffRemoveFilterRange(request, <DaffCategoryFilterRangeNumeric>filter);\n default:\n throw new DaffCategoryUnknownFilterType('Unknown filter type');\n }\n};\n","import { Dict } from '@daffodil/core';\n\nimport {\n DaffCategoryFilterRequest,\n DaffCategoryFilter,\n} from '../../../models/public_api';\nimport { daffRemoveFilter } from './remove-filter';\n\n/**\n * Undoes any applied options of a particular filter of a {@link Dict} of {@link DaffCategoryFilter}\n * that match the {@link DaffCategoryFilterRequest}, returning the {@link Dict} of {@link DaffCategoryFilter}.\n *\n * @idempotent {filters}\n */\nexport const daffRemoveRequestFromFilters = (\n request: DaffCategoryFilterRequest,\n filters: Dict<DaffCategoryFilter>,\n): Dict<DaffCategoryFilter> => ({\n ...filters,\n [request.name]: daffRemoveFilter(request, filters[request.name]),\n});\n","import { Dict } from '@daffodil/core';\n\nimport {\n DaffCategoryFilterRequest,\n DaffCategoryFilter,\n} from '../../../models/public_api';\nimport { daffRemoveFilter } from './remove-filter';\n\n/**\n * Undoes all applied options of a {@link Dict} of {@link DaffCategoryFilter}\n * that match any of the {@link DaffCategoryFilterRequest},\n * returning the updated {@link Dict} of {@link DaffCategoryFilter}.\n *\n * @idempotent {filters}\n */\nexport const daffRemoveRequestsFromFilters = (\n requests: (DaffCategoryFilterRequest)[],\n filters: Dict<DaffCategoryFilter>,\n): Dict<DaffCategoryFilter> =>\n requests.reduce((acc, request) => {\n acc[request.name] = daffRemoveFilter(request, filters[request.name]);\n return acc;\n }, { ...filters });\n","import { DaffCategoryFilterEqual } from '../../../../../models/public_api';\nimport { DaffCategoryFilterEqualToggleRequest } from '../../../../../models/public_api';\n\n/**\n * Oscillates the applied state of the matching filter options of a {@link DaffCategoryFilterEqual}\n * that match the {@link DaffCategoryFilterEqualRequest}\n *\n * If there are no matching options, returns the original {@link DaffCategoryFilterEqual}\n *\n * @docs-private\n */\nexport const daffToggleFilterEqual = (\n request: DaffCategoryFilterEqualToggleRequest,\n filter: DaffCategoryFilterEqual,\n): DaffCategoryFilterEqual => {\n const option = filter.options[request.value];\n\n return option\n ? {\n ...filter,\n options: {\n ...filter.options,\n [option.value]: {\n ...option,\n applied: !option.applied,\n },\n },\n }\n : filter;\n};\n","import {\n DaffCategoryFilterRangeBase,\n DaffCategoryFilterRangeRequestBase,\n} from '../../../../../models/public_api';\nimport { daffCategoryComputeFilterRangePairLabel } from '../../compute-pair-label';\nimport { daffApplyFilterRange } from '../apply/apply';\nimport { daffRemoveFilterRange } from '../remove/remove';\n\n/**\n * Oscillates the applied state of the matching filter options of a {@link DaffCategoryFilterRangeBase}\n * that match the {@link DaffCategoryFilterRangeRequestBase}\n *\n * If there are no matching options, returns the original {@link DaffCategoryFilterRangeBase}\n *\n * @docs-private\n */\nexport const daffToggleFilterRange = <T, U extends DaffCategoryFilterRangeBase<T>>(\n request: DaffCategoryFilterRangeRequestBase<T>,\n filter: U,\n): U =>\n filter.options[daffCategoryComputeFilterRangePairLabel(request.value.min, request.value.max)]\n ? daffRemoveFilterRange(request, filter)\n : daffApplyFilterRange(request, filter);\n","import {\n DaffCategoryFilterToggleRequest,\n DaffCategoryFilter,\n DaffCategoryFilterType,\n DaffCategoryFilterEqual,\n DaffCategoryFilterRangeNumeric,\n} from '../../../models/public_api';\nimport { DaffCategoryUnknownFilterType } from '../../errors/unknown-filter-type.error';\nimport { daffToggleFilterEqual } from '../../type/equal/behaviors/toggle/toggle';\nimport { daffToggleFilterRange } from '../../type/range/behaviors/toggle/toggle';\nimport {\n daffCategoryValidateFilterRequestNameMatch,\n daffCategoryValidateFilterRequestTypeMatch,\n} from '../../validators/public_api';\n\n/**\n * Toggles the state of the filters (and their options) in the {@link DaffCategoryFilter}\n * that match the {@link DaffCategoryFilterToggleRequest} .\n */\nexport function daffToggleFilter(\n request: DaffCategoryFilterToggleRequest,\n filter: DaffCategoryFilter,\n): DaffCategoryFilter {\n daffCategoryValidateFilterRequestNameMatch(request, filter);\n daffCategoryValidateFilterRequestTypeMatch(request, filter);\n\n switch (request.type) {\n case DaffCategoryFilterType.Equal:\n return daffToggleFilterEqual(request, <DaffCategoryFilterEqual>filter);\n case(DaffCategoryFilterType.RangeNumeric):\n return daffToggleFilterRange(request, <DaffCategoryFilterRangeNumeric>filter);\n default:\n throw new DaffCategoryUnknownFilterType('Unknown filter type');\n }\n}\n","import { Dict } from '@daffodil/core';\n\nimport {\n DaffCategoryFilter,\n DaffCategoryFilterToggleRequest,\n} from '../../../models/public_api';\nimport { daffToggleFilter } from './toggle';\n\n/**\n * Toggles the state of a filter option in the {@link Dict<DaffCategoryFilter>}\n * that matches the {@link DaffCategoryFilterToggleRequest}.\n */\nexport const daffToggleRequestOnFilters = (\n request: DaffCategoryFilterToggleRequest,\n filters: Dict<DaffCategoryFilter>): Dict<DaffCategoryFilter> => ({\n ...filters,\n [request.name]: daffToggleFilter(request, filters[request.name]),\n});\n\n\n","import { DaffCategoryFilterEqual } from '../../../../models/public_api';\n\n/**\n * Determines whether or not the {@link DaffCategoryFilterEqual} has any applied options.\n */\nexport const daffIsFilterEqualApplied = (filter: DaffCategoryFilterEqual): boolean =>\n Object.keys(filter.options).map((key) => filter.options[key]).findIndex(option => option.applied) > -1;\n","import { DaffCategoryFilterRangeBase } from '../../../../models/public_api';\n\n/**\n * Determines whether or not a {@link DaffCategoryFilterRangeBase} has any applied options.\n */\nexport const daffIsFilterRangeApplied = <T>(filter: DaffCategoryFilterRangeBase<T>): boolean =>\n Object.keys(filter.options).length > 0;\n","import {\n DaffCategoryFilterType,\n DaffCategoryFilter,\n} from '../../models/public_api';\nimport { DaffCategoryUnknownFilterType } from '../errors/unknown-filter-type.error';\nimport { daffIsFilterEqualApplied } from '../type/equal/is-applied/is-applied';\nimport { daffIsFilterRangeApplied } from '../type/range/is-applied/is-applied';\n\n/**\n * Determines whether or not a filter has any currently applied options.\n */\nexport const daffIsFilterApplied = (filter: DaffCategoryFilter): boolean => {\n switch (filter.type) {\n case DaffCategoryFilterType.RangeNumeric:\n return daffIsFilterRangeApplied(filter);\n case DaffCategoryFilterType.Equal:\n return daffIsFilterEqualApplied(filter);\n default:\n throw new DaffCategoryUnknownFilterType('Unknown filter type');\n }\n};\n","import {\n DaffCategoryFilterEqualToggleRequest,\n DaffCategoryFilterEqual,\n} from '../../../../models/public_api';\n\n/**\n * Determines whether or not any {@link DaffCategoryFilterEqual} options matching {@link DaffCategoryFilterEqualToggleRequest} are applied.\n */\nexport const daffIsEqualToggleRequestAppliedToFilter = (\n request: DaffCategoryFilterEqualToggleRequest,\n filter: DaffCategoryFilterEqual,\n): boolean => !!filter.options[request.value]?.applied;\n","import {\n DaffCategoryFilterRangeRequestBase,\n DaffCategoryFilterRangeBase,\n} from '../../../../models/public_api';\nimport { daffCategoryComputeFilterRangePairLabel } from '../compute-pair-label';\n\n/**\n * Determines whether or not any {@link DaffCategoryFilterRangeBase} options matching {@link DaffCategoryFilterRangeRequestBase} are applied.\n */\nexport const daffIsRangeToggleRequestAppliedToFilter = <T>(\n request: DaffCategoryFilterRangeRequestBase<T>,\n filter: DaffCategoryFilterRangeBase<T>,\n): boolean =>\n daffCategoryComputeFilterRangePairLabel(request.value.min, request.value.max) in filter.options;\n","import {\n DaffCategoryFilter,\n DaffCategoryFilterToggleRequest,\n DaffCategoryFilterType,\n DaffCategoryFilterRangeNumericToggleRequest,\n DaffCategoryFilterEqualToggleRequest,\n} from '../../models/public_api';\nimport { DaffCategoryUnknownFilterType } from '../errors/unknown-filter-type.error';\nimport { daffIsEqualToggleRequestAppliedToFilter } from '../type/equal/is-applied/is-toggle-request-applied-to-filter';\nimport { daffIsRangeToggleRequestAppliedToFilter } from '../type/range/is-applied/is-toggle-request-applied-to-filter';\n\n/**\n * Determines whether or not a {@link DaffCategoryFilterToggleRequest} is already applied to a {@link DaffCategoryFilter}.\n */\nexport const daffIsToggleRequestAppliedToFilter = (request: DaffCategoryFilterToggleRequest, filter: DaffCategoryFilter): boolean => {\n switch (filter.type) {\n case DaffCategoryFilterType.RangeNumeric:\n return daffIsRangeToggleRequestAppliedToFilter(<DaffCategoryFilterRangeNumericToggleRequest>request, filter);\n case DaffCategoryFilterType.Equal:\n return daffIsEqualToggleRequestAppliedToFilter(<DaffCategoryFilterEqualToggleRequest>request, filter);\n default:\n throw new DaffCategoryUnknownFilterType('Unknown filter type');\n }\n};\n","import { DaffCategoryFilterBase } from '../../models/public_api';\n\n/**\n * Finds the applied options in the filter.\n */\nexport const daffCategoryFindAppliedFilterOptions = <T extends DaffCategoryFilterBase>(filter: T): T['options'][string][] =>\n Object.keys(filter.options).map((key) => <T['options'][string]>filter.options[key]).filter((option) => option.applied);\n","import {\n DaffCategoryFilterEqual,\n DaffCategoryFilterEqualRequest,\n DaffCategoryFilterType,\n} from '../../../../models/public_api';\nimport { daffCategoryFindAppliedFilterOptions } from '../../../find-applied/public_api';\n\n/**\n * Builds an {@link DaffCategoryFilterEqualRequest} from the passed filter and options.\n */\nexport const daffCategoryFilterEqualToRequest = (\n filter: DaffCategoryFilterEqual,\n): DaffCategoryFilterEqualRequest | null => {\n const options = daffCategoryFindAppliedFilterOptions(filter);\n if(!options.length){\n return null;\n }\n\n return {\n type: DaffCategoryFilterType.Equal,\n name: filter.name,\n value: options.map(option => option.value),\n };\n};\n","import {\n DaffCategoryFilterRangeBase,\n DaffCategoryFilterRangeRequestBase,\n} from '../../../../models/public_api';\nimport { daffCategoryFindAppliedFilterOptions } from '../../../find-applied/public_api';\n\n/**\n * Builds a {@link DaffCategoryFilterRangeRequestBase} from the passed {@link DaffCategoryFilterRangeBase} and options.\n */\nexport const daffCategoryFilterRangeToRequest = <T, U extends DaffCategoryFilterRangeBase<T>>(\n filter: U,\n): DaffCategoryFilterRangeRequestBase<T> => {\n const options = daffCategoryFindAppliedFilterOptions(filter);\n if(!options.length){\n return null;\n }\n\n return {\n type: filter.type,\n name: filter.name,\n value: {\n min: options[0].min.value,\n max: options[0].max.value,\n },\n };\n};\n","import {\n DaffCategoryFilterRangeNumeric,\n DaffCategoryFilterRangeNumericRequest,\n} from '../../../../models/public_api';\nimport { daffCategoryFilterRangeToRequest } from '../../range/to-request/filter-to-request';\n\n/**\n * Transforms a {@link DaffCategoryFilterRangeNumeric} into a {@link DaffCategoryFilterRangeNumericRequest}\n */\nexport const daffCategoryFilterRangeNumericToRequest = (\n filter: DaffCategoryFilterRangeNumeric,\n): DaffCategoryFilterRangeNumericRequest => <DaffCategoryFilterRangeNumericRequest>daffCategoryFilterRangeToRequest(filter);\n","import {\n DaffCategoryFilter,\n DaffCategoryFilterRequest,\n DaffCategoryFilterType,\n} from '../../models/public_api';\nimport { DaffCategoryUnknownFilterType } from '../errors/unknown-filter-type.error';\nimport { daffCategoryFilterEqualToRequest } from '../type/equal/to-request/filter-to-request';\nimport { daffCategoryFilterRangeNumericToRequest } from '../type/range-numeric/to-request/filter-to-request';\n\n/**\n * Builds a category filter request from a category filter.\n * Returns null if the category filter does not have at least one applied option.\n */\nexport function daffCategoryFilterToRequest(filter: DaffCategoryFilter): DaffCategoryFilterRequest | null {\n switch (filter.type) {\n case DaffCategoryFilterType.RangeNumeric:\n return daffCategoryFilterRangeNumericToRequest(filter);\n case DaffCategoryFilterType.Equal:\n return daffCategoryFilterEqualToRequest(filter);\n default:\n throw new DaffCategoryUnknownFilterType('Unknown filter type');\n }\n};\n","import { Dict } from '@daffodil/core';\n\nimport {\n DaffCategoryFilter,\n DaffCategoryFilterRequest,\n} from '../../models/public_api';\nimport { daffCategoryFilterToRequest } from './filter-to-request';\n\n/**\n * Builds a list of filter requests from a list of filters.\n * Requests are only built for the filters that have at least one applied option.\n */\nexport function daffCategoryFiltersToRequests(filters: Dict<DaffCategoryFilter>): DaffCategoryFilterRequest[] {\n return Object.keys(filters).map((key) => filters[key]).reduce((acc: DaffCategoryFilterRequest[], filter) => {\n const request = daffCategoryFilterToRequest(filter);\n\n if (request) {\n acc.push(request);\n }\n\n return acc;\n }, []);\n}\n","import {\n Dict,\n daffArrayToDict,\n} from '@daffodil/core';\n\nimport { DaffCategoryFilterRangePair } from '../../../../models/public_api';\nimport { daffCategoryComputeFilterRangePairLabel } from '../compute-pair-label';\n\n/**\n * Transforms an {@link DaffCategoryFilterRangePair[]} to a {@link Dict<DaffCategoryFilterRangePair>}.\n */\nexport const daffCategoryFilterRangePairArrayToDict = <T>(pairs: DaffCategoryFilterRangePair<T>[]): Dict<DaffCategoryFilterRangePair<T>> =>\n daffArrayToDict(pairs, pair => daffCategoryComputeFilterRangePairLabel(pair.min.value, pair.max.value));\n","import {\n Dict,\n daffArrayToDict,\n} from '@daffodil/core';\n\nimport { DaffCategoryFilterEqualOption } from '../../../../models/public_api';\n\n/**\n * Converts a list of category equal filter options to a dict of options keyed by option value.\n */\nexport const daffCategoryFilterEqualOptionArrayToDict =\n (options: DaffCategoryFilterEqualOption[]): Dict<DaffCategoryFilterEqualOption> =>\n daffArrayToDict(options, option => option.value);\n","import {\n Dict,\n daffArrayToDict,\n} from '@daffodil/core';\n\nimport { DaffCategoryFilter } from '../../models/public_api';\n\n/**\n * Converts a list of category filters into a {@link Dict} of filters keyed by filter name.\n */\nexport const daffCategoryFilterArrayToDict = (filters: DaffCategoryFilter[]): Dict<DaffCategoryFilter> =>\n daffArrayToDict(filters, filter => filter.name);\n","import { Dict } from '@daffodil/core';\n\nimport {\n DaffCategoryFilter,\n DaffCategoryFilterType,\n DaffCategoryFilterEqualOption,\n DaffCategoryFilterRangePair,\n} from '../../models/public_api';\nimport { daffCategoryFindAppliedFilterOptions } from '../find-applied/public_api';\nimport { daffCategoryFilterEqualOptionArrayToDict } from '../type/equal/public_api';\nimport { daffCategoryFilterRangePairArrayToDict } from '../type/range/public_api';\n\n/**\n * Returns a {@link Dict<DaffCategoryFilter>} and only their applied options.\n * {@link DaffCategoryFilter} that have no applied options will be omitted.\n */\nexport const daffCategoryComputeAppliedFilters = (filters: Dict<DaffCategoryFilter>): Dict<DaffCategoryFilter> =>\n Object.keys(filters).map(key => filters[key]).reduce((acc, filter) => {\n const appliedOptions = daffCategoryFindAppliedFilterOptions(filter);\n\n if (appliedOptions.length > 0) {\n acc[filter.name] = {\n ...filter,\n options: filter.type === DaffCategoryFilterType.Equal\n ? daffCategoryFilterEqualOptionArrayToDict(<DaffCategoryFilterEqualOption[]>appliedOptions)\n : daffCategoryFilterRangePairArrayToDict(<DaffCategoryFilterRangePair<unknown>[]>appliedOptions),\n };\n }\n\n return acc;\n }, {});\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"daffodil-category-driver-magento-testing.mjs","sources":["../../../libs/category/driver/magento/testing/src/factories/aggregation/type/price.factory.ts","../../../libs/category/driver/magento/testing/src/factories/aggregation/type/select.factory.ts","../../../libs/category/driver/magento/testing/src/factories/aggregation/aggregation.factory.ts","../../../libs/category/driver/magento/testing/src/factories/category.factory.ts","../../../libs/category/driver/magento/testing/src/factories/filter-type-field.factory.ts","../../../libs/category/driver/magento/testing/src/factories/page-info.factory.ts","../../../libs/category/driver/magento/testing/src/factories/sort-fields.factory.ts","../../../libs/category/driver/magento/testing/src/daffodil-category-driver-magento-testing.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport * as faker from '@faker-js/faker/locale/en_US';\n\nimport {\n MagentoAggregation,\n MagentoCategoryFilterType,\n} from '@daffodil/category/driver/magento';\nimport { DaffModelFactory } from '@daffodil/core/testing';\n\nclass MockMagentoAggregationPrice implements MagentoAggregation {\n attribute_code = 'price';\n\ttype = MagentoCategoryFilterType.Range;\n\tcount = faker.datatype.number();\n\tlabel = 'Price';\n\toptions = [\n\t {\n\t value: '0-10',\n\t count: faker.datatype.number(),\n\t label: '0-10',\n\t },\n\t {\n\t value: '10-20',\n\t count: faker.datatype.number(),\n\t label: '10-20',\n\t },\n\t {\n\t value: '20-30',\n\t count: faker.datatype.number(),\n\t label: '20-30',\n\t },\n\t {\n\t value: '30-40',\n\t count: faker.datatype.number(),\n\t label: '30-40',\n\t },\n\t];\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffCategoryDriverMagentoAggregationPriceFactory extends DaffModelFactory<MagentoAggregation> {\n constructor(){\n super(MockMagentoAggregationPrice);\n }\n}\n","import { Injectable } from '@angular/core';\nimport * as faker from '@faker-js/faker/locale/en_US';\n\nimport {\n MagentoAggregation,\n MagentoCategoryFilterType,\n} from '@daffodil/category/driver/magento';\nimport { DaffModelFactory } from '@daffodil/core/testing';\n\nclass MockMagentoAggregationSelect implements MagentoAggregation {\n attribute_code = 'select';\n\ttype = MagentoCategoryFilterType.Equal;\n\tcount = faker.datatype.number();\n\tlabel = faker.random.word();\n\toptions = [\n\t {\n\t count: faker.datatype.number(),\n\t label: faker.random.word(),\n\t value: faker.datatype.uuid(),\n\t },\n\t {\n\t count: faker.datatype.number(),\n\t label: faker.random.word(),\n\t value: faker.datatype.uuid(),\n\t },\n\t {\n\t count: faker.datatype.number(),\n\t label: faker.random.word(),\n\t value: faker.datatype.uuid(),\n\t },\n\t];\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffCategoryDriverMagentoAggregationSelectFactory extends DaffModelFactory<MagentoAggregation> {\n constructor(){\n super(MockMagentoAggregationSelect);\n }\n}\n","import { Injectable } from '@angular/core';\nimport * as faker from '@faker-js/faker/locale/en_US';\n\nimport { MagentoAggregation } from '@daffodil/category/driver/magento';\nimport { DaffModelFactory } from '@daffodil/core/testing';\n\nimport { DaffCategoryDriverMagentoAggregationPriceFactory } from './type/price.factory';\nimport { DaffCategoryDriverMagentoAggregationSelectFactory } from './type/select.factory';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffCategoryDriverMagentoAggregationFactory extends DaffModelFactory<MagentoAggregation> {\n constructor(private selectFactory: DaffCategoryDriverMagentoAggregationSelectFactory, private priceFactory: DaffCategoryDriverMagentoAggregationPriceFactory){\n super(faker.datatype.number({ min: 1, max: 2 }) === 2 ? selectFactory.type : priceFactory.type);\n }\n}\n","import { Injectable } from '@angular/core';\nimport * as faker from '@faker-js/faker/locale/en_US';\n\nimport { MagentoCategory } from '@daffodil/category/driver/magento';\nimport { DaffModelFactory } from '@daffodil/core/testing';\n\nclass MockMagentoCategory implements MagentoCategory {\n __typename = 'CategoryTree';\n uid = faker.random.alphaNumeric(10);\n url_path = faker.random.word();\n url_suffix = '.html';\n canonical_url = faker.internet.url();\n name? = faker.random.word();\n description? = faker.random.words(40);\n breadcrumbs? = [];\n level? = faker.datatype.number(15);\n children_count? = faker.datatype.number(15);\n products? = { items: []};\n children?: MagentoCategory[] = [];\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffCategoryDriverMagentoCategoryFactory extends DaffModelFactory<MagentoCategory> {\n constructor(){\n super(MockMagentoCategory);\n }\n}\n","import { Injectable } from '@angular/core';\nimport * as faker from '@faker-js/faker/locale/en_US';\n\nimport {\n MagentoCategoryFilterTypeField,\n MagentoCategoryFilterType,\n} from '@daffodil/category/driver/magento';\nimport { DaffModelFactory } from '@daffodil/core/testing';\n\nconst TYPES = [\n MagentoCategoryFilterType.Equal,\n MagentoCategoryFilterType.Range,\n MagentoCategoryFilterType.Match,\n];\n\nclass MockMagentoCategoryFilterTypeField implements MagentoCategoryFilterTypeField {\n name = faker.random.word();\n type = {\n name: TYPES[faker.datatype.number({ min: 0, max: TYPES.length - 1 })],\n };\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffCategoryDriverMagentoCategoryFilterTypeFieldFactory extends DaffModelFactory<MagentoCategoryFilterTypeField> {\n constructor(){\n super(MockMagentoCategoryFilterTypeField);\n }\n}\n","import { Injectable } from '@angular/core';\nimport * as faker from '@faker-js/faker/locale/en_US';\n\nimport {\n MagentoCategory,\n MagentoPageInfo,\n} from '@daffodil/category/driver/magento';\nimport { DaffModelFactory } from '@daffodil/core/testing';\n\nclass MockMagentoPageInfo implements MagentoPageInfo {\n current_page = 1;\n page_size = faker.datatype.number(100);\n total_pages = faker.datatype.number(100);\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffCategoryDriverMagentoPageInfoFactory extends DaffModelFactory<MagentoPageInfo> {\n constructor(){\n super(MockMagentoPageInfo);\n }\n}\n","import { Injectable } from '@angular/core';\nimport * as faker from '@faker-js/faker/locale/en_US';\n\nimport { MagentoSortFields } from '@daffodil/category/driver/magento';\nimport { DaffModelFactory } from '@daffodil/core/testing';\n\nclass MockMagentoSortFields implements MagentoSortFields {\n default = 'position';\n options = [\n {\n label: 'string',\n value: 'position',\n },\n ];\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffCategoryDriverMagentoSortFieldsFactory extends DaffModelFactory<MagentoSortFields> {\n constructor(){\n super(MockMagentoSortFields);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DaffCategoryDriverMagentoAggregationSelectFactory","i2.DaffCategoryDriverMagentoAggregationPriceFactory"],"mappings":";;;;;;AASA,MAAM,2BAA2B,CAAA;AAAjC,IAAA,WAAA,GAAA;QACE,IAAc,CAAA,cAAA,GAAG,OAAO,CAAC;AAC1B,QAAA,IAAA,CAAA,IAAI,GAAG,yBAAyB,CAAC,KAAK,CAAC;AACvC,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAChC,IAAK,CAAA,KAAA,GAAG,OAAO,CAAC;AAChB,QAAA,IAAA,CAAA,OAAO,GAAG;AACR,YAAA;AACE,gBAAA,KAAK,EAAE,MAAM;AACb,gBAAA,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC9B,gBAAA,KAAK,EAAE,MAAM;AACd,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,OAAO;AACd,gBAAA,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC9B,gBAAA,KAAK,EAAE,OAAO;AACf,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,OAAO;AACd,gBAAA,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC9B,gBAAA,KAAK,EAAE,OAAO;AACf,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,OAAO;AACd,gBAAA,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC9B,gBAAA,KAAK,EAAE,OAAO;AACf,aAAA;SACF,CAAC;KACF;AAAA,CAAA;AAKK,MAAO,gDAAiD,SAAQ,gBAAoC,CAAA;AACxG,IAAA,WAAA,GAAA;QACE,KAAK,CAAC,2BAA2B,CAAC,CAAC;KACpC;;mLAHU,gDAAgD,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhD,sCAAA,gDAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gDAAgD,cAF/C,MAAM,EAAA,CAAA,CAAA;2FAEP,gDAAgD,EAAA,UAAA,EAAA,CAAA;kBAH5D,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;AC/BD,MAAM,4BAA4B,CAAA;AAAlC,IAAA,WAAA,GAAA;QACE,IAAc,CAAA,cAAA,GAAG,QAAQ,CAAC;AAC3B,QAAA,IAAA,CAAA,IAAI,GAAG,yBAAyB,CAAC,KAAK,CAAC;AACvC,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;AAChC,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAC5B,QAAA,IAAA,CAAA,OAAO,GAAI;AACT,YAAA;AACE,gBAAA,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC9B,gBAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;AAC1B,gBAAA,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC7B,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC9B,gBAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;AAC1B,gBAAA,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC7B,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC9B,gBAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;AAC1B,gBAAA,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC7B,aAAA;SACF,CAAC;KACF;AAAA,CAAA;AAKK,MAAO,iDAAkD,SAAQ,gBAAoC,CAAA;AACzG,IAAA,WAAA,GAAA;QACE,KAAK,CAAC,4BAA4B,CAAC,CAAC;KACrC;;oLAHU,iDAAiD,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjD,sCAAA,iDAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iDAAiD,cAFhD,MAAM,EAAA,CAAA,CAAA;2FAEP,iDAAiD,EAAA,UAAA,EAAA,CAAA;kBAH7D,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACvBK,MAAO,2CAA4C,SAAQ,gBAAoC,CAAA;IACnG,WAAoB,CAAA,aAAgE,EAAU,YAA8D,EAAA;AAC1J,QAAA,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAD9E,IAAa,CAAA,aAAA,GAAb,aAAa,CAAmD;QAAU,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAkD;KAE3J;;8KAHU,2CAA2C,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,iDAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,gDAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA3C,sCAAA,2CAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2CAA2C,cAF1C,MAAM,EAAA,CAAA,CAAA;2FAEP,2CAA2C,EAAA,UAAA,EAAA,CAAA;kBAHvD,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACLD,MAAM,mBAAmB,CAAA;AAAzB,IAAA,WAAA,GAAA;QACE,IAAU,CAAA,UAAA,GAAG,cAAc,CAAC;QAC5B,IAAG,CAAA,GAAA,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AACpC,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAU,CAAA,UAAA,GAAG,OAAO,CAAC;AACrB,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;AACrC,QAAA,IAAA,CAAA,IAAI,GAAI,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAW,CAAA,WAAA,GAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtC,IAAW,CAAA,WAAA,GAAK,EAAE,CAAC;QACnB,IAAK,CAAA,KAAA,GAAK,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpC,IAAc,CAAA,cAAA,GAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC5C,QAAA,IAAA,CAAA,QAAQ,GAAK,EAAE,KAAK,EAAE,EAAE,EAAC,CAAC;QAC1B,IAAQ,CAAA,QAAA,GAAuB,EAAE,CAAC;KACnC;AAAA,CAAA;AAKK,MAAO,wCAAyC,SAAQ,gBAAiC,CAAA;AAC7F,IAAA,WAAA,GAAA;QACE,KAAK,CAAC,mBAAmB,CAAC,CAAC;KAC5B;;2KAHU,wCAAwC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAxC,sCAAA,wCAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wCAAwC,cAFvC,MAAM,EAAA,CAAA,CAAA;2FAEP,wCAAwC,EAAA,UAAA,EAAA,CAAA;kBAHpD,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACdD,MAAM,KAAK,GAAG;AACZ,IAAA,yBAAyB,CAAC,KAAK;AAC/B,IAAA,yBAAyB,CAAC,KAAK;AAC/B,IAAA,yBAAyB,CAAC,KAAK;CAChC,CAAC;AAEF,MAAM,kCAAkC,CAAA;AAAxC,IAAA,WAAA,GAAA;AACE,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAC3B,QAAA,IAAA,CAAA,IAAI,GAAG;YACL,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;SACtE,CAAC;KACH;AAAA,CAAA;AAKK,MAAO,uDAAwD,SAAQ,gBAAgD,CAAA;AAC3H,IAAA,WAAA,GAAA;QACE,KAAK,CAAC,kCAAkC,CAAC,CAAC;KAC3C;;0LAHU,uDAAuD,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAvD,sCAAA,uDAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uDAAuD,cAFtD,MAAM,EAAA,CAAA,CAAA;2FAEP,uDAAuD,EAAA,UAAA,EAAA,CAAA;kBAHnE,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACfD,MAAM,mBAAmB,CAAA;AAAzB,IAAA,WAAA,GAAA;QACE,IAAY,CAAA,YAAA,GAAI,CAAC,CAAC;QAClB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvC,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;KAC1C;AAAA,CAAA;AAKK,MAAO,wCAAyC,SAAQ,gBAAiC,CAAA;AAC7F,IAAA,WAAA,GAAA;QACE,KAAK,CAAC,mBAAmB,CAAC,CAAC;KAC5B;;2KAHU,wCAAwC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAxC,sCAAA,wCAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wCAAwC,cAFvC,MAAM,EAAA,CAAA,CAAA;2FAEP,wCAAwC,EAAA,UAAA,EAAA,CAAA;kBAHpD,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACXD,MAAM,qBAAqB,CAAA;AAA3B,IAAA,WAAA,GAAA;QACE,IAAO,CAAA,OAAA,GAAG,UAAU,CAAC;AACrB,QAAA,IAAA,CAAA,OAAO,GAAG;AACR,YAAA;AACE,gBAAA,KAAK,EAAE,QAAQ;AACf,gBAAA,KAAK,EAAE,UAAU;AAClB,aAAA;SACF,CAAC;KACH;AAAA,CAAA;AAKK,MAAO,0CAA2C,SAAQ,gBAAmC,CAAA;AACjG,IAAA,WAAA,GAAA;QACE,KAAK,CAAC,qBAAqB,CAAC,CAAC;KAC9B;;6KAHU,0CAA0C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA1C,sCAAA,0CAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0CAA0C,cAFzC,MAAM,EAAA,CAAA,CAAA;2FAEP,0CAA0C,EAAA,UAAA,EAAA,CAAA;kBAHtD,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;AClBD;;AAEG;;;;"}
1
+ {"version":3,"file":"daffodil-category-driver-magento-testing.mjs","sources":["../../../libs/category/driver/magento/testing/src/factories/aggregation/type/price.factory.ts","../../../libs/category/driver/magento/testing/src/factories/aggregation/type/select.factory.ts","../../../libs/category/driver/magento/testing/src/factories/aggregation/aggregation.factory.ts","../../../libs/category/driver/magento/testing/src/factories/category.factory.ts","../../../libs/category/driver/magento/testing/src/factories/filter-type-field.factory.ts","../../../libs/category/driver/magento/testing/src/factories/page-info.factory.ts","../../../libs/category/driver/magento/testing/src/factories/sort-fields.factory.ts","../../../libs/category/driver/magento/testing/src/daffodil-category-driver-magento-testing.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport * as faker from '@faker-js/faker/locale/en_US';\n\nimport {\n MagentoAggregation,\n MagentoCategoryFilterType,\n} from '@daffodil/category/driver/magento';\nimport { DaffModelFactory } from '@daffodil/core/testing';\n\nclass MockMagentoAggregationPrice implements MagentoAggregation {\n attribute_code = 'price';\n type = MagentoCategoryFilterType.Range;\n count = faker.datatype.number();\n label = 'Price';\n options = [\n\t {\n\t value: '0-10',\n\t count: faker.datatype.number(),\n\t label: '0-10',\n\t },\n\t {\n\t value: '10-20',\n\t count: faker.datatype.number(),\n\t label: '10-20',\n\t },\n\t {\n\t value: '20-30',\n\t count: faker.datatype.number(),\n\t label: '20-30',\n\t },\n\t {\n\t value: '30-40',\n\t count: faker.datatype.number(),\n\t label: '30-40',\n\t },\n ];\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffCategoryDriverMagentoAggregationPriceFactory extends DaffModelFactory<MagentoAggregation> {\n constructor(){\n super(MockMagentoAggregationPrice);\n }\n}\n","import { Injectable } from '@angular/core';\nimport * as faker from '@faker-js/faker/locale/en_US';\n\nimport {\n MagentoAggregation,\n MagentoCategoryFilterType,\n} from '@daffodil/category/driver/magento';\nimport { DaffModelFactory } from '@daffodil/core/testing';\n\nclass MockMagentoAggregationSelect implements MagentoAggregation {\n attribute_code = 'select';\n type = MagentoCategoryFilterType.Equal;\n count = faker.datatype.number();\n label = faker.random.word();\n options = [\n\t {\n\t count: faker.datatype.number(),\n\t label: faker.random.word(),\n\t value: faker.datatype.uuid(),\n\t },\n\t {\n\t count: faker.datatype.number(),\n\t label: faker.random.word(),\n\t value: faker.datatype.uuid(),\n\t },\n\t {\n\t count: faker.datatype.number(),\n\t label: faker.random.word(),\n\t value: faker.datatype.uuid(),\n\t },\n ];\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffCategoryDriverMagentoAggregationSelectFactory extends DaffModelFactory<MagentoAggregation> {\n constructor(){\n super(MockMagentoAggregationSelect);\n }\n}\n","import { Injectable } from '@angular/core';\nimport * as faker from '@faker-js/faker/locale/en_US';\n\nimport { MagentoAggregation } from '@daffodil/category/driver/magento';\nimport { DaffModelFactory } from '@daffodil/core/testing';\n\nimport { DaffCategoryDriverMagentoAggregationPriceFactory } from './type/price.factory';\nimport { DaffCategoryDriverMagentoAggregationSelectFactory } from './type/select.factory';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffCategoryDriverMagentoAggregationFactory extends DaffModelFactory<MagentoAggregation> {\n constructor(private selectFactory: DaffCategoryDriverMagentoAggregationSelectFactory, private priceFactory: DaffCategoryDriverMagentoAggregationPriceFactory){\n super(faker.datatype.number({ min: 1, max: 2 }) === 2 ? selectFactory.type : priceFactory.type);\n }\n}\n","import { Injectable } from '@angular/core';\nimport * as faker from '@faker-js/faker/locale/en_US';\n\nimport { MagentoCategory } from '@daffodil/category/driver/magento';\nimport { DaffModelFactory } from '@daffodil/core/testing';\n\nclass MockMagentoCategory implements MagentoCategory {\n __typename = 'CategoryTree';\n uid = faker.random.alphaNumeric(10);\n url_path = faker.random.word();\n url_suffix = '.html';\n canonical_url = faker.internet.url();\n name? = faker.random.word();\n description? = faker.random.words(40);\n breadcrumbs? = [];\n level? = faker.datatype.number(15);\n children_count? = faker.datatype.number(15);\n products? = { items: []};\n children?: MagentoCategory[] = [];\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffCategoryDriverMagentoCategoryFactory extends DaffModelFactory<MagentoCategory> {\n constructor(){\n super(MockMagentoCategory);\n }\n}\n","import { Injectable } from '@angular/core';\nimport * as faker from '@faker-js/faker/locale/en_US';\n\nimport {\n MagentoCategoryFilterTypeField,\n MagentoCategoryFilterType,\n} from '@daffodil/category/driver/magento';\nimport { DaffModelFactory } from '@daffodil/core/testing';\n\nconst TYPES = [\n MagentoCategoryFilterType.Equal,\n MagentoCategoryFilterType.Range,\n MagentoCategoryFilterType.Match,\n];\n\nclass MockMagentoCategoryFilterTypeField implements MagentoCategoryFilterTypeField {\n name = faker.random.word();\n type = {\n name: TYPES[faker.datatype.number({ min: 0, max: TYPES.length - 1 })],\n };\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffCategoryDriverMagentoCategoryFilterTypeFieldFactory extends DaffModelFactory<MagentoCategoryFilterTypeField> {\n constructor(){\n super(MockMagentoCategoryFilterTypeField);\n }\n}\n","import { Injectable } from '@angular/core';\nimport * as faker from '@faker-js/faker/locale/en_US';\n\nimport {\n MagentoCategory,\n MagentoPageInfo,\n} from '@daffodil/category/driver/magento';\nimport { DaffModelFactory } from '@daffodil/core/testing';\n\nclass MockMagentoPageInfo implements MagentoPageInfo {\n current_page = 1;\n page_size = faker.datatype.number(100);\n total_pages = faker.datatype.number(100);\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffCategoryDriverMagentoPageInfoFactory extends DaffModelFactory<MagentoPageInfo> {\n constructor(){\n super(MockMagentoPageInfo);\n }\n}\n","import { Injectable } from '@angular/core';\nimport * as faker from '@faker-js/faker/locale/en_US';\n\nimport { MagentoSortFields } from '@daffodil/category/driver/magento';\nimport { DaffModelFactory } from '@daffodil/core/testing';\n\nclass MockMagentoSortFields implements MagentoSortFields {\n default = 'position';\n options = [\n {\n label: 'string',\n value: 'position',\n },\n ];\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffCategoryDriverMagentoSortFieldsFactory extends DaffModelFactory<MagentoSortFields> {\n constructor(){\n super(MockMagentoSortFields);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DaffCategoryDriverMagentoAggregationSelectFactory","i2.DaffCategoryDriverMagentoAggregationPriceFactory"],"mappings":"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"}
@@ -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/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/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/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","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 { 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","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":";;;;;;;;;;;;;;;;AAMA;;AAEG;AACI,MAAM,0BAA0B,GAAG,CAAC,GAAW,KACpD,2BAA2B,CAAC,4BAA4B,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC,CAAC;;ACP9F;;AAEG;AACU,MAAA,+BAA+B,GAAoC;AAC9E,IAAA,WAAW,EAAE,IAAI;AACjB,IAAA,qBAAqB,EAAE,0BAA0B;;;ACJnD;;;AAGG;AACU,MAAA,6BAA6B,GAAG,IAAI,cAAc,CAAkC,+BAA+B,EAAE,EAAE,OAAO,EAAE,MAAM,+BAA+B,EAAE;;ACN7K,MAAM,wCAAwC,GAAG,wCAAwC;AAEzF,MAAM,6BAA6B,GAAG,GAAG,CAAA,CAAA;QACxC,wCAAwC,CAAA;;;;;;;;;;;;ACHzC,MAAM,2BAA2B,GAAG,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACEvC,MAAM,oCAAoC,GAAG,0BAA0B;AAEvE,MAAM,uBAAuB,GAAG,GAAG,CAAA,CAAA;QAClC,oCAAoC,CAAA;;;;;EAK1C,2BAA2B,CAAA;;;ACHtB,MAAM,oCAAoC,GAAG,qBAAqB;AACzE;;;AAGG;AACU,MAAA,uBAAuB,GAAG,CAAC,qBAAwC,GAAA,EAAE,KAAK,GAAG,CAAA,CAAA;QAClF,oCAAoC,CAAA;;;;;;;QAOpC,2BAA2B,CAAC,GAAG,qBAAqB,CAAC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;EA0B3D,sBAAsB,CAAA;EACtB,2BAA2B,CAAC,GAAG,qBAAqB,CAAC,CAAA;;;ICjD3C,gCAMX;AAND,CAAA,UAAY,+BAA+B,EAAA;AAC1C,IAAA,+BAAA,CAAA,OAAA,CAAA,GAAA,IAAY,CAAA;AACZ,IAAA,+BAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,+BAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,+BAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,+BAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AAChB,CAAC,EANW,+BAA+B,KAA/B,+BAA+B,GAM1C,EAAA,CAAA,CAAA;;ICNW,yBAGX;AAHD,CAAA,UAAY,wBAAwB,EAAA;AACnC,IAAA,wBAAA,CAAA,WAAA,CAAA,GAAA,KAAiB,CAAA;AACjB,IAAA,wBAAA,CAAA,WAAA,CAAA,GAAA,MAAkB,CAAA;AACnB,CAAC,EAHW,wBAAwB,KAAxB,wBAAwB,GAGnC,EAAA,CAAA,CAAA;;ACHD;IACY,0BAIX;AAJD,CAAA,UAAY,yBAAyB,EAAA;AACnC,IAAA,yBAAA,CAAA,OAAA,CAAA,GAAA,sBAA8B,CAAA;AAC9B,IAAA,yBAAA,CAAA,OAAA,CAAA,GAAA,sBAA8B,CAAA;AAC9B,IAAA,yBAAA,CAAA,OAAA,CAAA,GAAA,sBAA8B,CAAA;AAChC,CAAC,EAJW,yBAAyB,KAAzB,yBAAyB,GAIpC,EAAA,CAAA,CAAA;;MCWY,yCAAyC,CAAA;IAEpD,SAAS,CAAC,UAA8B,EAAE,WAAwC,EAAA;AAChF,QAAA,MAAM,cAAc,GAA2B;AAC7C,YAAA,YAAY,EAAE;AACZ,gBAAA,CAAC,+BAA+B,CAAC,KAAK,GAAG,UAAU;AACpD,aAAA;SACF,CAAC;QAEF,IAAG,CAAC,WAAW,EAAE;AACf,YAAA,OAAO,cAAc,CAAC;AACvB,SAAA;AAED,QAAA,WAAW,CAAC,OAAO,CAAC,MAAM,IAAG;;;AAG3B,YAAA,IAAG,MAAM,CAAC,IAAI,KAAK,sBAAsB,CAAC,YAAY,EAAE;AACtD,gBAAA,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG;AAC5B,oBAAA,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC;AAC9B,oBAAA,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;AACtD,oBAAA,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;iBACrD,CAAC;AACH,aAAA;AAAM,iBAAA;AACL,gBAAA,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG;AAC5B,oBAAA,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC;oBAC9B,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC;iBACpF,CAAC;AACH,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,cAAc,CAAC;KACvB;AAED;;AAEG;AACK,IAAA,eAAe,CAAC,IAA4B,EAAA;AAClD,QAAA,OAAO,IAAI,KAAK,sBAAsB,CAAC,KAAK;cACxC,+BAA+B,CAAC,EAAE;AACpC,cAAE,+BAA+B,CAAC,KAAK,CAAC;KAC3C;AAED;;AAEG;IACK,cAAc,CAAC,IAA4B,EAAE,KAAyC,EAAA;AAC5F,QAAA,OAAO,IAAI,KAAK,sBAAsB,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;KACjE;AAEO,IAAA,iBAAiB,CAAC,SAAiB,EAAA;AACzC,QAAA,OAAO,SAAS,KAAK,GAAG,GAAG,EAAE,CAAC,+BAA+B,CAAC,IAAI,GAAG,SAAS,EAAE,GAAG,IAAI,CAAC;KACzF;AAEO,IAAA,eAAe,CAAC,OAAe,EAAA;AACrC,QAAA,OAAO,OAAO,KAAK,GAAG,GAAG,EAAE,CAAC,+BAA+B,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,IAAI,CAAC;KACnF;;4KAvDU,yCAAyC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAzC,sCAAA,yCAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yCAAyC,cAFxC,MAAM,EAAA,CAAA,CAAA;2FAEP,yCAAyC,EAAA,UAAA,EAAA,CAAA;kBAHrD,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCFY,4CAA4C,CAAA;IAEvD,SAAS,CAAC,aAAqB,EAAE,gBAAuC,EAAA;QACtE,OAAO;YACL,CAAC,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC;SAC3D,CAAC;KACH;AAEO,IAAA,kBAAkB,CAAC,SAAgC,EAAA;AACzD,QAAA,IAAG,SAAS,KAAK,qBAAqB,CAAC,SAAS,EAAE;YAChD,OAAO,wBAAwB,CAAC,SAAS,CAAC;AAC3C,SAAA;AAAM,aAAA,IAAG,SAAS,KAAK,qBAAqB,CAAC,UAAU,EAAE;YACxD,OAAO,wBAAwB,CAAC,SAAS,CAAC;AAC3C,SAAA;KACF;;+KAdU,4CAA4C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA5C,sCAAA,4CAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4CAA4C,cAF3C,MAAM,EAAA,CAAA,CAAA;2FAEP,4CAA4C,EAAA,UAAA,EAAA,CAAA;kBAHxD,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACHM,MAAM,uBAAuB,GAAG,CAAC,SAA6B,MAA+B;IAClG,KAAK,EAAE,SAAS,CAAC,KAAK;IACtB,IAAI,EAAE,sBAAsB,CAAC,KAAK;IAClC,IAAI,EAAE,SAAS,CAAC,cAAc;AAC9B,IAAA,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,KAAI;AAChD,QAAA,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG;AAClB,YAAA,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC;AACF,QAAA,OAAO,GAAG,CAAC;KACZ,EAAuC,EAAE,CAAC;AAC5C,CAAA,CAAC;;ACfF;;;AAGG;AACI,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAEnC,MAAM,uBAAuB,GAAG,CAAC,SAA6B,MAAsC;IACzG,KAAK,EAAE,SAAS,CAAC,KAAK;IACtB,IAAI,EAAE,sBAAsB,CAAC,YAAY;IACzC,IAAI,EAAE,SAAS,CAAC,cAAc;IAC9B,GAAG,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC3D,GAAG,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACzG,IAAA,OAAO,EAAE,EAAE;AACZ,CAAA,CAAC;;ACXK,MAAM,kBAAkB,GAAG,CAAC,SAA6B,KAAwB;IACtF,QAAQ,SAAS,CAAC,IAAI;QACpB,KAAK,yBAAyB,CAAC,KAAK;AAClC,YAAA,OAAO,uBAAuB,CAAC,SAAS,CAAC,CAAC;QAC5C,KAAK,yBAAyB,CAAC,KAAK,CAAC;QACrC,KAAK,yBAAyB,CAAC,KAAK,CAAC;AACrC,QAAA;AACE,YAAA,OAAO,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC7C,KAAA;AACH,CAAC;;AChBK,SAAU,4BAA4B,CAAC,WAA8B,EAAA;IACzE,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,WAAW,CAAC,OAAO,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC;IAE5F,OAAO;AACL,QAAA,GAAG,WAAW;AACd,QAAA,OAAO,EAAE;AACP,YAAA,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;YAC1B,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;YACtC,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;AACxC,SAAA;KACF,CAAC;AACJ;;MCCa,+CAA+C,CAAA;AAE1D,IAAA,SAAS,CAAC,gBAAiD,EAAA;AACzD,QAAA,MAAM,2BAA2B,GAAG,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,IAAI,SAAS,CAAC,cAAc,KAAK,aAAa,CAAC,CAAC;QAEhI,OAAO;AACL,YAAA,EAAE,EAAE,gBAAgB,CAAC,QAAQ,CAAC,GAAG;AACjC,YAAA,SAAS,EAAE,gBAAgB,CAAC,SAAS,CAAC,SAAS;AAC/C,YAAA,YAAY,EAAE,gBAAgB,CAAC,SAAS,CAAC,YAAY;AACrD,YAAA,WAAW,EAAE,gBAAgB,CAAC,SAAS,CAAC,WAAW;YACnD,cAAc,EAAE,gBAAgB,CAAC,WAAW;YAC5C,OAAO,EAAE,6BAA6B,CAAC,2BAA2B,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAC3F,YAAA,YAAY,EAAE;AACZ,gBAAA,OAAO,EAAE,gBAAgB,CAAC,WAAW,CAAC,OAAO;gBAC7C,OAAO,EAAE,4BAA4B,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,OAAO;AAC5E,aAAA;AACD,YAAA,WAAW,EAAE,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC;;AAElE,YAAA,sBAAsB,EAAE,IAAI;AAC5B,YAAA,mBAAmB,EAAE,IAAI;SAC1B,CAAC;KACH;;kLArBU,+CAA+C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA/C,sCAAA,+CAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,+CAA+C,cAF9C,MAAM,EAAA,CAAA,CAAA;2FAEP,+CAA+C,EAAA,UAAA,EAAA,CAAA;kBAH3D,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCGY,qCAAqC,CAAA;IAEhD,SAAS,CAAC,QAAyB,EAAE,QAA0B,EAAA;QAC7D,OAAO;YACL,EAAE,EAAE,QAAQ,CAAC,GAAG;YAChB,GAAG,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAG,EAAA,QAAQ,CAAC,UAAU,CAAE,CAAA;YAClD,YAAY,EAAE,QAAQ,CAAC,aAAa;YACpC,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;YAC3C,cAAc,EAAE,QAAQ,CAAC,cAAc;YACvC,WAAW,EAAE,QAAQ,CAAC,WAAW;AAC/B,kBAAE,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAClE,iBAAA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC5C,YAAA,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC;YACjD,cAAc,EAAE,QAAQ,CAAC,MAAM;SAChC,CAAC;KACH;IAEO,mBAAmB,CAAC,UAA6B,EAAE,QAAyB,EAAA;QAClF,OAAO;YACL,EAAE,EAAE,UAAU,CAAC,YAAY;YAC3B,IAAI,EAAE,UAAU,CAAC,aAAa;YAC9B,KAAK,EAAE,UAAU,CAAC,cAAc;YAChC,GAAG,EAAE,IAAI,UAAU,CAAC,iBAAiB,CAAG,EAAA,QAAQ,CAAC,UAAU,CAAE,CAAA;SAC9D,CAAC;KACH;;wKA3BU,qCAAqC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAArC,sCAAA,qCAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qCAAqC,cAFpC,MAAM,EAAA,CAAA,CAAA;2FAEP,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBAHjD,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCHY,2CAA2C,CAAA;AAEtD,IAAA,WAAA,CACU,iCAAwE,EACxE,kDAAmG,EACrG,+BAA+D,EAAA;QAF7D,IAAiC,CAAA,iCAAA,GAAjC,iCAAiC,CAAuC;QACxE,IAAkD,CAAA,kDAAA,GAAlD,kDAAkD,CAAiD;QACrG,IAA+B,CAAA,+BAAA,GAA/B,+BAA+B,CAAgC;KACnE;IAEJ,SAAS,CAAC,gBAAiD,EAAE,QAAgB,EAAA;QAC3E,OAAO;AACL,YAAA,GAAG,EAAE,+BAA+B,EAAE,gBAAgB,EAAE;AACxD,YAAA,QAAQ,EAAE,IAAI,CAAC,iCAAiC,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,CAAC;YAChH,oBAAoB,EAAE,IAAI,CAAC,kDAAkD,CAAC,SAAS,CAAC,gBAAgB,CAAC;AACzG,YAAA,QAAQ,EAAE,IAAI,CAAC,+BAA+B,CAAC,4BAA4B,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC;SACjH,CAAC;KACH;;8KAfU,2CAA2C,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,qCAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,+CAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA3C,sCAAA,2CAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2CAA2C,cAF1C,MAAM,EAAA,CAAA,CAAA;2FAEP,2CAA2C,EAAA,UAAA,EAAA,CAAA;kBAHvD,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACLM,MAAM,uBAAuB,GAAG,CAAC,SAA6B,EAAE,UAAiD,KACtH,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;;ACDnF,SAAA,4BAA4B,CAC1C,iBAAwD,EACxD,mBAA+C,EAAA;IAG/C,OAAO;AACL,QAAA,GAAG,mBAAmB;AACtB,QAAA,QAAQ,EAAE;YACR,GAAG,mBAAmB,CAAC,QAAQ;AAC/B,YAAA,YAAY,EAAE;AACZ,gBAAA,GAAG,mBAAmB,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,SAAS,MAAM;AAC/D,oBAAA,GAAG,SAAS;AACZ,oBAAA,IAAI,EAAE,uBAAuB,CAAC,SAAS,EAAE,iBAAiB,CAAC;AAC5D,iBAAA,CAAC,CAAC;AACJ,aAAA;AACF,SAAA;KACF,CAAC;AACJ;;AC6BA,MAAM,sBAAsB,GAAG,CAAC,QAAqC,EAAE,QAAiC,MAA+B;AACrI,IAAA,GAAG,QAAQ;AACX,IAAA,oBAAoB,EAAE;QACpB,GAAG,QAAQ,CAAC,oBAAoB;QAChC,OAAO,EAAE,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC;AACrF,KAAA;AACF,CAAA,CAAC,CAAC;AAEH;;;;AAIG;MAIU,0BAA0B,CAAA;AAErC,IAAA,WAAA,CACU,MAAc,EAChB,kCAA+E,EAC/E,gCAA2E,EAC3E,6BAA2E,EAClC,MAAuC,EACxC,aAA6C,EACrB,qBAAqC,EAAA;QANnG,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QAChB,IAAkC,CAAA,kCAAA,GAAlC,kCAAkC,CAA6C;QAC/E,IAAgC,CAAA,gCAAA,GAAhC,gCAAgC,CAA2C;QAC3E,IAA6B,CAAA,6BAAA,GAA7B,6BAA6B,CAA8C;QAClC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAiC;QACxC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAgC;QACrB,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAgB;KACzG;;AAGJ,IAAA,GAAG,CAAC,eAAsC,EAAA;AACxC,QAAA,OAAO,aAAa,CAAC;AACnB,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAA8B;AAC7C,gBAAA,KAAK,EAAE,uBAAuB;AAC9B,gBAAA,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,eAAe,CAAC,EAAE,EAAE,EAAC,EAAC;aACnE,CAAC;AACF,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAwC;AACvD,gBAAA,KAAK,EAAE,6BAA6B;aACrC,CAAC;AACF,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAA6B;AAC5C,gBAAA,KAAK,EAAE,uBAAuB,CAAC,IAAI,CAAC,qBAAqB,CAAC;AAC1D,gBAAA,SAAS,EAAE,IAAI,CAAC,yBAAyB,CAAC,eAAe,CAAC;aAC3D,CAAC;SACH,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,CAAC,CACH,QAAQ,EACR,WAAW,EACX,QAAQ,EACT,KAAK,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,EAC9G,GAAG,CAAC,MAAM,IAAI,eAAe,CAAC,eAAe;cACzC,sBAAsB,CAAC,eAAe,CAAC,eAAe,EAAE,MAAM,CAAC;AACjE,cAAE,MAAM,CACT,CACF,CAAC;KACH;AAED,IAAA,QAAQ,CAAC,eAAuC,EAAA;AAC9C,QAAA,OAAO,aAAa,CAAC;AACnB,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAA8B;AAC7C,gBAAA,KAAK,EAAE,uBAAuB;AAC9B,gBAAA,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE;AAChC,4BAAA,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;kCACvB,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,eAAe,CAAC,GAAG,CAAC;kCACtD,eAAe,CAAC,GAAG;AACxB,yBAAA,EAAC,EAAC;aACJ,CAAC;AACF,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAwC;AACvD,gBAAA,KAAK,EAAE,6BAA6B;aACrC,CAAC;AACH,SAAA,CAAC,CAAC,IAAI,CACL,SAAS,CAAC,CAAC,CACT,QAAQ,EACR,WAAW,EACZ,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAA6B;AAClD,YAAA,KAAK,EAAE,uBAAuB,CAAC,IAAI,CAAC,qBAAqB,CAAC;AAC1D,YAAA,SAAS,EAAE,IAAI,CAAC,yBAAyB,CAAC;AACxC,gBAAA,GAAG,eAAe;gBAClB,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG;gBACtC,IAAI,EAAE,uBAAuB,CAAC,EAAE;aACjC,CAAC;AACH,SAAA,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,EACxH,GAAG,CAAC,MAAM,IAAI,eAAe,CAAC,eAAe;cACzC,sBAAsB,CAAC,eAAe,CAAC,eAAe,EAAE,MAAM,CAAC;AACjE,cAAE,MAAM,CACT,CACF,CAAC,CACH,CAAC;KACH;AAEO,IAAA,yBAAyB,CAAC,OAA8B,EAAA;AAC9D,QAAA,MAAM,cAAc,GAAG;AACrB,YAAA,MAAM,EAAE,IAAI,CAAC,gCAAgC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,eAAe,CAAC;SAC7F,CAAC;QACF,IAAG,OAAO,CAAC,SAAS,EAAE;AACpB,YAAA,cAAc,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;AAChD,SAAA;QACD,IAAG,OAAO,CAAC,YAAY,EAAE;AACvB,YAAA,cAAc,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;AACtD,SAAA;AACD,QAAA,IAAG,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,sBAAsB,EAAE;AAChE,YAAA,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,6BAA6B,CAAC,SAAS,CAAC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;AACpI,SAAA;AAED,QAAA,OAAO,cAAc,CAAC;KACvB;AAEO,IAAA,iBAAiB,CACvB,gBAA6C,EAC7C,mBAA0D,EAC1D,gBAA4C,EAC5C,QAAgB,EAAA;QAEhB,MAAM,YAAY,GAAG,4BAA4B,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC;AACzF,QAAA,MAAM,gBAAgB,GAAG;AACvB,YAAA,QAAQ,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;AAC1C,YAAA,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,CAAC,KAAK;AACzC,YAAA,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC,YAAY;AAC9C,YAAA,WAAW,EAAE,YAAY,CAAC,QAAQ,CAAC,WAAW;AAC9C,YAAA,WAAW,EAAE,gBAAgB,CAAC,QAAQ,CAAC,WAAW;AAClD,YAAA,SAAS,EAAE,gBAAgB,CAAC,QAAQ,CAAC,SAAS;SAC/C,CAAC;QAEF,OAAO,IAAI,CAAC,kCAAkC,CAAC,SAAS,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;KACtF;;AA3GU,sCAAA,0BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,EAO3B,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,2CAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,yCAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,4CAAA,EAAA,EAAA,EAAA,KAAA,EAAA,6BAA6B,EAC7B,EAAA,EAAA,KAAA,EAAA,4BAA4B,aAC5B,oDAAoD,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AATnD,sCAAA,0BAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,cAFzB,MAAM,EAAA,CAAA,CAAA;2FAEP,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAQI,MAAM;2BAAC,6BAA6B,CAAA;;0BACpC,MAAM;2BAAC,4BAA4B,CAAA;;0BACnC,MAAM;2BAAC,oDAAoD,CAAA;;;ACrDhE;;;AAGG;MAMU,+BAA+B,CAAA;AAC1C,IAAA,OAAO,OAAO,CAAC,MAAA,GAA0C,+BAA+B,EAAA;QACtF,OAAO;AACL,YAAA,QAAQ,EAAE,+BAA+B;AACzC,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,kBAAkB;AAC3B,oBAAA,WAAW,EAAE,0BAA0B;AACxC,iBAAA;gBACD,+CAA+C;gBAC/C,2CAA2C;gBAC3C,qCAAqC;gBACrC,yCAAyC;gBACzC,4CAA4C;AAC5C,gBAAA;AACE,oBAAA,OAAO,EAAE,iCAAiC;AAC1C,oBAAA,QAAQ,EAAE,oCAAoC;AAC9C,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,iCAAiC;AAC1C,oBAAA,QAAQ,EAAE,wCAAwC;AAClD,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,iCAAiC;AAC1C,oBAAA,QAAQ,EAAE,oCAAoC;AAC9C,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,6BAA6B;AACtC,oBAAA,QAAQ,EAAE;AACR,wBAAA,GAAG,+BAA+B;AAClC,wBAAA,GAAG,MAAM;AACV,qBAAA;AACF,iBAAA;AACF,aAAA;SACF,CAAC;KACH;;kKAtCU,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAA/B,sCAAA,+BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,+BAA+B,YAHxC,YAAY,CAAA,EAAA,CAAA,CAAA;AAGH,sCAAA,+BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,+BAA+B,EAJjC,OAAA,EAAA,CAAA;YACP,YAAY;AACb,SAAA,CAAA,EAAA,CAAA,CAAA;2FAEU,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAL3C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACF,iBAAA,CAAA;;;AChCD;;AAEG;;;;"}
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/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/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/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","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 { 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","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;;;;"}