@daffodil/category 0.38.9 → 0.39.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (298) hide show
  1. package/bundles/daffodil-category-driver-in-memory.umd.js +86 -167
  2. package/bundles/daffodil-category-driver-in-memory.umd.js.map +1 -1
  3. package/bundles/daffodil-category-driver-in-memory.umd.min.js +1 -1
  4. package/bundles/daffodil-category-driver-in-memory.umd.min.js.map +1 -1
  5. package/bundles/daffodil-category-driver-magento-testing.umd.js +9 -120
  6. package/bundles/daffodil-category-driver-magento-testing.umd.js.map +1 -1
  7. package/bundles/daffodil-category-driver-magento-testing.umd.min.js +1 -1
  8. package/bundles/daffodil-category-driver-magento-testing.umd.min.js.map +1 -1
  9. package/bundles/daffodil-category-driver-magento.umd.js +72 -504
  10. package/bundles/daffodil-category-driver-magento.umd.js.map +1 -1
  11. package/bundles/daffodil-category-driver-magento.umd.min.js +2 -2
  12. package/bundles/daffodil-category-driver-magento.umd.min.js.map +1 -1
  13. package/bundles/daffodil-category-driver-testing.umd.js +5 -68
  14. package/bundles/daffodil-category-driver-testing.umd.js.map +1 -1
  15. package/bundles/daffodil-category-driver-testing.umd.min.js +1 -1
  16. package/bundles/daffodil-category-driver-testing.umd.min.js.map +1 -1
  17. package/bundles/daffodil-category-driver.umd.js +11 -51
  18. package/bundles/daffodil-category-driver.umd.js.map +1 -1
  19. package/bundles/daffodil-category-routing.umd.js +10 -116
  20. package/bundles/daffodil-category-routing.umd.js.map +1 -1
  21. package/bundles/daffodil-category-routing.umd.min.js +1 -1
  22. package/bundles/daffodil-category-routing.umd.min.js.map +1 -1
  23. package/bundles/daffodil-category-state-testing.umd.js +5 -89
  24. package/bundles/daffodil-category-state-testing.umd.js.map +1 -1
  25. package/bundles/daffodil-category-state-testing.umd.min.js +1 -1
  26. package/bundles/daffodil-category-state-testing.umd.min.js.map +1 -1
  27. package/bundles/daffodil-category-state.umd.js +133 -1007
  28. package/bundles/daffodil-category-state.umd.js.map +1 -1
  29. package/bundles/daffodil-category-state.umd.min.js +1 -1
  30. package/bundles/daffodil-category-state.umd.min.js.map +1 -1
  31. package/bundles/daffodil-category-testing.umd.js +35 -316
  32. package/bundles/daffodil-category-testing.umd.js.map +1 -1
  33. package/bundles/daffodil-category-testing.umd.min.js +1 -1
  34. package/bundles/daffodil-category-testing.umd.min.js.map +1 -1
  35. package/bundles/daffodil-category.umd.js +184 -867
  36. package/bundles/daffodil-category.umd.js.map +1 -1
  37. package/bundles/daffodil-category.umd.min.js +15 -1
  38. package/bundles/daffodil-category.umd.min.js.map +1 -1
  39. package/driver/in-memory/backend/category.service.d.ts +16 -7
  40. package/driver/in-memory/daffodil-category-driver-in-memory.metadata.json +1 -1
  41. package/driver/in-memory/package.json +1 -1
  42. package/driver/magento/package.json +1 -1
  43. package/driver/magento/testing/package.json +1 -1
  44. package/driver/package.json +1 -1
  45. package/driver/testing/package.json +1 -1
  46. package/esm2015/daffodil-category.js +2 -7
  47. package/esm2015/driver/daffodil-category-driver.js +2 -7
  48. package/esm2015/driver/in-memory/backend/category.service.js +64 -100
  49. package/esm2015/driver/in-memory/backend/public_api.js +1 -6
  50. package/esm2015/driver/in-memory/daffodil-category-driver-in-memory.js +2 -7
  51. package/esm2015/driver/in-memory/drivers/category-driver.module.js +2 -10
  52. package/esm2015/driver/in-memory/drivers/category.service.js +6 -32
  53. package/esm2015/driver/in-memory/drivers/public_api.js +1 -6
  54. package/esm2015/driver/in-memory/index.js +2 -7
  55. package/esm2015/driver/in-memory/public_api.js +3 -8
  56. package/esm2015/driver/index.js +2 -7
  57. package/esm2015/driver/interfaces/category-service.interface.js +1 -27
  58. package/esm2015/driver/magento/category-driver.module.js +3 -12
  59. package/esm2015/driver/magento/category.service.js +11 -112
  60. package/esm2015/driver/magento/config/default.js +2 -8
  61. package/esm2015/driver/magento/daffodil-category-driver-magento.js +2 -7
  62. package/esm2015/driver/magento/index.js +2 -7
  63. package/esm2015/driver/magento/interfaces/config.interface.js +3 -32
  64. package/esm2015/driver/magento/interfaces/public_api.js +2 -7
  65. package/esm2015/driver/magento/models/aggregation.js +2 -35
  66. package/esm2015/driver/magento/models/category.js +2 -52
  67. package/esm2015/driver/magento/models/complete-category-response.js +2 -24
  68. package/esm2015/driver/magento/models/filter-type-field.interface.js +2 -16
  69. package/esm2015/driver/magento/models/filter-type.enum.js +8 -13
  70. package/esm2015/driver/magento/models/get-category-response.js +2 -14
  71. package/esm2015/driver/magento/models/get-filter-types-response.interface.js +2 -14
  72. package/esm2015/driver/magento/models/get-products-response.js +2 -14
  73. package/esm2015/driver/magento/models/page-info.js +2 -18
  74. package/esm2015/driver/magento/models/public_api.js +1 -6
  75. package/esm2015/driver/magento/models/requests/custom-metadata-attribute.js +2 -16
  76. package/esm2015/driver/magento/models/requests/filters.js +9 -19
  77. package/esm2015/driver/magento/models/requests/get-products-by-categories-request.js +2 -22
  78. package/esm2015/driver/magento/models/requests/sort.js +6 -16
  79. package/esm2015/driver/magento/models/sort-fields.js +2 -26
  80. package/esm2015/driver/magento/public_api.js +5 -10
  81. package/esm2015/driver/magento/queries/get-category.js +1 -8
  82. package/esm2015/driver/magento/queries/get-filter-types.js +1 -8
  83. package/esm2015/driver/magento/queries/get-products.js +3 -14
  84. package/esm2015/driver/magento/queries/public_api.js +4 -9
  85. package/esm2015/driver/magento/testing/daffodil-category-driver-magento-testing.js +2 -7
  86. package/esm2015/driver/magento/testing/factories/aggregation/aggregation.factory.js +2 -23
  87. package/esm2015/driver/magento/testing/factories/aggregation/public_api.js +1 -6
  88. package/esm2015/driver/magento/testing/factories/aggregation/type/price.factory.js +2 -19
  89. package/esm2015/driver/magento/testing/factories/aggregation/type/select.factory.js +2 -19
  90. package/esm2015/driver/magento/testing/factories/category.factory.js +2 -31
  91. package/esm2015/driver/magento/testing/factories/filter-type-field.factory.js +2 -14
  92. package/esm2015/driver/magento/testing/factories/page-info.factory.js +2 -15
  93. package/esm2015/driver/magento/testing/factories/public_api.js +2 -7
  94. package/esm2015/driver/magento/testing/factories/sort-fields.factory.js +2 -13
  95. package/esm2015/driver/magento/testing/index.js +2 -7
  96. package/esm2015/driver/magento/testing/public_api.js +2 -7
  97. package/esm2015/driver/magento/transformers/applied-filter-transformer.service.js +4 -36
  98. package/esm2015/driver/magento/transformers/applied-sort-option-transformer.service.js +2 -17
  99. package/esm2015/driver/magento/transformers/category-page-config-transformer.service.js +4 -22
  100. package/esm2015/driver/magento/transformers/category-response-transform.service.js +2 -34
  101. package/esm2015/driver/magento/transformers/category-transformer.service.js +4 -32
  102. package/esm2015/driver/magento/transformers/public_api.js +1 -6
  103. package/esm2015/driver/magento/transformers/pure/aggregate/add-metadata-types-to-aggregates.js +2 -16
  104. package/esm2015/driver/magento/transformers/pure/aggregate/get-matched-attribute-type.js +2 -17
  105. package/esm2015/driver/magento/transformers/pure/aggregate/transform.js +3 -13
  106. package/esm2015/driver/magento/transformers/pure/aggregate/type/equal.js +5 -20
  107. package/esm2015/driver/magento/transformers/pure/aggregate/type/range.js +3 -14
  108. package/esm2015/driver/magento/transformers/pure/sort-default-option-first.js +2 -16
  109. package/esm2015/driver/magento/transformers/truncate-url.js +2 -12
  110. package/esm2015/driver/public_api.js +1 -6
  111. package/esm2015/driver/testing/daffodil-category-driver-testing.js +2 -7
  112. package/esm2015/driver/testing/drivers/category-driver.module.js +2 -10
  113. package/esm2015/driver/testing/drivers/category.service.js +4 -39
  114. package/esm2015/driver/testing/drivers/public_api.js +1 -6
  115. package/esm2015/driver/testing/index.js +2 -7
  116. package/esm2015/driver/testing/public_api.js +2 -7
  117. package/esm2015/errors/codes.enum.js +4 -10
  118. package/esm2015/errors/map.js +1 -7
  119. package/esm2015/errors/public_api.js +1 -6
  120. package/esm2015/filters/array-to-dict/array-to-dict.js +3 -17
  121. package/esm2015/filters/behaviors/apply/apply-filter.js +7 -18
  122. package/esm2015/filters/behaviors/apply/apply-request-to-filters.js +5 -16
  123. package/esm2015/filters/behaviors/apply/apply-requests-to-filters.js +6 -22
  124. package/esm2015/filters/behaviors/apply/public_api.js +1 -6
  125. package/esm2015/filters/behaviors/clear/clear-filter.js +5 -15
  126. package/esm2015/filters/behaviors/clear/clear-filters.js +6 -25
  127. package/esm2015/filters/behaviors/clear/public_api.js +1 -6
  128. package/esm2015/filters/behaviors/remove/public_api.js +1 -6
  129. package/esm2015/filters/behaviors/remove/remove-filter.js +9 -20
  130. package/esm2015/filters/behaviors/remove/remove-request-from-filters.js +5 -16
  131. package/esm2015/filters/behaviors/remove/remove-requests-from-filters.js +7 -23
  132. package/esm2015/filters/behaviors/toggle/public_api.js +1 -6
  133. package/esm2015/filters/behaviors/toggle/toggle-request-on-filters.js +4 -15
  134. package/esm2015/filters/behaviors/toggle/toggle.js +5 -13
  135. package/esm2015/filters/compute-applied-filters/compute-applied-filters.js +7 -27
  136. package/esm2015/filters/errors/codes.enum.js +11 -12
  137. package/esm2015/filters/errors/filter-not-found.error.js +1 -13
  138. package/esm2015/filters/errors/map.js +1 -7
  139. package/esm2015/filters/errors/public_api.js +1 -6
  140. package/esm2015/filters/errors/request-name-mismatch.error.js +1 -13
  141. package/esm2015/filters/errors/request-type-mismatch.error.js +1 -13
  142. package/esm2015/filters/errors/unknown-filter-type.error.js +1 -13
  143. package/esm2015/filters/find-applied/find-applied-options.js +2 -21
  144. package/esm2015/filters/find-applied/public_api.js +1 -6
  145. package/esm2015/filters/is-applied/is-filter-applied.js +3 -13
  146. package/esm2015/filters/is-applied/is-toggle-request-applied-to-filter.js +6 -17
  147. package/esm2015/filters/is-applied/public_api.js +1 -6
  148. package/esm2015/filters/public_api.js +12 -17
  149. package/esm2015/filters/to-request/filter-to-request.js +1 -8
  150. package/esm2015/filters/to-request/filters-to-requests.js +3 -20
  151. package/esm2015/filters/to-request/public_api.js +1 -6
  152. package/esm2015/filters/type/equal/array-to-dict/option.js +2 -16
  153. package/esm2015/filters/type/equal/behaviors/apply/apply.js +6 -23
  154. package/esm2015/filters/type/equal/behaviors/clear/clear.js +6 -25
  155. package/esm2015/filters/type/equal/behaviors/remove/remove.js +8 -25
  156. package/esm2015/filters/type/equal/behaviors/toggle/toggle.js +7 -19
  157. package/esm2015/filters/type/equal/is-applied/is-applied.js +3 -21
  158. package/esm2015/filters/type/equal/is-applied/is-toggle-request-applied-to-filter.js +3 -14
  159. package/esm2015/filters/type/equal/public_api.js +1 -6
  160. package/esm2015/filters/type/equal/to-request/filter-to-request.js +5 -20
  161. package/esm2015/filters/type/range/array-to-dict/pair.js +3 -18
  162. package/esm2015/filters/type/range/behaviors/apply/apply.js +6 -18
  163. package/esm2015/filters/type/range/behaviors/clear/clear.js +5 -16
  164. package/esm2015/filters/type/range/behaviors/remove/remove.js +8 -20
  165. package/esm2015/filters/type/range/behaviors/toggle/toggle.js +7 -19
  166. package/esm2015/filters/type/range/compute-pair-label.js +2 -13
  167. package/esm2015/filters/type/range/is-applied/is-applied.js +3 -14
  168. package/esm2015/filters/type/range/is-applied/is-toggle-request-applied-to-filter.js +3 -15
  169. package/esm2015/filters/type/range/public_api.js +1 -6
  170. package/esm2015/filters/type/range/to-request/filter-to-request.js +4 -16
  171. package/esm2015/filters/type/range-numeric/to-request/filter-to-request.js +3 -13
  172. package/esm2015/filters/validators/public_api.js +1 -6
  173. package/esm2015/filters/validators/request-name-match.js +4 -15
  174. package/esm2015/filters/validators/request-type-match.js +4 -15
  175. package/esm2015/index.js +2 -7
  176. package/esm2015/injection-tokens/error-matcher.token.js +2 -11
  177. package/esm2015/injection-tokens/public_api.js +1 -6
  178. package/esm2015/models/category-breadcrumb.js +2 -30
  179. package/esm2015/models/category-page-metadata.js +2 -23
  180. package/esm2015/models/category-request.js +7 -65
  181. package/esm2015/models/category.js +2 -6
  182. package/esm2015/models/filters/category-filter-base.js +2 -34
  183. package/esm2015/models/filters/category-filter-option-base.js +2 -18
  184. package/esm2015/models/filters/category-filter-option.js +2 -6
  185. package/esm2015/models/filters/category-filter.js +2 -6
  186. package/esm2015/models/filters/category-filterable.js +2 -18
  187. package/esm2015/models/filters/filter-request.js +2 -6
  188. package/esm2015/models/filters/filter-toggle-request.js +2 -6
  189. package/esm2015/models/filters/public_api.js +4 -9
  190. package/esm2015/models/filters/type/category-filter-type.js +7 -10
  191. package/esm2015/models/filters/type/equal/filter.js +2 -31
  192. package/esm2015/models/filters/type/equal/option.js +2 -26
  193. package/esm2015/models/filters/type/equal/public_api.js +2 -6
  194. package/esm2015/models/filters/type/equal/request.js +2 -28
  195. package/esm2015/models/filters/type/equal/toggle-request.js +2 -28
  196. package/esm2015/models/filters/type/range/filter-base.js +2 -33
  197. package/esm2015/models/filters/type/range/option.js +2 -25
  198. package/esm2015/models/filters/type/range/pair.js +2 -30
  199. package/esm2015/models/filters/type/range/public_api.js +1 -6
  200. package/esm2015/models/filters/type/range/request-base.js +2 -30
  201. package/esm2015/models/filters/type/range/request-option.js +2 -25
  202. package/esm2015/models/filters/type/range/separator.js +1 -7
  203. package/esm2015/models/filters/type/range-numeric/filter.js +2 -18
  204. package/esm2015/models/filters/type/range-numeric/public_api.js +2 -6
  205. package/esm2015/models/filters/type/range-numeric/request.js +2 -18
  206. package/esm2015/models/filters/type/range-numeric/toggle-request.js +2 -19
  207. package/esm2015/models/generic-category.js +2 -61
  208. package/esm2015/models/get-category-response.js +2 -29
  209. package/esm2015/models/public_api.js +2 -7
  210. package/esm2015/public_api.js +5 -10
  211. package/esm2015/routing/daffodil-category-routing.js +2 -7
  212. package/esm2015/routing/index.js +2 -7
  213. package/esm2015/routing/public_api.js +2 -7
  214. package/esm2015/routing/resolvers/category-page/category-page.resolver.js +2 -21
  215. package/esm2015/routing/resolvers/category-page-id/category-page-id.resolver.js +2 -33
  216. package/esm2015/routing/resolvers/category-page-url/category-page-url.resolver.js +9 -44
  217. package/esm2015/routing/resolvers/public_api.js +1 -6
  218. package/esm2015/state/actions/category-page-filter.actions.js +12 -64
  219. package/esm2015/state/actions/category-page.actions.js +12 -79
  220. package/esm2015/state/actions/category.actions.js +8 -39
  221. package/esm2015/state/category-state.module.js +1 -6
  222. package/esm2015/state/daffodil-category-state.js +2 -7
  223. package/esm2015/state/effects/category-page-filter.effects.js +4 -71
  224. package/esm2015/state/effects/category-page.effects.js +9 -101
  225. package/esm2015/state/effects/category.effects.js +2 -46
  226. package/esm2015/state/facades/category-facade.interface.js +2 -135
  227. package/esm2015/state/facades/category.facade.js +4 -76
  228. package/esm2015/state/index.js +2 -7
  229. package/esm2015/state/public_api.js +6 -11
  230. package/esm2015/state/reducers/category/category-reducer-state.interface.js +2 -32
  231. package/esm2015/state/reducers/category/category.reducer.js +1 -11
  232. package/esm2015/state/reducers/category/pure/build-metadata-from-request.js +3 -20
  233. package/esm2015/state/reducers/category-entities/category-entities-adapter.js +1 -10
  234. package/esm2015/state/reducers/category-entities/category-entities.reducer.js +1 -10
  235. package/esm2015/state/reducers/category-reducers.interface.js +1 -33
  236. package/esm2015/state/reducers/category-reducers.js +1 -7
  237. package/esm2015/state/reducers/category-store-feature-key.js +1 -7
  238. package/esm2015/state/reducers/public_api.js +1 -6
  239. package/esm2015/state/selectors/category-entities/category-entities.selector.js +8 -71
  240. package/esm2015/state/selectors/category-feature.selector.js +5 -29
  241. package/esm2015/state/selectors/category-page/category-page.selector.js +28 -257
  242. package/esm2015/state/selectors/category.selector.js +13 -123
  243. package/esm2015/state/testing/category-testing.module.js +2 -7
  244. package/esm2015/state/testing/daffodil-category-state-testing.js +2 -7
  245. package/esm2015/state/testing/index.js +2 -7
  246. package/esm2015/state/testing/mock-category-facade.js +4 -69
  247. package/esm2015/state/testing/public_api.js +1 -6
  248. package/esm2015/testing/daffodil-category-testing.js +2 -7
  249. package/esm2015/testing/factories/category-page-metadata.factory.js +3 -30
  250. package/esm2015/testing/factories/category.factory.js +3 -32
  251. package/esm2015/testing/factories/filters/filter.factory.js +4 -30
  252. package/esm2015/testing/factories/filters/public_api.js +2 -7
  253. package/esm2015/testing/factories/filters/request.factory.js +3 -24
  254. package/esm2015/testing/factories/filters/toggle-request.js +4 -29
  255. package/esm2015/testing/factories/filters/type/equal/option.js +3 -18
  256. package/esm2015/testing/factories/filters/type/equal/public_api.js +1 -6
  257. package/esm2015/testing/factories/filters/type/equal/request.js +3 -16
  258. package/esm2015/testing/factories/filters/type/equal/toggle-request.js +3 -16
  259. package/esm2015/testing/factories/filters/type/equal.js +3 -18
  260. package/esm2015/testing/factories/filters/type/public_api.js +3 -8
  261. package/esm2015/testing/factories/filters/type/range-numeric/option.js +3 -14
  262. package/esm2015/testing/factories/filters/type/range-numeric/pair.js +3 -30
  263. package/esm2015/testing/factories/filters/type/range-numeric/public_api.js +1 -6
  264. package/esm2015/testing/factories/filters/type/range-numeric/request-option.js +3 -14
  265. package/esm2015/testing/factories/filters/type/range-numeric/request.js +3 -30
  266. package/esm2015/testing/factories/filters/type/range-numeric/toggle-request.js +3 -30
  267. package/esm2015/testing/factories/filters/type/range-numeric.js +3 -22
  268. package/esm2015/testing/factories/public_api.js +2 -7
  269. package/esm2015/testing/helpers/category-helper.js +2 -8
  270. package/esm2015/testing/index.js +2 -7
  271. package/esm2015/testing/public_api.js +2 -7
  272. package/fesm2015/daffodil-category-driver-in-memory.js +71 -167
  273. package/fesm2015/daffodil-category-driver-in-memory.js.map +1 -1
  274. package/fesm2015/daffodil-category-driver-magento-testing.js +9 -155
  275. package/fesm2015/daffodil-category-driver-magento-testing.js.map +1 -1
  276. package/fesm2015/daffodil-category-driver-magento.js +62 -506
  277. package/fesm2015/daffodil-category-driver-magento.js.map +1 -1
  278. package/fesm2015/daffodil-category-driver-testing.js +7 -70
  279. package/fesm2015/daffodil-category-driver-testing.js.map +1 -1
  280. package/fesm2015/daffodil-category-driver.js +1 -41
  281. package/fesm2015/daffodil-category-driver.js.map +1 -1
  282. package/fesm2015/daffodil-category-routing.js +11 -117
  283. package/fesm2015/daffodil-category-routing.js.map +1 -1
  284. package/fesm2015/daffodil-category-state-testing.js +6 -90
  285. package/fesm2015/daffodil-category-state-testing.js.map +1 -1
  286. package/fesm2015/daffodil-category-state.js +99 -1029
  287. package/fesm2015/daffodil-category-state.js.map +1 -1
  288. package/fesm2015/daffodil-category-testing.js +35 -391
  289. package/fesm2015/daffodil-category-testing.js.map +1 -1
  290. package/fesm2015/daffodil-category.js +166 -919
  291. package/fesm2015/daffodil-category.js.map +1 -1
  292. package/package.json +4 -4
  293. package/routing/daffodil-category-routing.metadata.json +1 -1
  294. package/routing/package.json +1 -1
  295. package/routing/resolvers/category-page-url/category-page-url.resolver.d.ts +2 -0
  296. package/state/package.json +1 -1
  297. package/state/testing/package.json +1 -1
  298. package/testing/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"daffodil-category-driver-magento.js","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/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"],"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 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\tuid\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\t}\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';\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): 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: category.products.items.map(product => product.sku),\n total_products: category.products.items.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),\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"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daffodil-category-driver-magento.js","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/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 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\tuid\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\t}\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';\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): 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: category.products.items.map(product => product.sku),\n total_products: category.products.items.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),\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\nexport {magentoCategoryTruncateUrl as ɵa} from './transformers/truncate-url';"],"names":[],"mappings":";;;;;;;;;;;;;AAMA;;;MAGa,0BAA0B,GAAG,CAAC,GAAW,KACpD,2BAA2B,CAAC,4BAA4B,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC;;ACP7F;;;MAGa,+BAA+B,GAAoC;IAC9E,WAAW,EAAE,IAAI;IACjB,qBAAqB,EAAE,0BAA0B;;;ACJnD;;;;MAIa,6BAA6B,GAAG,IAAI,cAAc,CAAkC,+BAA+B,EAAE,EAAE,OAAO,EAAE,MAAM,+BAA+B,EAAE;;MCNvK,wCAAwC,GAAG,wCAAwC;MAEnF,6BAA6B,GAAG,GAAG,CAAA;QACxC,wCAAwC;;;;;;;;;;;;MCHnC,oCAAoC,GAAG,0BAA0B;MAEjE,uBAAuB,GAAG,GAAG,CAAA;QAClC,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;MCI/B,oCAAoC,GAAG,qBAAqB;AACzE;;;;MAIa,uBAAuB,GAAG,CAAC,wBAAwC,EAAE,KAAK,GAAG,CAAA;QAClF,oCAAoC;;;;;;;QAOpC,2BAA2B,CAAC,GAAG,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;EA0B3D,sBAAsB;EACtB,2BAA2B,CAAC,GAAG,qBAAqB,CAAC;;;ICjD3C;AAAZ,WAAY,+BAA+B;IAC1C,+CAAY,CAAA;IACZ,4CAAS,CAAA;IACT,gDAAa,CAAA;IACb,4CAAS,CAAA;IACT,kDAAe,CAAA;AAChB,CAAC,EANW,+BAA+B,KAA/B,+BAA+B;;ICA/B;AAAZ,WAAY,wBAAwB;IACnC,6CAAiB,CAAA;IACjB,8CAAkB,CAAA;AACnB,CAAC,EAHW,wBAAwB,KAAxB,wBAAwB;;ACApC;IACY;AAAZ,WAAY,yBAAyB;IACnC,2DAA8B,CAAA;IAC9B,2DAA8B,CAAA;IAC9B,2DAA8B,CAAA;AAChC,CAAC,EAJW,yBAAyB,KAAzB,yBAAyB;;MCexB,yCAAyC;IAEpD,SAAS,CAAC,UAA8B,EAAE,WAAwC;QAChF,MAAM,cAAc,GAA2B;YAC7C,YAAY,EAAE;gBACZ,CAAC,+BAA+B,CAAC,KAAK,GAAG,UAAU;aACpD;SACF,CAAC;QAEF,IAAG,CAAC,WAAW,EAAE;YACf,OAAO,cAAc,CAAC;SACvB;QAED,WAAW,CAAC,OAAO,CAAC,MAAM;;;YAGxB,IAAG,MAAM,CAAC,IAAI,KAAK,sBAAsB,CAAC,YAAY,EAAE;gBACtD,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,iDACtB,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,GAC3B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,GACnD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CACrD,CAAC;aACH;iBAAM;gBACL,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,mCACtB,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,KAC9B,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,GACpF,CAAC;aACH;SACF,CAAC,CAAC;QAEH,OAAO,cAAc,CAAC;KACvB;;;;IAKO,eAAe,CAAC,IAA4B;QAClD,OAAO,IAAI,KAAK,sBAAsB,CAAC,KAAK;cACxC,+BAA+B,CAAC,EAAE;cAClC,+BAA+B,CAAC,KAAK,CAAC;KAC3C;;;;IAKO,cAAc,CAAC,IAA4B,EAAE,KAAyC;QAC5F,OAAO,IAAI,KAAK,sBAAsB,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;KACjE;IAEO,iBAAiB,CAAC,SAAiB;QACzC,OAAO,SAAS,KAAK,GAAG,GAAG,EAAE,CAAC,+BAA+B,CAAC,IAAI,GAAG,SAAS,EAAE,GAAG,IAAI,CAAC;KACzF;IAEO,eAAe,CAAC,OAAe;QACrC,OAAO,OAAO,KAAK,GAAG,GAAG,EAAE,CAAC,+BAA+B,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,IAAI,CAAC;KACnF;;;;YA1DF,UAAU,SAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;MCFY,4CAA4C;IAEvD,SAAS,CAAC,aAAqB,EAAE,gBAAuC;QACtE,OAAO;YACL,CAAC,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC;SAC3D,CAAC;KACH;IAEO,kBAAkB,CAAC,SAAgC;QACzD,IAAG,SAAS,KAAK,qBAAqB,CAAC,SAAS,EAAE;YAChD,OAAO,wBAAwB,CAAC,SAAS,CAAC;SAC3C;aAAM,IAAG,SAAS,KAAK,qBAAqB,CAAC,UAAU,EAAE;YACxD,OAAO,wBAAwB,CAAC,SAAS,CAAC;SAC3C;KACF;;;;YAjBF,UAAU,SAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;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;IAC9B,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM;QAC5C,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG;YAClB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC;QACF,OAAO,GAAG,CAAC;KACZ,EAAuC,EAAE,CAAC;CAC5C,CAAC;;ACfF;;;;AAIO,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;IACzG,OAAO,EAAE,EAAE;CACZ,CAAC;;ACXK,MAAM,kBAAkB,GAAG,CAAC,SAA6B;IAC9D,QAAQ,SAAS,CAAC,IAAI;QACpB,KAAK,yBAAyB,CAAC,KAAK;YAClC,OAAO,uBAAuB,CAAC,SAAS,CAAC,CAAC;QAC5C,KAAK,yBAAyB,CAAC,KAAK,CAAC;QACrC,KAAK,yBAAyB,CAAC,KAAK,CAAC;QACrC;YACE,OAAO,uBAAuB,CAAC,SAAS,CAAC,CAAC;KAC7C;AACH,CAAC;;SChBe,4BAA4B,CAAC,WAA8B;IACzE,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,WAAW,CAAC,OAAO,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC;IAE5F,uCACK,WAAW,KACd,OAAO,EAAE;YACP,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;SACxC,IACD;AACJ;;MCCa,+CAA+C;IAE1D,SAAS,CAAC,gBAAiD;QACzD,MAAM,2BAA2B,GAAG,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,IAAI,SAAS,CAAC,cAAc,KAAK,aAAa,CAAC,CAAC;QAEhI,OAAO;YACL,EAAE,EAAE,gBAAgB,CAAC,QAAQ,CAAC,GAAG;YACjC,SAAS,EAAE,gBAAgB,CAAC,SAAS,CAAC,SAAS;YAC/C,YAAY,EAAE,gBAAgB,CAAC,SAAS,CAAC,YAAY;YACrD,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;YAC3F,YAAY,EAAE;gBACZ,OAAO,EAAE,gBAAgB,CAAC,WAAW,CAAC,OAAO;gBAC7C,OAAO,EAAE,4BAA4B,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,OAAO;aAC5E;YACD,WAAW,EAAE,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC;;YAElE,sBAAsB,EAAE,IAAI;YAC5B,mBAAmB,EAAE,IAAI;SAC1B,CAAC;KACH;;;;YAxBF,UAAU,SAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;MCEY,qCAAqC;IAEhD,SAAS,CAAC,QAAyB;;QACjC,OAAO;YACL,EAAE,EAAE,QAAQ,CAAC,GAAG;YAChB,GAAG,EAAE,GAAG,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,UAAU,EAAE;YACjD,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,OAAA,QAAQ,CAAC,WAAW,0CAC7B,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC,EACjE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,MAAK,IAAI;YAC5C,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC;YAChE,cAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM;SAC/C,CAAC;KACH;IAEO,mBAAmB,CAAC,UAA6B,EAAE,QAAyB;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,GAAG,QAAQ,CAAC,UAAU,EAAE;SAC9D,CAAC;KACH;;;;YA9BF,UAAU,SAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;MCFY,2CAA2C;IAEtD,YACU,iCAAwE,EACxE,kDAAmG,EACrG,+BAA+D;QAF7D,sCAAiC,GAAjC,iCAAiC,CAAuC;QACxE,uDAAkD,GAAlD,kDAAkD,CAAiD;QACrG,oCAA+B,GAA/B,+BAA+B,CAAgC;KACnE;IAEJ,SAAS,CAAC,gBAAiD,EAAE,QAAgB;QAC3E,qBACK,EAAE,+BAA+B,EAAE,gBAAgB,EAAE,IACxD,QAAQ,EAAE,IAAI,CAAC,iCAAiC,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EACrF,oBAAoB,EAAE,IAAI,CAAC,kDAAkD,CAAC,SAAS,CAAC,gBAAgB,CAAC,EACzG,QAAQ,EAAE,IAAI,CAAC,+BAA+B,CAAC,4BAA4B,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAChH;KACH;;;;YAlBF,UAAU,SAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;YAJQ,qCAAqC;YADrC,+CAA+C;YAH/C,8BAA8B;;;ACGhC,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;;SCDnF,4BAA4B,CAC1C,iBAAwD,EACxD,mBAA+C;IAG/C,uCACK,mBAAmB,KACtB,QAAQ,kCACH,mBAAmB,CAAC,QAAQ,KAC/B,YAAY,EAAE;gBACZ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,SAAS,sCACtD,SAAS,KACZ,IAAI,EAAE,uBAAuB,CAAC,SAAS,EAAE,iBAAiB,CAAC,IAC3D,CAAC;aACJ,OAEH;AACJ;;AC6BA,MAAM,sBAAsB,GAAG,CAAC,QAAqC,EAAE,QAAiC,sCACnG,QAAQ,KACX,oBAAoB,kCACf,QAAQ,CAAC,oBAAoB,KAChC,OAAO,EAAE,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC,OAEtF,CAAC;;AAEH;;;;;MAQa,0BAA0B;IAErC,YACU,MAAc,EAChB,kCAA+E,EAC/E,gCAA2E,EAC3E,6BAA2E,EAClC,MAAuC,EACxC,aAA6C,EACrB,qBAAqC;QANnG,WAAM,GAAN,MAAM,CAAQ;QAChB,uCAAkC,GAAlC,kCAAkC,CAA6C;QAC/E,qCAAgC,GAAhC,gCAAgC,CAA2C;QAC3E,kCAA6B,GAA7B,6BAA6B,CAA8C;QAClC,WAAM,GAAN,MAAM,CAAiC;QACxC,kBAAa,GAAb,aAAa,CAAgC;QACrB,0BAAqB,GAArB,qBAAqB,CAAgB;KACzG;;IAGJ,GAAG,CAAC,eAAsC;QACxC,OAAO,aAAa,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAA8B;gBAC7C,KAAK,EAAE,uBAAuB;gBAC9B,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,eAAe,CAAC,EAAE,EAAE,EAAC,EAAC;aACnE,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAwC;gBACvD,KAAK,EAAE,6BAA6B;aACrC,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,KAAK,CAA6B;gBAC5C,KAAK,EAAE,uBAAuB,CAAC,IAAI,CAAC,qBAAqB,CAAC;gBAC1D,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;cAC/D,MAAM,CACT,CACF,CAAC;KACH;IAED,QAAQ,CAAC,eAAuC;QAC9C,OAAO,aAAa,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAA8B;gBAC7C,KAAK,EAAE,uBAAuB;gBAC9B,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE;4BAChC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;kCACvB,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,eAAe,CAAC,GAAG,CAAC;kCACtD,eAAe,CAAC,GAAG;yBACxB,EAAC,EAAC;aACJ,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAwC;gBACvD,KAAK,EAAE,6BAA6B;aACrC,CAAC;SACH,CAAC,CAAC,IAAI,CACL,SAAS,CAAC,CAAC,CACT,QAAQ,EACR,WAAW,EACZ;;YAAK,OAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAA6B;gBAClD,KAAK,EAAE,uBAAuB,CAAC,IAAI,CAAC,qBAAqB,CAAC;gBAC1D,SAAS,EAAE,IAAI,CAAC,yBAAyB,iCACpC,eAAe,KAClB,EAAE,QAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,0CAAE,GAAG,EACtC,IAAI,EAAE,uBAAuB,CAAC,EAAE,IAChC;aACH,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;kBACzC,sBAAsB,CAAC,eAAe,CAAC,eAAe,EAAE,MAAM,CAAC;kBAC/D,MAAM,CACT,CACF,CAAA;SAAA,CAAC,CACH,CAAC;KACH;IAEO,yBAAyB,CAAC,OAA8B;QAC9D,MAAM,cAAc,GAAG;YACrB,MAAM,EAAE,IAAI,CAAC,gCAAgC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,eAAe,CAAC;SAC7F,CAAC;QACF,IAAG,OAAO,CAAC,SAAS,EAAE;YACpB,cAAc,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;SAChD;QACD,IAAG,OAAO,CAAC,YAAY,EAAE;YACvB,cAAc,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;SACtD;QACD,IAAG,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,sBAAsB,EAAE;YAChE,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,6BAA6B,CAAC,SAAS,CAAC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;SACpI;QAED,OAAO,cAAc,CAAC;KACvB;IAEO,iBAAiB,CACvB,gBAA6C,EAC7C,mBAA0D,EAC1D,gBAA4C,EAC5C,QAAgB;QAEhB,MAAM,YAAY,GAAG,4BAA4B,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC;QACzF,MAAM,gBAAgB,GAAG;YACvB,QAAQ,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;YAC1C,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,CAAC,KAAK;YACzC,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC,YAAY;YAC9C,WAAW,EAAE,YAAY,CAAC,QAAQ,CAAC,WAAW;YAC9C,WAAW,EAAE,gBAAgB,CAAC,QAAQ,CAAC,WAAW;YAClD,SAAS,EAAE,gBAAgB,CAAC,QAAQ,CAAC,SAAS;SAC/C,CAAC;QAEF,OAAO,IAAI,CAAC,kCAAkC,CAAC,SAAS,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;KACtF;;;;YA9GF,UAAU,SAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;YA/DQ,MAAM;YA0Cb,2CAA2C;YAC3C,yCAAyC;YACzC,4CAA4C;4CA2BzC,MAAM,SAAC,6BAA6B;4CACpC,MAAM,SAAC,4BAA4B;wCACnC,MAAM,SAAC,oDAAoD;;;ACrDhE;;;;MASa,+BAA+B;IAC1C,OAAO,OAAO,CAAC,SAA0C,+BAA+B;QACtF,OAAO;YACL,QAAQ,EAAE,+BAA+B;YACzC,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,kBAAkB;oBAC3B,WAAW,EAAE,0BAA0B;iBACxC;gBACD,+CAA+C;gBAC/C,2CAA2C;gBAC3C,qCAAqC;gBACrC,yCAAyC;gBACzC,4CAA4C;gBAC5C;oBACE,OAAO,EAAE,iCAAiC;oBAC1C,QAAQ,EAAE,oCAAoC;oBAC9C,KAAK,EAAE,IAAI;iBACZ;gBACD;oBACE,OAAO,EAAE,iCAAiC;oBAC1C,QAAQ,EAAE,wCAAwC;oBAClD,KAAK,EAAE,IAAI;iBACZ;gBACD;oBACE,OAAO,EAAE,iCAAiC;oBAC1C,QAAQ,EAAE,oCAAoC;oBAC9C,KAAK,EAAE,IAAI;iBACZ;gBACD;oBACE,OAAO,EAAE,6BAA6B;oBACtC,QAAQ,kCACH,+BAA+B,GAC/B,MAAM,CACV;iBACF;aACF;SACF,CAAC;KACH;;;YA3CF,QAAQ,SAAC;gBACR,OAAO,EAAE;oBACP,YAAY;iBACb;aACF;;;AChCD;;;;;;"}
