@blaze-cms/react-page-builder 0.124.0-alpha.4 → 0.124.0-alpha.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (438) hide show
  1. package/CHANGELOG.md +347 -0
  2. package/README.md +9 -0
  3. package/example.env +1 -0
  4. package/lib/BannerContext/index.js.map +1 -1
  5. package/lib/HOC/withInfiniteScroll.js.map +1 -1
  6. package/lib/HOC/withTitle.js.map +1 -1
  7. package/lib/PBContext/index.js.map +1 -1
  8. package/lib/application/query/index.js +9 -3
  9. package/lib/application/query/index.js.map +1 -1
  10. package/lib/components/BackToTop/BackToTop.js.map +1 -1
  11. package/lib/components/Banner/AdSlotRender.js.map +1 -1
  12. package/lib/components/Banner/Banner.js.map +1 -1
  13. package/lib/components/Banner/BannerRender.js.map +1 -1
  14. package/lib/components/Banner/helpers.js.map +1 -1
  15. package/lib/components/Banner/index.js.map +1 -1
  16. package/lib/components/BlazeLink.js.map +1 -1
  17. package/lib/components/Breadcrumb/Breadcrumb.js.map +1 -1
  18. package/lib/components/Button.js +18 -5
  19. package/lib/components/Button.js.map +1 -1
  20. package/lib/components/Card/Card.js.map +1 -1
  21. package/lib/components/Card/CardContainer.js +3 -7
  22. package/lib/components/Card/CardContainer.js.map +1 -1
  23. package/lib/components/Card/CardFactory.js +6 -3
  24. package/lib/components/Card/CardFactory.js.map +1 -1
  25. package/lib/components/Card/CardRender.js.map +1 -1
  26. package/lib/components/Card/helpers/filter-query-setup.js.map +1 -1
  27. package/lib/components/Card/helpers/filters-setup.js.map +1 -1
  28. package/lib/components/Card/helpers/get-dynamic-grid-classes.js.map +1 -1
  29. package/lib/components/Carousel/Carousel.js.map +1 -1
  30. package/lib/components/Carousel/CarouselImage/CarouselImage.js.map +1 -1
  31. package/lib/components/Carousel/CarouselRender/CarouselRender.js.map +1 -1
  32. package/lib/components/CarouselWrapper.js +2 -2
  33. package/lib/components/CarouselWrapper.js.map +1 -1
  34. package/lib/components/ClickWrapper.js.map +1 -1
  35. package/lib/components/Code/Code.js.map +1 -1
  36. package/lib/components/Code/ScriptTag.js.map +1 -1
  37. package/lib/components/Code/helpers/wrap-script-tags.js.map +1 -1
  38. package/lib/components/DataSummary/DataSummaryFactory.js.map +1 -1
  39. package/lib/components/DataSummary/DataSummaryRender.js.map +1 -1
  40. package/lib/components/DataSummary/DataSummaryTypes/HeadingLargeSummary/HeadingLargeSummary.js.map +1 -1
  41. package/lib/components/DataSummary/DataSummaryTypes/HeadingLargeSummary/HeadingLargeSummaryContent.js.map +1 -1
  42. package/lib/components/DataSummary/DataSummaryTypes/ItemDetailsSummary/ItemDetailsSummary.js.map +1 -1
  43. package/lib/components/DataSummary/DataSummaryTypes/ItemDetailsSummary/ItemDetailsSummaryContent.js.map +1 -1
  44. package/lib/components/DataSummary/DataSummaryTypes/LargeSummary/LargeSummary.js.map +1 -1
  45. package/lib/components/DataSummary/DataSummaryTypes/LargeSummary/LargeSummaryContent.js.map +1 -1
  46. package/lib/components/DataSummary/DataSummaryTypes/ListSummary/ListSummary.js.map +1 -1
  47. package/lib/components/DataSummary/DataSummaryTypes/ListSummary/ListSummaryContent.js.map +1 -1
  48. package/lib/components/DataSummary/DataSummaryTypes/TextSummary/TextSummary.js.map +1 -1
  49. package/lib/components/DataSummary/DataSummaryTypes/TextSummary/TextSummaryContent.js.map +1 -1
  50. package/lib/components/DataSummary/DataSummaryTypes/index.js.map +1 -1
  51. package/lib/components/DataSummary/helpers/build-loop-props-content.js.map +1 -1
  52. package/lib/components/DataSummary/helpers/build-props-to-display-with-content.js.map +1 -1
  53. package/lib/components/DataSummary/helpers/get-data-summary-query.js.map +1 -1
  54. package/lib/components/DataSummary/helpers/get-link-based-on-value.js.map +1 -1
  55. package/lib/components/DataSummary/helpers/get-prop-value.js.map +1 -1
  56. package/lib/components/DataSummary/helpers/get-value-from-array.js.map +1 -1
  57. package/lib/components/DataSummary/helpers/strip-summary-props-content.js.map +1 -1
  58. package/lib/components/EmailConfirm/EmailConfirm.js.map +1 -1
  59. package/lib/components/Image/GlobalLightbox/GlobalLightbox.js.map +1 -1
  60. package/lib/components/Image/GlobalLightbox/NavButton.js.map +1 -1
  61. package/lib/components/Image/GlobalLightbox/index.js.map +1 -1
  62. package/lib/components/Image/Image.js.map +1 -1
  63. package/lib/components/Image/ImageDetails.js.map +1 -1
  64. package/lib/components/Image/ImageFactory.js.map +1 -1
  65. package/lib/components/Image/ImageRender.js +5 -1
  66. package/lib/components/Image/ImageRender.js.map +1 -1
  67. package/lib/components/Image/Lightbox/Lightbox.js.map +1 -1
  68. package/lib/components/ItemList/ItemListButton/ItemListButton.js +161 -0
  69. package/lib/components/ItemList/ItemListButton/ItemListButton.js.map +1 -0
  70. package/lib/components/ItemList/ItemListButton/index.js +16 -0
  71. package/lib/components/ItemList/ItemListButton/index.js.map +1 -0
  72. package/lib/components/ItemList/ItemListCounter/ItemListCounter.js +83 -0
  73. package/lib/components/ItemList/ItemListCounter/ItemListCounter.js.map +1 -0
  74. package/lib/components/ItemList/ItemListCounter/index.js +16 -0
  75. package/lib/components/ItemList/ItemListCounter/index.js.map +1 -0
  76. package/lib/components/ItemList/ItemListNew/ItemListNew.js +87 -0
  77. package/lib/components/ItemList/ItemListNew/ItemListNew.js.map +1 -0
  78. package/lib/components/ItemList/ItemListNew/index.js +16 -0
  79. package/lib/components/ItemList/ItemListNew/index.js.map +1 -0
  80. package/lib/components/ItemList/constants.js +19 -0
  81. package/lib/components/ItemList/constants.js.map +1 -0
  82. package/lib/components/ItemList/helpers/get-item-list-data.js +17 -0
  83. package/lib/components/ItemList/helpers/get-item-list-data.js.map +1 -0
  84. package/lib/components/ItemList/helpers/get-item-list-id.js +23 -0
  85. package/lib/components/ItemList/helpers/get-item-list-id.js.map +1 -0
  86. package/lib/components/ItemList/helpers/get-item-list-ids.js +28 -0
  87. package/lib/components/ItemList/helpers/get-item-list-ids.js.map +1 -0
  88. package/lib/components/ItemList/helpers/index.js +50 -0
  89. package/lib/components/ItemList/helpers/index.js.map +1 -0
  90. package/lib/components/ItemList/helpers/set-item-list-id.js +22 -0
  91. package/lib/components/ItemList/helpers/set-item-list-id.js.map +1 -0
  92. package/lib/components/ItemList/helpers/set-param-and-redirect.js +51 -0
  93. package/lib/components/ItemList/helpers/set-param-and-redirect.js.map +1 -0
  94. package/lib/components/ItemList/hooks/index.js +18 -0
  95. package/lib/components/ItemList/hooks/index.js.map +1 -0
  96. package/lib/components/ItemList/hooks/use-item-list-id.js +45 -0
  97. package/lib/components/ItemList/hooks/use-item-list-id.js.map +1 -0
  98. package/lib/components/Layout/Layout.js.map +1 -1
  99. package/lib/components/Layout/helpers/check-if-row-has-columns.js.map +1 -1
  100. package/lib/components/LazyImage/LazyImage.js +5 -1
  101. package/lib/components/LazyImage/LazyImage.js.map +1 -1
  102. package/lib/components/LazyImage/index.js.map +1 -1
  103. package/lib/components/List/ListBuilder.js +12 -6
  104. package/lib/components/List/ListBuilder.js.map +1 -1
  105. package/lib/components/List/ListFactory.js +34 -7
  106. package/lib/components/List/ListFactory.js.map +1 -1
  107. package/lib/components/List/ListRender.js.map +1 -1
  108. package/lib/components/List/components/Cards/CardRenderWithInfiniteScroll.js.map +1 -1
  109. package/lib/components/List/components/Cards/CardsRender.js.map +1 -1
  110. package/lib/components/List/components/Cards/CardsRenderItem.js.map +1 -1
  111. package/lib/components/List/components/Cards/CardsRenderWrapper.js.map +1 -1
  112. package/lib/components/List/components/Full/FullRender.js.map +1 -1
  113. package/lib/components/List/components/Full/FullRenderItem.js.map +1 -1
  114. package/lib/components/List/components/Full/FullRenderWithInfiniteScroll.js.map +1 -1
  115. package/lib/components/List/components/Header/ListHeader.js.map +1 -1
  116. package/lib/components/List/components/Pagination/Classic.js.map +1 -1
  117. package/lib/components/List/components/Pagination/ListPagination.js.map +1 -1
  118. package/lib/components/List/components/Pagination/LoadMore.js.map +1 -1
  119. package/lib/components/List/helpers/build-az-aggregations.js.map +1 -1
  120. package/lib/components/List/helpers/build-az-url.js.map +1 -1
  121. package/lib/components/List/helpers/build-pagination-items.js.map +1 -1
  122. package/lib/components/List/helpers/build-pagination-url.js.map +1 -1
  123. package/lib/components/List/helpers/has-required-item-list-details.js +29 -0
  124. package/lib/components/List/helpers/has-required-item-list-details.js.map +1 -0
  125. package/lib/components/List/helpers/index.js +8 -0
  126. package/lib/components/List/helpers/index.js.map +1 -1
  127. package/lib/components/Login/LoggedInMessage.js.map +1 -1
  128. package/lib/components/Login/Login.js.map +1 -1
  129. package/lib/components/Login/LoginForm.js.map +1 -1
  130. package/lib/components/Menu/Menu.js +41 -28
  131. package/lib/components/Menu/Menu.js.map +1 -1
  132. package/lib/components/Menu/MenuContext.js +20 -0
  133. package/lib/components/Menu/MenuContext.js.map +1 -0
  134. package/lib/components/MenuItem/MenuItem.js +26 -7
  135. package/lib/components/MenuItem/MenuItem.js.map +1 -1
  136. package/lib/components/Modal/Modal.js.map +1 -1
  137. package/lib/components/PasswordReset/PasswordReset.js.map +1 -1
  138. package/lib/components/PasswordReset/helpers/validatePassword.js.map +1 -1
  139. package/lib/components/PasswordResetRequest/PasswordResetRequest.js.map +1 -1
  140. package/lib/components/SearchContent/SearchContent.js +183 -0
  141. package/lib/components/SearchContent/SearchContent.js.map +1 -0
  142. package/lib/components/SearchContent/SearchContentItems.js +51 -0
  143. package/lib/components/SearchContent/SearchContentItems.js.map +1 -0
  144. package/lib/components/SearchContent/SearchContentResults.js +45 -0
  145. package/lib/components/SearchContent/SearchContentResults.js.map +1 -0
  146. package/lib/components/SearchContent/SearchContentToggleIcon.js +42 -0
  147. package/lib/components/SearchContent/SearchContentToggleIcon.js.map +1 -0
  148. package/lib/components/SearchContent/index.js +2 -233
  149. package/lib/components/SearchContent/index.js.map +1 -1
  150. package/lib/components/SearchFilter/SearchFilter/CloseMobileForm.js.map +1 -1
  151. package/lib/components/SearchFilter/SearchFilter/FiltersList.js +2 -4
  152. package/lib/components/SearchFilter/SearchFilter/FiltersList.js.map +1 -1
  153. package/lib/components/SearchFilter/SearchFilter/MobileFormToolbar.js.map +1 -1
  154. package/lib/components/SearchFilter/SearchFilter/ResetDesktopForm.js.map +1 -1
  155. package/lib/components/SearchFilter/SearchFilter/SearchFilter.js +27 -69
  156. package/lib/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
  157. package/lib/components/SearchFilter/SearchFilterContainer.js +87 -23
  158. package/lib/components/SearchFilter/SearchFilterContainer.js.map +1 -1
  159. package/lib/components/SearchFilter/components/Checkbox.js +19 -9
  160. package/lib/components/SearchFilter/components/Checkbox.js.map +1 -1
  161. package/lib/components/SearchFilter/components/Range.js.map +1 -1
  162. package/lib/components/SearchFilter/components/Select.js +27 -11
  163. package/lib/components/SearchFilter/components/Select.js.map +1 -1
  164. package/lib/components/SearchFilter/components/TextSearch.js +1 -5
  165. package/lib/components/SearchFilter/components/TextSearch.js.map +1 -1
  166. package/lib/components/SearchFilter/constants.js +1 -1
  167. package/lib/components/SearchFilter/constants.js.map +1 -1
  168. package/lib/components/SearchFilter/helpers/build-filters-query.js +87 -0
  169. package/lib/components/SearchFilter/helpers/build-filters-query.js.map +1 -0
  170. package/lib/components/SearchFilter/helpers/build-query.js +1 -1
  171. package/lib/components/SearchFilter/helpers/build-query.js.map +1 -1
  172. package/lib/components/SearchFilter/helpers/build-raw-query-stringified.js +2 -1
  173. package/lib/components/SearchFilter/helpers/build-raw-query-stringified.js.map +1 -1
  174. package/lib/components/SearchFilter/helpers/calculate-min-max.js.map +1 -1
  175. package/lib/components/SearchFilter/helpers/check-if-range-updated.js.map +1 -1
  176. package/lib/components/SearchFilter/helpers/get-filter-value-from-query.js.map +1 -1
  177. package/lib/components/SearchFilter/helpers/get-initial-filter-values.js +18 -3
  178. package/lib/components/SearchFilter/helpers/get-initial-filter-values.js.map +1 -1
  179. package/lib/components/SearchFilter/helpers/get-intersected-prop.js.map +1 -1
  180. package/lib/components/SearchFilter/helpers/get-range-value.js.map +1 -1
  181. package/lib/components/SearchFilter/helpers/get-responsive-filter-classnames.js.map +1 -1
  182. package/lib/components/SearchFilter/helpers/get-select-options.js.map +1 -1
  183. package/lib/components/SearchFilter/helpers/index.js +8 -0
  184. package/lib/components/SearchFilter/helpers/index.js.map +1 -1
  185. package/lib/components/SearchFilter/helpers/parse-filter-value.js +3 -7
  186. package/lib/components/SearchFilter/helpers/parse-filter-value.js.map +1 -1
  187. package/lib/components/SearchFilterSort/SearchFilterSort.js.map +1 -1
  188. package/lib/components/SearchFilterSort/helpers/handle-sort-update.js.map +1 -1
  189. package/lib/components/SearchFilterSort/helpers/update-sort.js.map +1 -1
  190. package/lib/components/SocialFollow/SFItem.js.map +1 -1
  191. package/lib/components/SocialFollow/SocialFollow.js.map +1 -1
  192. package/lib/components/SocialFollow/SocialFollowRender.js.map +1 -1
  193. package/lib/components/SubMenu/SubMenu.js.map +1 -1
  194. package/lib/components/TextBlock/TextBlockRender.js.map +1 -1
  195. package/lib/components/TextBlock/index.js.map +1 -1
  196. package/lib/components/Video/Video.js.map +1 -1
  197. package/lib/components/Video/VideoModal.js.map +1 -1
  198. package/lib/components/Video/VideoRender.js.map +1 -1
  199. package/lib/components/Video/providers/Default.js.map +1 -1
  200. package/lib/components/Video/providers/JWPlayer/JWPlayerProvider.js.map +1 -1
  201. package/lib/components/Video/providers/YouTube/YouTubeProvider.js.map +1 -1
  202. package/lib/components/Video/providers/YouTube/YoutubeEmbeded.js.map +1 -1
  203. package/lib/components/Video/providers/get-provider.js.map +1 -1
  204. package/lib/components/Wrapper.js.map +1 -1
  205. package/lib/components/index.js +16 -1
  206. package/lib/components/index.js.map +1 -1
  207. package/lib/constants/index.js +3 -1
  208. package/lib/constants/index.js.map +1 -1
  209. package/lib/helpers/build-inherited-filters.js.map +1 -1
  210. package/lib/helpers/build-raw-query-base.js.map +1 -1
  211. package/lib/helpers/build-raw-query.js.map +1 -1
  212. package/lib/helpers/build-search-values-checkbox-select.js.map +1 -1
  213. package/lib/helpers/check-props-to-use.js.map +1 -1
  214. package/lib/helpers/get-entities-with-banner.js.map +1 -1
  215. package/lib/helpers/get-entity-data.js.map +1 -1
  216. package/lib/helpers/get-entity-render-props.js.map +1 -1
  217. package/lib/helpers/get-filter-props.js.map +1 -1
  218. package/lib/helpers/get-generic-props.js.map +1 -1
  219. package/lib/helpers/get-generic-render-variables.js.map +1 -1
  220. package/lib/helpers/get-image-ids.js.map +1 -1
  221. package/lib/helpers/get-parsed-prop-values.js.map +1 -1
  222. package/lib/helpers/get-prop-values.js.map +1 -1
  223. package/lib/helpers/get-query-filters.js.map +1 -1
  224. package/lib/helpers/get-query-props.js.map +1 -1
  225. package/lib/helpers/get-updated-filter-by.js.map +1 -1
  226. package/lib/helpers/inject-banner.js.map +1 -1
  227. package/lib/helpers/inject-banners-to-entities.js.map +1 -1
  228. package/lib/helpers/inject-multiple-banners/get-banners-for-entities/get-banners-for-entities.js.map +1 -1
  229. package/lib/helpers/inject-multiple-banners/get-banners-for-nodes/get-banners-for-nodes.js.map +1 -1
  230. package/lib/helpers/inject-multiple-banners/get-banners-for-nodes/helpers/group-node-entities.js.map +1 -1
  231. package/lib/helpers/inject-multiple-banners/inject-multiple-banners.js.map +1 -1
  232. package/lib/helpers/is-filter-entitys-id.js.map +1 -1
  233. package/lib/helpers/parse-TextBlock.js.map +1 -1
  234. package/lib/helpers/parse-props-to-display.js.map +1 -1
  235. package/lib/helpers/render-children.js.map +1 -1
  236. package/lib/helpers/sort-response-data.js.map +1 -1
  237. package/lib/hooks/helpers/RenderComponent.js.map +1 -1
  238. package/lib/hooks/helpers/append-gtm-classname.js +1 -0
  239. package/lib/hooks/helpers/append-gtm-classname.js.map +1 -1
  240. package/lib/hooks/helpers/buildPBComponents.js.map +1 -1
  241. package/lib/hooks/helpers/getComponent.js.map +1 -1
  242. package/lib/hooks/helpers/inject-element-banners.js.map +1 -1
  243. package/lib/hooks/helpers/inject-textblock-banners.js.map +1 -1
  244. package/lib/hooks/helpers/insert-banners.js.map +1 -1
  245. package/lib/hooks/helpers/update-targetings.js.map +1 -1
  246. package/lib/hooks/use-banner-insertion.js.map +1 -1
  247. package/lib/hooks/use-check-mobile-screen.js.map +1 -1
  248. package/lib/hooks/use-get-entity-schema.js.map +1 -1
  249. package/lib/hooks/use-get-entity-schemas-as-obj.js.map +1 -1
  250. package/lib/hooks/use-get-image-id-from-relation.js.map +1 -1
  251. package/lib/hooks/use-get-images.js.map +1 -1
  252. package/lib/hooks/use-get-single-entity-schema.js.map +1 -1
  253. package/lib/hooks/use-page-builder.js.map +1 -1
  254. package/lib/utils/get-class-modifiers.js.map +1 -1
  255. package/lib/utils/get-image-data.js.map +1 -1
  256. package/lib-es/application/query/index.js +49 -1
  257. package/lib-es/application/query/index.js.map +1 -1
  258. package/lib-es/components/Button.js +18 -6
  259. package/lib-es/components/Button.js.map +1 -1
  260. package/lib-es/components/Card/CardContainer.js +3 -7
  261. package/lib-es/components/Card/CardContainer.js.map +1 -1
  262. package/lib-es/components/Card/CardFactory.js +7 -4
  263. package/lib-es/components/Card/CardFactory.js.map +1 -1
  264. package/lib-es/components/CarouselWrapper.js +2 -2
  265. package/lib-es/components/CarouselWrapper.js.map +1 -1
  266. package/lib-es/components/Image/ImageRender.js +4 -1
  267. package/lib-es/components/Image/ImageRender.js.map +1 -1
  268. package/lib-es/components/ItemList/ItemListButton/ItemListButton.js +111 -0
  269. package/lib-es/components/ItemList/ItemListButton/ItemListButton.js.map +1 -0
  270. package/lib-es/components/ItemList/ItemListButton/index.js +3 -0
  271. package/lib-es/components/ItemList/ItemListButton/index.js.map +1 -0
  272. package/lib-es/components/ItemList/ItemListCounter/ItemListCounter.js +60 -0
  273. package/lib-es/components/ItemList/ItemListCounter/ItemListCounter.js.map +1 -0
  274. package/lib-es/components/ItemList/ItemListCounter/index.js +3 -0
  275. package/lib-es/components/ItemList/ItemListCounter/index.js.map +1 -0
  276. package/lib-es/components/ItemList/ItemListNew/ItemListNew.js +64 -0
  277. package/lib-es/components/ItemList/ItemListNew/ItemListNew.js.map +1 -0
  278. package/lib-es/components/ItemList/ItemListNew/index.js +3 -0
  279. package/lib-es/components/ItemList/ItemListNew/index.js.map +1 -0
  280. package/lib-es/components/ItemList/constants.js +6 -0
  281. package/lib-es/components/ItemList/constants.js.map +1 -0
  282. package/lib-es/components/ItemList/helpers/get-item-list-data.js +7 -0
  283. package/lib-es/components/ItemList/helpers/get-item-list-data.js.map +1 -0
  284. package/lib-es/components/ItemList/helpers/get-item-list-id.js +11 -0
  285. package/lib-es/components/ItemList/helpers/get-item-list-id.js.map +1 -0
  286. package/lib-es/components/ItemList/helpers/get-item-list-ids.js +13 -0
  287. package/lib-es/components/ItemList/helpers/get-item-list-ids.js.map +1 -0
  288. package/lib-es/components/ItemList/helpers/index.js +6 -0
  289. package/lib-es/components/ItemList/helpers/index.js.map +1 -0
  290. package/lib-es/components/ItemList/helpers/set-item-list-id.js +10 -0
  291. package/lib-es/components/ItemList/helpers/set-item-list-id.js.map +1 -0
  292. package/lib-es/components/ItemList/helpers/set-param-and-redirect.js +20 -0
  293. package/lib-es/components/ItemList/helpers/set-param-and-redirect.js.map +1 -0
  294. package/lib-es/components/ItemList/hooks/index.js +2 -0
  295. package/lib-es/components/ItemList/hooks/index.js.map +1 -0
  296. package/lib-es/components/ItemList/hooks/use-item-list-id.js +26 -0
  297. package/lib-es/components/ItemList/hooks/use-item-list-id.js.map +1 -0
  298. package/lib-es/components/LazyImage/LazyImage.js +4 -1
  299. package/lib-es/components/LazyImage/LazyImage.js.map +1 -1
  300. package/lib-es/components/List/ListBuilder.js +12 -6
  301. package/lib-es/components/List/ListBuilder.js.map +1 -1
  302. package/lib-es/components/List/ListFactory.js +33 -9
  303. package/lib-es/components/List/ListFactory.js.map +1 -1
  304. package/lib-es/components/List/helpers/has-required-item-list-details.js +20 -0
  305. package/lib-es/components/List/helpers/has-required-item-list-details.js.map +1 -0
  306. package/lib-es/components/List/helpers/index.js +1 -0
  307. package/lib-es/components/List/helpers/index.js.map +1 -1
  308. package/lib-es/components/Menu/Menu.js +54 -46
  309. package/lib-es/components/Menu/Menu.js.map +1 -1
  310. package/lib-es/components/Menu/MenuContext.js +6 -0
  311. package/lib-es/components/Menu/MenuContext.js.map +1 -0
  312. package/lib-es/components/MenuItem/MenuItem.js +24 -9
  313. package/lib-es/components/MenuItem/MenuItem.js.map +1 -1
  314. package/lib-es/components/SearchContent/SearchContent.js +129 -0
  315. package/lib-es/components/SearchContent/SearchContent.js.map +1 -0
  316. package/lib-es/components/SearchContent/SearchContentItems.js +33 -0
  317. package/lib-es/components/SearchContent/SearchContentItems.js.map +1 -0
  318. package/lib-es/components/SearchContent/SearchContentResults.js +31 -0
  319. package/lib-es/components/SearchContent/SearchContentResults.js.map +1 -0
  320. package/lib-es/components/SearchContent/SearchContentToggleIcon.js +30 -0
  321. package/lib-es/components/SearchContent/SearchContentToggleIcon.js.map +1 -0
  322. package/lib-es/components/SearchContent/index.js +1 -172
  323. package/lib-es/components/SearchContent/index.js.map +1 -1
  324. package/lib-es/components/SearchFilter/SearchFilter/FiltersList.js +2 -4
  325. package/lib-es/components/SearchFilter/SearchFilter/FiltersList.js.map +1 -1
  326. package/lib-es/components/SearchFilter/SearchFilter/SearchFilter.js +21 -46
  327. package/lib-es/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
  328. package/lib-es/components/SearchFilter/SearchFilterContainer.js +70 -15
  329. package/lib-es/components/SearchFilter/SearchFilterContainer.js.map +1 -1
  330. package/lib-es/components/SearchFilter/components/Checkbox.js +18 -9
  331. package/lib-es/components/SearchFilter/components/Checkbox.js.map +1 -1
  332. package/lib-es/components/SearchFilter/components/Select.js +23 -8
  333. package/lib-es/components/SearchFilter/components/Select.js.map +1 -1
  334. package/lib-es/components/SearchFilter/components/TextSearch.js +1 -5
  335. package/lib-es/components/SearchFilter/components/TextSearch.js.map +1 -1
  336. package/lib-es/components/SearchFilter/constants.js +1 -1
  337. package/lib-es/components/SearchFilter/constants.js.map +1 -1
  338. package/lib-es/components/SearchFilter/helpers/build-filters-query.js +54 -0
  339. package/lib-es/components/SearchFilter/helpers/build-filters-query.js.map +1 -0
  340. package/lib-es/components/SearchFilter/helpers/build-query.js +1 -1
  341. package/lib-es/components/SearchFilter/helpers/build-query.js.map +1 -1
  342. package/lib-es/components/SearchFilter/helpers/build-raw-query-stringified.js +2 -1
  343. package/lib-es/components/SearchFilter/helpers/build-raw-query-stringified.js.map +1 -1
  344. package/lib-es/components/SearchFilter/helpers/get-initial-filter-values.js +13 -1
  345. package/lib-es/components/SearchFilter/helpers/get-initial-filter-values.js.map +1 -1
  346. package/lib-es/components/SearchFilter/helpers/index.js +2 -1
  347. package/lib-es/components/SearchFilter/helpers/index.js.map +1 -1
  348. package/lib-es/components/SearchFilter/helpers/parse-filter-value.js +3 -3
  349. package/lib-es/components/SearchFilter/helpers/parse-filter-value.js.map +1 -1
  350. package/lib-es/components/index.js +10 -1
  351. package/lib-es/components/index.js.map +1 -1
  352. package/lib-es/constants/index.js +2 -1
  353. package/lib-es/constants/index.js.map +1 -1
  354. package/lib-es/helpers/build-raw-query.js.map +1 -1
  355. package/lib-es/hooks/helpers/append-gtm-classname.js +1 -0
  356. package/lib-es/hooks/helpers/append-gtm-classname.js.map +1 -1
  357. package/package.json +5 -4
  358. package/src/application/query/index.js +55 -1
  359. package/src/components/Button.js +27 -5
  360. package/src/components/Card/CardContainer.js +2 -6
  361. package/src/components/Card/CardFactory.js +5 -3
  362. package/src/components/CarouselWrapper.js +2 -2
  363. package/src/components/Image/ImageRender.js +3 -0
  364. package/src/components/ItemList/ItemListButton/ItemListButton.js +94 -0
  365. package/src/components/ItemList/ItemListButton/index.js +3 -0
  366. package/src/components/ItemList/ItemListCounter/ItemListCounter.js +52 -0
  367. package/src/components/ItemList/ItemListCounter/index.js +3 -0
  368. package/src/components/ItemList/ItemListNew/ItemListNew.js +51 -0
  369. package/src/components/ItemList/ItemListNew/index.js +3 -0
  370. package/src/components/ItemList/constants.js +5 -0
  371. package/src/components/ItemList/helpers/get-item-list-data.js +6 -0
  372. package/src/components/ItemList/helpers/get-item-list-id.js +11 -0
  373. package/src/components/ItemList/helpers/get-item-list-ids.js +10 -0
  374. package/src/components/ItemList/helpers/index.js +5 -0
  375. package/src/components/ItemList/helpers/set-item-list-id.js +9 -0
  376. package/src/components/ItemList/helpers/set-param-and-redirect.js +20 -0
  377. package/src/components/ItemList/hooks/index.js +1 -0
  378. package/src/components/ItemList/hooks/use-item-list-id.js +27 -0
  379. package/src/components/LazyImage/LazyImage.js +11 -1
  380. package/src/components/List/ListBuilder.js +10 -5
  381. package/src/components/List/ListFactory.js +48 -12
  382. package/src/components/List/helpers/has-required-item-list-details.js +14 -0
  383. package/src/components/List/helpers/index.js +1 -0
  384. package/src/components/Menu/Menu.js +61 -54
  385. package/src/components/Menu/MenuContext.js +5 -0
  386. package/src/components/MenuItem/MenuItem.js +39 -14
  387. package/src/components/SearchContent/SearchContent.js +136 -0
  388. package/src/components/SearchContent/SearchContentItems.js +28 -0
  389. package/src/components/SearchContent/SearchContentResults.js +27 -0
  390. package/src/components/SearchContent/SearchContentToggleIcon.js +27 -0
  391. package/src/components/SearchContent/index.js +1 -177
  392. package/src/components/SearchFilter/SearchFilter/FiltersList.js +30 -37
  393. package/src/components/SearchFilter/SearchFilter/SearchFilter.js +20 -28
  394. package/src/components/SearchFilter/SearchFilterContainer.js +61 -16
  395. package/src/components/SearchFilter/components/Checkbox.js +23 -8
  396. package/src/components/SearchFilter/components/Select.js +18 -11
  397. package/src/components/SearchFilter/components/TextSearch.js +1 -3
  398. package/src/components/SearchFilter/constants.js +1 -1
  399. package/src/components/SearchFilter/helpers/build-filters-query.js +40 -0
  400. package/src/components/SearchFilter/helpers/build-query.js +3 -1
  401. package/src/components/SearchFilter/helpers/build-raw-query-stringified.js +2 -1
  402. package/src/components/SearchFilter/helpers/get-initial-filter-values.js +12 -1
  403. package/src/components/SearchFilter/helpers/index.js +3 -1
  404. package/src/components/SearchFilter/helpers/parse-filter-value.js +3 -3
  405. package/src/components/index.js +10 -1
  406. package/src/constants/index.js +2 -0
  407. package/src/helpers/build-raw-query.js +1 -0
  408. package/src/hooks/helpers/append-gtm-classname.js +3 -0
  409. package/tests/helpers/mocks.js +4 -4
  410. package/tests/unit/src/components/Button.test.js +55 -1
  411. package/tests/unit/src/components/ItemList/ItemListButton.test.js +175 -0
  412. package/tests/unit/src/components/ItemList/ItemListCounter.test.js +65 -0
  413. package/tests/unit/src/components/ItemList/ItemListNew.test.js +164 -0
  414. package/tests/unit/src/components/ItemList/__snapshots__/ItemListButton.test.js.snap +107 -0
  415. package/tests/unit/src/components/ItemList/__snapshots__/ItemListCounter.test.js.snap +31 -0
  416. package/tests/unit/src/components/ItemList/__snapshots__/ItemListNew.test.js.snap +27 -0
  417. package/tests/unit/src/components/ItemList/helpers/get-item-list-data.test.js +28 -0
  418. package/tests/unit/src/components/ItemList/helpers/get-item-list-id.test.js +20 -0
  419. package/tests/unit/src/components/ItemList/helpers/get-item-list-ids.test.js +19 -0
  420. package/tests/unit/src/components/ItemList/helpers/set-item-list-id.test.js +13 -0
  421. package/tests/unit/src/components/ItemList/helpers/set-param-and-redirect.test.js +30 -0
  422. package/tests/unit/src/components/ItemList/hooks/use-item-list-id.test.js +32 -0
  423. package/tests/unit/src/components/List/helpers/has-required-item-list-details.test.js +30 -0
  424. package/tests/unit/src/components/Menu/Menu.test.js +9 -3
  425. package/tests/unit/src/components/Menu/__snapshots__/Menu.test.js.snap +12 -11
  426. package/tests/unit/src/components/MenuItem/MenuItem.test.js +1 -1
  427. package/tests/unit/src/components/MenuItem/SubMenu.test.js +5 -1
  428. package/tests/unit/src/components/MenuItem/__snapshots__/MenuItem.test.js.snap +54 -10
  429. package/tests/unit/src/components/SearchContent/SearchContent.test.js +29 -0
  430. package/tests/unit/src/components/SearchContent/__snapshots__/SearchContent.test.js.snap +9 -0
  431. package/tests/unit/src/components/SearchFilter/SearchFilter/SearchFilter.test.js +26 -7
  432. package/tests/unit/src/components/SearchFilter/SearchFilter/__snapshots__/SearchFilter.test.js.snap +4 -0
  433. package/tests/unit/src/components/SearchFilter/components/__snapshots__/Checkbox.test.js.snap +2 -0
  434. package/tests/unit/src/components/SearchFilter/components/__snapshots__/Select.test.js.snap +4 -0
  435. package/tests/unit/src/components/SearchFilter/helpers/build-query.test.js +2 -2
  436. package/tests/unit/src/components/SearchFilter/helpers/get-initial-filter-values.test.js +25 -11
  437. package/tests/unit/src/components/SearchFilter/helpers/parse-filter-value.test.js +1 -1
  438. package/tests/unit/src/components/__snapshots__/index.test.js.snap +12 -0
