@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,"sources":["../../../libs/category/src/models/filters/type/category-filter-type.ts","../../../libs/category/src/filters/errors/codes.enum.ts","../../../libs/category/src/errors/codes.enum.ts","../../../node_modules/tslib/tslib.es6.js","../../../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/range/compute-pair-label.ts","../../../libs/category/src/models/filters/type/range/separator.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/type/equal/behaviors/apply/apply.ts","../../../libs/category/src/filters/behaviors/clear/clear-filter.ts","../../../libs/category/src/filters/type/range/behaviors/clear/clear.ts","../../../libs/category/src/filters/type/equal/behaviors/clear/clear.ts","../../../libs/category/src/filters/type/range/behaviors/remove/remove.ts","../../../libs/category/src/filters/behaviors/remove/remove-filter.ts","../../../libs/category/src/filters/type/equal/behaviors/remove/remove.ts","../../../libs/category/src/filters/behaviors/toggle/toggle.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/find-applied/find-applied-options.ts","../../../libs/category/src/filters/type/range-numeric/to-request/filter-to-request.ts","../../../libs/category/src/filters/type/range/to-request/filter-to-request.ts","../../../libs/category/src/filters/to-request/filter-to-request.ts","../../../libs/category/src/filters/type/equal/to-request/filter-to-request.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/models/category-request.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/compute-applied-filters/compute-applied-filters.ts","../../../libs/category/src/filters/array-to-dict/array-to-dict.ts","../../../libs/category/src/filters/to-request/filters-to-requests.ts","../../../libs/category/src/filters/behaviors/clear/clear-filters.ts","../../../libs/category/src/filters/is-applied/is-filter-applied.ts","../../../libs/category/src/filters/type/range/is-applied/is-applied.ts","../../../libs/category/src/filters/type/equal/is-applied/is-applied.ts","../../../libs/category/src/filters/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/type/equal/is-applied/is-toggle-request-applied-to-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/behaviors/toggle/toggle-request-on-filters.ts"],"names":["DaffCategoryFilterType","Equal","RangeNumeric","DaffCategoryFilterErrorCodes","FILTER_REQUEST_TYPE_MISMATCH","FILTER_REQUEST_NAME_MISMATCH","FILTER_NOT_FOUND","UNKNOWN_FILTER_TYPE","DaffCategoryErrorCodes","Object","assign","extendStatics","d","b","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","DaffCategoryFilterNotFound","message","_this","_super","code","DaffInheritableError","DaffCategoryFilterRequestNameMismatch","DaffCategoryFilterRequestTypeMismatch","DaffCategoryUnknownFilterType","DaffCategoryFiltersErrorMap","_a","DaffCategoryErrorMap","DAFF_CATEGORY_ERROR_MATCHER","InjectionToken","factory","daffTransformErrorToStateError","daffCategoryComputeFilterRangePairLabel","min","max","daffApplyFilterRange","request","filter","options","value","label","applied","daffCategoryValidateFilterRequestNameMatch","name","daffCategoryValidateFilterRequestTypeMatch","type","daffApplyFilter","reduce","acc","option","daffApplyFilterEqual","daffClearFilter","daffClearFilterRange","keys","map","key","daffClearFilterEqual","daffRemoveFilterRange","daffRemoveFilter","daffRemoveFilterEqual","daffToggleFilter","daffToggleFilterEqual","daffToggleFilterRange","daffCategoryFindAppliedFilterOptions","daffCategoryFilterRangeNumericToRequest","length","daffCategoryFilterToRequest","daffCategoryFilterEqualToRequest","daffCategoryFilterRangePairArrayToDict","pairs","daffArrayToDict","pair","daffCategoryFilterEqualOptionArrayToDict","URL","ID","filters","filtersRequests","appliedOptions","push","daffIsFilterRangeApplied","findIndex","daffIsFilterEqualApplied","daffIsRangeToggleRequestAppliedToFilter","daffIsEqualToggleRequestAppliedToFilter","requests"],"mappings":"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","sourcesContent":["/**\n * The known types of filters.\n */\nexport enum DaffCategoryFilterType {\n\tEqual = 'equal',\n\tRangeNumeric = 'rangeNumeric'\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","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\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 { DaffCategoryFromToFilterSeparator } from '../../../models/public_api';\n\nexport const daffCategoryComputeFilterRangePairLabel = (min, max): string =>\n `${min}${DaffCategoryFromToFilterSeparator}${max}`;\n","/**\n * The separator between a range type filter's values\n * e.g. \"price\": \"30-40\".\n */\nexport const DaffCategoryFromToFilterSeparator = '-';\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 {\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 {\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 { 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 { 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 {\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 {\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 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 { 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 { 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 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 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 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 {\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 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 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","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 { 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","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 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 { 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 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 { 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 { 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 {\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 {\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 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 { 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 { 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"]}
1
+ {"version":3,"sources":["../../../libs/category/src/models/filters/type/category-filter-type.ts","../../../libs/category/src/models/category-request.ts","../../../libs/category/src/filters/errors/codes.enum.ts","../../../libs/category/src/errors/codes.enum.ts","../../../node_modules/tslib/tslib.es6.js","../../../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/range/compute-pair-label.ts","../../../libs/category/src/models/filters/type/range/separator.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/type/equal/behaviors/apply/apply.ts","../../../libs/category/src/filters/behaviors/clear/clear-filter.ts","../../../libs/category/src/filters/type/range/behaviors/clear/clear.ts","../../../libs/category/src/filters/type/equal/behaviors/clear/clear.ts","../../../libs/category/src/filters/type/range/behaviors/remove/remove.ts","../../../libs/category/src/filters/behaviors/remove/remove-filter.ts","../../../libs/category/src/filters/type/equal/behaviors/remove/remove.ts","../../../libs/category/src/filters/behaviors/toggle/toggle.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/find-applied/find-applied-options.ts","../../../libs/category/src/filters/type/range-numeric/to-request/filter-to-request.ts","../../../libs/category/src/filters/type/range/to-request/filter-to-request.ts","../../../libs/category/src/filters/to-request/filter-to-request.ts","../../../libs/category/src/filters/type/equal/to-request/filter-to-request.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/behaviors/apply/apply-request-to-filters.ts","../../../libs/category/src/filters/behaviors/apply/apply-requests-to-filters.ts","../../../libs/category/src/filters/compute-applied-filters/compute-applied-filters.ts","../../../libs/category/src/filters/array-to-dict/array-to-dict.ts","../../../libs/category/src/filters/to-request/filters-to-requests.ts","../../../libs/category/src/filters/behaviors/clear/clear-filters.ts","../../../libs/category/src/filters/is-applied/is-filter-applied.ts","../../../libs/category/src/filters/type/range/is-applied/is-applied.ts","../../../libs/category/src/filters/type/equal/is-applied/is-applied.ts","../../../libs/category/src/filters/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/type/equal/is-applied/is-toggle-request-applied-to-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/behaviors/toggle/toggle-request-on-filters.ts"],"names":["DaffCategoryFilterType","DaffCategoryRequestKind","DaffCategoryFilterErrorCodes","DaffCategoryErrorCodes","Object","assign","extendStatics","d","b","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","DaffCategoryFilterNotFound","message","_this","_super","code","FILTER_NOT_FOUND","DaffInheritableError","DaffCategoryFilterRequestNameMismatch","FILTER_REQUEST_NAME_MISMATCH","DaffCategoryFilterRequestTypeMismatch","FILTER_REQUEST_TYPE_MISMATCH","DaffCategoryUnknownFilterType","UNKNOWN_FILTER_TYPE","DaffCategoryFiltersErrorMap","_a","DaffCategoryErrorMap","DAFF_CATEGORY_ERROR_MATCHER","InjectionToken","factory","daffTransformErrorToStateError","daffCategoryComputeFilterRangePairLabel","min","max","daffApplyFilterRange","request","filter","options","value","label","applied","daffCategoryValidateFilterRequestNameMatch","name","daffCategoryValidateFilterRequestTypeMatch","type","daffApplyFilter","Equal","reduce","acc","option","daffApplyFilterEqual","daffClearFilter","RangeNumeric","daffClearFilterRange","keys","map","key","daffClearFilterEqual","daffRemoveFilterRange","daffRemoveFilter","daffRemoveFilterEqual","daffToggleFilter","daffToggleFilterEqual","daffToggleFilterRange","daffCategoryFindAppliedFilterOptions","daffCategoryFilterRangeNumericToRequest","length","daffCategoryFilterRangeToRequest","daffCategoryFilterToRequest","daffCategoryFilterEqualToRequest","daffCategoryFilterRangePairArrayToDict","pairs","daffArrayToDict","pair","daffCategoryFilterEqualOptionArrayToDict","filters","filtersRequests","appliedOptions","push","daffIsFilterRangeApplied","findIndex","daffIsFilterEqualApplied","daffIsRangeToggleRequestAppliedToFilter","daffIsEqualToggleRequestAppliedToFilter","requests"],"mappings":"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","sourcesContent":["/**\n * The known types of filters.\n */\nexport enum DaffCategoryFilterType {\n\tEqual = 'equal',\n\tRangeNumeric = 'rangeNumeric'\n}\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","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\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 { DaffCategoryFromToFilterSeparator } from '../../../models/public_api';\n\nexport const daffCategoryComputeFilterRangePairLabel = (min, max): string =>\n `${min}${DaffCategoryFromToFilterSeparator}${max}`;\n","/**\n * The separator between a range type filter's values\n * e.g. \"price\": \"30-40\".\n */\nexport const DaffCategoryFromToFilterSeparator = '-';\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 {\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 {\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 { 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 { 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 {\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 {\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 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 { 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 { 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 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 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 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 {\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 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 { 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 { 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","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 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 { 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 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 { 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 { 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 {\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 {\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 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 { 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 { 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"]}
@@ -1,6 +1,7 @@
1
1
  import { InMemoryDbService, RequestInfoUtilities, ParsedRequestUrl } from 'angular-in-memory-web-api';