@@ -1,35 +1,21 @@
1
- import { Injectable, ɵɵdefineInjectable, ɵɵinject, NgModule } from '@angular/core';
1
+ import { ɵɵdefineInjectable, ɵɵinject, Injectable, NgModule } from '@angular/core';
2
2
  import { of } from 'rxjs';
3
3
  import { DaffCategoryFactory, DaffCategoryPageMetadataFactory } from '@daffodil/category/testing';
4
- import { DaffProductFactory, DaffDefaultProductFactory } from '@daffodil/product/testing';
4
+ import { DaffDefaultProductFactory, DaffProductFactory } from '@daffodil/product/testing';
5
5
  import { CommonModule } from '@angular/common';
6
6
  import { DaffCategoryDriver } from '@daffodil/category/driver';
7
7
 
8
8
  /**
9
- * @fileoverview added by tsickle
10
- * Generated from: drivers/category.service.ts
11
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
12
- */
13
- /**
14
- * The category testing driver to mock {\@link DaffCategoryServiceInterface}.
9
+ * The category testing driver to mock {@link DaffCategoryServiceInterface}.
15
10
  *
16
- * \@inheritdoc
11
+ * @inheritdoc
17
12
  */
18
13
  class DaffTestingCategoryService {
19
- /**
20
- * @param {?} categoryFactory
21
- * @param {?} categoryPageMetadataFactory
22
- * @param {?} productFactory
23
- */
24
14
  constructor(categoryFactory, categoryPageMetadataFactory, productFactory) {
25
15
  this.categoryFactory = categoryFactory;
26
16
  this.categoryPageMetadataFactory = categoryPageMetadataFactory;
27
17
  this.productFactory = productFactory;
28
18
  }
29
- /**
30
- * @param {?} categoryRequest
31
- * @return {?}
32
- */
33
19
  get(categoryRequest) {
34
20
  return of({
35
21
  category: this.categoryFactory.create(),
@@ -37,10 +23,6 @@ class DaffTestingCategoryService {
37
23
  products: this.productFactory.createMany(3),
38
24
  });
39
25
  }
40
- /**
41
- * @param {?} categoryRequest
42
- * @return {?}
43
- */
44
26
  getByUrl(categoryRequest) {
45
27
  return of({
46
28
  category: this.categoryFactory.create(),
@@ -49,6 +31,7 @@ class DaffTestingCategoryService {
49
31
  });
50
32
  }
51
33
  }
34
+ /** @nocollapse */ DaffTestingCategoryService.ɵprov = ɵɵdefineInjectable({ factory: function DaffTestingCategoryService_Factory() { return new DaffTestingCategoryService(ɵɵinject(DaffCategoryFactory), ɵɵinject(DaffCategoryPageMetadataFactory), ɵɵinject(DaffDefaultProductFactory)); }, token: DaffTestingCategoryService, providedIn: "root" });
52
35
  DaffTestingCategoryService.decorators = [
53
36
  { type: Injectable, args: [{
54
37
  providedIn: 'root',
@@ -60,37 +43,11 @@ DaffTestingCategoryService.ctorParameters = () => [
60
43
  { type: DaffCategoryPageMetadataFactory },
61
44
  { type: DaffProductFactory }
62
45
  ];
63
- /** @nocollapse */ DaffTestingCategoryService.ɵprov = ɵɵdefineInjectable({ factory: function DaffTestingCategoryService_Factory() { return new DaffTestingCategoryService(ɵɵinject(DaffCategoryFactory), ɵɵinject(DaffCategoryPageMetadataFactory), ɵɵinject(DaffDefaultProductFactory)); }, token: DaffTestingCategoryService, providedIn: "root" });
64
- if (false) {
65
- /**
66
- * @type {?}
67
- * @private
68
- */
69
- DaffTestingCategoryService.prototype.categoryFactory;
70
- /**
71
- * @type {?}
72
- * @private
73
- */
74
- DaffTestingCategoryService.prototype.categoryPageMetadataFactory;
75
- /**
76
- * @type {?}
77
- * @private
78
- */
79
- DaffTestingCategoryService.prototype.productFactory;
80
- }
81
46
 
82
47
  /**
83
- * @fileoverview added by tsickle
84
- * Generated from: drivers/category-driver.module.ts
85
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
86
- */
87
- /**
88
- * A module for providing the {\@link DaffTestingCategoryService} for the {\@link DaffCategoryDriver} token.
48
+ * A module for providing the {@link DaffTestingCategoryService} for the {@link DaffCategoryDriver} token.
89
49
  */
90
50
  class DaffCategoryTestingDriverModule {
91
- /**
92
- * @return {?}
93
- */
94
51
  static forRoot() {
95
52
  return {
96
53
  ngModule: DaffCategoryTestingDriverModule,
@@ -112,27 +69,7 @@ DaffCategoryTestingDriverModule.decorators = [
112
69
  ];
113
70
 
114
71
  /**
115
- * @fileoverview added by tsickle
116
- * Generated from: drivers/public_api.ts
117
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
118
- */
119
-
120
- /**
121
- * @fileoverview added by tsickle
122
- * Generated from: public_api.ts
123
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
124
- */
125
-
126
- /**
127
- * @fileoverview added by tsickle
128
- * Generated from: index.ts
129
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
130
- */
131
-
132
- /**
133
- * @fileoverview added by tsickle
134
- * Generated from: daffodil-category-driver-testing.ts
135
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
72
+ * Generated bundle index. Do not edit.
136
73
  */
137
74
 
138
75
  export { DaffCategoryTestingDriverModule, DaffTestingCategoryService };
@@ -1 +1 @@
1
- {"version":3,"file":"daffodil-category-driver-testing.js","sources":["../../../libs/category/driver/testing/src/drivers/category.service.ts","../../../libs/category/driver/testing/src/drivers/category-driver.module.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport {\n Observable,\n of,\n} from 'rxjs';\n\nimport {\n DaffGetCategoryResponse,\n DaffCategoryIdRequest,\n DaffCategoryUrlRequest,\n} from '@daffodil/category';\nimport { DaffCategoryServiceInterface } from '@daffodil/category/driver';\nimport {\n DaffCategoryFactory,\n DaffCategoryPageMetadataFactory,\n} from '@daffodil/category/testing';\nimport { DaffProductFactory } from '@daffodil/product/testing';\n\n/**\n * The category testing driver to mock {@link DaffCategoryServiceInterface}.\n *\n * @inheritdoc\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffTestingCategoryService implements DaffCategoryServiceInterface {\n\n constructor(\n private categoryFactory: DaffCategoryFactory,\n private categoryPageMetadataFactory: DaffCategoryPageMetadataFactory,\n private productFactory: DaffProductFactory,\n ) {}\n\n get(categoryRequest: DaffCategoryIdRequest): Observable<DaffGetCategoryResponse> {\n return of({\n category: this.categoryFactory.create(),\n categoryPageMetadata: this.categoryPageMetadataFactory.create(),\n products: this.productFactory.createMany(3),\n });\n }\n\n getByUrl(categoryRequest: DaffCategoryUrlRequest): Observable<DaffGetCategoryResponse> {\n return of({\n category: this.categoryFactory.create(),\n categoryPageMetadata: this.categoryPageMetadataFactory.create(),\n products: this.productFactory.createMany(3),\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n NgModule,\n ModuleWithProviders,\n} from '@angular/core';\n\nimport { DaffCategoryDriver } from '@daffodil/category/driver';\n\nimport { DaffTestingCategoryService } from './category.service';\n\n/**\n * A module for providing the {@link DaffTestingCategoryService} for the {@link DaffCategoryDriver} token.\n */\n@NgModule({\n imports: [\n CommonModule,\n ],\n})\nexport class DaffCategoryTestingDriverModule {\n static forRoot(): ModuleWithProviders<DaffCategoryTestingDriverModule> {\n return {\n ngModule: DaffCategoryTestingDriverModule,\n providers: [\n {\n provide: DaffCategoryDriver,\n useExisting: DaffTestingCategoryService,\n },\n ],\n };\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;MA0Ba,0BAA0B;;;;;;IAErC,YACU,eAAoC,EACpC,2BAA4D,EAC5D,cAAkC;QAFlC,oBAAe,GAAf,eAAe,CAAqB;QACpC,gCAA2B,GAA3B,2BAA2B,CAAiC;QAC5D,mBAAc,GAAd,cAAc,CAAoB;KACxC;;;;;IAEJ,GAAG,CAAC,eAAsC;QACxC,OAAO,EAAE,CAAC;YACR,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;YACvC,oBAAoB,EAAE,IAAI,CAAC,2BAA2B,CAAC,MAAM,EAAE;YAC/D,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;SAC5C,CAAC,CAAC;KACJ;;;;;IAED,QAAQ,CAAC,eAAuC;QAC9C,OAAO,EAAE,CAAC;YACR,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;YACvC,oBAAoB,EAAE,IAAI,CAAC,2BAA2B,CAAC,MAAM,EAAE;YAC/D,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;SAC5C,CAAC,CAAC;KACJ;;;YAzBF,UAAU,SAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;YAZC,mBAAmB;YACnB,+BAA+B;YAExB,kBAAkB;;;;;;;;IAavB,qDAA4C;;;;;IAC5C,iEAAoE;;;;;IACpE,oDAA0C;;;;;;;;;;;MCbjC,+BAA+B;;;;IAC1C,OAAO,OAAO;QACZ,OAAO;YACL,QAAQ,EAAE,+BAA+B;YACzC,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,kBAAkB;oBAC3B,WAAW,EAAE,0BAA0B;iBACxC;aACF;SACF,CAAC;KACH;;;YAhBF,QAAQ,SAAC;gBACR,OAAO,EAAE;oBACP,YAAY;iBACb;aACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"daffodil-category-driver-testing.js","sources":["../../../libs/category/driver/testing/src/drivers/category.service.ts","../../../libs/category/driver/testing/src/drivers/category-driver.module.ts","../../../libs/category/driver/testing/src/daffodil-category-driver-testing.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport {\n Observable,\n of,\n} from 'rxjs';\n\nimport {\n DaffGetCategoryResponse,\n DaffCategoryIdRequest,\n DaffCategoryUrlRequest,\n} from '@daffodil/category';\nimport { DaffCategoryServiceInterface } from '@daffodil/category/driver';\nimport {\n DaffCategoryFactory,\n DaffCategoryPageMetadataFactory,\n} from '@daffodil/category/testing';\nimport { DaffProductFactory } from '@daffodil/product/testing';\n\n/**\n * The category testing driver to mock {@link DaffCategoryServiceInterface}.\n *\n * @inheritdoc\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffTestingCategoryService implements DaffCategoryServiceInterface {\n\n constructor(\n private categoryFactory: DaffCategoryFactory,\n private categoryPageMetadataFactory: DaffCategoryPageMetadataFactory,\n private productFactory: DaffProductFactory,\n ) {}\n\n get(categoryRequest: DaffCategoryIdRequest): Observable<DaffGetCategoryResponse> {\n return of({\n category: this.categoryFactory.create(),\n categoryPageMetadata: this.categoryPageMetadataFactory.create(),\n products: this.productFactory.createMany(3),\n });\n }\n\n getByUrl(categoryRequest: DaffCategoryUrlRequest): Observable<DaffGetCategoryResponse> {\n return of({\n category: this.categoryFactory.create(),\n categoryPageMetadata: this.categoryPageMetadataFactory.create(),\n products: this.productFactory.createMany(3),\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n NgModule,\n ModuleWithProviders,\n} from '@angular/core';\n\nimport { DaffCategoryDriver } from '@daffodil/category/driver';\n\nimport { DaffTestingCategoryService } from './category.service';\n\n/**\n * A module for providing the {@link DaffTestingCategoryService} for the {@link DaffCategoryDriver} token.\n */\n@NgModule({\n imports: [\n CommonModule,\n ],\n})\nexport class DaffCategoryTestingDriverModule {\n static forRoot(): ModuleWithProviders<DaffCategoryTestingDriverModule> {\n return {\n ngModule: DaffCategoryTestingDriverModule,\n providers: [\n {\n provide: DaffCategoryDriver,\n useExisting: DaffTestingCategoryService,\n },\n ],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAkBA;;;;;MAQa,0BAA0B;IAErC,YACU,eAAoC,EACpC,2BAA4D,EAC5D,cAAkC;QAFlC,oBAAe,GAAf,eAAe,CAAqB;QACpC,gCAA2B,GAA3B,2BAA2B,CAAiC;QAC5D,mBAAc,GAAd,cAAc,CAAoB;KACxC;IAEJ,GAAG,CAAC,eAAsC;QACxC,OAAO,EAAE,CAAC;YACR,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;YACvC,oBAAoB,EAAE,IAAI,CAAC,2BAA2B,CAAC,MAAM,EAAE;YAC/D,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;SAC5C,CAAC,CAAC;KACJ;IAED,QAAQ,CAAC,eAAuC;QAC9C,OAAO,EAAE,CAAC;YACR,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;YACvC,oBAAoB,EAAE,IAAI,CAAC,2BAA2B,CAAC,MAAM,EAAE;YAC/D,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;SAC5C,CAAC,CAAC;KACJ;;;;YAzBF,UAAU,SAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;YAZC,mBAAmB;YACnB,+BAA+B;YAExB,kBAAkB;;;ACN3B;;;MAQa,+BAA+B;IAC1C,OAAO,OAAO;QACZ,OAAO;YACL,QAAQ,EAAE,+BAA+B;YACzC,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,kBAAkB;oBAC3B,WAAW,EAAE,0BAA0B;iBACxC;aACF;SACF,CAAC;KACH;;;YAhBF,QAAQ,SAAC;gBACR,OAAO,EAAE;oBACP,YAAY;iBACb;aACF;;;ACjBD;;;;;;"}
@@ -1,51 +1,11 @@
1
1
  import { InjectionToken } from '@angular/core';
2
2
 
3
- /**
4
- * @fileoverview added by tsickle
5
- * Generated from: interfaces/category-service.interface.ts
6
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
7
- */
8
- /**
9
- * An interface for category service drivers.
10
- * @record
11
- * @template V, W
12
- */
13
- function DaffCategoryServiceInterface() { }
14
- if (false) {
15
- /**
16
- * Fetch a category by its ID.
17
- * @param {?} categoryRequest
18
- * @return {?}
19
- */
20
- DaffCategoryServiceInterface.prototype.get = function (categoryRequest) { };
21
- /**
22
- * Fetch a category by its associated URL.
23
- * @param {?} categoryRequest
24
- * @return {?}
25
- */
26
- DaffCategoryServiceInterface.prototype.getByUrl = function (categoryRequest) { };
27
- }
28
3
  //TODO(damienwebdev): This any generic is necessary until we ship Ivy packages, do not change it.
29
4
  //See: https://github.com/ng-packagr/ng-packagr/issues/1844
30
- /** @type {?} */
31
5
  const DaffCategoryDriver = new InjectionToken('DaffCategoryDriver');
32
6
 
33
7
  /**
34
- * @fileoverview added by tsickle
35
- * Generated from: public_api.ts
36
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
37
- */
38
-
39
- /**
40
- * @fileoverview added by tsickle
41
- * Generated from: index.ts
42
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
43
- */
44
-
45
- /**
46
- * @fileoverview added by tsickle
47
- * Generated from: daffodil-category-driver.ts
48
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
8
+ * Generated bundle index. Do not edit.
49
9
  */
50
10
 
51
11
  export { DaffCategoryDriver };
@@ -1 +1 @@
1
- {"version":3,"file":"daffodil-category-driver.js","sources":["../../../libs/category/driver/src/interfaces/category-service.interface.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"],"names":[],"mappings":";;;;;;;;;;;;2CA2BC;;;;;;;IALC,4EAAuF;;;;;;IAIvF,iFAA6F;;;;;MAKlF,kBAAkB,GAAG,IAAI,cAAc,CAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"daffodil-category-driver.js","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;;;;;;"}
@@ -1,4 +1,4 @@
1
- import { Injectable, Inject, PLATFORM_ID, ɵɵdefineInjectable, ɵɵinject } from '@angular/core';
1
+ import { ɵɵdefineInjectable, ɵɵinject, PLATFORM_ID, Injectable, Inject } from '@angular/core';
2
2
  import { isPlatformBrowser } from '@angular/common';
3
3
  import { ofType } from '@ngrx/effects';
4
4
  import { Store, ActionsSubject } from '@ngrx/store';
@@ -8,30 +8,16 @@ import { DaffCategoryRequestKind } from '@daffodil/category';
8
8
  import { DaffCategoryPageLoad, DaffCategoryPageActionTypes, DaffCategoryPageLoadByUrl } from '@daffodil/category/state';
9
9
  import { DaffRoutingUriNormalizer } from '@daffodil/core/routing';
10
10
 
11
- /**
12
- * @fileoverview added by tsickle
13
- * Generated from: resolvers/category-page-id/category-page-id.resolver.ts
14
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
15
- */
16
11
  /**
17
12
  * Resolves category data for category pages, and will only resolve the url after a category request succeeds or fails. This resolver expects a url
18
13
  * of the form `some/url/{id}` where `{id}` is the category id.
19
14
  */
20
15
  class DaffCategoryPageIdResolver {
21
- /**
22
- * @param {?} platformId
23
- * @param {?} store
24
- * @param {?} dispatcher
25
- */
26
16
  constructor(platformId, store, dispatcher) {
27
17
  this.platformId = platformId;
28
18
  this.store = store;
29
19
  this.dispatcher = dispatcher;
30
20
  }
31
- /**
32
- * @param {?} route
33
- * @return {?}
34
- */
35
21
  resolve(route) {
36
22
  this.store.dispatch(new DaffCategoryPageLoad({
37
23
  id: route.paramMap.get('id'),
@@ -40,6 +26,7 @@ class DaffCategoryPageIdResolver {
40
26
  return isPlatformBrowser(this.platformId) ? of(true) : this.dispatcher.pipe(ofType(DaffCategoryPageActionTypes.CategoryPageLoadSuccessAction, DaffCategoryPageActionTypes.CategoryPageLoadFailureAction), mapTo(true), take(1));
41
27
  }
42
28
  }
29
+ /** @nocollapse */ DaffCategoryPageIdResolver.ɵprov = ɵɵdefineInjectable({ factory: function DaffCategoryPageIdResolver_Factory() { return new DaffCategoryPageIdResolver(ɵɵinject(PLATFORM_ID), ɵɵinject(Store), ɵɵinject(ActionsSubject)); }, token: DaffCategoryPageIdResolver, providedIn: "root" });
43
30
  DaffCategoryPageIdResolver.decorators = [
44
31
  { type: Injectable, args: [{
45
32
  providedIn: 'root',
@@ -51,30 +38,7 @@ DaffCategoryPageIdResolver.ctorParameters = () => [
51
38
  { type: Store },
52
39
  { type: ActionsSubject }
53
40
  ];
54
- /** @nocollapse */ DaffCategoryPageIdResolver.ɵprov = ɵɵdefineInjectable({ factory: function DaffCategoryPageIdResolver_Factory() { return new DaffCategoryPageIdResolver(ɵɵinject(PLATFORM_ID), ɵɵinject(Store), ɵɵinject(ActionsSubject)); }, token: DaffCategoryPageIdResolver, providedIn: "root" });
55
- if (false) {
56
- /**
57
- * @type {?}
58
- * @private
59
- */
60
- DaffCategoryPageIdResolver.prototype.platformId;
61
- /**
62
- * @type {?}
63
- * @private
64
- */
65
- DaffCategoryPageIdResolver.prototype.store;
66
- /**
67
- * @type {?}
68
- * @private
69
- */
70
- DaffCategoryPageIdResolver.prototype.dispatcher;
71
- }
72
41
 
73
- /**
74
- * @fileoverview added by tsickle
75
- * Generated from: resolvers/category-page/category-page.resolver.ts
76
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
77
- */
78
42
  /**
79
43
  * Resolves category data for category pages, and will only resolve the url after a category request succeeds or fails. This resolver expects a url
80
44
  * of the form `some/url/{id}` where `{id}` is the category id.
@@ -83,20 +47,14 @@ if (false) {
83
47
  * @see DaffCategoryPageIdResolver
84
48
  */
85
49
  class DaffCategoryPageResolver {
86
- /**
87
- * @param {?} categoryPageIdResolver
88
- */
89
50
  constructor(categoryPageIdResolver) {
90
51
  this.categoryPageIdResolver = categoryPageIdResolver;
91
52
  }
92
- /**
93
- * @param {?} route
94
- * @return {?}
95
- */
96
53
  resolve(route) {
97
54
  return this.categoryPageIdResolver.resolve(route);
98
55
  }
99
56
  }
57
+ /** @nocollapse */ DaffCategoryPageResolver.ɵprov = ɵɵdefineInjectable({ factory: function DaffCategoryPageResolver_Factory() { return new DaffCategoryPageResolver(ɵɵinject(DaffCategoryPageIdResolver)); }, token: DaffCategoryPageResolver, providedIn: "root" });
100
58
  DaffCategoryPageResolver.decorators = [
101
59
  { type: Injectable, args: [{
102
60
  providedIn: 'root',
@@ -106,52 +64,31 @@ DaffCategoryPageResolver.decorators = [
106
64
  DaffCategoryPageResolver.ctorParameters = () => [
107
65
  { type: DaffCategoryPageIdResolver }
108
66
  ];
109
- /** @nocollapse */ DaffCategoryPageResolver.ɵprov = ɵɵdefineInjectable({ factory: function DaffCategoryPageResolver_Factory() { return new DaffCategoryPageResolver(ɵɵinject(DaffCategoryPageIdResolver)); }, token: DaffCategoryPageResolver, providedIn: "root" });
110
- if (false) {
111
- /**
112
- * @type {?}
113
- * @private
114
- */
115
- DaffCategoryPageResolver.prototype.categoryPageIdResolver;
116
- }
117
67
 
118
- /**
119
- * @fileoverview added by tsickle
120
- * Generated from: resolvers/category-page-url/category-page-url.resolver.ts
121
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
122
- */
68
+ const getPage = (route) => route.queryParams.p || route.queryParams.page;
69
+ const ɵ0 = getPage;
123
70
  /**
124
71
  * Resolves category data for category pages, and will only resolve the url
125
72
  * after a category request succeeds or fails. This resolver will take a full
126
73
  * a url of the form `some/url.html(secondary:outlet)?query=param#fragment` and attempt to resolve a product from it.
127
74
  * Assumes that the URL to be resolved is the primary outlet.
75
+ *
76
+ * Will check the `p` and `page` query params for a page number value.
128
77
  */
129
78
  class DaffCategoryPageUrlResolver {
130
- /**
131
- * @param {?} platformId
132
- * @param {?} store
133
- * @param {?} dispatcher
134
- * @param {?} urlNormalizer
135
- */
136
79
  constructor(platformId, store, dispatcher, urlNormalizer) {
137
80
  this.platformId = platformId;
138
81
  this.store = store;
139
82
  this.dispatcher = dispatcher;
140
83
  this.urlNormalizer = urlNormalizer;
141
84
  }
142
- /**
143
- * @param {?} route
144
- * @param {?} state
145
- * @return {?}
146
- */
147
85
  resolve(route, state) {
148
- this.store.dispatch(new DaffCategoryPageLoadByUrl({
149
- url: this.urlNormalizer.normalize(state.url),
150
- kind: DaffCategoryRequestKind.URL,
151
- }));
86
+ const currentPage = getPage(route);
87
+ this.store.dispatch(new DaffCategoryPageLoadByUrl(Object.assign({ url: this.urlNormalizer.normalize(state.url), kind: DaffCategoryRequestKind.URL }, (currentPage ? { current_page: Number(currentPage) } : {}))));
152
88
  return isPlatformBrowser(this.platformId) ? of(true) : this.dispatcher.pipe(ofType(DaffCategoryPageActionTypes.CategoryPageLoadSuccessAction, DaffCategoryPageActionTypes.CategoryPageLoadFailureAction), mapTo(true), take(1));
153
89
  }
154
90
  }
91
+ /** @nocollapse */ DaffCategoryPageUrlResolver.ɵprov = ɵɵdefineInjectable({ factory: function DaffCategoryPageUrlResolver_Factory() { return new DaffCategoryPageUrlResolver(ɵɵinject(PLATFORM_ID), ɵɵinject(Store), ɵɵinject(ActionsSubject), ɵɵinject(DaffRoutingUriNormalizer)); }, token: DaffCategoryPageUrlResolver, providedIn: "root" });
155
92
  DaffCategoryPageUrlResolver.decorators = [
156
93
  { type: Injectable, args: [{
157
94
  providedIn: 'root',
@@ -164,52 +101,9 @@ DaffCategoryPageUrlResolver.ctorParameters = () => [
164
101
  { type: ActionsSubject },
165
102
  { type: DaffRoutingUriNormalizer }
166
103
  ];
167
- /** @nocollapse */ DaffCategoryPageUrlResolver.ɵprov = ɵɵdefineInjectable({ factory: function DaffCategoryPageUrlResolver_Factory() { return new DaffCategoryPageUrlResolver(ɵɵinject(PLATFORM_ID), ɵɵinject(Store), ɵɵinject(ActionsSubject), ɵɵinject(DaffRoutingUriNormalizer)); }, token: DaffCategoryPageUrlResolver, providedIn: "root" });
168
- if (false) {
169
- /**
170
- * @type {?}
171
- * @private
172
- */
173
- DaffCategoryPageUrlResolver.prototype.platformId;
174
- /**
175
- * @type {?}
176
- * @private
177
- */
178
- DaffCategoryPageUrlResolver.prototype.store;
179
- /**
180
- * @type {?}
181
- * @private
182
- */
183
- DaffCategoryPageUrlResolver.prototype.dispatcher;
184
- /**
185
- * @type {?}
186
- * @private
187
- */
188
- DaffCategoryPageUrlResolver.prototype.urlNormalizer;
189
- }
190
-
191
- /**
192
- * @fileoverview added by tsickle
193
- * Generated from: resolvers/public_api.ts
194
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
195
- */
196
-
197
- /**
198
- * @fileoverview added by tsickle
199
- * Generated from: public_api.ts
200
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
201
- */
202
-
203
- /**
204
- * @fileoverview added by tsickle
205
- * Generated from: index.ts
206
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
207
- */
208
104
 
209
105
  /**
210
- * @fileoverview added by tsickle
211
- * Generated from: daffodil-category-routing.ts
212
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
106
+ * Generated bundle index. Do not edit.
213
107
  */
214
108
 
215
109
  export { DaffCategoryPageIdResolver, DaffCategoryPageResolver, DaffCategoryPageUrlResolver };