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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (279) hide show
  1. package/CHANGELOG.md +303 -0
  2. package/README.md +8 -0
  3. package/lib/application/query/index.js +8 -2
  4. package/lib/application/query/index.js.map +1 -1
  5. package/lib/components/Button.js +18 -5
  6. package/lib/components/Button.js.map +1 -1
  7. package/lib/components/Card/CardContainer.js +3 -7
  8. package/lib/components/Card/CardContainer.js.map +1 -1
  9. package/lib/components/Card/CardFactory.js +6 -3
  10. package/lib/components/Card/CardFactory.js.map +1 -1
  11. package/lib/components/CarouselWrapper.js +2 -2
  12. package/lib/components/CarouselWrapper.js.map +1 -1
  13. package/lib/components/Image/ImageRender.js +5 -1
  14. package/lib/components/Image/ImageRender.js.map +1 -1
  15. package/lib/components/ItemList/ItemListButton/ItemListButton.js +161 -0
  16. package/lib/components/ItemList/ItemListButton/ItemListButton.js.map +1 -0
  17. package/lib/components/ItemList/ItemListButton/index.js +16 -0
  18. package/lib/components/ItemList/ItemListButton/index.js.map +1 -0
  19. package/lib/components/ItemList/ItemListCounter/ItemListCounter.js +83 -0
  20. package/lib/components/ItemList/ItemListCounter/ItemListCounter.js.map +1 -0
  21. package/lib/components/ItemList/ItemListCounter/index.js +16 -0
  22. package/lib/components/ItemList/ItemListCounter/index.js.map +1 -0
  23. package/lib/components/ItemList/ItemListNew/ItemListNew.js +87 -0
  24. package/lib/components/ItemList/ItemListNew/ItemListNew.js.map +1 -0
  25. package/lib/components/ItemList/ItemListNew/index.js +16 -0
  26. package/lib/components/ItemList/ItemListNew/index.js.map +1 -0
  27. package/lib/components/ItemList/constants.js +19 -0
  28. package/lib/components/ItemList/constants.js.map +1 -0
  29. package/lib/components/ItemList/helpers/get-item-list-data.js +17 -0
  30. package/lib/components/ItemList/helpers/get-item-list-data.js.map +1 -0
  31. package/lib/components/ItemList/helpers/get-item-list-id.js +23 -0
  32. package/lib/components/ItemList/helpers/get-item-list-id.js.map +1 -0
  33. package/lib/components/ItemList/helpers/get-item-list-ids.js +28 -0
  34. package/lib/components/ItemList/helpers/get-item-list-ids.js.map +1 -0
  35. package/lib/components/ItemList/helpers/index.js +50 -0
  36. package/lib/components/ItemList/helpers/index.js.map +1 -0
  37. package/lib/components/ItemList/helpers/set-item-list-id.js +22 -0
  38. package/lib/components/ItemList/helpers/set-item-list-id.js.map +1 -0
  39. package/lib/components/ItemList/helpers/set-param-and-redirect.js +51 -0
  40. package/lib/components/ItemList/helpers/set-param-and-redirect.js.map +1 -0
  41. package/lib/components/ItemList/hooks/index.js +18 -0
  42. package/lib/components/ItemList/hooks/index.js.map +1 -0
  43. package/lib/components/ItemList/hooks/use-item-list-id.js +45 -0
  44. package/lib/components/ItemList/hooks/use-item-list-id.js.map +1 -0
  45. package/lib/components/LazyImage/LazyImage.js +5 -1
  46. package/lib/components/LazyImage/LazyImage.js.map +1 -1
  47. package/lib/components/List/ListBuilder.js +12 -6
  48. package/lib/components/List/ListBuilder.js.map +1 -1
  49. package/lib/components/List/ListFactory.js +34 -7
  50. package/lib/components/List/ListFactory.js.map +1 -1
  51. package/lib/components/List/helpers/has-required-item-list-details.js +29 -0
  52. package/lib/components/List/helpers/has-required-item-list-details.js.map +1 -0
  53. package/lib/components/List/helpers/index.js +8 -0
  54. package/lib/components/List/helpers/index.js.map +1 -1
  55. package/lib/components/Menu/Menu.js +41 -28
  56. package/lib/components/Menu/Menu.js.map +1 -1
  57. package/lib/components/Menu/MenuContext.js +20 -0
  58. package/lib/components/Menu/MenuContext.js.map +1 -0
  59. package/lib/components/MenuItem/MenuItem.js +26 -7
  60. package/lib/components/MenuItem/MenuItem.js.map +1 -1
  61. package/lib/components/SearchContent/SearchContent.js +183 -0
  62. package/lib/components/SearchContent/SearchContent.js.map +1 -0
  63. package/lib/components/SearchContent/SearchContentItems.js +51 -0
  64. package/lib/components/SearchContent/SearchContentItems.js.map +1 -0
  65. package/lib/components/SearchContent/SearchContentResults.js +45 -0
  66. package/lib/components/SearchContent/SearchContentResults.js.map +1 -0
  67. package/lib/components/SearchContent/SearchContentToggleIcon.js +42 -0
  68. package/lib/components/SearchContent/SearchContentToggleIcon.js.map +1 -0
  69. package/lib/components/SearchContent/index.js +2 -301
  70. package/lib/components/SearchContent/index.js.map +1 -1
  71. package/lib/components/SearchFilter/SearchFilter/FiltersList.js +2 -4
  72. package/lib/components/SearchFilter/SearchFilter/FiltersList.js.map +1 -1
  73. package/lib/components/SearchFilter/SearchFilter/SearchFilter.js +16 -66
  74. package/lib/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
  75. package/lib/components/SearchFilter/SearchFilterContainer.js +87 -23
  76. package/lib/components/SearchFilter/SearchFilterContainer.js.map +1 -1
  77. package/lib/components/SearchFilter/components/Checkbox.js +19 -9
  78. package/lib/components/SearchFilter/components/Checkbox.js.map +1 -1
  79. package/lib/components/SearchFilter/components/Select.js +27 -11
  80. package/lib/components/SearchFilter/components/Select.js.map +1 -1
  81. package/lib/components/SearchFilter/components/TextSearch.js +1 -5
  82. package/lib/components/SearchFilter/components/TextSearch.js.map +1 -1
  83. package/lib/components/SearchFilter/helpers/build-filters-query.js +87 -0
  84. package/lib/components/SearchFilter/helpers/build-filters-query.js.map +1 -0
  85. package/lib/components/SearchFilter/helpers/build-query.js +1 -1
  86. package/lib/components/SearchFilter/helpers/build-query.js.map +1 -1
  87. package/lib/components/SearchFilter/helpers/build-raw-query-stringified.js +2 -1
  88. package/lib/components/SearchFilter/helpers/build-raw-query-stringified.js.map +1 -1
  89. package/lib/components/SearchFilter/helpers/get-initial-filter-values.js +18 -3
  90. package/lib/components/SearchFilter/helpers/get-initial-filter-values.js.map +1 -1
  91. package/lib/components/SearchFilter/helpers/index.js +8 -0
  92. package/lib/components/SearchFilter/helpers/index.js.map +1 -1
  93. package/lib/components/SearchFilter/helpers/parse-filter-value.js +3 -7
  94. package/lib/components/SearchFilter/helpers/parse-filter-value.js.map +1 -1
  95. package/lib/components/index.js +16 -1
  96. package/lib/components/index.js.map +1 -1
  97. package/lib/constants/index.js +3 -1
  98. package/lib/constants/index.js.map +1 -1
  99. package/lib/helpers/build-raw-query.js.map +1 -1
  100. package/lib/hooks/helpers/append-gtm-classname.js +1 -0
  101. package/lib/hooks/helpers/append-gtm-classname.js.map +1 -1
  102. package/lib-es/application/query/index.js +45 -1
  103. package/lib-es/application/query/index.js.map +1 -1
  104. package/lib-es/components/Button.js +18 -6
  105. package/lib-es/components/Button.js.map +1 -1
  106. package/lib-es/components/Card/CardContainer.js +3 -7
  107. package/lib-es/components/Card/CardContainer.js.map +1 -1
  108. package/lib-es/components/Card/CardFactory.js +7 -4
  109. package/lib-es/components/Card/CardFactory.js.map +1 -1
  110. package/lib-es/components/CarouselWrapper.js +2 -2
  111. package/lib-es/components/CarouselWrapper.js.map +1 -1
  112. package/lib-es/components/Image/ImageRender.js +4 -1
  113. package/lib-es/components/Image/ImageRender.js.map +1 -1
  114. package/lib-es/components/ItemList/ItemListButton/ItemListButton.js +111 -0
  115. package/lib-es/components/ItemList/ItemListButton/ItemListButton.js.map +1 -0
  116. package/lib-es/components/ItemList/ItemListButton/index.js +3 -0
  117. package/lib-es/components/ItemList/ItemListButton/index.js.map +1 -0
  118. package/lib-es/components/ItemList/ItemListCounter/ItemListCounter.js +60 -0
  119. package/lib-es/components/ItemList/ItemListCounter/ItemListCounter.js.map +1 -0
  120. package/lib-es/components/ItemList/ItemListCounter/index.js +3 -0
  121. package/lib-es/components/ItemList/ItemListCounter/index.js.map +1 -0
  122. package/lib-es/components/ItemList/ItemListNew/ItemListNew.js +64 -0
  123. package/lib-es/components/ItemList/ItemListNew/ItemListNew.js.map +1 -0
  124. package/lib-es/components/ItemList/ItemListNew/index.js +3 -0
  125. package/lib-es/components/ItemList/ItemListNew/index.js.map +1 -0
  126. package/lib-es/components/ItemList/constants.js +6 -0
  127. package/lib-es/components/ItemList/constants.js.map +1 -0
  128. package/lib-es/components/ItemList/helpers/get-item-list-data.js +7 -0
  129. package/lib-es/components/ItemList/helpers/get-item-list-data.js.map +1 -0
  130. package/lib-es/components/ItemList/helpers/get-item-list-id.js +11 -0
  131. package/lib-es/components/ItemList/helpers/get-item-list-id.js.map +1 -0
  132. package/lib-es/components/ItemList/helpers/get-item-list-ids.js +13 -0
  133. package/lib-es/components/ItemList/helpers/get-item-list-ids.js.map +1 -0
  134. package/lib-es/components/ItemList/helpers/index.js +6 -0
  135. package/lib-es/components/ItemList/helpers/index.js.map +1 -0
  136. package/lib-es/components/ItemList/helpers/set-item-list-id.js +10 -0
  137. package/lib-es/components/ItemList/helpers/set-item-list-id.js.map +1 -0
  138. package/lib-es/components/ItemList/helpers/set-param-and-redirect.js +20 -0
  139. package/lib-es/components/ItemList/helpers/set-param-and-redirect.js.map +1 -0
  140. package/lib-es/components/ItemList/hooks/index.js +2 -0
  141. package/lib-es/components/ItemList/hooks/index.js.map +1 -0
  142. package/lib-es/components/ItemList/hooks/use-item-list-id.js +26 -0
  143. package/lib-es/components/ItemList/hooks/use-item-list-id.js.map +1 -0
  144. package/lib-es/components/LazyImage/LazyImage.js +4 -1
  145. package/lib-es/components/LazyImage/LazyImage.js.map +1 -1
  146. package/lib-es/components/List/ListBuilder.js +12 -6
  147. package/lib-es/components/List/ListBuilder.js.map +1 -1
  148. package/lib-es/components/List/ListFactory.js +33 -9
  149. package/lib-es/components/List/ListFactory.js.map +1 -1
  150. package/lib-es/components/List/helpers/has-required-item-list-details.js +20 -0
  151. package/lib-es/components/List/helpers/has-required-item-list-details.js.map +1 -0
  152. package/lib-es/components/List/helpers/index.js +1 -0
  153. package/lib-es/components/List/helpers/index.js.map +1 -1
  154. package/lib-es/components/Menu/Menu.js +54 -46
  155. package/lib-es/components/Menu/Menu.js.map +1 -1
  156. package/lib-es/components/Menu/MenuContext.js +6 -0
  157. package/lib-es/components/Menu/MenuContext.js.map +1 -0
  158. package/lib-es/components/MenuItem/MenuItem.js +24 -9
  159. package/lib-es/components/MenuItem/MenuItem.js.map +1 -1
  160. package/lib-es/components/SearchContent/SearchContent.js +129 -0
  161. package/lib-es/components/SearchContent/SearchContent.js.map +1 -0
  162. package/lib-es/components/SearchContent/SearchContentItems.js +33 -0
  163. package/lib-es/components/SearchContent/SearchContentItems.js.map +1 -0
  164. package/lib-es/components/SearchContent/SearchContentResults.js +31 -0
  165. package/lib-es/components/SearchContent/SearchContentResults.js.map +1 -0
  166. package/lib-es/components/SearchContent/SearchContentToggleIcon.js +30 -0
  167. package/lib-es/components/SearchContent/SearchContentToggleIcon.js.map +1 -0
  168. package/lib-es/components/SearchContent/index.js +1 -205
  169. package/lib-es/components/SearchContent/index.js.map +1 -1
  170. package/lib-es/components/SearchFilter/SearchFilter/FiltersList.js +2 -4
  171. package/lib-es/components/SearchFilter/SearchFilter/FiltersList.js.map +1 -1
  172. package/lib-es/components/SearchFilter/SearchFilter/SearchFilter.js +10 -43
  173. package/lib-es/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
  174. package/lib-es/components/SearchFilter/SearchFilterContainer.js +70 -15
  175. package/lib-es/components/SearchFilter/SearchFilterContainer.js.map +1 -1
  176. package/lib-es/components/SearchFilter/components/Checkbox.js +18 -9
  177. package/lib-es/components/SearchFilter/components/Checkbox.js.map +1 -1
  178. package/lib-es/components/SearchFilter/components/Select.js +23 -8
  179. package/lib-es/components/SearchFilter/components/Select.js.map +1 -1
  180. package/lib-es/components/SearchFilter/components/TextSearch.js +1 -5
  181. package/lib-es/components/SearchFilter/components/TextSearch.js.map +1 -1
  182. package/lib-es/components/SearchFilter/helpers/build-filters-query.js +54 -0
  183. package/lib-es/components/SearchFilter/helpers/build-filters-query.js.map +1 -0
  184. package/lib-es/components/SearchFilter/helpers/build-query.js +1 -1
  185. package/lib-es/components/SearchFilter/helpers/build-query.js.map +1 -1
  186. package/lib-es/components/SearchFilter/helpers/build-raw-query-stringified.js +2 -1
  187. package/lib-es/components/SearchFilter/helpers/build-raw-query-stringified.js.map +1 -1
  188. package/lib-es/components/SearchFilter/helpers/get-initial-filter-values.js +13 -1
  189. package/lib-es/components/SearchFilter/helpers/get-initial-filter-values.js.map +1 -1
  190. package/lib-es/components/SearchFilter/helpers/index.js +2 -1
  191. package/lib-es/components/SearchFilter/helpers/index.js.map +1 -1
  192. package/lib-es/components/SearchFilter/helpers/parse-filter-value.js +3 -3
  193. package/lib-es/components/SearchFilter/helpers/parse-filter-value.js.map +1 -1
  194. package/lib-es/components/index.js +10 -1
  195. package/lib-es/components/index.js.map +1 -1
  196. package/lib-es/constants/index.js +2 -1
  197. package/lib-es/constants/index.js.map +1 -1
  198. package/lib-es/helpers/build-raw-query.js.map +1 -1
  199. package/lib-es/hooks/helpers/append-gtm-classname.js +1 -0
  200. package/lib-es/hooks/helpers/append-gtm-classname.js.map +1 -1
  201. package/package.json +5 -4
  202. package/src/application/query/index.js +51 -1
  203. package/src/components/Button.js +27 -5
  204. package/src/components/Card/CardContainer.js +2 -6
  205. package/src/components/Card/CardFactory.js +5 -3
  206. package/src/components/CarouselWrapper.js +2 -2
  207. package/src/components/Image/ImageRender.js +3 -0
  208. package/src/components/ItemList/ItemListButton/ItemListButton.js +94 -0
  209. package/src/components/ItemList/ItemListButton/index.js +3 -0
  210. package/src/components/ItemList/ItemListCounter/ItemListCounter.js +52 -0
  211. package/src/components/ItemList/ItemListCounter/index.js +3 -0
  212. package/src/components/ItemList/ItemListNew/ItemListNew.js +51 -0
  213. package/src/components/ItemList/ItemListNew/index.js +3 -0
  214. package/src/components/ItemList/constants.js +5 -0
  215. package/src/components/ItemList/helpers/get-item-list-data.js +6 -0
  216. package/src/components/ItemList/helpers/get-item-list-id.js +11 -0
  217. package/src/components/ItemList/helpers/get-item-list-ids.js +10 -0
  218. package/src/components/ItemList/helpers/index.js +5 -0
  219. package/src/components/ItemList/helpers/set-item-list-id.js +9 -0
  220. package/src/components/ItemList/helpers/set-param-and-redirect.js +20 -0
  221. package/src/components/ItemList/hooks/index.js +1 -0
  222. package/src/components/ItemList/hooks/use-item-list-id.js +27 -0
  223. package/src/components/LazyImage/LazyImage.js +11 -1
  224. package/src/components/List/ListBuilder.js +10 -5
  225. package/src/components/List/ListFactory.js +48 -12
  226. package/src/components/List/helpers/has-required-item-list-details.js +14 -0
  227. package/src/components/List/helpers/index.js +1 -0
  228. package/src/components/Menu/Menu.js +61 -54
  229. package/src/components/Menu/MenuContext.js +5 -0
  230. package/src/components/MenuItem/MenuItem.js +39 -14
  231. package/src/components/SearchContent/SearchContent.js +136 -0
  232. package/src/components/SearchContent/SearchContentItems.js +28 -0
  233. package/src/components/SearchContent/SearchContentResults.js +27 -0
  234. package/src/components/SearchContent/SearchContentToggleIcon.js +27 -0
  235. package/src/components/SearchContent/index.js +1 -217
  236. package/src/components/SearchFilter/SearchFilter/FiltersList.js +30 -37
  237. package/src/components/SearchFilter/SearchFilter/SearchFilter.js +10 -25
  238. package/src/components/SearchFilter/SearchFilterContainer.js +61 -16
  239. package/src/components/SearchFilter/components/Checkbox.js +23 -8
  240. package/src/components/SearchFilter/components/Select.js +18 -11
  241. package/src/components/SearchFilter/components/TextSearch.js +1 -3
  242. package/src/components/SearchFilter/helpers/build-filters-query.js +40 -0
  243. package/src/components/SearchFilter/helpers/build-query.js +3 -1
  244. package/src/components/SearchFilter/helpers/build-raw-query-stringified.js +2 -1
  245. package/src/components/SearchFilter/helpers/get-initial-filter-values.js +12 -1
  246. package/src/components/SearchFilter/helpers/index.js +3 -1
  247. package/src/components/SearchFilter/helpers/parse-filter-value.js +3 -3
  248. package/src/components/index.js +10 -1
  249. package/src/constants/index.js +2 -0
  250. package/src/helpers/build-raw-query.js +1 -0
  251. package/src/hooks/helpers/append-gtm-classname.js +3 -0
  252. package/tests/unit/src/components/Button.test.js +55 -1
  253. package/tests/unit/src/components/ItemList/ItemListButton.test.js +175 -0
  254. package/tests/unit/src/components/ItemList/ItemListCounter.test.js +65 -0
  255. package/tests/unit/src/components/ItemList/ItemListNew.test.js +164 -0
  256. package/tests/unit/src/components/ItemList/__snapshots__/ItemListButton.test.js.snap +107 -0
  257. package/tests/unit/src/components/ItemList/__snapshots__/ItemListCounter.test.js.snap +31 -0
  258. package/tests/unit/src/components/ItemList/__snapshots__/ItemListNew.test.js.snap +27 -0
  259. package/tests/unit/src/components/ItemList/helpers/get-item-list-data.test.js +28 -0
  260. package/tests/unit/src/components/ItemList/helpers/get-item-list-id.test.js +20 -0
  261. package/tests/unit/src/components/ItemList/helpers/get-item-list-ids.test.js +19 -0
  262. package/tests/unit/src/components/ItemList/helpers/set-item-list-id.test.js +13 -0
  263. package/tests/unit/src/components/ItemList/helpers/set-param-and-redirect.test.js +30 -0
  264. package/tests/unit/src/components/ItemList/hooks/use-item-list-id.test.js +32 -0
  265. package/tests/unit/src/components/List/helpers/has-required-item-list-details.test.js +30 -0
  266. package/tests/unit/src/components/Menu/Menu.test.js +9 -3
  267. package/tests/unit/src/components/Menu/__snapshots__/Menu.test.js.snap +12 -11
  268. package/tests/unit/src/components/MenuItem/MenuItem.test.js +1 -1
  269. package/tests/unit/src/components/MenuItem/SubMenu.test.js +5 -1
  270. package/tests/unit/src/components/MenuItem/__snapshots__/MenuItem.test.js.snap +54 -10
  271. package/tests/unit/src/components/SearchContent/SearchContent.test.js +29 -0
  272. package/tests/unit/src/components/SearchContent/__snapshots__/SearchContent.test.js.snap +9 -0
  273. package/tests/unit/src/components/SearchFilter/SearchFilter/SearchFilter.test.js +3 -6
  274. package/tests/unit/src/components/SearchFilter/components/__snapshots__/Checkbox.test.js.snap +2 -0
  275. package/tests/unit/src/components/SearchFilter/components/__snapshots__/Select.test.js.snap +4 -0
  276. package/tests/unit/src/components/SearchFilter/helpers/build-query.test.js +2 -2
  277. package/tests/unit/src/components/SearchFilter/helpers/get-initial-filter-values.test.js +25 -11
  278. package/tests/unit/src/components/SearchFilter/helpers/parse-filter-value.test.js +1 -1
  279. package/tests/unit/src/components/__snapshots__/index.test.js.snap +12 -0