2
2
  import { DaffCategory, DaffCategoryPageMetadata } from '@daffodil/category';
3
3
  import { DaffCategoryFactory, DaffCategoryPageMetadataFactory } from '@daffodil/category/testing';
4
+ import { DaffProduct } from '@daffodil/product';
4
5
  import { DaffInMemoryBackendProductService } from '@daffodil/product/driver/in-memory';
5
6
  /**
6
7
  * An in-memory service that mocks out the backend services for getting categories. See the angular in memory documentation for more details.
@@ -9,8 +10,16 @@ export declare class DaffInMemoryBackendCategoryService implements InMemoryDbSer
9
10
  private categoryFactory;
10
11
  private metadataFactory;
11
12
  private productInMemoryBackendService;
12
- category: DaffCategory;
13
- categoryPageMetadata: DaffCategoryPageMetadata;
13
+ protected _categories: DaffCategory[];
14
+ protected _categoryPageMetadata: DaffCategoryPageMetadata;
15
+ /**
16
+ * The collection of categories in the backend.
17
+ */
18
+ get categories(): DaffCategory[];
19
+ /**
20
+ * The metadata associated with the current page.
21
+ */
22
+ get categoryPageMetadata(): DaffCategoryPageMetadata;
14
23
  constructor(categoryFactory: DaffCategoryFactory, metadataFactory: DaffCategoryPageMetadataFactory, productInMemoryBackendService: DaffInMemoryBackendProductService);