@@ -0,0 +1,27 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`ItemListNew component should match snapshot and render without throwing an error 1`] = `
4
+ <DocumentFragment>
5
+ <button
6
+ class="item-list-new button"
7
+ type="button"
8
+ >
9
+ Clear list
10
+ </button>
11
+ </DocumentFragment>
12
+ `;
13
+
14
+ exports[`ItemListNew component should not render if list has not items 1`] = `<DocumentFragment />`;
15
+
16
+ exports[`ItemListNew component should not render if list not found 1`] = `<DocumentFragment />`;
17
+
18
+ exports[`ItemListNew component should render using listId from query 1`] = `
19
+ <DocumentFragment>
20
+ <button
21
+ class="item-list-new button"
22
+ type="button"
23
+ >
24
+ Clear list
25
+ </button>
26
+ </DocumentFragment>
27
+ `;
@@ -0,0 +1,28 @@
1
+ import '@testing-library/jest-dom/extend-expect';
2
+ import getItemListData from '../../../../../../src/components/ItemList/helpers/get-item-list-data';
3
+
4
+ describe('getItemListData helper', () => {
5
+ const noData = getItemListData();
6
+ const noGetItemList = getItemListData({});
7
+ const noListItems = getItemListData({ getItemList: {} });
8
+ const withCorrectData = getItemListData({
9
+ getItemList: { listItems: ['one item', 'two items'] }
10
+ });
11
+
12
+ it('should always return an array', () => {
13
+ expect(Array.isArray(noData)).toBeTruthy();
14
+ expect(Array.isArray(noGetItemList)).toBeTruthy();
15
+ expect(Array.isArray(noListItems)).toBeTruthy();
16
+ expect(Array.isArray(withCorrectData)).toBeTruthy();
17
+ });
18
+
19
+ it('should return an empty array if data passed doesnt have expected props', () => {
20
+ expect(noData).toEqual([]);
21
+ expect(noGetItemList).toEqual([]);
22
+ expect(noListItems).toEqual([]);
23
+ });
24
+
25
+ it('should return listData otherwise', () => {
26
+ expect(withCorrectData).toEqual(['one item', 'two items']);
27
+ });
28
+ });
@@ -0,0 +1,20 @@
1
+ import '@testing-library/jest-dom/extend-expect';
2
+ import getitemListId from '../../../../../../src/components/ItemList/helpers/get-item-list-id';
3
+
4
+ describe('getitemListId helper', () => {
5
+ const noValues = getitemListId();
6
+ const noListId = getitemListId('listName');
7
+ const noListName = getitemListId(null, '123asd');
8
+
9
+ it('should return empty string if no values are passed', () => {
10
+ expect(noValues).toEqual('');
11
+ });
12
+
13
+ it('should return listId if passed', () => {
14
+ expect(noListName).toEqual('123asd');
15
+ });
16
+
17
+ it('should return local value if no id is passed but name is', () => {
18
+ expect(noListId).toEqual('');
19
+ });
20
+ });
@@ -0,0 +1,19 @@
1
+ import '@testing-library/jest-dom/extend-expect';
2
+ import getitemListIds from '../../../../../../src/components/ItemList/helpers/get-item-list-ids';
3
+
4
+ describe('getitemListIds helper', () => {
5
+ const noData = getitemListIds();
6
+ const emptyData = getitemListIds({});
7
+ const withData = getitemListIds({
8
+ getItemList: { listItems: [{ itemId: '123' }, { itemId: '456' }] }
9
+ });
10
+
11
+ it('should return null if no valid data is passed', () => {
12
+ expect(noData).toEqual(null);
13
+ expect(emptyData).toEqual(null);
14
+ });
15
+
16
+ it('should return itemsToDisplay formatted ids', () => {
17
+ expect(withData).toEqual([{ displayItems: ['123'] }, { displayItems: ['456'] }]);
18
+ });
19
+ });
@@ -0,0 +1,13 @@
1
+ import '@testing-library/jest-dom/extend-expect';
2
+ import setItemListId from '../../../../../../src/components/ItemList/helpers/set-item-list-id';
3
+ import { LIST_ITEM_LOCAL_KEY } from '../../../../../../src/components/ItemList/constants';
4
+
5
+ describe('setItemListId helper', () => {
6
+ const listId = 'LIST ID';
7
+ const listName = 'LIST';
8
+
9
+ it('should set list id in localstorage', () => {
10
+ setItemListId(listName, listId);
11
+ expect(localStorage.setItem).toHaveBeenCalledWith(`${LIST_ITEM_LOCAL_KEY}${listName}`, listId);
12
+ });
13
+ });
@@ -0,0 +1,30 @@
1
+ import '@testing-library/jest-dom/extend-expect';
2
+ import setParamAndRedirect from '../../../../../../src/components/ItemList/helpers/set-param-and-redirect';
3
+ import { LIST_ITEM_QUERY_PARAM } from '../../../../../../src/components/ItemList/constants';
4
+
5
+ describe('setParamAndRedirect helper', () => {
6
+ const url = '/test?otherParam=abc';
7
+ const urlWithQueryString = `${url}&${LIST_ITEM_QUERY_PARAM}=123`;
8
+
9
+ it('should return if no value and queryParam not present', () => {
10
+ const router = { asPath: url, push: jest.fn() };
11
+ expect(setParamAndRedirect(router)).toBeUndefined();
12
+ expect(router.push).not.toHaveBeenCalled();
13
+ });
14
+
15
+ it('should remove queryString if no value passed', () => {
16
+ const router = { asPath: urlWithQueryString, push: jest.fn() };
17
+ expect(setParamAndRedirect(router)).toBeUndefined();
18
+ expect(router.push).toHaveBeenCalledWith('/Resolver', url, {
19
+ shallow: true
20
+ });
21
+ });
22
+
23
+ it('should add queryString if value passed', () => {
24
+ const router = { asPath: url, push: jest.fn() };
25
+ expect(setParamAndRedirect(router, '123')).toBeUndefined();
26
+ expect(router.push).toHaveBeenCalledWith('/Resolver', urlWithQueryString, {
27
+ shallow: true
28
+ });
29
+ });
30
+ });
@@ -0,0 +1,32 @@
1
+ import { renderHook, act } from '@testing-library/react-hooks';
2
+ import useItemListId from '../../../../../../src/components/ItemList/hooks/use-item-list-id';
3
+ import getItemListId from '../../../../../../src/components/ItemList/helpers/get-item-list-id';
4
+
5
+ jest.mock('../../../../../../src/components/ItemList/helpers/get-item-list-id', () =>
6
+ jest.fn(() => 'LIST ID')
7
+ );
8
+
9
+ describe('useItemListId hook', () => {
10
+ const listId = 'LIST ID';
11
+ const listName = 'LIST';
12
+
13
+ it('should return listId ', () => {
14
+ const { result } = renderHook(() => useItemListId({ listName }));
15
+ expect(result.current).toEqual({ listId });
16
+ expect(getItemListId).toHaveBeenCalledWith(listName);
17
+ });
18
+
19
+ it('should return listId after storage event', () => {
20
+ const noListValue = 'empty';
21
+ getItemListId.mockReturnValueOnce(noListValue);
22
+ const { result } = renderHook(() => useItemListId({ listName }));
23
+ expect(result.current).toEqual({ listId: noListValue });
24
+
25
+ act(() => {
26
+ window.dispatchEvent(new Event('storage'));
27
+ });
28
+
29
+ expect(result.current).toEqual({ listId });
30
+ expect(getItemListId).toHaveBeenNthCalledWith(2, listName);
31
+ });
32
+ });
@@ -0,0 +1,30 @@
1
+ import hasRequiredItemListDetails from '../../../../../../src/components/List/helpers/has-required-item-list-details';
2
+ import setParamAndRedirect from '../../../../../../src/components/ItemList/helpers/set-param-and-redirect';
3
+
4
+ jest.mock('../../../../../../src/components/ItemList/helpers/set-param-and-redirect', () =>
5
+ jest.fn()
6
+ );
7
+
8
+ describe('hasRequiredItemListDetails helper function', () => {
9
+ const itemListId = 'localstorage id';
10
+ const router = {};
11
+ const itemListName = 'LIST NAME';
12
+ const queryItemListId = 'query id';
13
+
14
+ it('should return true if no itemListName', () => {
15
+ expect(hasRequiredItemListDetails({})).toEqual(true);
16
+ });
17
+
18
+ it('should call setParamAndRedirect if queryItemListId not set and itemListId is', () => {
19
+ expect(hasRequiredItemListDetails({ itemListName, itemListId, router })).toEqual(false);
20
+ expect(setParamAndRedirect).toHaveBeenCalledWith(router, itemListId);
21
+ });
22
+
23
+ it('should return false if no queryItemListId and itemListId', () => {
24
+ expect(hasRequiredItemListDetails({ itemListName })).toEqual(false);
25
+ });
26
+
27
+ it('should return true queryItemListId is set', () => {
28
+ expect(hasRequiredItemListDetails({ itemListName, queryItemListId })).toEqual(true);
29
+ });
30
+ });
@@ -3,16 +3,22 @@ import { render } from '@blaze-cms/tools/test-helpers/test-functions';
3
3
  import '@testing-library/jest-dom/extend-expect';