@@ -0,0 +1,129 @@
1
+ import React, { useState, useEffect } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { useRouter } from 'next/router';
4
+ import { useDebounceSearch } from '@blaze-cms/plugin-search-ui';
5
+ import SearchContentResults from './SearchContentResults';
6
+ import SearchContentToggleIcon from './SearchContentToggleIcon';
7
+
8
+ const SearchContent = ({
9
+ entities,
10
+ searchInputAlignment,
11
+ searchInputWrapperMobile,
12
+ searchInputWrapperDesktop,
13
+ collapsible,
14
+ isMobile,
15
+ placeholder,
16
+ modifier
17
+ }) => {
18
+ const [collapsed, setCollapsed] = useState(collapsible);
19
+ const router = useRouter();
20
+ const {
21
+ results,
22
+ searchTerm,
23
+ setSearchTerm,
24
+ debouncedSearchTerm
25
+ } = useDebounceSearch({
26
+ entities,
27
+ initialSearchTerm: '',
28
+ resultKeys: 'id, name, image { url }, url'
29
+ });
30
+ useEffect(() => {
31
+ const handleRouteChange = () => setSearchTerm('');
32
+
33
+ router.events.on('routeChangeStart', handleRouteChange);
34
+ return () => {
35
+ router.events.off('routeChangeStart', handleRouteChange);
36
+ };
37
+ }, [router.events, setSearchTerm]);
38
+ const responsiveClasses = isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop;
39
+
40
+ const handleClick = (e, url) => {
41
+ e.preventDefault();
42
+ router.push(url);
43
+ };
44
+
45
+ const handleKeyPress = e => {
46
+ if (e.key === 'Enter' && e.target.value !== '') {
47
+ router.push(`/search?search_term=${e.target.value}`);
48
+ }
49
+ };
50
+
51
+ const handleOnBlur = () => {
52
+ if (!collapsible) return;
53
+ if (!debouncedSearchTerm || debouncedSearchTerm === '') setCollapsed(true);
54
+ };
55
+
56
+ const handleClearSearchResults = () => {
57
+ setSearchTerm('');
58
+ };
59
+
60
+ const className = ['search-content', modifier, responsiveClasses].filter(Boolean).join(' ');
61
+ return collapsed ? /*#__PURE__*/React.createElement("div", {
62
+ className: className
63
+ }, /*#__PURE__*/React.createElement("div", {
64
+ className: "search-content--collapse__wrapper"
65
+ }, /*#__PURE__*/React.createElement("label", {
66
+ className: "search-content--collapse__label"
67
+ }, /*#__PURE__*/React.createElement("span", {
68
+ className: "search-content--collapse__icon_wrapper"
69
+ }, /*#__PURE__*/React.createElement("svg", {
70
+ className: "search-content--collapse__icon",
71
+ viewBox: "0 0 20 20"
72
+ }, /*#__PURE__*/React.createElement("path", {
73
+ fillRule: "evenodd",
74
+ d: "M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z",
75
+ clipRule: "evenodd"
76
+ }))), /*#__PURE__*/React.createElement("input", {
77
+ onFocus: () => setCollapsed(false),
78
+ onChange: e => setSearchTerm(e.target.value),
79
+ type: "text",
80
+ name: "search",
81
+ className: "search-content--collapse__input"
82
+ })))) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
83
+ className: className
84
+ }, /*#__PURE__*/React.createElement("div", {
85
+ className: "search-content--expanded__wrapper"
86
+ }, /*#__PURE__*/React.createElement("label", {
87
+ className: "search-content--expanded__label"
88
+ }, /*#__PURE__*/React.createElement("span", {
89
+ className: "search-content--expanded__icon_wrapper"
90
+ }, /*#__PURE__*/React.createElement(SearchContentToggleIcon, {
91
+ results: results,
92
+ onClear: handleClearSearchResults
93
+ })), /*#__PURE__*/React.createElement("input", {
94
+ type: "text",
95
+ name: "search",
96
+ onChange: e => setSearchTerm(e.target.value),
97
+ onKeyPress: handleKeyPress,
98
+ className: "search-content--expanded__input",
99
+ placeholder: placeholder,
100
+ value: searchTerm,
101
+ onBlur: handleOnBlur
102
+ }))), /*#__PURE__*/React.createElement(SearchContentResults, {
103
+ results: results,
104
+ debouncedSearchTerm: debouncedSearchTerm,
105
+ handleClick: handleClick
106
+ })));
107
+ };
108
+
109
+ SearchContent.propTypes = {
110
+ searchInputAlignment: PropTypes.string,
111
+ searchInputWrapperMobile: PropTypes.string,
112
+ searchInputWrapperDesktop: PropTypes.string,
113
+ placeholder: PropTypes.string,
114
+ isMobile: PropTypes.bool,
115
+ collapsible: PropTypes.bool,
116
+ entities: PropTypes.array.isRequired,
117
+ modifier: PropTypes.string
118
+ };
119
+ SearchContent.defaultProps = {
120
+ searchInputAlignment: '',
121
+ searchInputWrapperMobile: '',
122
+ searchInputWrapperDesktop: '',
123
+ placeholder: '',
124
+ isMobile: false,
125
+ collapsible: false,
126
+ modifier: ''
127
+ };
128
+ export default SearchContent;
129
+ //# sourceMappingURL=SearchContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchContent.js","names":["React","useState","useEffect","PropTypes","useRouter","useDebounceSearch","SearchContentResults","SearchContentToggleIcon","SearchContent","entities","searchInputAlignment","searchInputWrapperMobile","searchInputWrapperDesktop","collapsible","isMobile","placeholder","modifier","collapsed","setCollapsed","router","results","searchTerm","setSearchTerm","debouncedSearchTerm","initialSearchTerm","resultKeys","handleRouteChange","events","on","off","responsiveClasses","handleClick","e","url","preventDefault","push","handleKeyPress","key","target","value","handleOnBlur","handleClearSearchResults","className","filter","Boolean","join","propTypes","string","bool","array","isRequired","defaultProps"],"sources":["../../../src/components/SearchContent/SearchContent.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useRouter } from 'next/router';\nimport { useDebounceSearch } from '@blaze-cms/plugin-search-ui';\nimport SearchContentResults from './SearchContentResults';\nimport SearchContentToggleIcon from './SearchContentToggleIcon';\n\nconst SearchContent = ({\n entities,\n searchInputAlignment,\n searchInputWrapperMobile,\n searchInputWrapperDesktop,\n collapsible,\n isMobile,\n placeholder,\n modifier\n}) => {\n const [collapsed, setCollapsed] = useState(collapsible);\n const router = useRouter();\n\n const { results, searchTerm, setSearchTerm, debouncedSearchTerm } = useDebounceSearch({\n entities,\n initialSearchTerm: '',\n resultKeys: 'id, name, image { url }, url'\n });\n\n useEffect(\n () => {\n const handleRouteChange = () => setSearchTerm('');\n router.events.on('routeChangeStart', handleRouteChange);\n\n return () => {\n router.events.off('routeChangeStart', handleRouteChange);\n };\n },\n [router.events, setSearchTerm]\n );\n\n const responsiveClasses = isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop;\n\n const handleClick = (e, url) => {\n e.preventDefault();\n router.push(url);\n };\n\n const handleKeyPress = e => {\n if (e.key === 'Enter' && e.target.value !== '') {\n router.push(`/search?search_term=${e.target.value}`);\n }\n };\n\n const handleOnBlur = () => {\n if (!collapsible) return;\n if (!debouncedSearchTerm || debouncedSearchTerm === '') setCollapsed(true);\n };\n\n const handleClearSearchResults = () => {\n setSearchTerm('');\n };\n\n const className = ['search-content', modifier, responsiveClasses].filter(Boolean).join(' ');\n return collapsed ? (\n <div className={className}>\n <div className=\"search-content--collapse__wrapper\">\n <label className=\"search-content--collapse__label\">\n <span className=\"search-content--collapse__icon_wrapper\">\n <svg className=\"search-content--collapse__icon\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </span>\n <input\n onFocus={() => setCollapsed(false)}\n onChange={e => setSearchTerm(e.target.value)}\n type=\"text\"\n name=\"search\"\n className=\"search-content--collapse__input\"\n />\n </label>\n </div>\n </div>\n ) : (\n <>\n <div className={className}>\n <div className=\"search-content--expanded__wrapper\">\n <label className=\"search-content--expanded__label\">\n <span className=\"search-content--expanded__icon_wrapper\">\n <SearchContentToggleIcon results={results} onClear={handleClearSearchResults} />\n </span>\n <input\n type=\"text\"\n name=\"search\"\n onChange={e => setSearchTerm(e.target.value)}\n onKeyPress={handleKeyPress}\n className=\"search-content--expanded__input\"\n placeholder={placeholder}\n value={searchTerm}\n onBlur={handleOnBlur}\n />\n </label>\n </div>\n <SearchContentResults\n results={results}\n debouncedSearchTerm={debouncedSearchTerm}\n handleClick={handleClick}\n />\n </div>\n </>\n );\n};\n\nSearchContent.propTypes = {\n searchInputAlignment: PropTypes.string,\n searchInputWrapperMobile: PropTypes.string,\n searchInputWrapperDesktop: PropTypes.string,\n placeholder: PropTypes.string,\n isMobile: PropTypes.bool,\n collapsible: PropTypes.bool,\n entities: PropTypes.array.isRequired,\n modifier: PropTypes.string\n};\n\nSearchContent.defaultProps = {\n searchInputAlignment: '',\n searchInputWrapperMobile: '',\n searchInputWrapperDesktop: '',\n placeholder: '',\n isMobile: false,\n collapsible: false,\n modifier: ''\n};\n\nexport default SearchContent;\n"],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import React from 'react';
2
+ import BlazeLink from '../BlazeLink';
3
+ import LazyImage from '../LazyImage';
4
+
5
+ const SearchContentItems = ({
6
+ results = [],
7
+ onClick
8
+ }) => results.map(item => {
9
+ if (!item.url) return null;
10
+ const {
11
+ id,
12
+ name,
13
+ image,
14
+ url
15
+ } = item;
16
+ return /*#__PURE__*/React.createElement(BlazeLink, {
17
+ href: url,
18
+ onClick: onClick,
19
+ key: id
20
+ }, /*#__PURE__*/React.createElement("div", {
21
+ className: "search-content--results__wrapper"
22
+ }, image !== null && image !== void 0 && image.url ? /*#__PURE__*/React.createElement(LazyImage, {
23
+ src: image.url,
24
+ alt: name,
25
+ className: "search-content--results__image",
26
+ sizeKey: "search-result"
27
+ }) : null, /*#__PURE__*/React.createElement("span", {
28
+ className: "search-content--results__title"
29
+ }, name)));
30
+ });
31
+
32
+ export default SearchContentItems;
33
+ //# sourceMappingURL=SearchContentItems.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchContentItems.js","names":["React","BlazeLink","LazyImage","SearchContentItems","results","onClick","map","item","url","id","name","image"],"sources":["../../../src/components/SearchContent/SearchContentItems.js"],"sourcesContent":["import React from 'react';\nimport BlazeLink from '../BlazeLink';\nimport LazyImage from '../LazyImage';\n\nconst SearchContentItems = ({ results = [], onClick }) =>\n results.map(item => {\n if (!item.url) return null;\n\n const { id, name, image, url } = item;\n\n return (\n <BlazeLink href={url} onClick={onClick} key={id}>\n <div className=\"search-content--results__wrapper\">\n {image?.url ? (\n <LazyImage\n src={image.url}\n alt={name}\n className=\"search-content--results__image\"\n sizeKey=\"search-result\"\n />\n ) : null}\n <span className=\"search-content--results__title\">{name}</span>\n </div>\n </BlazeLink>\n );\n });\n\nexport default SearchContentItems;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,cAAtB;AACA,OAAOC,SAAP,MAAsB,cAAtB;;AAEA,MAAMC,kBAAkB,GAAG,CAAC;EAAEC,OAAO,GAAG,EAAZ;EAAgBC;AAAhB,CAAD,KACzBD,OAAO,CAACE,GAAR,CAAYC,IAAI,IAAI;EAClB,IAAI,CAACA,IAAI,CAACC,GAAV,EAAe,OAAO,IAAP;EAEf,MAAM;IAAEC,EAAF;IAAMC,IAAN;IAAYC,KAAZ;IAAmBH;EAAnB,IAA2BD,IAAjC;EAEA,oBACE,oBAAC,SAAD;IAAW,IAAI,EAAEC,GAAjB;IAAsB,OAAO,EAAEH,OAA/B;IAAwC,GAAG,EAAEI;EAA7C,gBACE;IAAK,SAAS,EAAC;EAAf,GACGE,KAAK,SAAL,IAAAA,KAAK,WAAL,IAAAA,KAAK,CAAEH,GAAP,gBACC,oBAAC,SAAD;IACE,GAAG,EAAEG,KAAK,CAACH,GADb;IAEE,GAAG,EAAEE,IAFP;IAGE,SAAS,EAAC,gCAHZ;IAIE,OAAO,EAAC;EAJV,EADD,GAOG,IARN,eASE;IAAM,SAAS,EAAC;EAAhB,GAAkDA,IAAlD,CATF,CADF,CADF;AAeD,CApBD,CADF;;AAuBA,eAAeP,kBAAf"}
@@ -0,0 +1,31 @@
1
+ import React from 'react';
2
+ import BlazeLink from '../BlazeLink';
3
+ import SearchContentItems from './SearchContentItems';
4
+
5
+ const SearchContentResults = ({
6
+ results,
7
+ debouncedSearchTerm,
8
+ onClick
9
+ }) => {
10
+ if (debouncedSearchTerm !== '') {
11
+ return /*#__PURE__*/React.createElement("div", {
12
+ className: "search-content--results__wrapper"
13
+ }, /*#__PURE__*/React.createElement("div", {
14
+ className: "search-content--results__wrapper--message"
15
+ }, /*#__PURE__*/React.createElement("div", {
16
+ className: "search-content--results__content"
17
+ }, results.length === 0 && /*#__PURE__*/React.createElement("div", {
18
+ className: "search-content--results__message"
19
+ }, /*#__PURE__*/React.createElement(BlazeLink, {
20
+ href: `/search?search_term=${debouncedSearchTerm}`
21
+ }, `Search all results for: ${debouncedSearchTerm}`)), results.length > 0 && /*#__PURE__*/React.createElement(SearchContentItems, {
22
+ results: results,
23
+ onClick: onClick
24
+ }))));
25
+ }
26
+
27
+ return null;
28
+ };
29
+
30
+ export default SearchContentResults;
31
+ //# sourceMappingURL=SearchContentResults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchContentResults.js","names":["React","BlazeLink","SearchContentItems","SearchContentResults","results","debouncedSearchTerm","onClick","length"],"sources":["../../../src/components/SearchContent/SearchContentResults.js"],"sourcesContent":["import React from 'react';\nimport BlazeLink from '../BlazeLink';\nimport SearchContentItems from './SearchContentItems';\n\nconst SearchContentResults = ({ results, debouncedSearchTerm, onClick }) => {\n if (debouncedSearchTerm !== '') {\n return (\n <div className=\"search-content--results__wrapper\">\n <div className=\"search-content--results__wrapper--message\">\n <div className=\"search-content--results__content\">\n {results.length === 0 && (\n <div className=\"search-content--results__message\">\n <BlazeLink href={`/search?search_term=${debouncedSearchTerm}`}>\n {`Search all results for: ${debouncedSearchTerm}`}\n </BlazeLink>\n </div>\n )}\n {results.length > 0 && <SearchContentItems results={results} onClick={onClick} />}\n </div>\n </div>\n </div>\n );\n }\n return null;\n};\n\nexport default SearchContentResults;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,cAAtB;AACA,OAAOC,kBAAP,MAA+B,sBAA/B;;AAEA,MAAMC,oBAAoB,GAAG,CAAC;EAAEC,OAAF;EAAWC,mBAAX;EAAgCC;AAAhC,CAAD,KAA+C;EAC1E,IAAID,mBAAmB,KAAK,EAA5B,EAAgC;IAC9B,oBACE;MAAK,SAAS,EAAC;IAAf,gBACE;MAAK,SAAS,EAAC;IAAf,gBACE;MAAK,SAAS,EAAC;IAAf,GACGD,OAAO,CAACG,MAAR,KAAmB,CAAnB,iBACC;MAAK,SAAS,EAAC;IAAf,gBACE,oBAAC,SAAD;MAAW,IAAI,EAAG,uBAAsBF,mBAAoB;IAA5D,GACI,2BAA0BA,mBAAoB,EADlD,CADF,CAFJ,EAQGD,OAAO,CAACG,MAAR,GAAiB,CAAjB,iBAAsB,oBAAC,kBAAD;MAAoB,OAAO,EAAEH,OAA7B;MAAsC,OAAO,EAAEE;IAA/C,EARzB,CADF,CADF,CADF;EAgBD;;EACD,OAAO,IAAP;AACD,CApBD;;AAsBA,eAAeH,oBAAf"}
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+
3
+ const SearchContentToggleIcon = ({
4
+ results,
5
+ onClear
6
+ }) => {
7
+ if (results && results.length > 0) {
8
+ return /*#__PURE__*/React.createElement("svg", {
9
+ className: "search-content--expanded__icon",
10
+ viewBox: "0 0 20 20",
11
+ onClick: onClear
12
+ }, /*#__PURE__*/React.createElement("path", {
13
+ fillRule: "evenodd",
14
+ d: "M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z",
15
+ clipRule: "evenodd"
16
+ }));
17
+ }
18
+
19
+ return /*#__PURE__*/React.createElement("svg", {
20
+ className: "search-content--expanded__icon",
21
+ viewBox: "0 0 20 20"
22
+ }, /*#__PURE__*/React.createElement("path", {
23
+ fillRule: "evenodd",
24
+ d: "M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z",
25
+ clipRule: "evenodd"
26
+ }));
27
+ };
28
+
29
+ export default SearchContentToggleIcon;
30
+ //# sourceMappingURL=SearchContentToggleIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchContentToggleIcon.js","names":["React","SearchContentToggleIcon","results","onClear","length"],"sources":["../../../src/components/SearchContent/SearchContentToggleIcon.js"],"sourcesContent":["import React from 'react';\n\nconst SearchContentToggleIcon = ({ results, onClear }) => {\n if (results && results.length > 0) {\n return (\n <svg className=\"search-content--expanded__icon\" viewBox=\"0 0 20 20\" onClick={onClear}>\n <path\n fillRule=\"evenodd\"\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\n clipRule=\"evenodd\"\n />\n </svg>\n );\n }\n\n return (\n <svg className=\"search-content--expanded__icon\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clipRule=\"evenodd\"\n />\n </svg>\n );\n};\n\nexport default SearchContentToggleIcon;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,MAAMC,uBAAuB,GAAG,CAAC;EAAEC,OAAF;EAAWC;AAAX,CAAD,KAA0B;EACxD,IAAID,OAAO,IAAIA,OAAO,CAACE,MAAR,GAAiB,CAAhC,EAAmC;IACjC,oBACE;MAAK,SAAS,EAAC,gCAAf;MAAgD,OAAO,EAAC,WAAxD;MAAoE,OAAO,EAAED;IAA7E,gBACE;MACE,QAAQ,EAAC,SADX;MAEE,CAAC,EAAC,oMAFJ;MAGE,QAAQ,EAAC;IAHX,EADF,CADF;EASD;;EAED,oBACE;IAAK,SAAS,EAAC,gCAAf;IAAgD,OAAO,EAAC;EAAxD,gBACE;IACE,QAAQ,EAAC,SADX;IAEE,CAAC,EAAC,kHAFJ;IAGE,QAAQ,EAAC;EAHX,EADF,CADF;AASD,CAtBD;;AAwBA,eAAeF,uBAAf"}
@@ -1,207 +1,3 @@
1
- import React, { useState } from 'react';
2
- import PropTypes from 'prop-types';
3
- import { gql, useApolloClient } from '@apollo/client';
4
- import { useRouter } from 'next/router';
5
- import { getPublishedContent } from '../../application/query';
6
- import BlazeLink from '../BlazeLink';
7
-
8
- const logError = error => error;
9
-
10
- const SearchContent = ({
11
- entities,
12
- searchInputAlignment,
13
- searchInputWrapperMobile,
14
- searchInputWrapperDesktop,
15
- collapsible,
16
- isMobile,
17
- placeholder
18
- }) => {
19
- const [collapsed, setCollapsed] = useState(collapsible);
20
- const [searchTerm, setSearchTerm] = useState(null);
21
- const [data, setData] = useState([]);
22
- const router = useRouter();
23
- const client = useApolloClient();
24
-
25
- const capitalize = s => {
26
- if (typeof s !== 'string') return '';
27
- return s.charAt(0).toUpperCase() + s.slice(1);
28
- };
29
-
30
- React.useEffect(() => {
31
- if (data && data.length !== 0) return;
32
- const promises = entities.map(entity => {
33
- const [a, b] = entity.split('_');
34
- const entityName = capitalize(a) + capitalize(b);
35
- const rawQueryStringified = JSON.stringify({
36
- size: 0,
37
- query: {
38
- bool: {
39
- should: [{
40
- match: {
41
- docType: entity
42
- }
43
- }],
44
- minimum_should_match: 1
45
- }
46
- }
47
- });
48
- const query = gql`
49
- ${getPublishedContent(entityName)}
50
- `;
51
-
52
- try {
53
- return client.query({
54
- query,
55
- variables: {
56
- rawQueryStringified,
57
- offset: 0,
58
- limit: 5
59
- }
60
- });
61
- } catch (e) {
62
- return [];
63
- }
64
- });
65
-
66
- try {
67
- (async () => {
68
- try {
69
- const fetchResults = await Promise.all(promises);
70
- const searchResults = fetchResults.map(result => {
71
- const {
72
- data: resultData
73
- } = result;
74
- return resultData.searchPublishedContent.results;
75
- }).flat();
76
- setData(searchResults);
77
- } catch (e) {
78
- logError(e);
79
- }
80
- })();
81
- } catch (e) {
82
- logError(e);
83
- }
84
- });
85
-
86
- const handleClick = (e, url) => {
87
- e.preventDefault();
88
- router.push(url);
89
- };
90
-
91
- const handleKeyPress = e => {
92
- if (e.key === 'Enter' && e.target.value !== '') {
93
- router.push(`/search?search_term=${e.target.value}`);
94
- }
95
- };
96
-
97
- const renderResults = () => // eslint-disable-next-line no-undef
98
- data === null || data === void 0 ? void 0 : data.map(dataItem => {
99
- const {
100
- name,
101
- image,
102
- url
103
- } = dataItem;
104
-
105
- if (searchTerm && searchTerm !== '') {
106
- if (name.includes(searchTerm)) {
107
- return /*#__PURE__*/React.createElement(BlazeLink, {
108
- href: url,
109
- onClick: e => handleClick(e, url)
110
- }, /*#__PURE__*/React.createElement("div", {
111
- className: "mt-2 mb-1"
112
- }, /*#__PURE__*/React.createElement("div", {
113
- className: "flex justify-start items-center"
114
- }, image.url ? /*#__PURE__*/React.createElement("img", {
115
- src: image.url,
116
- alt: name,
117
- className: "w-20 h-14"
118
- }) : null, /*#__PURE__*/React.createElement("span", {
119
- className: "ml-2"
120
- }, name))));
121
- }
122
-
123
- return null;
124
- }
125
- });
126
-
127
- const searchResultsMessage = searchTerm ? `Search results for: ${searchTerm}` : '';
128
- return collapsed ? /*#__PURE__*/React.createElement("div", {
129
- className: isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop
130
- }, /*#__PURE__*/React.createElement("div", {
131
- className: "search-content--collapse__wrapper"
132
- }, /*#__PURE__*/React.createElement("label", {
133
- className: "search-content--collapse__label"
134
- }, /*#__PURE__*/React.createElement("span", {
135
- className: "search-content--collapse__icon_wrapper"
136
- }, /*#__PURE__*/React.createElement("svg", {
137
- className: "search-content--collapse__icon",
138
- viewBox: "0 0 20 20"
139
- }, /*#__PURE__*/React.createElement("path", {
140
- fillRule: "evenodd",
141
- d: "M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z",
142
- clipRule: "evenodd"
143
- }))), /*#__PURE__*/React.createElement("input", {
144
- onFocus: () => setCollapsed(false),
145
- onChange: e => setSearchTerm(e.target.value),
146
- type: "text",
147
- name: "search",
148
- value: "",
149
- className: "search-content--collapse__input"
150
- })))) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
151
- className: `${isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop}`
152
- }, /*#__PURE__*/React.createElement("div", {
153
- className: "search-content--expanded__wrapper"
154
- }, /*#__PURE__*/React.createElement("label", {
155
- className: "search-content--expanded__label"
156
- }, /*#__PURE__*/React.createElement("span", {
157
- className: "search-content--expanded__icon_wrapper"
158
- }, /*#__PURE__*/React.createElement("svg", {
159
- className: "search-content--expanded__icon",
160
- viewBox: "0 0 20 20"
161
- }, /*#__PURE__*/React.createElement("path", {
162
- fillRule: "evenodd",
163
- d: "M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z",
164
- clipRule: "evenodd"
165
- }))), /*#__PURE__*/React.createElement("input", {
166
- type: "text",
167
- name: "search",
168
- onChange: e => setSearchTerm(e.target.value),
169
- onKeyPress: handleKeyPress,
170
- className: "search-content--expanded__input",
171
- placeholder: placeholder,
172
- onBlur: () => {
173
- if (!collapsible) return;
174
- if (!searchTerm || searchTerm === '') setCollapsed(true);
175
- }
176
- }))), data && searchResultsMessage !== '' && /*#__PURE__*/React.createElement("div", {
177
- className: "search-content--results__wrapper"
178
- }, /*#__PURE__*/React.createElement("div", {
179
- className: "search-content--results__wrapper--message"
180
- }, /*#__PURE__*/React.createElement("div", {
181
- className: "text-sm pt-2"
182
- }, searchResultsMessage), /*#__PURE__*/React.createElement("div", {
183
- className: "search-content--results__message"
184
- }, /*#__PURE__*/React.createElement("div", {
185
- className: "search-content--results__content"
186
- }, renderResults()))))));
187
- };
188
-
189
- SearchContent.propTypes = {
190
- searchInputAlignment: PropTypes.string,
191
- searchInputWrapperMobile: PropTypes.string,
192
- searchInputWrapperDesktop: PropTypes.string,
193
- placeholder: PropTypes.string,
194
- isMobile: PropTypes.bool,
195
- collapsible: PropTypes.bool,
196
- entities: PropTypes.array.isRequired
197
- };
198
- SearchContent.defaultProps = {
199
- searchInputAlignment: '',
200
- searchInputWrapperMobile: '',
201
- searchInputWrapperDesktop: '',
202
- placeholder: '',
203
- isMobile: false,
204
- collapsible: false
205
- };
1
+ import SearchContent from './SearchContent';
206
2
  export default SearchContent;
