@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.js","sources":["../../../libs/category/src/models/filters/type/category-filter-type.ts","../../../libs/category/src/models/filters/type/range/separator.ts","../../../libs/category/src/models/category-request.ts","../../../libs/category/src/filters/errors/codes.enum.ts","../../../libs/category/src/errors/codes.enum.ts","../../../libs/category/src/filters/errors/filter-not-found.error.ts","../../../libs/category/src/filters/errors/request-name-mismatch.error.ts","../../../libs/category/src/filters/errors/request-type-mismatch.error.ts","../../../libs/category/src/filters/errors/unknown-filter-type.error.ts","../../../libs/category/src/filters/errors/map.ts","../../../libs/category/src/errors/map.ts","../../../libs/category/src/injection-tokens/error-matcher.token.ts","../../../libs/category/src/filters/type/equal/behaviors/apply/apply.ts","../../../libs/category/src/filters/type/range/compute-pair-label.ts","../../../libs/category/src/filters/type/range/behaviors/apply/apply.ts","../../../libs/category/src/filters/validators/request-name-match.ts","../../../libs/category/src/filters/validators/request-type-match.ts","../../../libs/category/src/filters/behaviors/apply/apply-filter.ts","../../../libs/category/src/filters/behaviors/apply/apply-request-to-filters.ts","../../../libs/category/src/filters/behaviors/apply/apply-requests-to-filters.ts","../../../libs/category/src/filters/type/equal/behaviors/clear/clear.ts","../../../libs/category/src/filters/type/range/behaviors/clear/clear.ts","../../../libs/category/src/filters/behaviors/clear/clear-filter.ts","../../../libs/category/src/filters/behaviors/clear/clear-filters.ts","../../../libs/category/src/filters/type/equal/behaviors/remove/remove.ts","../../../libs/category/src/filters/type/range/behaviors/remove/remove.ts","../../../libs/category/src/filters/behaviors/remove/remove-filter.ts","../../../libs/category/src/filters/behaviors/remove/remove-request-from-filters.ts","../../../libs/category/src/filters/behaviors/remove/remove-requests-from-filters.ts","../../../libs/category/src/filters/type/equal/behaviors/toggle/toggle.ts","../../../libs/category/src/filters/type/range/behaviors/toggle/toggle.ts","../../../libs/category/src/filters/behaviors/toggle/toggle.ts","../../../libs/category/src/filters/behaviors/toggle/toggle-request-on-filters.ts","../../../libs/category/src/filters/type/equal/is-applied/is-applied.ts","../../../libs/category/src/filters/type/range/is-applied/is-applied.ts","../../../libs/category/src/filters/is-applied/is-filter-applied.ts","../../../libs/category/src/filters/type/equal/is-applied/is-toggle-request-applied-to-filter.ts","../../../libs/category/src/filters/type/range/is-applied/is-toggle-request-applied-to-filter.ts","../../../libs/category/src/filters/is-applied/is-toggle-request-applied-to-filter.ts","../../../libs/category/src/filters/find-applied/find-applied-options.ts","../../../libs/category/src/filters/type/equal/to-request/filter-to-request.ts","../../../libs/category/src/filters/type/range/to-request/filter-to-request.ts","../../../libs/category/src/filters/type/range-numeric/to-request/filter-to-request.ts","../../../libs/category/src/filters/to-request/filter-to-request.ts","../../../libs/category/src/filters/to-request/filters-to-requests.ts","../../../libs/category/src/filters/type/range/array-to-dict/pair.ts","../../../libs/category/src/filters/type/equal/array-to-dict/option.ts","../../../libs/category/src/filters/array-to-dict/array-to-dict.ts","../../../libs/category/src/filters/compute-applied-filters/compute-applied-filters.ts"],"sourcesContent":["/**\n * The known types of filters.\n */\nexport enum DaffCategoryFilterType {\n\tEqual = 'equal',\n\tRangeNumeric = 'rangeNumeric'\n}\n","/**\n * The separator between a range type filter's values\n * e.g. \"price\": \"30-40\".\n */\nexport const DaffCategoryFromToFilterSeparator = '-';\n","import {\n ID,\n DaffLocatable,\n} from '@daffodil/core';\nimport { DaffSortDirectionEnum } from '@daffodil/core/state';\n\nimport { DaffCategory } from './category';\nimport { DaffCategoryFilterRequest } from './filters/public_api';\n\n/**\n * When you request a category page, there's two ways to do so, via URL or via ID.\n */\nexport enum DaffCategoryRequestKind {\n URL = 'URL',\n // eslint-disable-next-line @typescript-eslint/no-shadow\n ID = 'ID'\n}\n\n/**\n * A model of the request sent to the {@link DaffCategoryServiceInterface} to retrieve information\n * about a category.\n */\nexport interface DaffCategoryBaseRequest {\n /**\n * The properties by which to filter the items of the category being requested.\n */\n filter_requests?: DaffCategoryFilterRequest[];\n\n /**\n * The option by which to sort a category's items.\n */\n applied_sort_option?: string;\n\n /**\n * The direction by which to sort the category's items.\n */\n applied_sort_direction?: DaffSortDirectionEnum;\n\n /**\n * What page of the category's items to retrieve.\n */\n current_page?: number;\n\n /**\n * The number of items per-page to request.\n */\n page_size?: number;\n}\n\n/**\n * The request used to retrieve a category and its relevant items.\n */\nexport type DaffCategoryRequest = DaffCategoryIdRequest | DaffCategoryUrlRequest;\n\n/**\n * A request used to retrieve a category by its uid.\n */\nexport interface DaffCategoryIdRequest extends DaffCategoryBaseRequest {\n id: DaffCategory['id'];\n kind: DaffCategoryRequestKind.ID;\n}\n\n/**\n * A request used to retrieve a category by its URL.\n * The qualified URL without domain.\n * e.g. a/path/to/the/category.html\n */\nexport interface DaffCategoryUrlRequest extends DaffCategoryBaseRequest, DaffLocatable {\n kind: DaffCategoryRequestKind.URL;\n};\n","/**\n * The error codes applicable to the filter behaviors of `@daffodil/category`.\n *\n * @docs-private\n */\nexport enum DaffCategoryFilterErrorCodes {\n FILTER_REQUEST_TYPE_MISMATCH = 'DAFF_CATEGORY_FILTER_REQUEST_TYPE_MISMATCH',\n FILTER_REQUEST_NAME_MISMATCH = 'DAFF_CATEGORY_FILTER_REQUEST_NAME_MISMATCH',\n FILTER_NOT_FOUND = 'DAFF_CATEGORY_FILTER_NOT_FOUND',\n UNKNOWN_FILTER_TYPE = 'DAFF_CATEGORY_UNKNOWN_FILTER_TYPE',\n}\n","import { DaffCategoryFilterErrorCodes } from '../filters/errors/codes.enum';\n\n/**\n *\n * The available error codes of the @daffodil/category package.\n *\n * Note that this only contains errors in the root @daffodil/category package, not\n * any of its subpackages e.g. `@daffodil/category/testing`.\n */\nexport const DaffCategoryErrorCodes = {\n ...DaffCategoryFilterErrorCodes,\n};\nexport type DaffCategoryErrorCodes = DaffCategoryFilterErrorCodes;\n","import {\n DaffInheritableError,\n DaffError,\n} from '@daffodil/core';\n\nimport { DaffCategoryErrorCodes } from '../../errors/codes.enum';\n\n/**\n * An error thrown when a lookup for a filter.\n */\nexport class DaffCategoryFilterNotFound extends DaffInheritableError implements DaffError {\n public readonly code: string = DaffCategoryErrorCodes.FILTER_NOT_FOUND;\n\n constructor(message?: string) {\n\t super(message);\n }\n}\n","import {\n DaffInheritableError,\n DaffError,\n} from '@daffodil/core';\n\nimport { DaffCategoryErrorCodes } from '../../errors/codes.enum';\n\n/**\n * An error thrown when an operation targeting a filter matching one name\n * matches a filter of another name.\n */\nexport class DaffCategoryFilterRequestNameMismatch extends DaffInheritableError implements DaffError {\n public readonly code: string = DaffCategoryErrorCodes.FILTER_REQUEST_NAME_MISMATCH;\n\n constructor(message?: string) {\n\t super(message);\n }\n}\n","import {\n DaffInheritableError,\n DaffError,\n} from '@daffodil/core';\n\nimport { DaffCategoryErrorCodes } from '../../errors/codes.enum';\n\n/**\n * An error thrown when an operation targeting a filter matching one type\n * matches a filter of another type.\n */\nexport class DaffCategoryFilterRequestTypeMismatch extends DaffInheritableError implements DaffError {\n public readonly code: string = DaffCategoryErrorCodes.FILTER_REQUEST_TYPE_MISMATCH;\n\n constructor(message?: string) {\n\t super(message);\n }\n}\n","import {\n DaffInheritableError,\n DaffError,\n} from '@daffodil/core';\n\nimport { DaffCategoryErrorCodes } from '../../errors/codes.enum';\n\n/**\n * An error thrown when an operation targeting a filter matches a type unknown\n * to Daffodil.\n */\nexport class DaffCategoryUnknownFilterType extends DaffInheritableError implements DaffError {\n public readonly code: string = DaffCategoryErrorCodes.UNKNOWN_FILTER_TYPE;\n\n constructor(message?: string) {\n\t super(message);\n }\n}\n","import { DaffCategoryFilterErrorCodes } from './codes.enum';\nimport { DaffCategoryFilterNotFound } from './filter-not-found.error';\nimport { DaffCategoryFilterRequestNameMismatch } from './request-name-mismatch.error';\nimport { DaffCategoryFilterRequestTypeMismatch } from './request-type-mismatch.error';\nimport { DaffCategoryUnknownFilterType } from './unknown-filter-type.error';\n\n/**\n * A mapping from error codes to error class constructors.\n */\nexport const DaffCategoryFiltersErrorMap = {\n [DaffCategoryFilterErrorCodes.FILTER_REQUEST_TYPE_MISMATCH]: DaffCategoryFilterRequestTypeMismatch,\n [DaffCategoryFilterErrorCodes.FILTER_REQUEST_NAME_MISMATCH]: DaffCategoryFilterRequestNameMismatch,\n [DaffCategoryFilterErrorCodes.FILTER_NOT_FOUND]: DaffCategoryFilterNotFound,\n [DaffCategoryFilterErrorCodes.UNKNOWN_FILTER_TYPE]: DaffCategoryUnknownFilterType,\n};\n","import { DaffCategoryFiltersErrorMap } from '../filters/errors/map';\n/**\n * A mapping from error codes to error class constructors.\n */\nexport const DaffCategoryErrorMap: typeof DaffCategoryFiltersErrorMap = {\n ...DaffCategoryFiltersErrorMap,\n};\n","import { InjectionToken } from '@angular/core';\n\nimport { daffTransformErrorToStateError } from '@daffodil/core/state';\n\n/**\n * Transforms `DaffError`s into `DaffStateError`s before they are serialized into state.\n * Can be used to further refine Daffodil errors into more specific app errors.\n */\nexport const DAFF_CATEGORY_ERROR_MATCHER = new InjectionToken<typeof daffTransformErrorToStateError>(\n 'DAFF_CATEGORY_ERROR_MATCHER',\n { factory: () => daffTransformErrorToStateError },\n);\n","import {\n DaffCategoryFilterEqual,\n DaffCategoryFilterEqualRequest,\n} from '../../../../../models/public_api';\n\n/**\n * Applies a {@link DaffCategoryFilterEqualRequest} to a {@link DaffCategoryFilterEqual}\n *\n * @idempotent {filter}\n * @docs-private\n */\nexport const daffApplyFilterEqual = (\n request: DaffCategoryFilterEqualRequest,\n filter: DaffCategoryFilterEqual,\n): DaffCategoryFilterEqual => ({\n ...filter,\n options: request.value.reduce((acc, value) => {\n const option = filter.options[value];\n\n if (option) {\n acc[value] = {\n ...option,\n applied: true,\n };\n }\n\n return acc;\n }, { ...filter.options }),\n});\n","import { DaffCategoryFromToFilterSeparator } from '../../../models/public_api';\n\nexport const daffCategoryComputeFilterRangePairLabel = (min, max): string =>\n `${min}${DaffCategoryFromToFilterSeparator}${max}`;\n","import {\n DaffCategoryFilterRangeRequestBase,\n DaffCategoryFilterRangeBase,\n} from '../../../../../models/public_api';\nimport { daffCategoryComputeFilterRangePairLabel } from '../../compute-pair-label';\n\n/**\n * Applies a {@link DaffCategoryFilterRangeRequestBase} to a {@link DaffCategoryFilterRangeBase}\n *\n * @idempotent {filter}\n * @docs-private\n */\nexport const daffApplyFilterRange = <T, U extends DaffCategoryFilterRangeRequestBase<T>, V extends DaffCategoryFilterRangeBase<T>>(\n request: U,\n filter: V,\n): V => ({\n ...filter,\n options: {\n [daffCategoryComputeFilterRangePairLabel(request.value.min, request.value.max)]: {\n min: {\n value: request.value.min,\n label: String(request.value.min),\n },\n max: {\n value: request.value.max,\n label: String(request.value.max),\n },\n applied: true,\n },\n },\n });\n","import {\n DaffCategoryFilterRequest,\n DaffCategoryFilter,\n DaffCategoryFilterToggleRequest,\n} from '../../models/public_api';\nimport { DaffCategoryFilterNotFound } from '../errors/filter-not-found.error';\nimport { DaffCategoryFilterRequestNameMismatch } from '../errors/request-name-mismatch.error';\n\n/**\n * Ensures that the names of the filter and the filter request match.\n *\n * @throws {@link DaffCategoryFilterNotFound} if the names do not match.\n */\nexport const daffCategoryValidateFilterRequestNameMatch = (\n request: DaffCategoryFilterRequest | DaffCategoryFilterToggleRequest,\n filter: DaffCategoryFilter,\n): void => {\n if (!filter) {\n throw new DaffCategoryFilterNotFound('Filter does not exist');\n }\n if (request.name !== filter.name) {\n throw new DaffCategoryFilterRequestNameMismatch('Filter name does not match request name');\n }\n};\n","import {\n DaffCategoryFilterRequest,\n DaffCategoryFilter,\n DaffCategoryFilterToggleRequest,\n} from '../../models/public_api';\nimport { DaffCategoryFilterRequestTypeMismatch } from '../errors/request-type-mismatch.error';\n\n/**\n * Ensures that the types of the filter and the filter request match.\n *\n * @throws {@link DaffCategoryFilterRequestTypeMismatch} if the types do not match.\n */\nexport const daffCategoryValidateFilterRequestTypeMatch = (\n request: DaffCategoryFilterRequest | DaffCategoryFilterToggleRequest,\n filter: DaffCategoryFilter,\n): void => {\n if (request.type !== filter.type) {\n throw new DaffCategoryFilterRequestTypeMismatch('Filter types don\\'t match');\n }\n};\n","import {\n DaffCategoryFilterRequest,\n DaffCategoryFilter,\n DaffCategoryFilterType,\n DaffCategoryFilterEqual,\n DaffCategoryFilterRangeNumeric,\n} from '../../../models/public_api';\nimport { DaffCategoryUnknownFilterType } from '../../errors/unknown-filter-type.error';\nimport { daffApplyFilterEqual } from '../../type/equal/behaviors/apply/apply';\nimport { daffApplyFilterRange } from '../../type/range/behaviors/apply/apply';\nimport {\n daffCategoryValidateFilterRequestNameMatch,\n daffCategoryValidateFilterRequestTypeMatch,\n} from '../../validators/public_api';\n\n/**\n * Applies a filter request to the matching filter.\n *\n * @idempotent {filter}\n * @throws {@link DaffCategoryUnknownFilterType}\n */\nexport const daffApplyFilter = (request: DaffCategoryFilterRequest, filter: DaffCategoryFilter): DaffCategoryFilter => {\n daffCategoryValidateFilterRequestNameMatch(request, filter);\n daffCategoryValidateFilterRequestTypeMatch(request, filter);\n\n switch (request.type) {\n case DaffCategoryFilterType.Equal:\n return daffApplyFilterEqual(request, <DaffCategoryFilterEqual>filter);\n case(DaffCategoryFilterType.RangeNumeric):\n return daffApplyFilterRange(request, <DaffCategoryFilterRangeNumeric>filter);\n default:\n throw new DaffCategoryUnknownFilterType('Unknown filter type');\n }\n};\n","import { Dict } from '@daffodil/core';\n\nimport {\n DaffCategoryFilterRequest,\n DaffCategoryFilter,\n} from '../../../models/public_api';\nimport { daffApplyFilter } from './apply-filter';\n\n/**\n * Applies a {@link DaffCategoryFilterRequest} to a {@link Dict} of {@link DaffCategoryFilter}\n * returning the updated {@link Dict}.\n *\n * @idempotent {filters}\n */\nexport const daffApplyRequestToFilters = (request: DaffCategoryFilterRequest, filters: Dict<DaffCategoryFilter>): Dict<DaffCategoryFilter> => ({\n ...filters,\n [request.name]: daffApplyFilter(request, filters[request.name]),\n});\n\n\n","import { Dict } from '@daffodil/core';\n\nimport {\n DaffCategoryFilterRequest,\n DaffCategoryFilter,\n} from '../../../models/public_api';\nimport { daffApplyFilter } from './apply-filter';\n\n/**\n * Applies filters from a {@link DaffCategoryFilterRequest} to a {@link Dict}\n * of {@link DaffCategoryFilter}.\n *\n * @idempotent {filters}\n */\nexport const daffApplyRequestsToFilters = (\n filtersRequests: DaffCategoryFilterRequest[],\n filters: Dict<DaffCategoryFilter>,\n): Dict<DaffCategoryFilter> =>\n filtersRequests.reduce((acc, request) => {\n acc[request.name] = daffApplyFilter(request, filters[request.name]);\n return acc;\n }, { ...filters });\n\n\n","import { DaffCategoryFilterEqual } from '../../../../../models/public_api';\n\n/**\n * Unapplies the applied filter options of a {@link DaffCategoryFilterEqual}\n *\n * @idempotent {filter}\n * @docs-private\n */\nexport const daffClearFilterEqual = (filter: DaffCategoryFilterEqual): DaffCategoryFilterEqual => ({\n ...filter,\n options: Object.keys(filter.options).map((key) => filter.options[key]).reduce((acc, option) => {\n acc[option.value] = {\n ...option,\n applied: false,\n };\n return acc;\n }, { ...filter.options }),\n});\n","import { DaffCategoryFilterRangeBase } from '../../../../../models/public_api';\n\n/**\n * Unapplies the applied filter options of a {@link DaffCategoryFilterRangeBase}\n *\n * @idempotent {filter}\n * @docs-private\n */\nexport const daffClearFilterRange = <T, U extends DaffCategoryFilterRangeBase<T>>(filter: U): U => ({\n ...filter,\n options: {},\n});\n","import {\n DaffCategoryFilterType,\n DaffCategoryFilter,\n} from '../../../models/public_api';\nimport { DaffCategoryUnknownFilterType } from '../../errors/unknown-filter-type.error';\nimport { daffClearFilterEqual } from '../../type/equal/behaviors/clear/clear';\nimport { daffClearFilterRange } from '../../type/range/behaviors/clear/clear';\n\n/**\n * Undoes the applied state of all applied filter options of a {@link DaffCategoryFilter}\n * returning the filter.\n *\n * @idempotent {filter}\n */\nexport const daffClearFilter = (filter: DaffCategoryFilter): DaffCategoryFilter => {\n switch (filter.type) {\n case DaffCategoryFilterType.RangeNumeric:\n return daffClearFilterRange(filter);\n case DaffCategoryFilterType.Equal:\n return daffClearFilterEqual(filter);\n default:\n throw new DaffCategoryUnknownFilterType('Unknown filter type');\n }\n};\n","import { Dict } from '@daffodil/core';\n\nimport { DaffCategoryFilter } from '../../../models/public_api';\nimport { daffClearFilter } from './clear-filter';\n\n/**\n * Undoes the applied state of all applied filter options of a {@link Dict} of {@link DaffCategoryFilter}\n * returning updated {@link Dict}.\n *\n * @idempotent {filters}\n */\nexport const daffClearFilters = (filters: Dict<DaffCategoryFilter>): Dict<DaffCategoryFilter> =>\n Object.keys(filters).map((key) => filters[key]).reduce((acc, filter) => {\n acc[filter.name] = daffClearFilter(filter);\n return acc;\n }, {});\n","import {\n DaffCategoryFilterEqualRequest,\n DaffCategoryFilter,\n DaffCategoryFilterEqual,\n} from '../../../../../models/public_api';\n\n/**\n * Removes the matching filter options of a {@link DaffCategoryFilterEqual}\n * that match the {@link DaffCategoryFilterEqualRequest}\n *\n * If there are no matching options, returns the original {@link DaffCategoryFilterEqual}\n *\n * @idempotent {filter}\n * @docs-private\n */\nexport const daffRemoveFilterEqual = (\n request: DaffCategoryFilterEqualRequest,\n filter: DaffCategoryFilterEqual,\n): DaffCategoryFilter => ({\n ...filter,\n options: request.value.reduce((acc, value) => {\n const option = filter.options[value];\n\n if (option) {\n acc[value] = {\n ...option,\n applied: false,\n };\n }\n\n return acc;\n }, { ...filter.options }),\n});\n","import {\n DaffCategoryFilterRangeRequestBase,\n DaffCategoryFilterRangeBase,\n} from '../../../../../models/public_api';\nimport { daffCategoryComputeFilterRangePairLabel } from '../../compute-pair-label';\n\n/**\n * Removes the matching filter options of a {@link DaffCategoryFilterRangeBase}\n * that match the {@link DaffCategoryFilterRangeRequestBase}\n *\n * If there are no matching options, returns the original {@link DaffCategoryFilterRangeBase}\n *\n * @idempotent {filter}\n * @docs-private\n */\nexport const daffRemoveFilterRange = <T, U extends DaffCategoryFilterRangeBase<T>>(\n request: DaffCategoryFilterRangeRequestBase<T>,\n filter: U,\n): U =>\n filter.options[daffCategoryComputeFilterRangePairLabel(request.value.min, request.value.max)]\n ? ({\n ...filter,\n options: {},\n })\n : filter;\n","import {\n DaffCategoryFilterRequest,\n DaffCategoryFilter,\n DaffCategoryFilterType,\n DaffCategoryFilterEqual,\n DaffCategoryFilterRangeNumeric,\n} from '../../../models/public_api';\nimport { DaffCategoryUnknownFilterType } from '../../errors/unknown-filter-type.error';\nimport { daffRemoveFilterEqual } from '../../type/equal/behaviors/remove/remove';\nimport { daffRemoveFilterRange } from '../../type/range/behaviors/remove/remove';\nimport {\n daffCategoryValidateFilterRequestNameMatch,\n daffCategoryValidateFilterRequestTypeMatch,\n} from '../../validators/public_api';\n\n/**\n * Undoes any applied options of a {@link DaffCategoryFilter} that match the\n * {@link DaffCategoryFilterRequest}, returning the {@link DaffCategoryFilter}.\n *\n * @idempotent {filter}\n * @pure\n */\nexport const daffRemoveFilter = (request: DaffCategoryFilterRequest, filter: DaffCategoryFilter): DaffCategoryFilter => {\n daffCategoryValidateFilterRequestNameMatch(request, filter);\n daffCategoryValidateFilterRequestTypeMatch(request, filter);\n\n switch (request.type) {\n case DaffCategoryFilterType.Equal:\n return daffRemoveFilterEqual(request, <DaffCategoryFilterEqual>filter);\n case (DaffCategoryFilterType.RangeNumeric):\n return daffRemoveFilterRange(request, <DaffCategoryFilterRangeNumeric>filter);\n default:\n throw new DaffCategoryUnknownFilterType('Unknown filter type');\n }\n};\n","import { Dict } from '@daffodil/core';\n\nimport {\n DaffCategoryFilterRequest,\n DaffCategoryFilter,\n} from '../../../models/public_api';\nimport { daffRemoveFilter } from './remove-filter';\n\n/**\n * Undoes any applied options of a particular filter of a {@link Dict} of {@link DaffCategoryFilter}\n * that match the {@link DaffCategoryFilterRequest}, returning the {@link Dict} of {@link DaffCategoryFilter}.\n *\n * @idempotent {filters}\n */\nexport const daffRemoveRequestFromFilters = (\n request: DaffCategoryFilterRequest,\n filters: Dict<DaffCategoryFilter>,\n): Dict<DaffCategoryFilter> => ({\n ...filters,\n [request.name]: daffRemoveFilter(request, filters[request.name]),\n});\n","import { Dict } from '@daffodil/core';\n\nimport {\n DaffCategoryFilterRequest,\n DaffCategoryFilter,\n} from '../../../models/public_api';\nimport { daffRemoveFilter } from './remove-filter';\n\n/**\n * Undoes all applied options of a {@link Dict} of {@link DaffCategoryFilter}\n * that match any of the {@link DaffCategoryFilterRequest},\n * returning the updated {@link Dict} of {@link DaffCategoryFilter}.\n *\n * @idempotent {filters}\n */\nexport const daffRemoveRequestsFromFilters = (\n requests: (DaffCategoryFilterRequest)[],\n filters: Dict<DaffCategoryFilter>,\n): Dict<DaffCategoryFilter> =>\n requests.reduce((acc, request) => {\n acc[request.name] = daffRemoveFilter(request, filters[request.name]);\n return acc;\n }, { ...filters });\n","import { DaffCategoryFilterEqual } from '../../../../../models/public_api';\nimport { DaffCategoryFilterEqualToggleRequest } from '../../../../../models/public_api';\n\n/**\n * Oscillates the applied state of the matching filter options of a {@link DaffCategoryFilterEqual}\n * that match the {@link DaffCategoryFilterEqualRequest}\n *\n * If there are no matching options, returns the original {@link DaffCategoryFilterEqual}\n *\n * @docs-private\n */\nexport const daffToggleFilterEqual = (\n request: DaffCategoryFilterEqualToggleRequest,\n filter: DaffCategoryFilterEqual,\n): DaffCategoryFilterEqual => {\n const option = filter.options[request.value];\n\n return option\n ? {\n ...filter,\n options: {\n ...filter.options,\n [option.value]: {\n ...option,\n applied: !option.applied,\n },\n },\n }\n : filter;\n};\n","import {\n DaffCategoryFilterRangeBase,\n DaffCategoryFilterRangeRequestBase,\n} from '../../../../../models/public_api';\nimport { daffCategoryComputeFilterRangePairLabel } from '../../compute-pair-label';\nimport { daffApplyFilterRange } from '../apply/apply';\nimport { daffRemoveFilterRange } from '../remove/remove';\n\n/**\n * Oscillates the applied state of the matching filter options of a {@link DaffCategoryFilterRangeBase}\n * that match the {@link DaffCategoryFilterRangeRequestBase}\n *\n * If there are no matching options, returns the original {@link DaffCategoryFilterRangeBase}\n *\n * @docs-private\n */\nexport const daffToggleFilterRange = <T, U extends DaffCategoryFilterRangeBase<T>>(\n request: DaffCategoryFilterRangeRequestBase<T>,\n filter: U,\n): U =>\n filter.options[daffCategoryComputeFilterRangePairLabel(request.value.min, request.value.max)]\n ? daffRemoveFilterRange(request, filter)\n : daffApplyFilterRange(request, filter);\n","import {\n DaffCategoryFilterToggleRequest,\n DaffCategoryFilter,\n DaffCategoryFilterType,\n DaffCategoryFilterEqual,\n DaffCategoryFilterRangeNumeric,\n} from '../../../models/public_api';\nimport { DaffCategoryUnknownFilterType } from '../../errors/unknown-filter-type.error';\nimport { daffToggleFilterEqual } from '../../type/equal/behaviors/toggle/toggle';\nimport { daffToggleFilterRange } from '../../type/range/behaviors/toggle/toggle';\nimport {\n daffCategoryValidateFilterRequestNameMatch,\n daffCategoryValidateFilterRequestTypeMatch,\n} from '../../validators/public_api';\n\n/**\n * Toggles the state of the filters (and their options) in the {@link DaffCategoryFilter}\n * that match the {@link DaffCategoryFilterToggleRequest} .\n */\nexport function daffToggleFilter(\n request: DaffCategoryFilterToggleRequest,\n filter: DaffCategoryFilter,\n): DaffCategoryFilter {\n daffCategoryValidateFilterRequestNameMatch(request, filter);\n daffCategoryValidateFilterRequestTypeMatch(request, filter);\n\n switch (request.type) {\n case DaffCategoryFilterType.Equal:\n return daffToggleFilterEqual(request, <DaffCategoryFilterEqual>filter);\n case(DaffCategoryFilterType.RangeNumeric):\n return daffToggleFilterRange(request, <DaffCategoryFilterRangeNumeric>filter);\n default:\n throw new DaffCategoryUnknownFilterType('Unknown filter type');\n }\n}\n","import { Dict } from '@daffodil/core';\n\nimport {\n DaffCategoryFilter,\n DaffCategoryFilterToggleRequest,\n} from '../../../models/public_api';\nimport { daffToggleFilter } from './toggle';\n\n/**\n * Toggles the state of a filter option in the {@link Dict<DaffCategoryFilter>}\n * that matches the {@link DaffCategoryFilterToggleRequest}.\n */\nexport const daffToggleRequestOnFilters = (\n request: DaffCategoryFilterToggleRequest,\n filters: Dict<DaffCategoryFilter>): Dict<DaffCategoryFilter> => ({\n ...filters,\n [request.name]: daffToggleFilter(request, filters[request.name]),\n});\n\n\n","import { DaffCategoryFilterEqual } from '../../../../models/public_api';\n\n/**\n * Determines whether or not the {@link DaffCategoryFilterEqual} has any applied options.\n */\nexport const daffIsFilterEqualApplied = (filter: DaffCategoryFilterEqual): boolean =>\n Object.keys(filter.options).map((key) => filter.options[key]).findIndex(option => option.applied) > -1;\n","import { DaffCategoryFilterRangeBase } from '../../../../models/public_api';\n\n/**\n * Determines whether or not a {@link DaffCategoryFilterRangeBase} has any applied options.\n */\nexport const daffIsFilterRangeApplied = <T>(filter: DaffCategoryFilterRangeBase<T>): boolean =>\n Object.keys(filter.options).length > 0;\n","import {\n DaffCategoryFilterType,\n DaffCategoryFilter,\n} from '../../models/public_api';\nimport { DaffCategoryUnknownFilterType } from '../errors/unknown-filter-type.error';\nimport { daffIsFilterEqualApplied } from '../type/equal/is-applied/is-applied';\nimport { daffIsFilterRangeApplied } from '../type/range/is-applied/is-applied';\n\n/**\n * Determines whether or not a filter has any currently applied options.\n */\nexport const daffIsFilterApplied = (filter: DaffCategoryFilter): boolean => {\n switch (filter.type) {\n case DaffCategoryFilterType.RangeNumeric:\n return daffIsFilterRangeApplied(filter);\n case DaffCategoryFilterType.Equal:\n return daffIsFilterEqualApplied(filter);\n default:\n throw new DaffCategoryUnknownFilterType('Unknown filter type');\n }\n};\n","import {\n DaffCategoryFilterEqualToggleRequest,\n DaffCategoryFilterEqual,\n} from '../../../../models/public_api';\n\n/**\n * Determines whether or not any {@link DaffCategoryFilterEqual} options matching {@link DaffCategoryFilterEqualToggleRequest} are applied.\n */\nexport const daffIsEqualToggleRequestAppliedToFilter = (\n request: DaffCategoryFilterEqualToggleRequest,\n filter: DaffCategoryFilterEqual,\n): boolean => !!filter.options[request.value]?.applied;\n","import {\n DaffCategoryFilterRangeRequestBase,\n DaffCategoryFilterRangeBase,\n} from '../../../../models/public_api';\nimport { daffCategoryComputeFilterRangePairLabel } from '../compute-pair-label';\n\n/**\n * Determines whether or not any {@link DaffCategoryFilterRangeBase} options matching {@link DaffCategoryFilterRangeRequestBase} are applied.\n */\nexport const daffIsRangeToggleRequestAppliedToFilter = <T>(\n request: DaffCategoryFilterRangeRequestBase<T>,\n filter: DaffCategoryFilterRangeBase<T>,\n): boolean =>\n daffCategoryComputeFilterRangePairLabel(request.value.min, request.value.max) in filter.options;\n","import {\n DaffCategoryFilter,\n DaffCategoryFilterToggleRequest,\n DaffCategoryFilterType,\n DaffCategoryFilterRangeNumericToggleRequest,\n DaffCategoryFilterEqualToggleRequest,\n} from '../../models/public_api';\nimport { DaffCategoryUnknownFilterType } from '../errors/unknown-filter-type.error';\nimport { daffIsEqualToggleRequestAppliedToFilter } from '../type/equal/is-applied/is-toggle-request-applied-to-filter';\nimport { daffIsRangeToggleRequestAppliedToFilter } from '../type/range/is-applied/is-toggle-request-applied-to-filter';\n\n/**\n * Determines whether or not a {@link DaffCategoryFilterToggleRequest} is already applied to a {@link DaffCategoryFilter}.\n */\nexport const daffIsToggleRequestAppliedToFilter = (request: DaffCategoryFilterToggleRequest, filter: DaffCategoryFilter): boolean => {\n switch (filter.type) {\n case DaffCategoryFilterType.RangeNumeric:\n return daffIsRangeToggleRequestAppliedToFilter(<DaffCategoryFilterRangeNumericToggleRequest>request, filter);\n case DaffCategoryFilterType.Equal:\n return daffIsEqualToggleRequestAppliedToFilter(<DaffCategoryFilterEqualToggleRequest>request, filter);\n default:\n throw new DaffCategoryUnknownFilterType('Unknown filter type');\n }\n};\n","import { DaffCategoryFilterBase } from '../../models/public_api';\n\n/**\n * Finds the applied options in the filter.\n */\nexport const daffCategoryFindAppliedFilterOptions = <T extends DaffCategoryFilterBase>(filter: T): T['options'][string][] =>\n Object.keys(filter.options).map((key) => <T['options'][string]>filter.options[key]).filter((option) => option.applied);\n","import {\n DaffCategoryFilterEqual,\n DaffCategoryFilterEqualRequest,\n DaffCategoryFilterType,\n} from '../../../../models/public_api';\nimport { daffCategoryFindAppliedFilterOptions } from '../../../find-applied/public_api';\n\n/**\n * Builds an {@link DaffCategoryFilterEqualRequest} from the passed filter and options.\n */\nexport const daffCategoryFilterEqualToRequest = (\n filter: DaffCategoryFilterEqual,\n): DaffCategoryFilterEqualRequest | null => {\n const options = daffCategoryFindAppliedFilterOptions(filter);\n if(!options.length){\n return null;\n }\n\n return {\n type: DaffCategoryFilterType.Equal,\n name: filter.name,\n value: options.map(option => option.value),\n };\n};\n","import {\n DaffCategoryFilterRangeBase,\n DaffCategoryFilterRangeRequestBase,\n} from '../../../../models/public_api';\nimport { daffCategoryFindAppliedFilterOptions } from '../../../find-applied/public_api';\n\n/**\n * Builds a {@link DaffCategoryFilterRangeRequestBase} from the passed {@link DaffCategoryFilterRangeBase} and options.\n */\nexport const daffCategoryFilterRangeToRequest = <T, U extends DaffCategoryFilterRangeBase<T>>(\n filter: U,\n): DaffCategoryFilterRangeRequestBase<T> => {\n const options = daffCategoryFindAppliedFilterOptions(filter);\n if(!options.length){\n return null;\n }\n\n return {\n type: filter.type,\n name: filter.name,\n value: {\n min: options[0].min.value,\n max: options[0].max.value,\n },\n };\n};\n","import {\n DaffCategoryFilterRangeNumeric,\n DaffCategoryFilterRangeNumericRequest,\n} from '../../../../models/public_api';\nimport { daffCategoryFilterRangeToRequest } from '../../range/to-request/filter-to-request';\n\n/**\n * Transforms a {@link DaffCategoryFilterRangeNumeric} into a {@link DaffCategoryFilterRangeNumericRequest}\n */\nexport const daffCategoryFilterRangeNumericToRequest = (\n filter: DaffCategoryFilterRangeNumeric,\n): DaffCategoryFilterRangeNumericRequest => <DaffCategoryFilterRangeNumericRequest>daffCategoryFilterRangeToRequest(filter);\n","import {\n DaffCategoryFilter,\n DaffCategoryFilterRequest,\n DaffCategoryFilterType,\n} from '../../models/public_api';\nimport { DaffCategoryUnknownFilterType } from '../errors/unknown-filter-type.error';\nimport { daffCategoryFilterEqualToRequest } from '../type/equal/to-request/filter-to-request';\nimport { daffCategoryFilterRangeNumericToRequest } from '../type/range-numeric/to-request/filter-to-request';\n\n/**\n * Builds a category filter request from a category filter.\n * Returns null if the category filter does not have at least one applied option.\n */\nexport function daffCategoryFilterToRequest(filter: DaffCategoryFilter): DaffCategoryFilterRequest | null {\n switch (filter.type) {\n case DaffCategoryFilterType.RangeNumeric:\n return daffCategoryFilterRangeNumericToRequest(filter);\n case DaffCategoryFilterType.Equal:\n return daffCategoryFilterEqualToRequest(filter);\n default:\n throw new DaffCategoryUnknownFilterType('Unknown filter type');\n }\n};\n","import { Dict } from '@daffodil/core';\n\nimport {\n DaffCategoryFilter,\n DaffCategoryFilterRequest,\n} from '../../models/public_api';\nimport { daffCategoryFilterToRequest } from './filter-to-request';\n\n/**\n * Builds a list of filter requests from a list of filters.\n * Requests are only built for the filters that have at least one applied option.\n */\nexport function daffCategoryFiltersToRequests(filters: Dict<DaffCategoryFilter>): DaffCategoryFilterRequest[] {\n return Object.keys(filters).map((key) => filters[key]).reduce((acc: DaffCategoryFilterRequest[], filter) => {\n const request = daffCategoryFilterToRequest(filter);\n\n if (request) {\n acc.push(request);\n }\n\n return acc;\n }, []);\n}\n","import {\n Dict,\n daffArrayToDict,\n} from '@daffodil/core';\n\nimport { DaffCategoryFilterRangePair } from '../../../../models/public_api';\nimport { daffCategoryComputeFilterRangePairLabel } from '../compute-pair-label';\n\n/**\n * Transforms an {@link DaffCategoryFilterRangePair[]} to a {@link Dict<DaffCategoryFilterRangePair>}.\n */\nexport const daffCategoryFilterRangePairArrayToDict = <T>(pairs: DaffCategoryFilterRangePair<T>[]): Dict<DaffCategoryFilterRangePair<T>> =>\n daffArrayToDict(pairs, pair => daffCategoryComputeFilterRangePairLabel(pair.min.value, pair.max.value));\n","import {\n Dict,\n daffArrayToDict,\n} from '@daffodil/core';\n\nimport { DaffCategoryFilterEqualOption } from '../../../../models/public_api';\n\n/**\n * Converts a list of category equal filter options to a dict of options keyed by option value.\n */\nexport const daffCategoryFilterEqualOptionArrayToDict =\n (options: DaffCategoryFilterEqualOption[]): Dict<DaffCategoryFilterEqualOption> =>\n daffArrayToDict(options, option => option.value);\n","import {\n Dict,\n daffArrayToDict,\n} from '@daffodil/core';\n\nimport { DaffCategoryFilter } from '../../models/public_api';\n\n/**\n * Converts a list of category filters into a {@link Dict} of filters keyed by filter name.\n */\nexport const daffCategoryFilterArrayToDict = (filters: DaffCategoryFilter[]): Dict<DaffCategoryFilter> =>\n daffArrayToDict(filters, filter => filter.name);\n","import { Dict } from '@daffodil/core';\n\nimport {\n DaffCategoryFilter,\n DaffCategoryFilterType,\n DaffCategoryFilterEqualOption,\n DaffCategoryFilterRangePair,\n} from '../../models/public_api';\nimport { daffCategoryFindAppliedFilterOptions } from '../find-applied/public_api';\nimport { daffCategoryFilterEqualOptionArrayToDict } from '../type/equal/public_api';\nimport { daffCategoryFilterRangePairArrayToDict } from '../type/range/public_api';\n\n/**\n * Returns a {@link Dict<DaffCategoryFilter>} and only their applied options.\n * {@link DaffCategoryFilter} that have no applied options will be omitted.\n */\nexport const daffCategoryComputeAppliedFilters = (filters: Dict<DaffCategoryFilter>): Dict<DaffCategoryFilter> =>\n Object.keys(filters).map(key => filters[key]).reduce((acc, filter) => {\n const appliedOptions = daffCategoryFindAppliedFilterOptions(filter);\n\n if (appliedOptions.length > 0) {\n acc[filter.name] = {\n ...filter,\n options: filter.type === DaffCategoryFilterType.Equal\n ? daffCategoryFilterEqualOptionArrayToDict(<DaffCategoryFilterEqualOption[]>appliedOptions)\n : daffCategoryFilterRangePairArrayToDict(<DaffCategoryFilterRangePair<unknown>[]>appliedOptions),\n };\n }\n\n return acc;\n }, {});\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daffodil-category.js","sources":["../../../libs/category/src/models/filters/type/category-filter-type.ts","../../../libs/category/src/models/filters/type/range/separator.ts","../../../libs/category/src/models/category-request.ts","../../../libs/category/src/filters/errors/codes.enum.ts","../../../libs/category/src/errors/codes.enum.ts","../../../libs/category/src/filters/errors/filter-not-found.error.ts","../../../libs/category/src/filters/errors/request-name-mismatch.error.ts","../../../libs/category/src/filters/errors/request-type-mismatch.error.ts","../../../libs/category/src/filters/errors/unknown-filter-type.error.ts","../../../libs/category/src/filters/errors/map.ts","../../../libs/category/src/errors/map.ts","../../../libs/category/src/injection-tokens/error-matcher.token.ts","../../../libs/category/src/filters/type/equal/behaviors/apply/apply.ts","../../../libs/category/src/filters/type/range/compute-pair-label.ts","../../../libs/category/src/filters/type/range/behaviors/apply/apply.ts","../../../libs/category/src/filters/validators/request-name-match.ts","../../../libs/category/src/filters/validators/request-type-match.ts","../../../libs/category/src/filters/behaviors/apply/apply-filter.ts","../../../libs/category/src/filters/behaviors/apply/apply-request-to-filters.ts","../../../libs/category/src/filters/behaviors/apply/apply-requests-to-filters.ts","../../../libs/category/src/filters/type/equal/behaviors/clear/clear.ts","../../../libs/category/src/filters/type/range/behaviors/clear/clear.ts","../../../libs/category/src/filters/behaviors/clear/clear-filter.ts","../../../libs/category/src/filters/behaviors/clear/clear-filters.ts","../../../libs/category/src/filters/type/equal/behaviors/remove/remove.ts","../../../libs/category/src/filters/type/range/behaviors/remove/remove.ts","../../../libs/category/src/filters/behaviors/remove/remove-filter.ts","../../../libs/category/src/filters/behaviors/remove/remove-request-from-filters.ts","../../../libs/category/src/filters/behaviors/remove/remove-requests-from-filters.ts","../../../libs/category/src/filters/type/equal/behaviors/toggle/toggle.ts","../../../libs/category/src/filters/type/range/behaviors/toggle/toggle.ts","../../../libs/category/src/filters/behaviors/toggle/toggle.ts","../../../libs/category/src/filters/behaviors/toggle/toggle-request-on-filters.ts","../../../libs/category/src/filters/type/equal/is-applied/is-applied.ts","../../../libs/category/src/filters/type/range/is-applied/is-applied.ts","../../../libs/category/src/filters/is-applied/is-filter-applied.ts","../../../libs/category/src/filters/type/equal/is-applied/is-toggle-request-applied-to-filter.ts","../../../libs/category/src/filters/type/range/is-applied/is-toggle-request-applied-to-filter.ts","../../../libs/category/src/filters/is-applied/is-toggle-request-applied-to-filter.ts","../../../libs/category/src/filters/find-applied/find-applied-options.ts","../../../libs/category/src/filters/type/equal/to-request/filter-to-request.ts","../../../libs/category/src/filters/type/range/to-request/filter-to-request.ts","../../../libs/category/src/filters/type/range-numeric/to-request/filter-to-request.ts","../../../libs/category/src/filters/to-request/filter-to-request.ts","../../../libs/category/src/filters/to-request/filters-to-requests.ts","../../../libs/category/src/filters/type/range/array-to-dict/pair.ts","../../../libs/category/src/filters/type/equal/array-to-dict/option.ts","../../../libs/category/src/filters/array-to-dict/array-to-dict.ts","../../../libs/category/src/filters/compute-applied-filters/compute-applied-filters.ts","../../../libs/category/src/daffodil-category.ts"],"sourcesContent":["/**\n * The known types of filters.\n */\nexport enum DaffCategoryFilterType {\n\tEqual = 'equal',\n\tRangeNumeric = 'rangeNumeric'\n}\n","/**\n * The separator between a range type filter's values\n * e.g. \"price\": \"30-40\".\n */\nexport const DaffCategoryFromToFilterSeparator = '-';\n","import {\n ID,\n DaffLocatable,\n} from '@daffodil/core';\nimport { DaffSortDirectionEnum } from '@daffodil/core/state';\n\nimport { DaffCategory } from './category';\nimport { DaffCategoryFilterRequest } from './filters/public_api';\n\n/**\n * When you request a category page, there's two ways to do so, via URL or via ID.\n */\nexport enum DaffCategoryRequestKind {\n URL = 'URL',\n // eslint-disable-next-line @typescript-eslint/no-shadow\n ID = 'ID'\n}\n\n/**\n * A model of the request sent to the {@link DaffCategoryServiceInterface} to retrieve information\n * about a category.\n */\nexport interface DaffCategoryBaseRequest {\n /**\n * The properties by which to filter the items of the category being requested.\n */\n filter_requests?: DaffCategoryFilterRequest[];\n\n /**\n * The option by which to sort a category's items.\n */\n applied_sort_option?: string;\n\n /**\n * The direction by which to sort the category's items.\n */\n applied_sort_direction?: DaffSortDirectionEnum;\n\n /**\n * What page of the category's items to retrieve.\n */\n current_page?: number;\n\n /**\n * The number of items per-page to request.\n */\n page_size?: number;\n}\n\n/**\n * The request used to retrieve a category and its relevant items.\n */\nexport type DaffCategoryRequest = DaffCategoryIdRequest | DaffCategoryUrlRequest;\n\n/**\n * A request used to retrieve a category by its uid.\n */\nexport interface DaffCategoryIdRequest extends DaffCategoryBaseRequest {\n id: DaffCategory['id'];\n kind: DaffCategoryRequestKind.ID;\n}\n\n/**\n * A request used to retrieve a category by its URL.\n * The qualified URL without domain.\n * e.g. a/path/to/the/category.html\n */\nexport interface DaffCategoryUrlRequest extends DaffCategoryBaseRequest, DaffLocatable {\n kind: DaffCategoryRequestKind.URL;\n};\n","/**\n * The error codes applicable to the filter behaviors of `@daffodil/category`.\n *\n * @docs-private\n */\nexport enum DaffCategoryFilterErrorCodes {\n FILTER_REQUEST_TYPE_MISMATCH = 'DAFF_CATEGORY_FILTER_REQUEST_TYPE_MISMATCH',\n FILTER_REQUEST_NAME_MISMATCH = 'DAFF_CATEGORY_FILTER_REQUEST_NAME_MISMATCH',\n FILTER_NOT_FOUND = 'DAFF_CATEGORY_FILTER_NOT_FOUND',\n UNKNOWN_FILTER_TYPE = 'DAFF_CATEGORY_UNKNOWN_FILTER_TYPE',\n}\n","import { DaffCategoryFilterErrorCodes } from '../filters/errors/codes.enum';\n\n/**\n *\n * The available error codes of the @daffodil/category package.\n *\n * Note that this only contains errors in the root @daffodil/category package, not\n * any of its subpackages e.g. `@daffodil/category/testing`.\n */\nexport const DaffCategoryErrorCodes = {\n ...DaffCategoryFilterErrorCodes,\n};\nexport type DaffCategoryErrorCodes = DaffCategoryFilterErrorCodes;\n","import {\n DaffInheritableError,\n DaffError,\n} from '@daffodil/core';\n\nimport { DaffCategoryErrorCodes } from '../../errors/codes.enum';\n\n/**\n * An error thrown when a lookup for a filter.\n */\nexport class DaffCategoryFilterNotFound extends DaffInheritableError implements DaffError {\n public readonly code: string = DaffCategoryErrorCodes.FILTER_NOT_FOUND;\n\n constructor(message?: string) {\n\t super(message);\n }\n}\n","import {\n DaffInheritableError,\n DaffError,\n} from '@daffodil/core';\n\nimport { DaffCategoryErrorCodes } from '../../errors/codes.enum';\n\n/**\n * An error thrown when an operation targeting a filter matching one name\n * matches a filter of another name.\n */\nexport class DaffCategoryFilterRequestNameMismatch extends DaffInheritableError implements DaffError {\n public readonly code: string = DaffCategoryErrorCodes.FILTER_REQUEST_NAME_MISMATCH;\n\n constructor(message?: string) {\n\t super(message);\n }\n}\n","import {\n DaffInheritableError,\n DaffError,\n} from '@daffodil/core';\n\nimport { DaffCategoryErrorCodes } from '../../errors/codes.enum';\n\n/**\n * An error thrown when an operation targeting a filter matching one type\n * matches a filter of another type.\n */\nexport class DaffCategoryFilterRequestTypeMismatch extends DaffInheritableError implements DaffError {\n public readonly code: string = DaffCategoryErrorCodes.FILTER_REQUEST_TYPE_MISMATCH;\n\n constructor(message?: string) {\n\t super(message);\n }\n}\n","import {\n DaffInheritableError,\n DaffError,\n} from '@daffodil/core';\n\nimport { DaffCategoryErrorCodes } from '../../errors/codes.enum';\n\n/**\n * An error thrown when an operation targeting a filter matches a type unknown\n * to Daffodil.\n */\nexport class DaffCategoryUnknownFilterType extends DaffInheritableError implements DaffError {\n public readonly code: string = DaffCategoryErrorCodes.UNKNOWN_FILTER_TYPE;\n\n constructor(message?: string) {\n\t super(message);\n }\n}\n","import { DaffCategoryFilterErrorCodes } from './codes.enum';\nimport { DaffCategoryFilterNotFound } from './filter-not-found.error';\nimport { DaffCategoryFilterRequestNameMismatch } from './request-name-mismatch.error';\nimport { DaffCategoryFilterRequestTypeMismatch } from './request-type-mismatch.error';\nimport { DaffCategoryUnknownFilterType } from './unknown-filter-type.error';\n\n/**\n * A mapping from error codes to error class constructors.\n */\nexport const DaffCategoryFiltersErrorMap = {\n [DaffCategoryFilterErrorCodes.FILTER_REQUEST_TYPE_MISMATCH]: DaffCategoryFilterRequestTypeMismatch,\n [DaffCategoryFilterErrorCodes.FILTER_REQUEST_NAME_MISMATCH]: DaffCategoryFilterRequestNameMismatch,\n [DaffCategoryFilterErrorCodes.FILTER_NOT_FOUND]: DaffCategoryFilterNotFound,\n [DaffCategoryFilterErrorCodes.UNKNOWN_FILTER_TYPE]: DaffCategoryUnknownFilterType,\n};\n","import { DaffCategoryFiltersErrorMap } from '../filters/errors/map';\n/**\n * A mapping from error codes to error class constructors.\n */\nexport const DaffCategoryErrorMap: typeof DaffCategoryFiltersErrorMap = {\n ...DaffCategoryFiltersErrorMap,\n};\n","import { InjectionToken } from '@angular/core';\n\nimport { daffTransformErrorToStateError } from '@daffodil/core/state';\n\n/**\n * Transforms `DaffError`s into `DaffStateError`s before they are serialized into state.\n * Can be used to further refine Daffodil errors into more specific app errors.\n */\nexport const DAFF_CATEGORY_ERROR_MATCHER = new InjectionToken<typeof daffTransformErrorToStateError>(\n 'DAFF_CATEGORY_ERROR_MATCHER',\n { factory: () => daffTransformErrorToStateError },\n);\n","import {\n DaffCategoryFilterEqual,\n DaffCategoryFilterEqualRequest,\n} from '../../../../../models/public_api';\n\n/**\n * Applies a {@link DaffCategoryFilterEqualRequest} to a {@link DaffCategoryFilterEqual}\n *\n * @idempotent {filter}\n * @docs-private\n */\nexport const daffApplyFilterEqual = (\n request: DaffCategoryFilterEqualRequest,\n filter: DaffCategoryFilterEqual,\n): DaffCategoryFilterEqual => ({\n ...filter,\n options: request.value.reduce((acc, value) => {\n const option = filter.options[value];\n\n if (option) {\n acc[value] = {\n ...option,\n applied: true,\n };\n }\n\n return acc;\n }, { ...filter.options }),\n});\n","import { DaffCategoryFromToFilterSeparator } from '../../../models/public_api';\n\nexport const daffCategoryComputeFilterRangePairLabel = (min, max): string =>\n `${min}${DaffCategoryFromToFilterSeparator}${max}`;\n","import {\n DaffCategoryFilterRangeRequestBase,\n DaffCategoryFilterRangeBase,\n} from '../../../../../models/public_api';\nimport { daffCategoryComputeFilterRangePairLabel } from '../../compute-pair-label';\n\n/**\n * Applies a {@link DaffCategoryFilterRangeRequestBase} to a {@link DaffCategoryFilterRangeBase}\n *\n * @idempotent {filter}\n * @docs-private\n */\nexport const daffApplyFilterRange = <T, U extends DaffCategoryFilterRangeRequestBase<T>, V extends DaffCategoryFilterRangeBase<T>>(\n request: U,\n filter: V,\n): V => ({\n ...filter,\n options: {\n [daffCategoryComputeFilterRangePairLabel(request.value.min, request.value.max)]: {\n min: {\n value: request.value.min,\n label: String(request.value.min),\n },\n max: {\n value: request.value.max,\n label: String(request.value.max),\n },\n applied: true,\n },\n },\n });\n","import {\n DaffCategoryFilterRequest,\n DaffCategoryFilter,\n DaffCategoryFilterToggleRequest,\n} from '../../models/public_api';\nimport { DaffCategoryFilterNotFound } from '../errors/filter-not-found.error';\nimport { DaffCategoryFilterRequestNameMismatch } from '../errors/request-name-mismatch.error';\n\n/**\n * Ensures that the names of the filter and the filter request match.\n *\n * @throws {@link DaffCategoryFilterNotFound} if the names do not match.\n */\nexport const daffCategoryValidateFilterRequestNameMatch = (\n request: DaffCategoryFilterRequest | DaffCategoryFilterToggleRequest,\n filter: DaffCategoryFilter,\n): void => {\n if (!filter) {\n throw new DaffCategoryFilterNotFound('Filter does not exist');\n }\n if (request.name !== filter.name) {\n throw new DaffCategoryFilterRequestNameMismatch('Filter name does not match request name');\n }\n};\n","import {\n DaffCategoryFilterRequest,\n DaffCategoryFilter,\n DaffCategoryFilterToggleRequest,\n} from '../../models/public_api';\nimport { DaffCategoryFilterRequestTypeMismatch } from '../errors/request-type-mismatch.error';\n\n/**\n * Ensures that the types of the filter and the filter request match.\n *\n * @throws {@link DaffCategoryFilterRequestTypeMismatch} if the types do not match.\n */\nexport const daffCategoryValidateFilterRequestTypeMatch = (\n request: DaffCategoryFilterRequest | DaffCategoryFilterToggleRequest,\n filter: DaffCategoryFilter,\n): void => {\n if (request.type !== filter.type) {\n throw new DaffCategoryFilterRequestTypeMismatch('Filter types don\\'t match');\n }\n};\n","import {\n DaffCategoryFilterRequest,\n DaffCategoryFilter,\n DaffCategoryFilterType,\n DaffCategoryFilterEqual,\n DaffCategoryFilterRangeNumeric,\n} from '../../../models/public_api';\nimport { DaffCategoryUnknownFilterType } from '../../errors/unknown-filter-type.error';\nimport { daffApplyFilterEqual } from '../../type/equal/behaviors/apply/apply';\nimport { daffApplyFilterRange } from '../../type/range/behaviors/apply/apply';\nimport {\n daffCategoryValidateFilterRequestNameMatch,\n daffCategoryValidateFilterRequestTypeMatch,\n} from '../../validators/public_api';\n\n/**\n * Applies a filter request to the matching filter.\n *\n * @idempotent {filter}\n * @throws {@link DaffCategoryUnknownFilterType}\n */\nexport const daffApplyFilter = (request: DaffCategoryFilterRequest, filter: DaffCategoryFilter): DaffCategoryFilter => {\n daffCategoryValidateFilterRequestNameMatch(request, filter);\n daffCategoryValidateFilterRequestTypeMatch(request, filter);\n\n switch (request.type) {\n case DaffCategoryFilterType.Equal:\n return daffApplyFilterEqual(request, <DaffCategoryFilterEqual>filter);\n case(DaffCategoryFilterType.RangeNumeric):\n return daffApplyFilterRange(request, <DaffCategoryFilterRangeNumeric>filter);\n default:\n throw new DaffCategoryUnknownFilterType('Unknown filter type');\n }\n};\n","import { Dict } from '@daffodil/core';\n\nimport {\n DaffCategoryFilterRequest,\n DaffCategoryFilter,\n} from '../../../models/public_api';\nimport { daffApplyFilter } from './apply-filter';\n\n/**\n * Applies a {@link DaffCategoryFilterRequest} to a {@link Dict} of {@link DaffCategoryFilter}\n * returning the updated {@link Dict}.\n *\n * @idempotent {filters}\n */\nexport const daffApplyRequestToFilters = (request: DaffCategoryFilterRequest, filters: Dict<DaffCategoryFilter>): Dict<DaffCategoryFilter> => ({\n ...filters,\n [request.name]: daffApplyFilter(request, filters[request.name]),\n});\n\n\n","import { Dict } from '@daffodil/core';\n\nimport {\n DaffCategoryFilterRequest,\n DaffCategoryFilter,\n} from '../../../models/public_api';\nimport { daffApplyFilter } from './apply-filter';\n\n/**\n * Applies filters from a {@link DaffCategoryFilterRequest} to a {@link Dict}\n * of {@link DaffCategoryFilter}.\n *\n * @idempotent {filters}\n */\nexport const daffApplyRequestsToFilters = (\n filtersRequests: DaffCategoryFilterRequest[],\n filters: Dict<DaffCategoryFilter>,\n): Dict<DaffCategoryFilter> =>\n filtersRequests.reduce((acc, request) => {\n acc[request.name] = daffApplyFilter(request, filters[request.name]);\n return acc;\n }, { ...filters });\n\n\n","import { DaffCategoryFilterEqual } from '../../../../../models/public_api';\n\n/**\n * Unapplies the applied filter options of a {@link DaffCategoryFilterEqual}\n *\n * @idempotent {filter}\n * @docs-private\n */\nexport const daffClearFilterEqual = (filter: DaffCategoryFilterEqual): DaffCategoryFilterEqual => ({\n ...filter,\n options: Object.keys(filter.options).map((key) => filter.options[key]).reduce((acc, option) => {\n acc[option.value] = {\n ...option,\n applied: false,\n };\n return acc;\n }, { ...filter.options }),\n});\n","import { DaffCategoryFilterRangeBase } from '../../../../../models/public_api';\n\n/**\n * Unapplies the applied filter options of a {@link DaffCategoryFilterRangeBase}\n *\n * @idempotent {filter}\n * @docs-private\n */\nexport const daffClearFilterRange = <T, U extends DaffCategoryFilterRangeBase<T>>(filter: U): U => ({\n ...filter,\n options: {},\n});\n","import {\n DaffCategoryFilterType,\n DaffCategoryFilter,\n} from '../../../models/public_api';\nimport { DaffCategoryUnknownFilterType } from '../../errors/unknown-filter-type.error';\nimport { daffClearFilterEqual } from '../../type/equal/behaviors/clear/clear';\nimport { daffClearFilterRange } from '../../type/range/behaviors/clear/clear';\n\n/**\n * Undoes the applied state of all applied filter options of a {@link DaffCategoryFilter}\n * returning the filter.\n *\n * @idempotent {filter}\n */\nexport const daffClearFilter = (filter: DaffCategoryFilter): DaffCategoryFilter => {\n switch (filter.type) {\n case DaffCategoryFilterType.RangeNumeric:\n return daffClearFilterRange(filter);\n case DaffCategoryFilterType.Equal:\n return daffClearFilterEqual(filter);\n default:\n throw new DaffCategoryUnknownFilterType('Unknown filter type');\n }\n};\n","import { Dict } from '@daffodil/core';\n\nimport { DaffCategoryFilter } from '../../../models/public_api';\nimport { daffClearFilter } from './clear-filter';\n\n/**\n * Undoes the applied state of all applied filter options of a {@link Dict} of {@link DaffCategoryFilter}\n * returning updated {@link Dict}.\n *\n * @idempotent {filters}\n */\nexport const daffClearFilters = (filters: Dict<DaffCategoryFilter>): Dict<DaffCategoryFilter> =>\n Object.keys(filters).map((key) => filters[key]).reduce((acc, filter) => {\n acc[filter.name] = daffClearFilter(filter);\n return acc;\n }, {});\n","import {\n DaffCategoryFilterEqualRequest,\n DaffCategoryFilter,\n DaffCategoryFilterEqual,\n} from '../../../../../models/public_api';\n\n/**\n * Removes the matching filter options of a {@link DaffCategoryFilterEqual}\n * that match the {@link DaffCategoryFilterEqualRequest}\n *\n * If there are no matching options, returns the original {@link DaffCategoryFilterEqual}\n *\n * @idempotent {filter}\n * @docs-private\n */\nexport const daffRemoveFilterEqual = (\n request: DaffCategoryFilterEqualRequest,\n filter: DaffCategoryFilterEqual,\n): DaffCategoryFilter => ({\n ...filter,\n options: request.value.reduce((acc, value) => {\n const option = filter.options[value];\n\n if (option) {\n acc[value] = {\n ...option,\n applied: false,\n };\n }\n\n return acc;\n }, { ...filter.options }),\n});\n","import {\n DaffCategoryFilterRangeRequestBase,\n DaffCategoryFilterRangeBase,\n} from '../../../../../models/public_api';\nimport { daffCategoryComputeFilterRangePairLabel } from '../../compute-pair-label';\n\n/**\n * Removes the matching filter options of a {@link DaffCategoryFilterRangeBase}\n * that match the {@link DaffCategoryFilterRangeRequestBase}\n *\n * If there are no matching options, returns the original {@link DaffCategoryFilterRangeBase}\n *\n * @idempotent {filter}\n * @docs-private\n */\nexport const daffRemoveFilterRange = <T, U extends DaffCategoryFilterRangeBase<T>>(\n request: DaffCategoryFilterRangeRequestBase<T>,\n filter: U,\n): U =>\n filter.options[daffCategoryComputeFilterRangePairLabel(request.value.min, request.value.max)]\n ? ({\n ...filter,\n options: {},\n })\n : filter;\n","import {\n DaffCategoryFilterRequest,\n DaffCategoryFilter,\n DaffCategoryFilterType,\n DaffCategoryFilterEqual,\n DaffCategoryFilterRangeNumeric,\n} from '../../../models/public_api';\nimport { DaffCategoryUnknownFilterType } from '../../errors/unknown-filter-type.error';\nimport { daffRemoveFilterEqual } from '../../type/equal/behaviors/remove/remove';\nimport { daffRemoveFilterRange } from '../../type/range/behaviors/remove/remove';\nimport {\n daffCategoryValidateFilterRequestNameMatch,\n daffCategoryValidateFilterRequestTypeMatch,\n} from '../../validators/public_api';\n\n/**\n * Undoes any applied options of a {@link DaffCategoryFilter} that match the\n * {@link DaffCategoryFilterRequest}, returning the {@link DaffCategoryFilter}.\n *\n * @idempotent {filter}\n * @pure\n */\nexport const daffRemoveFilter = (request: DaffCategoryFilterRequest, filter: DaffCategoryFilter): DaffCategoryFilter => {\n daffCategoryValidateFilterRequestNameMatch(request, filter);\n daffCategoryValidateFilterRequestTypeMatch(request, filter);\n\n switch (request.type) {\n case DaffCategoryFilterType.Equal:\n return daffRemoveFilterEqual(request, <DaffCategoryFilterEqual>filter);\n case (DaffCategoryFilterType.RangeNumeric):\n return daffRemoveFilterRange(request, <DaffCategoryFilterRangeNumeric>filter);\n default:\n throw new DaffCategoryUnknownFilterType('Unknown filter type');\n }\n};\n","import { Dict } from '@daffodil/core';\n\nimport {\n DaffCategoryFilterRequest,\n DaffCategoryFilter,\n} from '../../../models/public_api';\nimport { daffRemoveFilter } from './remove-filter';\n\n/**\n * Undoes any applied options of a particular filter of a {@link Dict} of {@link DaffCategoryFilter}\n * that match the {@link DaffCategoryFilterRequest}, returning the {@link Dict} of {@link DaffCategoryFilter}.\n *\n * @idempotent {filters}\n */\nexport const daffRemoveRequestFromFilters = (\n request: DaffCategoryFilterRequest,\n filters: Dict<DaffCategoryFilter>,\n): Dict<DaffCategoryFilter> => ({\n ...filters,\n [request.name]: daffRemoveFilter(request, filters[request.name]),\n});\n","import { Dict } from '@daffodil/core';\n\nimport {\n DaffCategoryFilterRequest,\n DaffCategoryFilter,\n} from '../../../models/public_api';\nimport { daffRemoveFilter } from './remove-filter';\n\n/**\n * Undoes all applied options of a {@link Dict} of {@link DaffCategoryFilter}\n * that match any of the {@link DaffCategoryFilterRequest},\n * returning the updated {@link Dict} of {@link DaffCategoryFilter}.\n *\n * @idempotent {filters}\n */\nexport const daffRemoveRequestsFromFilters = (\n requests: (DaffCategoryFilterRequest)[],\n filters: Dict<DaffCategoryFilter>,\n): Dict<DaffCategoryFilter> =>\n requests.reduce((acc, request) => {\n acc[request.name] = daffRemoveFilter(request, filters[request.name]);\n return acc;\n }, { ...filters });\n","import { DaffCategoryFilterEqual } from '../../../../../models/public_api';\nimport { DaffCategoryFilterEqualToggleRequest } from '../../../../../models/public_api';\n\n/**\n * Oscillates the applied state of the matching filter options of a {@link DaffCategoryFilterEqual}\n * that match the {@link DaffCategoryFilterEqualRequest}\n *\n * If there are no matching options, returns the original {@link DaffCategoryFilterEqual}\n *\n * @docs-private\n */\nexport const daffToggleFilterEqual = (\n request: DaffCategoryFilterEqualToggleRequest,\n filter: DaffCategoryFilterEqual,\n): DaffCategoryFilterEqual => {\n const option = filter.options[request.value];\n\n return option\n ? {\n ...filter,\n options: {\n ...filter.options,\n [option.value]: {\n ...option,\n applied: !option.applied,\n },\n },\n }\n : filter;\n};\n","import {\n DaffCategoryFilterRangeBase,\n DaffCategoryFilterRangeRequestBase,\n} from '../../../../../models/public_api';\nimport { daffCategoryComputeFilterRangePairLabel } from '../../compute-pair-label';\nimport { daffApplyFilterRange } from '../apply/apply';\nimport { daffRemoveFilterRange } from '../remove/remove';\n\n/**\n * Oscillates the applied state of the matching filter options of a {@link DaffCategoryFilterRangeBase}\n * that match the {@link DaffCategoryFilterRangeRequestBase}\n *\n * If there are no matching options, returns the original {@link DaffCategoryFilterRangeBase}\n *\n * @docs-private\n */\nexport const daffToggleFilterRange = <T, U extends DaffCategoryFilterRangeBase<T>>(\n request: DaffCategoryFilterRangeRequestBase<T>,\n filter: U,\n): U =>\n filter.options[daffCategoryComputeFilterRangePairLabel(request.value.min, request.value.max)]\n ? daffRemoveFilterRange(request, filter)\n : daffApplyFilterRange(request, filter);\n","import {\n DaffCategoryFilterToggleRequest,\n DaffCategoryFilter,\n DaffCategoryFilterType,\n DaffCategoryFilterEqual,\n DaffCategoryFilterRangeNumeric,\n} from '../../../models/public_api';\nimport { DaffCategoryUnknownFilterType } from '../../errors/unknown-filter-type.error';\nimport { daffToggleFilterEqual } from '../../type/equal/behaviors/toggle/toggle';\nimport { daffToggleFilterRange } from '../../type/range/behaviors/toggle/toggle';\nimport {\n daffCategoryValidateFilterRequestNameMatch,\n daffCategoryValidateFilterRequestTypeMatch,\n} from '../../validators/public_api';\n\n/**\n * Toggles the state of the filters (and their options) in the {@link DaffCategoryFilter}\n * that match the {@link DaffCategoryFilterToggleRequest} .\n */\nexport function daffToggleFilter(\n request: DaffCategoryFilterToggleRequest,\n filter: DaffCategoryFilter,\n): DaffCategoryFilter {\n daffCategoryValidateFilterRequestNameMatch(request, filter);\n daffCategoryValidateFilterRequestTypeMatch(request, filter);\n\n switch (request.type) {\n case DaffCategoryFilterType.Equal:\n return daffToggleFilterEqual(request, <DaffCategoryFilterEqual>filter);\n case(DaffCategoryFilterType.RangeNumeric):\n return daffToggleFilterRange(request, <DaffCategoryFilterRangeNumeric>filter);\n default:\n throw new DaffCategoryUnknownFilterType('Unknown filter type');\n }\n}\n","import { Dict } from '@daffodil/core';\n\nimport {\n DaffCategoryFilter,\n DaffCategoryFilterToggleRequest,\n} from '../../../models/public_api';\nimport { daffToggleFilter } from './toggle';\n\n/**\n * Toggles the state of a filter option in the {@link Dict<DaffCategoryFilter>}\n * that matches the {@link DaffCategoryFilterToggleRequest}.\n */\nexport const daffToggleRequestOnFilters = (\n request: DaffCategoryFilterToggleRequest,\n filters: Dict<DaffCategoryFilter>): Dict<DaffCategoryFilter> => ({\n ...filters,\n [request.name]: daffToggleFilter(request, filters[request.name]),\n});\n\n\n","import { DaffCategoryFilterEqual } from '../../../../models/public_api';\n\n/**\n * Determines whether or not the {@link DaffCategoryFilterEqual} has any applied options.\n */\nexport const daffIsFilterEqualApplied = (filter: DaffCategoryFilterEqual): boolean =>\n Object.keys(filter.options).map((key) => filter.options[key]).findIndex(option => option.applied) > -1;\n","import { DaffCategoryFilterRangeBase } from '../../../../models/public_api';\n\n/**\n * Determines whether or not a {@link DaffCategoryFilterRangeBase} has any applied options.\n */\nexport const daffIsFilterRangeApplied = <T>(filter: DaffCategoryFilterRangeBase<T>): boolean =>\n Object.keys(filter.options).length > 0;\n","import {\n DaffCategoryFilterType,\n DaffCategoryFilter,\n} from '../../models/public_api';\nimport { DaffCategoryUnknownFilterType } from '../errors/unknown-filter-type.error';\nimport { daffIsFilterEqualApplied } from '../type/equal/is-applied/is-applied';\nimport { daffIsFilterRangeApplied } from '../type/range/is-applied/is-applied';\n\n/**\n * Determines whether or not a filter has any currently applied options.\n */\nexport const daffIsFilterApplied = (filter: DaffCategoryFilter): boolean => {\n switch (filter.type) {\n case DaffCategoryFilterType.RangeNumeric:\n return daffIsFilterRangeApplied(filter);\n case DaffCategoryFilterType.Equal:\n return daffIsFilterEqualApplied(filter);\n default:\n throw new DaffCategoryUnknownFilterType('Unknown filter type');\n }\n};\n","import {\n DaffCategoryFilterEqualToggleRequest,\n DaffCategoryFilterEqual,\n} from '../../../../models/public_api';\n\n/**\n * Determines whether or not any {@link DaffCategoryFilterEqual} options matching {@link DaffCategoryFilterEqualToggleRequest} are applied.\n */\nexport const daffIsEqualToggleRequestAppliedToFilter = (\n request: DaffCategoryFilterEqualToggleRequest,\n filter: DaffCategoryFilterEqual,\n): boolean => !!filter.options[request.value]?.applied;\n","import {\n DaffCategoryFilterRangeRequestBase,\n DaffCategoryFilterRangeBase,\n} from '../../../../models/public_api';\nimport { daffCategoryComputeFilterRangePairLabel } from '../compute-pair-label';\n\n/**\n * Determines whether or not any {@link DaffCategoryFilterRangeBase} options matching {@link DaffCategoryFilterRangeRequestBase} are applied.\n */\nexport const daffIsRangeToggleRequestAppliedToFilter = <T>(\n request: DaffCategoryFilterRangeRequestBase<T>,\n filter: DaffCategoryFilterRangeBase<T>,\n): boolean =>\n daffCategoryComputeFilterRangePairLabel(request.value.min, request.value.max) in filter.options;\n","import {\n DaffCategoryFilter,\n DaffCategoryFilterToggleRequest,\n DaffCategoryFilterType,\n DaffCategoryFilterRangeNumericToggleRequest,\n DaffCategoryFilterEqualToggleRequest,\n} from '../../models/public_api';\nimport { DaffCategoryUnknownFilterType } from '../errors/unknown-filter-type.error';\nimport { daffIsEqualToggleRequestAppliedToFilter } from '../type/equal/is-applied/is-toggle-request-applied-to-filter';\nimport { daffIsRangeToggleRequestAppliedToFilter } from '../type/range/is-applied/is-toggle-request-applied-to-filter';\n\n/**\n * Determines whether or not a {@link DaffCategoryFilterToggleRequest} is already applied to a {@link DaffCategoryFilter}.\n */\nexport const daffIsToggleRequestAppliedToFilter = (request: DaffCategoryFilterToggleRequest, filter: DaffCategoryFilter): boolean => {\n switch (filter.type) {\n case DaffCategoryFilterType.RangeNumeric:\n return daffIsRangeToggleRequestAppliedToFilter(<DaffCategoryFilterRangeNumericToggleRequest>request, filter);\n case DaffCategoryFilterType.Equal:\n return daffIsEqualToggleRequestAppliedToFilter(<DaffCategoryFilterEqualToggleRequest>request, filter);\n default:\n throw new DaffCategoryUnknownFilterType('Unknown filter type');\n }\n};\n","import { DaffCategoryFilterBase } from '../../models/public_api';\n\n/**\n * Finds the applied options in the filter.\n */\nexport const daffCategoryFindAppliedFilterOptions = <T extends DaffCategoryFilterBase>(filter: T): T['options'][string][] =>\n Object.keys(filter.options).map((key) => <T['options'][string]>filter.options[key]).filter((option) => option.applied);\n","import {\n DaffCategoryFilterEqual,\n DaffCategoryFilterEqualRequest,\n DaffCategoryFilterType,\n} from '../../../../models/public_api';\nimport { daffCategoryFindAppliedFilterOptions } from '../../../find-applied/public_api';\n\n/**\n * Builds an {@link DaffCategoryFilterEqualRequest} from the passed filter and options.\n */\nexport const daffCategoryFilterEqualToRequest = (\n filter: DaffCategoryFilterEqual,\n): DaffCategoryFilterEqualRequest | null => {\n const options = daffCategoryFindAppliedFilterOptions(filter);\n if(!options.length){\n return null;\n }\n\n return {\n type: DaffCategoryFilterType.Equal,\n name: filter.name,\n value: options.map(option => option.value),\n };\n};\n","import {\n DaffCategoryFilterRangeBase,\n DaffCategoryFilterRangeRequestBase,\n} from '../../../../models/public_api';\nimport { daffCategoryFindAppliedFilterOptions } from '../../../find-applied/public_api';\n\n/**\n * Builds a {@link DaffCategoryFilterRangeRequestBase} from the passed {@link DaffCategoryFilterRangeBase} and options.\n */\nexport const daffCategoryFilterRangeToRequest = <T, U extends DaffCategoryFilterRangeBase<T>>(\n filter: U,\n): DaffCategoryFilterRangeRequestBase<T> => {\n const options = daffCategoryFindAppliedFilterOptions(filter);\n if(!options.length){\n return null;\n }\n\n return {\n type: filter.type,\n name: filter.name,\n value: {\n min: options[0].min.value,\n max: options[0].max.value,\n },\n };\n};\n","import {\n DaffCategoryFilterRangeNumeric,\n DaffCategoryFilterRangeNumericRequest,\n} from '../../../../models/public_api';\nimport { daffCategoryFilterRangeToRequest } from '../../range/to-request/filter-to-request';\n\n/**\n * Transforms a {@link DaffCategoryFilterRangeNumeric} into a {@link DaffCategoryFilterRangeNumericRequest}\n */\nexport const daffCategoryFilterRangeNumericToRequest = (\n filter: DaffCategoryFilterRangeNumeric,\n): DaffCategoryFilterRangeNumericRequest => <DaffCategoryFilterRangeNumericRequest>daffCategoryFilterRangeToRequest(filter);\n","import {\n DaffCategoryFilter,\n DaffCategoryFilterRequest,\n DaffCategoryFilterType,\n} from '../../models/public_api';\nimport { DaffCategoryUnknownFilterType } from '../errors/unknown-filter-type.error';\nimport { daffCategoryFilterEqualToRequest } from '../type/equal/to-request/filter-to-request';\nimport { daffCategoryFilterRangeNumericToRequest } from '../type/range-numeric/to-request/filter-to-request';\n\n/**\n * Builds a category filter request from a category filter.\n * Returns null if the category filter does not have at least one applied option.\n */\nexport function daffCategoryFilterToRequest(filter: DaffCategoryFilter): DaffCategoryFilterRequest | null {\n switch (filter.type) {\n case DaffCategoryFilterType.RangeNumeric:\n return daffCategoryFilterRangeNumericToRequest(filter);\n case DaffCategoryFilterType.Equal:\n return daffCategoryFilterEqualToRequest(filter);\n default:\n throw new DaffCategoryUnknownFilterType('Unknown filter type');\n }\n};\n","import { Dict } from '@daffodil/core';\n\nimport {\n DaffCategoryFilter,\n DaffCategoryFilterRequest,\n} from '../../models/public_api';\nimport { daffCategoryFilterToRequest } from './filter-to-request';\n\n/**\n * Builds a list of filter requests from a list of filters.\n * Requests are only built for the filters that have at least one applied option.\n */\nexport function daffCategoryFiltersToRequests(filters: Dict<DaffCategoryFilter>): DaffCategoryFilterRequest[] {\n return Object.keys(filters).map((key) => filters[key]).reduce((acc: DaffCategoryFilterRequest[], filter) => {\n const request = daffCategoryFilterToRequest(filter);\n\n if (request) {\n acc.push(request);\n }\n\n return acc;\n }, []);\n}\n","import {\n Dict,\n daffArrayToDict,\n} from '@daffodil/core';\n\nimport { DaffCategoryFilterRangePair } from '../../../../models/public_api';\nimport { daffCategoryComputeFilterRangePairLabel } from '../compute-pair-label';\n\n/**\n * Transforms an {@link DaffCategoryFilterRangePair[]} to a {@link Dict<DaffCategoryFilterRangePair>}.\n */\nexport const daffCategoryFilterRangePairArrayToDict = <T>(pairs: DaffCategoryFilterRangePair<T>[]): Dict<DaffCategoryFilterRangePair<T>> =>\n daffArrayToDict(pairs, pair => daffCategoryComputeFilterRangePairLabel(pair.min.value, pair.max.value));\n","import {\n Dict,\n daffArrayToDict,\n} from '@daffodil/core';\n\nimport { DaffCategoryFilterEqualOption } from '../../../../models/public_api';\n\n/**\n * Converts a list of category equal filter options to a dict of options keyed by option value.\n */\nexport const daffCategoryFilterEqualOptionArrayToDict =\n (options: DaffCategoryFilterEqualOption[]): Dict<DaffCategoryFilterEqualOption> =>\n daffArrayToDict(options, option => option.value);\n","import {\n Dict,\n daffArrayToDict,\n} from '@daffodil/core';\n\nimport { DaffCategoryFilter } from '../../models/public_api';\n\n/**\n * Converts a list of category filters into a {@link Dict} of filters keyed by filter name.\n */\nexport const daffCategoryFilterArrayToDict = (filters: DaffCategoryFilter[]): Dict<DaffCategoryFilter> =>\n daffArrayToDict(filters, filter => filter.name);\n","import { Dict } from '@daffodil/core';\n\nimport {\n DaffCategoryFilter,\n DaffCategoryFilterType,\n DaffCategoryFilterEqualOption,\n DaffCategoryFilterRangePair,\n} from '../../models/public_api';\nimport { daffCategoryFindAppliedFilterOptions } from '../find-applied/public_api';\nimport { daffCategoryFilterEqualOptionArrayToDict } from '../type/equal/public_api';\nimport { daffCategoryFilterRangePairArrayToDict } from '../type/range/public_api';\n\n/**\n * Returns a {@link Dict<DaffCategoryFilter>} and only their applied options.\n * {@link DaffCategoryFilter} that have no applied options will be omitted.\n */\nexport const daffCategoryComputeAppliedFilters = (filters: Dict<DaffCategoryFilter>): Dict<DaffCategoryFilter> =>\n Object.keys(filters).map(key => filters[key]).reduce((acc, filter) => {\n const appliedOptions = daffCategoryFindAppliedFilterOptions(filter);\n\n if (appliedOptions.length > 0) {\n acc[filter.name] = {\n ...filter,\n options: filter.type === DaffCategoryFilterType.Equal\n ? daffCategoryFilterEqualOptionArrayToDict(<DaffCategoryFilterEqualOption[]>appliedOptions)\n : daffCategoryFilterRangePairArrayToDict(<DaffCategoryFilterRangePair<unknown>[]>appliedOptions),\n };\n }\n\n return acc;\n }, {});\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@daffodil/category",
3
- "version": "0.38.9",
3
+ "version": "0.39.0",
4
4
  "description": "An ecommerce categories package that has multi-platform support and state management features.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -18,8 +18,8 @@
18
18
  "peerDependencies": {
19
19
  "@angular/common": "^11.0.0",
20
20
  "@angular/core": "^11.0.0",
21
- "@daffodil/core": "0.38.9",
22
- "@daffodil/product": "0.38.9",
21
+ "@daffodil/core": "0.39.0",
22
+ "@daffodil/product": "0.39.0",
23
23
  "@ngrx/effects": "^11.0.0",
24
24
  "@ngrx/entity": "^11.0.0",
25
25
  "@ngrx/store": "^11.0.0",
@@ -27,7 +27,7 @@
27
27
  },
28
28
  "optionalDependencies": {
29
29
  "@apollo/client": "^3.0.0",
30
- "@daffodil/driver": "0.38.9",
30
+ "@daffodil/driver": "0.39.0",
31
31
  "angular-in-memory-web-api": "^0.11.0",
32
32
  "apollo-angular": "^2.4.0",
33
33
  "faker": "^5.5.3"
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"DaffCategoryPageResolver":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":16,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"DaffCategoryPageIdResolver"}]}],"resolve":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"DaffCategoryPageIdResolver":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":35,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":40,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"PLATFORM_ID","line":40,"character":12}]}],null,null],"parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Store","module":"@ngrx/store","arguments":[{"__symbolic":"reference","module":"@daffodil/category/state","name":"DaffCategoryReducersState","line":41,"character":25}]},{"__symbolic":"reference","module":"@ngrx/store","name":"ActionsSubject","line":42,"character":24}]}],"resolve":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"DaffCategoryPageUrlResolver":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":39,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":44,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"PLATFORM_ID","line":44,"character":12}]}],null,null,null],"parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Store","module":"@ngrx/store","arguments":[{"__symbolic":"reference","module":"@daffodil/category/state","name":"DaffCategoryReducersState","line":45,"character":25}]},{"__symbolic":"reference","module":"@ngrx/store","name":"ActionsSubject","line":46,"character":24},{"__symbolic":"reference","module":"@daffodil/core/routing","name":"DaffRoutingUriNormalizer","line":47,"character":27}]}],"resolve":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}}},"origins":{"DaffCategoryPageResolver":"./resolvers/category-page/category-page.resolver","DaffCategoryPageIdResolver":"./resolvers/category-page-id/category-page-id.resolver","DaffCategoryPageUrlResolver":"./resolvers/category-page-url/category-page-url.resolver"},"importAs":"@daffodil/category/routing"}
1
+ {"__symbolic":"module","version":4,"metadata":{"DaffCategoryPageResolver":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":16,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"DaffCategoryPageIdResolver"}]}],"resolve":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"DaffCategoryPageIdResolver":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":35,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":40,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"PLATFORM_ID","line":40,"character":12}]}],null,null],"parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Store","module":"@ngrx/store","arguments":[{"__symbolic":"reference","module":"@daffodil/category/state","name":"DaffCategoryReducersState","line":41,"character":25}]},{"__symbolic":"reference","module":"@ngrx/store","name":"ActionsSubject","line":42,"character":24}]}],"resolve":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"DaffCategoryPageUrlResolver":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":43,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":48,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"PLATFORM_ID","line":48,"character":12}]}],null,null,null],"parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Store","module":"@ngrx/store","arguments":[{"__symbolic":"reference","module":"@daffodil/category/state","name":"DaffCategoryReducersState","line":49,"character":25}]},{"__symbolic":"reference","module":"@ngrx/store","name":"ActionsSubject","line":50,"character":24},{"__symbolic":"reference","module":"@daffodil/core/routing","name":"DaffRoutingUriNormalizer","line":51,"character":27}]}],"resolve":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}}},"origins":{"DaffCategoryPageResolver":"./resolvers/category-page/category-page.resolver","DaffCategoryPageIdResolver":"./resolvers/category-page-id/category-page-id.resolver","DaffCategoryPageUrlResolver":"./resolvers/category-page-url/category-page-url.resolver"},"importAs":"@daffodil/category/routing"}
@@ -8,4 +8,4 @@
8
8
  "typings": "daffodil-category-routing.d.ts",
9
9
  "metadata": "daffodil-category-routing.metadata.json",
10
10
  "sideEffects": false
11
- }
11
+ }
@@ -8,6 +8,8 @@ import { DaffRoutingUriNormalizer } from '@daffodil/core/routing';
8
8
  * after a category request succeeds or fails. This resolver will take a full
9
9
  * a url of the form `some/url.html(secondary:outlet)?query=param#fragment` and attempt to resolve a product from it.
10
10
  * Assumes that the URL to be resolved is the primary outlet.
11
+ *
12
+ * Will check the `p` and `page` query params for a page number value.
11
13
  */
12
14
  export declare class DaffCategoryPageUrlResolver implements Resolve<Observable<boolean>> {
13
15
  private platformId;
@@ -8,4 +8,4 @@
8
8
  "typings": "daffodil-category-state.d.ts",
9
9
  "metadata": "daffodil-category-state.metadata.json",
10
10
  "sideEffects": false
11
- }
11
+ }
@@ -8,4 +8,4 @@
8
8
  "typings": "daffodil-category-state-testing.d.ts",
9
9
  "metadata": "daffodil-category-state-testing.metadata.json",
10
10
  "sideEffects": false
11
- }
11
+ }
@@ -8,4 +8,4 @@
8
8
  "typings": "daffodil-category-testing.d.ts",
9
9
  "metadata": "daffodil-category-testing.metadata.json",
10
10
  "sideEffects": false
11
- }
11
+ }