15
24
  /**
16
25
  * @docs-private
@@ -26,9 +35,9 @@ export declare class DaffInMemoryBackendCategoryService implements InMemoryDbSer
26
35
  * @param reqInfo
27
36
  */
28
37
  get(reqInfo: any): any;
29
- private getTotalPages;
30
- private trimProductIdsToSinglePage;
31
- private generateProductIdSubset;
32
- private generatePageSize;
33
- private getCurrentPageParam;
38
+ protected getTotalPages(allIds: DaffProduct['id'][], pageSize: number): number;
39
+ protected trimProductIdsToSinglePage(allIds: any[], currentPage: number, pageSize: number): any[];
40
+ protected generateProductIdSubset(products: DaffProduct[]): DaffProduct['id'][];
41
+ protected generatePageSize(reqInfo: any): number;
42
+ protected getCurrentPageParam(reqInfo: any): number;
34
43
  }
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"DaffInMemoryCategoryService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":19,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":25,"character":28}]}],"get":[{"__symbolic":"method"}],"getByUrl":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"DaffCategoryInMemoryDriverModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":13,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":15,"character":4}]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"DaffCategoryInMemoryDriverModule"},"providers":[{"provide":{"__symbolic":"reference","module":"@daffodil/category/driver","name":"DaffCategoryDriver","line":24,"character":19},"useExisting":{"__symbolic":"reference","name":"DaffInMemoryCategoryService"}}]}}}},"DaffInMemoryBackendCategoryService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":23,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@daffodil/category/testing","name":"DaffCategoryFactory","line":31,"character":29},{"__symbolic":"reference","module":"@daffodil/category/testing","name":"DaffCategoryPageMetadataFactory","line":32,"character":29},{"__symbolic":"reference","module":"@daffodil/product/driver/in-memory","name":"DaffInMemoryBackendProductService","line":33,"character":43}]}],"parseRequestUrl":[{"__symbolic":"method"}],"createDb":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"}],"getTotalPages":[{"__symbolic":"method"}],"trimProductIdsToSinglePage":[{"__symbolic":"method"}],"generateProductIdSubset":[{"__symbolic":"method"}],"generatePageSize":[{"__symbolic":"method"}],"getCurrentPageParam":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}}},"origins":{"DaffInMemoryCategoryService":"./drivers/category.service","DaffCategoryInMemoryDriverModule":"./drivers/category-driver.module","DaffInMemoryBackendCategoryService":"./backend/category.service"},"importAs":"@daffodil/category/driver/in-memory"}
1
+ {"__symbolic":"module","version":4,"metadata":{"DaffInMemoryCategoryService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":20,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":26,"character":28}]}],"get":[{"__symbolic":"method"}],"getByUrl":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"DaffCategoryInMemoryDriverModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":13,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":15,"character":4}]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"DaffCategoryInMemoryDriverModule"},"providers":[{"provide":{"__symbolic":"reference","module":"@daffodil/category/driver","name":"DaffCategoryDriver","line":24,"character":19},"useExisting":{"__symbolic":"reference","name":"DaffInMemoryCategoryService"}}]}}}},"DaffInMemoryBackendCategoryService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":23,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@daffodil/category/testing","name":"DaffCategoryFactory","line":45,"character":29},{"__symbolic":"reference","module":"@daffodil/category/testing","name":"DaffCategoryPageMetadataFactory","line":46,"character":29},{"__symbolic":"reference","module":"@daffodil/product/driver/in-memory","name":"DaffInMemoryBackendProductService","line":47,"character":43}]}],"parseRequestUrl":[{"__symbolic":"method"}],"createDb":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"}],"getTotalPages":[{"__symbolic":"method"}],"trimProductIdsToSinglePage":[{"__symbolic":"method"}],"generateProductIdSubset":[{"__symbolic":"method"}],"generatePageSize":[{"__symbolic":"method"}],"getCurrentPageParam":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}}},"origins":{"DaffInMemoryCategoryService":"./drivers/category.service","DaffCategoryInMemoryDriverModule":"./drivers/category-driver.module","DaffInMemoryBackendCategoryService":"./backend/category.service"},"importAs":"@daffodil/category/driver/in-memory"}
@@ -8,4 +8,4 @@
8
8
  "typings": "daffodil-category-driver-in-memory.d.ts",