207
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useState","PropTypes","gql","useApolloClient","useRouter","getPublishedContent","BlazeLink","logError","error","SearchContent","entities","searchInputAlignment","searchInputWrapperMobile","searchInputWrapperDesktop","collapsible","isMobile","placeholder","collapsed","setCollapsed","searchTerm","setSearchTerm","data","setData","router","client","capitalize","s","charAt","toUpperCase","slice","useEffect","length","promises","map","entity","a","b","split","entityName","rawQueryStringified","JSON","stringify","size","query","bool","should","match","docType","minimum_should_match","variables","offset","limit","e","fetchResults","Promise","all","searchResults","result","resultData","searchPublishedContent","results","flat","handleClick","url","preventDefault","push","handleKeyPress","key","target","value","renderResults","dataItem","name","image","includes","searchResultsMessage","propTypes","string","array","isRequired","defaultProps"],"sources":["../../../src/components/SearchContent/index.js"],"sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { gql, useApolloClient } from '@apollo/client';\n\nimport { useRouter } from 'next/router';\nimport { getPublishedContent } from '../../application/query';\nimport BlazeLink from '../BlazeLink';\n\nconst logError = error => error;\n\nconst SearchContent = ({\n entities,\n searchInputAlignment,\n searchInputWrapperMobile,\n searchInputWrapperDesktop,\n collapsible,\n isMobile,\n placeholder\n}) => {\n const [collapsed, setCollapsed] = useState(collapsible);\n const [searchTerm, setSearchTerm] = useState(null);\n const [data, setData] = useState([]);\n\n const router = useRouter();\n const client = useApolloClient();\n\n const capitalize = s => {\n if (typeof s !== 'string') return '';\n return s.charAt(0).toUpperCase() + s.slice(1);\n };\n\n React.useEffect(() => {\n if (data && data.length !== 0) return;\n\n const promises = entities.map(entity => {\n const [a, b] = entity.split('_');\n\n const entityName = capitalize(a) + capitalize(b);\n\n const rawQueryStringified = JSON.stringify({\n size: 0,\n query: {\n bool: {\n should: [\n {\n match: {\n docType: entity\n }\n }\n ],\n minimum_should_match: 1\n }\n }\n });\n\n const query = gql`\n ${getPublishedContent(entityName)}\n `;\n\n try {\n return client.query({\n query,\n variables: {\n rawQueryStringified,\n offset: 0,\n limit: 5\n }\n });\n } catch (e) {\n return [];\n }\n });\n\n try {\n (async () => {\n try {\n const fetchResults = await Promise.all(promises);\n const searchResults = fetchResults\n .map(result => {\n const { data: resultData } = result;\n return resultData.searchPublishedContent.results;\n })\n .flat();\n\n setData(searchResults);\n } catch (e) {\n logError(e);\n }\n })();\n } catch (e) {\n logError(e);\n }\n });\n\n const handleClick = (e, url) => {\n e.preventDefault();\n router.push(url);\n };\n\n const handleKeyPress = e => {\n if (e.key === 'Enter' && e.target.value !== '') {\n router.push(`/search?search_term=${e.target.value}`);\n }\n };\n\n const renderResults = () =>\n // eslint-disable-next-line no-undef\n data?.map(dataItem => {\n const { name, image, url } = dataItem;\n\n if (searchTerm && searchTerm !== '') {\n if (name.includes(searchTerm)) {\n return (\n <BlazeLink href={url} onClick={e => handleClick(e, url)}>\n <div className=\"mt-2 mb-1\">\n <div className=\"flex justify-start items-center\">\n {image.url ? <img src={image.url} alt={name} className=\"w-20 h-14\" /> : null}\n <span className=\"ml-2\">{name}</span>\n </div>\n </div>\n </BlazeLink>\n );\n }\n\n return null;\n }\n });\n\n const searchResultsMessage = searchTerm ? `Search results for: ${searchTerm}` : '';\n\n return collapsed ? (\n <div className={isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop}>\n <div className=\"search-content--collapse__wrapper\">\n <label className=\"search-content--collapse__label\">\n <span className=\"search-content--collapse__icon_wrapper\">\n <svg className=\"search-content--collapse__icon\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </span>\n <input\n onFocus={() => setCollapsed(false)}\n onChange={e => setSearchTerm(e.target.value)}\n type=\"text\"\n name=\"search\"\n value=\"\"\n className=\"search-content--collapse__input\"\n />\n </label>\n </div>\n </div>\n ) : (\n <>\n <div className={`${isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop}`}>\n <div className=\"search-content--expanded__wrapper\">\n <label className=\"search-content--expanded__label\">\n <span className=\"search-content--expanded__icon_wrapper\">\n <svg className=\"search-content--expanded__icon\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </span>\n <input\n type=\"text\"\n name=\"search\"\n onChange={e => setSearchTerm(e.target.value)}\n onKeyPress={handleKeyPress}\n className=\"search-content--expanded__input\"\n placeholder={placeholder}\n onBlur={() => {\n if (!collapsible) return;\n if (!searchTerm || searchTerm === '') setCollapsed(true);\n }}\n />\n </label>\n </div>\n {data &&\n searchResultsMessage !== '' && (\n <div className=\"search-content--results__wrapper\">\n <div className=\"search-content--results__wrapper--message\">\n <div className=\"text-sm pt-2\">{searchResultsMessage}</div>\n\n <div className=\"search-content--results__message\">\n <div className=\"search-content--results__content\">{renderResults()}</div>\n </div>\n </div>\n </div>\n )}\n </div>\n </>\n );\n};\n\nSearchContent.propTypes = {\n searchInputAlignment: PropTypes.string,\n searchInputWrapperMobile: PropTypes.string,\n searchInputWrapperDesktop: PropTypes.string,\n placeholder: PropTypes.string,\n isMobile: PropTypes.bool,\n collapsible: PropTypes.bool,\n entities: PropTypes.array.isRequired\n};\n\nSearchContent.defaultProps = {\n searchInputAlignment: '',\n searchInputWrapperMobile: '',\n searchInputWrapperDesktop: '',\n placeholder: '',\n isMobile: false,\n collapsible: false\n};\n\nexport default SearchContent;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["SearchContent"],"sources":["../../../src/components/SearchContent/index.js"],"sourcesContent":["import SearchContent from './SearchContent';\n\nexport default SearchContent;\n"],"mappings":"AAAA,OAAOA,aAAP,MAA0B,iBAA1B;AAEA,eAAeA,aAAf"}
@@ -33,8 +33,6 @@ const FiltersList = ({
33
33
  const isDataAvailable = !!data && Object.keys(data).length;
34
34
  const dataAggregations = isDataAvailable ? data : null;
35
35
  const areAggregationsAvailable = isDataAvailable && !!dataAggregations;
36
- const results = areAggregationsAvailable && dataAggregations[propsToDisplay[0]];
37
- const shouldDisplayFilter = results && results.buckets && results.buckets.length;
38
36
 
39
37
  switch (type) {
40
38
  case TEXT_SEARCH:
@@ -50,7 +48,7 @@ const FiltersList = ({
50
48
  })));
51
49
 
52
50
  case CHECKBOX:
53
- return !!shouldDisplayFilter && /*#__PURE__*/React.createElement("div", {
51
+ return /*#__PURE__*/React.createElement("div", {
54
52
  key: dynamicKey,
55
53
  className: "filter__section filter__section--search-refine filter__section--checkboxes"
56
54
  }, /*#__PURE__*/React.createElement(Checkbox, _extends({}, otherProps, {
@@ -65,7 +63,7 @@ const FiltersList = ({
65
63
  })));
66
64
 
67
65
  case SELECT:
68
- return !!shouldDisplayFilter && /*#__PURE__*/React.createElement("div", {
66
+ return /*#__PURE__*/React.createElement("div", {
69
67
  key: dynamicKey,
70
68
  className: "filter__section filter__section--search-refine filter__section--selects"
71
69
  }, /*#__PURE__*/React.createElement(SelectFilter, _extends({}, otherProps, {
@@ -1 +1 @@
1
- {"version":3,"file":"FiltersList.js","names":["React","useContext","PropTypes","MainContext","TextSearch","Checkbox","SelectFilter","Range","CHECKBOX","SELECT","TEXT_SEARCH","RANGE","SEARCH_TERM","FiltersList","data","filters","hasUrl","entity","filterValues","updateFilterValues","shouldSearch","itemId","map","index","type","label","propsToDisplay","elementTitle","otherProps","length","dynamicKey","join","isDataAvailable","Object","keys","dataAggregations","areAggregationsAvailable","results","shouldDisplayFilter","buckets","propTypes","bool","isRequired","string","object","func","array","defaultProps"],"sources":["../../../../src/components/SearchFilter/SearchFilter/FiltersList.js"],"sourcesContent":["import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { MainContext } from '@blaze-cms/nextjs-components';\nimport { TextSearch, Checkbox, SelectFilter, Range } from '../components';\nimport { CHECKBOX, SELECT, TEXT_SEARCH, RANGE, SEARCH_TERM } from '../constants';\n\nconst FiltersList = ({\n data,\n filters,\n hasUrl,\n entity,\n filterValues,\n updateFilterValues,\n shouldSearch\n}) => {\n const { itemId } = useContext(MainContext);\n\n return filters.map(({ type, label, propsToDisplay, elementTitle, ...otherProps }, index) => {\n if (!propsToDisplay && !propsToDisplay.length) return null;\n\n const dynamicKey = [itemId, index].join('-');\n const isDataAvailable = !!data && Object.keys(data).length;\n const dataAggregations = isDataAvailable ? data : null;\n const areAggregationsAvailable = isDataAvailable && !!dataAggregations;\n const results = areAggregationsAvailable && dataAggregations[propsToDisplay[0]];\n const shouldDisplayFilter = results && results.buckets && results.buckets.length;\n\n switch (type) {\n case TEXT_SEARCH:\n return (\n <div\n key={dynamicKey}\n className=\"filter__section filter__section--search-refine filter__section--search\">\n <TextSearch\n {...otherProps}\n label={label}\n elementTitle={elementTitle}\n searchValue={filterValues[SEARCH_TERM]}\n updateFilterValues={updateFilterValues}\n filterValues={filterValues}\n />\n </div>\n );\n case CHECKBOX:\n return (\n !!shouldDisplayFilter && (\n <div\n key={dynamicKey}\n className=\"filter__section filter__section--search-refine filter__section--checkboxes\">\n <Checkbox\n {...otherProps}\n data={data}\n prop={propsToDisplay[0]}\n label={label}\n elementTitle={elementTitle}\n hasUrl={hasUrl}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n shouldSearch={shouldSearch}\n />\n </div>\n )\n );\n case SELECT:\n return (\n !!shouldDisplayFilter && (\n <div\n key={dynamicKey}\n className=\"filter__section filter__section--search-refine filter__section--selects\">\n <SelectFilter\n {...otherProps}\n data={data}\n prop={propsToDisplay[0]}\n label={label}\n elementTitle={elementTitle}\n hasUrl={hasUrl}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n shouldSearch={shouldSearch}\n />\n </div>\n )\n );\n case RANGE:\n return (\n !!areAggregationsAvailable && (\n <div key={dynamicKey} className=\"range-slider__wrapper\">\n <Range\n {...otherProps}\n dataAggregations={dataAggregations}\n propsToDisplay={propsToDisplay}\n label={label}\n elementTitle={elementTitle}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n shouldSearch={shouldSearch}\n />\n </div>\n )\n );\n default:\n return null;\n }\n });\n};\n\nFiltersList.propTypes = {\n hasUrl: PropTypes.bool.isRequired,\n entity: PropTypes.string.isRequired,\n filterValues: PropTypes.object.isRequired,\n updateFilterValues: PropTypes.func.isRequired,\n data: PropTypes.object,\n filters: PropTypes.array,\n shouldSearch: PropTypes.bool\n};\n\nFiltersList.defaultProps = {\n shouldSearch: false,\n data: {},\n filters: []\n};\n\nexport default FiltersList;\n"],"mappings":"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"}
1
+ {"version":3,"file":"FiltersList.js","names":["React","useContext","PropTypes","MainContext","TextSearch","Checkbox","SelectFilter","Range","CHECKBOX","SELECT","TEXT_SEARCH","RANGE","SEARCH_TERM","FiltersList","data","filters","hasUrl","entity","filterValues","updateFilterValues","shouldSearch","itemId","map","index","type","label","propsToDisplay","elementTitle","otherProps","length","dynamicKey","join","isDataAvailable","Object","keys","dataAggregations","areAggregationsAvailable","propTypes","bool","isRequired","string","object","func","array","defaultProps"],"sources":["../../../../src/components/SearchFilter/SearchFilter/FiltersList.js"],"sourcesContent":["import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { MainContext } from '@blaze-cms/nextjs-components';\nimport { TextSearch, Checkbox, SelectFilter, Range } from '../components';\nimport { CHECKBOX, SELECT, TEXT_SEARCH, RANGE, SEARCH_TERM } from '../constants';\n\nconst FiltersList = ({\n data,\n filters,\n hasUrl,\n entity,\n filterValues,\n updateFilterValues,\n shouldSearch\n}) => {\n const { itemId } = useContext(MainContext);\n\n return filters.map(({ type, label, propsToDisplay, elementTitle, ...otherProps }, index) => {\n if (!propsToDisplay && !propsToDisplay.length) return null;\n const dynamicKey = [itemId, index].join('-');\n const isDataAvailable = !!data && Object.keys(data).length;\n const dataAggregations = isDataAvailable ? data : null;\n const areAggregationsAvailable = isDataAvailable && !!dataAggregations;\n\n switch (type) {\n case TEXT_SEARCH:\n return (\n <div\n key={dynamicKey}\n className=\"filter__section filter__section--search-refine filter__section--search\">\n <TextSearch\n {...otherProps}\n label={label}\n elementTitle={elementTitle}\n searchValue={filterValues[SEARCH_TERM]}\n updateFilterValues={updateFilterValues}\n filterValues={filterValues}\n />\n </div>\n );\n case CHECKBOX:\n return (\n <div\n key={dynamicKey}\n className=\"filter__section filter__section--search-refine filter__section--checkboxes\">\n <Checkbox\n {...otherProps}\n data={data}\n prop={propsToDisplay[0]}\n label={label}\n elementTitle={elementTitle}\n hasUrl={hasUrl}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n shouldSearch={shouldSearch}\n />\n </div>\n );\n case SELECT:\n return (\n <div\n key={dynamicKey}\n className=\"filter__section filter__section--search-refine filter__section--selects\">\n <SelectFilter\n {...otherProps}\n data={data}\n prop={propsToDisplay[0]}\n label={label}\n elementTitle={elementTitle}\n hasUrl={hasUrl}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n shouldSearch={shouldSearch}\n />\n </div>\n );\n case RANGE:\n return (\n !!areAggregationsAvailable && (\n <div key={dynamicKey} className=\"range-slider__wrapper\">\n <Range\n {...otherProps}\n dataAggregations={dataAggregations}\n propsToDisplay={propsToDisplay}\n label={label}\n elementTitle={elementTitle}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n shouldSearch={shouldSearch}\n />\n </div>\n )\n );\n default:\n return null;\n }\n });\n};\n\nFiltersList.propTypes = {\n hasUrl: PropTypes.bool.isRequired,\n entity: PropTypes.string.isRequired,\n filterValues: PropTypes.object.isRequired,\n updateFilterValues: PropTypes.func.isRequired,\n data: PropTypes.object,\n filters: PropTypes.array,\n shouldSearch: PropTypes.bool\n};\n\nFiltersList.defaultProps = {\n shouldSearch: false,\n data: {},\n filters: []\n};\n\nexport default FiltersList;\n"],"mappings":"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"}