4
4
  import Menu from '../../../../../src/components/Menu';
5
5
 
6
- jest.mock('../../../../../src/components/SearchContent', () => () => 'Search Component');
6
+ jest.mock('next/router', () => ({
7
+ useRouter: jest.fn(() => ({ events: { on: jest.fn(), off: jest.fn() } }))
8
+ }));
7
9
 
8
10
  const props = {
9
11
  collapse: false,
10
12
  modifier: 'menu-mod',
11
- children: [<div className="child_1">only child</div>]
13
+ children: [
14
+ <div className="child_1" key="1">
15
+ only child
16
+ </div>
17
+ ]
12
18
  };
13
19
 
14
20
  describe('Menu component', () => {
15
- it.skip('should render without throwing an error and match snapshot', () => {
21
+ it('should render without throwing an error and match snapshot', () => {
16
22
  const { asFragment } = render(Menu, props);
17
23
  expect(asFragment()).toMatchSnapshot();
18
24
  });
@@ -3,20 +3,21 @@
3
3
  exports[`Menu component should render without throwing an error and match snapshot 1`] = `
4
4
  <DocumentFragment>
5
5
  <div
6
- class="menu--desktop-wrapper"
6
+ class="menu--wrapper"
7
7
  >
8
- <ul
9
- class="menu-mod"
8
+ <div
9
+ class="menu--desktop-wrapper"
10
10
  >
11
- <div
12
- class="child_1"
11
+ <ul
12
+ class=" menu-mod"
13
13
  >
14
- only child
15
- </div>
16
- <li>
17
- Search Component
18
- </li>
19
- </ul>
14
+ <div
15
+ class="child_1"
16
+ >
17
+ only child
18
+ </div>
19
+ </ul>
20
+ </div>
20
21
  </div>
21
22
  </DocumentFragment>
22
23
  `;
@@ -8,7 +8,7 @@ const props = {
8
8
  text: 'Item 1',
9
9
  modifier: 'menu-item-mod',
10
10
  children: [
11
- <div className="child_1" component={{ type: 'menuitem' }}>
11
+ <div className="child_1" key="1" component={{ type: 'menuitem' }}>
12
12
  some child
13
13
  </div>
14
14
  ]
@@ -15,7 +15,11 @@ describe('SubMenu component', () => {
15
15
  it('should render children if passed', () => {
16
16
  const { container, asFragment } = render(SubMenu, {
17
17
  modifier: '',
18
- children: [<div className="sub-menu-child">some stuff</div>]
18
+ children: [
19
+ <div className="sub-menu-child" key="1">
20
+ some stuff
21
+ </div>
22
+ ]
19
23
  });
20
24
  expect(asFragment()).toMatchSnapshot();
21
25
  expect(container.firstChild.firstChild).toContainHTML('div');
@@ -5,13 +5,35 @@ exports[`MenuItem component should render link if url is passed 1`] = `
5
5
  <li
6
6
  class="menu-item-mod"
7
7
  >
8
- <a
9
- href="/somewhere"
8
+ <div
9
+ class="menu--item--link"
10
10
  >
11
- Item 1
12
- </a>
11
+ <a
12
+ href="/somewhere"
13
+ >
14
+ Item 1
15
+ </a>
16
+ <i
17
+ class="menu--item--link--icon"
18
+ role="button"
19
+ >
20
+ <svg
21
+ fill="currentColor"
22
+ height="1em"
23
+ stroke="currentColor"
24
+ stroke-width="0"
25
+ viewBox="0 0 448 512"
26
+ width="1em"
27
+ xmlns="http://www.w3.org/2000/svg"
28
+ >
29
+ <path
30
+ d="M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"
31
+ />
32
+ </svg>
33
+ </i>
34
+ </div>
13
35
  <div
14
- class="hidden"
36
+ class="menu--item-children hidden"
15
37
  >
16
38
  <div
17
39
  class="child_1"
@@ -29,13 +51,35 @@ exports[`MenuItem component should render without throwing an error and match sn
29
51
  <li
30
52
  class="menu-item-mod"
31
53
  >
32
- <span
33
- role="button"
54
+ <div
55
+ class="menu--item--link"
34
56
  >
35
- Item 1
36
- </span>
57
+ <span
58
+ role="button"
59
+ >
60
+ Item 1
61
+ </span>
62
+ <i
63
+ class="menu--item--link--icon"
64
+ role="button"
65
+ >
66
+ <svg
67
+ fill="currentColor"
68
+ height="1em"
69
+ stroke="currentColor"
70
+ stroke-width="0"
71
+ viewBox="0 0 448 512"
72
+ width="1em"
73
+ xmlns="http://www.w3.org/2000/svg"
74
+ >
75
+ <path
76
+ d="M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"
77
+ />
78
+ </svg>
79
+ </i>
80
+ </div>
37
81
  <div
38
- class="hidden"
82
+ class="menu--item-children hidden"
39
83
  >
40
84
  <div
41
85
  class="child_1"
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import '@testing-library/jest-dom/extend-expect';
3
+ import { MockedProvider } from '@apollo/client/testing';
4
+ import { render } from '@testing-library/react';
5
+ import SearchContent from '../../../../../src/components/SearchContent';
6
+
7
+ jest.mock('@apollo/client', () => ({
8
+ ...jest.requireActual('@apollo/client'),
9
+ useQuery: jest.fn(() => ({ data: {}, loading: false, error: null }))
10
+ }));
11
+
12
+ jest.mock('next/router', () => ({
13
+ useRouter: jest.fn(() => ({ asPath: 'test-url' }))
14
+ }));
15
+
16
+ jest.mock('../../../../../src/components/SearchContent/SearchContent', () =>
17
+ jest.fn(() => <div>Mocked component</div>)
18
+ );
19
+
20
+ describe('SearchContent', () => {
21
+ it('should match snapshot', async () => {
22
+ const { asFragment } = render(
23
+ <MockedProvider mocks={[]} addTypename={false}>
24
+ <SearchContent />
25
+ </MockedProvider>
26
+ );
27
+ expect(asFragment()).toMatchSnapshot();
28
+ });
29
+ });
@@ -0,0 +1,9 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`SearchContent should match snapshot 1`] = `
4
+ <DocumentFragment>
5
+ <div>
6
+ Mocked component
7
+ </div>
8
+ </DocumentFragment>
9
+ `;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { render, screen } from '@testing-library/react';
2
+ import { render, screen, fireEvent } from '@testing-library/react';
3
3
  import '@testing-library/jest-dom';
4
4
  import SearchFilter from '../../../../../../src/components/SearchFilter/SearchFilter';
5
5
 
@@ -11,7 +11,7 @@ const renderComponent = (Component, props) => {
11
11
 
12
12
  const mockedProps = {
13
13
  data: {},
14
- initialFilterValues: {},
14
+ filterValues: {},
15
15
  filters: [],
16
16
  searchFilterRef: {},
17
17
  buttonRef: { current: null },
@@ -24,14 +24,11 @@ const mockedProps = {
24
24
  groupAfterMobile: 0,
25
25
  groupAfterDesktop: 0,
26
26
  isCollapsedOnResponsive: true,
27
- displaySearchFilter: false
27
+ displaySearchFilter: false,
28
+ setAppliedFilters: jest.fn()
28
29
  };
29
30
 
30
31
  describe('SearchFilter component', () => {
31
- it('should be defined', () => {
32
- expect(SearchFilter).toBeDefined();
33
- });
34
-
35
32
  describe('when isCollapsedOnResponsive = true, displaySearchFilter = false', () => {
36
33
  const specificMockedProps = {
37
34
  ...mockedProps,
@@ -153,5 +150,27 @@ describe('SearchFilter component', () => {
153
150
  const { asFragment } = renderComponent(SearchFilter, specificMockedProps);
154
151
  expect(asFragment()).toMatchSnapshot();
155
152
  });
153
+
154
+ it('should toggle open and close classes on click and submit', () => {
155
+ const { getByTestId } = renderComponent(SearchFilter, specificMockedProps);
156
+ const mobileToggler = getByTestId('search-filter-mobile-toggler');
157
+ const desktopToggler = getByTestId('search-filter-desktop-toggler');
158
+ const form = screen.getByTestId(`filter-${specificMockedProps.name}-form`);
159
+
160
+ fireEvent.click(mobileToggler);
161
+ expect(mobileToggler).toHaveClass(
162
+ 'filter__more-filters-mobile-toggler filter__more-filters-mobile-toggler--open'
163
+ );
164
+
165
+ fireEvent.click(desktopToggler);
166
+ expect(desktopToggler).toHaveClass(
167
+ 'filter__more-filters-desktop-toggler filter__more-filters-desktop-toggler--open'
168
+ );
169
+
170
+ fireEvent.submit(form);
171
+
172
+ expect(mobileToggler).toHaveClass('filter__more-filters-mobile-toggler');
173
+ expect(desktopToggler).toHaveClass('filter__more-filters-desktop-toggler');
174
+ });
156
175
  });
157
176
  });
@@ -121,6 +121,7 @@ exports[`SearchFilter component when groupAfterMobile = 0 and groupAfterDesktop
121
121
  >
122
122
  <button
123
123
  class="filter__more-filters-desktop-toggler"
124
+ data-testid="search-filter-desktop-toggler"
124
125
  type="button"
125
126
  >
126
127
  More filters
@@ -288,6 +289,7 @@ exports[`SearchFilter component when groupAfterMobile > 0 and groupAfterDesktop
288
289
  >
289
290
  <button
290
291
  class="filter__more-filters-mobile-toggler"
292
+ data-testid="search-filter-mobile-toggler"
291
293
  type="button"
292
294
  >
293
295
  Filters
@@ -461,6 +463,7 @@ exports[`SearchFilter component when groupAfterMobile > 0 and groupAfterDesktop
461
463
  >
462
464
  <button
463
465
  class="filter__more-filters-mobile-toggler"
466
+ data-testid="search-filter-mobile-toggler"
464
467
  type="button"
465
468
  >
466
469
  Filters
@@ -473,6 +476,7 @@ exports[`SearchFilter component when groupAfterMobile > 0 and groupAfterDesktop
473
476
  >
474
477
  <button
475
478
  class="filter__more-filters-desktop-toggler"
479
+ data-testid="search-filter-desktop-toggler"
476
480
  type="button"
477
481
  >
478
482
  More filters
@@ -10,6 +10,7 @@ exports[`Checkbox component should render without throwing an error match snapsh
10
10
  class="form-checkbox"
11
11
  data-cy="checkbox-cy-1"
12
12
  data-testid="checkbox-1"
13
+ disabled=""
13
14
  id="name1-checkbox"
14
15
  name="name"
15
16
  readonly=""
@@ -36,6 +37,7 @@ exports[`Checkbox component should render without throwing an error match snapsh
36
37
  class="form-checkbox"
37
38
  data-cy="checkbox-cy-2"
38
39
  data-testid="checkbox-2"
40
+ disabled=""
39
41
  id="name2-checkbox"
40
42
  name="name"
41
43
  readonly=""
@@ -13,11 +13,13 @@ exports[`Select component should display label as placeholder with no label tag
13
13
  Placeholder label
14
14
  </option>
15
15
  <option
16
+ disabled=""
16
17
  value="name1"
17
18
  >
18
19
  name1
19
20
  </option>
20
21
  <option
22
+ disabled=""
21
23
  value="name2"
22
24
  >
23
25
  name2
@@ -46,11 +48,13 @@ exports[`Select component should render witout throwing an error and match snaps
46
48
  Any
47
49
  </option>
48
50
  <option
51
+ disabled=""
49
52
  value="name1"
50
53
  >
51
54
  name1
52
55
  </option>
53
56
  <option
57
+ disabled=""
54
58
  value="name2"
55
59
  >
56
60
  name2
@@ -24,10 +24,10 @@ describe('buildQuery helper function', () => {
24
24
  });
25
25
 
26
26
  it('should return new query string with search term if available', () => {
27
- expect(withTextSearch).toEqual('search_term=new search value');
27
+ expect(withTextSearch).toEqual('search_term=new%20search%20value');
28
28
  });
29
29
 
30
30
  it('should return new query string with search text and all other available query values', () => {
31
- expect(withSearchAndRange).toEqual('search_term=new search value&rangeFilter=2-10');
31
+ expect(withSearchAndRange).toEqual('search_term=new%20search%20value&rangeFilter=2-10');
32
32
  });
33
33
  });
@@ -1,17 +1,19 @@
1
1
  import getInitialFilterValues from '../../../../../../src/components/SearchFilter/helpers/get-initial-filter-values';
2
2
  import { SEARCH_TERM } from '../../../../../../src/components/SearchFilter/constants';
3
3
 
4
+ const filters = [
5
+ { propsToDisplay: ['rangeFilter'], type: 'range', rangeInterval: 1 },
6
+ { propsToDisplay: ['checkboxFilter'], type: 'checkbox' },
7
+ { propsToDisplay: ['emptySelect'], type: 'select' }
8
+ ];
9
+ const query = {
10
+ [SEARCH_TERM]: 'some text search',
11
+ rangeFilter: '7-8',
12
+ checkboxFilter: ['check1', 'check2']
13
+ };
4
14
  const mockedProps = [
5
15
  [{}, [], {}],
6
- [
7
- { rangeFilter: { min: 5, max: 10 }, checkboxFilter: {}, emptySelect: {} },
8
- [
9
- { propsToDisplay: ['rangeFilter'], type: 'range', rangeInterval: 1 },
10
- { propsToDisplay: ['checkboxFilter'], type: 'checkbox' },
11
- { propsToDisplay: ['emptySelect'], type: 'select' }
12
- ],
13
- { [SEARCH_TERM]: 'some text search', rangeFilter: '7-8', checkboxFilter: ['check1', 'check2'] }
14
- ]
16
+ [{ rangeFilter: { min: 5, max: 10 }, checkboxFilter: {}, emptySelect: {} }, filters, query]
15
17
  ];
16
18
 
17
19
  describe('getInitialFilterValues helper function', () => {
@@ -19,12 +21,24 @@ describe('getInitialFilterValues helper function', () => {
19
21
  const withValues = getInitialFilterValues(...mockedProps[1]);
20
22
 
21
23
  it('should return init filter values based on query and filterData', () => {
22
- expect(withNoValue).toEqual({ search_term: '' });
24
+ expect(withNoValue).toEqual({ dataNotSet: false, search_term: '' });
23
25
  expect(withValues).toEqual({
24
- search_term: 'some text search',
26
+ dataNotSet: false,
27
+ search_term: query[SEARCH_TERM],
25
28
  rangeFilter: { max: 10, maxValue: 8, min: 5, minValue: 7, step: 1 },
26
29
  checkboxFilter: ['check1', 'check2'],
27
30
  emptySelect: null
28
31
  });
29
32
  });
33
+
34
+ it('should return init filter values without filterData', () => {
35
+ const withNoData = getInitialFilterValues(null, filters, query);
36
+ expect(withNoData).toEqual({
37
+ dataNotSet: true,
38
+ search_term: query[SEARCH_TERM],
39
+ rangeFilter: null,
40
+ checkboxFilter: null,
41
+ emptySelect: null
42
+ });
43
+ });
30
44
  });
@@ -30,6 +30,6 @@ describe('parseFilterValue helper function', () => {
30
30
  expect(rangeValue).toEqual('rangeVal=10-20');
31
31
  expect(checkboxArrayValue).toEqual('checkVal=check1&checkVal=check2');
32
32
  expect(checkboxStringValue).toEqual('checkVal2=check3');
33
- expect(selectValue).toEqual('selectVal=select value');
33
+ expect(selectValue).toEqual('selectVal=select%20value');
34
34
  });
35
35
  });
@@ -46,6 +46,18 @@ Object {
46
46
  "$$typeof": Symbol(react.forward_ref),
47
47
  "render": [Function],
48
48
  },
49
+ "itemlistbutton": Object {
50
+ "$$typeof": Symbol(react.forward_ref),
51
+ "render": [Function],
52
+ },
53
+ "itemlistcounter": Object {
54
+ "$$typeof": Symbol(react.forward_ref),
55
+ "render": [Function],
56
+ },
57
+ "itemlistnew": Object {
58
+ "$$typeof": Symbol(react.forward_ref),
59
+ "render": [Function],
60
+ },
49
61
  "list": Object {
50
62
  "$$typeof": Symbol(react.forward_ref),
51
63
  "render": [Function],