9
9
  "metadata": "daffodil-category-driver-in-memory.metadata.json",
10
10
  "sideEffects": false
11
- }
11
+ }
@@ -8,4 +8,4 @@
8
8
  "typings": "daffodil-category-driver-magento.d.ts",
9
9
  "metadata": "daffodil-category-driver-magento.metadata.json",
10
10
  "sideEffects": false
11
- }
11
+ }
@@ -8,4 +8,4 @@
8
8
  "typings": "daffodil-category-driver-magento-testing.d.ts",
9
9
  "metadata": "daffodil-category-driver-magento-testing.metadata.json",
10
10
  "sideEffects": false
11
- }
11
+ }
@@ -8,4 +8,4 @@
8
8
  "typings": "daffodil-category-driver.d.ts",
9
9
  "metadata": "daffodil-category-driver.metadata.json",
10
10
  "sideEffects": false
11
- }
11
+ }
@@ -8,4 +8,4 @@
8
8
  "typings": "daffodil-category-driver-testing.d.ts",
9
9
  "metadata": "daffodil-category-driver-testing.metadata.json",
10
10
  "sideEffects": false
11
- }
11
+ }
@@ -1,10 +1,5 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: daffodil-category.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
1
  /**
7
2
  * Generated bundle index. Do not edit.
8
3
  */
9
- export { DaffCategoryRequestKind, DaffCategoryFilterType, DaffCategoryFromToFilterSeparator, DaffCategoryErrorCodes, DaffCategoryErrorMap, DAFF_CATEGORY_ERROR_MATCHER, daffCategoryFilterArrayToDict, daffCategoryComputeAppliedFilters, daffApplyFilter, daffApplyRequestToFilters, daffApplyRequestsToFilters, daffClearFilter, daffClearFilters, daffRemoveFilter, daffRemoveRequestFromFilters, daffRemoveRequestsFromFilters, daffToggleFilter, daffToggleRequestOnFilters, daffIsFilterApplied, daffIsToggleRequestAppliedToFilter, daffCategoryFindAppliedFilterOptions, daffCategoryFilterToRequest, daffCategoryFiltersToRequests, daffCategoryFilterRangePairArrayToDict, daffCategoryComputeFilterRangePairLabel, daffCategoryFilterEqualOptionArrayToDict, daffCategoryValidateFilterRequestNameMatch, daffCategoryValidateFilterRequestTypeMatch, DaffCategoryFilterNotFound, DaffCategoryFilterRequestTypeMismatch, DaffCategoryFilterRequestNameMismatch, DaffCategoryUnknownFilterType } from './index';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFmZm9kaWwtY2F0ZWdvcnkuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvZ3JpZXN0L2dyYXljb3JlaW8vZGFmZm9kaWwvbGlicy9jYXRlZ29yeS9zcmMvIiwic291cmNlcyI6WyJkYWZmb2RpbC1jYXRlZ29yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUlBLCs4QkFBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFmZm9kaWwtY2F0ZWdvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWJzL2NhdGVnb3J5L3NyYy9kYWZmb2RpbC1jYXRlZ29yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -1,10 +1,5 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: daffodil-category-driver.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
1
  /**
7
2
  * Generated bundle index. Do not edit.
8
3
  */
9
- export { DaffCategoryDriver } from './index';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFmZm9kaWwtY2F0ZWdvcnktZHJpdmVyLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL2dyaWVzdC9ncmF5Y29yZWlvL2RhZmZvZGlsL2xpYnMvY2F0ZWdvcnkvZHJpdmVyL3NyYy8iLCJzb3VyY2VzIjpbImRhZmZvZGlsLWNhdGVnb3J5LWRyaXZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUlBLG1DQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFmZm9kaWwtY2F0ZWdvcnktZHJpdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy9jYXRlZ29yeS9kcml2ZXIvc3JjL2RhZmZvZGlsLWNhdGVnb3J5LWRyaXZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==